FANDOM


-- <pre>
local p = {}
local coins_image = require('Module:Coins image')
local rarity_gems = {
	common = 'THGem-common',
	['fairly-common'] = 'THGem-fairly-common',
	uncommon = 'THGem-uncommon',
	rare = 'THGem-rare',
	['very-rare'] = 'THGem-very-rare',
}
 
local rarity_map = {
	common = 'common',
	['fairly common'] = 'fairly-common',
	['fairly-common'] = 'fairly-common',
	uncommon = 'uncommon',
	rare = 'rare',
	['very rare'] = 'very-rare',
	['very-rare'] = 'very-rare',
}
 
function p.main(frame)
	local rarity,item,qty,qtyraw,item_page,image
	local args = frame:getParent().args
 
	rarity = string.lower(args[1] or '')
	local rarity_gem = rarity_gems[rarity_map[rarity]] or 'THGem-none'
	item = args[2]
	qty = args[3] or 'no'
	-- item_page= args[4] or item
	if qty ~= 'no' then
		qty = qty:upper():gsub('[^%dKM]','')
		qtyraw = qty:gsub('K','000'):gsub('M','000000')
		-- Use raw just in case (e.g. 20K instead of 20000)
		qty = qtyraw
		-- Look for 6+ digits
		if qty:find('%d%d%d%d%d%d') then
			-- replace millions first (10m+)
			qty = qtyraw:gsub('^(%d%d%d?%d?)%d%d%d%d%d%d$','%1M')
			-- replace thousands next (100k to 9999k)
			-- this is ignored if millions are replaced
			qty = qty:gsub('^(%d%d%d%d?)%d%d%d$','%1K')
		end
	end
	if item:lower() == 'coins' then
		image = coins_image(qtyraw)
	else
		image = args['img'] or item..'.png'
	end
	local ret = mw.html.create('div')
		:addClass(rarity_gem)
		:css({ width = '66px',
				height = '90px',
				position = 'relative',
				display = 'inline-block'})
 
	-- Item container
	    :tag('div')
	        :css({display = 'table'})
	            :tag('div')
    	        :css({display = 'table-cell',['vertical-align'] = 'middle'})
        		:tag('span')
        			:css({ width = '35px',
        					height = '35px',
        					position = 'absolute',
        					bottom = '27px',
        					left = '15px',
        					['text-align'] = 'center',
        					['z-index'] = '2' })
        			:wikitext(string.format('[[File:%s|%s|link=%s]]',image,(args['dim'] or '35px'),item))
        		:done()
    		:done()
		:done()
	if qty ~= 'no' then
		qty = qty:upper():gsub('[^%dKM]','')
		-- Look for 6+ digits
		if qty:find('%d%d%d%d%d%d') then
			-- replace millions first (10m+)
			qty = qty:gsub('^(%d%d%d?%d?)%d%d%d%d%d%d$','%1M')
			-- replace thousands next (100k to 9999k)
			-- this is ignored if millions are replaced
			qty = qty:gsub('^(%d%d%d%d?)%d%d%d$','%1K')
		end
		local font_color
		if qty:find('K') then
			font_color = '#FFFFFF'
		elseif qty:find('M') then
			font_color = '#01FF80'
		else
			font_color = '#FFFF00'
		end
		ret:tag('span')
			:css({ position = 'absolute',
					bottom = '48px',
					left = '11px',
					['z-index'] = '3',
					['font-family'] = 'runescape-small',
					['font-size'] = '20px',
					color = font_color,
					['text-shadow'] = '1px 1px 0px black' })
			:wikitext(qty)
		:done()
	end
 
	return tostring(ret)
end
 
return p

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.