convert Arcatraz to new format
--HG-- branch : trunk extra : rebase_source : 9c77e524badeccac0c2adbe68110f741b5a3549b
This commit is contained in:
@@ -36,36 +36,49 @@ EndContentData */
|
||||
# npc_millhouse_manastorm
|
||||
#####*/
|
||||
|
||||
#define SAY_INTRO_1 -1552010
|
||||
#define SAY_INTRO_2 -1552011
|
||||
#define SAY_WATER -1552012
|
||||
#define SAY_BUFFS -1552013
|
||||
#define SAY_DRINK -1552014
|
||||
#define SAY_READY -1552015
|
||||
#define SAY_KILL_1 -1552016
|
||||
#define SAY_KILL_2 -1552017
|
||||
#define SAY_PYRO -1552018
|
||||
#define SAY_ICEBLOCK -1552019
|
||||
#define SAY_LOWHP -1552020
|
||||
#define SAY_DEATH -1552021
|
||||
#define SAY_COMPLETE -1552022
|
||||
|
||||
#define SPELL_CONJURE_WATER 36879
|
||||
#define SPELL_ARCANE_INTELLECT 36880
|
||||
#define SPELL_ICE_ARMOR 36881
|
||||
|
||||
#define SPELL_ARCANE_MISSILES 33833
|
||||
#define SPELL_CONE_OF_COLD 12611
|
||||
#define SPELL_FIRE_BLAST 13341
|
||||
#define SPELL_FIREBALL 14034
|
||||
#define SPELL_FROSTBOLT 15497
|
||||
#define SPELL_PYROBLAST 33975
|
||||
|
||||
struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
enum eMillhouseSays
|
||||
{
|
||||
npc_millhouse_manastormAI(Creature *c) : ScriptedAI(c)
|
||||
SAY_INTRO_1 = -1552010,
|
||||
SAY_INTRO_2 = -1552011,
|
||||
SAY_WATER = -1552012,
|
||||
SAY_BUFFS = -1552013,
|
||||
SAY_DRINK = -1552014,
|
||||
SAY_READY = -1552015,
|
||||
SAY_KILL_1 = -1552016,
|
||||
SAY_KILL_2 = -1552017,
|
||||
SAY_PYRO = -1552018,
|
||||
SAY_ICEBLOCK = -1552019,
|
||||
SAY_LOWHP = -1552020,
|
||||
SAY_DEATH = -1552021,
|
||||
SAY_COMPLETE = -1552022,
|
||||
};
|
||||
|
||||
enum eMillhouseSpells
|
||||
{
|
||||
SPELL_CONJURE_WATER = 36879,
|
||||
SPELL_ARCANE_INTELLECT = 36880,
|
||||
SPELL_ICE_ARMOR = 36881,
|
||||
SPELL_ARCANE_MISSILES = 33833,
|
||||
SPELL_CONE_OF_COLD = 12611,
|
||||
SPELL_FIRE_BLAST = 13341,
|
||||
SPELL_FIREBALL = 14034,
|
||||
SPELL_FROSTBOLT = 15497,
|
||||
SPELL_PYROBLAST = 33975,
|
||||
};
|
||||
|
||||
class npc_millhouse_manastorm : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_millhouse_manastorm()
|
||||
: CreatureScript("npc_millhouse_manastorm")
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
{
|
||||
npc_millhouse_manastormAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
}
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
@@ -94,11 +107,9 @@ struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
Init = true;
|
||||
|
||||
if (pInstance->GetData(TYPE_HARBINGERSKYRISS) == DONE)
|
||||
{
|
||||
DoScriptText(SAY_COMPLETE, me);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AttackStart(Unit* pWho)
|
||||
{
|
||||
@@ -107,14 +118,11 @@ struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
me->AddThreat(pWho, 0.0f);
|
||||
me->SetInCombatWith(pWho);
|
||||
pWho->SetInCombatWith(me);
|
||||
|
||||
me->GetMotionMaster()->MoveChase(pWho, 25.0f);
|
||||
}
|
||||
}
|
||||
|
||||
void EnterCombat(Unit * /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit * /*who*/){}
|
||||
|
||||
void KilledUnit(Unit * /*victim*/)
|
||||
{
|
||||
@@ -175,12 +183,13 @@ struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
}
|
||||
++Phase;
|
||||
}
|
||||
} else EventProgress_Timer -= diff;
|
||||
}
|
||||
else
|
||||
EventProgress_Timer -= diff;
|
||||
}
|
||||
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (!LowHp && ((me->GetHealth()*100 / me->GetMaxHealth()) < 20))
|
||||
{
|
||||
DoScriptText(SAY_LOWHP, me);
|
||||
@@ -196,63 +205,84 @@ struct npc_millhouse_manastormAI : public ScriptedAI
|
||||
|
||||
DoCast(me->getVictim(), SPELL_PYROBLAST);
|
||||
Pyroblast_Timer = 40000;
|
||||
} else Pyroblast_Timer -=diff;
|
||||
}
|
||||
else
|
||||
Pyroblast_Timer -=diff;
|
||||
|
||||
if (Fireball_Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_FIREBALL);
|
||||
Fireball_Timer = 4000;
|
||||
} else Fireball_Timer -=diff;
|
||||
}
|
||||
else
|
||||
Fireball_Timer -=diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* OnGetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_millhouse_manastormAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_npc_millhouse_manastorm(Creature* pCreature)
|
||||
{
|
||||
return new npc_millhouse_manastormAI (pCreature);
|
||||
}
|
||||
|
||||
/*#####
|
||||
# npc_warden_mellichar
|
||||
#####*/
|
||||
|
||||
#define YELL_INTRO1 -1552023
|
||||
#define YELL_INTRO2 -1552024
|
||||
#define YELL_RELEASE1 -1552025
|
||||
#define YELL_RELEASE2A -1552026
|
||||
#define YELL_RELEASE2B -1552027
|
||||
#define YELL_RELEASE3 -1552028
|
||||
#define YELL_RELEASE4 -1552029
|
||||
#define YELL_WELCOME -1552030
|
||||
|
||||
//phase 2(acid mobs)
|
||||
#define ENTRY_TRICKSTER 20905
|
||||
#define ENTRY_PH_HUNTER 20906
|
||||
//phase 3
|
||||
#define ENTRY_MILLHOUSE 20977
|
||||
//phase 4(acid mobs)
|
||||
#define ENTRY_AKKIRIS 20908
|
||||
#define ENTRY_SULFURON 20909
|
||||
//phase 5(acid mobs)
|
||||
#define ENTRY_TW_DRAK 20910
|
||||
#define ENTRY_BL_DRAK 20911
|
||||
//phase 6
|
||||
#define ENTRY_SKYRISS 20912
|
||||
|
||||
//TARGET_SCRIPT
|
||||
#define SPELL_TARGET_ALPHA 36856
|
||||
#define SPELL_TARGET_BETA 36854
|
||||
#define SPELL_TARGET_DELTA 36857
|
||||
#define SPELL_TARGET_GAMMA 36858
|
||||
#define SPELL_TARGET_OMEGA 36852
|
||||
#define SPELL_BUBBLE_VISUAL 36849
|
||||
|
||||
struct npc_warden_mellicharAI : public ScriptedAI
|
||||
enum eWardenSays
|
||||
{
|
||||
npc_warden_mellicharAI(Creature *c) : ScriptedAI(c)
|
||||
YELL_INTRO1 = -1552023,
|
||||
YELL_INTRO2 = -1552024,
|
||||
YELL_RELEASE1 = -1552025,
|
||||
YELL_RELEASE2A = -1552026,
|
||||
YELL_RELEASE2B = -1552027,
|
||||
YELL_RELEASE3 = -1552028,
|
||||
YELL_RELEASE4 = -1552029,
|
||||
YELL_WELCOME = -1552030,
|
||||
};
|
||||
|
||||
enum eWardenUnits
|
||||
{
|
||||
//phase 2(acid mobs)
|
||||
ENTRY_TRICKSTER = 20905,
|
||||
ENTRY_PH_HUNTER = 20906,
|
||||
//phase 3
|
||||
ENTRY_MILLHOUSE = 20977,
|
||||
//phase 4(acid mobs)
|
||||
ENTRY_AKKIRIS = 20908,
|
||||
ENTRY_SULFURON = 20909,
|
||||
//phase 5(acid mobs)
|
||||
ENTRY_TW_DRAK = 20910,
|
||||
ENTRY_BL_DRAK = 20911,
|
||||
//phase 6
|
||||
ENTRY_SKYRISS = 20912,
|
||||
};
|
||||
|
||||
enum eWardenSpells
|
||||
{
|
||||
//TARGET_SCRIPT
|
||||
SPELL_TARGET_ALPHA = 36856,
|
||||
SPELL_TARGET_BETA = 36854,
|
||||
SPELL_TARGET_DELTA = 36857,
|
||||
SPELL_TARGET_GAMMA = 36858,
|
||||
SPELL_TARGET_OMEGA = 36852,
|
||||
SPELL_BUBBLE_VISUAL = 36849,
|
||||
};
|
||||
|
||||
class npc_warden_mellichar : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
npc_warden_mellichar()
|
||||
: CreatureScript("npc_warden_mellichar")
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
struct npc_warden_mellicharAI : public ScriptedAI
|
||||
{
|
||||
npc_warden_mellicharAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
}
|
||||
|
||||
ScriptedInstance* pInstance;
|
||||
@@ -395,8 +425,12 @@ struct npc_warden_mellicharAI : public ScriptedAI
|
||||
case 2:
|
||||
switch (urand(0,1))
|
||||
{
|
||||
case 0: me->SummonCreature(ENTRY_TRICKSTER,478.326,-148.505,42.56,3.19,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 1: me->SummonCreature(ENTRY_PH_HUNTER,478.326,-148.505,42.56,3.19,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 0:
|
||||
me->SummonCreature(ENTRY_TRICKSTER,478.326,-148.505,42.56,3.19,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
case 1:
|
||||
me->SummonCreature(ENTRY_PH_HUNTER,478.326,-148.505,42.56,3.19,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -408,15 +442,23 @@ struct npc_warden_mellicharAI : public ScriptedAI
|
||||
case 5:
|
||||
switch (urand(0,1))
|
||||
{
|
||||
case 0: me->SummonCreature(ENTRY_AKKIRIS,420.179,-174.396,42.58,0.02,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 1: me->SummonCreature(ENTRY_SULFURON,420.179,-174.396,42.58,0.02,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 0:
|
||||
me->SummonCreature(ENTRY_AKKIRIS,420.179,-174.396,42.58,0.02,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
case 1:
|
||||
me->SummonCreature(ENTRY_SULFURON,420.179,-174.396,42.58,0.02,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
switch (urand(0,1))
|
||||
{
|
||||
case 0: me->SummonCreature(ENTRY_TW_DRAK,471.795,-174.58,42.58,3.06,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 1: me->SummonCreature(ENTRY_BL_DRAK,471.795,-174.58,42.58,3.06,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000); break;
|
||||
case 0:
|
||||
me->SummonCreature(ENTRY_TW_DRAK,471.795,-174.58,42.58,3.06,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
case 1:
|
||||
me->SummonCreature(ENTRY_BL_DRAK,471.795,-174.58,42.58,3.06,TEMPSUMMON_TIMED_OR_DEAD_DESPAWN,600000);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
@@ -466,13 +508,17 @@ struct npc_warden_mellicharAI : public ScriptedAI
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else EventProgress_Timer -= diff;
|
||||
}
|
||||
else
|
||||
EventProgress_Timer -= diff;
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* OnGetAI(Creature* creature) const
|
||||
{
|
||||
return new npc_warden_mellicharAI(creature);
|
||||
}
|
||||
};
|
||||
CreatureAI* GetAI_npc_warden_mellichar(Creature* pCreature)
|
||||
{
|
||||
return new npc_warden_mellicharAI (pCreature);
|
||||
}
|
||||
|
||||
/*#####
|
||||
# mob_zerekethvoidzone (this script probably not needed in future -> `creature_template_addon`.`auras`='36120 0')
|
||||
@@ -480,9 +526,17 @@ CreatureAI* GetAI_npc_warden_mellichar(Creature* pCreature)
|
||||
|
||||
#define SPELL_VOID_ZONE_DAMAGE 36120
|
||||
|
||||
struct mob_zerekethvoidzoneAI : public ScriptedAI
|
||||
class mob_zerekethvoidzone : public CreatureScript
|
||||
{
|
||||
mob_zerekethvoidzoneAI(Creature *c) : ScriptedAI(c) {}
|
||||
public:
|
||||
|
||||
mob_zerekethvoidzone()
|
||||
: CreatureScript("mob_zerekethvoidzone")
|
||||
{
|
||||
}
|
||||
struct mob_zerekethvoidzoneAI : public ScriptedAI
|
||||
{
|
||||
mob_zerekethvoidzoneAI(Creature* pCreature) : ScriptedAI(pCreature) {}
|
||||
|
||||
void Reset()
|
||||
{
|
||||
@@ -494,29 +548,17 @@ struct mob_zerekethvoidzoneAI : public ScriptedAI
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
};
|
||||
CreatureAI* GetAI_mob_zerekethvoidzoneAI(Creature* pCreature)
|
||||
{
|
||||
return new mob_zerekethvoidzoneAI (pCreature);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* OnGetAI(Creature* creature) const
|
||||
{
|
||||
return new mob_zerekethvoidzoneAI(creature);
|
||||
}
|
||||
};
|
||||
void AddSC_arcatraz()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_millhouse_manastorm";
|
||||
newscript->GetAI = &GetAI_npc_millhouse_manastorm;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "npc_warden_mellichar";
|
||||
newscript->GetAI = &GetAI_npc_warden_mellichar;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "mob_zerekethvoidzone";
|
||||
newscript->GetAI = &GetAI_mob_zerekethvoidzoneAI;
|
||||
newscript->RegisterSelf();
|
||||
new npc_millhouse_manastorm();
|
||||
new npc_warden_mellichar();
|
||||
new mob_zerekethvoidzone();
|
||||
}
|
||||
|
||||
|
||||
@@ -31,35 +31,46 @@ EndContentData */
|
||||
#include "ScriptPCH.h"
|
||||
#include "arcatraz.h"
|
||||
|
||||
#define SAY_INTRO -1552000
|
||||
#define SAY_AGGRO -1552001
|
||||
#define SAY_KILL_1 -1552002
|
||||
#define SAY_KILL_2 -1552003
|
||||
#define SAY_MIND_1 -1552004
|
||||
#define SAY_MIND_2 -1552005
|
||||
#define SAY_FEAR_1 -1552006
|
||||
#define SAY_FEAR_2 -1552007
|
||||
#define SAY_IMAGE -1552008
|
||||
#define SAY_DEATH -1552009
|
||||
|
||||
#define SPELL_FEAR 39415
|
||||
|
||||
#define SPELL_MIND_REND 36924
|
||||
#define H_SPELL_MIND_REND 39017
|
||||
|
||||
#define SPELL_DOMINATION 37162
|
||||
#define H_SPELL_DOMINATION 39019
|
||||
|
||||
#define H_SPELL_MANA_BURN 39020
|
||||
|
||||
#define SPELL_66_ILLUSION 36931 //entry 21466
|
||||
#define SPELL_33_ILLUSION 36932 //entry 21467
|
||||
|
||||
struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
enum eSays
|
||||
{
|
||||
boss_harbinger_skyrissAI(Creature *c) : ScriptedAI(c)
|
||||
SAY_INTRO = -1552000,
|
||||
SAY_AGGRO = -1552001,
|
||||
SAY_KILL_1 = -1552002,
|
||||
SAY_KILL_2 = -1552003,
|
||||
SAY_MIND_1 = -1552004,
|
||||
SAY_MIND_2 = -1552005,
|
||||
SAY_FEAR_1 = -1552006,
|
||||
SAY_FEAR_2 = -1552007,
|
||||
SAY_IMAGE = -1552008,
|
||||
SAY_DEATH = -1552009,
|
||||
};
|
||||
|
||||
enum eSpells
|
||||
{
|
||||
SPELL_FEAR = 39415,
|
||||
SPELL_MIND_REND = 36924,
|
||||
H_SPELL_MIND_REND = 39017,
|
||||
SPELL_DOMINATION = 37162,
|
||||
H_SPELL_DOMINATION = 39019,
|
||||
H_SPELL_MANA_BURN = 39020,
|
||||
SPELL_66_ILLUSION = 36931, //entry 21466
|
||||
SPELL_33_ILLUSION = 36932, //entry 21467
|
||||
};
|
||||
|
||||
|
||||
class boss_harbinger_skyriss : public CreatureScript
|
||||
{
|
||||
public:
|
||||
|
||||
boss_harbinger_skyriss()
|
||||
: CreatureScript("boss_harbinger_skyriss")
|
||||
{
|
||||
pInstance = c->GetInstanceData();
|
||||
}
|
||||
struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
{
|
||||
boss_harbinger_skyrissAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
Intro = false;
|
||||
}
|
||||
|
||||
@@ -95,9 +106,8 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
void MoveInLineOfSight(Unit *who)
|
||||
{
|
||||
if (!Intro)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ScriptedAI::MoveInLineOfSight(who);
|
||||
}
|
||||
|
||||
@@ -179,9 +189,10 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
Intro = true;
|
||||
break;
|
||||
}
|
||||
} else Intro_Timer -=diff;
|
||||
}
|
||||
|
||||
else
|
||||
Intro_Timer -=diff;
|
||||
}
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
@@ -204,7 +215,9 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
DoCast(me->getVictim(), SPELL_MIND_REND);
|
||||
|
||||
MindRend_Timer = 8000;
|
||||
} else MindRend_Timer -=diff;
|
||||
}
|
||||
else
|
||||
MindRend_Timer -=diff;
|
||||
|
||||
if (Fear_Timer <= diff)
|
||||
{
|
||||
@@ -219,7 +232,9 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
DoCast(me->getVictim(), SPELL_FEAR);
|
||||
|
||||
Fear_Timer = 25000;
|
||||
} else Fear_Timer -=diff;
|
||||
}
|
||||
else
|
||||
Fear_Timer -=diff;
|
||||
|
||||
if (Domination_Timer <= diff)
|
||||
{
|
||||
@@ -234,7 +249,9 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
DoCast(me->getVictim(), SPELL_DOMINATION);
|
||||
|
||||
Domination_Timer = 16000+rand()%16000;
|
||||
} else Domination_Timer -=diff;
|
||||
}
|
||||
else
|
||||
Domination_Timer -=diff;
|
||||
|
||||
if (IsHeroic())
|
||||
{
|
||||
@@ -247,49 +264,51 @@ struct boss_harbinger_skyrissAI : public ScriptedAI
|
||||
DoCast(pTarget, H_SPELL_MANA_BURN);
|
||||
|
||||
ManaBurn_Timer = 16000+rand()%16000;
|
||||
} else ManaBurn_Timer -=diff;
|
||||
}
|
||||
|
||||
else
|
||||
ManaBurn_Timer -=diff;
|
||||
}
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_harbinger_skyriss(Creature* pCreature)
|
||||
{
|
||||
return new boss_harbinger_skyrissAI (pCreature);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_harbinger_skyriss(Creature* pCreature)
|
||||
{
|
||||
return new boss_harbinger_skyrissAI (pCreature);
|
||||
}
|
||||
|
||||
#define SPELL_MIND_REND_IMAGE 36929
|
||||
#define H_SPELL_MIND_REND_IMAGE 39021
|
||||
|
||||
struct boss_harbinger_skyriss_illusionAI : public ScriptedAI
|
||||
class boss_harbinger_skyriss_illusion : public CreatureScript
|
||||
{
|
||||
boss_harbinger_skyriss_illusionAI(Creature *c) : ScriptedAI(c)
|
||||
public:
|
||||
|
||||
boss_harbinger_skyriss_illusion()
|
||||
: CreatureScript("boss_harbinger_skyriss_illusion")
|
||||
{
|
||||
}
|
||||
struct boss_harbinger_skyriss_illusionAI : public ScriptedAI
|
||||
{
|
||||
boss_harbinger_skyriss_illusionAI(Creature* pCreature) : ScriptedAI(pCreature) {}
|
||||
|
||||
void Reset() { }
|
||||
|
||||
void EnterCombat(Unit * /*who*/) { }
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const
|
||||
{
|
||||
return new boss_harbinger_skyriss_illusionAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
CreatureAI* GetAI_boss_harbinger_skyriss_illusion(Creature* pCreature)
|
||||
{
|
||||
return new boss_harbinger_skyriss_illusionAI (pCreature);
|
||||
}
|
||||
|
||||
void AddSC_boss_harbinger_skyriss()
|
||||
{
|
||||
Script *newscript;
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_harbinger_skyriss";
|
||||
newscript->GetAI = &GetAI_boss_harbinger_skyriss;
|
||||
newscript->RegisterSelf();
|
||||
|
||||
newscript = new Script;
|
||||
newscript->Name = "boss_harbinger_skyriss_illusion";
|
||||
newscript->GetAI = &GetAI_boss_harbinger_skyriss_illusion;
|
||||
newscript->RegisterSelf();
|
||||
new boss_harbinger_skyriss();
|
||||
new boss_harbinger_skyriss_illusion();
|
||||
}
|
||||
|
||||
|
||||
@@ -28,17 +28,21 @@ EndScriptData */
|
||||
|
||||
#define MAX_ENCOUNTER 9
|
||||
|
||||
#define CONTAINMENT_CORE_SECURITY_FIELD_ALPHA 184318 //door opened when Wrath-Scryer Soccothrates dies
|
||||
#define CONTAINMENT_CORE_SECURITY_FIELD_BETA 184319 //door opened when Dalliah the Doomsayer dies
|
||||
#define POD_ALPHA 183961 //pod first boss wave
|
||||
#define POD_BETA 183963 //pod second boss wave
|
||||
#define POD_DELTA 183964 //pod third boss wave
|
||||
#define POD_GAMMA 183962 //pod fourth boss wave
|
||||
#define POD_OMEGA 183965 //pod fifth boss wave
|
||||
#define WARDENS_SHIELD 184802 // warden shield
|
||||
#define SEAL_SPHERE 184802 //shield 'protecting' mellichar
|
||||
enum eUnits
|
||||
{
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_ALPHA = 184318,//door opened when Wrath-Scryer Soccothrates dies
|
||||
CONTAINMENT_CORE_SECURITY_FIELD_BETA = 184319,//door opened when Dalliah the Doomsayer dies
|
||||
POD_ALPHA = 183961,//pod first boss wave
|
||||
POD_BETA = 183963,//pod second boss wave
|
||||
POD_DELTA = 183964,//pod third boss wave
|
||||
POD_GAMMA = 183962,//pod fourth boss wave
|
||||
POD_OMEGA = 183965,//pod fifth boss wave
|
||||
WARDENS_SHIELD = 184802,// warden shield
|
||||
SEAL_SPHERE = 184802,//shield 'protecting' mellichar
|
||||
|
||||
MELLICHAR = 20904,//skyriss will kill this unit
|
||||
};
|
||||
|
||||
#define MELLICHAR 20904 //skyriss will kill this unit
|
||||
|
||||
/* Arcatraz encounters:
|
||||
1 - Zereketh the Unbound event
|
||||
@@ -47,9 +51,16 @@ EndScriptData */
|
||||
4 - Harbinger Skyriss event, 5 sub-events
|
||||
*/
|
||||
|
||||
struct instance_arcatraz : public ScriptedInstance
|
||||
class instance_arcatraz : public InstanceMapScript
|
||||
{
|
||||
instance_arcatraz(Map* pMap) : ScriptedInstance(pMap) {Initialize();};
|
||||
public:
|
||||
instance_arcatraz()
|
||||
: InstanceMapScript("instance_arcatraz")
|
||||
{
|
||||
}
|
||||
struct instance_arcatraz_InstanceMapScript : public ScriptedInstance
|
||||
{
|
||||
instance_arcatraz_InstanceMapScript(Map* pMap) : ScriptedInstance(pMap) { Initialize(); };
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
|
||||
@@ -88,6 +99,7 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void OnGameObjectCreate(GameObject* pGo, bool /*add*/)
|
||||
{
|
||||
switch(pGo->GetEntry())
|
||||
@@ -117,7 +129,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
case TYPE_ZEREKETH:
|
||||
m_auiEncounter[0] = data;
|
||||
break;
|
||||
|
||||
case TYPE_DALLIAH:
|
||||
if (data == DONE)
|
||||
{
|
||||
@@ -126,7 +137,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[1] = data;
|
||||
break;
|
||||
|
||||
case TYPE_SOCCOTHRATES:
|
||||
if (data == DONE)
|
||||
{
|
||||
@@ -135,7 +145,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[2] = data;
|
||||
break;
|
||||
|
||||
case TYPE_HARBINGERSKYRISS:
|
||||
if (data == NOT_STARTED || data == FAIL)
|
||||
{
|
||||
@@ -147,14 +156,12 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[3] = data;
|
||||
break;
|
||||
|
||||
case TYPE_WARDEN_1:
|
||||
if (data == IN_PROGRESS)
|
||||
if (GameObject *pGo = instance->GetGameObject(Pod_AlphaGUID))
|
||||
pGo->UseDoorOrButton();
|
||||
m_auiEncounter[4] = data;
|
||||
break;
|
||||
|
||||
case TYPE_WARDEN_2:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
@@ -163,7 +170,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[5] = data;
|
||||
break;
|
||||
|
||||
case TYPE_WARDEN_3:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
@@ -172,7 +178,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[6] = data;
|
||||
break;
|
||||
|
||||
case TYPE_WARDEN_4:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
@@ -181,7 +186,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[7] = data;
|
||||
break;
|
||||
|
||||
case TYPE_WARDEN_5:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
@@ -190,7 +194,6 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
m_auiEncounter[8] = data;
|
||||
break;
|
||||
|
||||
case TYPE_SHIELD_OPEN:
|
||||
if (data == IN_PROGRESS)
|
||||
{
|
||||
@@ -224,19 +227,16 @@ struct instance_arcatraz : public ScriptedInstance
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
InstanceData* GetInstanceData_instance_arcatraz(Map* pMap)
|
||||
{
|
||||
return new instance_arcatraz(pMap);
|
||||
}
|
||||
InstanceData* OnGetInstanceData(InstanceMap* pMap)
|
||||
{
|
||||
return new instance_arcatraz_InstanceMapScript(pMap);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_instance_arcatraz()
|
||||
{
|
||||
Script *newscript;
|
||||
newscript = new Script;
|
||||
newscript->Name = "instance_arcatraz";
|
||||
newscript->GetInstanceData = &GetInstanceData_instance_arcatraz;
|
||||
newscript->RegisterSelf();
|
||||
new instance_arcatraz;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user