aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/World
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2011-05-14 12:26:49 +0200
committerShauren <shauren.trinity@gmail.com>2011-05-14 12:26:49 +0200
commit24a8cc24da62e2a5712fbfc2da48ca036cfb0707 (patch)
tree95badc3431b4fb00478b175820baad02785458af /src/server/scripts/World
parentb71b2896b6dde4a3a2690675b5afab3f54f1a294 (diff)
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS
Diffstat (limited to 'src/server/scripts/World')
-rwxr-xr-xsrc/server/scripts/World/achievement_scripts.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/server/scripts/World/achievement_scripts.cpp b/src/server/scripts/World/achievement_scripts.cpp
index ed4f404d9be..f26b34e6308 100755
--- a/src/server/scripts/World/achievement_scripts.cpp
+++ b/src/server/scripts/World/achievement_scripts.cpp
@@ -167,6 +167,27 @@ class achievement_bg_sa_artillery : public AchievementCriteriaScript
}
};
+class achievement_arena_kills : public AchievementCriteriaScript
+{
+ public:
+ achievement_arena_kills(char const* name, uint8 arenaType) : AchievementCriteriaScript(name),
+ _arenaType(arenaType)
+ {
+ }
+
+ bool OnCheck(Player* source, Unit* /*target*/)
+ {
+ // this checks GetBattleground() for NULL already
+ if (!source->InArena())
+ return false;
+
+ return source->GetBattleground()->GetArenaType() == _arenaType;
+ }
+
+ private:
+ uint8 const _arenaType;
+};
+
void AddSC_achievement_scripts()
{
new achievement_storm_glory();
@@ -177,4 +198,7 @@ void AddSC_achievement_scripts()
new achievement_bg_ic_glaive_grave();
new achievement_bg_ic_mowed_down();
new achievement_bg_sa_artillery();
+ new achievement_arena_kills("achievement_arena_2v2_kills", ARENA_TYPE_2v2);
+ new achievement_arena_kills("achievement_arena_3v3_kills", ARENA_TYPE_3v3);
+ new achievement_arena_kills("achievement_arena_5v5_kills", ARENA_TYPE_5v5);
}