diff options
Diffstat (limited to 'src/server/scripts')
| -rwxr-xr-x | src/server/scripts/World/achievement_scripts.cpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp index 59053315f72..76aa0b862f5 100755 --- a/src/server/scripts/World/achievement_scripts.cpp +++ b/src/server/scripts/World/achievement_scripts.cpp @@ -19,6 +19,7 @@ #include "BattlegroundAB.h" #include "BattlegroundWS.h" #include "BattlegroundIC.h" +#include "BattlegroundSA.h" class achievement_school_of_hard_knocks : public AchievementCriteriaScript { @@ -165,6 +166,62 @@ class achievement_bg_ic_mowed_down : public AchievementCriteriaScript } }; +class achievement_bg_sa_artillery_veteran : public AchievementCriteriaScript +{ + public: + achievement_bg_sa_artillery_veteran() : AchievementCriteriaScript("achievement_bg_sa_artillery_veteran") { } + + bool OnCheck(Player* source, Unit* target) + { + if (Creature* vehicle = source->GetVehicleCreatureBase()) + { + if (vehicle->GetEntry() == NPC_ANTI_PERSONNAL_CANNON) + return true; + } + + return false; + } +}; + +class achievement_bg_sa_artillery_expert : public AchievementCriteriaScript +{ + public: + achievement_bg_sa_artillery_expert() : AchievementCriteriaScript("achievement_bg_sa_artillery_expert") { } + + bool OnCheck(Player* source, Unit* target) + { + if (Creature* vehicle = source->GetVehicleCreatureBase()) + { + if (vehicle->GetEntry() != NPC_ANTI_PERSONNAL_CANNON) + return false; + + BattlegroundSA* SA = static_cast<BattlegroundSA*>(source->GetBattleground()); + return SA->GetPlayerDemolisherScore(source); + } + + return false; + } +}; + +class achievement_bg_sa_drop_it : public AchievementCriteriaScript +{ + public: + achievement_bg_sa_drop_it() : AchievementCriteriaScript("achievement_bg_sa_drop_it") { } + + enum AchievementData + { + SPELL_CARRYING_SEAFORIUM = 52418, + }; + + bool OnCheck(Player* /*source*/, Unit* target) + { + if (target->HasAura(SPELL_CARRYING_SEAFORIUM)) + return true; + + return false; + } +}; + void AddSC_achievement_scripts() { new achievement_school_of_hard_knocks(); @@ -175,4 +232,7 @@ void AddSC_achievement_scripts() new achievement_bg_ic_resource_glut(); new achievement_bg_ic_glaive_grave(); new achievement_bg_ic_mowed_down(); + new achievement_bg_sa_artillery_veteran(); + new achievement_bg_sa_artillery_expert(); + new achievement_bg_sa_drop_it(); } |
