aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMachiavelli <machiavelli.trinity@gmail.com>2011-10-08 12:55:54 +0200
committerMachiavelli <machiavelli.trinity@gmail.com>2011-10-08 13:17:40 +0200
commit7b0bff3f7bce302a69ed91834b0f9d9517180d28 (patch)
tree3b006918e8374b3601db29c0b6fc28dca9842cd4 /src
parent35126d3c5ee6561856281bd64be3106b35d4df56 (diff)
Scripts/Ulduar/Freya: Fix chest spawn on death. Note that this needs DB data, both for loot and possibly gobject templates.
Closes #2220 Ref #1928 Ref #1878
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp17
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/instance_ulduar.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/ulduar/ulduar.h2
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,