aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/utils')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/CombatUtils.kt55
1 files changed, 23 insertions, 32 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/CombatUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/CombatUtils.kt
index 5fdc63f46..8f64a2d6e 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/CombatUtils.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/CombatUtils.kt
@@ -65,44 +65,35 @@ object CombatUtils {
lastTotalXp = totalXp
}
- /*
- Must be a better way to do this than repeating the calculateXP function
- */
fun calculateETA() {
lastKillUpdate = System.currentTimeMillis()
killGainHourLast = killGainHour
- val nextLevel = GhostCounter.hidden?.bestiaryNextLevel?.toInt() ?: return
- val kill = GhostCounter.hidden?.bestiaryCurrentKill?.toInt() ?: return
- val sum = GhostData.bestiaryData.filterKeys { it <= nextLevel - 1 }.values.sum()
- val cKill = sum + kill
- val totalKill = if (GhostCounter.config.showMax) GhostCounter.bestiaryCurrentKill else cKill
- if (lastTotalKill > 0) {
- val delta: Int = totalKill - lastTotalKill
- if (delta in 1..19) {
- gainTimer = GhostCounter.config.pauseTimer
- killGainQueue.add(0, delta)
- while (killGainQueue.size > 30) {
- killGainQueue.removeLast()
- }
- var totalGain = 0
- for (f in killGainQueue) totalGain += f
- killGainHour = totalGain * (60 * 60) / killGainQueue.size
- _isKilling = true
- } else if (gainTimer > 0) {
- gainTimer--
- killGainQueue.add(0, 0)
- while (killGainQueue.size > 30) {
- killGainQueue.removeLast()
+
+ GhostCounter.hidden?.bestiaryNextLevel?.toInt()?.let { nextLevel ->
+ GhostCounter.hidden?.bestiaryCurrentKill?.toInt()?.let { kill ->
+ val sum = GhostData.bestiaryData.filterKeys { it <= nextLevel - 1 }.values.sum()
+ val cKill = sum + kill
+ val totalKill = if (GhostCounter.config.showMax) GhostCounter.bestiaryCurrentKill else cKill
+
+ if (lastTotalKill > 0) {
+ val delta: Int = totalKill - lastTotalKill
+ if (delta in 1..10 || gainTimer > 0) {
+ gainTimer = maxOf(gainTimer - 1, 0)
+ killGainQueue.add(0, delta)
+ while (killGainQueue.size > 30) {
+ killGainQueue.removeLast()
+ }
+
+ val totalGain = killGainQueue.sum()
+ killGainHour = totalGain * 3600 / killGainQueue.size
+ _isKilling = true
+ } else if (delta <= 0) {
+ _isKilling = false
+ }
}
- var totalGain = 0
- for (f in killGainQueue) totalGain += f
- killGainHour = totalGain * (60 * 60) / killGainQueue.size
- _isKilling = true
- } else if (delta <= 0) {
- _isKilling = false
+ lastTotalKill = totalKill
}
}
- lastTotalKill = totalKill
}
/**