Scripts/Achievements: add multiple achievement scripts for Strand Of The Ancients.

add kill counter reset related to Battleground achievements.
This commit is contained in:
Supabad
2011-04-17 11:11:40 +02:00
parent e023a32cf3
commit 35c238050a
6 changed files with 122 additions and 41 deletions
@@ -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();
}