mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-19 00:48:56 +01:00
Scripts/EasternKingdoms: ScareltMonastery
* Script Standardizations done, - Removed SD2 Hieroglyphics. - Removed Hungarian Notations. - Fixed Enums in Defines.
This commit is contained in:
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
struct boss_arcanist_doanAI : public ScriptedAI
|
||||
{
|
||||
boss_arcanist_doanAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_arcanist_doanAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 Polymorph_Timer;
|
||||
uint32 AoESilence_Timer;
|
||||
@@ -124,7 +124,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_arcanist_doan()
|
||||
|
||||
@@ -24,10 +24,12 @@ SDCategory: Scarlet Monastery
|
||||
EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
#define SPELL_CALLOFTHEGRAVE 17831
|
||||
#define SPELL_TERRIFY 7399
|
||||
#define SPELL_SOULSIPHON 7290
|
||||
enum Spells
|
||||
{
|
||||
SPELL_CALLOFTHEGRAVE = 17831,
|
||||
SPELL_TERRIFY = 7399,
|
||||
SPELL_SOULSIPHON = 7290
|
||||
};
|
||||
|
||||
class boss_azshir_the_sleepless : public CreatureScript
|
||||
{
|
||||
@@ -41,7 +43,7 @@ public:
|
||||
|
||||
struct boss_azshir_the_sleeplessAI : public ScriptedAI
|
||||
{
|
||||
boss_azshir_the_sleeplessAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_azshir_the_sleeplessAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 SoulSiphon_Timer;
|
||||
uint32 CallOftheGrave_Timer;
|
||||
@@ -54,9 +56,7 @@ public:
|
||||
Terrify_Timer = 20000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -93,7 +93,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_azshir_the_sleepless()
|
||||
|
||||
@@ -49,7 +49,7 @@ public:
|
||||
|
||||
struct boss_bloodmage_thalnosAI : public ScriptedAI
|
||||
{
|
||||
boss_bloodmage_thalnosAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_bloodmage_thalnosAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool HpYell;
|
||||
uint32 FlameShock_Timer;
|
||||
@@ -119,7 +119,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_bloodmage_thalnos()
|
||||
|
||||
@@ -28,59 +28,66 @@ EndScriptData */
|
||||
#include "scarlet_monastery.h"
|
||||
|
||||
//this texts are already used by 3975 and 3976
|
||||
#define SAY_ENTRANCE -1189001
|
||||
#define SAY_REJOINED -1189002
|
||||
#define SAY_LOST_HEAD -1189003
|
||||
#define SAY_CONFLAGRATION -1189004
|
||||
#define SAY_SPROUTING_PUMPKINS -1189005
|
||||
#define SAY_PLAYER_DEATH -1189006
|
||||
#define SAY_DEATH -1189007
|
||||
enum Says
|
||||
{
|
||||
SAY_ENTRANCE = -1189001,
|
||||
SAY_REJOINED = -1189002,
|
||||
SAY_LOST_HEAD = -1189003,
|
||||
SAY_CONFLAGRATION = -1189004,
|
||||
SAY_SPROUTING_PUMPKINS = -1189005,
|
||||
SAY_PLAYER_DEATH = -1189006,
|
||||
SAY_DEATH = -1189007
|
||||
};
|
||||
|
||||
uint32 RandomLaugh[] = {11965, 11975, 11976};
|
||||
|
||||
// Entryes
|
||||
#define HH_MOUNTED 23682
|
||||
#define HH_UNHORSED 23800
|
||||
#define HEAD 23775
|
||||
#define PULSING_PUMPKIN 23694
|
||||
#define PUMPKIN_FIEND 23545
|
||||
#define HELPER 23686
|
||||
#define WISP_INVIS 24034
|
||||
enum Entry
|
||||
{
|
||||
HH_MOUNTED = 23682,
|
||||
HH_DISMOUNTED = 23800, // unhorsed?? wtf type of engrish was that?
|
||||
HEAD = 23775,
|
||||
PULSING_PUMPKIN = 23694,
|
||||
PUMPKIN_FIEND = 23545,
|
||||
HELPER = 23686,
|
||||
WISP_INVIS = 24034
|
||||
};
|
||||
|
||||
//Spells
|
||||
#define SPELL_CLEAVE 42587
|
||||
#define SPELL_CONFLAGRATION 42380 //Phase 2, can't find real spell(Dim Fire?)
|
||||
//#define SPELL_CONFL_SPEED 22587 //8% increase speed, value 22587 from SPELL_CONFLAGRATION mains that spell?
|
||||
#define SPELL_SUMMON_PUMPKIN 42394
|
||||
enum Spells
|
||||
{
|
||||
SPELL_CLEAVE = 42587,
|
||||
SPELL_CONFLAGRATION = 42380, //Phase 2, can't find real spell(Dim Fire?)
|
||||
// SPELL_CONFL_SPEED = 22587, //8% increase speed, value 22587 from SPELL_CONFLAGRATION mains that spell?
|
||||
SPELL_SUMMON_PUMPKIN = 42394,
|
||||
|
||||
#define SPELL_WHIRLWIND 43116
|
||||
#define SPELL_IMMUNE 42556
|
||||
#define SPELL_BODY_REGEN 42403
|
||||
#define SPELL_CONFUSE 43105
|
||||
SPELL_WHIRLWIND = 43116,
|
||||
SPELL_IMMUNE = 42556,
|
||||
SPELL_BODY_REGEN = 42403,
|
||||
SPELL_CONFUSE = 43105,
|
||||
|
||||
#define SPELL_FLYING_HEAD 42399 //visual flying head
|
||||
#define SPELL_HEAD 42413 //visual buff, "head"
|
||||
#define SPELL_HEAD_IS_DEAD 42428 //at killing head, Phase 3
|
||||
SPELL_FLYING_HEAD = 42399, //visual flying head
|
||||
SPELL_HEAD = 42413, //visual buff, "head"
|
||||
SPELL_HEAD_IS_DEAD = 42428, //at killing head, Phase 3
|
||||
|
||||
#define SPELL_PUMPKIN_AURA 42280
|
||||
#define SPELL_PUMPKIN_AURA_GREEN 42294
|
||||
#define SPELL_SQUASH_SOUL 42514
|
||||
#define SPELL_SPROUTING 42281
|
||||
#define SPELL_SPROUT_BODY 42285
|
||||
SPELL_PUMPKIN_AURA = 42280,
|
||||
SPELL_PUMPKIN_AURA_GREEN = 42294,
|
||||
SPELL_SQUASH_SOUL = 42514,
|
||||
SPELL_SPROUTING = 42281,
|
||||
SPELL_SPROUT_BODY = 42285,
|
||||
|
||||
//Effects
|
||||
#define SPELL_RHYME_BIG 42909
|
||||
//#define SPELL_RHYME_SMALL 42910
|
||||
#define SPELL_HEAD_SPEAKS 43129
|
||||
#define SPELL_HEAD_LANDS 42400
|
||||
#define SPELL_BODY_FLAME 42074
|
||||
#define SPELL_HEAD_FLAME 42971
|
||||
//#define SPELL_ENRAGE_VISUAL 42438 // he uses this spell?
|
||||
#define SPELL_WISP_BLUE 42821
|
||||
#define SPELL_WISP_FLIGHT_PORT 42818
|
||||
//#define SPELL_WISP_INVIS 42823
|
||||
#define SPELL_SMOKE 42355
|
||||
#define SPELL_DEATH 42566 //not correct spell
|
||||
SPELL_RHYME_BIG = 42909,
|
||||
// SPELL_RHYME_SMALL = 42910,
|
||||
SPELL_HEAD_SPEAKS = 43129,
|
||||
SPELL_HEAD_LANDS = 42400,
|
||||
SPELL_BODY_FLAME = 42074,
|
||||
SPELL_HEAD_FLAME = 42971,
|
||||
// SPELL_ENRAGE_VISUAL = 42438, // he uses this spell?
|
||||
SPELL_WISP_BLUE = 42821,
|
||||
SPELL_WISP_FLIGHT_PORT = 42818,
|
||||
// SPELL_WISP_INVIS = 42823,
|
||||
SPELL_SMOKE = 42355,
|
||||
SPELL_DEATH = 42566 //not correct spell
|
||||
};
|
||||
|
||||
struct Locations
|
||||
{
|
||||
@@ -114,7 +121,7 @@ static Locations FlightPoint[]=
|
||||
|
||||
static Locations Spawn[]=
|
||||
{
|
||||
{1776.27f, 1348.74f, 19.20f}, //spawn point for pumpkin shrine mob
|
||||
{1776.27f, 1348.74f, 19.20f}, //spawn point for pumpkin shrine mob
|
||||
{1765.28f, 1347.46f, 17.55f} //spawn point for smoke
|
||||
};
|
||||
|
||||
@@ -126,7 +133,7 @@ static const char* Text[]=
|
||||
"Now, know demise!"
|
||||
};
|
||||
|
||||
#define EMOTE_LAUGHS "Headless Horseman laughs"
|
||||
#define EMOTE_LAUGHS "Headless Horseman laughs" // needs assigned to db.
|
||||
|
||||
class mob_wisp_invis : public CreatureScript
|
||||
{
|
||||
@@ -140,7 +147,7 @@ public:
|
||||
|
||||
struct mob_wisp_invisAI : public ScriptedAI
|
||||
{
|
||||
mob_wisp_invisAI(Creature* c) : ScriptedAI(c)
|
||||
mob_wisp_invisAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
Creaturetype = delay = spell = spell2 = 0;
|
||||
}
|
||||
@@ -149,8 +156,8 @@ public:
|
||||
uint32 delay;
|
||||
uint32 spell;
|
||||
uint32 spell2;
|
||||
void Reset(){}
|
||||
void EnterCombat(Unit* /*who*/){}
|
||||
void Reset() {}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
void SetType(uint32 _type)
|
||||
{
|
||||
switch (Creaturetype = _type)
|
||||
@@ -205,7 +212,6 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class mob_head : public CreatureScript
|
||||
@@ -220,7 +226,7 @@ public:
|
||||
|
||||
struct mob_headAI : public ScriptedAI
|
||||
{
|
||||
mob_headAI(Creature* c) : ScriptedAI(c) {}
|
||||
mob_headAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint64 bodyGUID;
|
||||
|
||||
@@ -344,7 +350,6 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class boss_headless_horseman : public CreatureScript
|
||||
@@ -359,9 +364,9 @@ public:
|
||||
|
||||
struct boss_headless_horsemanAI : public ScriptedAI
|
||||
{
|
||||
boss_headless_horsemanAI(Creature* c) : ScriptedAI(c)
|
||||
boss_headless_horsemanAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = c->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* instance;
|
||||
@@ -731,7 +736,6 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class mob_pulsing_pumpkin : public CreatureScript
|
||||
@@ -746,7 +750,7 @@ public:
|
||||
|
||||
struct mob_pulsing_pumpkinAI : public ScriptedAI
|
||||
{
|
||||
mob_pulsing_pumpkinAI(Creature* c) : ScriptedAI(c) {}
|
||||
mob_pulsing_pumpkinAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool sprouted;
|
||||
uint64 debuffGUID;
|
||||
@@ -771,7 +775,7 @@ public:
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/){}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void SpellHit(Unit* /*caster*/, const SpellInfo* spell)
|
||||
{
|
||||
@@ -813,7 +817,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class go_loosely_turned_soil : public GameObjectScript
|
||||
@@ -846,7 +849,6 @@ public:
|
||||
//}
|
||||
return true;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
void mob_head::mob_headAI::Disappear()
|
||||
|
||||
@@ -26,19 +26,31 @@ EndScriptData */
|
||||
#include "ScriptPCH.h"
|
||||
#include "ScriptedEscortAI.h"
|
||||
|
||||
#define SAY_AGGRO -1189000
|
||||
#define SAY_WHIRLWIND -1189001
|
||||
#define SAY_ENRAGE -1189002
|
||||
#define SAY_KILL -1189003
|
||||
#define EMOTE_ENRAGE -1189004
|
||||
enum Says
|
||||
{
|
||||
SAY_AGGRO = -1189000,
|
||||
SAY_WHIRLWIND = -1189001,
|
||||
SAY_ENRAGE = -1189002,
|
||||
SAY_KILL = -1189003
|
||||
};
|
||||
enum Emotes
|
||||
{
|
||||
EMOTE_ENRAGE = -1189004
|
||||
};
|
||||
|
||||
#define SPELL_RUSHINGCHARGE 8260
|
||||
#define SPELL_CLEAVE 15496
|
||||
#define SPELL_WHIRLWIND 8989
|
||||
#define SPELL_FRENZY 8269
|
||||
enum Spells
|
||||
{
|
||||
SPELL_RUSHINGCHARGE = 8260,
|
||||
SPELL_CLEAVE = 15496,
|
||||
SPELL_WHIRLWIND = 8989,
|
||||
SPELL_FRENZY = 8269
|
||||
};
|
||||
|
||||
#define ENTRY_SCARLET_TRAINEE 6575
|
||||
#define ENTRY_SCARLET_MYRMIDON 4295
|
||||
enum Entry
|
||||
{
|
||||
ENTRY_SCARLET_TRAINEE = 6575,
|
||||
ENTRY_SCARLET_MYRMIDON = 4295
|
||||
};
|
||||
|
||||
class boss_herod : public CreatureScript
|
||||
{
|
||||
@@ -52,7 +64,7 @@ public:
|
||||
|
||||
struct boss_herodAI : public ScriptedAI
|
||||
{
|
||||
boss_herodAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_herodAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
bool Enrage;
|
||||
|
||||
@@ -115,7 +127,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class mob_scarlet_trainee : public CreatureScript
|
||||
@@ -130,7 +141,7 @@ public:
|
||||
|
||||
struct mob_scarlet_traineeAI : public npc_escortAI
|
||||
{
|
||||
mob_scarlet_traineeAI(Creature* c) : npc_escortAI(c)
|
||||
mob_scarlet_traineeAI(Creature* creature) : npc_escortAI(creature)
|
||||
{
|
||||
Start_Timer = urand(1000, 6000);
|
||||
}
|
||||
@@ -138,7 +149,7 @@ public:
|
||||
uint32 Start_Timer;
|
||||
|
||||
void Reset() {}
|
||||
void WaypointReached(uint32 /*uiPoint*/) {}
|
||||
void WaypointReached(uint32 /*point*/) {}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
@@ -155,7 +166,6 @@ public:
|
||||
npc_escortAI::UpdateAI(diff);
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_herod()
|
||||
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
|
||||
struct boss_high_inquisitor_fairbanksAI : public ScriptedAI
|
||||
{
|
||||
boss_high_inquisitor_fairbanksAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_high_inquisitor_fairbanksAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 CurseOfBlood_Timer;
|
||||
uint32 DispelMagic_Timer;
|
||||
@@ -68,9 +68,7 @@ public:
|
||||
PowerWordShield = false;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -128,7 +126,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_high_inquisitor_fairbanks()
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
|
||||
struct boss_houndmaster_lokseyAI : public ScriptedAI
|
||||
{
|
||||
boss_houndmaster_lokseyAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_houndmaster_lokseyAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 BloodLust_Timer;
|
||||
|
||||
@@ -72,7 +72,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_houndmaster_loksey()
|
||||
|
||||
@@ -26,15 +26,18 @@ EndScriptData */
|
||||
#include "ScriptPCH.h"
|
||||
#include "scarlet_monastery.h"
|
||||
|
||||
enum eEnums
|
||||
enum Says
|
||||
{
|
||||
SAY_AGGRO = -1189011,
|
||||
SAY_HEALTH1 = -1189012,
|
||||
SAY_HEALTH2 = -1189013,
|
||||
SAY_KILL = -1189014,
|
||||
SAY_TRIGGER_VORREL = -1189015,
|
||||
SAY_TRIGGER_VORREL = -1189015
|
||||
};
|
||||
|
||||
SPELL_SHADOWWORDPAIN = 2767,
|
||||
enum Spells
|
||||
{
|
||||
SPELL_SHADOWWORDPAIN = 2767
|
||||
};
|
||||
|
||||
class boss_interrogator_vishas : public CreatureScript
|
||||
@@ -49,7 +52,7 @@ public:
|
||||
|
||||
struct boss_interrogator_vishasAI : public ScriptedAI
|
||||
{
|
||||
boss_interrogator_vishasAI(Creature* c) : ScriptedAI(c)
|
||||
boss_interrogator_vishasAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
instance = me->GetInstanceScript();
|
||||
}
|
||||
@@ -113,7 +116,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_interrogator_vishas()
|
||||
|
||||
@@ -26,7 +26,7 @@ EndScriptData */
|
||||
#include "ScriptPCH.h"
|
||||
#include "scarlet_monastery.h"
|
||||
|
||||
enum eEnums
|
||||
enum Says
|
||||
{
|
||||
//Mograine says
|
||||
SAY_MO_AGGRO = -1189005,
|
||||
@@ -37,7 +37,10 @@ enum eEnums
|
||||
SAY_WH_INTRO = -1189008,
|
||||
SAY_WH_KILL = -1189009,
|
||||
SAY_WH_RESSURECT = -1189010,
|
||||
};
|
||||
|
||||
enum Spells
|
||||
{
|
||||
//Mograine Spells
|
||||
SPELL_CRUSADERSTRIKE = 14518,
|
||||
SPELL_HAMMEROFJUSTICE = 5589,
|
||||
@@ -67,43 +70,43 @@ public:
|
||||
{
|
||||
boss_scarlet_commander_mograineAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
m_instance = creature->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* m_instance;
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 m_uiCrusaderStrike_Timer;
|
||||
uint32 m_uiHammerOfJustice_Timer;
|
||||
uint32 CrusaderStrike_Timer;
|
||||
uint32 HammerOfJustice_Timer;
|
||||
|
||||
bool m_bHasDied;
|
||||
bool m_bHeal;
|
||||
bool m_bFakeDeath;
|
||||
bool _bHasDied;
|
||||
bool _bHeal;
|
||||
bool _bFakeDeath;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
m_uiCrusaderStrike_Timer = 10000;
|
||||
m_uiHammerOfJustice_Timer = 10000;
|
||||
CrusaderStrike_Timer = 10000;
|
||||
HammerOfJustice_Timer = 10000;
|
||||
|
||||
//Incase wipe during phase that mograine fake death
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
|
||||
if (m_instance)
|
||||
if (instance)
|
||||
if (me->isAlive())
|
||||
m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
|
||||
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
|
||||
|
||||
m_bHasDied = false;
|
||||
m_bHeal = false;
|
||||
m_bFakeDeath = false;
|
||||
_bHasDied = false;
|
||||
_bHeal = false;
|
||||
_bFakeDeath = false;
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
if (m_instance)
|
||||
if (instance)
|
||||
{
|
||||
if (m_instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) != NOT_STARTED)
|
||||
m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, FAIL);
|
||||
if (instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) != NOT_STARTED)
|
||||
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, FAIL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,18 +123,18 @@ public:
|
||||
DoScriptText(SAY_MO_KILL, me);
|
||||
}
|
||||
|
||||
void DamageTaken(Unit* /*pDoneBy*/, uint32 &uiDamage)
|
||||
void DamageTaken(Unit* /*doneBy*/, uint32 &damage)
|
||||
{
|
||||
if (uiDamage < me->GetHealth() || m_bHasDied || m_bFakeDeath)
|
||||
if (damage < me->GetHealth() || _bHasDied || _bFakeDeath)
|
||||
return;
|
||||
|
||||
if (!m_instance)
|
||||
if (!instance)
|
||||
return;
|
||||
|
||||
//On first death, fake death and open door, as well as initiate whitemane if exist
|
||||
if (Unit* Whitemane = Unit::GetUnit((*me), m_instance->GetData64(DATA_WHITEMANE)))
|
||||
if (Unit* Whitemane = Unit::GetUnit((*me), instance->GetData64(DATA_WHITEMANE)))
|
||||
{
|
||||
m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, IN_PROGRESS);
|
||||
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, IN_PROGRESS);
|
||||
|
||||
Whitemane->GetMotionMaster()->MovePoint(1, 1163.113370f, 1398.856812f, 32.527786f);
|
||||
|
||||
@@ -150,72 +153,71 @@ public:
|
||||
me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetStandState(UNIT_STAND_STATE_DEAD);
|
||||
|
||||
m_bHasDied = true;
|
||||
m_bFakeDeath = true;
|
||||
_bHasDied = true;
|
||||
_bFakeDeath = true;
|
||||
|
||||
uiDamage = 0;
|
||||
damage = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void SpellHit(Unit* /*who*/, const SpellInfo* pSpell)
|
||||
void SpellHit(Unit* /*who*/, const SpellInfo* spell)
|
||||
{
|
||||
//When hit with ressurection say text
|
||||
if (pSpell->Id == SPELL_SCARLETRESURRECTION)
|
||||
if (spell->Id == SPELL_SCARLETRESURRECTION)
|
||||
{
|
||||
DoScriptText(SAY_MO_RESSURECTED, me);
|
||||
m_bFakeDeath = false;
|
||||
_bFakeDeath = false;
|
||||
|
||||
if (m_instance)
|
||||
m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, SPECIAL);
|
||||
if (instance)
|
||||
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, SPECIAL);
|
||||
}
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (m_bHasDied && !m_bHeal && m_instance && m_instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == SPECIAL)
|
||||
if (_bHasDied && !_bHeal && instance && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == SPECIAL)
|
||||
{
|
||||
//On ressurection, stop fake death and heal whitemane and resume fight
|
||||
if (Unit* Whitemane = Unit::GetUnit((*me), m_instance->GetData64(DATA_WHITEMANE)))
|
||||
if (Unit* Whitemane = Unit::GetUnit((*me), instance->GetData64(DATA_WHITEMANE)))
|
||||
{
|
||||
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
|
||||
me->SetStandState(UNIT_STAND_STATE_STAND);
|
||||
DoCast(Whitemane, SPELL_LAYONHANDS);
|
||||
|
||||
m_uiCrusaderStrike_Timer = 10000;
|
||||
m_uiHammerOfJustice_Timer = 10000;
|
||||
CrusaderStrike_Timer = 10000;
|
||||
HammerOfJustice_Timer = 10000;
|
||||
|
||||
if (me->getVictim())
|
||||
me->GetMotionMaster()->MoveChase(me->getVictim());
|
||||
|
||||
m_bHeal = true;
|
||||
_bHeal = true;
|
||||
}
|
||||
}
|
||||
|
||||
//This if-check to make sure mograine does not attack while fake death
|
||||
if (m_bFakeDeath)
|
||||
if (_bFakeDeath)
|
||||
return;
|
||||
|
||||
//m_uiCrusaderStrike_Timer
|
||||
if (m_uiCrusaderStrike_Timer <= uiDiff)
|
||||
//CrusaderStrike_Timer
|
||||
if (CrusaderStrike_Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_CRUSADERSTRIKE);
|
||||
m_uiCrusaderStrike_Timer = 10000;
|
||||
} else m_uiCrusaderStrike_Timer -= uiDiff;
|
||||
CrusaderStrike_Timer = 10000;
|
||||
} else CrusaderStrike_Timer -= diff;
|
||||
|
||||
//m_uiHammerOfJustice_Timer
|
||||
if (m_uiHammerOfJustice_Timer <= uiDiff)
|
||||
//HammerOfJustice_Timer
|
||||
if (HammerOfJustice_Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_HAMMEROFJUSTICE);
|
||||
m_uiHammerOfJustice_Timer = 60000;
|
||||
} else m_uiHammerOfJustice_Timer -= uiDiff;
|
||||
HammerOfJustice_Timer = 60000;
|
||||
} else HammerOfJustice_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
class boss_high_inquisitor_whitemane : public CreatureScript
|
||||
@@ -232,37 +234,37 @@ public:
|
||||
{
|
||||
boss_high_inquisitor_whitemaneAI(Creature* creature) : ScriptedAI(creature)
|
||||
{
|
||||
m_instance = creature->GetInstanceScript();
|
||||
instance = creature->GetInstanceScript();
|
||||
}
|
||||
|
||||
InstanceScript* m_instance;
|
||||
InstanceScript* instance;
|
||||
|
||||
uint32 m_uiHeal_Timer;
|
||||
uint32 m_uiPowerWordShield_Timer;
|
||||
uint32 m_uiHolySmite_Timer;
|
||||
uint32 m_uiWait_Timer;
|
||||
uint32 Heal_Timer;
|
||||
uint32 PowerWordShield_Timer;
|
||||
uint32 HolySmite_Timer;
|
||||
uint32 Wait_Timer;
|
||||
|
||||
bool m_bCanResurrectCheck;
|
||||
bool m_bCanResurrect;
|
||||
bool _bCanResurrectCheck;
|
||||
bool _bCanResurrect;
|
||||
|
||||
void Reset()
|
||||
{
|
||||
m_uiWait_Timer = 7000;
|
||||
m_uiHeal_Timer = 10000;
|
||||
m_uiPowerWordShield_Timer = 15000;
|
||||
m_uiHolySmite_Timer = 6000;
|
||||
Wait_Timer = 7000;
|
||||
Heal_Timer = 10000;
|
||||
PowerWordShield_Timer = 15000;
|
||||
HolySmite_Timer = 6000;
|
||||
|
||||
m_bCanResurrectCheck = false;
|
||||
m_bCanResurrect = false;
|
||||
_bCanResurrectCheck = false;
|
||||
_bCanResurrect = false;
|
||||
|
||||
if (m_instance)
|
||||
if (instance)
|
||||
if (me->isAlive())
|
||||
m_instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
|
||||
instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, NOT_STARTED);
|
||||
}
|
||||
|
||||
void AttackStart(Unit* who)
|
||||
{
|
||||
if (m_instance && m_instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == NOT_STARTED)
|
||||
if (instance && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == NOT_STARTED)
|
||||
return;
|
||||
|
||||
ScriptedAI::AttackStart(who);
|
||||
@@ -278,84 +280,83 @@ public:
|
||||
DoScriptText(SAY_WH_KILL, me);
|
||||
}
|
||||
|
||||
void UpdateAI(const uint32 uiDiff)
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
if (m_bCanResurrect)
|
||||
if (_bCanResurrect)
|
||||
{
|
||||
//When casting resuruction make sure to delay so on rez when reinstate battle deepsleep runs out
|
||||
if (m_instance && m_uiWait_Timer <= uiDiff)
|
||||
if (instance && Wait_Timer <= diff)
|
||||
{
|
||||
if (Unit* Mograine = Unit::GetUnit((*me), m_instance->GetData64(DATA_MOGRAINE)))
|
||||
if (Unit* Mograine = Unit::GetUnit((*me), instance->GetData64(DATA_MOGRAINE)))
|
||||
{
|
||||
DoCast(Mograine, SPELL_SCARLETRESURRECTION);
|
||||
DoScriptText(SAY_WH_RESSURECT, me);
|
||||
m_bCanResurrect = false;
|
||||
_bCanResurrect = false;
|
||||
}
|
||||
}
|
||||
else m_uiWait_Timer -= uiDiff;
|
||||
else Wait_Timer -= diff;
|
||||
}
|
||||
|
||||
//Cast Deep sleep when health is less than 50%
|
||||
if (!m_bCanResurrectCheck && !HealthAbovePct(50))
|
||||
if (!_bCanResurrectCheck && !HealthAbovePct(50))
|
||||
{
|
||||
if (me->IsNonMeleeSpellCasted(false))
|
||||
me->InterruptNonMeleeSpells(false);
|
||||
|
||||
DoCast(me->getVictim(), SPELL_DEEPSLEEP);
|
||||
m_bCanResurrectCheck = true;
|
||||
m_bCanResurrect = true;
|
||||
_bCanResurrectCheck = true;
|
||||
_bCanResurrect = true;
|
||||
return;
|
||||
}
|
||||
|
||||
//while in "resurrect-mode", don't do anything
|
||||
if (m_bCanResurrect)
|
||||
if (_bCanResurrect)
|
||||
return;
|
||||
|
||||
//If we are <75% hp cast healing spells at self or Mograine
|
||||
if (m_uiHeal_Timer <= uiDiff)
|
||||
if (Heal_Timer <= diff)
|
||||
{
|
||||
Creature* target = NULL;
|
||||
|
||||
if (!HealthAbovePct(75))
|
||||
target = me;
|
||||
|
||||
if (m_instance)
|
||||
if (instance)
|
||||
{
|
||||
if (Creature* pMograine = Unit::GetCreature((*me), m_instance->GetData64(DATA_MOGRAINE)))
|
||||
if (Creature* mograine = Unit::GetCreature((*me), instance->GetData64(DATA_MOGRAINE)))
|
||||
{
|
||||
// checking m_bCanResurrectCheck prevents her healing Mograine while he is "faking death"
|
||||
if (m_bCanResurrectCheck && pMograine->isAlive() && !pMograine->HealthAbovePct(75))
|
||||
target = pMograine;
|
||||
// checking _bCanResurrectCheck prevents her healing Mograine while he is "faking death"
|
||||
if (_bCanResurrectCheck && mograine->isAlive() && !mograine->HealthAbovePct(75))
|
||||
target = mograine;
|
||||
}
|
||||
}
|
||||
|
||||
if (target)
|
||||
DoCast(target, SPELL_HEAL);
|
||||
|
||||
m_uiHeal_Timer = 13000;
|
||||
} else m_uiHeal_Timer -= uiDiff;
|
||||
Heal_Timer = 13000;
|
||||
} else Heal_Timer -= diff;
|
||||
|
||||
//m_uiPowerWordShield_Timer
|
||||
if (m_uiPowerWordShield_Timer <= uiDiff)
|
||||
//PowerWordShield_Timer
|
||||
if (PowerWordShield_Timer <= diff)
|
||||
{
|
||||
DoCast(me, SPELL_POWERWORDSHIELD);
|
||||
m_uiPowerWordShield_Timer = 15000;
|
||||
} else m_uiPowerWordShield_Timer -= uiDiff;
|
||||
PowerWordShield_Timer = 15000;
|
||||
} else PowerWordShield_Timer -= diff;
|
||||
|
||||
//m_uiHolySmite_Timer
|
||||
if (m_uiHolySmite_Timer <= uiDiff)
|
||||
//HolySmite_Timer
|
||||
if (HolySmite_Timer <= diff)
|
||||
{
|
||||
DoCast(me->getVictim(), SPELL_HOLYSMITE);
|
||||
m_uiHolySmite_Timer = 6000;
|
||||
} else m_uiHolySmite_Timer -= uiDiff;
|
||||
HolySmite_Timer = 6000;
|
||||
} else HolySmite_Timer -= diff;
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_mograine_and_whitemane()
|
||||
|
||||
@@ -25,10 +25,13 @@ EndScriptData */
|
||||
|
||||
#include "ScriptPCH.h"
|
||||
|
||||
#define SPELL_LICHSLAP 28873
|
||||
#define SPELL_FROSTBOLTVOLLEY 8398
|
||||
#define SPELL_MINDFLAY 17313
|
||||
#define SPELL_FROSTNOVA 15531
|
||||
enum Spells
|
||||
{
|
||||
SPELL_LICHSLAP = 28873,
|
||||
SPELL_FROSTBOLTVOLLEY = 8398,
|
||||
SPELL_MINDFLAY = 17313,
|
||||
SPELL_FROSTNOVA = 15531
|
||||
};
|
||||
|
||||
class boss_scorn : public CreatureScript
|
||||
{
|
||||
@@ -42,7 +45,7 @@ public:
|
||||
|
||||
struct boss_scornAI : public ScriptedAI
|
||||
{
|
||||
boss_scornAI(Creature* c) : ScriptedAI(c) {}
|
||||
boss_scornAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
uint32 LichSlap_Timer;
|
||||
uint32 FrostboltVolley_Timer;
|
||||
@@ -57,9 +60,7 @@ public:
|
||||
FrostNova_Timer = 30000;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/)
|
||||
{
|
||||
}
|
||||
void EnterCombat(Unit* /*who*/) {}
|
||||
|
||||
void UpdateAI(const uint32 diff)
|
||||
{
|
||||
@@ -97,7 +98,6 @@ public:
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_boss_scorn()
|
||||
|
||||
@@ -26,10 +26,13 @@ EndScriptData */
|
||||
#include "ScriptPCH.h"
|
||||
#include "scarlet_monastery.h"
|
||||
|
||||
#define ENTRY_PUMPKIN_SHRINE 186267
|
||||
#define ENTRY_HORSEMAN 23682
|
||||
#define ENTRY_HEAD 23775
|
||||
#define ENTRY_PUMPKIN 23694
|
||||
enum Entry
|
||||
{
|
||||
ENTRY_PUMPKIN_SHRINE = 186267,
|
||||
ENTRY_HORSEMAN = 23682,
|
||||
ENTRY_HEAD = 23775,
|
||||
ENTRY_PUMPKIN = 23694
|
||||
};
|
||||
|
||||
#define MAX_ENCOUNTER 2
|
||||
|
||||
@@ -57,11 +60,11 @@ public:
|
||||
uint64 VorrelGUID;
|
||||
uint64 DoorHighInquisitorGUID;
|
||||
|
||||
uint32 m_auiEncounter[MAX_ENCOUNTER];
|
||||
uint32 encounter[MAX_ENCOUNTER];
|
||||
|
||||
void Initialize()
|
||||
{
|
||||
memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
|
||||
memset(&encounter, 0, sizeof(encounter));
|
||||
|
||||
PumpkinShrineGUID = 0;
|
||||
HorsemanGUID = 0;
|
||||
@@ -106,13 +109,13 @@ public:
|
||||
if (data == FAIL)
|
||||
DoUseDoorOrButton(DoorHighInquisitorGUID);
|
||||
|
||||
m_auiEncounter[0] = data;
|
||||
encounter[0] = data;
|
||||
break;
|
||||
case GAMEOBJECT_PUMPKIN_SHRINE:
|
||||
HandleGameObject(PumpkinShrineGUID, false);
|
||||
break;
|
||||
case DATA_HORSEMAN_EVENT:
|
||||
m_auiEncounter[1] = data;
|
||||
encounter[1] = data;
|
||||
if (data == DONE)
|
||||
{
|
||||
for (std::set<uint64>::const_iterator itr = HorsemanAdds.begin(); itr != HorsemanAdds.end(); ++itr)
|
||||
@@ -146,13 +149,12 @@ public:
|
||||
uint32 GetData(uint32 type)
|
||||
{
|
||||
if (type == TYPE_MOGRAINE_AND_WHITE_EVENT)
|
||||
return m_auiEncounter[0];
|
||||
return encounter[0];
|
||||
if (type == DATA_HORSEMAN_EVENT)
|
||||
return m_auiEncounter[1];
|
||||
return encounter[1];
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
void AddSC_instance_scarlet_monastery()
|
||||
|
||||
@@ -19,14 +19,17 @@
|
||||
#ifndef DEF_SCARLET_M
|
||||
#define DEF_SCARLET_M
|
||||
|
||||
#define TYPE_MOGRAINE_AND_WHITE_EVENT 1
|
||||
#define DATA_MOGRAINE 2
|
||||
#define DATA_WHITEMANE 3
|
||||
#define DATA_DOOR_WHITEMANE 4
|
||||
enum eEnums
|
||||
{
|
||||
TYPE_MOGRAINE_AND_WHITE_EVENT = 1,
|
||||
|
||||
#define DATA_HORSEMAN_EVENT 5
|
||||
#define GAMEOBJECT_PUMPKIN_SHRINE 6
|
||||
DATA_MOGRAINE = 2,
|
||||
DATA_WHITEMANE = 3,
|
||||
DATA_DOOR_WHITEMANE = 4,
|
||||
|
||||
#define DATA_VORREL 7
|
||||
DATA_HORSEMAN_EVENT = 5,
|
||||
GAMEOBJECT_PUMPKIN_SHRINE = 6,
|
||||
|
||||
DATA_VORREL = 7
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user