Module:CreatureStats

De ARK Wiki
Aller à la navigation Aller à la recherche
Template-info.png Documentation

local p = {}

local function checkFlag(args, flag)
    return args[flag] and string.lower(args[flag]) == 'yes'
end

local Strings = {
    ["Attribute"] = "[[Attributs|Attribut]]",
    ["BaseValue"] = "Valeur de base",
    ["BaseValueNote"] = "Valeur de l'Attribut au niveau 1.",
    ["LevelIncrease"] = "Augmentation de [[LNiveaux]]",
    ["TamingBonus"] = "Bonus d'apprivoisement",
    ["Tamed"] = "Apprivoisement",
    ["TamedNote"] = "Ces pourcentages sont basés sur la valeur de l'Attribut au moment où la créature a été apprivoisée.",
}
local Stats = {
    { "health",     "Santé" },
    { "stamina",    "Énergie" },
    { "oxygen",     function(creature, args)
                        if creature == 'Stryder Tek' then
                            return 'Stryder Tek#Capacité de Charge|Capacité de Charge|image=Oxygen.png'
                        elseif checkFlag(args, 'canBeCharged') then
                            return 'Régénération de Charge'
                        end
                        return "Oxygène"
                    end },
    { "food",       function(creature, args)
                        if checkFlag(args, 'eatsEnergy') then
                            return 'Énergie'
                        end
                        return 'Nourriture'
                    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: le premier argument du Module:CreatureStats doit être un nom de créature'
    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="Statistiques de base et croissance"\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