diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp | 19 | ||||
-rw-r--r-- | src/game/InstanceData.h | 1 |
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); } |