diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt | 5 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt | 37 |
2 files changed, 25 insertions, 17 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt index 4f5145a79..8f419f803 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/BossType.kt @@ -81,7 +81,10 @@ enum class BossType( DUNGEON_F5("§dLivid", Type.DUNGEON_FLOOR_5), - DUNGEON_F6_GIANT("§eGiant", Type.DUNGEON_FLOOR_6), + DUNGEON_F6_GIANT_1("§eBoulder Tosser", Type.DUNGEON_FLOOR_6, "§eGiant 1"), + DUNGEON_F6_GIANT_2("§eSword Thrower", Type.DUNGEON_FLOOR_6, "§eGiant 2"), + DUNGEON_F6_GIANT_3("§eBigfoot Jumper", Type.DUNGEON_FLOOR_6, "§eGiant 3"), + DUNGEON_F6_GIANT_4("§eLazer Shooter", Type.DUNGEON_FLOOR_6, "§eGiant 4"), DUNGEON_F6_SADAN("§cSadan", Type.DUNGEON_FLOOR_6), // TODO implement diff --git a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt index 5da9dbc0f..3bc048aa0 100644 --- a/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt +++ b/src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt @@ -78,7 +78,7 @@ class MobFinder { //F6 private var floor6Giants = false private var floor6GiantsSpawnTime = 0L - private var floor6GiantsSeparateDelay = mutableMapOf<UUID, Long>() + private var floor6GiantsSeparateDelay = mutableMapOf<UUID, Pair<Long, BossType>>() private var floor6Sadan = false private var floor6SadanSpawnTime = 0L @@ -236,11 +236,11 @@ class MobFinder { private fun tryAddDungeonF6(entity: EntityLivingBase): EntityResult? { if (entity !is EntityGiantZombie || entity.isInvisible) return null if (floor6Giants && entity.posY > 68) { - val extraDelay = checkExtraF6GiantsDelay(entity) + val (extraDelay, bossType) = checkExtraF6GiantsDelay(entity) return EntityResult( floor6GiantsSpawnTime + extraDelay, floor6GiantsSpawnTime + extraDelay + 1_000 > System.currentTimeMillis(), - bossType = BossType.DUNGEON_F6_GIANT + bossType = bossType ) } @@ -469,7 +469,7 @@ class MobFinder { EntityResult(bossType = BossType.THUNDER) } else null - private fun checkExtraF6GiantsDelay(entity: EntityGiantZombie): Long { + private fun checkExtraF6GiantsDelay(entity: EntityGiantZombie): Pair<Long, BossType> { val uuid = entity.uniqueID if (floor6GiantsSeparateDelay.contains(uuid)) { @@ -482,30 +482,35 @@ class MobFinder { var pos = 0 - //first + + val type: BossType if (loc.x > middle.x && loc.z > middle.z) { + //first pos = 2 - } - + type = BossType.DUNGEON_F6_GIANT_3 + } else if (loc.x > middle.x && loc.z < middle.z) { //second - if (loc.x > middle.x && loc.z < middle.z) { pos = 3 - } - + type = BossType.DUNGEON_F6_GIANT_4 + } else if (loc.x < middle.x && loc.z < middle.z) { //third - if (loc.x < middle.x && loc.z < middle.z) { pos = 0 - } - + type = BossType.DUNGEON_F6_GIANT_1 + } else if (loc.x < middle.x && loc.z > middle.z) { //fourth - if (loc.x < middle.x && loc.z > middle.z) { pos = 1 + type = BossType.DUNGEON_F6_GIANT_2 + } else { + pos = 0 + type = BossType.DUNGEON_F6_GIANT_1 } + val extraDelay = 900L * pos - floor6GiantsSeparateDelay[uuid] = extraDelay + val pair = Pair(extraDelay, type) + floor6GiantsSeparateDelay[uuid] = pair - return extraDelay + return pair } fun handleChat(message: String) { |