« Module:Compétences » : différence entre les versions
+ ajout de compétences |
Aucun résumé des modifications |
||
Ligne 8 : | Ligne 8 : | ||
["astrodynamics"] = "Astrodynamics", | ["astrodynamics"] = "Astrodynamics", | ||
["astrophysics"] = "Astrophysics", | ["astrophysics"] = "Astrophysics", | ||
["boost pack training"] = "Boost pack training", | |||
["ballistics"] = "Ballistics", | |||
["botany"] = "Botany", | ["botany"] = "Botany", | ||
["chemistry"] = "Chemistry", | ["chemistry"] = "Chemistry", | ||
Ligne 20 : | Ligne 22 : | ||
["martial arts"] = "Martial arts", | ["martial arts"] = "Martial arts", | ||
["missile weapon systems"] = "Missile weapon systems", | ["missile weapon systems"] = "Missile weapon systems", | ||
["negotiation"] = "Negotiation", | |||
["neurostrikes"] = "Neurostrikes", | |||
["outpost engineering"] = "Outpost engineering", | ["outpost engineering"] = "Outpost engineering", | ||
["outpost management"] = "Outpost management", | ["outpost management"] = "Outpost management", | ||
Ligne 29 : | Ligne 33 : | ||
["robotics"] = "Robotics", | ["robotics"] = "Robotics", | ||
["security"] = "Security", | ["security"] = "Security", | ||
["shotgun certification"] = "Shotgun certification", | |||
["sniper certification"] = "Sniper certification", | ["sniper certification"] = "Sniper certification", | ||
["starship engineering"] = "Starship engineering", | ["starship engineering"] = "Starship engineering", | ||
["targeting"] = "Targeting", | ["targeting"] = "Targeting", | ||
["xenosociology"] = "Xenosociology", | |||
} | } | ||
Version du 17 juin 2023 à 18:03
Ce module implémente le modèle {{Compétences}}.
Ajouter une compétence
Il suffit d'ajouter la ligne suivante dans la table SKILLS
.
["<nom_compétence_minuscule>"] = "<lien_page_compétence>",
<nom_compétence_minuscule>
désigne le paramètre que doit entrer l'utilisateur pour utiliser cette compétence.<lien_page_compétence>
doit correspondre au nom de l'article associé à la compétence. Il est possible d'utiliser la barre verticale|
pour afficher le lien différemment.
Merci d'aligner le symbole =
avec les reste de lignes et de toujours trier les compétences dans l'ordre alphabétique.
local p = {}
-- Merci de conserver le tri
-- TODO: Traduire les compétences une fois le jeu sorti
-- TODO: Faire évoluer cette liste pour prendre en charge les images de
-- chaque rang.
local SKILLS = {
["astrodynamics"] = "Astrodynamics",
["astrophysics"] = "Astrophysics",
["boost pack training"] = "Boost pack training",
["ballistics"] = "Ballistics",
["botany"] = "Botany",
["chemistry"] = "Chemistry",
["decontamination"] = "Decontamination",
["gastronomy"] = "Gastronomy",
["geology"] = "Geology",
["instigation"] = "Instigation",
["intimidation"] = "Intimidation",
["lasers"] = "Lasers",
["leadership"] = "Leadership",
["marksmanship"] = "Marksmanship",
["martial arts"] = "Martial arts",
["missile weapon systems"] = "Missile weapon systems",
["negotiation"] = "Negotiation",
["neurostrikes"] = "Neurostrikes",
["outpost engineering"] = "Outpost engineering",
["outpost management"] = "Outpost management",
["particle beam weapon systems"] = "Particle beam weapon systems",
["payloads"] = "Payloads",
["piloting"] = "Piloting",
["rapid reloading"] = "Rapid reloading",
["rifle certification"] = "Rifle certification",
["robotics"] = "Robotics",
["security"] = "Security",
["shotgun certification"] = "Shotgun certification",
["sniper certification"] = "Sniper certification",
["starship engineering"] = "Starship engineering",
["targeting"] = "Targeting",
["xenosociology"] = "Xenosociology",
}
-- Génère une liste des compétences avec leur niveau.
-- Fonction à appeler depuis un autre module
-- L'utilisateur doit passer un tableau associatif des compétences qu'il
-- veut afficher au format `{["nom_compétence"]="niveau_compétence"}`.
-- La compétence est ignorée si elle n'existe pas.
-- Les compétences sont triées par rang décroissant.
function p._skills_list(args)
local list = mw.html.create('ul')
local names = {}
for name, rank in pairs(args) do table.insert(names, name) end
table.sort(names, function(n1, n2) return args[n1] > args[n2] end)
for _, name in ipairs(names) do
link = SKILLS[name:lower()]
if link then
-- TODO: Améliorer le visuel
text = "[[" .. link .. "]] ➡️ " .. tostring(args[name])
list:tag('li')
:wikitext(text)
:done()
end
end
list:allDone()
local wrapper = mw.html.create('div')
:addClass('liste-simple')
:node(list)
:done()
return tostring(wrapper)
end
-- Génère une liste des compétences avec leur niveau.
-- Fonction à appeler depuis un modèle
function p.skills_list(frame)
local args = {}
local argsParent = frame:getParent().args
for cle, val in pairs(argsParent) do
if val then
args[cle] = mw.text.trim(val)
end
end
return p._skills_list(args)
end
return p