18#ifndef __TRINITY_ACHIEVEMENTMGR_H
19#define __TRINITY_ACHIEVEMENTMGR_H
39 std::vector<std::string>
Body;
44 std::time_t
Date = std::time_t(0);
55 void CheckAllAchievementCriteria(
Player* referencePlayer);
58 bool HasAchieved(
uint32 achievementId)
const;
59 uint32 GetAchievementPoints()
const;
60 std::vector<uint32> GetCompletedAchievementIds()
const;
82 void Reset()
override;
84 static void DeleteFromDB(
ObjectGuid const& guid);
89 void SendAchievementInfo(
Player* receiver,
uint32 achievementId = 0)
const;
116 void Reset()
override;
118 static void DeleteFromDB(
ObjectGuid const& guid);
123 void SendAchievementInfo(
Player* receiver,
uint32 achievementId = 0)
const;
124 void SendAllTrackedCriterias(
Player* receiver, std::set<uint32>
const& trackedCriterias)
const;
125 void SendAchievementMembers(
Player* receiver,
uint32 achievementId)
const;
143 friend class UnitTestDataLoader;
160 std::vector<AchievementEntry const*>
const* GetAchievementByReferencedId(
uint32 id)
const;
167 void LoadAchievementReferenceList();
168 void LoadAchievementScripts();
169 void LoadCompletedAchievements();
171 void LoadRewardLocales();
173 uint32 GetAchievementScriptId(
uint32 achievementId)
const;
189#define sAchievementMgr AchievementGlobalMgr::Instance()
std::vector< Criteria const * > CriteriaList
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
std::shared_ptr< PreparedResultSet > PreparedQueryResult
std::chrono::system_clock::time_point SystemTimePoint
std::chrono::seconds Seconds
Seconds shorthand typedef.
std::set< ObjectGuid > GuidSet
static void SaveToDB(QuestPool const &pool, CharacterDatabaseTransaction trans)
AchievementGlobalMgr(AchievementGlobalMgr &&)=delete
std::unordered_map< uint32, AchievementRewardLocale > _achievementRewardLocales
AchievementGlobalMgr & operator=(AchievementGlobalMgr const &)=delete
std::unordered_map< uint32, uint32 > _achievementScripts
std::unordered_map< uint32, std::vector< AchievementEntry const * > > _achievementListByReferencedId
std::unordered_map< uint32, AchievementReward > _achievementRewards
AchievementGlobalMgr & operator=(AchievementGlobalMgr &&)=delete
AchievementGlobalMgr(AchievementGlobalMgr const &)=delete
std::unordered_map< uint32, SystemTimePoint > _allCompletedAchievements
uint32 _achievementPoints
virtual void CompletedAchievement(AchievementEntry const *entry, Player *referencePlayer)=0
std::unordered_map< uint32, CompletedAchievementData > _completedAchievements
virtual CriteriaList const & GetCriteriaByType(CriteriaType type, uint32 asset) const =0
virtual void AfterCriteriaTreeUpdate(CriteriaTree const *, Player *)
virtual void SendCriteriaProgressRemoved(uint32 criteriaId)=0
bool ModifierTreeSatisfied(ModifierTreeNode const *parent, uint64 miscValue1, uint64 miscValue2, WorldObject const *ref, Player *referencePlayer) const
virtual bool RequiredAchievementSatisfied(uint32) const
virtual void SendAllData(Player const *receiver) const =0
virtual bool CanUpdateCriteriaTree(Criteria const *criteria, CriteriaTree const *tree, Player *referencePlayer) const
virtual void SendPacket(WorldPacket const *data) const =0
virtual void CompletedCriteriaTree(CriteriaTree const *tree, Player *referencePlayer)=0
virtual bool CanCompleteCriteriaTree(CriteriaTree const *tree)
virtual std::string GetOwnerInfo() const =0
virtual void SendCriteriaUpdate(Criteria const *criteria, CriteriaProgress const *progress, Seconds timeElapsed, bool timedCompleted) const =0
std::vector< std::string > Body
std::vector< std::string > Subject
GuidSet CompletingPlayers