diff options
3 files changed, 17 insertions, 8 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp index 33f265419e6..86ea898e6ee 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp @@ -373,7 +373,7 @@ class boss_freya : public CreatureScript { me->AddAura(SPELL_DRAINED_OF_POWER, Elder[n]); Elder[n]->CastSpell(me, SPELL_IRONBRANCH_ESSENCE, true); - Elder[n]->RemoveLootMode(LOOT_MODE_DEFAULT); + Elder[n]->RemoveLootMode(LOOT_MODE_DEFAULT); //! Why? Elder[n]->AI()->AttackStart(who); Elder[n]->AddThreat(who, 250.0f); Elder[n]->SetInCombatWith(who); @@ -627,6 +627,21 @@ class boss_freya : public CreatureScript waveCount++; } + void JustDied(Unit* who) + { + //! Freya's chest is dynamically spawned on death by different spells. + const uint32 summonSpell[2][4] = + { + /* 0Elder, 1Elder, 2Elder, 3Elder */ + /* 10N */ {62950, 62953, 62955, 62957}, + /* 25N */ {62952, 62954, 62956, 62958} + }; + + who->CastSpell((Unit*)NULL, summonSpell[me->GetMap()->GetDifficulty()][elderCount], true); + + _JustDied(); + } + void JustSummoned(Creature* summoned) { switch (summoned->GetEntry()) diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp index 50c6caffa04..14ea220d11c 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp @@ -423,6 +423,7 @@ class instance_ulduar : public InstanceMapScript case BOSS_XT002: case BOSS_AURIAYA: case BOSS_MIMIRON: + case BOSS_FREYA: break; case BOSS_ASSEMBLY_OF_IRON: if (state == DONE) @@ -466,11 +467,6 @@ class instance_ulduar : public InstanceMapScript if (GameObject* gameObject = instance->GetGameObject(ThorimChestGUID)) gameObject->SetRespawnTime(gameObject->GetRespawnDelay()); break; - case BOSS_FREYA: - if (state == DONE) - if (GameObject* gameObject = instance->GetGameObject(FreyaChestGUID)) - gameObject->SetRespawnTime(gameObject->GetRespawnDelay()); - break; } return true; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h index 4eaed6c9fad..f11212d535e 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h @@ -129,8 +129,6 @@ enum UlduarGameObjects GO_HODIR_RARE_CACHE_OF_WINTER_HERO = 194201, GO_HODIR_CHEST_HERO = 194308, GO_HODIR_CHEST = 194307, - GO_FREYA_CHEST_HERO = 194325, - GO_FREYA_CHEST = 194324, GO_LEVIATHAN_DOOR = 194905, GO_LEVIATHAN_GATE = 194630, GO_XT_002_DOOR = 194631, |