aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Cole <40234707+DavidArthurCole@users.noreply.github.com>2024-06-23 07:45:28 -0400
committerGitHub <noreply@github.com>2024-06-23 13:45:28 +0200
commit7ff28af498fdba6e5a2a1150c3e2620c613c2c48 (patch)
tree84082f6f1233d119f5e8b06b3f52037c120ef8db
parent8b51cb356a7e03f28a2cf41442d0c7e02f760607 (diff)
downloadskyhanni-7ff28af498fdba6e5a2a1150c3e2620c613c2c48.tar.gz
skyhanni-7ff28af498fdba6e5a2a1150c3e2620c613c2c48.tar.bz2
skyhanni-7ff28af498fdba6e5a2a1150c3e2620c613c2c48.zip
Feature & Fix: Powder Tracker Hard Stone & Goblin Eggs (#2138)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java8
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt37
2 files changed, 39 insertions, 6 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java b/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java
index 2f277d925..1c32cabc2 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/mining/PowderTrackerConfig.java
@@ -22,6 +22,7 @@ import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.P
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.FTX;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.GEMSTONE_POWDER;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.GOLD_ESSENCE;
+import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.HARD_STONE;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.JADE;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.MITHRIL_POWDER;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.ROBOTRON;
@@ -29,6 +30,7 @@ import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.P
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.SAPPHIRE;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.SPACER_1;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.SPACER_2;
+import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.SPACER_3;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.TOPAZ;
import static at.hannibal2.skyhanni.config.features.mining.PowderTrackerConfig.PowderDisplayEntry.TOTAL_CHESTS;
@@ -60,6 +62,8 @@ public class PowderTrackerConfig {
DIAMOND_ESSENCE,
GOLD_ESSENCE,
SPACER_2,
+ HARD_STONE,
+ SPACER_3,
RUBY,
SAPPHIRE,
AMBER,
@@ -80,6 +84,8 @@ public class PowderTrackerConfig {
DIAMOND_ESSENCE("§b129 §bDiamond Essence §7(600/h)", 7),
GOLD_ESSENCE("§b234 §6Gold Essence §7(700/h)", 8),
SPACER_2("", 9),
+ HARD_STONE("§b1000 §fHard Stone §bCompacted §7(500/h)"),
+ SPACER_3(""),
RUBY("§50§7-§90§7-§a0§f-0 §cRuby Gemstone", 10),
SAPPHIRE("§50§7-§90§7-§a0§f-0 §bSapphire Gemstone", 11),
AMBER("§50§7-§90§7-§a0§f-0 §6Amber Gemstone", 12),
@@ -93,7 +99,7 @@ public class PowderTrackerConfig {
CONTROL_SWITCH("§b14 §9Control Switch", 20),
SYNTHETIC_HEART("§b14 §9Synthetic Heart", 21),
TOTAL_ROBOT_PARTS("§b14 §9Total Robot Parts", 22),
- GOBLIN_EGGS("§90§7-§a0§7-§c0§f-§e0§f-§30 §fGoblin Egg", 23),
+ GOBLIN_EGGS("§30§7-§c0§7-§e0§f-§a0§f-§90 §fGoblin Egg", 23),
WISHING_COMPASS("§b12 §aWishing Compass", 24),
SLUDGE_JUICE("§b320 §aSludge Juice", 25),
ASCENSION_ROPE("§b2 §9Ascension Rope", 26),
diff --git a/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt b/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt
index a936f9636..f302b669b 100644
--- a/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt
+++ b/src/main/java/at/hannibal2/skyhanni/features/mining/powdertracker/PowderTracker.kt
@@ -57,6 +57,14 @@ object PowderTracker {
"§e§lPASSIVE EVENT §b§l2X POWDER §e§lRUNNING FOR §a§l(?<time>.*)§r"
)
+ /**
+ * REGEX-TEST: §b§lCOMPACT! §r§fYou found an §r§aEnchanted Hard Stone§r§f!
+ */
+ private val compactedPattern by patternGroup.pattern(
+ "compacted",
+ "§b§lCOMPACT! §r§fYou found an §r§aEnchanted Hard Stone§r§f!",
+ )
+
private var lastChestPicked = SimpleTimeMark.farPast()
private var isGrinding = false
private val gemstoneInfo = ResourceInfo(0L, 0L, 0, 0.0, mutableListOf())
@@ -64,6 +72,7 @@ object PowderTracker {
private val diamondEssenceInfo = ResourceInfo(0L, 0L, 0, 0.0, mutableListOf())
private val goldEssenceInfo = ResourceInfo(0L, 0L, 0, 0.0, mutableListOf())
private val chestInfo = ResourceInfo(0L, 0L, 0, 0.0, mutableListOf())
+ private val hardStoneInfo = ResourceInfo(0L, 0L, 0, 0.0, mutableListOf())
private var doublePowder = false
private var powderTimer = ""
private val gemstones = listOf(
@@ -87,6 +96,7 @@ object PowderTracker {
calculateResourceHour(diamondEssenceInfo)
calculateResourceHour(goldEssenceInfo)
calculateResourceHour(chestInfo)
+ calculateResourceHour(hardStoneInfo)
doublePowder = powderBossBarPattern.matcher(BossbarData.getBossbar()).find()
powderBossBarPattern.matchMatcher(BossbarData.getBossbar()) {
@@ -109,12 +119,16 @@ object PowderTracker {
override fun reset() {
rewards.clear()
totalChestPicked = 0
+ totalHardStoneCompacted = 0
}
@Expose
var totalChestPicked = 0
@Expose
+ var totalHardStoneCompacted = 0
+
+ @Expose
var rewards: MutableMap<PowderChestReward, Long> = mutableMapOf()
}
@@ -153,6 +167,12 @@ object PowderTracker {
powderStartedPattern.matchMatcher(msg) { doublePowder = true }
powderEndedPattern.matchMatcher(msg) { doublePowder = false }
+ compactedPattern.matchMatcher(msg) {
+ tracker.modify {
+ it.totalHardStoneCompacted += 1
+ }
+ }
+
for (reward in PowderChestReward.entries) {
reward.chatPattern.matchMatcher(msg) {
tracker.modify {
@@ -192,6 +212,9 @@ object PowderTracker {
chestInfo.perHour = 0.0
chestInfo.stoppedChecks = 0
chestInfo.perMin.clear()
+ hardStoneInfo.perHour = 0.0
+ hardStoneInfo.stoppedChecks = 0
+ hardStoneInfo.perMin.clear()
doublePowder = false
tracker.update()
}
@@ -240,6 +263,7 @@ object PowderTracker {
calculate(data, diamondEssenceInfo, PowderChestReward.DIAMOND_ESSENCE)
calculate(data, goldEssenceInfo, PowderChestReward.GOLD_ESSENCE)
calculateChest(data)
+ calculateHardStone(data)
val chestPerHour = format(chestInfo.perHour)
addAsSingletonList("§d${data.totalChestPicked.addSeparators()} Total Chests Picked §7($chestPerHour/h)")
@@ -252,11 +276,10 @@ object PowderTracker {
addAsSingletonList("")
addPerHour(rewards, entries[46], diamondEssenceInfo)
addPerHour(rewards, entries[47], goldEssenceInfo)
-
-
addAsSingletonList("")
-
-
+ val hardStonePerHour = format(hardStoneInfo.perHour)
+ addAsSingletonList("§b${data.totalHardStoneCompacted.addSeparators()} §fHard Stone §bCompacted §7($hardStonePerHour/h)")
+ addAsSingletonList("")
for ((gem, color) in gemstones) {
var totalGemstone = 0L
@@ -289,7 +312,7 @@ object PowderTracker {
val redEgg = rewards.getOrDefault(PowderChestReward.RED_GOBLIN_EGG, 0)
val yellowEgg = rewards.getOrDefault(PowderChestReward.YELLOW_GOBLIN_EGG, 0)
val blueEgg = rewards.getOrDefault(PowderChestReward.BLUE_GOBLIN_EGG, 0)
- addAsSingletonList("§9$goblinEgg§7-§a$greenEgg§7-§c$redEgg§f-§e$yellowEgg§f-§3$blueEgg §fGoblin Egg")
+ addAsSingletonList("§3$blueEgg§7-§c$redEgg§7-§e$yellowEgg§f-§a$greenEgg§f-§9$goblinEgg §fGoblin Egg")
for (reward in entries.subList(37, 46)) {
val count = rewards.getOrDefault(reward, 0).addSeparators()
@@ -341,6 +364,10 @@ object PowderTracker {
chestInfo.estimated = data.totalChestPicked.toLong()
}
+ private fun calculateHardStone(data: Data) {
+ hardStoneInfo.estimated = data.totalHardStoneCompacted.toLong()
+ }
+
private fun convert(roughCount: Long): Gem {
val flawlessRatio = 512000
val fineRatio = 6400