Module:Ressources/donneesCapacite

De Poképédia
Sauter à la navigation Sauter à la recherche

Utilisée dans les modèles d'apprentissage, cette fonction récupère et renvoie toutes les informations utiles sur une capacité. Elle comporte deux paramètres : la génération et le nom de la capacité.

La tableau renvoyé est rangé de la façon suivante, les informations entre parenthèses étant des précisions :

table#1 {
  nom de la capacité,
  icône du type,
  icône de la catégorie d'attaque,
  puissance,
  précision,
  PP,
  type concours, (générations 3, 4 et 6 seulement)
  charme concours, (générations 3, 4 et 6 seulement)
  blocage concours, (générations 3 et 6 seulement)
  ["type"] = nom du type (parfois utilisé pour colorer les tableaux),
}

Par exemple, pour ressources.obtenirDonnees(3, "Charge"), on obtient :

table#1 {
  "Charge",
  "[[Fichier:Miniat type normal.png|link=Normal (type)|alt=Normal]]",
  "[[Fichier:Catégorie miniat physique.gif|link=Catégories d'attaque|alt=Physique]]",
  35,
  "95 %",
  35,
  "[[Fichier:Miniat type robustesse.png|link=Robustesse|alt=Robustesse]]",
  "<span style=\"color: #FFAAAA\">♥♥♥♥</span>",
  "—",
  ["type"] = "normal",
}

return function( generation, capacite )
	local donnees = {}
	local page = mw.text.trim( capacite )
	local lien = page
	local categories = mw.smw.ask{'[[' .. page .. ']]', '?Catégorie'}
	if categories then
		if categories[1]["Catégorie"] == "[[:Catégorie:Homonymie|Homonymie]]" then
			lien = page .. ' (capacité)|' .. page
			page = page .. ' (capacité)'
		end
	end
	if generation < 6 then page = page .. '/Génération '  .. generation end
	local query = {'[[' .. page .. ']]', '?Type', '?Catégorie de capacité', '?Puissance', '?Précision', '?PP'}
	if generation == 3 or generation == 6 then
		table.insert(query, '?Type concours')
		table.insert(query, '?Charme concours')
		table.insert(query, '?Blocage concours')
	elseif generation == 4 then
		table.insert(query, '?Type super concours')
		table.insert(query, '?Charme super concours')
	end
	local resultat = mw.smw.ask( query )
	if resultat == nil then 
		donnees = {
			lien,
			"[[Fichier:Miniat type ???.png|link=Type inconnu|alt=Type inconnu]]",
			"[[Fichier:Miniat type ???.png|link=Catégorie de capacité|alt=Catégorie inconnue]]",
			"???",
			"???",
			"???"
		}
		donnees["type"] = "inconnu"
		if generation == 3 or generation == 6 then
			table.insert(donnees, '[[Fichier:Miniat type ???.png|link=Condition|alt=???]]')
			table.insert(donnees, '???')
			table.insert(donnees, '???')
		elseif generation == 4 then
			table.insert(donnees, '[[Fichier:Miniat type ???.png|link=Condition|alt=???]]')
			table.insert(donnees, '???')
		end
	else
		donnees = {
			lien,
			resultat[1]["Type"],
			resultat[1]["Catégorie de capacité"],
			resultat[1]["Puissance"],
			resultat[1]["Précision"],
			resultat[1]["PP"]
		}
		if donnees[2] == nil then 
			donnees["type"] = "inconnu"
			donnees[2] = "[[Fichier:Miniat type ???.png|link=Type inconnu|alt=Type inconnu]]" 
		else 
			donnees["type"] = string.lower( string.gsub( donnees[2], "É", "é" ) )
			donnees[2] = "[[Fichier:Miniat type " .. donnees["type"] .. ".png|link=" .. donnees[2] .. " (type)|alt=" .. donnees[2] .. "]]"
		end
		if donnees[3] == nil then donnees[3] = "[[Fichier:Miniat type ???.png|link=Catégorie de capacité|alt=Catégorie inconnue]]" else donnees[3] = "[[Fichier:Catégorie miniat " .. string.lower( donnees[3] ) .. ".gif|link=Catégories d'attaque|alt=" .. donnees[3] .. "]]" end
		if donnees[4] == nil then donnees[4] = "???"
		elseif donnees[4] == 0 then donnees[4] = "—"
		end
		if donnees[5] == nil then donnees[5] = "???"
		elseif donnees[5] == 0 then donnees[5] = "—"
		else donnees[5] = donnees[5] .. " %"
		end
		if donnees[6] == nil then donnees[6] = "???" end
		if generation == 3 or generation == 4 or generation == 6 then
			local ressources = {
				["repetition"] = require("Module:Ressources/repetition")
			}
			if generation == 3 or generation == 6 then
				if type( resultat[1]["Type concours"] ) == "table" then table.insert(donnees, resultat[1]["Type concours"][2]) else table.insert(donnees, resultat[1]["Type concours"]) end
				if type( resultat[1]["Charme concours"] ) == "table" then table.insert(donnees, resultat[1]["Charme concours"][2]) else table.insert(donnees, resultat[1]["Charme concours"]) end
				if type( resultat[1]["Blocage concours"] ) == "table" then table.insert(donnees, resultat[1]["Blocage concours"][2]) else table.insert(donnees, resultat[1]["Blocage concours"]) end
				if donnees[7] == nil then donnees[7] = "[[Fichier:Miniat type ???.png|link=Condition|alt=???]]" else donnees[7] = "[[Fichier:Miniat type " .. string.lower( donnees[7] ) .. ".png|link=" .. donnees[7] .. "|alt=" .. donnees[7] .. "]]" end
				if donnees[8] == nil then donnees[8] = "???" else donnees[8] = ressources.repetition( "♥", donnees[8], "#FFAAAA", "—" ) end
				if donnees[9] == nil then donnees[9] = "???" else donnees[9] = ressources.repetition( "♥", donnees[9], nil, "—" ) end
			elseif generation == 4 then
				table.insert(donnees, resultat[1]["Type super concours"])
				table.insert(donnees, resultat[1]["Charme super concours"])
				if donnees[7] == nil then donnees[7] = "[[Fichier:Miniat type ???.png|link=Condition|alt=???]]" else donnees[7] = "[[Fichier:Miniat type " .. string.lower( donnees[7] ) .. ".png|link=" .. donnees[7] .. "|alt=" .. donnees[7] .. "]]" end
				if donnees[8] == nil then donnees[8] = "???" else donnees[8] = ressources.repetition( "♥", donnees[8], "#FFAAAA", "—" ) end
			end
		end
	end
	return donnees
end