aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
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
parentb71b2896b6dde4a3a2690675b5afab3f54f1a294 (diff)
Core/Achievements: Implemented ACHIEVEMENT_CRITERIA_TYPE_GET_KILLING_BLOWS
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp15
-rwxr-xr-xsrc/server/scripts/World/achievement_scripts.cpp24
2 files changed, 39 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
index 30253c78260..0d25ddb7086 100644
--- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
+++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp
@@ -1112,6 +1112,20 @@ public:
};
};
+class achievement_denyin_the_scion : public AchievementCriteriaScript
+{
+ public:
+ achievement_denyin_the_scion() : AchievementCriteriaScript("achievement_denyin_the_scion") { }
+
+ bool OnCheck(Player* source, Unit* /*target*/)
+ {
+ if (Unit* disk = source->GetVehicleBase())
+ if (disk->GetEntry() == NPC_HOVER_DISK_CASTER || disk->GetEntry() == NPC_HOVER_DISK_MELEE)
+ return true;
+ return false;
+ }
+};
+
void AddSC_boss_malygos()
{
new boss_malygos();
@@ -1123,4 +1137,5 @@ void AddSC_boss_malygos()
new spell_malygos_vortex_dummy();
new spell_malygos_vortex_visual();
new npc_alexstrasza_eoe();
+ new achievement_denyin_the_scion();
}
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);
}