« Module:Compétences » : différence entre les versions

De Starfield Wiki
Aucun résumé des modifications
+bien-être +médecine
 
(11 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
local p = {}
local p = {}


-- Merci de conserver le tri et la casse
local UNKNOWN_SKILL = "[[Catégorie:Compétence inconnue]]"
--  ["nom"] = ["lien"]
 
-- Merci de conserver le tri
-- TODO: Traduire les compétences une fois le jeu sorti
-- 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 = {
local SKILLS = {
["astrodynamics"] = "Astrodynamics",
["astrodynamics"]               = "Astrodynamique",
["botany"]       = "Botany",
["astrophysics"]                = "Astrophysique",
["lasers"]       = "Lasers",
["boost pack training"]          = "Certification jet-pack",
["leadership"]   = "Leadership",
["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"
}
}


Ligne 15 : 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"}`.
-- La compétence est ignorée si elle n'existe pas.
-- 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('ul')
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, value in pairs(args) do
for _, name in ipairs(names) do
link = SKILLS[name:lower()]
link = SKILLS[name:lower()]
if link then
if link then
-- TODO: Améliorer le visuel
-- TODO: Améliorer le visuel
text = "[[" .. link .. "]] ➡️ "  .. tostring(value)
text = "[[" .. link .. "]] ➡️ "  .. tostring(args[name])
list:tag('li')
list:tag('li')
:wikitext(text)
:wikitext(text)
:done()
:done()
else
contains_unknown_skill = true
end
end
end
end
Ligne 32 : Ligne 83 :
list:allDone()
list:allDone()
local wrapper = mw.html.create('div')
local wrapper = mw.html.create("div")
:addClass('liste-simple')
: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

Documentation[voir] [modifier] [purger]

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