aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp72
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/def_karazhan.h2
-rw-r--r--src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp2
3 files changed, 37 insertions, 39 deletions
diff --git a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
index 72fd6017482..ab2f4807551 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/boss_nightbane.cpp
@@ -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
diff --git a/src/bindings/scripts/scripts/zone/karazhan/def_karazhan.h b/src/bindings/scripts/scripts/zone/karazhan/def_karazhan.h
index 78c1c488637..29660dd6426 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/def_karazhan.h
+++ b/src/bindings/scripts/scripts/zone/karazhan/def_karazhan.h
@@ -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
diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
index 9fea30e1c93..1d2760be73c 100644
--- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
+++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp
@@ -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;