Module:CreatureStats
Jump to navigation
Jump to search
Documentation
local p = {}
local function checkFlag(args, flag)
return args[flag] and string.lower(args[flag]) == 'yes'
end
local Strings = {
["Attribute"] = "[[Attributes|Attribute]]",
["BaseValue"] = "Base Value",
["BaseValueNote"] = "The value of the Attribute at level 1.",
["LevelIncrease"] = "[[Leveling|Level]] Increase",
["TamingBonus"] = "Taming Bonus",
["Tamed"] = "Tamed",
["TamedNote"] = "These percentages are based on the value of the Attribute at the moment the Creature was tamed.",
}
local Stats = {
{ "health", "Health" },
{ "stamina", "Stamina" },
{ "oxygen", function(creature, args)
if creature == 'Tek Stryder' then
return 'Tek Stryder#Charge Capacity|Charge Capacity|image=Oxygen.png'
elseif checkFlag(args, 'canBeCharged') then
return 'Charge Regeneration'
end
return "Oxygen"
end },
{ "food", function(creature, args)
if checkFlag(args, 'eatsEnergy') then
return 'Energy'
end
return 'Food'
end },
}
local function renderStatRow(statId, name, args)
local base = args[name .. '1']
local incW = args[name .. 'IncW']
local incD = args[name .. 'IncD']
local tameAdd = args[name .. 'TamingBonusAdd']
local tameMul = args[name .. 'TamingBonusMult']
local out = '{{ItemLink|' .. name .. '|size=30px}}'
if base == 'N/A' then
return out .. ' || N/A || N/A || N/A || ||'
end
end
function p.main(frame)
local args = frame:getParent().args
local creature = frame.args[1]
local noAutoCategories = frame.args.noAutoCategories == '1'
if not creature then
return 'error: first argument to Module:CreatureStats must be a creature name'
end
local shouldShowTamed = false
for _, stat in ipairs(Stats) do
local stat = stat[1]
local incD = args[stat .. 'IncD']
local tameAdd = args[name .. 'TamingBonusAdd']
local tameMul = args[name .. 'TamingBonusMult']
if (incD and incD ~= 'N/A') or (tameAdd and tameAdd ~= 'N/A') or (tameMul and tameMul ~= 'N/A') then
shouldShowTamed = true
break
end
end
local out = [[{| class="wikitable" data-description="Base Stats and Growth"\n'
|-
! rowspan=2 | ]] .. Strings.Attribute .. [[
! rowspan=2 | {{HoverNote|]] .. Strings.BaseValue .. [[|]] .. Strings.BaseValueNote .. [[}}
! colspan=]] .. (shouldShowTamed and '2' or '1') .. [[ | ]] .. Strings.LevelIncrease .. [[ ]]
.. (shouldShowTamed and '!! colspan=2 {{!}} ' .. Strings.TamingBonus or '') .. [[
|-
! Wild ]] .. (
shouldShowTamed and
'{{!}} {{HoverNote|' .. Strings.Tamed .. '|' .. Strings.TamedNote .. '}} {{!!}} Additive {{!!}} Multiplicative' or
'') .. [[
|-
]]
out = out .. '|}'
return out
end
return p