Module:Infobox ModStats new: Difference between revisions

mNo edit summary
No edit summary
 
Line 276: 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 323: 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 844: 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