Wiki Warframe

Utilisation du Wiki

Pour une meilleure utilisation du Wiki Warframe FR, merci d'activer les scripts Javascript lors de la consultation de certains pages, pour assurer le fonctionnement de certaines fonctionnalités.
Si vous souhaitez contribuer au Wiki, rejoignez-nous sur le Discord Warframe FR (espace wiki)

- Yazu 17:00 01/10/2022

EN SAVOIR PLUS

Wiki Warframe
Advertisement

La documentation pour ce module peut être créée à Module:Ability/doc

local p = {}

local AbilityData = mw.loadData("Module:Ability/data")
local ConclaveData = mw.loadData("Module:Ability/Conclave/data")
local WarframeData = mw.loadData('Module:Warframes/data')
local Tooltip = require [[Module:Tooltips]]
local Icon = require('Module:Icon')

local function getAbility(abiName, conclave)
    local dataName = AbilityData
    if conclave then dataName = ConclaveData end
    local temp = dataName["Ability"][abiName]
    if temp ~= nil and type(temp) == "table" then
        return temp
    else
        return nil
    end
end

local function getAbilityData(abiName, valName)
    local ability = getAbility(abiName)
    return ability[valName]
end

local function getAbilityList(Warframe)
    local WarframeTemp = mw.text.split(Warframe, " ", true)
    if WarframeTemp[2] == "Umbra" then
        local temp = AbilityData["Warframe"][Warframe]
        if temp ~= nil then return temp end
    else
        local temp = AbilityData["Warframe"][WarframeTemp[1]]
        if temp ~= nil then return temp end
    end
end

local function getCostType(ability)

    local ret = "Energie"
    if (ability.Cooldown ~= nil) then
        ret = "Cooldown"
    elseif (ability.CostType ~= nil) then
        ret = ability.CostType
    end

    return ret
end


local function getLink(ability)
    local temp = ability["Link"]
    if temp ~= nil then
        return temp
    else
        return nil
    end
end

function p.getAbilityIcons(frame)
    local Ability = frame.args[1]
    local imgType = frame.args[2]
    local imgName = ""
    for _, abilities in pairs(AbilityData["Ability"]) do
        if Ability == abilities.Name then
            if imgType == "Icon" then
                imgName = abilities.Image
            end
            if imgType == "Image" then
                imgName = abilities.Icon
            end

        end
    end
    return imgName
end

function p.getAbilityValues(frame)
    local Ability = frame.args[1]
    local wantedValue = frame.args[2]
    local returnedValue = ""
    for _, abilities in pairs(AbilityData["Ability"]) do
        if Ability == abilities.Name then -- if given ability = existing ability
            -- if a specif is given, return the wanted value
            if wantedValue == "Name" then
                returnedValue = abilities.Name
            elseif wantedValue == "Cost" then
                returnedValue = abilities.Cost
            elseif wantedValue == "Description" then
                returnedValue = abilities.Description
            elseif wantedValue == "Icon" then
                returnedValue = abilities.Icon
            elseif wantedValue == "Image" then
                returnedValue = abilities.Image
            elseif wantedValue == "Key" then
                returnedValue = abilities.Key
            elseif wantedValue == "User" then
                returnedValue = abilities.User
            elseif wantedValue == "UserType" then
                returnedValue = abilities.UserType
            elseif wantedValue == "Subsumable" then
                returnedValue = abilities.Subsumable
            end

        end
    end
    return returnedValue
end

function p.getAbilityIconsList(wfName)
    -- Used in M:Warframes-p.tooltip
    local abilities = getAbilityList(wfName)
    local result = ""
    if abilities == nil then return "Data not found" end
    for i, ability in pairs(abilities) do
        local fileName = getAbilityData(ability, "Icon")
        result = result .. "[[File:" .. fileName .. "|30px]]" .. " " .. ability
        if i < 4 then result = result .. "<br>" end
    end
    return result
end


function p.getAbilityNameByIndex(frame)

    local warframeName = frame.args ~= nil and frame.args[1] or nil
    local index = frame.args ~= nil and tonumber(frame.args[2]) or nil
    return p._getAbilityNameByIndex(warframeName, index)
end

function p.getAbilityBenefits(frame)
    local wfName = frame.args[1]
    local AbilityBenefTable = {}

    table.insert(AbilityBenefTable, ([==[
        {| class="sortable" id="AbilityBenefTable" style="width: %s; background-color: #2a2a31; text-align: center;"
        |-
        ! data-sort-type="number"| !! class="unsortable"| !! class="unsortable"|[[Puissance de Pouvoir|Mods de Puissance]] !! class="unsortable"|[[Durée de Pouvoir|Mods de Durée]] !! class="unsortable"|[[Portée de Pouvoir|Mods de Portée]]
        |- class="sorttop"
        |  || || [[Fichier:Intensité.png|100px|link=Puissance de Pouvoir]] || [[Fichier:Continuité.png|100px|link=Durée de Pouvoir]] || [[Fichier:Allonge.png|100px|link=Portée de Pouvoir]]
        ]==]):format(
            '100%' -- escape auto-format
        ))
    
    for _, abilities in pairs(AbilityData["Ability"]) do
        if abilities.User == wfName and abilities.Archived ~= true then
            -- If AffectedBy ❌ ✔️
                table.insert(AbilityBenefTable, ([==[
                |-
                | %s || %s || %s || %s || %s
                ]==]):format(
                    abilities.Key,
                    Tooltip.full(abilities.Name, "Ability"),
                    (abilities.AffectedByStrength == true) and '✔️' or '❌',
                    (abilities.AffectedByDuration == true) and '✔️' or '❌',
                    (abilities.AffectedByRange == true) and '✔️' or '❌'
                ))
            
        end
    end
    
    -- close table & return
    table.insert(AbilityBenefTable, '|}')

    return table.concat(AbilityBenefTable, '')
end


return p
Advertisement