Anonymous

Module:CommonFunctions: Difference between revisions

From Elwiki
m
change fillTemplate fallback
No edit summary
m (change fillTemplate fallback)
 
(16 intermediate revisions by 2 users not shown)
Line 110: Line 110:
     end
     end
     return result;
     return result;
end
-- Implement templating string with slots.
function fillTemplate(tpl, data)
    tpl = tpl or ''
    data = data or {}
    return string.gsub(tpl, "%{(%d+)%}", (function(slotIndex)
        return data[tonumber(slotIndex)] or ('{' .. slotIndex .. '}')
    end))
end
end


Line 228: Line 238:
end
end


function link(page, text)
function link(page, text, prefix, suffix, dolink)
     return '[[' .. page .. '|' .. (text or page) .. ']]'
     local suffixString = ((suffix and suffix ~= "") and (' ' .. suffix) or '')
    local prefixString = ((prefix and prefix ~= "") and (prefix .. ' ') or '')
 
    if dolink == false then
        return prefixString .. (text or page) .. suffixString
    end
    return prefixString .. '[[' .. page .. '|' .. (text or page) .. ']]' .. suffixString
end
end


Line 248: Line 264:


function formatDamage(number)
function formatDamage(number)
     local formattedDamage = number > 0 and (formatnum(math.round(number, 2)) .. '%') or '-%'
     local formattedDamage = number > 0 and (formatnum(math.round(number, 2)) .. '%') or 'N/A'
     return formattedDamage
     return formattedDamage
end
end
Line 258: Line 274:
             damage_number = doRangeText(damage_number)
             damage_number = doRangeText(damage_number)
             local is_range = string.find(damage_number, '~')
             local is_range = string.find(damage_number, '~')
             s = s .. '{{#vardefine:' .. (is_range and 'range_' or '') .. (prefix and prefix .. '_' or '') .. damage_name .. (mode ~= 'PvE' and ('_' .. string.lower(mode)) or '') .. '|' .. damage_number .. '}}'
             s = s .. '{{#vardefine:' .. (prefix and prefix .. '_' or '') .. (is_range and 'range_' or '') .. damage_name .. (mode ~= 'PvE' and ('_' .. string.lower(mode)) or '') .. '|' .. damage_number .. '}}'
         end
         end
     end
     end
     return frame:preprocess(s)
     return frame:preprocess(s)
end
function table.fuse(t1, t2)
    for k, v in pairs(t2) do
        t1[k] = v
    end
    return t1
end
end