aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp19
-rw-r--r--src/game/InstanceData.h1
2 files changed, 20 insertions, 0 deletions
diff --git a/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp b/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp
index 1215604a3f6..b00a64af78e 100644
--- a/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp
+++ b/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp
@@ -183,6 +183,20 @@ struct TRINITY_DLL_DECL instance_naxxramas : public InstanceData
}
};
+bool AreaTrigger_at_naxxramas_frostwyrm_wing(Player *player, AreaTriggerEntry *at)
+{
+ if(player->isGameMaster())
+ return false;
+
+ InstanceData *data = player->GetInstanceData();
+ if(data)
+ for(uint32 i = BOSS_ANUBREKHAN; i < BOSS_SAPPHIRON; ++i)
+ if(data->GetBossState(i) != DONE)
+ return true;
+
+ return false;
+}
+
InstanceData* GetInstanceData_instance_naxxramas(Map* map)
{
return new instance_naxxramas(map);
@@ -195,4 +209,9 @@ void AddSC_instance_naxxramas()
newscript->Name = "instance_naxxramas";
newscript->GetInstanceData = &GetInstanceData_instance_naxxramas;
newscript->RegisterSelf();
+
+ newscript = new Script;
+ newscript->Name = "at_naxxramas_frostwyrm_wing";
+ newscript->pAreaTrigger = &AreaTrigger_at_naxxramas_frostwyrm_wing;
+ newscript->RegisterSelf();
}
diff --git a/src/game/InstanceData.h b/src/game/InstanceData.h
index fac766c761e..d06043ff07d 100644
--- a/src/game/InstanceData.h
+++ b/src/game/InstanceData.h
@@ -150,6 +150,7 @@ class TRINITY_DLL_SPEC InstanceData : public ZoneScript
void DoRespawnGameObject(uint64 uiGuid, uint32 uiTimeToDespawn = MINUTE);
virtual bool SetBossState(uint32 id, EncounterState state);
+ EncounterState GetBossState(uint32 id) const { return id < bosses.size() ? bosses[id].state : TO_BE_DECIDED; }
const BossBoundaryMap * GetBossBoundary(uint32 id) const { return id < bosses.size() ? &bosses[id].boundary : NULL; }
protected:
void SetBossNumber(uint32 number) { bosses.resize(number); }