package at.hannibal2.skyhanni.features.dungeon import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.LorenzChatEvent import at.hannibal2.skyhanni.events.ReceiveParticleEvent import at.hannibal2.skyhanni.features.combat.damageindicator.DamageIndicatorManager import at.hannibal2.skyhanni.utils.LorenzUtils import net.minecraft.entity.EntityLivingBase import net.minecraftforge.client.event.RenderLivingEvent import net.minecraftforge.fml.common.eventhandler.EventPriority import net.minecraftforge.fml.common.eventhandler.SubscribeEvent class TerracottaPhase { private val config get() = SkyHanniMod.feature.dungeon.terracottaPhase private var inTerracottaPhase = false @SubscribeEvent fun onChat(event: LorenzChatEvent) { if (!isEnabled()) return if (event.message == "§c[BOSS] Sadan§r§f: So you made it all the way here... Now you wish to defy me? Sadan?!") { inTerracottaPhase = true } if (event.message == "§c[BOSS] Sadan§r§f: ENOUGH!") { inTerracottaPhase = false } } @SubscribeEvent(priority = EventPriority.HIGH) fun onRenderLiving(event: RenderLivingEvent.Specials.Pre) { if (isActive() && config.hideDamageSplash && DamageIndicatorManager.isDamageSplash(event.entity)) { event.isCanceled = true } } @SubscribeEvent fun onReceiveParticle(event: ReceiveParticleEvent) { if (isActive() && config.hideParticles) { event.isCanceled = true } } private fun isActive() = isEnabled() && inTerracottaPhase private fun isEnabled() = LorenzUtils.inDungeons && DungeonAPI.inBossRoom && DungeonAPI.getCurrentBoss() == DungeonAPI.DungeonFloor.F6 }