Modification de Module:Infobox/Arme gamebryo

Attention : vous n’êtes pas connecté(e). Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous vous connectez ou créez un compte, vos modifications seront attribuées à votre propre nom d’utilisateur(rice) et vous aurez d’autres avantages.

La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.

Version actuelle Votre texte
Ligne 1 : Ligne 1 :
local localdata = require( 'Module:Infobox/Localdata' )
local localdata = require( 'Module:Infobox/Localdata' )
local icon = require( 'Module:Icône' )
local icon = require( 'Module:Icône' )
local explosionIcon = icon._build({ 'explosion' })
local effectIcon = icon._build({ 'effet' })
local tooltip = require( 'Module:Infobulle' )
local tooltipDmgAllPerks = 'Dégâts avec toutes les aptitudes mentionnées'
local tooltipDmgPerk = 'Dégâts supplémentaires par attaque avec cette aptitude'
local tooltipAttsecAllPerks = 'Attaques par seconde avec toutes les aptitudes mentionnées'
local tooltipAttsecPerk = 'Attaques supplémentaires par seconde avec cette aptitude'
local tooltipReloadAllPerks = 'Durée du rechargement avec toutes les aptitudes mentionnées'
local tooltipReloadPerk = 'Diminution de la durée de rechargement avec cette aptitude'
local tooltipStyle = 'color:#51E527;'


--------------------------------------------------------
--------------------------------------------------------
Ligne 18 : Ligne 6 :
--------------------------------------------------------
--------------------------------------------------------


-- Récupère un paramètre au format number
-- Récupère un paramètre en forçant à 0
-- Force à 0 si nil ou s'il n'est pas un nombre
-- si nil ou n'est pas nombre
function forceNumber(data)
function forceNumber(data)
return tonumber(data) or 0
if not data or type(data) ~= 'number' then
return 0
end
return data
end
end


-- Formatage du nombre pour l'affichage
function formatData(data, round)
function formatNumber(data, round)
-- local formattedData
return string.format(round or "%.1f", data)
-- if data and data > 0 then
-- formattedData = string.format(round, data)
-- end
return string.format(round, data)
end
end


-- Formatage des infobulles
-- Type d'arme
function formatTooltip(text, title)
local weaponCompletType = localdata["type"] or ""
    return tooltip._build({ text, title, style = tooltipStyle })
local weaponType = weaponCompletType:gsub(" unique", "")
local isUnique = weaponCompletType:find(' unique')
 
-- Dégâts
local attacksPerSec = forceNumber(localdata["attack shots/sec"])
 
-- Augmentation des dégâts via les aptitudes
-- Les aptitudes agissent comme un coefficient multiplicateur
local perksAttacksPerSec = 0
 
for i = 1, 9 do
local perkAttsecMult = forceNumber(localdata["perk" .. i .. " attsec mult"])
if perkAttsecMult > 0 then
perksAttacksPerSec = perksAttacksPerSec + (attacksPerSec * perkAttsecMult)
else
break
end
end
end


--------------------------------------------------------
local perksAttacksPerSecTotal = attacksPerSec + perksAttacksPerSec
-----              Calcul des dégâts              -----
--------------------------------------------------------


-- Type d'arme
-- Dégâts critiques
local weaponCompletType = (localdata['type'] or ''):lower()
local critChance = forceNumber(localdata["crit % mult"])
local weaponType = weaponCompletType:gsub(' unique', '')
local isUnique = weaponCompletType:find(' unique') ~= nil


-- Nombre d'attaques par seconde
local critChanceModified = 0
local attacksPerSec = forceNumber(localdata["attack shots/sec"])
if weaponType == 'gunautomatic' and perksAttacksPerSecTotal > 0 then
 
critChanceModified = critChance / perksAttacksPerSecTotal
-- Durée du rechargement
local reloadTime = 0
if weaponType == "gun" or weaponType == "gunautomatic" or weaponType == "gunhandload" then
    reloadTime = forceNumber(localdata["reload time"])
end
end


-- Nombre de projectiles par attaque
-- projectiles
local proj = 1
local proj = 1
if weaponType == "gun" or weaponType == "gunautomatic" or weaponType == "gunhandload" then
if weaponType == "gun" or weaponType == "gunautomatic" or weaponType == "gunhandload" then
    proj = forceNumber(localdata["projectiles"])
proj = forceNumber(localdata["projectiles"])
    if proj == 0 then proj = 1 end -- on force à 1 si projectile non renseigné
if proj == 0 then proj = 1 end
end
end


-- Taille du magasin
local clipRounds = forceNumber(localdata["clip rounds"])
local clipRounds = forceNumber(localdata["clip rounds"])  
local ammoUse = forceNumber(localdata["ammo use"])
 
-- Nombre de cartouches par attaque
local ammoUse = forceNumber(localdata["ammo use"])  


-- Nombre d'attaques par rechargement
local shotsPerReload = 0
local shotsPerReload = 0
if ammoUse > 0 then
if ammoUse > 0 then
    shotsPerReload = math.floor(clipRounds / ammoUse)
shotsPerReload = math.floor(clipRounds / ammoUse)
end
end


-- Dégâts par type : balistique, explosif, effet
-- Durée de rechargement
local reloadTime = 0
if weaponType == "gun" or weaponType == "gunautomatic" or weaponType == "gunhandload" then
reloadTime = forceNumber(localdata["reload time"])
end


local dmgNormTotal = forceNumber(localdata["damage"])
-- Durée de rechargement en prenant en compte les aptitudes
local dmgNormProj = dmgNormTotal / proj
 
local dmgEffProj = forceNumber(localdata["effect damage"])
local dmgEffTotal = dmgEffProj * proj
 
local dmgExplProj = forceNumber(localdata["explosion damage"])
local dmgExplTotal = dmgExplProj * proj
 
-- Effets des aptitudes sur les dégâts
local perksAttacksPerSec = 0
local perksDmgNorm = 0
local perksDmgEff = 0
local perksDmgExpl = 0
local perksReloadTime = 0
local perksReloadTime = 0
local perksAttacksPerSecItems = ''
local perksDmgItems = ''
local perksReloadTimeItems = ''


for i = 1, 9 do
for i = 1, 9 do
    local perk = localdata["perk" .. i]
local perkReloadTime = localdata["perk" .. i .. " reload mult"]
if perkReloadTime and type(perkReloadTime) == "number" then
perksReloadTime = perksReloadTime + (reloadTime * perkReloadTime)
else
break
end
end


    if perk then
local perksReloadTimeTotal = reloadTime - perksReloadTime
        -- Calcul de chaque donnée
        local perkAttacksPerSec = attacksPerSec * forceNumber(localdata["perk" .. i .. " attsec mult"])
        local perkDmgNorm = (dmgNormTotal * forceNumber(localdata["perk" .. i .. " mult"])) + forceNumber(localdata["perk" .. i .. " add"])
        local perkDmgEff = (dmgEffTotal * forceNumber(localdata["perk" .. i .. " eff mult"])) + forceNumber(localdata["perk" .. i .. " eff add"])
        local perkDmgExpl = (dmgExplTotal * forceNumber(localdata["perk" .. i .. " expl mult"])) + forceNumber(localdata["perk" .. i .. " expl add"])
        local perkReloadTime = reloadTime * forceNumber(localdata["perk" .. i .. " reload mult"])


        -- Somme des effets et gestion
local damNormTotal = forceNumber(localdata["damage"])
        -- de l'affichage de la table Effets des aptitudes
local damNormProj = damNormTotal / proj


        if perkAttacksPerSec > 0 then
local damEffProj = forceNumber(localdata["effect damage"])
            perksAttacksPerSec = perksAttacksPerSec + perkAttacksPerSec
local damEffTotal = damEffProj * proj
            perksAttacksPerSecItems = perksAttacksPerSecItems .. '<li>' .. perk .. '<div style="float:right;">+ ' .. formatTooltip(formatNumber(perkAttacksPerSec), tooltipAttsecPerk) .. '</div></li>'
        end


        if perkDmgNorm > 0 or perkDmgEff > 0 or perkDmgExpl > 0 then
local damExplProj = forceNumber(localdata["explosion damage"])
            perksDmgItems = perksDmgItems .. '<li>' .. perk .. '<div style="float:right;">'
local damExplTotal = damExplProj * proj


            local addDmg = ''
local perksDamNorm = 0


            if perkDmgNorm > 0 then
for i = 1, 9 do
                perksDmgNorm = perksDmgNorm + perkDmgNorm
local perkDamNormMult = localdata["perk" .. i .. " mult"] or 0
                addDmg = addDmg .. ' + ' .. formatNumber(perkDmgNorm)
local perkDamNormAdd  = localdata["perk" .. i .. " add"] or 0
            end
if type(perkDamNormMult) == "number" and type(perkDamNormAdd) == "number" then
perksDamNorm = perksDamNorm + (damNormTotal * perkDamNormMult) + perkDamNormAdd
else
break
end
end


            if perkDmgExpl > 0 then
local perksDamNormProj = perksDamNorm / proj
                perksDmgExpl = perksDmgExpl + perkDmgExpl
local perksDamNormTotal = damNormTotal + perksDamNorm
                addDmg = addDmg .. ' + ' .. formatNumber(perkDmgExpl) .. ' ' .. explosionIcon
local perksDamNormProjTotal = damNormProj + perksDamNormProj
            end


            if perkDmgEff > 0 then
local perksDamEff = 0
                perksDmgEff = perksDmgEff + perkDmgEff
                addDmg = addDmg .. ' + ' .. formatNumber(perkDmgEff) .. ' ' .. effectIcon
            end


            perksDmgItems = perksDmgItems .. formatTooltip(addDmg, tooltipDmgPerk) .. '</div></li>'
for i = 1, 9 do
        end
local perkDamEffMult = localdata["perk" .. i .. " eff mult"] or 0
 
local perkDamEffAdd  = localdata["perk" .. i .. " eff add"] or 0
        if perkReloadTime > 0 then
if type(perkDamEffMult) == "number" and type(perkDamEffAdd) == "number" then
            perksReloadTime = perksReloadTime + perkReloadTime
perksDamEff = perksDamEff + (damEffProj * perkDamEffMult) + perkDamEffAdd
            perksReloadTimeItems = perksReloadTimeItems .. '<li>' .. perk .. '<div style="float:right;">- ' .. formatTooltip(formatNumber(perkReloadTime), tooltipReloadPerk)  .. ' s</div></li>'
else
        end
break
    else
end
        break
    end
end
end


local perksAttacksPerSecTotal = attacksPerSec + perksAttacksPerSec
local perksDamEffProj = perksDamEff / proj
local perksDamEffTotal = damEffTotal + perksDamEff
local perksDamEffProjTotal = damEffProj + perksDamEffProj


local perksDmgNormProj = perksDmgNorm / proj
local perksDamExpl = 0
local perksDmgNormTotal = dmgNormTotal + perksDmgNorm
local perksDmgNormProjTotal = dmgNormProj + perksDmgNormProj


local perksDmgEffProj = perksDmgEff / proj
for i = 1, 9 do
local perksDmgEffTotal = dmgEffTotal + perksDmgEff
local perkDamExplMult = localdata["perk" .. i .. " eff mult"] or 0
local perksDmgEffProjTotal = dmgEffProj + perksDmgEffProj
local perkDamExplAdd  = localdata["perk" .. i .. " eff add"] or 0
if type(perkDamExplMult) == "number" and type(perkDamExplAdd) == "number" then
perksDamExpl = perksDamExpl + (damExplTotal * perkDamExplMult) + perkDamExplAdd
else
break
end
end


local perksDmgExplProj = perksDmgExpl / proj
local perksDamExplProj = perksDamExpl / proj
local perksDmgExplTotal = dmgExplTotal + perksDmgExpl
local perksDamExplTotal = damExplTotal + perksDamExpl
local perksDmgExplProjTotal = dmgExplTotal + perksDmgExplProj
local perksDamExplProjTotal = damExplTotal + perksDamExplProj


local perksReloadTimeTotal = reloadTime - perksReloadTime
-- Calcul des DPS
local DPS = (damNormTotal + damExplTotal) * attacksPerSec
local DPSPerks = (perksDamNormTotal + perksDamExplTotal) * perksAttacksPerSecTotal


-- Dégâts par seconde
-- Calcul de la durée de rechargement
local dps = (dmgNormTotal + dmgExplTotal) * attacksPerSec
local DPSReload = 0
local perksDps = (perksDmgNormTotal + perksDmgExplTotal) * perksAttacksPerSecTotal
local DPSReloadPerks = 0
 
-- Dégâts par seconde en prenant en compte la durée du rechargement
local dpsReload = 0
local perksDpsReload = 0


local coeff = 1
local coeff = 1
if weaponType == "gunhandload" then
if weaponType == "gunhandload" then
    coeff = shotsPerReload
coeff = shotsPerReload
end
end


if shotsPerReload > 0 then
if shotsPerReload > 0 then
    if attacksPerSec > 0 then
if attacksPerSec > 0 then
        dpsReload = ((dmgNormTotal + dmgExplTotal) * shotsPerReload) /
DPSReload = ((damNormTotal + damExplTotal) * shotsPerReload) /
            ((shotsPerReload / attacksPerSec) + reloadTime * coeff)
((shotsPerReload / attacksPerSec) + reloadTime * coef)
    end
end
   
    if perksAttacksPerSecTotal > 0 then
if perksAttacksPerSecTotal > 0 then
        perksDpsReload = ((perksDmgNormTotal + perksDmgExplTotal) * shotsPerReload) /
DPSReloadPerks = ((perksDamNormTotal + perksDamExplTotal) * shotsPerReload) /
            ((shotsPerReload / perksAttacksPerSecTotal) + perksReloadTimeTotal * coeff)
((shotsPerReload / perksAttacksPerSecTotal) + perksReloadTimeTotal * coef)
    end
end
end
end
 
-- Multiplicateur des chances de critique
local critChanceMult = forceNumber(localdata["crit % mult"])
if weaponType == 'gunautomatic' and perksAttacksPerSecTotal > 0 then
    -- Pour les armes automatiques, on divise par le nombre d'attaques par seconde
    critChanceMult = critChanceMult / perksAttacksPerSecTotal
end


--------------------------------------------------------
--------------------------------------------------------
Ligne 196 : Ligne 175 :
--------------------------------------------------------
--------------------------------------------------------


-- Dégâts par attaque
attacksPerSec = formatData(attacksPerSec, "%.1f")
local dmgPerAttackCell = formatNumber(dmgNormTotal)
perksAttacksPerSec = formatData(perksAttacksPerSec, "%.1f")
if perksDmgNorm > 0 then
perksAttacksPerSecTotal = formatData(perksAttacksPerSecTotal, "%.1f")
    dmgPerAttackCell = dmgPerAttackCell .. ' (' .. formatTooltip(formatNumber(perksDmgNormTotal), tooltipDmgAllPerks) .. ')'
critChance = formatData(critChance, "%.2f")
critChanceModified = formatData(critChanceModified, "%.2f")
reloadTime = formatData(reloadTime, "%.1f")
perksReloadTime = formatData(perksReloadTime, "%.1f")
perksReloadTimeTotal = formatData(perksReloadTimeTotal, "%.1f")
damNormProj = formatData(damNormProj, "%.1f")
perksDamNorm = formatData(perksDamNorm, "%.1f")
perksDamNormProj = formatData(perksDamNormProj, "%.1f")
perksDamNormTotal = formatData(perksDamNormTotal, "%.1f")
perksDamNormProjTotal = formatData(perksDamNormProjTotal, "%.1f")
perksDamEffProj = formatData(perksDamEffProj, "%.1f")
perksDamEffTotal = formatData(perksDamEffTotal, "%.1f")
perksDamEffProjTotal = formatData(perksDamEffProjTotal, "%.1f")
perksDamExpl = formatData(perksDamExpl, "%.1f")
perksDamExplProj = formatData(perksDamExplProj, "%.1f")
perksDamExplTotal = formatData(perksDamExplTotal, "%.1f")
perksDamExplProjTotal = formatData(perksDamExplProjTotal, "%.1f")
DPS = formatData(DPS, "%.1f")
DPSPerks = formatData(DPSPerks, "%.1f")
DPSReload = formatData(DPSReload, "%.1f")
DPSReloadPerks = formatData(DPSReloadPerks, "%.1f")
 
local damagePerAttackCell = damNormTotal
if perksDamNormTotal > 0 then damagePerAttackCell = damagePerAttackCell .. ' (' .. perksDamNormTotal .. ')' end
if damExplTotal > 0 then
damagePerAttackCell = damagePerAttackCell .. ' + ' .. damExplTotal
if perksDamExplTotal > 0 then damagePerAttackCell = damagePerAttackCell .. ' (' .. perksDamExplTotal .. ')' end
damagePerAttackCell = damagePerAttackCell .. ' ' .. icon.build({ 'explosion' })
end
end
if dmgExplTotal > 0 then
 
    dmgPerAttackCell = dmgPerAttackCell .. ' + ' .. formatNumber(dmgExplTotal)
if damEffTotal > 0 then
    if perksDmgExpl > 0 then
local effectDuration = localdata["effect duration"] or "1"
        dmgPerAttackCell = dmgPerAttackCell .. ' (' .. formatTooltip(formatNumber(perksDmgExplTotal), tooltipDmgAllPerks) .. ')'
damagePerAttackCell = damagePerAttackCell .. ' + ' .. damEffTotal
    end
if perksDamEffTotal > 0 then damagePerAttackCell = damagePerAttackCell .. ' (' .. perksDamEffTotal .. ')' end
    dmgPerAttackCell = dmgPerAttackCell .. ' ' .. explosionIcon
damagePerAttackCell = damagePerAttackCell .. ' sur ' .. effectDuration .. ' s ' .. icon.build({ 'effet' })
end
end
if dmgEffTotal > 0 then
 
    local effectDuration = localdata["effect duration"] or "1"
local damagePerProjCell = damNormProj
    dmgPerAttackCell = dmgPerAttackCell .. ' + ' .. formatNumber(dmgEffTotal)
if perksDamNormProj > 0 then damagePerProjCell = damagePerProjCell .. ' (' .. perksDamNormProj .. ')' end
    if perksDmgEff > 0 then
if damExplProj > 0 then
        dmgPerAttackCell = dmgPerAttackCell .. ' (' .. formatTooltip(formatNumber(perksDmgEffTotal), tooltipDmgAllPerks) .. ')'
damagePerProjCell = damagePerProjCell .. ' + ' .. damExplProj
    end
if perksDamExplProjTotal > 0 then damagePerProjCell = damagePerProjCell .. ' (' .. perksDamExplProjTotal .. ')' end
    dmgPerAttackCell = dmgPerAttackCell .. ' sur ' .. effectDuration .. ' s ' .. effectIcon
damagePerProjCell = damagePerProjCell .. ' ' .. icon.build({ 'explosion' })
end
end


-- Dégâts par projectile
if damEffProj > 0 then
local dmgPerProjCell = formatNumber(dmgNormProj)
local effectDuration = localdata["effect duration"] or "1"
if perksDmgNormProj > 0 then
damagePerProjCell = damagePerProjCell .. ' + ' .. damEffProj
    dmgPerProjCell = dmgPerProjCell .. ' (' .. formatTooltip(formatNumber(perksDmgNormProjTotal), tooltipDmgAllPerks) .. ')'
if perksDamEffProjTotal > 0 then damagePerProjCell = damagePerProjCell .. ' (' .. perksDamEffProjTotal .. ')' end
end
damagePerProjCell = damagePerProjCell .. ' sur ' .. effectDuration .. ' s ' .. icon.build({ 'effet' })
if dmgExplProj > 0 then
    dmgPerProjCell = dmgPerProjCell .. ' + ' .. formatNumber(dmgExplProj)
    if perksDmgExplProj > 0 then
        dmgPerProjCell = dmgPerProjCell .. ' (' .. formatTooltip(formatNumber(perksDmgExplProjTotal), tooltipDmgAllPerks) .. ')'
    end
    dmgPerProjCell = dmgPerProjCell .. ' ' .. explosionIcon
end
if dmgEffProj > 0 then
    local effectDuration = localdata["effect duration"] or "1"
    dmgPerProjCell = dmgPerProjCell .. ' + ' .. formatNumber(dmgEffProj)
    if perksDmgEffProj > 0 then
        dmgPerProjCell = dmgPerProjCell .. ' (' .. formatTooltip(formatNumber(perksDmgEffProjTotal), tooltipDmgAllPerks) .. ')'
    end
    dmgPerProjCell = dmgPerProjCell .. ' sur ' .. effectDuration .. ' s ' .. effectIcon
end
end


-- Dégâts par seconde
local dpsCell = DPS
local dpsCell = formatNumber(dps)
if DPSPerks > 0 then dpsCell = dpsCell .. ' ('.. DPSPerks .. ')' end
if perksDps > dps then
if damEffTotal > 0 then
    dpsCell = dpsCell .. ' ('.. formatTooltip(formatNumber(perksDps), tooltipDmgAllPerks) .. ')'
dpsCell = dpsCell .. ' + ' .. damEffTotal
end
if perksDamEffTotal > 0 then dpsCell = dpsCell .. ' (' .. perksDamEffTotal .. ')' end
if dmgEffTotal > 0 then
dpsCell = dpsCell .. ' ' .. icon.build({ 'effet' })
    dpsCell = dpsCell .. ' + ' .. formatNumber(dmgEffTotal)
    if perksDmgEff > 0 then
        dpsCell = dpsCell .. ' (' .. formatTooltip(formatNumber(perksDmgEffTotal), tooltipDmgAllPerks) .. ')'
    end
    dpsCell = dpsCell .. ' ' .. effectIcon
end
end


-- Dégâts par seconde (avec rechargement)
local dpsReloadCell = DPSReload
local dpsReloadCell = formatNumber(dpsReload)
if DPSReloadPerks > 0 then dpsReloadCell = dpsReloadCell .. ' ('.. DPSReloadPerks .. ')' end
if perksDpsReload > dpsReload then
if damEffTotal > 0 then
    dpsReloadCell = dpsReloadCell .. ' ('.. formatTooltip(formatNumber(perksDpsReload), tooltipDmgAllPerks) .. ')'
dpsReloadCell = dpsReloadCell .. ' + ' .. damEffTotal
end
if perksDamEffTotal > 0 then dpsReloadCell = dpsReloadCell .. ' (' .. perksDamEffTotal .. ')' end
if dmgEffTotal > 0 then
dpsReloadCell = dpsReloadCell .. ' ' .. icon.build({ 'effet' })
    dpsReloadCell = dpsReloadCell .. ' + ' .. formatNumber(dmgEffTotal)
    if perksDmgEff > 0 then
        dpsReloadCell = dpsReloadCell .. ' (' .. formatTooltip(formatNumber(perksDmgEffTotal), tooltipDmgAllPerks) .. ')'
    end
    dpsReloadCell = dpsReloadCell .. ' ' .. effectIcon
end
end


-- Multiplicateur de critique
local critMultCell = critChance
local critMultCell = 'x ' .. formatNumber(critChanceMult, "%.2f")
if critChanceModified > 0 then critMultCell = critChanceModified end
 
critMultCell = 'x ' .. critMultCell
-- Attaques par seconde
local attackPerSecCell = formatNumber(attacksPerSec)
if perksAttacksPerSec > 0 then
    attackPerSecCell = attackPerSecCell .. ' (' .. formatTooltip(formatNumber(perksAttacksPerSecTotal), tooltipAttsecAllPerks) .. ')'
end


-- Durée de rechargement
local attackPerSecondCell = attacksPerSecError
local reloadTimeCell = formatNumber(reloadTime)
if perksAttacksPerSecTotal > 0 then attackPerSecondCell = attackPerSecondCell .. ' (' .. perksAttacksPerSecTotal .. ')' end
if perksReloadTime > 0 then
    reloadTimeCell = reloadTimeCell .. ' (' .. formatTooltip(formatNumber(perksReloadTimeTotal), tooltipReloadAllPerks)  .. ')'
end


-- Effets des aptitudes
local reloadTimeCell = reloadTime
if #perksDmgItems > 0 then
if perksReloadTimeTotal > 0 then reloadTimeCell = reloadTimeCell .. ' (' .. perksReloadTimeTotal .. ')' end
    perksDmgItems = '<ul class="avt-simple-list">' .. perksDmgItems .. '</ul>'
else
    perksDmgItems = nil
end
if #perksAttacksPerSecItems > 0 then
    perksAttacksPerSecItems = '<ul class="avt-simple-list">' .. perksAttacksPerSecItems .. '</ul>'
else
    perksAttacksPerSecItems = nil
end
if #perksReloadTimeItems > 0 then
    perksReloadTimeItems = '<ul class="avt-simple-list">' .. perksReloadTimeItems .. '</ul>'
else
    perksReloadTimeItems = nil
end


--------------------------------------------------------
--------------------------------------------------------
Ligne 305 : Ligne 265 :
{ type = 'images', imageparameters = { 'image', 'image2', 'image3', 'image4', 'image5' }, captionparameter = { 'légende', 'image desc' }},
{ type = 'images', imageparameters = { 'image', 'image2', 'image3', 'image4', 'image5' }, captionparameter = { 'légende', 'image desc' }},
{ type = 'table', title = 'Conditions d\'utilisation', rows = {
{ type = 'table', title = 'Conditions d\'utilisation', rows = {
{ type = 'row', label = 'Compétence', value = 'skill' },
{ type = 'row', label = 'Compétence', value = 'compétence' },
{ type = 'row', label = 'Force', value = 'strength req' }
{ type = 'row', label = 'Force', value = 'force' }
}},
}},
{ type = 'table', title = 'Statistiques de combat', collapseparameters = { collapsible = true, collapsed = true }, rows = {
{ type = 'table', title = 'Statistiques de combat', collapseparameters = { collapsible = true, collapsed = true }, rows = {
        { type = 'row', label = 'Dégâts par attaque', value = function() return dmgPerAttackCell end },
{ type = 'row', label = 'Dégâts par attaque', value = function() return damagePerAttackCell end },
        { type = 'row', label = 'Dégâts par projectile', value = function() return dmgPerProjCell end },
{ type = 'row', label = 'Dégâts par projectile', value = function() return damagePerProjCell end },
        { type = 'row', label = 'Dégâts par seconde', value = function() return dpsCell end },
{ type = 'row', label = 'Dégâts par seconde', value = function() return dpsCell end },
        { type = 'row', label = 'Dégâts par seconde (avec rechargement)', value = function() return dpsReloadCell end },
{ type = 'row', label = 'Dégâts par seconde (avec rechargement)', value = function() return dpsReloadCell end },
        { type = 'row', label = 'Dégâts critiques', value = 'crit dmg' },
{ type = 'row', label = 'Dégâts critiques', value = 'crit dmg' },
        { type = 'row', label = 'Multiplicateur de critique', value = function() return critMultCell end },
{ type = 'row', label = 'Multiplicateur de critique', value = function() return critMultCell end },
        { type = 'row', label = 'Attaques par seconde', value = function() return attackPerSecCell end },
{ type = 'row', label = 'Attaques par seconde', value = function() return attackPerSecondCell end },
        { type = 'row', label = 'Points d\'action', value = 'ap' },
{ type = 'row', label = 'Points d\'action', value = 'ap' },
        { type = 'row', label = 'Projectiles', value = 'projectiles' },
{ type = 'row', label = 'Projectiles', value = 'projectiles' },
        { type = 'row', label = 'Dispersion', value = 'min spread' },
{ type = 'row', label = 'Dispersion', value = 'min spread' },
        { type = 'row', label = 'Effet', value = 'other effect' },
{ type = 'row', label = 'Effet', value = 'other effect' },
        { type = 'row', label = 'Effet critique', value = 'crit effect' }
{ type = 'row', label = 'Effet critique', value = 'crit effect' }
    }},
}},
    { type = 'table', title = 'Munitions et rechargement', collapseparameters = { collapsible = true, collapsed = true }, rows = {
{ type = 'table', title = 'Munitions et rechargement', collapseparameters = { collapsible = true, collapsed = true }, rows = {
        { type = 'row', label = 'Type de munitions', value = 'ammo' },
{ type = 'row', label = 'Type de munitions', value = 'ammo' },
        { type = 'row', label = 'Projectiles par tir', value = 'ammo use' },
{ type = 'row', label = 'Projectiles par tir', value = 'ammo use' },
        { type = 'row', label = 'Tirs par magasin', value = function() return formatNumber(shotsPerReload) end },
{ type = 'row', label = 'Tirs par magasin', function() return shotsPerReload end },
        { type = 'row', label = 'Capacité', value = 'clip rounds' },
{ type = 'row', label = 'Capacité', value = 'clip rounds' },
        { type = 'row', label = 'Durée de rechargement', value = function() return reloadTimeCell end }
{ type = 'row', label = 'Durée de rechargement', value = function() return reloadTimeCell end }
    }},
{ type = 'table', title = 'Effets des aptitudes', collapseparameters = { collapsible = true, collapsed = true }, rows = {
{ type = 'row', label = 'Dégâts', value = function() return perksDmgItems end },
{ type = 'row', label = 'Attaques par seconde', value = function() return perksAttacksPerSecItems end },
{ type = 'row', label = 'Rechargement', value = function() return perksReloadTimeItems end }
}},
}},
{ type = 'table', title = 'Autres propriétés', rows = {
{ type = 'table', title = 'Autres propriétés', rows = {
Ligne 340 : Ligne 295 :
{ type = 'row', label = 'Réparation', value = 'repair' },
{ type = 'row', label = 'Réparation', value = 'repair' },
{ type = 'row', label = 'Quêtes', value = 'quêtes' }
{ type = 'row', label = 'Quêtes', value = 'quêtes' }
}},
{ type = 'table', title = 'Effets des aptitudes', rows = {
-- TODO
}},
}},
{ type = 'table', title = 'Technique', collapseparameters = { collapsible = true, collapsed = true }, rows = {
{ type = 'table', title = 'Technique', collapseparameters = { collapsible = true, collapsed = true }, rows = {
{ type = 'row', label = '[[Form ID]]', value = 'formid' },
{ type = 'row', label = '[[Form ID|Base ID]]', value = 'baseid' },
{ type = 'row', label = '[[Editor ID]]', value = 'editorid' }
{ type = 'row', label = 'Editor ID', value = 'editorid' }
}},
}},
{ type = 'text', value = 'pied' }
{ type = 'text', value = 'pied' }
}
}
}
}
Notez bien que toutes les contributions à Les Archives de Vault-Tec sont considérées comme publiées sous les termes de la creative Commons - CC BY-NC-SA 3.0 (voir Les Archives de Vault-Tec:Copyrights pour plus de détails). Si vous ne désirez pas que vos écrits soient modifiés et distribués à volonté, merci de ne pas les soumettre ici.
Vous nous promettez aussi que vous avez écrit ceci vous-même, ou que vous l’avez copié d’une source placée dans le domaine public ou d’une ressource libre similaire. N’utilisez aucun travail sous droits d’auteur sans autorisation expresse !
Annuler Aide pour la modification (s’ouvre dans une nouvelle fenêtre)