Pelf

Pelf putricide 1 (lich king)

May 1st, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.69 KB | None | 0 0
  1. diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
  2. index a0fca52..a333cb7 100755
  3. --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
  4. +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
  5. @@ -1562,6 +1562,79 @@ class spell_stinky_precious_decimate : public SpellScriptLoader
  6.          }
  7.  };
  8.  
  9. +class ChokingGasTargetFilter
  10. +{
  11. +    public:
  12. +        explicit ChokingGasTargetFilter(Unit* caster) : _caster(caster) { }
  13. +
  14. +        bool operator()(Unit* unit)
  15. +        {
  16. +           if (unit->GetVehicleBase())
  17. +               if (unit->GetVehicleBase()->GetEntry() == NPC_MUTATED_ABOMINATION_10 ||
  18. +                   unit->GetVehicleBase()->GetEntry() == NPC_MUTATED_ABOMINATION_25)
  19. +                   return true;
  20. +           return false;
  21. +        }
  22. +
  23. +    private:
  24. +        Unit* _caster;
  25. +};
  26. +
  27. +class spell_putricide_choking_gas_damage : public SpellScriptLoader
  28. +{
  29. +    public:
  30. +        spell_putricide_choking_gas_damage() : SpellScriptLoader("spell_putricide_choking_gas_damage") { }
  31. +
  32. +        class spell_putricide_choking_gas_explosion_damage_SpellScript : public SpellScript
  33. +        {
  34. +            PrepareSpellScript(spell_putricide_choking_gas_explosion_damage_SpellScript);
  35. +
  36. +            void FilterTargets(std::list<Unit*>& unitList)
  37. +            {
  38. +                unitList.remove_if(ChokingGasTargetFilter(GetCaster()));
  39. +            }
  40. +
  41. +            void Register()
  42. +            {
  43. +                OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_choking_gas_explosion_damage_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
  44. +               OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_choking_gas_explosion_damage_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENTRY);
  45. +           }
  46. +        };
  47. +
  48. +        SpellScript* GetSpellScript() const
  49. +        {
  50. +            return new spell_putricide_choking_gas_explosion_damage_SpellScript();
  51. +        }
  52. +};
  53. +
  54. +class spell_putricide_choking_gas_explosion_damage : public SpellScriptLoader
  55. +{
  56. +    public:
  57. +        spell_putricide_choking_gas_explosion_damage() : SpellScriptLoader("spell_putricide_choking_gas_explosion_damage") { }
  58. +
  59. +        class spell_putricide_choking_gas_explosion_damage_SpellScript : public SpellScript
  60. +        {
  61. +            PrepareSpellScript(spell_putricide_choking_gas_explosion_damage_SpellScript);
  62. +
  63. +            void FilterTargets(std::list<Unit*>& unitList)
  64. +            {
  65. +                unitList.remove_if(ChokingGasTargetFilter(GetCaster()));
  66. +            }
  67. +
  68. +            void Register()
  69. +            {
  70. +                OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_choking_gas_explosion_damage_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY);
  71. +               OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_choking_gas_explosion_damage_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENTRY);
  72. +               OnUnitTargetSelect += SpellUnitTargetFn(spell_putricide_choking_gas_explosion_damage_SpellScript::FilterTargets, EFFECT_2, TARGET_UNIT_SRC_AREA_ENTRY);
  73. +            }
  74. +        };
  75. +
  76. +        SpellScript* GetSpellScript() const
  77. +        {
  78. +            return new spell_putricide_choking_gas_explosion_damage_SpellScript();
  79. +        }
  80. +};
  81. +
  82.  void AddSC_boss_professor_putricide()
  83.  {
  84.      new boss_professor_putricide();
  85. @@ -1584,4 +1657,6 @@ void AddSC_boss_professor_putricide()
  86.      new spell_putricide_regurgitated_ooze();
  87.      new spell_putricide_clear_aura_effect_value();
  88.      new spell_stinky_precious_decimate();
  89. +   new spell_putricide_choking_gas_damage();
  90. +   new spell_putricide_choking_gas_explosion_damage();
  91.  }
Advertisement
Add Comment
Please, Sign In to add comment