converted all tabs to 4 spaces

This commit is contained in:
Yehonal
2016-06-26 19:23:57 +02:00
parent 52f305111c
commit f6eefedcd5
717 changed files with 132388 additions and 132388 deletions

View File

@@ -17,178 +17,178 @@ public:
return new instance_obsidian_sanctum_InstanceMapScript(pMap);
}
struct instance_obsidian_sanctum_InstanceMapScript : public InstanceScript
{
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap) {}
struct instance_obsidian_sanctum_InstanceMapScript : public InstanceScript
{
instance_obsidian_sanctum_InstanceMapScript(Map* pMap) : InstanceScript(pMap) {}
uint64 m_uiSartharionGUID;
uint64 m_uiTenebronGUID;
uint64 m_uiShadronGUID;
uint64 m_uiVesperonGUID;
uint32 Encounters[MAX_ENCOUNTERS];
uint64 m_uiPortalGUID;
uint8 portalCount;
uint64 m_uiSartharionGUID;
uint64 m_uiTenebronGUID;
uint64 m_uiShadronGUID;
uint64 m_uiVesperonGUID;
uint32 Encounters[MAX_ENCOUNTERS];
uint64 m_uiPortalGUID;
uint8 portalCount;
void Initialize()
{
m_uiSartharionGUID = 0;
m_uiTenebronGUID = 0;
m_uiShadronGUID = 0;
m_uiVesperonGUID = 0;
m_uiPortalGUID = 0;
portalCount = 0;
memset(&Encounters, 0, sizeof(Encounters));
};
void Initialize()
{
m_uiSartharionGUID = 0;
m_uiTenebronGUID = 0;
m_uiShadronGUID = 0;
m_uiVesperonGUID = 0;
m_uiPortalGUID = 0;
portalCount = 0;
memset(&Encounters, 0, sizeof(Encounters));
};
void OnCreatureCreate(Creature* pCreature)
{
switch(pCreature->GetEntry())
{
case NPC_SARTHARION:
m_uiSartharionGUID = pCreature->GetGUID();
break;
case NPC_TENEBRON:
m_uiTenebronGUID = pCreature->GetGUID();
break;
case NPC_SHADRON:
m_uiShadronGUID = pCreature->GetGUID();
break;
case NPC_VESPERON:
m_uiVesperonGUID = pCreature->GetGUID();
break;
}
}
void OnCreatureCreate(Creature* pCreature)
{
switch(pCreature->GetEntry())
{
case NPC_SARTHARION:
m_uiSartharionGUID = pCreature->GetGUID();
break;
case NPC_TENEBRON:
m_uiTenebronGUID = pCreature->GetGUID();
break;
case NPC_SHADRON:
m_uiShadronGUID = pCreature->GetGUID();
break;
case NPC_VESPERON:
m_uiVesperonGUID = pCreature->GetGUID();
break;
}
}
uint32 GetData(uint32 id) const
{
switch (id)
{
case BOSS_SARTHARION_EVENT:
case BOSS_TENEBRON_EVENT:
case BOSS_SHADRON_EVENT:
case BOSS_VESPERON_EVENT:
return Encounters[id];
}
uint32 GetData(uint32 id) const
{
switch (id)
{
case BOSS_SARTHARION_EVENT:
case BOSS_TENEBRON_EVENT:
case BOSS_SHADRON_EVENT:
case BOSS_VESPERON_EVENT:
return Encounters[id];
}
return 0;
}
return 0;
}
uint64 GetData64(uint32 uiData) const
{
switch(uiData)
{
case DATA_SARTHARION:
return m_uiSartharionGUID;
case DATA_TENEBRON:
return m_uiTenebronGUID;
case DATA_SHADRON:
return m_uiShadronGUID;
case DATA_VESPERON:
return m_uiVesperonGUID;
}
return 0;
}
uint64 GetData64(uint32 uiData) const
{
switch(uiData)
{
case DATA_SARTHARION:
return m_uiSartharionGUID;
case DATA_TENEBRON:
return m_uiTenebronGUID;
case DATA_SHADRON:
return m_uiShadronGUID;
case DATA_VESPERON:
return m_uiVesperonGUID;
}
return 0;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* source, Unit const* target = NULL, uint32 miscvalue1 = 0)
{
switch(criteria_id)
{
// Gonna Go When the Volcano Blows (10 player) (2047)
case 7326:
// Gonna Go When the Volcano Blows (25 player) (2048)
case 7327:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (!cr->AI()->GetData(source->GetGUIDLow()))
return true;
break;
// Less Is More (10 player) (624)
case 7189:
case 7190:
case 7191:
case 522:
if (instance->GetPlayersCountExceptGMs() < 9)
return true;
break;
// Less Is More (25 player) (1877)
case 7185:
case 7186:
case 7187:
case 7188:
if (instance->GetPlayersCountExceptGMs() < 21)
return true;
break;
// Twilight Assist (10 player) (2049)
case 7328:
// Twilight Assist (25 player) (2052)
case 7331:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 1)
return true;
break;
// Twilight Duo (10 player) (2050)
case 7329:
// Twilight Duo (25 player) (2053)
case 7332:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 2)
return true;
break;
// Twilight Zone (10 player) (2051)
case 7330:
// Twilight Zone (25 player) (2054)
case 7333:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 3)
return true;
break;
}
return false;
}
bool CheckAchievementCriteriaMeet(uint32 criteria_id, Player const* source, Unit const* target = NULL, uint32 miscvalue1 = 0)
{
switch(criteria_id)
{
// Gonna Go When the Volcano Blows (10 player) (2047)
case 7326:
// Gonna Go When the Volcano Blows (25 player) (2048)
case 7327:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (!cr->AI()->GetData(source->GetGUIDLow()))
return true;
break;
// Less Is More (10 player) (624)
case 7189:
case 7190:
case 7191:
case 522:
if (instance->GetPlayersCountExceptGMs() < 9)
return true;
break;
// Less Is More (25 player) (1877)
case 7185:
case 7186:
case 7187:
case 7188:
if (instance->GetPlayersCountExceptGMs() < 21)
return true;
break;
// Twilight Assist (10 player) (2049)
case 7328:
// Twilight Assist (25 player) (2052)
case 7331:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 1)
return true;
break;
// Twilight Duo (10 player) (2050)
case 7329:
// Twilight Duo (25 player) (2053)
case 7332:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 2)
return true;
break;
// Twilight Zone (10 player) (2051)
case 7330:
// Twilight Zone (25 player) (2054)
case 7333:
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (cr->AI()->GetData(DATA_ACHIEVEMENT_DRAGONS_COUNT) >= 3)
return true;
break;
}
return false;
}
void SetData(uint32 type, uint32 data)
{
switch(type)
{
case BOSS_SARTHARION_EVENT:
case BOSS_TENEBRON_EVENT:
case BOSS_SHADRON_EVENT:
case BOSS_VESPERON_EVENT:
Encounters[type] = data;
break;
case DATA_ADD_PORTAL:
if (!m_uiPortalGUID)
{
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (GameObject* go = cr->SummonGameObject(GO_TWILIGHT_PORTAL, 3247.29f, 529.804f, 58.9595f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0))
{
cr->RemoveGameObject(go, false);
m_uiPortalGUID = go->GetGUID();
}
void SetData(uint32 type, uint32 data)
{
switch(type)
{
case BOSS_SARTHARION_EVENT:
case BOSS_TENEBRON_EVENT:
case BOSS_SHADRON_EVENT:
case BOSS_VESPERON_EVENT:
Encounters[type] = data;
break;
case DATA_ADD_PORTAL:
if (!m_uiPortalGUID)
{
if (Creature* cr = instance->GetCreature(m_uiSartharionGUID))
if (GameObject* go = cr->SummonGameObject(GO_TWILIGHT_PORTAL, 3247.29f, 529.804f, 58.9595f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0))
{
cr->RemoveGameObject(go, false);
m_uiPortalGUID = go->GetGUID();
}
portalCount = 0;
}
portalCount = 0;
}
portalCount++;
break;
case DATA_CLEAR_PORTAL:
portalCount--;
if (!portalCount || data == 2)
{
if (GameObject* go = instance->GetGameObject(m_uiPortalGUID))
go->Delete();
portalCount++;
break;
case DATA_CLEAR_PORTAL:
portalCount--;
if (!portalCount || data == 2)
{
if (GameObject* go = instance->GetGameObject(m_uiPortalGUID))
go->Delete();
DoRemoveAurasDueToSpellOnPlayers(SPELL_TWILIGHT_SHIFT);
m_uiPortalGUID = 0;
}
break;
}
DoRemoveAurasDueToSpellOnPlayers(SPELL_TWILIGHT_SHIFT);
m_uiPortalGUID = 0;
}
break;
}
if (data == DONE)
SaveToDB();
}
if (data == DONE)
SaveToDB();
}
std::string GetSaveData()
std::string GetSaveData()
{
OUT_SAVE_INST_DATA;
@@ -198,35 +198,35 @@ public:
OUT_SAVE_INST_DATA_COMPLETE;
return saveStream.str();
}
void Load(const char* strIn)
{
if (!strIn)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
void Load(const char* strIn)
{
if (!strIn)
{
OUT_LOAD_INST_DATA_FAIL;
return;
}
OUT_LOAD_INST_DATA(strIn);
OUT_LOAD_INST_DATA(strIn);
char dataHead1, dataHead2;
char dataHead1, dataHead2;
std::istringstream loadStream(strIn);
loadStream >> dataHead1 >> dataHead2;
std::istringstream loadStream(strIn);
loadStream >> dataHead1 >> dataHead2;
if (dataHead1 == 'O' && dataHead2 == 'S')
{
for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
{
loadStream >> Encounters[i];
if (Encounters[i] == IN_PROGRESS)
Encounters[i] = NOT_STARTED;
}
}
if (dataHead1 == 'O' && dataHead2 == 'S')
{
for (uint8 i = 0; i < MAX_ENCOUNTERS; ++i)
{
loadStream >> Encounters[i];
if (Encounters[i] == IN_PROGRESS)
Encounters[i] = NOT_STARTED;
}
}
OUT_LOAD_INST_DATA_COMPLETE;
}
};
OUT_LOAD_INST_DATA_COMPLETE;
}
};
};
void AddSC_instance_obsidian_sanctum()

View File

@@ -7,41 +7,41 @@ REWRITTEN FROM SCRATCH BY XINEF, IT OWNS NOW!
enum Data
{
// Encounter
BOSS_SARTHARION_EVENT = 0,
BOSS_TENEBRON_EVENT = 1,
BOSS_VESPERON_EVENT = 2,
BOSS_SHADRON_EVENT = 3,
MAX_ENCOUNTERS = 4,
// Encounter
BOSS_SARTHARION_EVENT = 0,
BOSS_TENEBRON_EVENT = 1,
BOSS_VESPERON_EVENT = 2,
BOSS_SHADRON_EVENT = 3,
MAX_ENCOUNTERS = 4,
// GUIDs
DATA_SARTHARION = 10,
DATA_TENEBRON = 11,
DATA_SHADRON = 12,
DATA_VESPERON = 13,
// GUIDs
DATA_SARTHARION = 10,
DATA_TENEBRON = 11,
DATA_SHADRON = 12,
DATA_VESPERON = 13,
// Portal
DATA_CLEAR_PORTAL = 20,
DATA_ADD_PORTAL = 21,
// Portal
DATA_CLEAR_PORTAL = 20,
DATA_ADD_PORTAL = 21,
// Achievements
DATA_ACHIEVEMENT_DRAGONS_COUNT = 30,
DATA_VOLCANO_BLOWS = 31,
// Achievements
DATA_ACHIEVEMENT_DRAGONS_COUNT = 30,
DATA_VOLCANO_BLOWS = 31,
// NPCs
NPC_SARTHARION = 28860,
NPC_TENEBRON = 30452,
NPC_SHADRON = 30451,
NPC_VESPERON = 30449,
NPC_FIRE_CYCLONE = 30648,
// NPCs
NPC_SARTHARION = 28860,
NPC_TENEBRON = 30452,
NPC_SHADRON = 30451,
NPC_VESPERON = 30449,
NPC_FIRE_CYCLONE = 30648,
// GOs
GO_TWILIGHT_PORTAL = 193988,
GO_NORMAL_PORTAL = 193989,
// GOs
GO_TWILIGHT_PORTAL = 193988,
GO_NORMAL_PORTAL = 193989,
// Spells
SPELL_TWILIGHT_SHIFT = 57620,
SPELL_TWILIGHT_TORMENT_SARTHARION = 58853,
// Spells
SPELL_TWILIGHT_SHIFT = 57620,
SPELL_TWILIGHT_TORMENT_SARTHARION = 58853,
};
#endif

View File

@@ -10,11 +10,11 @@ REWRITTEN BY XINEF
enum Texts
{
SAY_BALTHARUS_INTRO = 0,
SAY_AGGRO = 1,
SAY_KILL = 2,
SAY_CLONE = 3,
SAY_DEATH = 4,
SAY_BALTHARUS_INTRO = 0,
SAY_AGGRO = 1,
SAY_KILL = 2,
SAY_CLONE = 3,
SAY_DEATH = 4,
SAY_XERESTRASZA_EVENT = 0,
SAY_XERESTRASZA_EVENT_1 = 1,
@@ -29,9 +29,9 @@ enum Texts
enum Spells
{
SPELL_BARRIER_CHANNEL = 76221,
SPELL_BARRIER_CHANNEL = 76221,
SPELL_ENERVATING_BRAND = 74502,
SPELL_ENERVATING_BRAND = 74502,
SPELL_SIPHONED_MIGHT = 74507,
SPELL_CLEAVE = 40504,
SPELL_BLADE_TEMPEST = 75125,
@@ -43,14 +43,14 @@ enum Spells
enum Events
{
EVENT_BLADE_TEMPEST = 1,
EVENT_CLEAVE = 2,
EVENT_ENERVATING_BRAND = 3,
EVENT_CHECK_HEALTH1 = 4,
EVENT_CHECK_HEALTH2 = 5,
EVENT_CHECK_HEALTH3 = 6,
EVENT_KILL_TALK = 7,
EVENT_SUMMON_CLONE = 8,
EVENT_BLADE_TEMPEST = 1,
EVENT_CLEAVE = 2,
EVENT_ENERVATING_BRAND = 3,
EVENT_CHECK_HEALTH1 = 4,
EVENT_CHECK_HEALTH2 = 5,
EVENT_CHECK_HEALTH3 = 6,
EVENT_KILL_TALK = 7,
EVENT_SUMMON_CLONE = 8,
EVENT_XERESTRASZA_EVENT_0 = 1,
EVENT_XERESTRASZA_EVENT_1 = 2,
@@ -64,9 +64,9 @@ enum Events
enum Actions
{
ACTION_INTRO_BALTHARUS = -3975101,
ACTION_BALTHARUS_DEATH = -3975102,
ACTION_CLONE = 1
ACTION_INTRO_BALTHARUS = -3975101,
ACTION_BALTHARUS_DEATH = -3975102,
ACTION_CLONE = 1
};
class DelayedTalk : public BasicEvent
@@ -76,13 +76,13 @@ class DelayedTalk : public BasicEvent
bool Execute(uint64 /*execTime*/, uint32 /*diff*/)
{
_owner->AI()->Talk(_talkId);
_owner->AI()->Talk(_talkId);
return true;
}
private:
Creature* _owner;
uint32 _talkId;
uint32 _talkId;
};
class RestoreFight : public BasicEvent
@@ -92,8 +92,8 @@ class RestoreFight : public BasicEvent
bool Execute(uint64 /*execTime*/, uint32 /*diff*/)
{
_owner->SetReactState(REACT_AGGRESSIVE);
_owner->SetInCombatWithZone();
_owner->SetReactState(REACT_AGGRESSIVE);
_owner->SetInCombatWithZone();
return true;
}
@@ -115,58 +115,58 @@ class boss_baltharus_the_warborn : public CreatureScript
void Reset()
{
BossAI::Reset();
BossAI::Reset();
}
void InitializeAI()
{
BossAI::InitializeAI();
me->CastSpell(me, SPELL_BARRIER_CHANNEL, false);
}
void InitializeAI()
{
BossAI::InitializeAI();
me->CastSpell(me, SPELL_BARRIER_CHANNEL, false);
}
void JustReachedHome()
{
BossAI::JustReachedHome();
me->CastSpell(me, SPELL_BARRIER_CHANNEL, false);
}
void JustReachedHome()
{
BossAI::JustReachedHome();
me->CastSpell(me, SPELL_BARRIER_CHANNEL, false);
}
void DoAction(int32 action)
{
if (action == ACTION_INTRO_BALTHARUS && !_introDone)
{
{
_introDone = true;
me->m_Events.AddEvent(new DelayedTalk(me, SAY_BALTHARUS_INTRO), me->m_Events.CalculateTime(6000));
}
else if (action == ACTION_CLONE)
{
me->CastSpell(me, SPELL_REPELLING_WAVE, false);
}
else if (action == ACTION_CLONE)
{
me->CastSpell(me, SPELL_REPELLING_WAVE, false);
me->CastSpell(me, SPELL_CLEAR_DEBUFFS, false);
events.ScheduleEvent(EVENT_SUMMON_CLONE, 1000);
events.ScheduleEvent(EVENT_SUMMON_CLONE, 1000);
}
}
void EnterCombat(Unit* who)
{
Talk(SAY_AGGRO);
BossAI::EnterCombat(who);
BossAI::EnterCombat(who);
me->InterruptNonMeleeSpells(false);
events.ScheduleEvent(EVENT_CLEAVE, 11000);
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 13000);
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 15000);
if (!Is25ManRaid())
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
else
{
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
}
if (!Is25ManRaid())
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
else
{
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
}
}
void JustDied(Unit* killer)
{
Talk(SAY_DEATH);
BossAI::JustDied(killer);
BossAI::JustDied(killer);
if (Creature* xerestrasza = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_XERESTRASZA)))
xerestrasza->AI()->DoAction(ACTION_BALTHARUS_DEATH);
@@ -175,10 +175,10 @@ class boss_baltharus_the_warborn : public CreatureScript
void KilledUnit(Unit* victim)
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
{
{
Talk(SAY_KILL);
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
}
void JustSummoned(Creature* summon)
@@ -186,8 +186,8 @@ class boss_baltharus_the_warborn : public CreatureScript
summons.Summon(summon);
summon->SetHealth(me->GetHealth());
summon->CastSpell(summon, SPELL_SPAWN_EFFECT, true);
summon->SetReactState(REACT_PASSIVE);
summon->m_Events.AddEvent(new RestoreFight(summon), summon->m_Events.CalculateTime(2000));
summon->SetReactState(REACT_PASSIVE);
summon->m_Events.AddEvent(new RestoreFight(summon), summon->m_Events.CalculateTime(2000));
}
void UpdateAI(uint32 diff)
@@ -202,11 +202,11 @@ class boss_baltharus_the_warborn : public CreatureScript
switch (events.ExecuteEvent())
{
case EVENT_CLEAVE:
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
events.ScheduleEvent(EVENT_CLEAVE, 24000);
break;
case EVENT_BLADE_TEMPEST:
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24000);
break;
case EVENT_ENERVATING_BRAND:
@@ -215,34 +215,34 @@ class boss_baltharus_the_warborn : public CreatureScript
me->CastSpell(target, SPELL_ENERVATING_BRAND, true);
events.ScheduleEvent(EVENT_ENERVATING_BRAND, 26000);
break;
case EVENT_CHECK_HEALTH1:
if (me->HealthBelowPct(50))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
break;
case EVENT_CHECK_HEALTH2:
if (me->HealthBelowPct(66))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
break;
case EVENT_CHECK_HEALTH3:
if (me->HealthBelowPct(33))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
break;
case EVENT_SUMMON_CLONE:
me->CastSpell(me, SPELL_CLONE, false);
Talk(SAY_CLONE);
break;
case EVENT_CHECK_HEALTH1:
if (me->HealthBelowPct(50))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH1, 1000);
break;
case EVENT_CHECK_HEALTH2:
if (me->HealthBelowPct(66))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH2, 1000);
break;
case EVENT_CHECK_HEALTH3:
if (me->HealthBelowPct(33))
{
DoAction(ACTION_CLONE);
break;
}
events.ScheduleEvent(EVENT_CHECK_HEALTH3, 1000);
break;
case EVENT_SUMMON_CLONE:
me->CastSpell(me, SPELL_CLONE, false);
Talk(SAY_CLONE);
break;
}
DoMeleeAttackIfReady();
@@ -289,11 +289,11 @@ class npc_baltharus_the_warborn_clone : public CreatureScript
switch (_events.ExecuteEvent())
{
case EVENT_CLEAVE:
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
me->CastSpell(me->GetVictim(), SPELL_CLEAVE, false);
_events.ScheduleEvent(EVENT_CLEAVE, 24000);
break;
case EVENT_BLADE_TEMPEST:
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
me->CastSpell(me, SPELL_BLADE_TEMPEST, false);
_events.ScheduleEvent(EVENT_BLADE_TEMPEST, 24000);
break;
case EVENT_ENERVATING_BRAND:
@@ -330,8 +330,8 @@ class spell_baltharus_enervating_brand_trigger : public SpellScriptLoader
{
if (Unit* caster = GetOriginalCaster())
if (Unit* target = GetHitUnit())
if (target == GetCaster())
target->CastSpell(caster, SPELL_SIPHONED_MIGHT, true);
if (target == GetCaster())
target->CastSpell(caster, SPELL_SIPHONED_MIGHT, true);
}
void Register()
@@ -364,9 +364,9 @@ class npc_xerestrasza : public CreatureScript
_events.Reset();
me->RemoveFlag(UNIT_NPC_FLAGS, GOSSIP_OPTION_QUESTGIVER);
// Xinef: after soft reset npc is no longer present
if (me->GetInstanceScript()->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
me->DespawnOrUnsummon(1);
// Xinef: after soft reset npc is no longer present
if (me->GetInstanceScript()->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
me->DespawnOrUnsummon(1);
}
void DoAction(int32 action)
@@ -376,7 +376,7 @@ class npc_xerestrasza : public CreatureScript
me->setActive(true);
_isIntro = false;
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_0, 6000);
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_0, 6000);
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_1, 22000);
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_2, 31000);
_events.ScheduleEvent(EVENT_XERESTRASZA_EVENT_3, 38000);
@@ -400,11 +400,11 @@ class npc_xerestrasza : public CreatureScript
_events.Update(diff);
switch (_events.ExecuteEvent())
{
case EVENT_XERESTRASZA_EVENT_0:
Talk(SAY_XERESTRASZA_EVENT);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(0, 3151.236f, 379.8733f, 86.31996f);
break;
case EVENT_XERESTRASZA_EVENT_0:
Talk(SAY_XERESTRASZA_EVENT);
me->SetWalk(true);
me->GetMotionMaster()->MovePoint(0, 3151.236f, 379.8733f, 86.31996f);
break;
case EVENT_XERESTRASZA_EVENT_1:
Talk(SAY_XERESTRASZA_EVENT_1);
break;

View File

@@ -34,13 +34,13 @@ enum Misc
EVENT_INTIDMDATING_ROAR = 2,
EVENT_SUMMON_ADDS1 = 3,
EVENT_SUMMON_ADDS2 = 4,
EVENT_KILL_TALK = 5,
EVENT_KILL_TALK = 5,
// Onyx Flamecaller
EVENT_BLAST_NOVA = 6,
EVENT_LAVA_GOUT = 7,
MAX_PATH_FLAMECALLER_WAYPOINTS = 12
MAX_PATH_FLAMECALLER_WAYPOINTS = 12
};
// East
@@ -90,21 +90,21 @@ class boss_general_zarithrian : public CreatureScript
void Reset()
{
BossAI::Reset();
BossAI::Reset();
if (instance->GetBossState(DATA_SAVIANA_RAGEFIRE) == DONE && instance->GetBossState(DATA_BALTHARUS_THE_WARBORN) == DONE)
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC|UNIT_FLAG_NOT_SELECTABLE);
}
void EnterCombat(Unit* who)
{
BossAI::EnterCombat(who);
BossAI::EnterCombat(who);
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_CLEAVE, 9000);
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 14000);
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 18000);
if (Is25ManRaid())
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 20000);
if (Is25ManRaid())
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 20000);
}
void JustSummoned(Creature* summon)
@@ -114,17 +114,17 @@ class boss_general_zarithrian : public CreatureScript
void JustDied(Unit* killer)
{
BossAI::JustDied(killer);
BossAI::JustDied(killer);
Talk(SAY_DEATH);
}
void KilledUnit(Unit* victim)
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
{
{
Talk(SAY_KILL);
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
}
void UpdateAI(uint32 diff)
@@ -145,20 +145,20 @@ class boss_general_zarithrian : public CreatureScript
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
events.ScheduleEvent(EVENT_SUMMON_ADDS1, 40000);
break;
break;
case EVENT_SUMMON_ADDS2:
if (Creature* stalker1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_1)))
stalker1->CastSpell(stalker1, SPELL_SUMMON_FLAMECALLER, false);
if (Creature* stalker2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ZARITHRIAN_SPAWN_STALKER_2)))
stalker2->CastSpell(stalker2, SPELL_SUMMON_FLAMECALLER, false);
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40000);
events.ScheduleEvent(EVENT_SUMMON_ADDS2, 40000);
break;
case EVENT_INTIDMDATING_ROAR:
me->CastSpell(me, SPELL_INTIMIDATING_ROAR, false);
me->CastSpell(me, SPELL_INTIMIDATING_ROAR, false);
events.ScheduleEvent(EVENT_INTIDMDATING_ROAR, 30000);
break;
break;
case EVENT_CLEAVE:
me->CastSpell(me->GetVictim(), SPELL_CLEAVE_ARMOR, false);
me->CastSpell(me->GetVictim(), SPELL_CLEAVE_ARMOR, false);
events.ScheduleEvent(EVENT_CLEAVE, 15000);
break;
}
@@ -166,11 +166,11 @@ class boss_general_zarithrian : public CreatureScript
DoMeleeAttackIfReady();
EnterEvadeIfOutOfCombatArea();
}
bool CheckEvadeIfOutOfCombatArea() const
{
return me->GetPositionX() > 3060.0f;
}
bool CheckEvadeIfOutOfCombatArea() const
{
return me->GetPositionX() > 3060.0f;
}
};
CreatureAI* GetAI(Creature* creature) const
@@ -220,7 +220,7 @@ class npc_onyx_flamecaller : public CreatureScript
void WaypointReached(uint32 waypointId)
{
if (waypointId == MAX_PATH_FLAMECALLER_WAYPOINTS)
me->SetInCombatWithZone();
me->SetInCombatWithZone();
}
void AddWaypoints()

View File

@@ -8,19 +8,19 @@ REWRITTEN BY XINEF
enum Texts
{
SAY_AGGRO = 0,
SAY_CONFLAGRATION = 1,
EMOTE_ENRAGED = 2,
SAY_KILL = 3
SAY_AGGRO = 0,
SAY_CONFLAGRATION = 1,
EMOTE_ENRAGED = 2,
SAY_KILL = 3
};
enum Spells
{
SPELL_CONFLAGRATION = 74452,
SPELL_FLAME_BEACON = 74453,
SPELL_CONFLAGRATION_MISSLE = 74454,
SPELL_ENRAGE = 78722,
SPELL_FLAME_BREATH = 74403,
SPELL_CONFLAGRATION = 74452,
SPELL_FLAME_BEACON = 74453,
SPELL_CONFLAGRATION_MISSLE = 74454,
SPELL_ENRAGE = 78722,
SPELL_FLAME_BREATH = 74403,
};
enum Events
@@ -31,8 +31,8 @@ enum Events
EVENT_CONFLAGRATION = 4,
EVENT_LAND_GROUND = 5,
EVENT_AIR_MOVEMENT = 6,
EVENT_LAND_BACK = 7,
EVENT_KILL_TALK = 8
EVENT_LAND_BACK = 7,
EVENT_KILL_TALK = 8
};
enum Misc
@@ -57,13 +57,13 @@ class boss_saviana_ragefire : public CreatureScript
void Reset()
{
BossAI::Reset();
BossAI::Reset();
me->SetReactState(REACT_AGGRESSIVE);
}
void EnterCombat(Unit* who)
{
BossAI::EnterCombat(who);
BossAI::EnterCombat(who);
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_ENRAGE, 15000);
@@ -73,7 +73,7 @@ class boss_saviana_ragefire : public CreatureScript
void JustDied(Unit* killer)
{
BossAI::JustDied(killer);
BossAI::JustDied(killer);
me->PlayDirectSound(SOUND_ID_DEATH);
}
@@ -85,13 +85,13 @@ class boss_saviana_ragefire : public CreatureScript
switch (point)
{
case POINT_FLIGHT:
me->SetFacingTo(4.69f);
me->SetFacingTo(4.69f);
events.ScheduleEvent(EVENT_CONFLAGRATION, 1000);
events.ScheduleEvent(EVENT_LAND_BACK, 7000);
events.ScheduleEvent(EVENT_LAND_BACK, 7000);
Talk(SAY_CONFLAGRATION);
break;
case POINT_LAND:
me->SetDisableGravity(false);
me->SetDisableGravity(false);
events.ScheduleEvent(EVENT_LAND_GROUND, 500);
break;
}
@@ -99,18 +99,18 @@ class boss_saviana_ragefire : public CreatureScript
void JustReachedHome()
{
BossAI::JustReachedHome();
BossAI::JustReachedHome();
me->SetDisableGravity(false);
me->SetHover(false);
me->SetHover(false);
}
void KilledUnit(Unit* victim)
{
if (events.GetNextEventTime(EVENT_KILL_TALK) == 0)
{
{
Talk(SAY_KILL);
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
events.ScheduleEvent(EVENT_KILL_TALK, 6000);
}
}
void UpdateAI(uint32 diff)
@@ -128,15 +128,15 @@ class boss_saviana_ragefire : public CreatureScript
{
me->SetReactState(REACT_PASSIVE);
me->AttackStop();
me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+6.0f, false);
me->SetDisableGravity(true);
me->GetMotionMaster()->MovePoint(POINT_TAKEOFF, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ()+6.0f, false);
events.ScheduleEvent(EVENT_FLIGHT, 50000);
events.DelayEvents(15000);
events.ScheduleEvent(EVENT_AIR_MOVEMENT, 2000);
break;
}
case EVENT_CONFLAGRATION:
me->CastCustomSpell(SPELL_CONFLAGRATION, SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 6, 3, 6), me, true);
me->CastCustomSpell(SPELL_CONFLAGRATION, SPELLVALUE_MAX_TARGETS, RAID_MODE(3, 6, 3, 6), me, true);
break;
case EVENT_ENRAGE:
me->CastSpell(me, SPELL_ENRAGE, false);
@@ -150,13 +150,13 @@ class boss_saviana_ragefire : public CreatureScript
case EVENT_AIR_MOVEMENT:
me->GetMotionMaster()->MovePoint(POINT_FLIGHT, 3155.51f, 683.844f, 95.0f, false);
break;
case EVENT_LAND_BACK:
me->GetMotionMaster()->MovePoint(POINT_LAND, 3151.07f, 636.443f, 80.0f, false);
break;
case EVENT_LAND_BACK:
me->GetMotionMaster()->MovePoint(POINT_LAND, 3151.07f, 636.443f, 80.0f, false);
break;
case EVENT_LAND_GROUND:
me->SetReactState(REACT_AGGRESSIVE);
if (me->GetVictim())
me->GetMotionMaster()->MoveChase(me->GetVictim());
if (me->GetVictim())
me->GetMotionMaster()->MoveChase(me->GetVictim());
break;
}

View File

@@ -12,14 +12,14 @@ REWRITTEN BY XINEF
DoorData const doorData[] =
{
{GO_FIRE_FIELD, DATA_BALTHARUS_THE_WARBORN, DOOR_TYPE_PASSAGE, BOUNDARY_E },
{GO_FLAME_WALLS, DATA_SAVIANA_RAGEFIRE, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_FLAME_WALLS, DATA_BALTHARUS_THE_WARBORN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_FLAME_WALLS, DATA_GENERAL_ZARITHRIAN, DOOR_TYPE_ROOM, BOUNDARY_NONE},
{GO_BURNING_TREE_4, DATA_HALION_INTRO1, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_3, DATA_HALION_INTRO1, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_2, DATA_HALION_INTRO2, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_1, DATA_HALION_INTRO2, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_TWILIGHT_FLAME_RING, DATA_HALION, DOOR_TYPE_ROOM, BOUNDARY_NONE},
{GO_FLAME_WALLS, DATA_SAVIANA_RAGEFIRE, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_FLAME_WALLS, DATA_BALTHARUS_THE_WARBORN, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_FLAME_WALLS, DATA_GENERAL_ZARITHRIAN, DOOR_TYPE_ROOM, BOUNDARY_NONE},
{GO_BURNING_TREE_4, DATA_HALION_INTRO1, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_3, DATA_HALION_INTRO1, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_2, DATA_HALION_INTRO2, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_BURNING_TREE_1, DATA_HALION_INTRO2, DOOR_TYPE_PASSAGE, BOUNDARY_NONE},
{GO_TWILIGHT_FLAME_RING, DATA_HALION, DOOR_TYPE_ROOM, BOUNDARY_NONE},
{0, 0, DOOR_TYPE_ROOM, BOUNDARY_NONE},
};
@@ -89,18 +89,18 @@ class instance_ruby_sanctum : public InstanceMapScript
OrbCarrierGUID = creature->GetGUID();
break;
case NPC_LIVING_INFERNO:
case NPC_LIVING_EMBER:
case NPC_METEOR_STRIKE_NORTH:
case NPC_METEOR_STRIKE_SOUTH:
case NPC_METEOR_STRIKE_EAST:
case NPC_METEOR_STRIKE_WEST:
case NPC_METEOR_STRIKE_FLAME:
case NPC_COMBUSTION:
case NPC_CONSUMPTION:
if (Creature* halion = instance->GetCreature(HalionGUID))
halion->AI()->JustSummoned(creature);
break;
case NPC_LIVING_INFERNO:
case NPC_LIVING_EMBER:
case NPC_METEOR_STRIKE_NORTH:
case NPC_METEOR_STRIKE_SOUTH:
case NPC_METEOR_STRIKE_EAST:
case NPC_METEOR_STRIKE_WEST:
case NPC_METEOR_STRIKE_FLAME:
case NPC_COMBUSTION:
case NPC_CONSUMPTION:
if (Creature* halion = instance->GetCreature(HalionGUID))
halion->AI()->JustSummoned(creature);
break;
}
}
@@ -115,7 +115,7 @@ class instance_ruby_sanctum : public InstanceMapScript
case GO_BURNING_TREE_2:
case GO_BURNING_TREE_3:
case GO_BURNING_TREE_4:
case GO_TWILIGHT_FLAME_RING:
case GO_TWILIGHT_FLAME_RING:
AddDoor(go, true);
break;
case GO_FLAME_RING:
@@ -147,8 +147,8 @@ class instance_ruby_sanctum : public InstanceMapScript
return BaltharusTheWarbornGUID;
case NPC_XERESTRASZA:
return XerestraszaGUID;
case NPC_GENERAL_ZARITHRIAN:
return GeneralZarithrianGUID;
case NPC_GENERAL_ZARITHRIAN:
return GeneralZarithrianGUID;
case DATA_ZARITHRIAN_SPAWN_STALKER_1:
case DATA_ZARITHRIAN_SPAWN_STALKER_2:
return ZarithrianSpawnStalkerGUID[type - DATA_ZARITHRIAN_SPAWN_STALKER_1];
@@ -160,7 +160,7 @@ class instance_ruby_sanctum : public InstanceMapScript
return TwilightHalionGUID;
case NPC_ORB_CARRIER:
return OrbCarrierGUID;
case GO_FLAME_RING:
return FlameRingGUID;
}
@@ -181,11 +181,11 @@ class instance_ruby_sanctum : public InstanceMapScript
if (Creature* zarithrian = instance->GetCreature(GeneralZarithrianGUID))
zarithrian->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);
break;
case DATA_GENERAL_ZARITHRIAN:
if (state == DONE)
if (Creature* halionController = instance->GetCreature(HalionControllerGUID))
halionController->AI()->DoAction(ACTION_INTRO_HALION);
break;
case DATA_GENERAL_ZARITHRIAN:
if (state == DONE)
if (Creature* halionController = instance->GetCreature(HalionControllerGUID))
halionController->AI()->DoAction(ACTION_INTRO_HALION);
break;
case DATA_HALION:
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TOGGLE, 0);
DoUpdateWorldState(WORLDSTATE_CORPOREALITY_TWILIGHT, 0);
@@ -242,12 +242,12 @@ class instance_ruby_sanctum : public InstanceMapScript
SetBossState(i, EncounterState(tmpState));
}
// Xinef: additional check
if (GetBossState(DATA_HALION_INTRO_DONE) != DONE)
{
SetBossState(DATA_HALION_INTRO1, NOT_STARTED);
SetBossState(DATA_HALION_INTRO2, NOT_STARTED);
}
// Xinef: additional check
if (GetBossState(DATA_HALION_INTRO_DONE) != DONE)
{
SetBossState(DATA_HALION_INTRO1, NOT_STARTED);
SetBossState(DATA_HALION_INTRO2, NOT_STARTED);
}
}
else
OUT_LOAD_INST_DATA_FAIL;
@@ -285,13 +285,13 @@ class spell_ruby_sanctum_rallying_shout : public SpellScriptLoader
void CountAllies()
{
uint32 count = GetSpell()->GetUniqueTargetInfo()->size();
if (count == GetCaster()->GetAuraCount(SPELL_RALLY))
return;
uint32 count = GetSpell()->GetUniqueTargetInfo()->size();
if (count == GetCaster()->GetAuraCount(SPELL_RALLY))
return;
GetCaster()->RemoveAurasDueToSpell(SPELL_RALLY);
if (count > 0)
GetCaster()->CastCustomSpell(SPELL_RALLY, SPELLVALUE_AURA_STACK, count, GetCaster(), true);
GetCaster()->RemoveAurasDueToSpell(SPELL_RALLY);
if (count > 0)
GetCaster()->CastCustomSpell(SPELL_RALLY, SPELLVALUE_AURA_STACK, count, GetCaster(), true);
}
void Register()
@@ -309,5 +309,5 @@ class spell_ruby_sanctum_rallying_shout : public SpellScriptLoader
void AddSC_instance_ruby_sanctum()
{
new instance_ruby_sanctum();
new spell_ruby_sanctum_rallying_shout();
new spell_ruby_sanctum_rallying_shout();
}

View File

@@ -17,12 +17,12 @@ enum DataTypes
DATA_BALTHARUS_THE_WARBORN = 0,
DATA_GENERAL_ZARITHRIAN = 1,
DATA_SAVIANA_RAGEFIRE = 2,
DATA_HALION_INTRO1 = 3,
DATA_HALION_INTRO2 = 4,
DATA_HALION_INTRO_DONE = 5,
DATA_HALION_INTRO1 = 3,
DATA_HALION_INTRO2 = 4,
DATA_HALION_INTRO_DONE = 5,
DATA_HALION = 6,
MAX_ENCOUNTERS = 7,
MAX_ENCOUNTERS = 7,
// Etc
DATA_ZARITHRIAN_SPAWN_STALKER_1 = 8,
@@ -92,7 +92,7 @@ enum WorldStatesRS
enum InstanceSpell
{
SPELL_BERSERK = 26662,
SPELL_RALLY = 75416
SPELL_RALLY = 75416
};
#endif // RUBY_SANCTUM_H_