Difference between revisions of "Module:RankTable"
Jump to navigation
Jump to search
m (added "Current EXP Total sum of all Ranks") |
m (fixed the table error and added number formatting because prettier) |
||
Line 92: | Line 92: | ||
} | } | ||
local function formatInteger( number ) | |||
if number == "-" then return number end | |||
local i, j, minus, int, fraction = tostring( number ):find( '([-]?)(%d+)([.]?%d*)' ) | |||
int = int:reverse():gsub( "(%d%d%d)", "%1," ) | |||
return minus .. int:reverse():gsub("^,", "") .. fraction | |||
end | |||
local function CheckEqualValues( tocheck, tosend ) | local function CheckEqualValues( tocheck, tosend ) | ||
if tocheck and ( tocheck == tosend ) then | if tocheck and ( tocheck == tosend ) then | ||
Line 125: | Line 134: | ||
| style="text-align: left;" | ]] .. CheckEqualValues( preval[t], tbl[t] ) .. [[ | | style="text-align: left;" | ]] .. CheckEqualValues( preval[t], tbl[t] ) .. [[ | ||
| style="text-align: left;" | ]] .. CheckEqualValues( preval[f], tbl[f] ) .. [[ | | style="text-align: left;" | ]] .. CheckEqualValues( preval[f], tbl[f] ) .. [[ | ||
| style="text-align: left;" | ]] .. CheckEqualValues( preval[e], tbl[e] ) .. [[ | | style="text-align: left;" | ]] .. formatInteger(CheckEqualValues( preval[e], tbl[e] )) .. [[ | ||
| style="text-align: left;" | ]] .. exptotal .. [[ | | style="text-align: left;" | ]] .. formatInteger( exptotal ) .. [[ | ||
]] | ]] | ||
Line 135: | Line 144: | ||
wiki_table = wiki_table .. | wiki_table = wiki_table .. | ||
[[ | [[ | ||
|- | |- style="font-size: 26px;" | | ||
| colspan="5" | Current EXP Total sum of all Ranks | |||
| ]] .. exptotal .. [[ | | ]] .. formatInteger(exptotal) .. [[ | ||
]] | ]] | ||
Revision as of 17:33, 19 April 2018
RankTable.lua
This module is for the only usage in https://wiki.housamo.xyz/Rank_Table.
Functions
Functions that RankTable.lua uses.
module.AddRankData
Argument Name | Description | Argument Default |
---|---|---|
level | Rank level to add data to. | N/A |
team | Team Cost that Rank will have. | N/A |
friend | Friend Limit that Rank will have. | From previously added data. |
expreq | Exp Requirement that Rank will require. | N/A |
stamdelt | Delta of Stamina that Rank will receive. | 1 |
module.AddRankExp
Argument Name | Description | Argument Default |
---|---|---|
level | Rank level to add data to. | N/A |
expreq | Exp Requirement that Rank will require. | N/A |
teamdelt | Delta of Team Cost that Rank will receive. | 0 |
stamdelt | Delta of Stamina that Rank will receive. | 1 |
module.AddRankExpLoop
Argument Name | Description | Argument Default |
---|---|---|
levelstart | Rank level that will start for loop. | N/A |
expreqs | LUA Table of all Exp Requirements the Ranks will require each. | N/A |
teamgap | Gap from the team cost adding. Only deltas of 1. | N/A |
module.RankDataReturn
Returns a parsable wikitable format.
Editing the data
In order to add more rank data, you have to edit it from Module:RankTable.
Invoking the module and their functions will not do anything.
--local inspect = require( 'Module:Inspect' )
local p = {}
local s, t, f, e = 'stamina', 'teamcost', 'friendlimit', 'expreq'
p.RankData = {
[1] = { [s]=15, [t]=36, [f]=10, [e]=3 },
[2] = { [s]=15, [t]=37, [f]=11, [e]=5 },
[3] = { [s]=16, [t]=38, [f]=12, [e]=6 },
[4] = { [s]=17, [t]=39, [f]=13, [e]=12 },
[5] = { [s]=18, [t]=40, [f]=14, [e]=20 },
[6] = { [s]=19, [t]=41, [f]=15, [e]=25 },
[7] = { [s]=20, [t]=42, [f]=16, [e]=30 },
[8] = { [s]=21, [t]=43, [f]=17, [e]=45 },
[9] = { [s]=22, [t]=44, [f]=18, [e]=54 },
[10] = { [s]=23, [t]=45, [f]=19, [e]=70 },
[11] = { [s]=24, [t]=45, [f]=20, [e]=90 },
[12] = { [s]=25, [t]=46, [f]=20, [e]=110 },
[13] = { [s]=26, [t]=46, [f]=20, [e]=130 },
[14] = { [s]=27, [t]=47, [f]=20, [e]=150 },
[15] = { [s]=28, [t]=47, [f]=20, [e]=170 },
[16] = { [s]=29, [t]=48, [f]=20, [e]=190 },
[17] = { [s]=30, [t]=48, [f]=20, [e]=210 },
[18] = { [s]=31, [t]=49, [f]=20, [e]=230 },
[19] = { [s]=32, [t]=49, [f]=20, [e]=250 },
[20] = { [s]=33, [t]=50, [f]=20, [e]=280 },
[21] = { [s]=34, [t]=50, [f]=20, [e]=320 },
[22] = { [s]=35, [t]=50, [f]=20, [e]=360 },
[23] = { [s]=36, [t]=51, [f]=20, [e]=410 },
[24] = { [s]=37, [t]=51, [f]=20, [e]=460 },
[25] = { [s]=38, [t]=51, [f]=20, [e]=520 },
[26] = { [s]=39, [t]=52, [f]=20, [e]=580 },
[27] = { [s]=40, [t]=52, [f]=20, [e]=640 },
[28] = { [s]=41, [t]=52, [f]=20, [e]=700 },
[29] = { [s]=42, [t]=52, [f]=20, [e]=760 },
[30] = { [s]=43, [t]=52, [f]=20, [e]=820 },
[31] = { [s]=44, [t]=53, [f]=20, [e]=880 },
[32] = { [s]=45, [t]=53, [f]=20, [e]=940 },
[33] = { [s]=46, [t]=53, [f]=20, [e]=1000 },
[34] = { [s]=47, [t]=53, [f]=20, [e]=1060 },
[35] = { [s]=48, [t]=53, [f]=20, [e]=1120 },
[36] = { [s]=49, [t]=54, [f]=20, [e]=1180 },
[37] = { [s]=50, [t]=54, [f]=20, [e]=1240 },
[38] = { [s]=51, [t]=54, [f]=20, [e]=1300 },
[39] = { [s]=52, [t]=54, [f]=20, [e]=1420 },
[40] = { [s]=53, [t]=54, [f]=20, [e]=1540 },
[41] = { [s]=54, [t]=55, [f]=20, [e]=1660 },
[42] = { [s]=55, [t]=55, [f]=20, [e]=1780 },
[43] = { [s]=56, [t]=55, [f]=20, [e]=1900 },
[44] = { [s]=57, [t]=55, [f]=20, [e]=2050 },
[45] = { [s]=58, [t]=55, [f]=20, [e]=2280 },
[46] = { [s]=59, [t]=56, [f]=20, [e]=2500 },
[47] = { [s]=60, [t]=56, [f]=20, [e]=3000 },
[48] = { [s]=61, [t]=56, [f]=20, [e]=4000 },
[49] = { [s]=62, [t]=56, [f]=20, [e]=5500 },
[50] = { [s]=63, [t]=56, [f]=20, [e]=7000 },
[51] = { [s]=64, [t]=57, [f]=21, [e]=8500 },
[52] = { [s]=65, [t]=57, [f]=22, [e]=10000 },
[53] = { [s]=66, [t]=58, [f]=22, [e]=12000 },
[54] = { [s]=67, [t]=58, [f]=23, [e]=14000 },
[55] = { [s]=68, [t]=58, [f]=23, [e]=16500 },
[56] = { [s]=69, [t]=59, [f]=24, [e]=19500 },
[57] = { [s]=70, [t]=59, [f]=24, [e]=22500 },
[58] = { [s]=71, [t]=59, [f]=25, [e]=25500 },
[59] = { [s]=72, [t]=60, [f]=25, [e]=30500 },
[60] = { [s]=73, [t]=60, [f]=26, [e]=36000 },
[61] = { [s]=74, [t]=61, [f]=26, [e]=42000 },
[62] = { [s]=75, [t]=61, [f]=27, [e]=48000 },
[63] = { [s]=76, [t]=62, [f]=27, [e]=54500 },
[64] = { [s]=77, [t]=62, [f]=28, [e]=61000 },
[65] = { [s]=78, [t]=62, [f]=28, [e]=67500 },
[66] = { [s]=79, [t]=63, [f]=29, [e]=74000 },
[67] = { [s]=80, [t]=63, [f]=29, [e]=81000 },
[68] = { [s]=81, [t]=63, [f]=30, [e]=88000 },
[69] = { [s]=82, [t]=64, [f]=30, [e]=95000 },
[70] = { [s]=83, [t]=64, [f]=31, [e]=102000},
[71] = { [s]=84, [t]=65, [f]=31, [e]=109000},
[72] = { [s]=85, [t]=65, [f]=32, [e]=116000},
[73] = { [s]=86, [t]=66, [f]=32, [e]=123000},
[74] = { [s]=87, [t]=66, [f]=33, [e]=130000},
[75] = { [s]=88, [t]=66, [f]=33, [e]=137000},
[76] = { [s]=89, [t]=67, [f]=34, [e]=144000},
[77] = { [s]=90, [t]=67, [f]=34, [e]=151000},
[78] = { [s]=91, [t]=67, [f]=35, [e]=158000},
[79] = { [s]=92, [t]=68, [f]=35, [e]=167000},
[80] = { [s]=93, [t]=68, [f]=36, [e]=172000},
[81] = { [s]=94, [t]=68, [f]=36, [e]=180000},
[90] = { [s]=103, [t]=71, [f]=38, [e]=0},
[91] = { [s]=104, [t]=72, [f]=38, [e]=0},
[92] = { [s]=105, [t]=72, [f]=39, [e]=0},
}
local function formatInteger( number )
if number == "-" then return number end
local i, j, minus, int, fraction = tostring( number ):find( '([-]?)(%d+)([.]?%d*)' )
int = int:reverse():gsub( "(%d%d%d)", "%1," )
return minus .. int:reverse():gsub("^,", "") .. fraction
end
local function CheckEqualValues( tocheck, tosend )
if tocheck and ( tocheck == tosend ) then
return "-"
end
return tosend
end
function p.RankDataReturn( frame )
local wiki_table =
[[
{| class="wikitable" style="width: 80%; text-align: center;"
! Rank
! Stamina
! Team Cost
! Friend Limit
! EXP Required<br>for Rank Up
! EXP in Total<br>from Rank Up
]]
local exptotal = 0
local preval = { [s]=1, [t]=1, [f]=1, [e]=1 }
for rank, tbl in ipairs( p.RankData ) do
local pxdevn = #p.RankData - 30
local pxmath = math.floor(math.max( 14, (rank - pxdevn) / (#p.RankData - pxdevn) * 26 ))
wiki_table = wiki_table ..
[[
|- style="font-size: ]].. pxmath ..[[px;" |
| <b>]] .. rank .. [[</b>
| style="text-align: left;" | ]] .. CheckEqualValues( preval[s], tbl[s] ) .. [[
| style="text-align: left;" | ]] .. CheckEqualValues( preval[t], tbl[t] ) .. [[
| style="text-align: left;" | ]] .. CheckEqualValues( preval[f], tbl[f] ) .. [[
| style="text-align: left;" | ]] .. formatInteger(CheckEqualValues( preval[e], tbl[e] )) .. [[
| style="text-align: left;" | ]] .. formatInteger( exptotal ) .. [[
]]
preval = tbl
exptotal = exptotal + tbl[e]
end
wiki_table = wiki_table ..
[[
|- style="font-size: 26px;" |
| colspan="5" | Current EXP Total sum of all Ranks
| ]] .. formatInteger(exptotal) .. [[
]]
return wiki_table .. '|}' --inspect( p.RankData )
end
return p