#include "../../sc_defines.h" #include "../../creature/simple_ai.h" #define MARK_OF_HYDROS 38218 #define WATER_TOMB 38235 #define MARK_OF_CORRUPTION 38222 #define VILE_SLUDGE 38242 #define ENRAGE 34624 #define SAY_ENTER "I cannot allow you to interfere!" #define SAY_JUSTDIED "I am... released..." CreatureAI* GetAI_ boss_hydross(Creature *_Creature) { SimpleAI* ai = new SimpleAI (_Creature); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DISARM, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_POLYMORPH, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_INTERRUPT, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_DAZE, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FEAR, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_CHARM, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_ROOT, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_FREEZE, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SILENCE, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUNE, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_CONFUSE, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_SLEEP, true); ai->m_creature->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_BANISH, true); //On Aggro ai->Aggro_Yell[0] = SAY_ENTER; //Just Died ai->Death_Yell[0] = SAY_JUSTDIED; //Mark of hydros ai->Spell[0].Enabled = true; ai->Spell[0].Spell_Id = MARK_OF_HYDROS; ai->Spell[0].Cooldown = 60000; ai->Spell[0].First_Cast = 1000; ai->Spell[0].Cast_Target_Type = CAST_HOSTILE_TARGET; //Water Tomb ai->Spell[1].Enabled = true; ai->Spell[1].Spell_Id = WATER_TOMB; ai->Spell[1].Cooldown = 14000; ai->Spell[1].First_Cast = 2000; ai->Spell[1].Cast_Target_Type = CAST_HOSTILE_TARGET; //Mark of Corruption ai->Spell[2].Enabled = true; ai->Spell[2].Spell_Id = MARK_OF_CORRUPTION; ai->Spell[2].Cooldown = 60000; ai->Spell[2].First_Cast = 30000; ai->Spell[2].Cast_Target_Type = CAST_HOSTILE_TARGET; //Vile Sludge ai->Spell[3].Enabled = true; ai->Spell[3].Spell_Id = VILE_SLUDGE; ai->Spell[3].Cooldown = 30000; ai->Spell[3].First_Cast = 31000; ai->Spell[3].Cast_Target_Type = CAST_HOSTILE_TARGET; //Enrage ai->Spell[4].Enabled = true; ai->Spell[4].Spell_Id = ENRAGE; ai->Spell[4].First_Cast = 600000; ai->Spell[4].Cast_Target_Type = CAST_SELF; ai->EnterEvadeMode(); return ai; } void AddSC_boss_hydross() { Script *newscript; newscript = new Script; newscript->Name="boss_hydross"; newscript->GetAI = GetAI_boss_hydross; m_scripts[nrscripts++] = newscript; }