Module:Farming yield calculator
Documentation for this module may be created at Module:Farming yield calculator/doc
local ssc = require('Module:Skilling success chart')
local yesno = require('Module:Yesno')
local p = {}
local compostLives = {
None = 3,
Compost = 4,
Supercompost = 5,
Ultracompost = 6
}
local diary = {
['None'] = 0,
['Kandarin - Medium (5%)'] = 10,
['Kandarin - Hard (10%)'] = 17,
['Kandarin - Elite (15%)'] = 25,
['Kourend and Kebos - Hard (5%)'] = 10
}
function p.main(frame)
local args = frame.args
local name = args.name
local pic = args.pic or (name .. '.png')
local lives = tonumber(args.harvestLives)
if (lives == 0) then
lives = compostLives[args.compostTier]
end
local diaryBoost = diary[args.diary] or 0
local farmingCapeBoost = yesno(args.farmingCape,false) and 0.05 or 0
local lvlReq = tonumber(args.lvlReq) or 1
local low = tonumber(args.low) or 0
local high = tonumber(args.high) or 0
local secateurs = yesno(args.secateurs, true)
return p._main(name,pic,lives,diaryBoost,farmingCapeBoost,lvlReq,low,high,secateurs)
end
function p._main(name,pic,lives,diaryBoost,farmingCapeBoost,lvlReq,low,high,secateurs)
local args = {}
args.xlabel = 'Farming level'
args.ylabel = 'Average yield'
args.showbefore = 'no'
args.label = name .. ' yield'
args.label1 = 'Regular'
args.image1 = pic
args.color1 = '#79874c'
args.lives1 = lives
args.req1 = lvlReq
args.low1 = math.modf(low * (1+farmingCapeBoost))
args.low1 = args.low1 + diaryBoost
args.high1 = math.modf(high * (1+farmingCapeBoost))
args.high1 = args.high1 + diaryBoost
args.label2 = 'Attas'
args.image2 = 'Attas icon.png'
args.color2 = '#be5e57'
args.lives2 = lives
args.req2 = lvlReq
args.low2 = math.modf(low * (1+farmingCapeBoost))
args.low2 = args.low2 + diaryBoost
args.low2 = math.modf(args.low2 * 1.05)
args.high2 = math.modf(high * (1+farmingCapeBoost))
args.high2 = args.high2 + diaryBoost
args.high2 = math.modf(args.high2 * 1.05)
local maxhigh = args.high2
if (secateurs) then
args.label3 = 'Magic secateurs'
args.image3 = 'Magic secateurs.png'
args.color3 = '#0d8415'
args.lives3 = lives
args.req3 = lvlReq
args.low3 = math.modf(low * (1+0.1+farmingCapeBoost))
args.low3 = args.low3 + diaryBoost
args.high3 = math.modf(high * (1+0.1+farmingCapeBoost))
args.high3 = args.high3 + diaryBoost
args.label4 = 'Magic secateurs, attas'
args.image4 = 'Magic secateurs and attas.png'
args.color4 = '#ffa210'
args.lives4 = lives
args.req4 = lvlReq
args.low4 = math.modf(low * (1+0.1+farmingCapeBoost))
args.low4 = args.low4 + diaryBoost
args.low4 = math.modf(args.low4 * 1.05)
args.high4 = math.modf(high * (1+0.1+farmingCapeBoost))
args.high4 = args.high4 + diaryBoost
args.high4 = math.modf(args.high4 * 1.05)
maxhigh = args.high4
end
args.ystep = math.max(1,math.modf(256*lives/ (255-(maxhigh))/10))
return ssc._main(args)
end
return p