diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/features/combat/damageindicator/MobFinder.kt | 451 |
1 files changed, 213 insertions, 238 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 0b7b26572..6cc9b4b85 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 @@ -75,59 +75,57 @@ class MobFinder { private var floor6Sadan = false private var floor6SadanSpawnTime = 0L - internal fun tryAdd(entity: EntityLivingBase): EntityResult? { - return when { - LorenzUtils.inDungeons -> tryAddDungeon(entity) - RiftAPI.inRift() -> tryAddRift(entity) - else -> { - when (entity) { - /* + internal fun tryAdd(entity: EntityLivingBase) = when { + LorenzUtils.inDungeons -> tryAddDungeon(entity) + RiftAPI.inRift() -> tryAddRift(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 - } + 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 } } } - private fun tryAddDungeon(entity: EntityLivingBase): EntityResult? { - return when { - DungeonAPI.isOneOf("F1", "M1") -> tryAddDungeonF1(entity) - DungeonAPI.isOneOf("F2", "M2") -> tryAddDungeonF2(entity) - DungeonAPI.isOneOf("F3", "M3") -> tryAddDungeonF3(entity) - DungeonAPI.isOneOf("F4", "M4") -> tryAddDungeonF4(entity) - DungeonAPI.isOneOf("F5", "M5") -> tryAddDungeonF5(entity) - DungeonAPI.isOneOf("F6", "M6") -> tryAddDungeonF6(entity) - else -> null - } + private fun tryAddDungeon(entity: EntityLivingBase) = when { + DungeonAPI.isOneOf("F1", "M1") -> tryAddDungeonF1(entity) + DungeonAPI.isOneOf("F2", "M2") -> tryAddDungeonF2(entity) + DungeonAPI.isOneOf("F3", "M3") -> tryAddDungeonF3(entity) + DungeonAPI.isOneOf("F4", "M4") -> tryAddDungeonF4(entity) + DungeonAPI.isOneOf("F5", "M5") -> tryAddDungeonF5(entity) + DungeonAPI.isOneOf("F6", "M6") -> tryAddDungeonF6(entity) + else -> null } - private fun tryAddDungeonF1(entity: EntityLivingBase): EntityResult? { - if (floor1bonzo1 && entity is EntityOtherPlayerMP && entity.name == "Bonzo ") { - return EntityResult(floor1bonzo1SpawnTime) + private fun tryAddDungeonF1(entity: EntityLivingBase) = when { + floor1bonzo1 && entity is EntityOtherPlayerMP && entity.name == "Bonzo " -> { + EntityResult(floor1bonzo1SpawnTime) } - if (floor1bonzo2 && entity is EntityOtherPlayerMP && entity.name == "Bonzo ") { - return EntityResult(floor1bonzo2SpawnTime, finalDungeonBoss = true) + + floor1bonzo2 && entity is EntityOtherPlayerMP && entity.name == "Bonzo " -> { + EntityResult(floor1bonzo2SpawnTime, finalDungeonBoss = true) } - return null + + else -> null } private fun tryAddDungeonF2(entity: EntityLivingBase): EntityResult? { @@ -135,9 +133,8 @@ class MobFinder { if (floor2summons1 && !floor2summonsDiedOnce.contains(entity)) { if (entity.health.toInt() != 0) { return EntityResult(floor2summons1SpawnTime) - } else { - floor2summonsDiedOnce.add(entity) } + floor2summonsDiedOnce.add(entity) } if (floor2secondPhase) { return EntityResult(floor2secondPhaseSpawnTime) @@ -146,8 +143,7 @@ class MobFinder { if (floor2secondPhase && entity is EntityOtherPlayerMP) { //TODO only show scarf after (all/at least x) summons are dead? - val result = entity.name == "Scarf " - if (result) { + if (entity.name == "Scarf ") { return EntityResult(floor2secondPhaseSpawnTime, finalDungeonBoss = true) } } @@ -205,18 +201,17 @@ class MobFinder { } private fun tryAddDungeonF6(entity: EntityLivingBase): EntityResult? { - if (entity is EntityGiantZombie && !entity.isInvisible) { - if (floor6Giants && entity.posY > 68) { - val extraDelay = checkExtraF6GiantsDelay(entity) - return EntityResult( - floor6GiantsSpawnTime + extraDelay, - floor6GiantsSpawnTime + extraDelay + 1_000 > System.currentTimeMillis() - ) - } + if (entity !is EntityGiantZombie || entity.isInvisible) return null + if (floor6Giants && entity.posY > 68) { + val extraDelay = checkExtraF6GiantsDelay(entity) + return EntityResult( + floor6GiantsSpawnTime + extraDelay, + floor6GiantsSpawnTime + extraDelay + 1_000 > System.currentTimeMillis() + ) + } - if (floor6Sadan) { - return EntityResult(floor6SadanSpawnTime, finalDungeonBoss = true) - } + if (floor6Sadan) { + return EntityResult(floor6SadanSpawnTime, finalDungeonBoss = true) } return null } @@ -243,14 +238,13 @@ class MobFinder { return null } - private fun tryAddEntityBlaze(entity: EntityLivingBase): EntityResult? { - return if (entity.name != "Dinnerbone" && entity.hasNameTagWith( - 2, - "§e﴾ §8[§7Lv200§8] §l§8§lAshfang§r " - ) && entity.hasMaxHealth(50_000_000, true) - ) { + 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) -> { EntityResult(bossType = BossType.NETHER_ASHFANG) - } else if (entity.hasNameTagWith(2, "§c☠ §bInferno Demonlord ")) { + } + + entity.hasNameTagWith(2, "§c☠ §bInferno Demonlord ") -> { when { entity.hasBossHealth(2_500_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_1) entity.hasBossHealth(10_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_2) @@ -258,13 +252,13 @@ class MobFinder { entity.hasBossHealth(150_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_4) else -> null } - } else { - null } + + else -> null } - private fun tryAddEntitySkeleton(entity: EntityLivingBase): EntityResult? { - return if (entity.hasNameTagWith(2, "§c☠ §3ⓆⓊⒶⓏⒾⒾ ")) { + private fun tryAddEntitySkeleton(entity: EntityLivingBase) = when { + entity.hasNameTagWith(2, "§c☠ §3ⓆⓊⒶⓏⒾⒾ ") -> { when { entity.hasBossHealth(10_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_QUAZII_4) entity.hasBossHealth(5_000_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_QUAZII_3) @@ -272,128 +266,116 @@ class MobFinder { entity.hasBossHealth(500_000) -> EntityResult(bossType = BossType.SLAYER_BLAZE_QUAZII_1) else -> null } - } else if (entity.hasNameTagWith(5, "§e﴾ §8[§7Lv200§8] §l§8§lBladesoul§r ")) { + } + + entity.hasNameTagWith(5, "§e﴾ §8[§7Lv200§8] §l§8§lBladesoul§r ") -> { EntityResult(bossType = BossType.NETHER_BLADESOUL) - } else { - null } + + else -> null } - private fun tryAddEntityOtherPlayerMP(entity: EntityLivingBase): EntityResult? { - return when { - entity.name == "Mage Outlaw" -> EntityResult(bossType = BossType.NETHER_MAGE_OUTLAW) - entity.name == "DukeBarb " && entity.getLorenzVec() - .distanceToPlayer() < 30 -> EntityResult(bossType = BossType.NETHER_BARBARIAN_DUKE) + 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 == "Minos Inquisitor" -> EntityResult(bossType = BossType.MINOS_INQUISITOR) - entity.name == "Minos Champion" -> EntityResult(bossType = BossType.MINOS_CHAMPION) - entity.name == "Minotaur " -> EntityResult(bossType = BossType.MINOTAUR) - else -> null - } - } + entity.name == "Minos Inquisitor" -> EntityResult(bossType = BossType.MINOS_INQUISITOR) + entity.name == "Minos Champion" -> EntityResult(bossType = BossType.MINOS_CHAMPION) + entity.name == "Minotaur " -> EntityResult(bossType = BossType.MINOTAUR) - private fun tryAddEntityWither(entity: EntityLivingBase): EntityResult? { - return when { - entity.hasNameTagWith(4, "§8[§7Lv100§8] §c§5Vanquisher§r ") -> { - EntityResult(bossType = BossType.NETHER_VANQUISHER) - } + else -> null + } - else -> null + private fun tryAddEntityWither(entity: EntityLivingBase) = when { + entity.hasNameTagWith(4, "§8[§7Lv100§8] §c§5Vanquisher§r ") -> { + EntityResult(bossType = BossType.NETHER_VANQUISHER) } + + else -> null } private fun tryAddEntityEnderman(entity: EntityLivingBase): EntityResult? { - if (entity.hasNameTagWith(3, "§c☠ §bVoidgloom Seraph ")) { - when { - entity.hasMaxHealth(300_000, true) -> return EntityResult(bossType = BossType.SLAYER_ENDERMAN_1) - entity.hasMaxHealth(12_000_000, true) -> return EntityResult(bossType = BossType.SLAYER_ENDERMAN_2) - entity.hasMaxHealth(50_000_000, true) -> return EntityResult(bossType = BossType.SLAYER_ENDERMAN_3) - entity.hasMaxHealth(210_000_000, true) -> return EntityResult(bossType = BossType.SLAYER_ENDERMAN_4) - } - } - return null - } + if (!entity.hasNameTagWith(3, "§c☠ §bVoidgloom Seraph ")) return null - private fun tryAddEntityDragon(entity: EntityLivingBase): EntityResult? { - //TODO testing and use sidebar data return when { - IslandType.THE_END.isInIsland() -> EntityResult(bossType = BossType.END_ENDER_DRAGON) - IslandType.WINTER.isInIsland() -> EntityResult(bossType = BossType.WINTER_REINDRAKE) + entity.hasMaxHealth(300_000, true) -> EntityResult(bossType = BossType.SLAYER_ENDERMAN_1) + entity.hasMaxHealth(12_000_000, true) -> EntityResult(bossType = BossType.SLAYER_ENDERMAN_2) + entity.hasMaxHealth(50_000_000, true) -> EntityResult(bossType = BossType.SLAYER_ENDERMAN_3) + entity.hasMaxHealth(210_000_000, true) -> EntityResult(bossType = BossType.SLAYER_ENDERMAN_4) else -> null } } - private fun tryAddEntityIronGolem(entity: EntityLivingBase): EntityResult? { - return when { - entity.hasNameTagWith(3, "§e﴾ §8[§7Lv100§8] §lEndstone Protector§r ") -> { - EntityResult(bossType = BossType.END_ENDSTONE_PROTECTOR) - } + //TODO testing and use sidebar data + private fun tryAddEntityDragon(entity: EntityLivingBase) = when { + IslandType.THE_END.isInIsland() -> EntityResult(bossType = BossType.END_ENDER_DRAGON) + IslandType.WINTER.isInIsland() -> EntityResult(bossType = BossType.WINTER_REINDRAKE) - entity.hasMaxHealth(1_500_000) -> { - EntityResult(bossType = BossType.GAIA_CONSTURUCT) - } + else -> null + } - entity.hasMaxHealth(100_000_000) -> { - EntityResult(bossType = BossType.LORD_JAWBUS) - } + private fun tryAddEntityIronGolem(entity: EntityLivingBase) = when { + entity.hasNameTagWith(3, "§e﴾ §8[§7Lv100§8] §lEndstone Protector§r ") -> { + EntityResult(bossType = BossType.END_ENDSTONE_PROTECTOR) + } - else -> null + entity.hasMaxHealth(1_500_000) -> { + EntityResult(bossType = BossType.GAIA_CONSTURUCT) } + + entity.hasMaxHealth(100_000_000) -> { + EntityResult(bossType = BossType.LORD_JAWBUS) + } + + else -> null } - private fun tryAddEntityZombie(entity: EntityLivingBase): EntityResult? { - return when { - entity.hasNameTagWith(2, "§c☠ §bRevenant Horror") -> { - when { - entity.hasMaxHealth(500, true) -> return EntityResult(bossType = BossType.SLAYER_ZOMBIE_1) - entity.hasMaxHealth(20_000, true) -> return EntityResult(bossType = BossType.SLAYER_ZOMBIE_2) - entity.hasMaxHealth(400_000, true) -> return EntityResult(bossType = BossType.SLAYER_ZOMBIE_3) - entity.hasMaxHealth(1_500_000, true) -> return EntityResult(bossType = BossType.SLAYER_ZOMBIE_4) - else -> null - } - } + private fun tryAddEntityZombie(entity: EntityLivingBase) = when { + entity.hasNameTagWith(2, "§c☠ §bRevenant Horror") -> { + when { + entity.hasMaxHealth(500, true) -> EntityResult(bossType = BossType.SLAYER_ZOMBIE_1) + entity.hasMaxHealth(20_000, true) -> EntityResult(bossType = BossType.SLAYER_ZOMBIE_2) + entity.hasMaxHealth(400_000, true) -> EntityResult(bossType = BossType.SLAYER_ZOMBIE_3) + entity.hasMaxHealth(1_500_000, true) -> EntityResult(bossType = BossType.SLAYER_ZOMBIE_4) - entity.hasNameTagWith(2, "§c☠ §fAtoned Horror ") && entity.hasMaxHealth(10_000_000, true) -> { - EntityResult(bossType = BossType.SLAYER_ZOMBIE_5) + else -> null } - - else -> null } - } - private fun tryAddEntityLiving(entity: EntityLivingBase): EntityResult? { - return when { - entity.hasNameTagWith(2, "Dummy §a10M§c❤") -> EntityResult(bossType = BossType.DUMMY) - else -> null + entity.hasNameTagWith(2, "§c☠ §fAtoned Horror ") && entity.hasMaxHealth(10_000_000, true) -> { + EntityResult(bossType = BossType.SLAYER_ZOMBIE_5) } + + else -> null } - private fun tryAddEntityMagmaCube(entity: EntityLivingBase): EntityResult? { - return when { - 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) - } + private fun tryAddEntityLiving(entity: EntityLivingBase) = when { + entity.hasNameTagWith(2, "Dummy §a10M§c❤") -> EntityResult(bossType = BossType.DUMMY) - else -> null - } + else -> null } - private fun tryAddEntityHorse(entity: EntityLivingBase): EntityResult? { - return when { - entity.hasNameTagWith( - 15, - "§8[§7Lv100§8] §c§6Headless Horseman§r " - ) && entity.hasMaxHealth(3_000_000, true) -> { - EntityResult(bossType = BossType.HUB_HEADLESS_HORSEMAN) - } + private fun tryAddEntityMagmaCube(entity: EntityLivingBase) = when { + 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 + else -> null + } + + private fun tryAddEntityHorse(entity: EntityLivingBase) = when { + 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): EntityResult? { - return if (entity.hasNameTagWith(2, "§c☠ §6ⓉⓎⓅⒽⓄⒺⓊⓈ ")) { + 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) @@ -402,7 +384,6 @@ class MobFinder { else -> null } } else null - } private fun tryAddEntitySpider(entity: EntityLivingBase): EntityResult? { if (entity.hasNameTagWith(1, "§5☠ §4Tarantula Broodfather ")) { @@ -437,8 +418,8 @@ class MobFinder { return null } - private fun tryAddEntityWolf(entity: EntityLivingBase): EntityResult? { - return if (entity.hasNameTagWith(1, "§c☠ §fSven Packmaster ")) { + 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) @@ -447,13 +428,10 @@ class MobFinder { else -> null } } else null - } - private fun tryAddEntityGuardian(entity: EntityLivingBase): EntityResult? { - return if (entity.hasMaxHealth(35_000_000)) { - EntityResult(bossType = BossType.THUNDER) - } else null - } + private fun tryAddEntityGuardian(entity: EntityLivingBase) = if (entity.hasMaxHealth(35_000_000)) { + EntityResult(bossType = BossType.THUNDER) + } else null private fun checkExtraF6GiantsDelay(entity: EntityGiantZombie): Long { val uuid = entity.uniqueID @@ -495,109 +473,106 @@ class MobFinder { } fun handleChat(message: String) { - if (LorenzUtils.inDungeons) { - when (message) { - //F1 - "§c[BOSS] Bonzo§r§f: Gratz for making it this far, but I’m basically unbeatable." -> { - floor1bonzo1 = true - floor1bonzo1SpawnTime = System.currentTimeMillis() + 11_250 - } - - "§c[BOSS] Bonzo§r§f: Oh noes, you got me.. what ever will I do?!" -> { - floor1bonzo1 = false - } - - "§c[BOSS] Bonzo§r§f: Oh I'm dead!" -> { - floor1bonzo2 = true - floor1bonzo2SpawnTime = System.currentTimeMillis() + 4_200 - } + if (!LorenzUtils.inDungeons) return + when (message) { + //F1 + "§c[BOSS] Bonzo§r§f: Gratz for making it this far, but I’m basically unbeatable." -> { + floor1bonzo1 = true + floor1bonzo1SpawnTime = System.currentTimeMillis() + 11_250 + } - "§c[BOSS] Bonzo§r§f: Alright, maybe I'm just weak after all.." -> { - floor1bonzo2 = false - } + "§c[BOSS] Bonzo§r§f: Oh noes, you got me.. what ever will I do?!" -> { + floor1bonzo1 = false + } - //F2 - "§c[BOSS] Scarf§r§f: ARISE, MY CREATIONS!" -> { - floor2summons1 = true - floor2summons1SpawnTime = System.currentTimeMillis() + 3_500 - } + "§c[BOSS] Bonzo§r§f: Oh I'm dead!" -> { + floor1bonzo2 = true + floor1bonzo2SpawnTime = System.currentTimeMillis() + 4_200 + } - "§c[BOSS] Scarf§r§f: Those toys are not strong enough I see." -> { - floor2summons1 = false - } + "§c[BOSS] Bonzo§r§f: Alright, maybe I'm just weak after all.." -> { + floor1bonzo2 = false + } - "§c[BOSS] Scarf§r§f: Don't get too excited though." -> { - floor2secondPhase = true - floor2secondPhaseSpawnTime = System.currentTimeMillis() + 6_300 - } + //F2 + "§c[BOSS] Scarf§r§f: ARISE, MY CREATIONS!" -> { + floor2summons1 = true + floor2summons1SpawnTime = System.currentTimeMillis() + 3_500 + } - "§c[BOSS] Scarf§r§f: Whatever..." -> { - floor2secondPhase = false - } + "§c[BOSS] Scarf§r§f: Those toys are not strong enough I see." -> { + floor2summons1 = false + } - //F3 - "§c[BOSS] The Professor§r§f: I was burdened with terrible news recently..." -> { - floor3GuardianShield = true - floor3GuardianShieldSpawnTime = System.currentTimeMillis() + 16_400 - } + "§c[BOSS] Scarf§r§f: Don't get too excited though." -> { + floor2secondPhase = true + floor2secondPhaseSpawnTime = System.currentTimeMillis() + 6_300 + } - "§c[BOSS] The Professor§r§f: Even if you took my barrier down, I can still fight." -> { - floor3GuardianShield = false - } + "§c[BOSS] Scarf§r§f: Whatever..." -> { + floor2secondPhase = false + } - "§c[BOSS] The Professor§r§f: Oh? You found my Guardians' one weakness?" -> { - floor3Professor = true - floor3ProfessorSpawnTime = System.currentTimeMillis() + 10_300 - } + //F3 + "§c[BOSS] The Professor§r§f: I was burdened with terrible news recently..." -> { + floor3GuardianShield = true + floor3GuardianShieldSpawnTime = System.currentTimeMillis() + 16_400 + } - "§c[BOSS] The Professor§r§f: I see. You have forced me to use my ultimate technique." -> { - floor3Professor = false + "§c[BOSS] The Professor§r§f: Even if you took my barrier down, I can still fight." -> { + floor3GuardianShield = false + } - floor3ProfessorGuardianPrepare = true - floor3ProfessorGuardianPrepareSpawnTime = System.currentTimeMillis() + 10_500 - } + "§c[BOSS] The Professor§r§f: Oh? You found my Guardians' one weakness?" -> { + floor3Professor = true + floor3ProfessorSpawnTime = System.currentTimeMillis() + 10_300 + } - "§c[BOSS] The Professor§r§f: The process is irreversible, but I'll be stronger than a Wither now!" -> { - floor3ProfessorGuardian = true - } + "§c[BOSS] The Professor§r§f: I see. You have forced me to use my ultimate technique." -> { + floor3Professor = false - "§c[BOSS] The Professor§r§f: What?! My Guardian power is unbeatable!" -> { - floor3ProfessorGuardian = false - } + floor3ProfessorGuardianPrepare = true + floor3ProfessorGuardianPrepareSpawnTime = System.currentTimeMillis() + 10_500 + } + "§c[BOSS] The Professor§r§f: The process is irreversible, but I'll be stronger than a Wither now!" -> { + floor3ProfessorGuardian = true + } - //F5 - "§c[BOSS] Livid§r§f: This Orb you see, is Thorn, or what is left of him." -> { - floor5lividEntity = DungeonLividFinder.lividEntity - floor5lividEntitySpawnTime = System.currentTimeMillis() + 13_000 - } + "§c[BOSS] The Professor§r§f: What?! My Guardian power is unbeatable!" -> { + floor3ProfessorGuardian = false + } - //F6 - "§c[BOSS] Sadan§r§f: ENOUGH!" -> { - floor6Giants = true - floor6GiantsSpawnTime = System.currentTimeMillis() + 7_400 - } + //F5 + "§c[BOSS] Livid§r§f: This Orb you see, is Thorn, or what is left of him." -> { + floor5lividEntity = DungeonLividFinder.lividEntity + floor5lividEntitySpawnTime = System.currentTimeMillis() + 13_000 + } - "§c[BOSS] Sadan§r§f: You did it. I understand now, you have earned my respect." -> { - floor6Giants = false - floor6Sadan = true - floor6SadanSpawnTime = System.currentTimeMillis() + 32_500 - } + //F6 + "§c[BOSS] Sadan§r§f: ENOUGH!" -> { + floor6Giants = true + floor6GiantsSpawnTime = System.currentTimeMillis() + 7_400 + } - "§c[BOSS] Sadan§r§f: NOOOOOOOOO!!! THIS IS IMPOSSIBLE!!" -> { - floor6Sadan = false - } + "§c[BOSS] Sadan§r§f: You did it. I understand now, you have earned my respect." -> { + floor6Giants = false + floor6Sadan = true + floor6SadanSpawnTime = System.currentTimeMillis() + 32_500 } - if (message.matchRegex("§c\\[BOSS] (.*) Livid§r§f: Impossible! How did you figure out which one I was\\?!")) { - floor5lividEntity = null + "§c[BOSS] Sadan§r§f: NOOOOOOOOO!!! THIS IS IMPOSSIBLE!!" -> { + floor6Sadan = false } } + + if (message.matchRegex("§c\\[BOSS] (.*) Livid§r§f: Impossible! How did you figure out which one I was\\?!")) { + floor5lividEntity = null + } } fun handleNewEntity(entity: Entity) { if (LorenzUtils.inDungeons && floor3ProfessorGuardian && entity is EntityGuardian && floor3ProfessorGuardianEntity == null) { - floor3ProfessorGuardianEntity = entity floor3ProfessorGuardianPrepare = false |