aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt138
1 files changed, 65 insertions, 73 deletions
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 399040179..44c7608c2 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
@@ -71,8 +71,7 @@ class MobFinder {
// F5
private var floor5lividEntity: EntityOtherPlayerMP? = null
private var floor5lividEntitySpawnTime = 0L
- private val correctLividPattern =
- "§c\\[BOSS] (.*) Livid§r§f: Impossible! How did you figure out which one I was\\?!".toPattern()
+ private val correctLividPattern = "§c\\[BOSS] (.*) Livid§r§f: Impossible! How did you figure out which one I was\\?!".toPattern()
// F6
private var floor6Giants = false
@@ -86,29 +85,32 @@ class MobFinder {
RiftAPI.inRift() -> tryAddRift(entity)
GardenAPI.inGarden() -> tryAddGarden(entity)
else -> {
- when (entity) {
- /*
- * Note that the order does matter here.
- * For example, if you put EntityZombie before EntityPigZombie,
- * EntityPigZombie will never be reached because EntityPigZombie extends EntityZombie.
- * Please take this into consideration if you are to modify this.
- */
- is EntityOtherPlayerMP -> tryAddEntityOtherPlayerMP(entity)
- is EntityIronGolem -> tryAddEntityIronGolem(entity)
- is EntityPigZombie -> tryAddEntityPigZombie(entity)
- is EntityMagmaCube -> tryAddEntityMagmaCube(entity)
- is EntityEnderman -> tryAddEntityEnderman(entity)
- is EntitySkeleton -> tryAddEntitySkeleton(entity)
- is EntityGuardian -> tryAddEntityGuardian(entity)
- is EntityZombie -> tryAddEntityZombie(entity)
- is EntityWither -> tryAddEntityWither(entity)
- is EntityDragon -> tryAddEntityDragon(entity)
- is EntitySpider -> tryAddEntitySpider(entity)
- is EntityHorse -> tryAddEntityHorse(entity)
- is EntityBlaze -> tryAddEntityBlaze(entity)
- is EntityWolf -> tryAddEntityWolf(entity)
- is EntityLiving -> tryAddEntityLiving(entity)
- else -> null
+ if (entity is EntityLiving && entity.hasNameTagWith(2, "Dummy §a10M§c❤")) {
+ EntityResult(bossType = BossType.DUMMY)
+ } else {
+ when (entity) {
+ /*
+ * Note that the order does matter here.
+ * For example, if you put EntityZombie before EntityPigZombie,
+ * EntityPigZombie will never be reached because EntityPigZombie extends EntityZombie.
+ * Please take this into consideration if you are to modify this.
+ */
+ is EntityOtherPlayerMP -> tryAddEntityOtherPlayerMP(entity)
+ is EntityIronGolem -> tryAddEntityIronGolem(entity)
+ is EntityPigZombie -> tryAddEntityPigZombie(entity)
+ is EntityMagmaCube -> tryAddEntityMagmaCube(entity)
+ is EntityEnderman -> tryAddEntityEnderman(entity)
+ is EntitySkeleton -> tryAddEntitySkeleton(entity)
+ is EntityGuardian -> tryAddEntityGuardian(entity)
+ is EntityZombie -> tryAddEntityZombie(entity)
+ is EntityWither -> tryAddEntityWither(entity)
+ is EntityDragon -> tryAddEntityDragon(entity)
+ is EntitySpider -> tryAddEntitySpider(entity)
+ is EntityHorse -> tryAddEntityHorse(entity)
+ is EntityBlaze -> tryAddEntityBlaze(entity)
+ is EntityWolf -> tryAddEntityWolf(entity)
+ else -> null
+ }
}
}
}
@@ -124,8 +126,7 @@ class MobFinder {
private fun tryAddGardenPest(entity: EntityLivingBase): EntityResult? {
if (!GardenAPI.inGarden()) return null
- return PestType.entries
- .firstOrNull { entity.hasNameTagWith(3, it.displayName) }
+ return PestType.entries.firstOrNull { entity.hasNameTagWith(3, it.displayName) }
?.let { EntityResult(bossType = it.damageIndicatorBoss) }
}
@@ -170,7 +171,7 @@ class MobFinder {
return EntityResult(
floor2secondPhaseSpawnTime,
finalDungeonBoss = true,
- bossType = BossType.DUNGEON_F2_SCARF
+ bossType = BossType.DUNGEON_F2_SCARF,
)
}
}
@@ -193,14 +194,14 @@ class MobFinder {
return EntityResult(
floor3ProfessorSpawnTime,
floor3ProfessorSpawnTime + 1_000 > System.currentTimeMillis(),
- bossType = BossType.DUNGEON_F3_PROFESSOR_1
+ bossType = BossType.DUNGEON_F3_PROFESSOR_1,
)
}
if (floor3ProfessorGuardianPrepare && entity is EntityOtherPlayerMP && entity.name == "The Professor") {
return EntityResult(
floor3ProfessorGuardianPrepareSpawnTime,
true,
- bossType = BossType.DUNGEON_F3_PROFESSOR_2
+ bossType = BossType.DUNGEON_F3_PROFESSOR_2,
)
}
@@ -215,7 +216,7 @@ class MobFinder {
return EntityResult(
bossType = BossType.DUNGEON_F4_THORN,
ignoreBlocks = true,
- finalDungeonBoss = true
+ finalDungeonBoss = true,
)
}
return null
@@ -226,7 +227,7 @@ class MobFinder {
return EntityResult(
bossType = BossType.DUNGEON_F5,
ignoreBlocks = true,
- finalDungeonBoss = true
+ finalDungeonBoss = true,
)
}
return null
@@ -239,7 +240,7 @@ class MobFinder {
return EntityResult(
floor6GiantsSpawnTime + extraDelay,
floor6GiantsSpawnTime + extraDelay + 1_000 > System.currentTimeMillis(),
- bossType = bossType
+ bossType = bossType,
)
}
@@ -274,8 +275,12 @@ class MobFinder {
}
private fun tryAddEntityBlaze(entity: EntityLivingBase) = when {
- entity.name != "Dinnerbone" && entity.hasNameTagWith(2, "§e﴾ §8[§7Lv200§8] §l§8§lAshfang§r ") &&
- entity.hasMaxHealth(50_000_000, true) -> {
+ entity.name != "Dinnerbone" &&
+ entity.hasNameTagWith(2, "§e﴾ §8[§7Lv200§8] §l§8§lAshfang§r ") &&
+ entity.hasMaxHealth(
+ 50_000_000,
+ true,
+ ) -> {
EntityResult(bossType = BossType.NETHER_ASHFANG)
}
@@ -312,8 +317,9 @@ class MobFinder {
private fun tryAddEntityOtherPlayerMP(entity: EntityLivingBase) = when {
entity.name == "Mage Outlaw" -> EntityResult(bossType = BossType.NETHER_MAGE_OUTLAW)
- entity.name == "DukeBarb " && entity.getLorenzVec()
- .distanceToPlayer() < 30 -> EntityResult(bossType = BossType.NETHER_BARBARIAN_DUKE)
+ entity.name == "DukeBarb " &&
+ entity.getLorenzVec()
+ .distanceToPlayer() < 30 -> EntityResult(bossType = BossType.NETHER_BARBARIAN_DUKE)
entity.name == "Minos Inquisitor" -> EntityResult(bossType = BossType.MINOS_INQUISITOR)
entity.name == "Minos Champion" -> EntityResult(bossType = BossType.MINOS_CHAMPION)
@@ -385,15 +391,8 @@ class MobFinder {
else -> null
}
- private fun tryAddEntityLiving(entity: EntityLivingBase) = when {
- entity.hasNameTagWith(2, "Dummy §a10M§c❤") -> EntityResult(bossType = BossType.DUMMY)
-
- else -> null
- }
-
private fun tryAddEntityMagmaCube(entity: EntityLivingBase) = when {
- entity.hasNameTagWith(15, "§e﴾ §8[§7Lv500§8] §l§4§lMagma Boss§r ") &&
- entity.hasMaxHealth(200_000_000, true) -> {
+ entity.hasNameTagWith(15, "§e﴾ §8[§7Lv500§8] §l§4§lMagma Boss§r ") && entity.hasMaxHealth(200_000_000, true) -> {
EntityResult(bossType = BossType.NETHER_MAGMA_BOSS, ignoreBlocks = true)
}
@@ -401,24 +400,22 @@ class MobFinder {
}
private fun tryAddEntityHorse(entity: EntityLivingBase) = when {
- entity.hasNameTagWith(15, "§8[§7Lv100§8] §c§6Headless Horseman§r ") &&
- entity.hasMaxHealth(3_000_000, true) -> {
+ entity.hasNameTagWith(15, "§8[§7Lv100§8] §c§6Headless Horseman§r ") && entity.hasMaxHealth(3_000_000, true) -> {
EntityResult(bossType = BossType.HUB_HEADLESS_HORSEMAN)
}
else -> null
}
- private fun tryAddEntityPigZombie(entity: EntityLivingBase) =
- if (entity.hasNameTagWith(2, "§c☠ §6ⓉⓎⓅⒽⓄⒺⓊⓈ ")) {
- when {
- entity.hasBossHealth(10_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_4)
- entity.hasBossHealth(5_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_3)
- entity.hasBossHealth(1_750_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_2)
- entity.hasBossHealth(500_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_1)
- else -> null
- }
- } else null
+ private fun tryAddEntityPigZombie(entity: EntityLivingBase) = if (entity.hasNameTagWith(2, "§c☠ §6ⓉⓎⓅⒽⓄⒺⓊⓈ ")) {
+ when {
+ entity.hasBossHealth(10_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_4)
+ entity.hasBossHealth(5_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_3)
+ entity.hasBossHealth(1_750_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_2)
+ entity.hasBossHealth(500_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_TYPHOEUS_1)
+ else -> null
+ }
+ } else null
private fun tryAddEntitySpider(entity: EntityLivingBase): EntityResult? {
if (entity.hasNameTagWith(1, "§5☠ §4Tarantula Broodfather ")) {
@@ -439,17 +436,13 @@ class MobFinder {
}
private fun checkArachne(entity: EntitySpider): EntityResult? {
- if (entity.hasNameTagWith(1, "[§7Lv300§8] §cArachne") ||
- entity.hasNameTagWith(1, "[§7Lv300§8] §lArachne")
- ) {
+ if (entity.hasNameTagWith(1, "[§7Lv300§8] §cArachne") || entity.hasNameTagWith(1, "[§7Lv300§8] §lArachne")) {
val maxHealth = entity.baseMaxHealth
// Ignore the minis
if (maxHealth == 12 || maxHealth.derpy() == 4000) return null
return EntityResult(bossType = BossType.ARACHNE_SMALL)
}
- if (entity.hasNameTagWith(1, "[§7Lv500§8] §cArachne") ||
- entity.hasNameTagWith(1, "[§7Lv500§8] §lArachne")
- ) {
+ if (entity.hasNameTagWith(1, "[§7Lv500§8] §cArachne") || entity.hasNameTagWith(1, "[§7Lv500§8] §lArachne")) {
val maxHealth = entity.baseMaxHealth
if (maxHealth == 12 || maxHealth.derpy() == 20_000) return null
return EntityResult(bossType = BossType.ARACHNE_BIG)
@@ -458,16 +451,15 @@ class MobFinder {
return null
}
- private fun tryAddEntityWolf(entity: EntityLivingBase) =
- if (entity.hasNameTagWith(1, "§c☠ §fSven Packmaster ")) {
- when {
- entity.hasMaxHealth(2_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_1)
- entity.hasMaxHealth(40_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_2)
- entity.hasMaxHealth(750_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_3)
- entity.hasMaxHealth(2_000_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_4)
- else -> null
- }
- } else null
+ private fun tryAddEntityWolf(entity: EntityLivingBase) = if (entity.hasNameTagWith(1, "§c☠ §fSven Packmaster ")) {
+ when {
+ entity.hasMaxHealth(2_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_1)
+ entity.hasMaxHealth(40_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_2)
+ entity.hasMaxHealth(750_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_3)
+ entity.hasMaxHealth(2_000_000, true) -> EntityResult(bossType = BossType.SLAYER_WOLF_4)
+ else -> null
+ }
+ } else null
private fun tryAddEntityGuardian(entity: EntityLivingBase) = if (entity.hasMaxHealth(35_000_000)) {
EntityResult(bossType = BossType.THUNDER)