« Module:Compétences » : différence entre les versions
+ ajout de compétences |
+bien-être +médecine |
||
(8 versions intermédiaires par 4 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
local p = {} | local p = {} | ||
local UNKNOWN_SKILL = "[[Catégorie:Compétence inconnue]]" | |||
-- Merci de conserver le tri | -- Merci de conserver le tri | ||
Ligne 6 : | Ligne 8 : | ||
-- chaque rang. | -- chaque rang. | ||
local SKILLS = { | local SKILLS = { | ||
["astrodynamics"] = " | ["astrodynamics"] = "Astrodynamique", | ||
["astrophysics"] = " | ["astrophysics"] = "Astrophysique", | ||
["botany"] = " | ["boost pack training"] = "Certification jet-pack", | ||
["chemistry"] = " | ["ballistics"] = "Balistique", | ||
["botany"] = "Botanique", | |||
["chemistry"] = "Chimie", | |||
["concealment"] = "Dissimulation", | |||
["decontamination"] = "Decontamination", | ["decontamination"] = "Decontamination", | ||
["gastronomy"] = " | ["demolitions"] = "Démolition", | ||
["geology"] = " | ["energy weapon systems"] = "Sys. armes à énergie", | ||
["instigation"] = " | ["gastronomy"] = "Gastronomie", | ||
["geology"] = "Géologie", | |||
["incapacitation"] = "Neutralisation", | |||
["instigation"] = "Provocation", | |||
["intimidation"] = "Intimidation", | ["intimidation"] = "Intimidation", | ||
["lasers"] = "Lasers", | ["lasers"] = "Lasers", | ||
["leadership"] = "Leadership", | ["leadership"] = "Leadership", | ||
["marksmanship"] = " | ["marksmanship"] = "Adresse au tir", | ||
["martial arts"] = " | ["martial arts"] = "Arts martiaux", | ||
["missile weapon systems"] = " | ["medicine"] = "Médecine", | ||
["outpost engineering"] = " | ["missile weapon systems"] = "Systèmes d'armes à missiles", | ||
["outpost management"] = " | ["negotiation"] = "Négotiation", | ||
["particle beam weapon systems"] = " | ["neurostrikes"] = "Frappes névralgiques", | ||
["payloads"] = " | ["outpost engineering"] = "Ingénierie avant-poste", | ||
["piloting"] = " | ["outpost management"] = "Gestion d'avant-poste", | ||
["rapid reloading"] = " | ["particle beams"] = "Rayons à particules", | ||
["rifle certification"] = " | ["particle beam weapon systems"] = "Systèmes d'armes à particules", | ||
["robotics"] = " | ["payloads"] = "Chargements", | ||
["security"] = " | ["piloting"] = "Pilotage", | ||
["sniper certification"] = " | ["rapid reloading"] = "Rechargement rapide", | ||
["starship engineering"] = " | ["rifle certification"] = "Certification en fusil", | ||
["targeting"] = " | ["robotics"] = "Robotique", | ||
["scavenging"] = "Récupération", | |||
["security"] = "Securité", | |||
["shotgun certification"] = "Certif. fusil à pompe", | |||
["sniper certification"] = "Certification en sniper", | |||
["starship engineering"] = "Ingénierie aérospatiale", | |||
["stealth"] = "Furtivité", | |||
["targeting"] = "Visée", | |||
["theft"] = "Vol", | |||
["weight lifting"] = "Haltérophilie", | |||
["wellness"] = "Bien-être", | |||
["xenosociology"] = "Xénosociologie" | |||
} | } | ||
Ligne 38 : | Ligne 57 : | ||
-- L'utilisateur doit passer un tableau associatif des compétences qu'il | -- L'utilisateur doit passer un tableau associatif des compétences qu'il | ||
-- veut afficher au format `{["nom_compétence"]="niveau_compétence"}`. | -- veut afficher au format `{["nom_compétence"]="niveau_compétence"}`. | ||
-- | -- Si l'utilisateur renseigne inconnue alors la fonction ajoute | ||
-- | -- la catégorie "Compétence inconnue". | ||
function p._skills_list(args) | function p._skills_list(args) | ||
local list = mw.html.create( | local list = mw.html.create("ul") | ||
local names = {} | local names = {} | ||
for name, rank in pairs(args) do table.insert(names, name) end | for name, rank in pairs(args) do table.insert(names, name) end | ||
table.sort(names, function(n1, n2) return args[n1] > args[n2] end) | table.sort(names, function(n1, n2) return args[n1] > args[n2] end) | ||
local contains_unknown_skill = false | |||
for _, name in ipairs(names) do | for _, name in ipairs(names) do | ||
Ligne 55 : | Ligne 76 : | ||
:wikitext(text) | :wikitext(text) | ||
:done() | :done() | ||
else | |||
contains_unknown_skill = true | |||
end | end | ||
end | end | ||
Ligne 60 : | Ligne 83 : | ||
list:allDone() | list:allDone() | ||
local wrapper = mw.html.create( | local wrapper = mw.html.create("div") | ||
:addClass( | :addClass("liste-simple") | ||
:node(list) | :node(list) | ||
:done() | :done() | ||
return tostring(wrapper) | |||
local category = "" | |||
if contains_unknown_skill then | |||
category = UNKNOWN_SKILL | |||
end | |||
return tostring(wrapper) .. category | |||
end | end | ||
Dernière version du 19 novembre 2023 à 19:39
Ce module implémente le modèle {{Compétences}}.
Ajouter une compétence[modifier le wikicode]
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 = {}
local UNKNOWN_SKILL = "[[Catégorie:Compétence inconnue]]"
-- 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"] = "Astrodynamique",
["astrophysics"] = "Astrophysique",
["boost pack training"] = "Certification jet-pack",
["ballistics"] = "Balistique",
["botany"] = "Botanique",
["chemistry"] = "Chimie",
["concealment"] = "Dissimulation",
["decontamination"] = "Decontamination",
["demolitions"] = "Démolition",
["energy weapon systems"] = "Sys. armes à énergie",
["gastronomy"] = "Gastronomie",
["geology"] = "Géologie",
["incapacitation"] = "Neutralisation",
["instigation"] = "Provocation",
["intimidation"] = "Intimidation",
["lasers"] = "Lasers",
["leadership"] = "Leadership",
["marksmanship"] = "Adresse au tir",
["martial arts"] = "Arts martiaux",
["medicine"] = "Médecine",
["missile weapon systems"] = "Systèmes d'armes à missiles",
["negotiation"] = "Négotiation",
["neurostrikes"] = "Frappes névralgiques",
["outpost engineering"] = "Ingénierie avant-poste",
["outpost management"] = "Gestion d'avant-poste",
["particle beams"] = "Rayons à particules",
["particle beam weapon systems"] = "Systèmes d'armes à particules",
["payloads"] = "Chargements",
["piloting"] = "Pilotage",
["rapid reloading"] = "Rechargement rapide",
["rifle certification"] = "Certification en fusil",
["robotics"] = "Robotique",
["scavenging"] = "Récupération",
["security"] = "Securité",
["shotgun certification"] = "Certif. fusil à pompe",
["sniper certification"] = "Certification en sniper",
["starship engineering"] = "Ingénierie aérospatiale",
["stealth"] = "Furtivité",
["targeting"] = "Visée",
["theft"] = "Vol",
["weight lifting"] = "Haltérophilie",
["wellness"] = "Bien-être",
["xenosociology"] = "Xénosociologie"
}
-- 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"}`.
-- Si l'utilisateur renseigne inconnue alors la fonction ajoute
-- la catégorie "Compétence inconnue".
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)
local contains_unknown_skill = false
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()
else
contains_unknown_skill = true
end
end
list:allDone()
local wrapper = mw.html.create("div")
:addClass("liste-simple")
:node(list)
:done()
local category = ""
if contains_unknown_skill then
category = UNKNOWN_SKILL
end
return tostring(wrapper) .. category
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