Magia Record English Wiki
Advertisement

Documentation for this module may be created at Module:Magical girl level experience/doc

local PrintTable = require('Module:PrintTable')

local p = {}

function row_attr(lv)
    local value = 'style="text-align: right; '
    if lv == 40 or lv == 50 or lv == 60 or lv == 80 or lv == 100 then
        value = value .. 'font-weight: bold; background-color: rgba(128, 128, 128, 0.3);'
    end
    
    return value .. '"' 
end

function cell_transformer(value)
    if value == '' then
        return value
    end
    return '{{formatnum:' .. value .. '}}'
end

function preprocess(frame, string)
    if frame ~= nil then 
        return frame:preprocess(string)
    else
        return string
    end
end
 
function p.main(frame)
    local data = {}
    -- 1: "Level" 2: "Exp to next" 3: "Accum. exp to level"
    
    local expToNext = 110       -- expToNext at lv1
    local deltaExpToNext = 0
    local accumExp = 0
    
    for lv = 1, 100 do
        local row = {}
        row[1] = lv
        row[3] = accumExp
        
        if lv == 100 then
            row[2] = ''
        else
            row[2] = expToNext
        end
        data[lv] = row
        
        -- Iterate data
        if lv <= 8 then
            deltaExpToNext = (lv + 2) * 10
        else
            deltaExpToNext = 100
        end
        
        accumExp = accumExp + expToNext
        expToNext = expToNext + deltaExpToNext
        
    end
   
    return preprocess(frame, PrintTable(data, row_attr, nil, cell_transformer))
end
 
return p
Advertisement