Module:Tier: Difference between revisions

From Rock Revolution Wiki
Content deleted Content added
create Rarity module
 
make color take priority over link color
 
(13 intermediate revisions by the same user not shown)
Line 1: Line 1:
local package = {}
local p = {}


local function clamp(component)
local function clamp(component)
Line 10: Line 10:
local g = (math.floor(num / 0x100) % 0x100) + amt
local g = (math.floor(num / 0x100) % 0x100) + amt
local b = (num % 0x100) + amt
local b = (num % 0x100) + amt
return string.format("%#x", clamp(r) * 0x10000 + clamp(g) * 0x100 + clamp(b))
return string.format("%#x", clamp(r) * 0x10000 + clamp(g) * 0x100 + clamp(b)):sub(3)
end
end


local function getColorFromTierString(tierString)
function package.getColorFromRarityString(rarityString)
tierString = tierString or "Common"
return ({
return ({
Layer = "5B5B5B",
Layer = "5B5B5B",
Line 30: Line 31:
Empyrean = "D50086",
Empyrean = "D50086",
Seraphic = "00021B"
Seraphic = "00021B"
})[rarityString]
})[tierString]
end
end


function package.rarity(frame)
function p.tier(frame)
-- Get arguments from calling template
local rarityString = frame.args[1]
local arguments = frame.args
local hexCode = package.getColorFromRarityString(rarityString)
local brightHexCode = lightenDarkenColor(hexCode, 40)
local tierString = arguments[1]
return "<div style=background-color: #" .. hexCode .. "; border: 1px solid #" .. brightHexCode ..">" .. rarityString .. "</div>"
local hexCode = getColorFromTierString(tierString)
local brightHexCode = lightenDarkenColor(hexCode, 92)
return '[[' .. tierString .. '|' .. '<div style="font-weight: bold; border-radius: 6px; text-align: center; background-color: #' .. hexCode
.. '; border: 1px solid #'.. brightHexCode
.. '; color: #' .. brightHexCode
.. '">' .. tierString .. '</div>]]'
end
end


return package
return p

Latest revision as of 19:35, 22 November 2023

Documentation for this module may be created at Module:Tier/doc

local p = {}

local function clamp(component)
  return math.min(math.max(component, 0), 255)
end

local function lightenDarkenColor(col, amt)
  local num = tonumber(col, 16)
  local r = math.floor(num / 0x10000) + amt
  local g = (math.floor(num / 0x100) % 0x100) + amt
  local b = (num % 0x100) + amt
  return string.format("%#x", clamp(r) * 0x10000 + clamp(g) * 0x100 + clamp(b)):sub(3)
end

local function getColorFromTierString(tierString)
	tierString = tierString or "Common"
	return ({
		Layer = "5B5B5B",
		Common = "C1C1C1",
		Uncommon = "04B71C",
		Rare = "1696F7",
		Strange = "FD6933",
		Unusual = "CC99FF",
		Elite = "B50000",
		Wondrous = "6AFF99",
		Ascendant = "00B9CE",
		Miraculous = "3853FF",
		Immaculate = "FFA7E",
		Outrageous = "8100B8",
		Divine = "59E8FF",
		Empyrean = "D50086",
		Seraphic = "00021B"
	})[tierString]
end

function p.tier(frame)
	-- Get arguments from calling template
	local arguments = frame.args
	
	local tierString = arguments[1]
	local hexCode = getColorFromTierString(tierString)
	local brightHexCode = lightenDarkenColor(hexCode, 92)
	
	return '[[' .. tierString .. '|' .. '<div style="font-weight: bold; border-radius: 6px; text-align: center; background-color: #' .. hexCode 
	.. '; border: 1px solid #'.. brightHexCode 
	.. '; color: #' .. brightHexCode
	.. '">' .. tierString .. '</div>]]' 
end

return p