Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement: Add time until next prestige #1514

Merged
merged 92 commits into from
Apr 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
c2627ec
init
CalMWolfs Apr 12, 2024
21b2f94
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 12, 2024
b28dfe2
add more stuff
CalMWolfs Apr 13, 2024
651974f
oop
CalMWolfs Apr 13, 2024
433e536
add more stuff, start showing waypoints
CalMWolfs Apr 13, 2024
f850e74
more features
CalMWolfs Apr 13, 2024
bab6cf3
small change
CalMWolfs Apr 13, 2024
9543584
make it playable
CalMWolfs Apr 13, 2024
e19fb3d
add more setting and fix finding nearest
CalMWolfs Apr 14, 2024
4e5ee41
add more stuff
CalMWolfs Apr 14, 2024
852ed1a
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 14, 2024
6acdfb6
more stuff
CalMWolfs Apr 14, 2024
c59d1d7
full code cleanup
CalMWolfs Apr 14, 2024
9a4a18f
start getting data
CalMWolfs Apr 14, 2024
209cc6a
i love deprecated functions
CalMWolfs Apr 14, 2024
9d519c4
some more misc changes
CalMWolfs Apr 14, 2024
d562b99
some more misc changes
CalMWolfs Apr 15, 2024
694f2b7
small code cleanup
CalMWolfs Apr 15, 2024
c6e5e73
more code cleanup
CalMWolfs Apr 15, 2024
bc70553
more code cleanup
CalMWolfs Apr 15, 2024
3baf115
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 15, 2024
66f47cf
final changes (hopefully)
CalMWolfs Apr 15, 2024
7272acd
rename to HoppityEggType
CalMWolfs Apr 15, 2024
60cfe24
remove extra space
CalMWolfs Apr 15, 2024
98308ac
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 15, 2024
d8f7352
remove empty line
CalMWolfs Apr 15, 2024
d195092
Apply suggestions from code review
CalMWolfs Apr 16, 2024
bf7623c
requested changes
CalMWolfs Apr 16, 2024
c11324f
add leaderboard pos to display
CalMWolfs Apr 17, 2024
9146510
???
CalMWolfs Apr 17, 2024
42b33aa
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 17, 2024
8caa464
get position better
CalMWolfs Apr 17, 2024
cae2dcf
move config file to proper location
CalMWolfs Apr 17, 2024
dccb944
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 17, 2024
8949fbf
fix up location to be more accurate
CalMWolfs Apr 18, 2024
ede419c
make error message a bit better
CalMWolfs Apr 18, 2024
64fc846
remove unneeded function
CalMWolfs Apr 18, 2024
6d5949d
get debug data, fix more small issues
CalMWolfs Apr 18, 2024
7d71232
fix some small issues
CalMWolfs Apr 18, 2024
58de2ec
init feature
CalMWolfs Apr 18, 2024
f627dde
fix for people that have bad time (me & nopo)
CalMWolfs Apr 18, 2024
285e251
Merge branch 'refs/heads/hippety-hoppity' into hoppety-collection-stats
CalMWolfs Apr 18, 2024
e5aa13d
finish feature
CalMWolfs Apr 18, 2024
d992c83
two more small improvements
CalMWolfs Apr 18, 2024
a0688a8
Merge branch 'refs/heads/beta' into hippety-hoppity
CalMWolfs Apr 18, 2024
e485cbe
Merge branch 'refs/heads/hippety-hoppity' into hoppety-collection-stats
CalMWolfs Apr 18, 2024
900f69a
api
CalMWolfs Apr 18, 2024
bffbf4c
Merge branch 'refs/heads/hippety-hoppity' into hoppety-collection-stats
CalMWolfs Apr 18, 2024
9e9afd4
api
CalMWolfs Apr 18, 2024
e371c55
Merge branch 'refs/heads/beta' into hoppety-collection-stats
CalMWolfs Apr 19, 2024
51a2315
fix merge
CalMWolfs Apr 19, 2024
0583476
fix merge x2
CalMWolfs Apr 19, 2024
7da6fec
fix merge x3
CalMWolfs Apr 19, 2024
9365143
Merge branch 'refs/heads/beta' into hoppety-collection-stats
CalMWolfs Apr 19, 2024
935d1c6
use recalculating value for all egglocator
CalMWolfs Apr 20, 2024
41cb6d6
add percent to hoppity display
catgirlseraid Apr 20, 2024
d78b918
Update src/main/java/at/hannibal2/skyhanni/features/event/chocolatefa…
CalMWolfs Apr 20, 2024
994272c
show time tower usages and warn when none left
CalMWolfs Apr 20, 2024
b86f08e
finish feature
CalMWolfs Apr 20, 2024
3a2a4cb
Merge branch 'refs/heads/time-tower' into choc-factory-all
CalMWolfs Apr 21, 2024
cc1c861
Merge branch 'refs/heads/hoppety-collection-stats' into choc-factory-all
CalMWolfs Apr 21, 2024
e0f5d9f
Merge branch 'refs/heads/fork/chocfactorypercentile' into choc-factor…
CalMWolfs Apr 21, 2024
d0556b8
show in preview and add word and remove parentheses
CalMWolfs Apr 21, 2024
e5887fb
show total rabbits found
CalMWolfs Apr 21, 2024
4903774
highlight more stuff
CalMWolfs Apr 21, 2024
4bd29a8
Merge branch 'refs/heads/beta' into recalculate-all-egglocators
CalMWolfs Apr 21, 2024
979842e
fix merge
CalMWolfs Apr 21, 2024
bb1cd97
Merge branch 'refs/heads/recalculate-all-egglocators' into choc-facto…
CalMWolfs Apr 21, 2024
7221c17
fix highlighting on switched profile without time tower
CalMWolfs Apr 21, 2024
6b56c51
Merge branch 'refs/heads/beta' into time-tower
CalMWolfs Apr 21, 2024
94676a1
fix highlighting on switched profile without time tower
CalMWolfs Apr 21, 2024
52fed37
fix not getting minutes or hours
CalMWolfs Apr 21, 2024
2822efe
fix not getting minutes or hours
CalMWolfs Apr 21, 2024
6147dd7
prepare getting raw stats
CalMWolfs Apr 22, 2024
8d9ed59
time until next prestige
CalMWolfs Apr 22, 2024
fd52005
Merge branch 'refs/heads/beta' into choc-factory-all
CalMWolfs Apr 22, 2024
6de3429
Merge branch 'refs/heads/beta' into time-tower
CalMWolfs Apr 22, 2024
42e9d1c
remove debug print
CalMWolfs Apr 22, 2024
e532b4d
Merge branch 'refs/heads/beta' into choc-factory-all
CalMWolfs Apr 22, 2024
74a9764
move to left
CalMWolfs Apr 23, 2024
3041c53
Merge branch 'refs/heads/beta' into time-tower
CalMWolfs Apr 24, 2024
7f536aa
Merge branch 'refs/heads/time-tower' into choc-factory-all
CalMWolfs Apr 24, 2024
41f14c7
auto add the two new things to list
CalMWolfs Apr 24, 2024
80dedae
fix small error
CalMWolfs Apr 24, 2024
7c2effb
Merge branch 'refs/heads/beta' into choc-factory-all
CalMWolfs Apr 24, 2024
48f9d74
Merge branch 'refs/heads/beta' into time-tower
CalMWolfs Apr 24, 2024
dc1d91d
fix merge
CalMWolfs Apr 24, 2024
c52dbd8
Merge branch 'refs/heads/time-tower' into choc-factory-all
CalMWolfs Apr 24, 2024
36ead18
Merge branch 'refs/heads/beta' into time-tower
CalMWolfs Apr 29, 2024
33ff0b4
Merge branch 'refs/heads/time-tower' into choc-factory-all
CalMWolfs Apr 29, 2024
292d754
Merge branch 'refs/heads/beta' into choc-factory-all
CalMWolfs Apr 29, 2024
2cec000
fix merge
CalMWolfs Apr 29, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import com.google.gson.JsonPrimitive
object ConfigUpdaterMigrator {

val logger = LorenzLogger("ConfigMigration")
const val CONFIG_VERSION = 41
const val CONFIG_VERSION = 42
fun JsonElement.at(chain: List<String>, init: Boolean): JsonElement? {
if (chain.isEmpty()) return this
if (this !is JsonObject) return null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ public class ChocolateFactoryConfig {
ChocolateFactoryStat.CURRENT,
ChocolateFactoryStat.THIS_PRESTIGE,
ChocolateFactoryStat.ALL_TIME,
ChocolateFactoryStat.TIME_TO_PRESTIGE,
ChocolateFactoryStat.EMPTY,
ChocolateFactoryStat.PER_SECOND,
ChocolateFactoryStat.PER_MINUTE,
Expand Down Expand Up @@ -106,11 +107,11 @@ public class ChocolateFactoryConfig {

@Expose
@ConfigLink(owner = ChocolateFactoryConfig.class, field = "statsDisplay")
public Position position = new Position(183, 160, false, true);
public Position position = new Position(163, 160, false, true);

@Expose
@ConfigLink(owner = ChocolateFactoryConfig.class, field = "hoppityCollectionStats")
public Position hoppityStatsPosition = new Position(183, 160, false, true);
public Position hoppityStatsPosition = new Position(163, 160, false, true);

@Expose
@ConfigOption(name = "Compact On Click", desc = "Compact the item toolip when clicking on the chocolate.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,30 @@ public static class ChocolateFactoryStorage {
@Expose
public int maxRabbits = -1;

@Expose
public long currentChocolate = 0;

@Expose
public long chocolateThisPrestige = 0;

@Expose
public long chocolateAllTime = 0;

@Expose
public int rawChocPerSecond = 0;

@Expose
public double chocolateMultiplier = 1.0;

@Expose
public double rawChocolateMultiplier = 1.0;

@Expose
public int timeTowerLevel = 0;

@Expose
public long currentTimeTowerEnds = 0;

@Expose
public long nextTimeTower = 0;

Expand All @@ -64,6 +88,9 @@ public static class ChocolateFactoryStorage {

@Expose
public int maxTimeTowerUses = 3;

@Expose
public long lastDataSave = 0;
}

@Expose
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package at.hannibal2.skyhanni.features.event.chocolatefactory

import at.hannibal2.skyhanni.features.event.chocolatefactory.ChocolateFactoryAPI.profileStorage
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.SimpleTimeMark
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds

enum class ChocolateAmount(val chocolate: () -> Long) {
CURRENT({ profileStorage?.currentChocolate ?: 0 }),
PRESTIGE({ profileStorage?.chocolateThisPrestige ?: 0 }),
ALL_TIME({ profileStorage?.chocolateAllTime ?: 0 }),
;

val formatted get(): String = chocolate().addSeparators()

fun timeUntilGoal(goal: Long): Duration {
val profileStorage = ChocolateFactoryAPI.profileStorage ?: return Duration.ZERO

val updatedAgo = SimpleTimeMark(profileStorage.lastDataSave).passedSince().inWholeSeconds

val baseMultiplier = profileStorage.rawChocolateMultiplier
val baseChocolatePerSecond = profileStorage.rawChocPerSecond
val timeTowerMultiplier = baseMultiplier + profileStorage.timeTowerLevel * 0.1

var needed = goal - chocolate()
val secondsUntilTowerExpires = ChocolateFactoryTimeTowerManager.timeTowerActiveDuration().inWholeSeconds

val timeTowerChocPerSecond = baseChocolatePerSecond * timeTowerMultiplier

val secondsAtRate = needed / timeTowerChocPerSecond
if (secondsAtRate < secondsUntilTowerExpires) {
return secondsAtRate.seconds - updatedAgo.seconds
}

needed -= (secondsUntilTowerExpires * timeTowerChocPerSecond).toLong()
val chocPerSecond = baseChocolatePerSecond * baseMultiplier
return (needed / chocPerSecond + secondsUntilTowerExpires).seconds - updatedAgo.seconds
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ object ChocolateFactoryAPI {
"prestige.level",
"§6Chocolate Factory (?<prestige>[IVX]+)"
)
private val chocolateForPrestigePattern by patternGroup.pattern(
"chocolate.forprestige",
"§7§cRequires (?<amount>\\w+) Chocolate this.*"
)
private val clickMeRabbitPattern by patternGroup.pattern(
"rabbit.clickme",
"§e§lCLICK ME!"
Expand All @@ -86,7 +90,7 @@ object ChocolateFactoryAPI {
)
private val timeTowerStatusPattern by patternGroup.pattern(
"timetower.status",
"§7Status: §.§l(?<status>INACTIVE|ACTIVE).*"
"§7Status: §.§l(?<status>INACTIVE|ACTIVE)(?: §f)?(?<acitveTime>\\w*)"
)
private val timeTowerRechargePattern by patternGroup.pattern(
"timetower.recharge",
Expand All @@ -102,20 +106,16 @@ object ChocolateFactoryAPI {
private var prestigeIndex = 28
var milestoneIndex = 53
private var leaderboardIndex = 51
private var timeTowerIndex = 39
var timeTowerIndex = 39
var maxRabbits = 395

var inChocolateFactory = false

var currentPrestige = 0
var chocolateCurrent = 0L
var chocolateAllTime = 0L
var currentPrestige = 1
var chocolatePerSecond = 0.0
var chocolateThisPrestige = 0L
var chocolateMultiplier = 1.0
var leaderboardPosition: Int? = null
var leaderboardPercentile: Double? = null
var timeTowerActive = false
var chocolateForPrestige = 150_000_000L

val upgradeableSlots: MutableSet<Int> = mutableSetOf()
var bestUpgrade: Int? = null
Expand Down Expand Up @@ -165,7 +165,7 @@ object ChocolateFactoryAPI {
val lore = item.getLore()
val upgradeCost = lore.getUpgradeCost() ?: continue

val canAfford = upgradeCost <= chocolateCurrent
val canAfford = upgradeCost <= ChocolateAmount.CURRENT.chocolate()
if (canAfford) upgradeableSlots.add(slotIndex)

if (slotIndex in rabbitSlots) {
Expand Down Expand Up @@ -194,30 +194,40 @@ object ChocolateFactoryAPI {
) {
val profileStorage = profileStorage ?: return

chocolateMultiplier = 1.0
timeTowerActive = false
leaderboardPosition = null
leaderboardPercentile = null

chocolateAmountPattern.matchMatcher(chocolateItem.name.removeColor()) {
chocolateCurrent = group("amount").formatLong()
profileStorage.currentChocolate = group("amount").formatLong()
}
for (line in chocolateItem.getLore()) {
chocolatePerSecondPattern.matchMatcher(line) {
chocolatePerSecond = group("amount").formatDouble()
}
chocolateAllTimePattern.matchMatcher(line) {
chocolateAllTime = group("amount").formatLong()
profileStorage.chocolateAllTime = group("amount").formatLong()
}
}
prestigeLevelPattern.matchMatcher(prestigeItem.name) {
currentPrestige = group("prestige").romanToDecimal()
}
prestigeItem.getLore().matchFirst(chocolateThisPrestigePattern) {
chocolateThisPrestige = group("amount").formatLong()
for (line in prestigeItem.getLore()) {
chocolateThisPrestigePattern.matchMatcher(line) {
profileStorage.chocolateThisPrestige = group("amount").formatLong()
}
chocolateForPrestigePattern.matchMatcher(line) {
chocolateForPrestige = group("amount").formatLong()
}
}
productionItem.getLore().matchFirst(chocolateMultiplierPattern) {
chocolateMultiplier = group("amount").formatDouble()
val currentMultiplier = group("amount").formatDouble()
profileStorage.chocolateMultiplier = currentMultiplier

if (ChocolateFactoryTimeTowerManager.timeTowerActive()) {
profileStorage.rawChocolateMultiplier = currentMultiplier - profileStorage.timeTowerLevel * 0.1
} else {
profileStorage.rawChocolateMultiplier = currentMultiplier
}
}
for (line in leaderboardItem.getLore()) {
leaderboardPlacePattern.matchMatcher(line) {
Expand All @@ -239,7 +249,15 @@ object ChocolateFactoryAPI {
ChocolateFactoryTimeTowerManager.checkTimeTowerWarning(true)
}
timeTowerStatusPattern.matchMatcher(line) {
timeTowerActive = group("status") == "ACTIVE"
val activeTime = group("acitveTime")
if (activeTime.isNotEmpty()) {
// todo in future fix this issue with TimeUtils.getDuration
val formattedGroup = activeTime.replace("h", "h ").replace("m", "m ")

val activeDuration = TimeUtils.getDuration(formattedGroup)
val activeUntil = SimpleTimeMark.now() + activeDuration
profileStorage.currentTimeTowerEnds = activeUntil.toMillis()
}
}
timeTowerRechargePattern.matchMatcher(line) {
// todo in future fix this issue with TimeUtils.getDuration
Expand All @@ -250,6 +268,8 @@ object ChocolateFactoryAPI {
profileStorage.nextTimeTower = nextTimeTower.toMillis()
}
}
profileStorage.rawChocPerSecond = (chocolatePerSecond / profileStorage.chocolateMultiplier).toInt()
profileStorage.lastDataSave = SimpleTimeMark.now().toMillis()

if (!config.statsDisplay) return
ChocolateFactoryStats.updateDisplay()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
object ChocolateFactoryInventory {

private val config get() = ChocolateFactoryAPI.config
private val profileStorage get() = ChocolateFactoryAPI.profileStorage

private val rabbitAmountPattern by ChocolateFactoryAPI.patternGroup.pattern(
"rabbit.amount",
Expand Down Expand Up @@ -64,13 +65,27 @@ object ChocolateFactoryInventory {
if (slot.slotIndex == ChocolateFactoryAPI.clickRabbitSlot) {
slot highlight LorenzColor.RED
}
if (slot.slotIndex == ChocolateFactoryAPI.milestoneIndex) {
slot.stack?.getLore()?.matchFirst(unclaimedRewardsPattern) {
slot highlight LorenzColor.RED
}
}
if (slot.slotIndex == ChocolateFactoryAPI.timeTowerIndex) {
if (ChocolateFactoryTimeTowerManager.timeTowerActive()) {
slot highlight LorenzColor.LIGHT_PURPLE
}
if (ChocolateFactoryTimeTowerManager.timeTowerFull()) {
slot highlight LorenzColor.RED
}
}
}
}

@SubscribeEvent
fun onRenderItemTip(event: RenderInventoryItemTipEvent) {
if (!ChocolateFactoryAPI.inChocolateFactory) return
if (!config.showStackSizes) return
val profileStorage = profileStorage ?: return

val item = event.stack
val itemName = item.name.removeColor()
Expand All @@ -93,12 +108,11 @@ object ChocolateFactoryInventory {
}
if (slotNumber in ChocolateFactoryAPI.otherUpgradeSlots) {
upgradeTierPattern.matchMatcher(itemName) {
event.stackTip = group("tier").romanToDecimal().toString()
}
}
if (slotNumber == ChocolateFactoryAPI.milestoneIndex) {
item.getLore().matchFirst(unclaimedRewardsPattern) {
event.stackTip = "§c!!!"
val level = group("tier").romanToDecimal()

if (slotNumber == ChocolateFactoryAPI.timeTowerIndex) profileStorage.timeTowerLevel = level

event.stackTip = level.toString()
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
package at.hannibal2.skyhanni.features.event.chocolatefactory

import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.GuiRenderEvent
import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators
import at.hannibal2.skyhanni.utils.RenderUtils.renderStrings
import at.hannibal2.skyhanni.utils.TimeUtils.format
import com.google.gson.JsonPrimitive
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent

object ChocolateFactoryStats {

private val config get() = ChocolateFactoryAPI.config
private val profileStorage get() = ChocolateFactoryAPI.profileStorage

private var displayList = listOf<String>()

Expand All @@ -20,31 +24,35 @@ object ChocolateFactoryStats {
}

fun updateDisplay() {
val profileStorage = profileStorage ?: return

val perSecond = ChocolateFactoryAPI.chocolatePerSecond
val perMinute = perSecond * 60
val perHour = perMinute * 60
val perDay = perHour * 24
val position = ChocolateFactoryAPI.leaderboardPosition?.addSeparators() ?: "???"
val percentile = ChocolateFactoryAPI.leaderboardPercentile?.let { "§7Top §a$it%" } ?: ""
val timeTowerInfo = if (ChocolateFactoryAPI.timeTowerActive) {
val timeTowerInfo = if (ChocolateFactoryTimeTowerManager.timeTowerActive()) {
"§d§lActive"
} else {
"§6${ChocolateFactoryTimeTowerManager.timeTowerCharges()}"
}

val timeUntilPrestige = ChocolateAmount.PRESTIGE.timeUntilGoal(ChocolateFactoryAPI.chocolateForPrestige)

displayList = formatList(buildList {
add("§6§lChocolate Factory Stats")

add("§eCurrent Chocolate: §6${ChocolateFactoryAPI.chocolateCurrent.addSeparators()}")
add("§eThis Prestige: §6${ChocolateFactoryAPI.chocolateThisPrestige.addSeparators()}")
add("§eAll-time: §6${ChocolateFactoryAPI.chocolateAllTime.addSeparators()}")
add("§eCurrent Chocolate: §6${ChocolateAmount.CURRENT.formatted}")
add("§eThis Prestige: §6${ChocolateAmount.PRESTIGE.formatted}")
add("§eAll-time: §6${ChocolateAmount.ALL_TIME.formatted}")

add("§ePer Second: §6${perSecond.addSeparators()}")
add("§ePer Minute: §6${perMinute.addSeparators()}")
add("§ePer Hour: §6${perHour.addSeparators()}")
add("§ePer Day: §6${perDay.addSeparators()}")

add("§eChocolate Multiplier: §6${ChocolateFactoryAPI.chocolateMultiplier}")
add("§eChocolate Multiplier: §6${profileStorage.chocolateMultiplier}")
add("§eBarn: §6${ChocolateFactoryBarnManager.barnStatus()}")

add("§ePosition: §7#§b$position $percentile")
Expand All @@ -54,6 +62,8 @@ object ChocolateFactoryStats {
add("")

add("§eTime Tower: §6$timeTowerInfo")
add("§eTime To Prestige: §6${timeUntilPrestige.format()}")
add("§eRaw Per Second: §6${profileStorage.rawChocPerSecond.addSeparators()}")
})
}

Expand All @@ -63,6 +73,18 @@ object ChocolateFactoryStats {
.map { list[it.ordinal] }
}

@SubscribeEvent
fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) {
event.transform(42, "event.chocolateFactory.statsDisplayList") { element ->
val jsonArray = element.asJsonArray

jsonArray.add(JsonPrimitive("TIME_TOWER"))
jsonArray.add(JsonPrimitive("TIME_TO_PRESTIGE"))

jsonArray
}
}

enum class ChocolateFactoryStat(private val display: String, val shouldDisplay: () -> Boolean = { true }) {
HEADER("§6§lChocolate Factory Stats"),
CURRENT("§eCurrent Chocolate: §65,272,230"),
Expand All @@ -79,6 +101,8 @@ object ChocolateFactoryStats {
EMPTY_2(""),
EMPTY_3(""),
TIME_TOWER("§eTime Tower: §62/3 Charges", { ChocolateFactoryTimeTowerManager.currentCharges() != -1 }),
TIME_TO_PRESTIGE("§eTime To Prestige: §61d 13h 59m 4s", { ChocolateFactoryAPI.currentPrestige != 5 }),
RAW_PER_SECOND("§eRaw Per Second: §62,136"),
;

override fun toString(): String {
Expand Down
Loading
Loading