« Module:Efficacité d'une arme de Fallout » : différence entre les versions
mAucun résumé des modifications |
mAucun résumé des modifications |
||
Ligne 135 : | Ligne 135 : | ||
local comment = mw.html.create( 'p' ) | local comment = mw.html.create( 'p' ) | ||
:wikitext( "Le tableau présente les dégâts effectifs en prenant en compte le [[Seuil de dégâts]] et la [[Résistance aux dégâts]] de l'armure portée par l'adversaire. On considère que l'attaque n'est influencée par aucune aptitude et que chaque tir touche la cible. | :wikitext( "Le tableau présente les dégâts effectifs en prenant en compte le [[Seuil de dégâts]] et la [[Résistance aux dégâts]] de l'armure portée par l'adversaire. On considère que l'attaque n'est influencée par aucune aptitude et que chaque tir touche la cible. Dans ''[[Fallout]]'', les propriétés des [[Munitions de Fallout|munitions]] qui influencent les dégâts ne fonctionnent pas. Elles sont donc ignorées pour le calcul." ) | ||
:allDone() | :allDone() | ||
Version du 30 août 2021 à 18:36
Ce module est utilisé par le modèle {{Efficacité d'une arme de Fallout}} pour générer un tableau contenant les dégâts effectifs d'une arme en fonction de l'armure portée par la cible.
local armors = {
{
link = '[[Armure de combat (Fallout)|Armure de combat]]',
ca = 20,
sdrd = {
['normal'] = { sd = 5, rd = 0.4 },
['laser'] = { sd = 8, rd = 0.6 },
['feu'] = { sd = 4, rd = 0.3 },
['plasma'] = { sd = 4, rd = 0.5 },
['électricité'] = { sd = 2, rd = 0.5 },
['explosion'] = { sd = 6, rd = 0 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[Armure de la Confrérie (Fallout)|Armure de la Confrérie]]',
ca = 20,
sdrd = {
['normal'] = { sd = 8, rd = 0.4 },
['laser'] = { sd = 8, rd = 0.7 },
['feu'] = { sd = 7, rd = 0.5 },
['plasma'] = { sd = 7, rd = 0.6 },
['électricité'] = { sd = 6, rd = 0.6 },
['explosion'] = { sd = 8, rd = 0.4 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[Armure en cuir (Fallout)|Armure en cuir]]',
ca = 15,
sdrd = {
['normal'] = { sd = 2, rd = 0.2 },
['laser'] = { sd = 0, rd = 0.2 },
['feu'] = { sd = 0, rd = 0.2 },
['plasma'] = { sd = 0, rd = 0.1 },
['électricité'] = { sd = 0, rd = 0.3 },
['explosion'] = { sd = 0, rd = 0.2 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[Armure métallique (Fallout)|Armure métallique]]',
ca = 10,
sdrd = {
['normal'] = { sd = 4, rd = 0.3 },
['laser'] = { sd = 6, rd = 0.75 },
['feu'] = { sd = 4, rd = 0.1 },
['plasma'] = { sd = 4, rd = 0.2 },
['électricité'] = { sd = 0, rd = 0 },
['explosion'] = { sd = 4, rd = 0.25 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[Armure Tesla (Fallout)|Armure Tesla]]',
ca = 15,
sdrd = {
['normal'] = { sd = 4, rd = 0.2 },
['laser'] = { sd = 19, rd = 0.9 },
['feu'] = { sd = 4, rd = 0.1 },
['plasma'] = { sd = 10, rd = 0.8 },
['électricité'] = { sd = 12, rd = 0.8 },
['explosion'] = { sd = 4, rd = 0.2 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[Robe (Fallout)|Robe]]',
ca = 5,
sdrd = {
['normal'] = { sd = 0, rd = 0.2 },
['laser'] = { sd = 0, rd = 0.25 },
['feu'] = { sd = 0, rd = 0.1 },
['plasma'] = { sd = 0, rd = 0.1 },
['électricité'] = { sd = 0, rd = 0.4 },
['explosion'] = { sd = 0, rd = 0.2 },
['iem'] = { sd = 0, rd = 5 }
}
},
{
link = '[[SuperArmure (Fallout)|SuperArmure]]',
ca = 25,
sdrd = {
['normal'] = { sd = 12, rd = 0.4 },
['laser'] = { sd = 18, rd = 0.8 },
['feu'] = { sd = 12, rd = 0.6 },
['plasma'] = { sd = 10, rd = 0.4 },
['électricité'] = { sd = 12, rd = 0.4 },
['explosion'] = { sd = 20, rd = 0.5 },
['iem'] = { sd = 15, rd = 5 }
}
},
{
link = '[[SuperArmure renforcée (Fallout)|SuperArmure renforcée]]',
ca = 25,
sdrd = {
['normal'] = { sd = 13, rd = 0.5 },
['laser'] = { sd = 19, rd = 0.9 },
['feu'] = { sd = 14, rd = 0.7 },
['plasma'] = { sd = 13, rd = 0.5 },
['électricité'] = { sd = 13, rd = 0.5 },
['explosion'] = { sd = 20, rd = 0.6 },
['iem'] = { sd = 15, rd = 5.05 }
}
},
{
link = '[[Veste en cuir (Fallout)|Veste en cuir]]',
ca = 8,
sdrd = {
['normal'] = { sd = 0, rd = 0.20 },
['laser'] = { sd = 0, rd = 0.20 },
['feu'] = { sd = 0, rd = 0.10 },
['plasma'] = { sd = 0, rd = 0.10 },
['électricité'] = { sd = 0, rd = 0.30 },
['explosion'] = { sd = 0, rd = 0.10 },
['iem'] = { sd = 0, rd = 5 }
}
}
}
-------------------------------------------------------------------
local p = {}
function p._build(args)
local wpName = args['nom']
local wpDmgMin = tonumber(args['dégâts minimum'])
local wpDmgMax = tonumber(args['dégâts maximum'])
local wpDmgType = args['type de dégâts']
local wpBurst = tonumber(args['rafale']) or 1
if not wpName or not wpDmgMin or not wpDmgMax or not wpDmgType then
return '<Erreur module> Paramètre obligatoire manquant'
end
local comment = mw.html.create( 'p' )
:wikitext( "Le tableau présente les dégâts effectifs en prenant en compte le [[Seuil de dégâts]] et la [[Résistance aux dégâts]] de l'armure portée par l'adversaire. On considère que l'attaque n'est influencée par aucune aptitude et que chaque tir touche la cible. Dans ''[[Fallout]]'', les propriétés des [[Munitions de Fallout|munitions]] qui influencent les dégâts ne fonctionnent pas. Elles sont donc ignorées pour le calcul." )
:allDone()
local dmgTable = mw.html.create( 'table' )
:addClass( 'va-table va-table-right-col2')
:tag( 'caption' )
:wikitext( wpName .. ' (' .. (wpDmgMin * wpBurst) .. ' – ' .. (wpDmgMax * wpBurst) .. ') vs Armure' )
:done()
:tag( 'tr' )
:tag( 'th' ):wikitext( 'Armure' ):done()
:tag( 'th' ):wikitext( 'Dégâts effectifs' ):done()
:done()
for i, armor in pairs(armors) do
local link = armor.link
local sdrd = armor.sdrd[wpDmgType]
local dmgMin = math.floor( (math.max(0, wpDmgMin - sdrd.sd) * (1 - sdrd.rd)) + 0.5 )
local dmgMax = math.floor( (math.max(0, wpDmgMax - sdrd.sd) * (1 - sdrd.rd)) + 0.5 )
-- Calcul des dégâts pour les armes ne tirant que par rafale
if wpBurst then
dmgMin = dmgMin * wpBurst
dmgMax = dmgMax * wpBurst
end
dmgTable:node(
mw.html.create( 'tr' )
:tag( 'td' ):wikitext(link):done()
:tag( 'td' ):wikitext(dmgMin .. ' – ' .. dmgMax):done()
:done()
)
end
return tostring(comment) .. tostring(dmgTable)
end
function p.build(frame)
local args = {}
local argsParent = frame:getParent().args
for cle, val in pairs(argsParent) do
if val then
val = mw.text.trim(val)
if val ~= '' then
args[cle] = mw.text.trim(val)
end
end
end
return p._build(args)
end
return p