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