*Implemented doors for nightbane event

--HG--
branch : trunk
This commit is contained in:
Blaymoira
2009-01-03 16:48:56 +01:00
parent ba74539ac4
commit 59f85167ab
3 changed files with 37 additions and 39 deletions
@@ -16,7 +16,7 @@
/* ScriptData
SDName: Boss_Nightbane
SD%Complete: 70
SD%Complete: 80
SDComment: SDComment: skelleton adds need 2 more, timers,
SDCategory: Karazhan
EndScriptData */
@@ -26,7 +26,7 @@ EndScriptData */
//phase 1
#define SPELL_BELLOWING_ROAR 39427
#define SPELL_CHARRED_EARTH 30129 //Also 30209 (Target Charred Earth) triggers this
#define SPELL_CHARRED_EARTH 30129
#define SPELL_DISTRACTING_ASH 30130
#define SPELL_SMOLDERING_BREATH 30210
#define SPELL_TAIL_SWEEP 25653
@@ -123,11 +123,10 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
m_creature->RemoveUnitMovementFlag(MOVEMENTFLAG_WALK_MODE);
m_creature->setActive(true);
if(pInstance)
pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
if(pInstance->GetData(DATA_NIGHTBANE_EVENT) == DONE)
m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
else
pInstance->SetData(DATA_NIGHTBANE_EVENT, NOT_STARTED);
HandleTerraceDoors(true);
@@ -143,10 +142,10 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
void HandleTerraceDoors(bool open)
{
//if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1)))
// Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
//if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2)))
// Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_1)))
Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
if(GameObject *Door = GameObject::GetGameObject((*m_creature),pInstance->GetData64(DATA_MASTERS_TERRACE_DOOR_2)))
Door->SetUInt32Value(GAMEOBJECT_STATE, open ? 0 : 1);
}
void Aggro(Unit *who)
@@ -306,40 +305,37 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
}
if (BellowingRoarTimer < diff)
{
DoCast(m_creature->getVictim(),SPELL_BELLOWING_ROAR);
BellowingRoarTimer = 30000+rand()%10000 ; //Timer
}else BellowingRoarTimer -= diff;
{
DoCast(m_creature->getVictim(),SPELL_BELLOWING_ROAR);
BellowingRoarTimer = 30000+rand()%10000 ; //Timer
}else BellowingRoarTimer -= diff;
if (SmolderingBreathTimer < diff)
{
DoCast(m_creature->getVictim(),SPELL_SMOLDERING_BREATH);
SmolderingBreathTimer = 20000;//timer
{
DoCast(m_creature->getVictim(),SPELL_SMOLDERING_BREATH);
SmolderingBreathTimer = 20000;//timer
}else SmolderingBreathTimer -= diff;
if (CharredEarthTimer < diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
DoCast(target,SPELL_CHARRED_EARTH);
CharredEarthTimer = 20000; //timer
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(target,SPELL_CHARRED_EARTH);
CharredEarthTimer = 20000; //timer
}else CharredEarthTimer -= diff;
if (TailSweepTimer < diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
if (!m_creature->HasInArc( M_PI, target))
DoCast(target,SPELL_TAIL_SWEEP);
TailSweepTimer = 15000;//timer
}else TailSweepTimer -= diff;
{
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
if (!m_creature->HasInArc( M_PI, target))
DoCast(target,SPELL_TAIL_SWEEP);
TailSweepTimer = 15000;//timer
}else TailSweepTimer -= diff;
if (SearingCindersTimer < diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
DoCast(target,SPELL_SEARING_CINDERS);
SearingCindersTimer = 10000; //timer
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(target,SPELL_SEARING_CINDERS);
SearingCindersTimer = 10000; //timer
}else SearingCindersTimer -= diff;
uint32 Prozent;
@@ -379,9 +375,8 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (DistractingAshTimer < diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_RANDOM,0);
DoCast(target,SPELL_DISTRACTING_ASH);
if (Unit* target = SelectUnit(SELECT_TARGET_RANDOM, 0))
DoCast(target,SPELL_DISTRACTING_ASH);
DistractingAshTimer = 2000;//timer wrong
}else DistractingAshTimer -= diff;
}
@@ -397,10 +392,9 @@ struct TRINITY_DLL_DECL boss_nightbaneAI : public ScriptedAI
if (FireballBarrageTimer < diff)
{
Unit* target = NULL;
target = SelectUnit(SELECT_TARGET_FARTHEST,0);
DoCast(target,SPELL_FIREBALL_BARRAGE);
FireballBarrageTimer = 20000; //Timer
if (Unit* target = SelectUnit(SELECT_TARGET_FARTHEST, 0))
DoCast(target,SPELL_FIREBALL_BARRAGE);
FireballBarrageTimer = 20000; //Timer
}else FireballBarrageTimer -= diff;
if (FlyTimer < diff) //landing
@@ -31,6 +31,8 @@
#define DATA_GAMEOBJECT_GAME_DOOR 24
#define DATA_GAMEOBJECT_GAME_EXIT_DOOR 25
#define DATA_IMAGE_OF_MEDIVH 26
#define DATA_MASTERS_TERRACE_DOOR_1 27
#define DATA_MASTERS_TERRACE_DOOR_2 28
// Opera Performances
#define EVENT_OZ 1
@@ -149,6 +149,8 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance
case DATA_GAMEOBJECT_GAME_DOOR: return GamesmansDoor;
case DATA_GAMEOBJECT_GAME_EXIT_DOOR: return GamesmansExitDoor;
case DATA_GAMEOBJECT_NETHER_DOOR: return NetherspaceDoor;
case DATA_MASTERS_TERRACE_DOOR_1: return MastersTerraceDoor[0];
case DATA_MASTERS_TERRACE_DOOR_2: return MastersTerraceDoor[1];
}
return 0;