Module:ConsCalcs: Difference between revisions
From IdleOn MMO Wiki
Kiokurashi (talk | contribs) (Created page with "local calc = {} VariablesLua = mw.ext.VariablesLua function calc.salt(frame) -- "TowerSaltCost" = FLOOR.MATH(MAX(0.2, 1 - (MIN(0.1, 0.1 * FLOOR.MATH((CCL + 999) / 1000)) + MAX(0, CCL - 1) * CCB / 100)) * SB * (TL + 1)) VariablesLua.vardefine( saltNorm, 0 ) VariablesLua.vardefine( saltBonus, 0 ) VariablesLua.vardefine( saltTotal, 0 ) local frameArgs = frame.args local sb = frameArgs.sb -- Salt Base Value local cc = frameArgs.cc -- Cost Crun...") |
mNo edit summary |
||
Line 40: | Line 40: | ||
local frameArgs = frame.args | local frameArgs = frame.args | ||
local mb = frameArgs.mb -- Material Base Value | local mb = frameArgs.mb -- Material Base Value | ||
local | local ms = frameArgs.ms -- Material Scaling Value | ||
local cc = frameArgs.cc -- Cost Cruncher (Only to be used for Cost Cruncher) | local cc = frameArgs.cc -- Cost Cruncher (Only to be used for Cost Cruncher) | ||
local maxTL = frameArgs.maxTL -- Default Total Tower Level | local maxTL = frameArgs.maxTL -- Default Total Tower Level |
Revision as of 07:06, 20 November 2023
Documentation for this module may be created at Module:ConsCalcs/doc
local calc = {}
VariablesLua = mw.ext.VariablesLua
function calc.salt(frame)
-- "TowerSaltCost" = FLOOR.MATH(MAX(0.2, 1 - (MIN(0.1, 0.1 * FLOOR.MATH((CCL + 999) / 1000)) + MAX(0, CCL - 1) * CCB / 100)) * SB * (TL + 1))
VariablesLua.vardefine( saltNorm, 0 )
VariablesLua.vardefine( saltBonus, 0 )
VariablesLua.vardefine( saltTotal, 0 )
local frameArgs = frame.args
local sb = frameArgs.sb -- Salt Base Value
local cc = frameArgs.cc -- Cost Cruncher (Only to be used for Cost Cruncher)
local maxTL = frameArgs.maxTL -- Default Total Tower Level
local bonusTL = frameArgs.bonusTL -- Bonus Total Tower Level
local ccb = 1 -- Cost Cruncher base Bonus (hard-coded at 1)
local ccl = 0
local normalSum = 0
for l = 0, maxTL do
if cc == 1 then ccl = l else ccl = 0 end
normalSum = normalSum + floor(max(0.2, 1- (min(0.1, 0.1* floor((ccl + 999) / 1000)) + max(0, ccl - 1) * ccb / 100)) * sb * (l + 1))
end
VariablesLua.vardefine( saltNorm, normalSum)
local bonusSum = 0
for l = maxTL, bonusTL do
if cc == 1 then ccl = l else ccl = 0 end
bonusSum = bonusSum + floor(max(0.2, 1- (min(0.1, 0.1* floor((ccl + 999) / 1000)) + max(0, ccl - 1) * ccb / 100)) * SB * (l + 1))
end
VariablesLua.vardefine( saltBonus, bonusSum)
local totalSum = normalSum + bonusSum
VariablesLua.vardefine( saltTotal, totalSum)
end
function calc.mat(frame)
-- "TowerMatCost" = FLOOR.MATH(MAX(.2, 1 - (MIN(.1, .1 * FLOOR.MATH(((CCL) + 999) / 1e3)) + MAX(0, (CCL) - 1) * 1 / 100)) * MB * POWER(MS + .03 - (MS + .03 - 1.05) * TL / (TML / 2 + TL), TL))
VariablesLua.vardefine( matNorm, 0 )
VariablesLua.vardefine( matBonus, 0 )
VariablesLua.vardefine( matTotal, 0 )
local frameArgs = frame.args
local mb = frameArgs.mb -- Material Base Value
local ms = frameArgs.ms -- Material Scaling Value
local cc = frameArgs.cc -- Cost Cruncher (Only to be used for Cost Cruncher)
local maxTL = frameArgs.maxTL -- Default Total Tower Level
local bonusTL = frameArgs.bonusTL -- Bonus Total Tower Level
local ccb = 1 -- Cost Cruncher base Bonus (hard-coded at 1)
local ccl = 0
local normalSum = 0
for l = 0, maxTL do
if cc == 1 then ccl = l else ccl = 0 end
normalSum = normalSum + floor(max(0.2,1-(min(0.1,0.1*floor(((ccl)+999)/1000))+max(0,(ccl)-1)*1/100))*mb*pow(ms+0.03-(ms+0.03-1.05)*l/(maxTL/2+l),l))
end
VariablesLua.vardefine( matNorm, normalSum)
local bonusSum = 0
for l = maxTL, bonusTL do
if cc == 1 then ccl = l else ccl = 0 end
bonusSum = bonusSum + floor(max(0.2,1-(min(0.1,0.1*floor(((ccl)+999)/1000))+max(0,(ccl)-1)*1/100))*mb*pow(ms+0.03-(ms+0.03-1.05)*l/(maxTL/2+l),l))
end
VariablesLua.vardefine( matBonus, bonusSum)
local totalSum = normalSum + bonusSum
VariablesLua.vardefine( matTotal, totalSum)
end
return calc