62 737
modifications
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 16 : | Ligne 16 : | ||
end | end | ||
-- | ------------------------------------------------------------------ | ||
function addItem(item) | -- Ajout un élément dans la liste des récompenses en calculant | ||
if type(item) == 'string' then | -- également les chances globales d'obtenir cet élément. | ||
return '*' .. | -- Précision au dixième de pourcent près | ||
elseif | function addItem(item, isAuto, chanceByItem, globalChance) | ||
local moduledata = require( 'Module:Liste d\'objets de Fallout 76/' .. | if type(item) ~= 'table' then | ||
return | |||
end | |||
local itemValue = item.value | |||
if not itemValue then | |||
return | |||
end | |||
local itemType = item.type | |||
local itemChance | |||
if isAuto then | |||
itemChance = chanceByItem | |||
else | |||
itemChance = item.chance | |||
end | |||
itemChance = itemChance * globalChance | |||
local itemQuantity = item.quantity | |||
local suffix = ' (' | |||
if itemQuantity then | |||
suffix = suffix .. itemQuantity .. ', ' | |||
end | |||
suffix = suffix .. string.format("%.2f", 100 * itemChance) .. ' %)' | |||
if itemType == 'item' then | |||
return '*' .. itemValue .. suffix | |||
elseif itemType == 'sublist' then | |||
local moduledata = require( 'Module:Liste d\'objets de Fallout 76/' .. itemValue ) | |||
local sublist = '<div class="avt-dropdown-box mw-collapsible mw-collapsed">' .. | local sublist = '<div class="avt-dropdown-box mw-collapsible mw-collapsed">' .. | ||
'<div class="avt-dropdown-box-title">' .. moduledata.title .. '</div>' .. | '<div class="avt-dropdown-box-title">' .. moduledata.title .. suffix .. '</div>' .. | ||
'<div class="avt-dropdown-box-content mw-collapsible-content">\n' | '<div class="avt-dropdown-box-content mw-collapsible-content">\n' | ||
local isAuto = moduledata.auto or true | |||
local chanceByItem = 1 / #moduledata.items | |||
for i, subitem in pairs(moduledata.items) do | for i, subitem in pairs(moduledata.items) do | ||
sublist = sublist .. addItem( | sublist = sublist .. addItem(item, isAuto, chanceByItem, itemChance) .. '\n' | ||
end | end | ||
Ligne 38 : | Ligne 74 : | ||
end | end | ||
-- Génère une liste hiérarchisée de récompenses avec le pourcentage | |||
-- de chance d'obtenir chaque élément. | |||
function p._build(args) | function p._build(args) | ||
-- chargement du module de paramétrage | -- chargement du module de paramétrage | ||
Ligne 45 : | Ligne 83 : | ||
'<div class="avt-dropdown-box-title">' .. moduledata.title .. '</div>' .. | '<div class="avt-dropdown-box-title">' .. moduledata.title .. '</div>' .. | ||
'<div class="avt-dropdown-box-content mw-collapsible-content">\n' | '<div class="avt-dropdown-box-content mw-collapsible-content">\n' | ||
local isAuto = moduledata.auto or true | |||
local chanceByItem = 1 / #moduledata.items | |||
for i, item in pairs(moduledata.items) do | for i, item in pairs(moduledata.items) do | ||
list = list .. addItem(item) .. '\n' | list = list .. addItem(item, isAuto, chanceByItem, 1) .. '\n' | ||
end | end | ||
Ligne 55 : | Ligne 96 : | ||
end | end | ||
-- | ------------------------------------------------------------------ | ||
-- Fonction modèle | -- Fonction modèle | ||
function p.build(frame) return p._build(getArgs(frame)) end | function p.build(frame) return p._build(getArgs(frame)) end | ||
return p | return p |
modifications