diff options
author | treak <goodfeelingzzz@gmail.com> | 2014-11-08 19:53:11 +0000 |
---|---|---|
committer | DDuarte <dnpd.dd@gmail.com> | 2014-11-08 19:53:11 +0000 |
commit | aa5a002180747aa7a47308b3e21f6f21cde461f1 (patch) | |
tree | 9b38d851e19d3a7f28353b26845b3a15bfdf907a /src | |
parent | f330b70eb5579b032140d926d48d7f4fbfac41be (diff) |
Scripts/Ulduar: fix Achievs "Champion of Ulduar" and "Conqueror of Ulduar"
Signed-off-by: treak <goodfeelingzzz@gmail.com>
(cherry picked from commit 341e374c723f0dc78e755ca962d22d5d9a8f54d8)
Conflicts:
src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
Codestyle
(cherry picked from commit 3530b938a8d390d4d39ac840d5b0e7403b08dbc5)
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp | 58 | ||||
-rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h | 49 |
2 files changed, 97 insertions, 10 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 5e8273dce67..cdbbf755390 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -83,6 +83,7 @@ class instance_ulduar : public InstanceMapScript IsDriveMeCrazyEligible = true; _algalonSummoned = false; _summonAlgalon = false; + _CoUAchivePlayerDeathMask = 0; memset(_summonObservationRingKeeper, 0, sizeof(_summonObservationRingKeeper)); memset(_summonYSKeeper, 0, sizeof(_summonYSKeeper)); @@ -592,6 +593,19 @@ class instance_ulduar : public InstanceMapScript void OnUnitDeath(Unit* unit) override { + // Champion/Conqueror of Ulduar + if (unit->GetTypeId() == TYPEID_PLAYER) + { + for (uint8 i = 0; i < BOSS_ALGALON; i++) + { + if (GetBossState(i) == IN_PROGRESS) + { + _CoUAchivePlayerDeathMask |= (1 << i); + SaveToDB(); + } + } + } + Creature* creature = unit->ToCreature(); if (!creature) return; @@ -1007,6 +1021,45 @@ class instance_ulduar : public InstanceMapScript case CRITERIA_ALONE_IN_THE_DARKNESS_10: case CRITERIA_ALONE_IN_THE_DARKNESS_25: return keepersCount == 0; + case CRITERIA_C_O_U_LEVIATHAN_10: + case CRITERIA_C_O_U_LEVIATHAN_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_LEVIATHAN)) == 0; + case CRITERIA_C_O_U_IGNIS_10: + case CRITERIA_C_O_U_IGNIS_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_IGNIS)) == 0; + case CRITERIA_C_O_U_RAZORSCALE_10: + case CRITERIA_C_O_U_RAZORSCALE_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_RAZORSCALE)) == 0; + case CRITERIA_C_O_U_XT002_10: + case CRITERIA_C_O_U_XT002_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_XT002)) == 0; + case CRITERIA_C_O_U_IRON_COUNCIL_10: + case CRITERIA_C_O_U_IRON_COUNCIL_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_ASSEMBLY_OF_IRON)) == 0; + case CRITERIA_C_O_U_KOLOGARN_10: + case CRITERIA_C_O_U_KOLOGARN_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_KOLOGARN)) == 0; + case CRITERIA_C_O_U_AURIAYA_10: + case CRITERIA_C_O_U_AURIAYA_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_AURIAYA)) == 0; + case CRITERIA_C_O_U_HODIR_10: + case CRITERIA_C_O_U_HODIR_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_HODIR)) == 0; + case CRITERIA_C_O_U_THORIM_10: + case CRITERIA_C_O_U_THORIM_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_THORIM)) == 0; + case CRITERIA_C_O_U_FREYA_10: + case CRITERIA_C_O_U_FREYA_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_FREYA)) == 0; + case CRITERIA_C_O_U_MIMIRON_10: + case CRITERIA_C_O_U_MIMIRON_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_MIMIRON)) == 0; + case CRITERIA_C_O_U_VEZAX_10: + case CRITERIA_C_O_U_VEZAX_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_VEZAX)) == 0; + case CRITERIA_C_O_U_YOGG_SARON_10: + case CRITERIA_C_O_U_YOGG_SARON_25: + return (_CoUAchivePlayerDeathMask & (1 << BOSS_YOGG_SARON)) == 0; } return false; @@ -1018,6 +1071,8 @@ class instance_ulduar : public InstanceMapScript for (uint8 i = 0; i < 4; ++i) data << ' ' << uint32(!KeeperGUIDs[i].IsEmpty() ? 1 : 0); + + data << ' ' << _CoUAchivePlayerDeathMask; } void ReadSaveDataMore(std::istringstream& data) override @@ -1056,6 +1111,8 @@ class instance_ulduar : public InstanceMapScript _summonObservationRingKeeper[2] = true; if (GetBossState(BOSS_MIMIRON) == DONE && !_summonYSKeeper[3]) _summonObservationRingKeeper[3] = true; + + data >> _CoUAchivePlayerDeathMask; } void Update(uint32 diff) override @@ -1095,6 +1152,7 @@ class instance_ulduar : public InstanceMapScript bool _summonYSKeeper[4]; uint32 _maxArmorItemLevel; uint32 _maxWeaponItemLevel; + uint32 _CoUAchivePlayerDeathMask; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h index 82c4ef140f1..1b4330b0faf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/ulduar.h @@ -36,16 +36,16 @@ enum UlduarBosses BOSS_ASSEMBLY_OF_IRON = 4, BOSS_KOLOGARN = 5, BOSS_AURIAYA = 6, - BOSS_MIMIRON = 7, - BOSS_HODIR = 8, - BOSS_THORIM = 9, - BOSS_FREYA = 10, - BOSS_BRIGHTLEAF = 11, - BOSS_IRONBRANCH = 12, - BOSS_STONEBARK = 13, - BOSS_VEZAX = 14, - BOSS_YOGG_SARON = 15, - BOSS_ALGALON = 16, + BOSS_HODIR = 7, + BOSS_THORIM = 8, + BOSS_FREYA = 9, + BOSS_MIMIRON = 10, + BOSS_VEZAX = 11, + BOSS_YOGG_SARON = 12, + BOSS_ALGALON = 13, + BOSS_BRIGHTLEAF = 14, + BOSS_IRONBRANCH = 15, + BOSS_STONEBARK = 16, }; enum UlduarNPCs @@ -295,6 +295,35 @@ enum UlduarAchievementCriteriaIds CRITERIA_ALONE_IN_THE_DARKNESS_10 = 10412, CRITERIA_ALONE_IN_THE_DARKNESS_25 = 10417, CRITERIA_HERALD_OF_TITANS = 10678, + + // Champion of Ulduar + CRITERIA_C_O_U_LEVIATHAN_10 = 10042, + CRITERIA_C_O_U_IGNIS_10 = 10342, + CRITERIA_C_O_U_RAZORSCALE_10 = 10340, + CRITERIA_C_O_U_XT002_10 = 10341, + CRITERIA_C_O_U_IRON_COUNCIL_10 = 10598, + CRITERIA_C_O_U_KOLOGARN_10 = 10348, + CRITERIA_C_O_U_AURIAYA_10 = 10351, + CRITERIA_C_O_U_HODIR_10 = 10439, + CRITERIA_C_O_U_THORIM_10 = 10403, + CRITERIA_C_O_U_FREYA_10 = 10582, + CRITERIA_C_O_U_MIMIRON_10 = 10347, + CRITERIA_C_O_U_VEZAX_10 = 10349, + CRITERIA_C_O_U_YOGG_SARON_10 = 10350, + // Conqueror of Ulduar + CRITERIA_C_O_U_LEVIATHAN_25 = 10352, + CRITERIA_C_O_U_IGNIS_25 = 10355, + CRITERIA_C_O_U_RAZORSCALE_25 = 10353, + CRITERIA_C_O_U_XT002_25 = 10354, + CRITERIA_C_O_U_IRON_COUNCIL_25 = 10599, + CRITERIA_C_O_U_KOLOGARN_25 = 10357, + CRITERIA_C_O_U_AURIAYA_25 = 10363, + CRITERIA_C_O_U_HODIR_25 = 10719, + CRITERIA_C_O_U_THORIM_25 = 10404, + CRITERIA_C_O_U_FREYA_25 = 10583, + CRITERIA_C_O_U_MIMIRON_25 = 10361, + CRITERIA_C_O_U_VEZAX_25 = 10362, + CRITERIA_C_O_U_YOGG_SARON_25 = 10364 }; enum UlduarData |