Allows you the reduce the size of your player status icons
// ==UserScript==
// @name Scale Player Status Icons
// @namespace https://github.com/sulsay/torn
// @version 1.0
// @description Allows you the reduce the size of your player status icons
// @author Sulsay [2173590]
// @match https://www.torn.com/*
// @grant GM_addStyle
// @run-at document-start
// ==/UserScript==
const settings = {
iconScaleFactor: .8,
spaceBetweenIconsFactor: .7,
};
const DEFAULT_ICON_OFFSET_PER_ICON = -18;
const DEFAULT_ICON_VIEWPORT_SIZE = 16;
const DEFAULT_ICON_MARGIN = 10;
const DEFAULT_SPRITESHEET_WIDTH = 1384;
const iconSize = DEFAULT_ICON_VIEWPORT_SIZE * settings.iconScaleFactor;
const iconMargin = DEFAULT_ICON_MARGIN * (settings.iconScaleFactor * settings.spaceBetweenIconsFactor);
const stylesForEveryIconListItem = [
`width: ${iconSize}px !important`,
`height: ${iconSize}px !important`,
`margin-right: ${iconMargin}px !important`,
`margin-bottom: ${iconMargin}px !important`,
`background-size: ${DEFAULT_SPRITESHEET_WIDTH * settings.iconScaleFactor}px auto`,
];
const iconBackgroundPositions = [];
for (let i = 0; i < 77; i++) {
iconBackgroundPositions.push(`ul[class*="status-icons_"] > li[class*="icon${i + 1}_"] {background-position: ${i * DEFAULT_ICON_OFFSET_PER_ICON * settings.iconScaleFactor}px 0 !important;}`);
}
GM_addStyle([
`ul[class*="status-icons_"] > li {${stylesForEveryIconListItem.join(';')}}`,
...iconBackgroundPositions,
].join('\n'));