mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 10:26:28 +01:00
Core/WorldStates: Migrate battleground worldstates to new system
This commit is contained in:
@@ -16,120 +16,12 @@
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "BattlegroundSA.h"
|
||||
#include "BattlegroundIC.h"
|
||||
#include "Battleground.h"
|
||||
#include "BattlePetMgr.h"
|
||||
#include "Creature.h"
|
||||
#include "Player.h"
|
||||
#include "WorldSession.h"
|
||||
|
||||
class achievement_resilient_victory : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_resilient_victory() : AchievementCriteriaScript("achievement_resilient_victory") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_RESILIENT_VICTORY, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_control_all_nodes : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_control_all_nodes() : AchievementCriteriaScript("achievement_bg_control_all_nodes") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* /*target*/) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->IsAllNodesControlledByTeam(bg->GetPlayerTeam(source->GetGUID()));
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_save_the_day : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_save_the_day() : AchievementCriteriaScript("achievement_save_the_day") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_SAVE_THE_DAY, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_ic_resource_glut : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_ic_resource_glut() : AchievementCriteriaScript("achievement_bg_ic_resource_glut") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* /*target*/) override
|
||||
{
|
||||
if (source->HasAura(SPELL_OIL_REFINERY) && source->HasAura(SPELL_QUARRY))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_ic_glaive_grave : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_ic_glaive_grave() : AchievementCriteriaScript("achievement_bg_ic_glaive_grave") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* /*target*/) override
|
||||
{
|
||||
if (Creature* vehicle = source->GetVehicleCreatureBase())
|
||||
{
|
||||
if (vehicle->GetEntry() == NPC_GLAIVE_THROWER_H || vehicle->GetEntry() == NPC_GLAIVE_THROWER_A)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_ic_mowed_down : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_ic_mowed_down() : AchievementCriteriaScript("achievement_bg_ic_mowed_down") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* /*target*/) override
|
||||
{
|
||||
if (Creature* vehicle = source->GetVehicleCreatureBase())
|
||||
{
|
||||
if (vehicle->GetEntry() == NPC_KEEP_CANNON)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_sa_artillery : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_sa_artillery() : AchievementCriteriaScript("achievement_bg_sa_artillery") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* /*target*/) override
|
||||
{
|
||||
if (Creature* vehicle = source->GetVehicleCreatureBase())
|
||||
{
|
||||
if (vehicle->GetEntry() == NPC_ANTI_PERSONNAL_CANNON)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_arena_kills : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
@@ -151,66 +43,6 @@ class achievement_arena_kills : public AchievementCriteriaScript
|
||||
uint8 const _arenaType;
|
||||
};
|
||||
|
||||
class achievement_sickly_gazelle : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_sickly_gazelle() : AchievementCriteriaScript("achievement_sickly_gazelle") { }
|
||||
|
||||
bool OnCheck(Player* /*source*/, Unit* target) override
|
||||
{
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (Player* victim = target->ToPlayer())
|
||||
if (victim->IsMounted())
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_everything_counts : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_everything_counts() : AchievementCriteriaScript("achievement_everything_counts") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_EVERYTHING_COUNTS, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_av_perfection : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_av_perfection() : AchievementCriteriaScript("achievement_bg_av_perfection") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_AV_PERFECTION, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_bg_sa_defense_of_ancients : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_bg_sa_defense_of_ancients() : AchievementCriteriaScript("achievement_bg_sa_defense_of_ancients") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
enum ArgentTournamentAreas
|
||||
{
|
||||
AREA_ARGENT_TOURNAMENT_FIELDS = 4658,
|
||||
@@ -242,20 +74,6 @@ class achievement_tilted : public AchievementCriteriaScript
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_not_even_a_scratch : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
achievement_not_even_a_scratch() : AchievementCriteriaScript("achievement_not_even_a_scratch") { }
|
||||
|
||||
bool OnCheck(Player* source, Unit* target) override
|
||||
{
|
||||
if (Battleground* bg = source->GetBattleground())
|
||||
return bg->CheckAchievementCriteriaMeet(BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH, source, target);
|
||||
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
enum FlirtWithDisaster
|
||||
{
|
||||
AURA_PERFUME_FOREVER = 70235,
|
||||
@@ -318,22 +136,10 @@ public:
|
||||
|
||||
void AddSC_achievement_scripts()
|
||||
{
|
||||
new achievement_resilient_victory();
|
||||
new achievement_bg_control_all_nodes();
|
||||
new achievement_save_the_day();
|
||||
new achievement_bg_ic_resource_glut();
|
||||
new achievement_bg_ic_glaive_grave();
|
||||
new achievement_bg_ic_mowed_down();
|
||||
new achievement_bg_sa_artillery();
|
||||
new achievement_sickly_gazelle();
|
||||
new achievement_everything_counts();
|
||||
new achievement_bg_av_perfection();
|
||||
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);
|
||||
new achievement_bg_sa_defense_of_ancients();
|
||||
new achievement_tilted();
|
||||
new achievement_not_even_a_scratch();
|
||||
new achievement_flirt_with_disaster_perf_check();
|
||||
new achievement_killed_exp_or_honor_target();
|
||||
new achievement_newbie();
|
||||
|
||||
Reference in New Issue
Block a user