aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp103
-rw-r--r--src/bindings/scripts/scripts/zone/obsidian_sanctum/boss_sartharion.cpp111
2 files changed, 113 insertions, 101 deletions
diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
index 321952f2e60..00212ac1c42 100644
--- a/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
+++ b/src/bindings/scripts/scripts/zone/blackrock_depths/boss_tomb_of_seven.cpp
@@ -17,16 +17,19 @@
/* ScriptData
SDName: Boss_Tomb_Of_Seven
SD%Complete: 50
-SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event and re-spawn GO Spectral Chalice
+SDComment: Learning Smelt Dark Iron if tribute quest rewarded. Missing event.
SDCategory: Blackrock Depths
EndScriptData */
#include "precompiled.h"
#include "def_blackrock_depths.h"
-#define SPELL_SUNDERARMOR 24317
-#define SPELL_SHIELDBLOCK 12169
-#define SPELL_STRIKE 15580
+enum
+{
+ SPELL_SUNDERARMOR = 24317,
+ SPELL_SHIELDBLOCK = 12169,
+ SPELL_STRIKE = 15580
+};
struct TRINITY_DLL_DECL boss_angerrelAI : public ScriptedAI
{
@@ -102,9 +105,12 @@ CreatureAI* GetAI_boss_angerrel(Creature *_Creature)
return new boss_angerrelAI (_Creature);
}
-#define SPELL_SINISTERSTRIKE 15581
-#define SPELL_BACKSTAB 15582
-#define SPELL_GOUGE 13579
+enum
+{
+ SPELL_SINISTERSTRIKE = 15581,
+ SPELL_BACKSTAB = 15582,
+ SPELL_GOUGE = 13579
+};
struct TRINITY_DLL_DECL boss_doperelAI : public ScriptedAI
{
@@ -180,9 +186,12 @@ CreatureAI* GetAI_boss_doperel(Creature *_Creature)
return new boss_doperelAI (_Creature);
}
-#define SPELL_SHADOWBOLT 17483 //Not sure if right ID
-#define SPELL_MANABURN 10876
-#define SPELL_SHADOWSHIELD 22417
+enum
+{
+ SPELL_SHADOWBOLT = 17483, //Not sure if right ID
+ SPELL_MANABURN = 10876,
+ SPELL_SHADOWSHIELD = 22417
+};
struct TRINITY_DLL_DECL boss_haterelAI : public ScriptedAI
{
@@ -271,10 +280,13 @@ CreatureAI* GetAI_boss_haterel(Creature *_Creature)
return new boss_haterelAI (_Creature);
}
-#define SPELL_MINDBLAST 15587
-#define SPELL_HEAL 15586
-#define SPELL_PRAYEROFHEALING 15585
-#define SPELL_SHIELD 10901
+enum
+{
+ SPELL_MINDBLAST = 15587,
+ SPELL_HEAL = 15586,
+ SPELL_PRAYEROFHEALING = 15585,
+ SPELL_SHIELD = 10901
+};
struct TRINITY_DLL_DECL boss_vilerelAI : public ScriptedAI
{
@@ -359,11 +371,14 @@ CreatureAI* GetAI_boss_vilerel(Creature *_Creature)
return new boss_vilerelAI (_Creature);
}
-#define SPELL_FROSTBOLT 16799
-#define SPELL_FROSTARMOR 15784 //This is actually a buff he gives himself
-#define SPELL_BLIZZARD 19099
-#define SPELL_FROSTNOVA 15063
-#define SPELL_FROSTWARD 15004
+enum
+{
+ SPELL_FROSTBOLT = 16799,
+ SPELL_FROSTARMOR = 15784, //This is actually a buff he gives himself
+ SPELL_BLIZZARD = 19099,
+ SPELL_FROSTNOVA = 15063,
+ SPELL_FROSTWARD = 15004
+};
struct TRINITY_DLL_DECL boss_seethrelAI : public ScriptedAI
{
@@ -461,9 +476,12 @@ CreatureAI* GetAI_boss_seethrel(Creature *_Creature)
return new boss_seethrelAI (_Creature);
}
-#define SPELL_HAMSTRING 9080
-#define SPELL_CLEAVE 15579
-#define SPELL_MORTALSTRIKE 15708
+enum
+{
+ SPELL_HAMSTRING = 9080,
+ SPELL_CLEAVE = 15579,
+ SPELL_MORTALSTRIKE = 15708
+};
struct TRINITY_DLL_DECL boss_gloomrelAI : public ScriptedAI
{
@@ -585,10 +603,14 @@ bool GossipSelect_boss_gloomrel(Player *player, Creature *_Creature, uint32 send
return true;
}
-#define SPELL_SHADOWBOLTVOLLEY 17228
-#define SPELL_IMMOLATE 15505
-#define SPELL_CURSEOFWEAKNESS 17227
-#define SPELL_DEMONARMOR 11735
+enum
+{
+ SPELL_SHADOWBOLTVOLLEY = 17228,
+ SPELL_IMMOLATE = 15505,
+ SPELL_CURSEOFWEAKNESS = 17227,
+ SPELL_DEMONARMOR = 11735,
+ SPELL_SUMMON_VOIDWALKERS = 15092
+};
struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
{
@@ -614,6 +636,10 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
Voidwalkers = false;
m_creature->setFaction(FACTION_FRIEND);
+
+ // was set before event start, so set again
+ m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_ATTACKABLE_2);
+
if(pInstance)
if(pInstance->GetData(DATA_GHOSTKILL) >= 7)
m_creature->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE);
@@ -644,27 +670,6 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
pInstance->SetData(DATA_GHOSTKILL, 1);
}
- void SummonVoidwalkers(Unit* victim)
- {
- Rand = rand()%5;
- switch (rand()%2)
- {
- case 0: RandX = 0 - Rand; break;
- case 1: RandX = 0 + Rand; break;
- }
- Rand = 0;
- Rand = rand()%5;
- switch (rand()%2)
- {
- case 0: RandY = 0 - Rand; break;
- case 1: RandY = 0 + Rand; break;
- }
- Rand = 0;
- Summoned = DoSpawnCreature(16119, RandX, RandY, 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000);
- if(Summoned)
- (Summoned->AI())->AttackStart(victim);
- }
-
void UpdateAI(const uint32 diff)
{
if (!UpdateVictim() )
@@ -703,9 +708,7 @@ struct TRINITY_DLL_DECL boss_doomrelAI : public ScriptedAI
//Summon Voidwalkers
if (!Voidwalkers && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 51 )
{
- SummonVoidwalkers(m_creature->getVictim());
- SummonVoidwalkers(m_creature->getVictim());
- SummonVoidwalkers(m_creature->getVictim());
+ m_creature->CastSpell(m_creature->getVictim(), SPELL_SUMMON_VOIDWALKERS, true);
Voidwalkers = true;
}
diff --git a/src/bindings/scripts/scripts/zone/obsidian_sanctum/boss_sartharion.cpp b/src/bindings/scripts/scripts/zone/obsidian_sanctum/boss_sartharion.cpp
index 98439172b21..84d6d467f54 100644
--- a/src/bindings/scripts/scripts/zone/obsidian_sanctum/boss_sartharion.cpp
+++ b/src/bindings/scripts/scripts/zone/obsidian_sanctum/boss_sartharion.cpp
@@ -118,9 +118,6 @@ enum
POINT_ID_LAND = 200
};
-//POS_SARTHARION_X = 3246.57,
-//POS_SARTHARION_Y = 551.263,
-
struct Waypoint
{
float m_fX, m_fY, m_fZ;
@@ -207,41 +204,26 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
m_bHasCalledShadron = false;
m_bHasCalledVesperon = false;
- if (m_pInstance)
- {
- if (!m_creature->isAlive())
- return;
-
- m_pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
-
- //do dragons actually respawn like this? Commented for now, until confirmed.
-
- /*if (Unit* Temp1 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_TENEBRON)))
- if (Temp1->isDead())
- ((Creature*)Temp1)->Respawn();
-
- if (Unit* Temp2 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_SHADRON)))
- if (Temp2->isDead())
- ((Creature*)Temp2)->Respawn();
-
- if (Unit* Temp3 = Unit::GetUnit((*m_creature),m_pInstance->GetData64(DATA_VESPERON)))
- if (Temp3->isDead())
- ((Creature*)Temp3)->Respawn();*/
- }
-
if (m_creature->HasAura(SPELL_TWILIGHT_REVENGE))
m_creature->RemoveAurasDueToSpell(SPELL_TWILIGHT_REVENGE);
}
+ void JustReachedHome()
+ {
+ if (m_pInstance)
+ m_pInstance->SetData(TYPE_SARTHARION_EVENT, NOT_STARTED);
+ }
+
void Aggro(Unit* pWho)
{
DoScriptText(SAY_SARTHARION_AGGRO,m_creature);
DoZoneInCombat();
if (m_pInstance)
+ {
m_pInstance->SetData(TYPE_SARTHARION_EVENT, IN_PROGRESS);
-
- FetchDragons();
+ FetchDragons();
+ }
}
void JustDied(Unit* pKiller)
@@ -355,13 +337,6 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
if (!UpdateVictim())
return;
- //reset if out of his platform, must find better/faster way to do this
- //if (m_creature->GetDistance2d(POS_SARTHARION_X, POS_SARTHARION_Y) > 55)
- //{
- //EnterEvadeMode();
- //return;
- //}
-
if (!m_bIsBerserk && (m_creature->GetHealth()*100 / m_creature->GetMaxHealth()) <= 10)
{
DoScriptText(SAY_SARTHARION_BERSERK,m_creature);
@@ -376,7 +351,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
{
DoCast(m_creature, SPELL_WILL_OF_SARTHARION);
m_uiEnrageTimer = 0;
- }else m_uiEnrageTimer -= uiDiff;
+ }
+ else
+ m_uiEnrageTimer -= uiDiff;
}
// flame tsunami
@@ -384,7 +361,9 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
{
SendFlameTsunami();
m_uiFlameTsunamiTimer = 30000;
- }else m_uiFlameTsunamiTimer -= uiDiff;
+ }
+ else
+ m_uiFlameTsunamiTimer -= uiDiff;
// flame breath
if (m_uiFlameBreathTimer < uiDiff)
@@ -392,21 +371,27 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
DoScriptText(SAY_SARTHARION_BREATH, m_creature);
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_FLAME_BREATH_H : SPELL_FLAME_BREATH);
m_uiFlameBreathTimer = 25000 + rand()%10000;
- }else m_uiFlameBreathTimer -= uiDiff;
+ }
+ else
+ m_uiFlameBreathTimer -= uiDiff;
// Tail Sweep
if (m_uiTailSweepTimer < uiDiff)
{
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_TAIL_LASH_H : SPELL_TAIL_LASH);
m_uiTailSweepTimer = 15000 + rand()%5000;
- }else m_uiTailSweepTimer -= uiDiff;
+ }
+ else
+ m_uiTailSweepTimer -= uiDiff;
// Cleave
if (m_uiCleaveTimer < uiDiff)
{
DoCast(m_creature->getVictim(), SPELL_CLEAVE);
m_uiCleaveTimer = 7000 + rand()%3000;
- }else m_uiCleaveTimer -= uiDiff;
+ }
+ else
+ m_uiCleaveTimer -= uiDiff;
// Lavas Strike
if (m_uiLavaStrikeTimer < uiDiff)
@@ -423,28 +408,36 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
}
}
m_uiLavaStrikeTimer = 5000 + rand()%15000;
- }else m_uiLavaStrikeTimer -= uiDiff;
+ }
+ else
+ m_uiLavaStrikeTimer -= uiDiff;
// call tenebron
if (!m_bHasCalledTenebron && m_uiTenebronTimer < uiDiff)
{
CallDragon(DATA_TENEBRON);
m_bHasCalledTenebron = true;
- }else m_uiTenebronTimer -= uiDiff;
+ }
+ else
+ m_uiTenebronTimer -= uiDiff;
// call shadron
if (!m_bHasCalledShadron && m_uiShadronTimer < uiDiff)
{
CallDragon(DATA_SHADRON);
m_bHasCalledShadron = true;
- }else m_uiShadronTimer -= uiDiff;
+ }
+ else
+ m_uiShadronTimer -= uiDiff;
// call vesperon
if (!m_bHasCalledVesperon && m_uiVesperonTimer < uiDiff)
{
CallDragon(DATA_VESPERON);
m_bHasCalledVesperon = true;
- }else m_uiVesperonTimer -= uiDiff;
+ }
+ else
+ m_uiVesperonTimer -= uiDiff;
DoMeleeAttackIfReady();
@@ -682,7 +675,9 @@ struct TRINITY_DLL_DECL dummy_dragonAI : public ScriptedAI
debug_log("dummy_dragonAI: %s moving to point %u", m_creature->GetName(), m_uiWaypointId);
m_uiMoveNextTimer = 0;
- } else m_uiMoveNextTimer -= uiDiff;
+ }
+ else
+ m_uiMoveNextTimer -= uiDiff;
}
}
};
@@ -738,7 +733,9 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
m_uiShadowFissureTimer = 15000 + rand()%5000;
- }else m_uiShadowFissureTimer -= uiDiff;
+ }
+ else
+ m_uiShadowFissureTimer -= uiDiff;
// shadow breath
if (m_uiShadowBreathTimer < uiDiff)
@@ -746,7 +743,9 @@ struct TRINITY_DLL_DECL mob_tenebronAI : public dummy_dragonAI
DoScriptText(SAY_TENEBRON_BREATH, m_creature);
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
m_uiShadowBreathTimer = 20000 + rand()%5000;
- }else m_uiShadowBreathTimer -= uiDiff;
+ }
+ else
+ m_uiShadowBreathTimer -= uiDiff;
DoMeleeAttackIfReady();
}
@@ -814,7 +813,9 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
m_uiShadowFissureTimer = 15000 + rand()%5000;
- }else m_uiShadowFissureTimer -= uiDiff;
+ }
+ else
+ m_uiShadowFissureTimer -= uiDiff;
// shadow breath
if (m_uiShadowBreathTimer < uiDiff)
@@ -822,7 +823,9 @@ struct TRINITY_DLL_DECL mob_shadronAI : public dummy_dragonAI
DoScriptText(SAY_SHADRON_BREATH, m_creature);
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
m_uiShadowBreathTimer = 20000 + rand()%5000;
- }else m_uiShadowBreathTimer -= uiDiff;
+ }
+ else
+ m_uiShadowBreathTimer -= uiDiff;
DoMeleeAttackIfReady();
}
@@ -884,7 +887,9 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
DoCast(pTarget, m_bIsHeroic ? SPELL_SHADOW_FISSURE_H : SPELL_SHADOW_FISSURE);
m_uiShadowFissureTimer = 15000 + rand()%5000;
- }else m_uiShadowFissureTimer -= uiDiff;
+ }
+ else
+ m_uiShadowFissureTimer -= uiDiff;
// shadow breath
if (m_uiShadowBreathTimer < uiDiff)
@@ -892,7 +897,9 @@ struct TRINITY_DLL_DECL mob_vesperonAI : public dummy_dragonAI
DoScriptText(SAY_VESPERON_BREATH, m_creature);
DoCast(m_creature->getVictim(), m_bIsHeroic ? SPELL_SHADOW_BREATH_H : SPELL_SHADOW_BREATH);
m_uiShadowBreathTimer = 20000 + rand()%5000;
- }else m_uiShadowBreathTimer -= uiDiff;
+ }
+ else
+ m_uiShadowBreathTimer -= uiDiff;
DoMeleeAttackIfReady();
}
@@ -1061,7 +1068,9 @@ struct TRINITY_DLL_DECL mob_twilight_whelpAI : public ScriptedAI
{
DoCast(m_creature->getVictim(), SPELL_FADE_ARMOR);
m_uiFadeArmorTimer = 5000 + rand()%5000;
- }else m_uiFadeArmorTimer -= uiDiff;
+ }
+ else
+ m_uiFadeArmorTimer -= uiDiff;
DoMeleeAttackIfReady();
}