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

Pour les ennemis exclusifs à Re Mind, utiliser Module:Stats/REM à la place.

Fonction StatsKH3.CategorieEnnemi

Cette fonction détermine à quelles catégories ajouter un ennemi, selon qu'il est un ennemi standard ou un boss.

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
KH3boss 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)

Fonction StatsKH3.Ennemi

Cette fonction génère le tableau de statistiques d'un ennemi de Kingdom Hearts III.

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
KH3HP - Multiplicateur des HP de l'ennemi
KH3EXP - Multiplicateur des HP de l'ennemi
KH3loc 1-22 Monde et niveau de combat où l'ennemi est combattu. Si l'attribut HP (par ex. KH3HP1) est employé, les HP écrasent le calcul par défaut.
KH3niv1
KH3HP
KH3HPAlt - Multiplicateur de HP et Expérience, ainsi que monde et niveau d'un ennemi pour lequel les valeurs changent (comme les ennemis affrontés lors de l'atterrissage à la Nécropole des Keyblades.
KH3EXPAlt
KH3locAlt
KH3nivAlt
KH3arme - Résistances aux différents éléments et altérations d'état.
KH3brasier
KH3glacier
KH3foudre
KH3eau
KH3rafale
KH3ténèbres
KH3autre
KH3continu
KH3gel
KH3électrocuté
KH3ko
KH3miel
KH3réaction - Résistance aux techniques de réaction
KH3contre - Compteur caché qui permet à un ennemi d'esquiver ou contre-attaquer si Sora exécute trop d'attaque d'affilée, afin d'empêcher qu'un ennemi soit paralysé par un combo.
KH3attraction - Multiplicateur d'Attraction
KH3dégâts - Attribut qui limite les dégâts maximum subis en une attaque
KH3recomp - Renseigne les récompenses abandonnées par l'ennemi

local StatsKH3 = {}

--Informations de niveau de combat
StatsKH3.KH3Niv = {
 ["1"] = {["HP"] = "24", ["EXP"] = "5", ["For"] = "16", ["Def"] = "8"},
 ["4"] = {["HP"] = "30", ["EXP"] = "6", ["For"] = "19", ["Def"] = "9"},
 ["10"] = {["HP"] = "42", ["EXP"] = "15", ["For"] = "25", ["Def"] = "12"},
 ["12"] = {["HP"] = "45", ["EXP"] = "19", ["For"] = "27", ["Def"] = "13"},
 ["14"] = {["HP"] = "49", ["EXP"] = "25", ["For"] = "29", ["Def"] = "14"},
 ["16"] = {["HP"] = "53", ["EXP"] = "30", ["For"] = "31", ["Def"] = "15"},
 ["18"] = {["HP"] = "57", ["EXP"] = "37", ["For"] = "33", ["Def"] = "16"},
 ["22"] = {["HP"] = "64", ["EXP"] = "53", ["For"] = "36", ["Def"] = "18"},
 ["24"] = {["HP"] = "68", ["EXP"] = "62", ["For"] = "38", ["Def"] = "19"},
 ["26"] = {["HP"] = "72", ["EXP"] = "71", ["For"] = "40", ["Def"] = "20"},
 ["28"] = {["HP"] = "76", ["EXP"] = "82", ["For"] = "42", ["Def"] = "21"},
 ["30"] = {["HP"] = "80", ["EXP"] = "93", ["For"] = "44", ["Def"] = "22"},
 ["32"] = {["HP"] = "83", ["EXP"] = "105", ["For"] = "46", ["Def"] = "23"},
 ["34"] = {["HP"] = "87", ["EXP"] = "118", ["For"] = "48", ["Def"] = "24"},
 ["36"] = {["HP"] = "91", ["EXP"] = "131", ["For"] = "50", ["Def"] = "25"},
 ["38"] = {["HP"] = "95", ["EXP"] = "146", ["For"] = "52", ["Def"] = "26"},
 ["40"] = {["HP"] = "99", ["EXP"] = "161", ["For"] = "54", ["Def"] = "27"},
 ["42"] = {["HP"] = "102", ["EXP"] = "177", ["For"] = "55", ["Def"] = "28"},
 ["46"] = {["HP"] = "110", ["EXP"] = "210", ["For"] = "59", ["Def"] = "30"},
 ["50"] = {["HP"] = "118", ["EXP"] = "247", ["For"] = "63", ["Def"] = "32"},
 ["60"] = {["HP"] = "137", ["EXP"] = "353", ["For"] = "73", ["Def"] = "37"},
 ["70"] = {["HP"] = "156", ["EXP"] = "478", ["For"] = "82", ["Def"] = "42"},
 ["?"] = {["HP"] = "0", ["EXP"] = "0", ["For"] = "?", ["Def"] = "?"},
}

local KH3Niv = StatsKH3.KH3Niv
--<includeonly>
function StatsKH3.CategorieEnnemi(args)
    if args["boss"] or args["KH3boss"] then
        return "[[Catégorie:Boss Kingdom Hearts III]]"
    else
        return "[[Catégorie:Ennemis Kingdom Hearts III]]"
    end 
end
--</includeonly>
function StatsKH3.Ennemi(args, multiples)
	local Template=require("Module:Stats/Template")
    local stringBuilder = ""
    if multiples then stringBuilder = stringBuilder .. Template.OpenTab(args, "KH3") end -- Ouvre un tab si nécessaire
    stringBuilder = stringBuilder .. Template.OpenContainer(args["theme"])
    stringBuilder = stringBuilder .. Template.OpenBox()
    stringBuilder = stringBuilder .. Template.Header("Statistiques",6)
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Monde", ["style"] = "width:40%; padding-left:1em;"},
        {["label"] = '[[Niveau de combat|Niveau]]', ["style"] = "width:12%;"},
        {["label"] = 'HP', ["style"] = "width:12%;"},
        {["label"] = 'EXP', ["style"] = "width:12%;"},
        {["label"] = "Force", ["style"] = "width:12%;"},
        {["label"] = "Défense", ["style"] = "width:12%;"}
    })
    for i=1,22 do
        if args["KH3loc"..tostring(i)] ~= nil then
            stringBuilder = stringBuilder .. Template.DataRow({
                {["data"]=args["KH3loc"..tostring(i)], ["class"]="textData"},
                {["data"] = args["KH3niv"..tostring(i)], ["class"] = "numberData"},
                {["data"] = (args["KH3HP"..tostring(i)] or Template.round(args["KH3HP"]*KH3Niv[args["KH3niv"..tostring(i)]]["HP"])), ["class"] = "numberData"},
                {["data"] = (args["KH3EXP"] == 0 and "-" or Template.round(args["KH3EXP"]*KH3Niv[args["KH3niv"..tostring(i)]]["EXP"])), ["class"] = "numberData"},
                {["data"] = KH3Niv[args["KH3niv"..tostring(i)]]["For"], ["class"] = "numberData"},
                {["data"] = KH3Niv[args["KH3niv"..tostring(i)]]["Def"], ["class"] = "numberData"}
            })
        end
    end
    if args["KH3locAlt"] ~= nil then
        stringBuilder = stringBuilder .. Template.DataRow({
            {["data"]=args["KH3locAlt"], ["class"]="textData"},
            {["data"] = args["KH3nivAlt"], ["class"] = "numberData"},
            {["data"] = Template.round(args["KH3HPAlt"]*KH3Niv[args["KH3nivAlt"]]["HP"]), ["class"] = "numberData"},
            {["data"] = (args["KH3EXPAlt"] == 0 and "-" or Template.round(args["KH3EXPAlt"]*KH3Niv[args["KH3nivAlt"]]["EXP"])), ["class"] = "numberData"},
            {["data"] = KH3Niv[args["KH3nivAlt"]]["For"], ["class"] = "numberData"},
            {["data"] = KH3Niv[args["KH3nivAlt"]]["Def"], ["class"] = "numberData"}
        })
    end
    stringBuilder = stringBuilder .. Template.CloseContainer()
    stringBuilder = stringBuilder .. Template.ContainerLine()
    stringBuilder = stringBuilder .. Template.OpenBox()
    stringBuilder = stringBuilder .. Template.Header("Faiblesses/Résistances",4)
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Arme", ["style"]="width:25%;"},
        {["label"] = "Brasier", ["style"]="width:25%;"},
        {["label"] = "Glacier", ["style"]="width:25%;"},
        {["label"] = "Foudre", ["style"]="width:25%;"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["KH3arme"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3brasier"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3glacier"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3foudre"] or "x1.0"), ["class"]="numberData"}
    })
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Eau"},
        {["label"] = "Rafale"},
        {["label"] = "Ténèbres"},
        {["label"] = "Autre"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["KH3eau"] or "x1.0"), ["class"]="numberData"},
        {["data"] = (args["KH3rafale"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3ténèbres"] or "x1.0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3autre"] or "x1.0"), ["class"]="numberData"}
    })
    stringBuilder = stringBuilder .. Template.MixedRow({
        {["label"]=1, ["text"]="Attaques continues", ["colspan"]=2},
        {["text"]=(args["KH3continu"] or "x1.0"), ["colspan"]=2}
    })
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Gel"},
        {["label"] = "Électrocuté"},
        {["label"] = "KO"},
        {["label"] = "Miel"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["KH3gel"] or "O"), ["class"]="numberData"}, 
        {["data"] = (args["KH3électrocuté"] or "O"), ["class"]="numberData"}, 
        {["data"] = (args["KH3ko"] or "O"), ["class"]="numberData"},
        {["data"] = (args["KH3miel"] or "O"), ["class"]="numberData"}
    })
    stringBuilder = stringBuilder .. Template.LabelRow({
        {["label"] = "Résistance réaction"},
        {["label"] = "<abbr title=\"Permet à l'ennemi d'échapper à un combo trop long\">Contre</abbr>"},
        {["label"] = "Attraction"},
        {["label"] = "Limite-Dégâts"}
    })
    stringBuilder = stringBuilder .. Template.DataRow({
        {["data"] = (args["KH3réaction"] or "0"), ["class"]="numberData"}, 
        {["data"] = (args["KH3contre"] or "-"), ["class"]="numberData"}, 
        {["data"] = (args["KH3attraction"] or "x1.0"), ["class"]="numberData"},
        {["data"] = (args["KH3dégâts"] or "-"), ["class"]="numberData"}
    })
    stringBuilder = stringBuilder .. Template.CloseContainer()
    if args["KH3recomp"] ~= nil then
        stringBuilder = stringBuilder .. Template.ContainerLine()
        stringBuilder = stringBuilder .. Template.OpenBox()
        stringBuilder = stringBuilder .. Template.Header("Récompenses",1)
        stringBuilder = stringBuilder .. Template.DataRow({
            {["data"] = args["KH3recomp"], ["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

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