Module:Infobox ModStats new: Difference between revisions

Created page with "-- <nowiki> --[=[ -- Implements Template:Infobox Bonuses --]=] local p = {} local infobox = require('Module:Infobox') local onmain = require('Module:Mainonly').on_main lo..."
 
No edit summary
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
-- <nowiki>
-- <nowiki>
--[=[
--[=[
-- Implements [[Template:Infobox Bonuses]]
-- Implements [[Template:Infobox ModStats]]
--]=]
--]=]


Line 9: Line 9:
local paramtest = require('Module:Paramtest')
local paramtest = require('Module:Paramtest')
local yesno = require('Module:Yesno')
local yesno = require('Module:Yesno')
local skillpic = require('Module:Skill clickpic')._main
local editbutton = require('Module:Edit button')
local editbutton = require('Module:Edit button')
local commas = require('Module:Addcommas')._add
local commas = require('Module:Addcommas')._add
local chargedrain = require('Module:Augmented degrade')
local attack_speed_bar = require('Module:Attack speed bar').weapon


-- Accepted slot names
-- Accepted slot names
Line 279: Line 276:
{ name = 'slotimg', func = { name = lookuparg, params = { slot_images, 'slot' }, flag = { 'r', 'd' } } },
{ name = 'slotimg', func = { name = lookuparg, params = { slot_images, 'slot' }, flag = { 'r', 'd' } } },
{ name = 'isweapon', func = { name = isweaponarg, params = { 'slot', 'type' }, flag = d } },
{ name = 'isweapon', func = { name = isweaponarg, params = { 'slot', 'type' }, flag = d } },
{ name = 'invdegrade', func = { name = invdegradearg, params = { 'invtier', 'invslot', 'slot' }, flag = 'd' } },
{ name = 'invdegrade_span', func = { name = invdegradetooltipspanarg, params = { 'invtier', 'invslot', 'slot' }, flag = 'd' } },
{ name = 'invdegrade_div', func = { name = invdegradetooltipdivarg, params = { 'invtier', 'invslot', 'slot' }, flag = 'd' } },
{ name = 'normdegrades', func = { name = normdegradesarg, params = { 'degrades' }, flag = 'p' } },
{ name = 'degradetype', func = { name = degradestypearg, params = { 'normdegrades', 'invdegrade' }, flag = 'd' } },
{ name = 'degradestr', func = { name = degradesstrarg, params = { 'degradetype', 'normdegrades', 'invdegrade', 'invdegrade_span' }, flag = 'd' } },
{ name = 'degradeheader', func = { name = degradeheaderarg, params = { 'degradetype' }, flag = 'd' } },
{ name = 'style', func = { name = stylearg, params = { 'style', 'isweapon' }, flag = 'd' } },
{ name = 'style', func = { name = stylearg, params = { 'style', 'isweapon' }, flag = 'd' } },
{ name = 'attackrange', func = { name = attackrangearg, params = { 'isweapon', 'attack_range', 'attack range', 'attackrange' }, flag = { 'd', 'p', 'p', 'p' } } },
{ name = 'attackrange', func = { name = attackrangearg, params = { 'isweapon', 'attack_range', 'attack range', 'attackrange' }, flag = { 'd', 'p', 'p', 'p' } } },
Line 326: Line 316:
{ name = 'strength_smw', func = { name = smwnumbers, params = { 'strength' }, flag = 'd' } },
{ name = 'strength_smw', func = { name = smwnumbers, params = { 'strength' }, flag = 'd' } },
{ name = 'ranged_smw', func = { name = smwnumbers, params = { 'ranged' }, flag = 'd' } },
{ name = 'ranged_smw', func = { name = smwnumbers, params = { 'ranged' }, flag = 'd' } },
{ name = 'charges', func = { name = chargesarg, params = { 'degradetype', 'normdegrades' }, flag = 'd' } },
{ name = 'invtier', func = { name = invtierarg, params = { 'degradetype', 'invtier' }, flag = { 'd', 'p' } } },
{ name = 'smwJSON', func = { name = smwjsonarg, params = { 'class', 'slot', 'style_smw', 'type', 'damage_smw', 'accuracy_smw', 'attackrangesmw', 'armour_smw', 'life_smw', 'speedraw', 'prayer_smw', 'strength_smw', 'ranged_smw', 'magic_smw', 'tier_smw', 'charges', 'invtier' }, flag = 'd' } }
}
}


Line 340: Line 327:
colspan = 12,
colspan = 12,
links = {  
links = {  
{ 'Template:Infobox Bonuses/FAQ', 'FAQ' },
{ 'Template:Infobox ModStats/FAQ', 'FAQ' },
{ 'Template:Infobox Bonuses', 'docs' }
{ 'Template:Infobox ModStats', 'docs' }
}
}
})
})
Line 376: Line 363:
ret:addButtonsCaption()
ret:addButtonsCaption()


ret:defineName('Infobox Bonuses')
ret:defineName('Infobox ModStats')
ret:addClass('infobox-bonuses wikitable')
ret:addClass('infobox-modstats wikitable')
ret:tag('caption'):wikitext("'''[[Combat Stats]]'''")
ret:tag('caption'):wikitext("'''[[Combat Stats]]'''")
Line 514: Line 501:
['font-size'] = 'smaller'
['font-size'] = 'smaller'
})
})
:wikitext('[[Template:Infobox Bonuses/FAQ|&#91;FAQ&#93;]] &bull; [[Template:Infobox Bonuses|&#91;doc&#93;]]')
:wikitext('[[Template:Infobox ModStats/FAQ|&#91;FAQ&#93;]] &bull; [[Template:Infobox ModStats|&#91;doc&#93;]]')
--]=]
--]=]


Line 847: Line 834:
end
end
return weapon_slots[s] or 'false'
return weapon_slots[s] or 'false'
end
-- degradation
-- invention charge drain
function invdegradearg(invtier,invslot,slot)
invtier = tonumber(invtier)
local ret = nil
if invtier then
invslot = slots[invslot] or invslot
invslot = inv_slots[invslot]
if not invslot then
invslot = inv_slots[slot]
end
ret = chargedrain.get_base(invtier,invslot)
end
return ret
end
function invdegradetooltipspanarg(invtier,invslot,slot)
invtier = tonumber(invtier)
local ret = nil
if invtier then
invslot = slots[invslot] or invslot
invslot = inv_slots[invslot]
if not invslot then
invslot = inv_slots[slot]
end
ret, _ = chargedrain.get_tooltip(invtier,invslot)
ret = tostring(ret)
end
return ret
end
function invdegradetooltipdivarg(invtier,invslot,slot)
invtier = tonumber(invtier)
local ret = nil
if invtier then
invslot = slots[invslot] or invslot
invslot = inv_slots[invslot]
if not invslot then
invslot = inv_slots[slot]
end
_, ret = chargedrain.get_tooltip(invtier,invslot)
ret = tostring(ret)
end
return ret
end
-- normal degradation
function normdegradesarg(deg)
local charges = clean(deg)
if charges then
return charges
end
if yesno(deg, false) then
return 'Yes'
end
return nil
end
function degradestypearg(deg,inv)
if infobox.isDefined(inv) and infobox.isDefined(deg) then
return 'both'
end
if infobox.isDefined(inv) then
return 'invention'
end
if infobox.isDefined(deg) then
return 'normal'
end
return nil
end
-- string representation
function degradesstrarg(dtype, deg, inv, invspan)
if dtype == 'invention' then
return mw.ustring.format('%s/s %s', inv, invspan)
end
if dtype == 'normal' or dtype == 'both' then
if type(deg) == 'number' then
return commas(deg) .. ' charges'
elseif deg == true then
return 'Yes'
else
return deg
end
end
return ''
end
-- header
function degradeheaderarg(dtype)
if dtype == 'invention' then
return '[[Charge pack|Charge drain]]'
end
if dtype == 'normal' or dtype == 'both' then
return '[[Equipment degradation|Degrades]]'
end
return ''
end
end
--smw
--smw