diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-27 05:16:23 +0200 |
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2014-09-27 05:23:46 +0200 |
| commit | da91ae1f225b711c916b180675886b31b2d2ebf4 (patch) | |
| tree | 2a0cbd5fed64c19a0166874d31ae960f0920df89 /src/server/scripts/Northrend | |
| parent | eb4ff759ecb844aceb0017c16b2732423f199b84 (diff) | |
| parent | eccc6e97ead56d79cf58904a9276c73feea028ee (diff) | |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/scripts/EasternKingdoms/ZulAman/instance_zulaman.cpp
src/server/scripts/EasternKingdoms/zone_isle_of_queldanas.cpp
src/server/scripts/Spells/spell_dk.cpp
src/server/scripts/Spells/spell_druid.cpp
src/server/scripts/Spells/spell_shaman.cpp
src/server/scripts/Spells/spell_warrior.cpp
Diffstat (limited to 'src/server/scripts/Northrend')
26 files changed, 239 insertions, 133 deletions
diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp index 79449723a16..fdb5a3a5fe7 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_elder_nadox.cpp @@ -238,16 +238,17 @@ class spell_ahn_kahet_swarm : public SpellScriptLoader { PrepareSpellScript(spell_ahn_kahet_swarm_SpellScript); - bool Validate(SpellInfo const* /*spellInfo*/) override + public: + spell_ahn_kahet_swarm_SpellScript() { - if (!sSpellMgr->GetSpellInfo(SPELL_SWARM_BUFF)) - return false; - return true; + _targetCount = 0; } - bool Load() override + private: + bool Validate(SpellInfo const* /*spellInfo*/) override { - _targetCount = 0; + if (!sSpellMgr->GetSpellInfo(SPELL_SWARM_BUFF)) + return false; return true; } @@ -278,7 +279,6 @@ class spell_ahn_kahet_swarm : public SpellScriptLoader OnEffectHit += SpellEffectFn(spell_ahn_kahet_swarm_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); } - private: uint32 _targetCount; }; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp index 9f55ca8dc17..aa60e5c486d 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/instance_obsidian_sanctum.cpp @@ -30,9 +30,7 @@ public: struct instance_obsidian_sanctum_InstanceMapScript : public InstanceScript { - instance_obsidian_sanctum_InstanceMapScript(Map* map) : InstanceScript(map) { } - - void Initialize() override + instance_obsidian_sanctum_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp index 94bf20bc41f..7d3092be115 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/instance_trial_of_the_champion.cpp @@ -41,7 +41,17 @@ public: struct instance_trial_of_the_champion_InstanceMapScript : public InstanceScript { - instance_trial_of_the_champion_InstanceMapScript(Map* map) : InstanceScript(map) { } + instance_trial_of_the_champion_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + uiMovementDone = 0; + uiGrandChampionsDeaths = 0; + uiArgentSoldierDeaths = 0; + + bDone = false; + + memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); + } uint32 m_auiEncounter[MAX_ENCOUNTER]; @@ -66,18 +76,6 @@ public: bool bDone; - void Initialize() override - { - SetHeaders(DataHeader); - uiMovementDone = 0; - uiGrandChampionsDeaths = 0; - uiArgentSoldierDeaths = 0; - - bDone = false; - - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - } - bool IsEncounterInProgress() const override { for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index a645f3ca666..63b47da0807 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -703,6 +703,14 @@ class spell_powering_up : public SpellScriptLoader { PrepareSpellScript(spell_powering_up_SpellScript); + public: + spell_powering_up_SpellScript() + { + spellId = 0; + poweringUp = 0; + } + + private: uint32 spellId; uint32 poweringUp; @@ -760,6 +768,13 @@ class spell_valkyr_essences : public SpellScriptLoader { PrepareAuraScript(spell_valkyr_essences_AuraScript); + public: + spell_valkyr_essences_AuraScript() + { + spellId = 0; + } + + private: uint32 spellId; bool Load() override diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 30d831da30c..79fb154d6e3 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -29,9 +29,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript struct instance_trial_of_the_crusader_InstanceMapScript : public InstanceScript { - instance_trial_of_the_crusader_InstanceMapScript(Map* map) : InstanceScript(map) { } - - void Initialize() override + instance_trial_of_the_crusader_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); SetBossNumber(MAX_ENCOUNTERS); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 3ac5ec3070a..3ee7c9ce650 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -256,12 +256,13 @@ class spell_garfrost_permafrost : public SpellScriptLoader { PrepareSpellScript(spell_garfrost_permafrost_SpellScript); - bool Load() override + public: + spell_garfrost_permafrost_SpellScript() { prevented = false; - return true; } + private: void PreventHitByLoS() { if (Unit* target = GetHitUnit()) diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index c2b1b91a200..c8894179ca3 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -421,6 +421,14 @@ class spell_tyrannus_overlord_brand : public SpellScriptLoader { PrepareAuraScript(spell_tyrannus_overlord_brand_AuraScript); + public: + spell_tyrannus_overlord_brand_AuraScript() + { + oldAI = nullptr; + oldAIState = false; + } + + private: bool Load() override { return GetCaster() && GetCaster()->GetEntry() == NPC_TYRANNUS; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp index 15cf0d31af9..f3fae3b14a0 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp @@ -201,7 +201,8 @@ enum Actions enum Misc { - DATA_MADE_A_MESS = 45374613 // 4537, 4613 are achievement IDs + DATA_MADE_A_MESS = 45374613, // 4537, 4613 are achievement IDs + FACTION_SCOURGE = 974, }; enum MovePoints @@ -460,6 +461,8 @@ class boss_deathbringer_saurfang : public CreatureScript switch (eventId) { case EVENT_INTRO_ALLIANCE_2: + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + me->setFaction(FACTION_SCOURGE); Talk(SAY_INTRO_ALLIANCE_2); break; case EVENT_INTRO_ALLIANCE_3: @@ -471,6 +474,8 @@ class boss_deathbringer_saurfang : public CreatureScript DoCast(me, SPELL_GRIP_OF_AGONY); break; case EVENT_INTRO_HORDE_2: + me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); + me->setFaction(FACTION_SCOURGE); Talk(SAY_INTRO_HORDE_2); break; case EVENT_INTRO_HORDE_4: @@ -544,7 +549,6 @@ class boss_deathbringer_saurfang : public CreatureScript case PHASE_INTRO_A: case PHASE_INTRO_H: { - me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); // controls what events will execute events.SetPhase(uint32(action)); @@ -1215,13 +1219,13 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader { PrepareSpellScript(spell_deathbringer_blood_nova_targeting_SpellScript); - bool Load() override + public: + spell_deathbringer_blood_nova_targeting_SpellScript() { - // initialize variable - target = NULL; - return true; + target = nullptr; } + private: void FilterTargetsInitial(std::list<WorldObject*>& targets) { if (targets.empty()) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp index 74a09887dd2..43490de493c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp @@ -1922,6 +1922,13 @@ class spell_igb_on_gunship_deck : public SpellScriptLoader { PrepareAuraScript(spell_igb_on_gunship_deck_AuraScript); + public: + spell_igb_on_gunship_deck_AuraScript() + { + _teamInInstance = 0; + } + + private: bool Load() override { if (InstanceScript* instance = GetOwner()->GetInstanceScript()) @@ -2031,6 +2038,13 @@ class spell_igb_incinerating_blast : public SpellScriptLoader { PrepareSpellScript(spell_igb_incinerating_blast_SpellScript); + public: + spell_igb_incinerating_blast_SpellScript() + { + _energyLeft = 0; + } + + private: void StoreEnergy() { _energyLeft = GetCaster()->GetPower(POWER_ENERGY) - 10; @@ -2370,9 +2384,15 @@ class spell_igb_check_for_players : public SpellScriptLoader { PrepareSpellScript(spell_igb_check_for_players_SpellScript); - bool Load() override + public: + spell_igb_check_for_players_SpellScript() { _playerCount = 0; + } + + private: + bool Load() override + { return GetCaster()->GetTypeId() == TYPEID_UNIT; } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp index 7ab8c956757..2e360e19b75 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp @@ -698,12 +698,13 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader { PrepareSpellScript(spell_marrowgar_bone_slice_SpellScript); - bool Load() override + public: + spell_marrowgar_bone_slice_SpellScript() { _targetCount = 0; - return true; } + private: void ClearSpikeImmunities() { GetCaster()->GetAI()->DoAction(ACTION_CLEAR_SPIKE_IMMUNITIES); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index 2e353e5f9dc..8f5ca0b4322 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -858,6 +858,13 @@ class spell_putricide_ooze_channel : public SpellScriptLoader { PrepareSpellScript(spell_putricide_ooze_channel_SpellScript); + public: + spell_putricide_ooze_channel_SpellScript() + { + _target = nullptr; + } + + private: bool Validate(SpellInfo const* spell) override { if (!spell->ExcludeTargetAuraSpell) @@ -871,7 +878,6 @@ class spell_putricide_ooze_channel : public SpellScriptLoader // this will let use safely use ToCreature() casts in entire script bool Load() override { - _target = NULL; return GetCaster()->GetTypeId() == TYPEID_UNIT; } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp index 205b90fa159..5e55256ae59 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp @@ -507,12 +507,13 @@ class spell_rotface_mutated_infection : public SpellScriptLoader { PrepareSpellScript(spell_rotface_mutated_infection_SpellScript); - bool Load() override + public: + spell_rotface_mutated_infection_SpellScript() { - _target = NULL; - return true; + _target = nullptr; } + private: void FilterTargets(std::list<WorldObject*>& targets) { // remove targets with this aura already diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index 551ec9ad0a2..9324379e9d6 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -1044,10 +1044,15 @@ class spell_sindragosa_s_fury : public SpellScriptLoader { PrepareSpellScript(spell_sindragosa_s_fury_SpellScript); - bool Load() override + public: + spell_sindragosa_s_fury_SpellScript() { _targetCount = 0; + } + private: + bool Load() override + { // This script should execute only in Icecrown Citadel if (InstanceMap* instance = GetCaster()->GetMap()->ToInstanceMap()) if (instance->GetInstanceScript()) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index e67edc473f4..03c26ba2e09 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -2080,12 +2080,13 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader { PrepareSpellScript(spell_the_lich_king_necrotic_plague_SpellScript); - bool Load() override + public: + spell_the_lich_king_necrotic_plague_SpellScript() { _hadAura = false; - return true; } + private: void SelectTarget(std::list<Unit*>& targets) { targets.sort(Trinity::ObjectDistanceOrderPred(GetCaster())); @@ -2120,12 +2121,13 @@ class spell_the_lich_king_necrotic_plague_jump : public SpellScriptLoader { PrepareAuraScript(spell_the_lich_king_necrotic_plague_AuraScript); - bool Load() override + public: + spell_the_lich_king_necrotic_plague_AuraScript() { _lastAmount = 0; - return true; } + private: void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { if (Unit* caster = GetCaster()) @@ -2497,16 +2499,17 @@ class spell_the_lich_king_valkyr_target_search : public SpellScriptLoader { PrepareSpellScript(spell_the_lich_king_valkyr_target_search_SpellScript); - bool Validate(SpellInfo const* /*spell*/) override + public: + spell_the_lich_king_valkyr_target_search_SpellScript() { - if (!sSpellMgr->GetSpellInfo(SPELL_ICE_BURST)) - return false; - return true; + _target = nullptr; } - bool Load() override + private: + bool Validate(SpellInfo const* /*spell*/) override { - _target = NULL; + if (!sSpellMgr->GetSpellInfo(SPELL_ICE_BURST)) + return false; return true; } @@ -2622,6 +2625,13 @@ class spell_the_lich_king_vile_spirits : public SpellScriptLoader { PrepareAuraScript(spell_the_lich_king_vile_spirits_AuraScript); + public: + spell_the_lich_king_vile_spirits_AuraScript() + { + _is25Man = false; + } + + private: bool Load() override { _is25Man = GetUnitOwner()->GetMap()->Is25ManRaid(); @@ -2684,9 +2694,15 @@ class spell_the_lich_king_vile_spirit_move_target_search : public SpellScriptLoa { PrepareSpellScript(spell_the_lich_king_vile_spirit_move_target_search_SpellScript); + public: + spell_the_lich_king_vile_spirit_move_target_search_SpellScript() + { + _target = nullptr; + } + + private: bool Load() override { - _target = NULL; return GetCaster()->GetTypeId() == TYPEID_UNIT; } @@ -2873,6 +2889,13 @@ class spell_the_lich_king_restore_soul : public SpellScriptLoader { PrepareSpellScript(spell_the_lich_king_restore_soul_SpellScript); + public: + spell_the_lich_king_restore_soul_SpellScript() + { + _instance = nullptr; + } + + private: bool Load() override { _instance = GetCaster()->GetInstanceScript(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp index ec7a937e725..49e24f54b02 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_valithria_dreamwalker.cpp @@ -1158,6 +1158,13 @@ class spell_dreamwalker_decay_periodic_timer : public SpellScriptLoader { PrepareAuraScript(spell_dreamwalker_decay_periodic_timer_AuraScript); + public: + spell_dreamwalker_decay_periodic_timer_AuraScript() + { + _decayRate = 0; + } + + private: bool Load() override { _decayRate = GetId() != SPELL_TIMER_BLAZING_SKELETON ? 1000 : 5000; @@ -1385,6 +1392,13 @@ class spell_dreamwalker_nightmare_cloud : public SpellScriptLoader { PrepareAuraScript(spell_dreamwalker_nightmare_cloud_AuraScript); + public: + spell_dreamwalker_nightmare_cloud_AuraScript() + { + _instance = nullptr; + } + + private: bool Load() override { _instance = GetOwner()->GetInstanceScript(); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp index c2007730cdc..22fa44541a1 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.cpp @@ -1880,12 +1880,13 @@ class spell_frost_giant_death_plague : public SpellScriptLoader { PrepareSpellScript(spell_frost_giant_death_plague_SpellScript); - bool Load() override + public: + spell_frost_giant_death_plague_SpellScript() { _failed = false; - return true; } + private: // First effect void CountTargets(std::list<WorldObject*>& targets) { diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 4c45be9d24d..b9fa6617855 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -2459,6 +2459,13 @@ class spell_alexstrasza_gift_beam_visual : public SpellScriptLoader { PrepareAuraScript(spell_alexstrasza_gift_beam_visual_AuraScript); + public: + spell_alexstrasza_gift_beam_visual_AuraScript() + { + _alexstraszaGift = nullptr; + } + + private: bool Load() override { return GetCaster()->GetTypeId() == TYPEID_UNIT; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp index 91a40d43f12..b7f2e23616b 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/instance_nexus.cpp @@ -40,7 +40,11 @@ public: struct instance_nexus_InstanceMapScript : public InstanceScript { - instance_nexus_InstanceMapScript(Map* map) : InstanceScript(map) { } + instance_nexus_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); + } uint32 m_auiEncounter[NUMBER_OF_ENCOUNTERS]; @@ -53,12 +57,6 @@ public: std::string strInstData; - void Initialize() override - { - SetHeaders(DataHeader); - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - } - void OnCreatureCreate(Creature* creature) override { Map::PlayerList const &players = instance->GetPlayers(); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp index bd5b61e227f..261a6c96f77 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_algalon_the_observer.cpp @@ -1206,9 +1206,15 @@ class spell_algalon_big_bang : public SpellScriptLoader { PrepareSpellScript(spell_algalon_big_bang_SpellScript); - bool Load() override + public: + spell_algalon_big_bang_SpellScript() { _targetCount = 0; + } + + private: + bool Load() override + { return GetCaster()->GetTypeId() == TYPEID_UNIT && GetCaster()->IsAIEnabled; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp index ec42ba82f36..40c189a8da2 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp @@ -1688,12 +1688,13 @@ class spell_pursue : public SpellScriptLoader { PrepareSpellScript(spell_pursue_SpellScript); - bool Load() override + public: + spell_pursue_SpellScript() { - _target = NULL; - return true; + _target = nullptr; } + private: void FilterTargets(std::list<WorldObject*>& targets) { targets.remove_if(FlameLeviathanPursuedTargetSelector(GetCaster())); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index 880eeba206b..6156d423b89 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -1748,16 +1748,17 @@ class spell_mimiron_fire_search : public SpellScriptLoader { PrepareSpellScript(spell_mimiron_fire_search_SpellScript); - bool Validate(SpellInfo const* /*spell*/) override + public: + spell_mimiron_fire_search_SpellScript() { - if (!sSpellMgr->GetSpellInfo(SPELL_WATER_SPRAY)) - return false; - return true; + _noTarget = false; } - bool Load() override + private: + bool Validate(SpellInfo const* /*spell*/) override { - _noTarget = false; + if (!sSpellMgr->GetSpellInfo(SPELL_WATER_SPRAY)) + return false; return true; } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp index 016c0bff1e5..4f40abde5b6 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp @@ -60,7 +60,32 @@ class instance_ulduar : public InstanceMapScript struct instance_ulduar_InstanceMapScript : public InstanceScript { - instance_ulduar_InstanceMapScript(InstanceMap* map) : InstanceScript(map) { } + instance_ulduar_InstanceMapScript(InstanceMap* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + SetBossNumber(MAX_ENCOUNTER); + + LoadDoorData(doorData); + LoadMinionData(minionData); + + _algalonTimer = 61; + _maxArmorItemLevel = 0; + _maxWeaponItemLevel = 0; + TeamInInstance = 0; + HodirRareCacheData = 0; + ColossusData = 0; + elderCount = 0; + illusion = 0; + keepersCount = 0; + conSpeedAtory = false; + Unbroken = true; + IsDriveMeCrazyEligible = true; + _algalonSummoned = false; + _summonAlgalon = false; + + memset(_summonObservationRingKeeper, 0, sizeof(_summonObservationRingKeeper)); + memset(_summonYSKeeper, 0, sizeof(_summonYSKeeper)); + } // Creatures ObjectGuid LeviathanGUID; @@ -119,31 +144,6 @@ class instance_ulduar : public InstanceMapScript bool Unbroken; bool IsDriveMeCrazyEligible; - void Initialize() override - { - SetHeaders(DataHeader); - SetBossNumber(MAX_ENCOUNTER); - LoadDoorData(doorData); - LoadMinionData(minionData); - _algalonTimer = 61; - _maxArmorItemLevel = 0; - _maxWeaponItemLevel = 0; - TeamInInstance = 0; - HodirRareCacheData = 0; - ColossusData = 0; - elderCount = 0; - illusion = 0; - keepersCount = 0; - conSpeedAtory = false; - Unbroken = true; - IsDriveMeCrazyEligible = true; - _algalonSummoned = false; - _summonAlgalon = false; - - memset(_summonObservationRingKeeper, 0, sizeof(_summonObservationRingKeeper)); - memset(_summonYSKeeper, 0, sizeof(_summonYSKeeper)); - } - void FillInitialWorldStates(WorldPacket& packet) override { packet << uint32(WORLD_STATE_ALGALON_TIMER_ENABLED) << uint32(_algalonTimer && _algalonTimer <= 60); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index c4312e08704..5b0e1f31bd7 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -204,7 +204,7 @@ public: void DamageTaken(Unit* /*attacker*/, uint32& damage) override { - if (me->HealthBelowPctDamaged(100 - HealthAmountMultipler * HealthAmountModifier, damage)) + if (me->HealthBelowPctDamaged(100 - HealthAmountMultipler * HealthAmountModifier, damage) && !(damage >= me->GetHealth())) { uint8 Order = HealthAmountModifier - 1; ++HealthAmountModifier; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp index b6c836eb0cd..151e199b749 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp @@ -225,12 +225,13 @@ class spell_koralon_meteor_fists_damage : public SpellScriptLoader { PrepareSpellScript(spell_koralon_meteor_fists_damage_SpellScript); - bool Load() override + public: + spell_koralon_meteor_fists_damage_SpellScript() { _chainTargets = 0; - return true; } + private: void FilterTargets(std::list<WorldObject*>& targets) { _chainTargets = targets.size(); diff --git a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp index cddf6ce3c25..1fdc98cd765 100644 --- a/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/instance_violet_hold.cpp @@ -112,7 +112,34 @@ public: struct instance_violet_hold_InstanceMapScript : public InstanceScript { - instance_violet_hold_InstanceMapScript(Map* map) : InstanceScript(map) { } + instance_violet_hold_InstanceMapScript(Map* map) : InstanceScript(map) + { + SetHeaders(DataHeader); + + uiRemoveNpc = 0; + + uiDoorIntegrity = 100; + + uiWaveCount = 0; + uiLocation = urand(0, 5); + uiFirstBoss = 0; + uiSecondBoss = 0; + uiCountErekemGuards = 0; + uiCountActivationCrystals = 0; + uiCyanigosaEventPhase = 1; + + uiActivationTimer = 5000; + uiDoorSpellTimer = 2000; + uiCyanigosaEventTimer = 3 * IN_MILLISECONDS; + + bActive = false; + bIsDoorSpellCast = false; + bCrystalActivated = false; + defenseless = true; + uiMainEventPhase = NOT_STARTED; + + memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); + } ObjectGuid uiMoragg; ObjectGuid uiErekem; @@ -168,35 +195,6 @@ public: std::string str_data; - void Initialize() override - { - SetHeaders(DataHeader); - - uiRemoveNpc = 0; - - uiDoorIntegrity = 100; - - uiWaveCount = 0; - uiLocation = urand(0, 5); - uiFirstBoss = 0; - uiSecondBoss = 0; - uiCountErekemGuards = 0; - uiCountActivationCrystals = 0; - uiCyanigosaEventPhase = 1; - - uiActivationTimer = 5000; - uiDoorSpellTimer = 2000; - uiCyanigosaEventTimer = 3*IN_MILLISECONDS; - - bActive = false; - bIsDoorSpellCast = false; - bCrystalActivated = false; - defenseless = true; - uiMainEventPhase = NOT_STARTED; - - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - } - bool IsEncounterInProgress() const override { for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) diff --git a/src/server/scripts/Northrend/zone_storm_peaks.cpp b/src/server/scripts/Northrend/zone_storm_peaks.cpp index e4cff7323b1..ec65aa26f17 100644 --- a/src/server/scripts/Northrend/zone_storm_peaks.cpp +++ b/src/server/scripts/Northrend/zone_storm_peaks.cpp @@ -812,12 +812,13 @@ class spell_close_rift : public SpellScriptLoader { PrepareAuraScript(spell_close_rift_AuraScript); - bool Load() override + public: + spell_close_rift_AuraScript() { _counter = 0; - return true; } + private: bool Validate(SpellInfo const* /*spell*/) override { return sSpellMgr->GetSpellInfo(SPELL_DESPAWN_RIFT) != nullptr; |
