RuneScape Wiki
mNo edit summary
Tag: sourceedit
mNo edit summary
Tag: sourceedit
 
(3 intermediate revisions by the same user not shown)
Line 41: Line 41:
 
ret :addClass(kind)
 
ret :addClass(kind)
 
 
if kind == 'weapon' then
+
if kind == 'monster' and speed ~= 'random' then
ret :addClass(speed)
+
ret :addClass('t' .. speed)
elseif kind == 'monster' then
+
elseif kind == 'weapon' or kind == 'monster' then
ret :addClass('t' .. speed)
+
ret :addClass(speed)
 
end
 
end
 
 
ret :wikitext(interval[speed][1] .. ' ')
+
ret :tag('div')
:tag('small'):wikitext('(' .. interval[speed][2] .. 's)'):done()
+
:wikitext(interval[speed][1] .. ' ')
  +
:tag('small')
  +
:wikitext('(' .. interval[speed][2] .. 's)')
  +
:done()
  +
:done()
 
else
 
else
 
ret :wikitext('Undefined')
 
ret :wikitext('Undefined')
Line 63: Line 67:
   
 
function p.weapon(s)
 
function p.weapon(s)
return render({ kind='weapon', speed=s.args[1] })
+
return render({ kind='weapon', speed=s })
 
end
 
end
   
 
function p.monster(s)
 
function p.monster(s)
return render({ kind='monster', speed=s.args[1] })
+
return render({ kind='monster', speed=s })
 
end
 
end
   

Latest revision as of 00:44, 5 July 2017

Documentation for this module may be created at Module:Attack speed bar/doc

-- <nowiki>
-- Implements [[Template:Attack speed bar]]
 
local p = {}

local hasc = require('Module:Paramtest').has_content

local interval = {
	-- Universal
	['random'] = {'Random','???'},
	
	-- Weapons
	['fastest'] = {'Fastest','2.4'},
	['fast'] = {'Fast','3.0'},
	['average'] = {'Average','3.6'},
	['slow'] = {'Slow','4.2'},
	['slowest'] = {'Slowest','7.2'},
	
	-- Monsters, misc
	['1'] = {'1 tick','0.6'},
	['2'] = {'2 ticks','1.2'},
	['3'] = {'3 ticks','1.8'},
	['4'] = {'4 ticks','2.4'},
	['5'] = {'5 ticks','3.0'},
	['6'] = {'6 ticks','3.6'},
	['7'] = {'7 ticks','4.2'},
	['8'] = {'8 ticks','4.8'},
	['9'] = {'9 ticks','5.4'},
	['10'] = {'10 ticks','6.0'}
}

local function render(args)
	local speed,kind
	if hasc(args.speed) and hasc(args.kind) then
		speed = mw.text.trim(tostring(args.speed)):lower()
		kind = mw.text.trim(tostring(args.kind)):lower()
	end
	
	local ret = mw.html.create('span'):addClass('attack-speed')
	if interval[speed] ~= nil then
		ret	:addClass(kind)
		
		if kind == 'monster' and speed ~= 'random' then
			ret	:addClass('t' .. speed)
		elseif kind == 'weapon' or kind == 'monster' then
			ret :addClass(speed)
		end
		
		ret	:tag('div')
				:wikitext(interval[speed][1] .. ' ')
				:tag('small')
					:wikitext('(' .. interval[speed][2] .. 's)')
				:done()
			:done()
	else
		ret	:wikitext('Undefined')
	end
	ret	:tag('b'):addClass(''):done()
		:done()

	return ret
end

function p.main(frame)
	return render(frame:getParent().args)
end

function p.weapon(s)
	return render({ kind='weapon', speed=s })
end

function p.monster(s)
	return render({ kind='monster', speed=s })
end

return p