Naxxramas: Gothik the Harvester: Cleanup + timer correction + add heroic info for waves + open middle door in case of a wipe

--HG--
branch : trunk
This commit is contained in:
tartalo
2009-10-19 21:55:53 +02:00
parent 2fc8b2134f
commit d072fada10

View File

@@ -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: