aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authormaximius <none@none>2009-10-31 00:05:50 -0700
committermaximius <none@none>2009-10-31 00:05:50 -0700
commitad12344d6a071a257d71d4161e3c9b83b3e952cb (patch)
tree6a9c369899a4f2c3d427b81565b7db7628c4688f /src
parent08f99a7794bfa8c19efa4b52a26c166575f9d6d4 (diff)
*Ulduar - fix several cases of incorrect targeting and spells.
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp22
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp3
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp2
-rw-r--r--src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp68
4 files changed, 41 insertions, 54 deletions
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp
index 9338097f5a1..9ce17808966 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_auriaya.cpp
@@ -20,8 +20,10 @@
#include "ulduar.h"
//boss_auriaya
-#define SPELL_TERRIFYING_SCREECH 64386
-#define SPELL_SONIC_BOOM 38897
+#define SPELL_TERRIFYING_SCREECH 64386
+#define SPELL_SETINEL_BLAST 64679
+#define SPELL_SONIC_SCREECH 64422
+#define SPELL_SUMMON_SWARMING_GUARDIAN 64397
//wrong text ids. correct are beetwen -1000000 AND -1999999
//beetwen -2000000 and -2999999 are custom texts so wtf?
#define SAY_AGGRO -2615016
@@ -37,12 +39,12 @@ struct TRINITY_DLL_DECL boss_auriaya_AI : public BossAI
ScriptedInstance* m_pInstance;
uint32 TERRIFYING_SCREECH_Timer;
- uint32 SONIC_BOOM_Timer;
+ uint32 SONIC_SCREECH_Timer;
void Reset()
{
- TERRIFYING_SCREECH_Timer = 0;
- SONIC_BOOM_Timer = 2000;
+ TERRIFYING_SCREECH_Timer = 180000;
+ SONIC_SCREECH_Timer = 30000;
}
void EnterCombat(Unit* who)
@@ -71,16 +73,16 @@ struct TRINITY_DLL_DECL boss_auriaya_AI : public BossAI
if (TERRIFYING_SCREECH_Timer <= diff)
{
- DoCast(m_creature,SPELL_TERRIFYING_SCREECH);
+ DoCast(SPELL_TERRIFYING_SCREECH);
DoScriptText(SAY_SLAY_1, m_creature);
- TERRIFYING_SCREECH_Timer = 360000;
+ TERRIFYING_SCREECH_Timer = 180000;
} else TERRIFYING_SCREECH_Timer -= diff;
if (SONIC_BOOM_Timer <= diff)
{
- DoCast(m_creature->getVictim(),SPELL_SONIC_BOOM);
- SONIC_BOOM_Timer = 20000;
- } else SONIC_BOOM_Timer -= diff;
+ DoCastVictim(SPELL_SONIC_SCREECH);
+ SONIC_SCREECH_Timer = 30000;
+ } else SONIC_SCREECH_Timer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp
index 8ac121d8e14..10b74528fcd 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_freya.cpp
@@ -67,9 +67,7 @@ struct TRINITY_DLL_DECL boss_freyaAI : public BossAI
DoMeleeAttackIfReady();
EnterEvadeIfOutOfCombatArea(diff);
-
}
-
};
CreatureAI* GetAI_boss_freya(Creature* pCreature)
@@ -84,5 +82,4 @@ void AddSC_boss_freya()
newscript->Name = "boss_freya";
newscript->GetAI = &GetAI_boss_freya;
newscript->RegisterSelf();
-
}
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp
index 33d86cd2bd5..7a7203a4c76 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_ignis.cpp
@@ -80,7 +80,7 @@ struct TRINITY_DLL_DECL boss_ignis_AI : public BossAI
if (SCORCH_Timer <= diff)
{
- DoCastVictim(SPELL_SCORCH);
+ DoCast(SPELL_SCORCH);
SCORCH_Timer = 20000;
} else SCORCH_Timer -= diff;
diff --git a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp
index 2dd753e6b85..34fa7820208 100644
--- a/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp
+++ b/src/bindings/scripts/scripts/northrend/ulduar/ulduar/boss_razorscale.cpp
@@ -17,10 +17,8 @@
*/
/* ScriptData
-Name: razorscale
-%Complete: 90
-Comment: Made by Epsik from WoW Arthas wow.dsl.net.pk
-Category:
+SDName: razorscale
+SD%Complete: 65
EndScriptData */
#include "precompiled.h"
@@ -41,16 +39,12 @@ EndScriptData */
#define SPELL_FLAMEBREATH 63317
#define SPELL_FUSEARMOR 64771
#define SPELL_DEVOURINGFLAME 63014
-#define SPELL_KNOCK_AWAY 19633
-
-#define SPELL_BELLOWINGROAR 18431
-#define SPELL_HEATED_GROUND 22191
#define SPELL_SUMMONADDS 17646
#define CREATURE_ADDS 33846
-static float MovementLocations[4][3]=
+static float MovementLocations[4][3] =
{
{607.7, -281.9, 408.6},
{602.0, -245.5, 424.7},
@@ -58,7 +52,7 @@ static float MovementLocations[4][3]=
{624.1, -251.8, 426.1}
};
-static float SpawnLocations[4][3]=
+static float SpawnLocations[4][3] =
{
{602.0, -248.1, 391.2},
{624.4, -232-4, 391.1},
@@ -77,9 +71,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
uint32 DEVOURINGFLAMETimer;
uint32 MovementTimer;
uint32 SummonAddsTimer;
- uint32 BellowingRoarTimer;
uint32 WingBuffetTimer;
- uint32 KnockAwayTimer;
uint32 FireballTimer;
bool InitialSpawn;
@@ -93,9 +85,7 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
FUSEARMORTimer = 15000;
MovementTimer = 3000;
SummonAddsTimer = 45000;
- BellowingRoarTimer = 30000;
WingBuffetTimer = 17000;
- KnockAwayTimer = 15000;
FireballTimer = 18000;
InitialSpawn = true;
@@ -158,47 +148,36 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
{
if (FlameBreathTimer <= diff)
{
- DoCast(m_creature->getVictim(), SPELL_FLAMEBREATH);
+ DoCastVictim(SPELL_FLAMEBREATH);
FlameBreathTimer = 15000;
} else FlameBreathTimer -= diff;
if (DEVOURINGFLAMETimer <= diff)
{
- if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
- if (!m_creature->HasInArc(M_PI, pTarget))
- DoCast(pTarget, SPELL_DEVOURINGFLAME);
+ std::list<Unit*> pTargets;
+ SelectTargetList(pTargets, 10, SELECT_TARGET_RANDOM, 100, true);
+ for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
+ if (!m_creature->HasInArc(M_PI, *i))
+ {
+ DoCast(*i, SPELL_DEVOURINGFLAME);
+ break;
+ }
DEVOURINGFLAMETimer = 10000;
} else DEVOURINGFLAMETimer -= diff;
if (FUSEARMORTimer <= diff)
{
- DoCast(m_creature->getVictim(), SPELL_FUSEARMOR);
+ DoCastVictim(SPELL_FUSEARMOR);
FUSEARMORTimer = 10000;
} else FUSEARMORTimer -= diff;
if (WingBuffetTimer <= diff)
{
- DoCast(m_creature->getVictim(), SPELL_WINGBUFFET);
+ DoCast(SPELL_WINGBUFFET);
WingBuffetTimer = urand(7000,14000);
} else WingBuffetTimer -= diff;
- if (KnockAwayTimer <= diff)
- {
- if (urand(0,99) < 30)
- DoCast(m_creature->getVictim(), SPELL_KNOCK_AWAY);
- KnockAwayTimer = 15000;
- } else KnockAwayTimer -= diff;
-
- if (Phase == 3)
- {
- if (BellowingRoarTimer <= diff)
- {
- DoCast(m_creature->getVictim(), SPELL_BELLOWINGROAR);
- BellowingRoarTimer = 30000;
- } else BellowingRoarTimer -= diff;
- }
-
DoMeleeAttackIfReady();
}
@@ -211,7 +190,14 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
if (FireballTimer <= diff)
{
- DoCast(SelectUnit(SELECT_TARGET_RANDOM, 0), SPELL_FIREBALL);
+ std::list<Unit*> pTargets;
+ SelectTargetList(pTargets, 10, SELECT_TARGET_RANDOM, 100, true);
+ for (std::list<Unit*>::iterator i = pTargets.begin(); i != pTargets.end(); ++i)
+ if (!m_creature->HasInArc(M_PI, *i))
+ {
+ DoCast(*i, SPELL_FIREBALL);
+ break;
+ }
FireballTimer = 18000;
} else FireballTimer -= diff;
@@ -221,7 +207,8 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
if (urand(0,99) < 30)
{
DoScriptText(EMOTE_BREATH, m_creature);
- DoCast(m_creature->getVictim(), SPELL_FLAMEBUFFET);
+ if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
+ DoCast(pTarget, SPELL_FLAMEBUFFET);
}
else ChangePosition();
@@ -246,8 +233,9 @@ struct TRINITY_DLL_DECL boss_razorscaleAI : public BossAI
for (uint32 i = 0; i < 4; ++i)
{
uint8 random = urand(0,3);
- if (Creature* Add = m_creature->SummonCreature(CREATURE_ADDS, SpawnLocations[random][0], SpawnLocations[random][1], SpawnLocations[random][2], 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))
- Add->AI()->AttackStart(SelectTarget(SELECT_TARGET_RANDOM, 0, 0, true));
+ if (Creature *pAdd = m_creature->SummonCreature(CREATURE_ADDS, SpawnLocations[random][0], SpawnLocations[random][1], SpawnLocations[random][2], 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000))
+ if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 200, true))
+ pAdd->AI()->AttackStart(pTarget);
}
SummonAddsTimer = 45000;
}