Module:Collection : Différence entre versions

De X-Wing - Le wiki des figurines
Aller à : navigation, rechercher
m (46 révisions importées)
 
(44 révisions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
local p = {}
 
local p = {}
  
local vaisseauBoite = {}
+
local Boite = mw.loadData('Module:Collection/Boite')
Boite["UBISWX01"] = {
+
local Vaisseau = mw.loadData('Module:Collection/Vaisseau')
vaisseaux = {
+
local FabListe = mw.loadData('Module:Collection/FabListe')
xwing = 1,
+
local AffichageModule = require('Module:Collection/Affichage')
chasseurtie = 2,
 
}
 
}
 
  
function p.parse(frame)
+
function trim(s)
     return 'My fab’s squadron Generator speed select is ' .. frame.args[1]
+
  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
 +
end
 +
 
 +
function p.boite(frame)
 +
    local fabSelectStr = trim(frame.args[1]) or ""
 +
    local affIfZero = trim(frame.args[2]) or false
 +
    fabSelectTab={}
 +
    fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end)
 +
    retour = ""
 +
    for i, v in ipairs (fabSelectTab) do
 +
        if fabSelectTab[i] ~= nil then
 +
            if FabListe[i] ~= nil then
 +
                if Boite[FabListe[i]] ~= nil then
 +
                    if (fabSelectTab[i] ~= "0") or (affIfZero == "true") then
 +
                        retour = retour .. "* [[" .. Boite[FabListe[i]].titre .. "]] x " .. fabSelectTab[i] .. "\n"
 +
                    end
 +
                end
 +
            end
 +
        end
 +
    end
 +
     return retour
 +
end
 +
 
 +
function p.vaisseau(frame)
 +
    local fabSelectStr = trim(frame.args[1]) or ""
 +
    local affIfZero = trim(frame.args[2]) or false
 +
    local affType = trim(frame.args[3]) or "Faction"
 +
    fabSelectTab={}
 +
    fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end)
 +
    local vaissCollecTab={}
 +
    retour = ""
 +
    for i, v in ipairs (fabSelectTab) do
 +
        if fabSelectTab[i] ~= nil then
 +
            if FabListe[i] ~= nil then
 +
                if Boite[FabListe[i]] ~= nil then
 +
                    for k, v in pairs (Boite[FabListe[i]].vaisseaux) do
 +
                        if vaissCollecTab[k] == nil then
 +
                            vaissCollecTab[k] = v * fabSelectTab[i]
 +
                        else
 +
                            vaissCollecTab[k] = vaissCollecTab[k] + (v * fabSelectTab[i])
 +
                        end
 +
                    end
 +
                end
 +
            end
 +
        end
 +
    end
 +
    if affType == "Liste" then
 +
        return retour .. AffichageModule.affichageVaisseauListe(vaissCollecTab, affIfZero)
 +
    else
 +
        return retour .. AffichageModule.affichageVaisseauByFaction(vaissCollecTab, affIfZero)
 +
    end
 
end
 
end
 
return p
 
return p

Version actuelle datée du 30 août 2018 à 21:50

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

local p = {}

local Boite = mw.loadData('Module:Collection/Boite')
local Vaisseau = mw.loadData('Module:Collection/Vaisseau')
local FabListe = mw.loadData('Module:Collection/FabListe')
local AffichageModule = require('Module:Collection/Affichage')

function trim(s)
  return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end

function p.boite(frame)
    local fabSelectStr = trim(frame.args[1]) or ""
    local affIfZero = trim(frame.args[2]) or false
    fabSelectTab={}
    fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end)
    retour = ""
    for i, v in ipairs (fabSelectTab) do
        if fabSelectTab[i] ~= nil then
            if FabListe[i] ~= nil then
                if Boite[FabListe[i]] ~= nil then
                    if (fabSelectTab[i] ~= "0") or (affIfZero == "true") then
                        retour = retour .. "* [[" .. Boite[FabListe[i]].titre .. "]] x " .. fabSelectTab[i] .. "\n"
                    end
                end
            end
        end
    end
    return retour
end

function p.vaisseau(frame)
    local fabSelectStr = trim(frame.args[1]) or ""
    local affIfZero = trim(frame.args[2]) or false
    local affType = trim(frame.args[3]) or "Faction"
    fabSelectTab={}
    fabSelectStr:gsub(".",function(c) table.insert(fabSelectTab,c) end)
    local vaissCollecTab={}
    retour = ""
    for i, v in ipairs (fabSelectTab) do
        if fabSelectTab[i] ~= nil then
            if FabListe[i] ~= nil then
                if Boite[FabListe[i]] ~= nil then
                    for k, v in pairs (Boite[FabListe[i]].vaisseaux) do
                        if vaissCollecTab[k] == nil then
                            vaissCollecTab[k] = v * fabSelectTab[i]
                        else
                            vaissCollecTab[k] = vaissCollecTab[k] + (v * fabSelectTab[i])
                        end
                    end
                end
            end
        end
    end
    if affType == "Liste" then
        return retour .. AffichageModule.affichageVaisseauListe(vaissCollecTab, affIfZero)
    else
        return retour .. AffichageModule.affichageVaisseauByFaction(vaissCollecTab, affIfZero)
    end
end
return p