diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 24 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h | 5 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index a1ac2c8dfbf..5e8273dce67 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -78,6 +78,7 @@ class instance_ulduar : public InstanceMapScript illusion = 0; keepersCount = 0; conSpeedAtory = false; + lumberjacked = false; Unbroken = true; IsDriveMeCrazyEligible = true; _algalonSummoned = false; @@ -102,6 +103,7 @@ class instance_ulduar : public InstanceMapScript ObjectGuid ThorimGUID; ObjectGuid FreyaGUID; ObjectGuid ElderGUIDs[3]; + ObjectGuid FreyaAchieveTriggerGUID; ObjectGuid MimironGUID; ObjectGuid MimironVehicleGUIDs[3]; ObjectGuid MimironComputerGUID; @@ -141,6 +143,7 @@ class instance_ulduar : public InstanceMapScript uint8 illusion; uint8 keepersCount; bool conSpeedAtory; + bool lumberjacked; bool Unbroken; bool IsDriveMeCrazyEligible; @@ -321,7 +324,10 @@ class instance_ulduar : public InstanceMapScript ElderGUIDs[2] = creature->GetGUID(); if (GetBossState(BOSS_FREYA) == DONE) creature->DespawnOrUnsummon(); - break; + break; + case NPC_FREYA_ACHIEVE_TRIGGER: + FreyaAchieveTriggerGUID = creature->GetGUID(); + break; // Mimiron case NPC_MIMIRON: @@ -606,6 +612,15 @@ class instance_ulduar : public InstanceMapScript conSpeedAtory = true; } break; + case NPC_IRONBRANCH: + case NPC_STONEBARK: + case NPC_BRIGHTLEAF: + if (!lumberjacked) + { + DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, CRITERIA_LUMBERJACKED); + lumberjacked = true; + } + break; default: break; } @@ -669,6 +684,13 @@ class instance_ulduar : public InstanceMapScript if (state == DONE) instance->SummonCreature(NPC_FREYA_OBSERVATION_RING, ObservationRingKeepersPos[0]); break; + case BOSS_IRONBRANCH: + case BOSS_STONEBARK: + case BOSS_BRIGHTLEAF: + if (GetBossState(BOSS_BRIGHTLEAF) == DONE && GetBossState(BOSS_IRONBRANCH) == DONE && GetBossState(BOSS_STONEBARK) == DONE && GetBossState(BOSS_FREYA) != DONE) + if (Creature* trigger = instance->GetCreature(FreyaAchieveTriggerGUID)) + trigger->CastSpell(trigger, SPELL_LUMBERJACKED_CREDIT, true); + break; case BOSS_KOLOGARN: if (state == DONE) { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index 9b95d7cf7b8..82c4ef140f1 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -129,6 +129,9 @@ enum UlduarNPCs NPC_NATURES_BLADE = 33527, NPC_GUARDIAN_OF_LIFE = 33528, + // Freya Achievement Trigger + NPC_FREYA_ACHIEVE_TRIGGER = 33406, + // Yogg-Saron NPC_SARA = 33134, NPC_GUARDIAN_OF_YOGG_SARON = 33136, @@ -273,6 +276,7 @@ enum LeviathanActions enum UlduarAchievementCriteriaIds { CRITERIA_CON_SPEED_ATORY = 21597, + CRITERIA_LUMBERJACKED = 21686, CRITERIA_DISARMED = 21687, CRITERIA_WAITS_DREAMING_STORMWIND_25 = 10321, CRITERIA_WAITS_DREAMING_CHAMBER_25 = 10322, @@ -362,6 +366,7 @@ enum UlduarAchievementData DATA_UNBROKEN = 29052906, // 2905, 2906 are achievement IDs, MAX_HERALD_ARMOR_ITEMLEVEL = 226, MAX_HERALD_WEAPON_ITEMLEVEL = 232, + SPELL_LUMBERJACKED_CREDIT = 65296 }; enum UlduarEvents |