Ce module contient les fonctions permettant de créer des modèles concernant les stats (d'ennemis, objets, etc) de Kingdom Hearts: Chain of Memories.

Fonctions d'ennemis

StatsCOM.CategorieEnnemi

Cette fonction détermine à quelles catégories ajouter un ennemi, selon qu'il est un ennemi standard ou un boss et qu'il apparaisse dans Kingdom Hearts: Chain of Memories ou uniquement Kingdom Hearts: Re:Chain of Memories.

Elle reçoit un paramètre "args", version nettoyée des arguments tirés de l'appel du modèle. Il s'agit d'un tableau contenant les informations reprises dans le tableau ci-dessous.

Arguments Utilisation
COMboss Indique que l'ennemi est un boss si le paramètre est utilisé
boss Indique que l'ennemi est un boss si le paramètre est utilisé (permet d'utiliser un argument comment si l'ennemi est un boss pour toutes ses apparitions dans la série)
REC Indique que l'ennemi est exclusif à Kingdom Hearts: Re:Chain of Memories si le paramètre est utilisé

StatsCOM.Ennemi

Cette fonction génère le tableau de statistiques d'un ennemi de Chain of Memories.

Elle reçoit deux paramètres :

  • args, version nettoyée des arguments tirés de l'appel du modèle. Il s'agit d'un tableau contenant les informations reprises dans le tableau ci-dessous.
  • multiples : valeur booléenne indiquant si d'autres tableaux de stats sont utilisés (permet de générer le tabber).
Paramètre Sous-paramètre Utilisation
COMmondes - Mondes où l'ennemi apparaît
COMvaleurs - Valeurs des cartes de l'ennemi
COMduréeDuel - Durée d'un duel avec Riku
COMcartesDuel - Nombre de cartes à briser lors d'un duel
COMHP 1-13 Statistiques par palier (HP, Attaque et EXP). Numérotés dans l'ordre de passage, donc 1 correspond au premier palier et 12e sous-sol, 2 correspond au deuxième palier et 11e sous-sol, etc. 12 correspond au 12e étage et premier sous-sol, et 13 correspond uniquement au 13e étage.
COMAP
COMEXP
COMet 1-12 "E" si l'ennemi apparaît uniquement à cet étage pour Sora, "SS" si l'ennemi apparaît uniquement au sous-sol pour Riku. Ne pas renseigner s'il apparaît dans les deux.
COMarme - Résistance aux éléments et altérations d'état
COMbrasier
COMglacier
COMfoudre
COMneutre
COMgravité
COMko
COMstop
COMzappeur
COMficelage
COMfolie
COMterreur
COMaimant
COMglaciation
COMrecomp - Renseigne les récompenses abandonnées par l'ennemi

StatsCOM.CartesCOM

Permet de générer des tableaux qui représentent le jeu de carte d'un Boss.

Cette méthode prend un paramètre args, qui utilise Module:Stats/Template#CleanArgs pour récupérer les paramètres entrés lors de l'utilisation du Modèle:Jeu de cartes ennemi COM. Ces paramètres incluent :

Paramètre Sous-paramètre Utilisation
theme - Thème CSS utilisé par le modèle
Image Carte 1-7 Présentation de chaque carte : image, nom et description de l'attaque
Carte
Description Carte
Cartes Tour 1-5 Présentation des tours : cartes utilisées, nom et description du tour.
Tour
Description Tour
combat 1-6 Nom de chaque combat
combat x carte y #z x = 1-6 [combat]
y = 1-7 [carte]
z = #1-#9
Indique le nombre de fois que l'ennemi possède la carte y (tel que numérotée dans les paramètres ci-dessus) lors du combat x (tel que numéroté dans le paramètre ci-dessus).

z peut représenter :

  • #1-#9 : Nombre d'exemplaires d'une carte Attaque, Magie ou Objet de la valeur correspondante
  • total : Nombre d'exemplaires d'une carte
  • ennemi : Nombre d'exemplaires d'une carte Malus
combat x carte y total
combat x carte y ennemi

local StatsCOM = {}
--<includeonly>
function StatsCOM.CategorieEnnemi(args) 
	if args["boss"] or args["COMboss"] then
        if args["REC"] or args["1.5"] then return "[[Catégorie:Boss Kingdom Hearts: Re:Chain of Memories]]" else return "[[Catégorie:Boss Kingdom Hearts: Chain of Memories]]" end 
    else
        return "[[Catégorie:Ennemis Kingdom Hearts: Chain of Memories]]" 
    end
end
--</includeonly>
function StatsCOM.Ennemi(args, multiples)
	local Template=require("Module:Stats/Template")
    local stringBuilder = ""
    if multiples then stringBuilder = stringBuilder .. Template.OpenTab(args, "COM") end -- Ouvre un tab si nécessaire
    stringBuilder = stringBuilder .. Template.OpenContainer(args["theme"])
    stringBuilder = stringBuilder .. Template.OpenBox()
    stringBuilder = stringBuilder .. Template.Header("Statistiques",2)
    stringBuilder = stringBuilder .. Template.MixedRow({
        {["label"]=1, ["text"]="Mondes", ["style"]="width:30%"},
        {["text"] = args["COMmondes"]}
    })
    stringBuilder = stringBuilder .. Template.MixedRow({
        {["label"]=1, ["text"]="Valeur des cartes"},
        {["text"] = args["COMvaleurs"]}
    })
    if args["COMduréeDuel"]~= nil then
        stringBuilder = stringBuilder .. Template.MixedRow({
            {["label"]=1, ["text"]="Duels", ["rowspan"] = 2, ["style"]="border-bottom-left-radius: 8px;"},
            {["text"] = "'''Durée''' : "..args["COMduréeDuel"]}
        })
        stringBuilder = stringBuilder .. Template.MixedRow({
            {["text"] = "'''Card Breaks''' : "..args["COMcartesDuel"], ["style"]="border-bottom-left-radius: 0;"}
        })
    end
    stringBuilder = stringBuilder .. Template.CloseContainer()
    stringBuilder = stringBuilder .. Template.ContainerLine()
    stringBuilder = stringBuilder .. Template.OpenBox()
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"]="Palier", style="width:10%;"},
        {["label"]='Sous-sol', style="width:10%;"},
        {["label"]="HP", style="width:26%;"},
        {["label"]="AP", style="width:26%;"},
        {["label"]="EXP", style="width:26%;"}
    })
    for i=1,13 do
        if (args["COMHP"..tostring(i)]) then
            data = {}
            if (i==13 or args["COMet"..tostring(i)] == "E") then
                table.insert(data, {["data"] = i, ["class"] = "numberData"})
                table.insert(data, {["data"] = "-", ["class"] = "numberData"})
            elseif args["COMet"..tostring(i)] == "SS" then
                table.insert(data, {["data"] = "-", ["class"] = "numberData"})
                table.insert(data, {["data"] = 13-i, ["class"] = "numberData"})
            else
                table.insert(data, {["data"] = i, ["class"] = "numberData"})
                table.insert(data, {["data"] = 13-i, ["class"] = "numberData"})
            end
            table.insert(data, {["data"] = args["COMHP"..tostring(i)], ["class"]="numberData"})
            table.insert(data, {["data"] = args["COMAP"..tostring(i)], ["class"]="numberData"})
            table.insert(data, {["data"] = args["COMEXP"..tostring(i)], ["class"]="numberData"})
            stringBuilder = stringBuilder .. Template.DataRow(data)
        end
    end
    stringBuilder = stringBuilder .. Template.CloseContainer()
    stringBuilder = stringBuilder .. Template.ContainerLine()
    stringBuilder = stringBuilder .. Template.OpenBox()
    stringBuilder = stringBuilder .. Template.Header("Faiblesses/Résistances", 7)
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Arme", ["style"]="width:14%;"},
        {["label"] = "Brasier", ["style"]="width:14%;"},
        {["label"] = "Glacier", ["style"]="width:14%;"},
        {["label"] = "Foudre", ["style"]="width:14%;"},
        {["label"] = "Autre", ["style"]="width:14%;"},
        {["label"] = "Gravité", ["style"]="width:14%;"},
        {["label"] = "KO", ["style"]="width:14%;"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["COMarme"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMbrasier"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMglacier"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMfoudre"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMautre"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMgravité"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMko"] or "x1.0"), ["class"]="numberData"}
    })
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Stop"},
        {["label"] = "Zappeur"},
        {["label"] = "Ficelage"},
        {["label"] = "Folie"},
        {["label"] = "Terreur"},
        {["label"] = "Aimant"},
        {["label"] = "Glaciation"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["COMstop"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMzappeur"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMficelage"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMfolie"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMterreur"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMaimant"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["COMglaciation"] or "x1.0"), ["class"]="numberData"}, 
    })
    stringBuilder = stringBuilder .. Template.CloseContainer()
    if args["COMrecomp"] ~= nil then
        stringBuilder = stringBuilder .. Template.ContainerLine()
        stringBuilder = stringBuilder .. Template.OpenBox()
        stringBuilder = stringBuilder .. Template.Header("Récompenses", 1)
        stringBuilder = stringBuilder .. Template.DataRow({
            {["data"]= args["COMrecomp"], ["class"]="textData"}
        })
        stringBuilder = stringBuilder .. Template.CloseContainer()
    end
    stringBuilder = stringBuilder .. Template.CloseFinal()
    if multiples then stringBuilder = stringBuilder .. Template.CloseTab() end -- Ferme un tab si nécessaire
    return stringBuilder
end

--Méthode d'affichage du jeu de carte des ennemis
function StatsCOM.CartesCOM(frame)
	local Template=require("Module:Stats/Template")
    local args = Template.CleanArgs(frame)
    local stringBuilder = ''
    local multiples = ((args["Carte 1"] ~= nil and 1 or 0) + (args["Tour 1"] ~= nil and 1 or 0) + (args["combat 1"] ~= nil and 1 or 0) > 1)
    if multiples then
        stringBuilder = stringBuilder .. Template.OpenTabber((args["theme"] or ""))
        stringBuilder = stringBuilder .. Template.NewTab("Cartes")
    end
    if args["Carte 1"] ~= nil then
        stringBuilder = stringBuilder .. Template.OpenContainer(args["theme"])
        stringBuilder = stringBuilder .. Template.OpenBox()
        stringBuilder = stringBuilder .. Template.Header("Liste des cartes",3)
        stringBuilder = stringBuilder .. Template.LabelRow({
            {["label"]="Carte", ["style"]="width:75px;"},
            {["label"]="Nom", ["style"]="width:150px;"},
            {["label"]="Description"},
        })
        for i=1,7 do
            if args["Carte "..tostring(i)] then
                stringBuilder = stringBuilder .. Template.DataRow({
                    {["data"]="[[Fichier:"..args["Image Carte "..tostring(i)].."|50px]]", ["class"]="numberData"},
                    {["data"]=args["Carte "..tostring(i)], ["class"]="textData"},
                    {["data"]=args["Description Carte "..tostring(i)], ["class"]="textData"},
                })
            end
        end
        stringBuilder = stringBuilder .. Template.CloseContainer()
        stringBuilder = stringBuilder .. Template.CloseFinal()
    end
    if args["Tour 1"] ~= nil then
        if args["Carte 1"] then stringBuilder = stringBuilder .. Template.NewTab("Tours") end
        stringBuilder = stringBuilder .. Template.OpenContainer(args["theme"])
        stringBuilder = stringBuilder .. Template.OpenBox()
        stringBuilder = stringBuilder .. Template.Header("Tours",3)
        stringBuilder = stringBuilder .. Template.LabelRow({
            {["label"]="Cartes", ["style"]="width:150px;"},
            {["label"]="Tour", ["style"]="width:150px;"},
            {["label"]="Description"},
        })
        for i=1,5 do
            if args["Tour "..tostring(i)] then
                stringBuilder = stringBuilder .. Template.DataRow({
                    {["data"]=args["Cartes Tour "..tostring(i)], ["class"]="numberData"},
                    {["data"]=args["Tour "..tostring(i)], ["class"]="textData"},
                    {["data"]=args["Description Tour "..tostring(i)], ["class"]="textData"},
                })
            end
        end
        stringBuilder = stringBuilder .. Template.CloseContainer()
        stringBuilder = stringBuilder .. Template.CloseFinal()
    end
    for i=1,6 do
        if args["combat "..tostring(i)] ~= nil then
            stringBuilder = stringBuilder .. Template.NewTab(args["combat "..i])
            stringBuilder = stringBuilder .. Template.OpenContainer(args["theme"])
            stringBuilder = stringBuilder .. Template.OpenBox()
            stringBuilder = stringBuilder .. Template.Header("Liste des cartes",12)
            stringBuilder = stringBuilder .. Template.LabelRow({
                {["label"]="Carte", ["style"]=""},
                {["label"]="1", ["style"]="width:30px;"},
                {["label"]="2", ["style"]="width:30px;"},
                {["label"]="3", ["style"]="width:30px;"},
                {["label"]="4", ["style"]="width:30px;"},
                {["label"]="5", ["style"]="width:30px;"},
                {["label"]="6", ["style"]="width:30px;"},
                {["label"]="7", ["style"]="width:30px;"},
                {["label"]="8", ["style"]="width:30px;"},
                {["label"]="9", ["style"]="width:30px;"},
                {["label"]="0", ["style"]="width:30px;"},
                {["label"]="Total", ["style"]=""},
            })
            for j=1,7 do
                if args["combat "..tostring(i).." carte "..tostring(j).." ennemi"] ~= nil then
                    stringBuilder = stringBuilder .. Template.MixedRow({
                        {["label"]=1, ["text"]="[[Fichier:"..args["Image Carte "..tostring(j)].."|50px]]", ["style"]= "text-align:center; padding-left:0;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." ennemi"], ["colspan"] = 11, ["style"]= "text-align:center; padding:0; vertical-align:middle;"},
                    })
                elseif args["combat "..tostring(i).." carte "..tostring(j).." total"] ~= nil then
                    stringBuilder = stringBuilder .. Template.MixedRow({
                        {["label"]=1, ["text"]="[[Fichier:"..args["Image Carte "..tostring(j)].."|50px]]", ["style"]= "text-align:center; padding-left:0;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #1"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #2"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #3"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #4"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #5"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #6"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #7"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #8"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #9"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." #0"] or 0, ["style"]="text-align:center; padding:0; vertical-align:middle;"},
                        {["text"]= args["combat "..tostring(i).." carte "..tostring(j).." total"], ["style"]="text-align:center; padding:0; vertical-align:middle;"}
                    })
                end
            end
            stringBuilder = stringBuilder .. Template.CloseContainer()
            stringBuilder = stringBuilder .. Template.CloseFinal()
        end
    end
    if multiples then
        stringBuilder = stringBuilder .. Template.CloseTabber()
    end
    return frame:preprocess(stringBuilder)
end

return StatsCOM
Sauf mention contraire, le contenu de la communauté est disponible sous licence CC-BY-SA.