diff options
| author | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-06-02 23:16:18 +0200 | 
|---|---|---|
| committer | Vincent-Michael <Vincent_Michael@gmx.de> | 2013-06-02 23:16:18 +0200 | 
| commit | 216827201ec604a25ea05d12e609f1f136e12b13 (patch) | |
| tree | 890ba5aecc706015a07e5bc850c69ce49fd645a9 /src | |
| parent | 3e108f068026e6bc54828c2f829c728928c349c7 (diff) | |
Script/Ulduar: Fix try for Assembly Of Iron achievement "I choose you, xxx"
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp | 48 | 
1 files changed, 43 insertions, 5 deletions
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp index 6ad70d38635..b3f5cc38c9f 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_assembly_of_iron.cpp @@ -122,9 +122,11 @@ enum AssemblyYells      EMOTE_BRUNDIR_OVERLOAD                      = 7  }; -enum AssemblyNPCs +enum Misc  { -    NPC_WORLD_TRIGGER                            = 22515 +    NPC_WORLD_TRIGGER                            = 22515, + +    DATA_PHASE_3                                 = 1  };  #define FLOOR_Z                                  427.28f @@ -158,6 +160,14 @@ class boss_steelbreaker : public CreatureScript                  events.ScheduleEvent(EVENT_FUSION_PUNCH, 15000);              } +            uint32 GetData(uint32 type) const +            { +                if (type == DATA_PHASE_3) +                    return (phase >= 3) ? 1 : 0; + +                return 0; +            } +              void DoAction(int32 action)              {                  switch (action) @@ -184,7 +194,7 @@ class boss_steelbreaker : public CreatureScript                  if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)                  { -                    DoCastAOE(SPELL_KILL_CREDIT); +                    DoCastAOE(SPELL_KILL_CREDIT, true);                      Talk(SAY_STEELBREAKER_ENCOUNTER_DEFEATED);                  }                  else @@ -287,6 +297,14 @@ class boss_runemaster_molgeim : public CreatureScript                  events.ScheduleEvent(EVENT_RUNE_OF_POWER, 20000);              } +            uint32 GetData(uint32 type) const +            { +                if (type == DATA_PHASE_3) +                    return (phase >= 3) ? 1 : 0; + +                return 0; +            } +              void DoAction(int32 action)              {                  switch (action) @@ -313,7 +331,7 @@ class boss_runemaster_molgeim : public CreatureScript                  if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)                  { -                    DoCastAOE(SPELL_KILL_CREDIT); +                    DoCastAOE(SPELL_KILL_CREDIT, true);                      Talk(SAY_MOLGEIM_ENCOUNTER_DEFEATED);                  }                  else @@ -429,6 +447,14 @@ class boss_stormcaller_brundir : public CreatureScript                  me->ApplySpellImmune(0, IMMUNITY_MECHANIC, MECHANIC_STUN, false);       // Reset immumity, Brundir should be stunnable by default              } +            uint32 GetData(uint32 type) const +            { +                if (type == DATA_PHASE_3) +                    return (phase >= 3) ? 1 : 0; + +                return 0; +            } +              void EnterCombat(Unit* /*who*/)              {                  _EnterCombat(); @@ -470,7 +496,7 @@ class boss_stormcaller_brundir : public CreatureScript                  if (instance->GetBossState(BOSS_ASSEMBLY_OF_IRON) == DONE)                  { -                    DoCastAOE(SPELL_KILL_CREDIT); +                    DoCastAOE(SPELL_KILL_CREDIT, true);                      Talk(SAY_BRUNDIR_ENCOUNTER_DEFEATED);                  }                  else @@ -697,6 +723,17 @@ class spell_assembly_rune_of_summoning : public SpellScriptLoader          }  }; +class achievement_assembly_i_choose_you : public AchievementCriteriaScript +{ +    public: +        achievement_assembly_i_choose_you() : AchievementCriteriaScript("achievement_assembly_i_choose_you") { } + +        bool OnCheck(Player* /*player*/, Unit* target) +        { +            return target && target->GetAI()->GetData(DATA_PHASE_3); +        } +}; +  void AddSC_boss_assembly_of_iron()  {      new boss_steelbreaker(); @@ -705,4 +742,5 @@ void AddSC_boss_assembly_of_iron()      new spell_shield_of_runes();      new spell_assembly_meltdown();      new spell_assembly_rune_of_summoning(); +    new achievement_assembly_i_choose_you();  }  | 
