« 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
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 22 : Ligne 22 :
end
end
return n
return n
end
function formatChance(chance)
chanceCeil = math.ceil(chance)
if chanceCeil == chance then
return chanceCeil
else
return string.format("%.2f", chance)
end
end
end


Ligne 31 : Ligne 40 :
function addItem(item, isAuto, numberOfItems, globalChance)
function addItem(item, isAuto, numberOfItems, globalChance)
if type(item) ~= 'table' then
if type(item) ~= 'table' then
return "<error> item: pas une table"
return "<error> item : pas une table"
end
end
Ligne 37 : Ligne 46 :
if not itemValue then
if not itemValue then
return "<error> item: propriété 'value' non renseignée"
return "<error> item : propriété 'value' non renseignée"
end
end
local itemType = item.type
local itemType = item.type
local itemMin = item.min or 1
local itemMax = item.max or 1
if itemMin > itemMax then
return "<error> item : propriété 'min' > 'max'"
end
     local itemChance
     local itemChance


     if isAuto == true then
     if isAuto == true then
         itemChance = ( (item.max or 1) - (item.min or 1) + 1 ) / numberOfItems
         itemChance = ( itemMax - itemMin + 1 ) / numberOfItems
     else
     else
         itemChance = item.chance
         itemChance = item.chance
     end
     end
 
   
if isAuto == false then
    if not itemChance then
     itemChance = itemChance * globalChance
     return "<error> item : propriété chance non renseignée"
end
    end
 
   
     local itemQuantity = item.quantity
    itemChance = itemChance * globalChance
      
     local suffix = ' ('
     local suffix = ' ('
      
      
    local itemQuantity = item.quantity
     if itemQuantity then
     if itemQuantity then
         suffix = suffix .. itemQuantity .. ', '
         suffix = suffix .. itemQuantity .. ', '
    elseif itemMax > 1 then
    suffix = suffix .. itemMin .. '-' .. itemMax .. ', '
    end
   
    suffix = suffix .. formatChance(100 * itemChance) .. ' %'
   
    local itemPlayerLevel = item.level
    local itemEvent = item.event
   
    if itemPlayerLevel then
        suffix = suffix .. ', disponible au niveau ' .. itemPlayerLevel
        if itemEvent then
        suffix = suffix .. " et lors de l'événement " .. itemEvent
        end
    elseif itemEvent then
    suffix = suffix .. ", disponible lors de l'événement " .. itemEvent
     end
     end


     suffix = suffix .. string.format("%.2f", 100 * itemChance) .. ' %)'
     suffix = suffix .. ')'
if itemType == 'item'  then
if itemType == 'item'  then
return '*' .. itemValue .. suffix
return '*' .. itemValue .. suffix
elseif itemType == 'sublist' then
elseif itemType == 'sublist' then
local moduledata = require( 'Module:Liste d\'objets de Fallout 76/' .. itemValue )
local subModuledata = 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 .. suffix .. '</div>' ..
'<div class="avt-dropdown-box-title">' .. subModuledata.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 subIsAuto = subModuledata.auto
         local numberOfItems = countItems(moduledata)
    subIsAuto = subIsAuto == nil or subIsAuto == true
   
         local subNumberOfItems = countItems(subModuledata)
          
          
for i, subitem in pairs(moduledata.items) do
for i, subitem in pairs(subModuledata.items) do
sublist = sublist .. addItem(subitem, isAuto, numberOfItems, itemChance) .. '\n'
sublist = sublist .. addItem(subitem, subIsAuto, subNumberOfItems, itemChance) .. '\n'
end
end
Ligne 82 : Ligne 118 :
return sublist
return sublist
else
else
return "<error> item: propriété 'type' non reconnu"
return "<error> item : propriété 'type' non reconnue"
end
end
end
end
Ligne 97 : Ligne 133 :


     local isAuto = moduledata.auto
     local isAuto = moduledata.auto
     isAuto = moduledata.auto == nil or moduledata.auto == true
     isAuto = isAuto == nil or isAuto == true
      
      
     local numberOfItems = countItems(moduledata)
     local numberOfItems = countItems(moduledata)
Bureaucrate, commentadmin, emailconfirmed, Administrateurs d’interface, staff, Administrateur
62 734

modifications