Skip to content

Commit

Permalink
Fixed some Dummies not getting detected by Damage Indicator.
Browse files Browse the repository at this point in the history
  • Loading branch information
hannibal002 committed Oct 2, 2024
1 parent 8798f72 commit f44e435
Showing 1 changed file with 65 additions and 73 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}
}
}
}
Expand All @@ -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) }
}

Expand Down Expand Up @@ -170,7 +171,7 @@ class MobFinder {
return EntityResult(
floor2secondPhaseSpawnTime,
finalDungeonBoss = true,
bossType = BossType.DUNGEON_F2_SCARF
bossType = BossType.DUNGEON_F2_SCARF,
)
}
}
Expand All @@ -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,
)
}

Expand All @@ -215,7 +216,7 @@ class MobFinder {
return EntityResult(
bossType = BossType.DUNGEON_F4_THORN,
ignoreBlocks = true,
finalDungeonBoss = true
finalDungeonBoss = true,
)
}
return null
Expand All @@ -226,7 +227,7 @@ class MobFinder {
return EntityResult(
bossType = BossType.DUNGEON_F5,
ignoreBlocks = true,
finalDungeonBoss = true
finalDungeonBoss = true,
)
}
return null
Expand All @@ -239,7 +240,7 @@ class MobFinder {
return EntityResult(
floor6GiantsSpawnTime + extraDelay,
floor6GiantsSpawnTime + extraDelay + 1_000 > System.currentTimeMillis(),
bossType = bossType
bossType = bossType,
)
}

Expand Down Expand Up @@ -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)
}

Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -385,40 +391,31 @@ 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)
}

else -> null
}

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 ")) {
Expand All @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit f44e435

Please sign in to comment.