aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/features/garden
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-08-23 11:54:11 +0200
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-08-23 11:54:11 +0200
commit99ad5e33b9732b1e9bc4fc3cd9cd7637dbc494aa (patch)
tree6952489369b43f8138ad5f1d0029574744756e4b /src/main/java/at/hannibal2/skyhanni/features/garden
parentccc8cc8b112b48dd6b5d14db33690f4d86c91b9b (diff)
downloadskyhanni-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.kt73
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
+ }
+ }
+}