Aller au contenu

« Module:Liste d'objets de Fallout 76 » : différence entre les versions

aucun résumé des modifications
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Kharmitch (discussion | contributions)
Aucun résumé des modifications
Ligne 16 : Ligne 16 :
end
end


-- Récompenses par regroupement
------------------------------------------------------------------


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 '*' .. item
-- Précision au dixième de pourcent près
elseif type(item) == 'table' then
function addItem(item, isAuto, chanceByItem, globalChance)
local moduledata = require( 'Module:Liste d\'objets de Fallout 76/' .. item.value )
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(subitem) .. '\n'
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


-- Récompenses via une liste unique
------------------------------------------------------------------
 
function addItemToUniqList(item, list)
if type(item) == 'string' then
table.insert( list, item )
elseif type(item) == 'table' then
local moduledata = require( "Module:Liste d'objets de Fallout 76/" .. item.value )
for i, subitem in pairs(moduledata.items) do
addItemToUniqList( subitem, list )
end
end
end
 
function p._uniqList(args)
-- chargement du module de paramétrage
local moduledata = require( "Module:Liste d'objets de Fallout 76/" .. args.nom )
local list = {}
for i, item in pairs(moduledata.items) do
addItemToUniqList(item, list)
end
table.sort( list )
local htmlList = '<ul>'
for i, item in pairs(list) do
htmlList = htmlList .. '<li>' .. item .. '</li>'
end
htmlList = htmlList .. '</ul>'
 
return tostring(htmlList)
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
function p.uniqList(frame) return p._uniqList(getArgs(frame)) end


return p
return p
Bureaucrate, commentadmin, emailconfirmed, Administrateurs d’interface, staff, Administrateur
62 734

modifications