diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-23 11:54:11 +0200 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-08-23 11:54:11 +0200 |
commit | 99ad5e33b9732b1e9bc4fc3cd9cd7637dbc494aa (patch) | |
tree | 6952489369b43f8138ad5f1d0029574744756e4b /src/main/java/at/hannibal2/skyhanni/features/garden | |
parent | ccc8cc8b112b48dd6b5d14db33690f4d86c91b9b (diff) | |
download | skyhanni-99ad5e33b9732b1e9bc4fc3cd9cd7637dbc494aa.tar.gz skyhanni-99ad5e33b9732b1e9bc4fc3cd9cd7637dbc494aa.tar.bz2 skyhanni-99ad5e33b9732b1e9bc4fc3cd9cd7637dbc494aa.zip |
Anita Extra Farming Fortune
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/features/garden')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt new file mode 100644 index 000000000..c64710755 --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/features/garden/inventory/AnitaExtraFarmingFortune.kt @@ -0,0 +1,73 @@ +package at.hannibal2.skyhanni.features.garden.inventory + +import at.hannibal2.skyhanni.SkyHanniMod +import at.hannibal2.skyhanni.events.RepositoryReloadEvent +import at.hannibal2.skyhanni.features.garden.GardenAPI +import at.hannibal2.skyhanni.utils.InventoryUtils +import at.hannibal2.skyhanni.utils.LorenzUtils.indexOfFirst +import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName +import at.hannibal2.skyhanni.utils.NEUItems.getPrice +import at.hannibal2.skyhanni.utils.NumberUtil +import at.hannibal2.skyhanni.utils.NumberUtil.addSeparators +import at.hannibal2.skyhanni.utils.jsonobjects.AnitaUpgradeCostsJson +import net.minecraftforge.event.entity.player.ItemTooltipEvent +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent + +class AnitaExtraFarmingFortune { + private val config get() = SkyHanniMod.feature.garden + private var levelPrice = emptyMap<Int, AnitaUpgradeCostsJson.Price>() + + @SubscribeEvent + fun onItemTooltipLow(event: ItemTooltipEvent) { + if (!config.extraFarmingFortune) return + + if (InventoryUtils.openInventoryName() != "Anita") return + + val stack = event.itemStack ?: return + + if (!stack.displayName.contains("Extra Farming Fortune")) return + + val anitaUpgrade = GardenAPI.config?.fortune?.anitaUpgrade ?: return + + // TODO: Add support for 5% or 10% contribution bonus +// val currentPrice = levelPrice[anitaUpgrade + 1] ?: return + + var goldMedals = 0 + var jacobTickets = 0 + for ((level, price) in levelPrice) { + if (level > anitaUpgrade) { + goldMedals += price.gold_medals + jacobTickets += price.jacob_tickets + } + } + + val index = event.toolTip.indexOfFirst("§5§o§eClick to trade!")?.let { it - 1 } ?: return + + // TODO: maybe only show the price when playing classic +// if (!LorenzUtils.noTradeMode) { + val price = jacobTickets * "JACOBS_TICKET".asInternalName().getPrice() + event.toolTip.add(index, " §7Price: §6${NumberUtil.format(price)} coins") +// } + event.toolTip.add(index, "§aJacob Tickets §8x${jacobTickets.addSeparators()}") + event.toolTip.add(index, "§6Gold medals: §8x$goldMedals") + event.toolTip.add(index, "§7Cost to max out") + event.toolTip.add(index, "") + + + val upgradeIndex = event.toolTip.indexOfFirst { it.contains("You have") } + if (upgradeIndex != -1) { + event.toolTip.add(upgradeIndex + 1, "§7Upgrades: §e$anitaUpgrade/${levelPrice.size}") + } + } + + @SubscribeEvent + fun onRepoReload(event: RepositoryReloadEvent) { + event.getConstant<AnitaUpgradeCostsJson>("AnitaUpgradeCosts")?.let { + val map = mutableMapOf<Int, AnitaUpgradeCostsJson.Price>() + for ((rawNumber, price) in it.level_price) { + map[rawNumber.toInt()] = price + } + levelPrice = map + } + } +} |