Module:Calculator/Archaeology
From Melvor Idle
Documentation for this module may be created at Module:Calculator/Archaeology/doc
local p = {}
local num = require('Module:Number')
local TimeSpan = require('Module:TimeSpan')
-- Constants
local CMapSize = 5760
local CMinInterval = .25
-- Estimate 50% to get item.
local CDropTreshold = .5
----------------------------------------------------------------
------------------------Lookup Functions------------------------
----------------------------------------------------------------
local function getExcavationItem(itemName)
local item = {
name,
timeSave,
isFlatTimeSave,
rarity,
}
item.rarity = 1/2023
return item
end
local function getBagItem(itemName)
local item = {
name,
timeSave,
isFlatTimeSave,
}
return item
end
----------------------------------------------------------------
------------------------Public Functions------------------------
----------------------------------------------------------------
-- Calculates how much time a certain consumable saves (or loses) depending on the player's
-- excavation interval, success rate, item rarity, and item effect.
function p._consumableTimeSave(itemName, excavationInterval, successRate)
end
function p._newMapTimeSave(itemName, excavationInterval, successRate, cartographyInterval)
excavationInterval = num.toNumberOrError(excavationInterval)
excavationInterval = math.max(excavationInterval, CMinInterval)
successRate = num.toNumberOrError(successRate)
successRate = num.clamp(successRate, 0, 1)
cartographyInterval = num.toNumberOrError(cartographyInterval)
cartographyInterval = math.max(cartographyInterval, CMinInterval)
local item = getExcavationItem(itemName)
-- Estimates player time to get the item.
local estimatedTime = num.getDropsForProbability(successRate * item.rarity, CDropTreshold) * excavationInterval
-- Estimates time to make a new map and get the item.
-- Assumes 100% success rate for now.
local estimatedMapTime = num.getDropsForProbability(1 * item.rarity, CDropTreshold) * excavationInterval
+ cartographyInterval * CMapSize
mw.log(estimatedTime)
mw.log(estimatedMapTime)
end
return p