aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortartalo <none@none>2009-10-19 21:55:53 +0200
committertartalo <none@none>2009-10-19 21:55:53 +0200
commitd072fada1018bcf4f9f85ceaf1b7fe5b122e06a5 (patch)
treef040ef4fd9249a35c228285bf99131d55e83c989 /src
parent2fc8b2134f55dd69fa0e05727fb5307edc7f9cad (diff)
Naxxramas: Gothik the Harvester: Cleanup + timer correction + add heroic info for waves + open middle door in case of a wipe
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp118
1 files changed, 78 insertions, 40 deletions
diff --git a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
index aa67e6edeb2..9a4e33ddfbd 100644
--- a/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
+++ b/src/bindings/scripts/scripts/northrend/naxxramas/boss_gothik.cpp
@@ -17,58 +17,92 @@
#include "precompiled.h"
#include "def_naxxramas.h"
-#define SAY_SPEECH -1533040
-#define SAY_KILL -1533041
-#define SAY_DEATH -1533042
-#define SAY_TELEPORT -1533043
-
+enum Yells
+{
+ SAY_SPEECH = -1533040,
+ SAY_KILL = -1533041,
+ SAY_DEATH = -1533042,
+ SAY_TELEPORT = -1533043
+};
//Gothik
-#define SPELL_HARVEST_SOUL 28679
-#define SPELL_SHADOW_BOLT HEROIC(29317,56405)
-
-#define SPELL_INFORM_LIVE_TRAINEE 27892
-#define SPELL_INFORM_LIVE_KNIGHT 27928
-#define SPELL_INFORM_LIVE_RIDER 27935
-#define SPELL_INFORM_DEAD_TRAINEE 27915
-#define SPELL_INFORM_DEAD_KNIGHT 27931
-#define SPELL_INFORM_DEAD_RIDER 27937
-
-#define MOB_LIVE_TRAINEE 16124
-#define MOB_LIVE_KNIGHT 16125
-#define MOB_LIVE_RIDER 16126
-#define MOB_DEAD_TRAINEE 16127
-#define MOB_DEAD_KNIGHT 16148
-#define MOB_DEAD_RIDER 16150
-#define MOB_DEAD_HORSE 16149
-
-const struct Waves { uint32 entry, number, time; }
-waves[] =
+enum Spells
+{
+ SPELL_HARVEST_SOUL = 28679,
+ SPELL_SHADOW_BOLT = 29317,
+ H_SPELL_SHADOW_BOLT = 56405,
+ SPELL_INFORM_LIVE_TRAINEE = 27892,
+ SPELL_INFORM_LIVE_KNIGHT = 27928,
+ SPELL_INFORM_LIVE_RIDER = 27935,
+ SPELL_INFORM_DEAD_TRAINEE = 27915,
+ SPELL_INFORM_DEAD_KNIGHT = 27931,
+ SPELL_INFORM_DEAD_RIDER = 27937
+};
+enum Creatures
+{
+ MOB_LIVE_TRAINEE = 16124,
+ MOB_LIVE_KNIGHT = 16125,
+ MOB_LIVE_RIDER = 16126,
+ MOB_DEAD_TRAINEE = 16127,
+ MOB_DEAD_KNIGHT = 16148,
+ MOB_DEAD_RIDER = 16150,
+ MOB_DEAD_HORSE = 16149
+};
+struct Waves { uint32 entry, number, time; };
+const Waves waves[] =
{
{MOB_LIVE_TRAINEE, 2, 20000},
{MOB_LIVE_TRAINEE, 2, 20000},
{MOB_LIVE_TRAINEE, 2, 10000},
{MOB_LIVE_KNIGHT, 1, 10000},
{MOB_LIVE_TRAINEE, 2, 15000},
- {MOB_LIVE_KNIGHT, 1, 10000},
- {MOB_LIVE_TRAINEE, 2, 15000},
- {MOB_LIVE_TRAINEE, 2, 0},
+ {MOB_LIVE_KNIGHT, 1, 5000},
+ {MOB_LIVE_TRAINEE, 2, 20000},
+ {MOB_LIVE_TRAINEE, 2, 0},
{MOB_LIVE_KNIGHT, 1, 10000},
{MOB_LIVE_RIDER, 1, 10000},
- {MOB_LIVE_TRAINEE, 2, 5000},
+ {MOB_LIVE_TRAINEE, 2, 5000},
{MOB_LIVE_KNIGHT, 1, 15000},
- {MOB_LIVE_TRAINEE, 2, 0},
+ {MOB_LIVE_TRAINEE, 2, 0},
{MOB_LIVE_RIDER, 1, 10000},
{MOB_LIVE_KNIGHT, 2, 10000},
{MOB_LIVE_TRAINEE, 2, 10000},
- {MOB_LIVE_RIDER, 1, 5000},
- {MOB_LIVE_KNIGHT, 1, 5000},
+ {MOB_LIVE_RIDER, 1, 5000},
+ {MOB_LIVE_KNIGHT, 1, 5000},
{MOB_LIVE_TRAINEE, 2, 20000},
- {MOB_LIVE_TRAINEE, 2, 0},
- {MOB_LIVE_KNIGHT, 1, 0},
+ {MOB_LIVE_TRAINEE, 2, 0},
+ {MOB_LIVE_KNIGHT, 1, 0},
{MOB_LIVE_RIDER, 1, 15000},
{MOB_LIVE_TRAINEE, 2, 29000},
{0, 0, 0},
};
+const Waves wavesHeroic[] =
+{
+ {MOB_LIVE_TRAINEE, 3, 20000},
+ {MOB_LIVE_TRAINEE, 3, 20000},
+ {MOB_LIVE_TRAINEE, 3, 10000},
+ {MOB_LIVE_KNIGHT, 2, 10000},
+ {MOB_LIVE_TRAINEE, 3, 15000},
+ {MOB_LIVE_KNIGHT, 2, 5000},
+ {MOB_LIVE_TRAINEE, 3, 20000},
+ {MOB_LIVE_TRAINEE, 3, 0},
+ {MOB_LIVE_KNIGHT, 2, 10000},
+ {MOB_LIVE_TRAINEE, 3, 10000},
+ {MOB_LIVE_RIDER, 1, 5000},
+ {MOB_LIVE_TRAINEE, 3, 15000},
+ {MOB_LIVE_RIDER, 1, 10000},
+ {MOB_LIVE_KNIGHT, 2, 10000},
+ {MOB_LIVE_RIDER, 1, 10000},
+ {MOB_LIVE_RIDER, 1, 0},
+ {MOB_LIVE_TRAINEE, 3, 5000},
+ {MOB_LIVE_KNIGHT, 1, 0},
+ {MOB_LIVE_TRAINEE, 3, 5000},
+ {MOB_LIVE_RIDER, 1, 0},
+ {MOB_LIVE_TRAINEE, 3, 20000},
+ {MOB_LIVE_KNIGHT, 2, 0},
+ {MOB_LIVE_RIDER, 1, 0},
+ {MOB_LIVE_TRAINEE, 3, 29000},
+ {0, 0, 0},
+};
#define POS_Y_GATE -3360.78f
@@ -78,9 +112,11 @@ enum Events
EVENT_HARVEST,
EVENT_BOLT,
};
-
-#define POS_LIVE 3
-#define POS_DEAD 5
+enum Pos
+{
+ POS_LIVE = 3,
+ POS_DEAD = 5
+};
const Position PosSummonLive[POS_LIVE] =
{
@@ -115,6 +151,8 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
deadTrigger.clear();
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
me->SetReactState(REACT_PASSIVE);
+ if (instance)
+ instance->SetData(DATA_GOTHIK_GATE, GO_STATE_ACTIVE);
_Reset();
}
@@ -141,7 +179,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
DoTeleportTo(PosPlatform);
DoScriptText(SAY_SPEECH, me);
if (instance)
- instance->SetData(DATA_GOTHIK_GATE, 1);
+ instance->SetData(DATA_GOTHIK_GATE, GO_STATE_READY);
}
void JustSummoned(Creature *summon)
@@ -243,7 +281,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
me->SetReactState(REACT_AGGRESSIVE);
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
if (instance)
- instance->SetData(DATA_GOTHIK_GATE, 0);
+ instance->SetData(DATA_GOTHIK_GATE, GO_STATE_ACTIVE);
summons.DoAction(0, 0);
summons.DoZoneInCombat();
events.ScheduleEvent(EVENT_BOLT, 1000);
@@ -251,7 +289,7 @@ struct TRINITY_DLL_DECL boss_gothikAI : public BossAI
}
break;
case EVENT_BOLT:
- DoCast(me->getVictim(), SPELL_SHADOW_BOLT);
+ DoCast(me->getVictim(), HEROIC(SPELL_SHADOW_BOLT,H_SPELL_SHADOW_BOLT));
events.ScheduleEvent(EVENT_BOLT, 1000);
return;
case EVENT_HARVEST: