![]() |
TrinityCore
|
#include <AchievementMgr.h>
Inheritance diagram for PlayerAchievementMgr:Public Member Functions | |
| PlayerAchievementMgr (Player *owner) | |
| void | Reset () override |
| void | LoadFromDB (PreparedQueryResult achievementResult, PreparedQueryResult criteriaResult) |
| void | SaveToDB (CharacterDatabaseTransaction trans) |
| void | SendAllData (Player const *receiver) const override |
| void | SendAchievementInfo (Player *receiver, uint32 achievementId=0) const |
| void | CompletedAchievement (AchievementEntry const *entry, Player *referencePlayer) override |
| bool | ModifierTreeSatisfied (uint32 modifierTreeId) const |
| bool | ModifierTreeSatisfied (ModifierTreeNode const *parent, uint64 miscValue1, uint64 miscValue2, WorldObject const *ref, Player *referencePlayer) const |
Public Member Functions inherited from AchievementMgr | |
| AchievementMgr () | |
| ~AchievementMgr () | |
| void | CheckAllAchievementCriteria (Player *referencePlayer) |
| bool | HasAchieved (uint32 achievementId) const |
| uint32 | GetAchievementPoints () const |
| std::vector< uint32 > | GetCompletedAchievementIds () const |
Public Member Functions inherited from CriteriaHandler | |
| CriteriaHandler () | |
| virtual | ~CriteriaHandler () |
| CriteriaHandler (CriteriaHandler const &right)=delete | |
| CriteriaHandler (CriteriaHandler &&right)=delete | |
| CriteriaHandler & | operator= (CriteriaHandler const &right)=delete |
| CriteriaHandler & | operator= (CriteriaHandler &&right)=delete |
| void | UpdateCriteria (CriteriaType type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, WorldObject const *ref=nullptr, Player *referencePlayer=nullptr) |
| void | UpdateTimedCriteria (Milliseconds timeDiff) |
| void | StartCriteria (CriteriaStartEvent startEvent, uint32 entry, Milliseconds timeLost=Milliseconds::zero()) |
| virtual void | FailCriteria (CriteriaFailEvent failEvent, uint32 asset) |
Static Public Member Functions | |
| static void | DeleteFromDB (ObjectGuid const &guid) |
Protected Member Functions | |
| void | SendCriteriaUpdate (Criteria const *entry, CriteriaProgress const *progress, Seconds timeElapsed, bool timedCompleted) const override |
| void | SendCriteriaProgressRemoved (uint32 criteriaId) override |
| void | SendAchievementEarned (AchievementEntry const *achievement) const |
| void | SendPacket (WorldPacket const *data) const override |
| std::string | GetOwnerInfo () const override |
| CriteriaList const & | GetCriteriaByType (CriteriaType type, uint32 asset) const override |
Protected Member Functions inherited from AchievementMgr | |
| bool | CanUpdateCriteriaTree (Criteria const *criteria, CriteriaTree const *tree, Player *referencePlayer) const override |
| bool | CanCompleteCriteriaTree (CriteriaTree const *tree) override |
| void | CompletedCriteriaTree (CriteriaTree const *tree, Player *referencePlayer) override |
| void | AfterCriteriaTreeUpdate (CriteriaTree const *tree, Player *referencePlayer) override |
| bool | IsCompletedAchievement (AchievementEntry const *entry) |
| bool | RequiredAchievementSatisfied (uint32 achievementId) const override |
Protected Member Functions inherited from CriteriaHandler | |
| void | UpdateCriteria (Criteria const *criteria, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, WorldObject const *ref=nullptr, Player *referencePlayer=nullptr) |
| CriteriaProgress * | GetCriteriaProgress (Criteria const *entry) |
| void | SetCriteriaProgress (Criteria const *criteria, uint64 changeValue, Player *referencePlayer, ProgressType progressType=PROGRESS_SET) |
| void | RemoveCriteriaProgress (Criteria const *criteria) |
| bool | IsCompletedCriteriaTree (CriteriaTree const *tree) |
| bool | IsCompletedCriteria (Criteria const *criteria, uint64 requiredAmount) |
| bool | CanUpdateCriteria (Criteria const *criteria, CriteriaTreeList const *trees, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject const *ref, Player *referencePlayer) |
| bool | ConditionsSatisfied (Criteria const *criteria, Player *referencePlayer) const |
| bool | RequirementsSatisfied (Criteria const *criteria, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, WorldObject const *ref, Player *referencePlayer) const |
| bool | ModifierTreeSatisfied (ModifierTreeNode const *parent, uint64 miscValue1, uint64 miscValue2, WorldObject const *ref, Player *referencePlayer) const |
| bool | ModifierSatisfied (ModifierTreeEntry const *modifier, uint64 miscValue1, uint64 miscValue2, WorldObject const *ref, Player *referencePlayer) const |
Private Attributes | |
| Player * | _owner |
Additional Inherited Members | |
Protected Attributes inherited from AchievementMgr | |
| std::unordered_map< uint32, CompletedAchievementData > | _completedAchievements |
| uint32 | _achievementPoints |
Protected Attributes inherited from CriteriaHandler | |
| CriteriaProgressMap | _criteriaProgress |
| std::unordered_map< uint32, Milliseconds > | _startedCriteria |
Definition at line 77 of file AchievementMgr.h.
|
explicit |
Definition at line 208 of file AchievementMgr.cpp.
|
overridevirtual |
Currently there's only one achievement that deals with gender-specific titles. Since no common attributes were found, (not even in titleRewardFlags field) we explicitly check by ID. Maybe in the future we could move the achievement_reward condition fields to the condition system.
Implements AchievementMgr.
Definition at line 462 of file AchievementMgr.cpp.
References AchievementMgr::_achievementPoints, AchievementMgr::_completedAchievements, _owner, ACHIEVEMENT_FACTION_ALLIANCE, ACHIEVEMENT_FACTION_HORDE, ACHIEVEMENT_FLAG_COUNTER, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, ACHIEVEMENT_FLAG_SHOW_IN_GUILD_HEADER, ACHIEVEMENT_FLAG_SHOW_IN_GUILD_NEWS, ACHIEVEMENT_FLAG_TRACKING_FLAG, MailDraft::AddItem(), ALLIANCE, AchievementReward::Body, CompletedAchievementData::Changed, CharacterDatabase, Item::CreateItem(), CompletedAchievementData::Date, EarnAchievement, EarnAchievementPoints, AchievementEntry::Faction, AchievementEntry::Flags, GameTime::GetGameTime(), BaseEntity::GetGUID(), Player::GetGuild(), ObjectMgr::GetLocaleString(), Player::GetNativeGender(), GetOwnerInfo(), Player::GetSession(), WorldSession::GetSessionDbLocaleIndex(), Player::GetTeam(), GUILD_NEWS_PLAYER_ACHIEVEMENT, AchievementMgr::HasAchieved(), WorldSession::HasPermission(), HORDE, AchievementEntry::ID, Player::IsGameMaster(), AchievementReward::ItemId, LOCALE_enUS, MAIL_CREATURE, AchievementReward::MailTemplateId, NONE, WorldSession::PlayerLoading(), AchievementEntry::Points, rbac::RBAC_PERM_CANNOT_EARN_ACHIEVEMENTS, sAchievementMgr, Item::SaveToDB(), sCharTitlesStore, SendAchievementEarned(), AchievementReward::SenderCreatureId, MailDraft::SendMailTo(), Player::SetTitle(), sScriptMgr, AchievementReward::Subject, TC_LOG_INFO, AchievementReward::TitleId, and Player::UpdateCriteria().
|
static |
Definition at line 231 of file AchievementMgr.cpp.
References CHAR_DEL_CHAR_ACHIEVEMENT, CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS, CharacterDatabase, ObjectGuid::GetCounter(), and PreparedStatementBase::setUInt64().
Referenced by reset_commandscript::HandleResetAchievementsCommand(), and Reset().
|
overrideprotectedvirtual |
Implements CriteriaHandler.
Definition at line 686 of file AchievementMgr.cpp.
References sCriteriaMgr.
|
overrideprotectedvirtual |
Implements CriteriaHandler.
Definition at line 1046 of file AchievementMgr.cpp.
References _owner, BaseEntity::GetGUID(), WorldObject::GetName(), Trinity::StringFormat(), and ObjectGuid::ToString().
Referenced by CompletedAchievement().
| void PlayerAchievementMgr::LoadFromDB | ( | PreparedQueryResult | achievementResult, |
| PreparedQueryResult | criteriaResult | ||
| ) |
Definition at line 246 of file AchievementMgr.cpp.
References AchievementMgr::_achievementPoints, AchievementMgr::_completedAchievements, CriteriaHandler::_criteriaProgress, _owner, ALLIANCE, CompletedAchievementData::Changed, CriteriaProgress::Changed, CHAR_DEL_INVALID_ACHIEV_PROGRESS_CRITERIA, CharacterDatabase, CriteriaProgress::Counter, CompletedAchievementData::Date, CriteriaProgress::Date, Criteria::Entry, GameTime::GetGameTime(), BaseEntity::GetGUID(), Field::GetInt64(), Unit::GetRace(), Field::GetUInt32(), Field::GetUInt64(), CriteriaProgress::PlayerGUID, AchievementEntry::Points, sAchievementMgr, sAchievementStore, sCharTitlesStore, sCriteriaMgr, Player::SetTitle(), PreparedStatementBase::setUInt32(), CriteriaEntry::StartTimer, TC_LOG_ERROR, and Player::TeamForRace().
| bool CriteriaHandler::ModifierTreeSatisfied | ( | ModifierTreeNode const * | parent, |
| uint64 | miscValue1, | ||
| uint64 | miscValue2, | ||
| WorldObject const * | ref, | ||
| Player * | referencePlayer | ||
| ) | const |
Definition at line 308 of file CriteriaHandler.cpp.
References Unit::HasAuraEffect(), and Object::ToUnit().
| bool PlayerAchievementMgr::ModifierTreeSatisfied | ( | uint32 | modifierTreeId | ) | const |
Definition at line 567 of file AchievementMgr.cpp.
References _owner, ModifierTreeSatisfied(), and sCriteriaMgr.
Referenced by ModifierTreeSatisfied().
|
overridevirtual |
Reimplemented from CriteriaHandler.
Definition at line 212 of file AchievementMgr.cpp.
References AchievementMgr::_achievementPoints, AchievementMgr::_completedAchievements, _owner, WorldPackets::Achievement::AchievementDeleted::AchievementID, AchievementMgr::CheckAllAchievementCriteria(), DeleteFromDB(), BaseEntity::GetGUID(), CriteriaHandler::Reset(), SendPacket(), and WorldPackets::Achievement::AchievementDeleted::Write().
| void PlayerAchievementMgr::SaveToDB | ( | CharacterDatabaseTransaction | trans | ) |
Definition at line 310 of file AchievementMgr.cpp.
References AchievementMgr::_completedAchievements, CriteriaHandler::_criteriaProgress, _owner, CHAR_DEL_CHAR_ACHIEVEMENT_BY_ACHIEVEMENT, CHAR_DEL_CHAR_ACHIEVEMENT_PROGRESS_BY_CRITERIA, CHAR_INS_CHAR_ACHIEVEMENT, CHAR_INS_CHAR_ACHIEVEMENT_PROGRESS, CharacterDatabase, ObjectGuid::GetCounter(), BaseEntity::GetGUID(), PreparedStatementBase::setInt64(), PreparedStatementBase::setUInt32(), and PreparedStatementBase::setUInt64().
|
protected |
Definition at line 622 of file AchievementMgr.cpp.
References _owner, ACHIEVEMENT_FLAG_HIDDEN, ACHIEVEMENT_FLAG_REALM_FIRST_KILL, ACHIEVEMENT_FLAG_REALM_FIRST_REACH, ACHIEVEMENT_FLAG_TRACKING_FLAG, WorldPackets::Achievement::AchievementEarned::AchievementID, WorldPackets::Achievement::BroadcastAchievement::AchievementID, AT_LOGIN_FIRST, BROADCAST_TEXT_ACHIEVEMENT_EARNED, CHAT_MSG_ACHIEVEMENT, CHAT_MSG_GUILD_ACHIEVEMENT, CONFIG_LISTEN_RANGE_SAY, WorldPackets::Achievement::AchievementEarned::Earner, WorldPackets::Achievement::AchievementEarned::EarnerNativeRealm, WorldPackets::Achievement::AchievementEarned::EarnerVirtualRealm, AchievementEntry::Flags, BaseEntity::GetGUID(), Player::GetGuildId(), WorldObject::GetName(), Player::GetNativeGender(), GameTime::GetUtcWowTime(), AchievementEntry::ID, WorldPackets::Achievement::AchievementEarned::Initial, BaseEntity::IsInWorld(), Player::m_playerData, WorldPackets::Achievement::BroadcastAchievement::Name, WorldPackets::Achievement::BroadcastAchievement::PlayerGUID, WorldPackets::Achievement::AchievementEarned::Sender, sGuildMgr, sWorld, TC_LOG_DEBUG, WorldPackets::Achievement::AchievementEarned::Time, Cell::VisitWorldObjects(), WorldPackets::Achievement::AchievementEarned::Write(), and WorldPackets::Achievement::BroadcastAchievement::Write().
Referenced by CompletedAchievement().
| void PlayerAchievementMgr::SendAchievementInfo | ( | Player * | receiver, |
| uint32 | achievementId = 0 |
||
| ) | const |
Definition at line 421 of file AchievementMgr.cpp.
References AchievementMgr::_completedAchievements, CriteriaHandler::_criteriaProgress, _owner, ACHIEVEMENT_FLAG_ACCOUNT, WorldPackets::Achievement::RespondInspectAchievements::Data, WorldPackets::Achievement::EarnedAchievement::Date, WorldPackets::Achievement::CriteriaProgress::Date, WorldPackets::Achievement::AllAchievements::Earned, AchievementEntry::Flags, WorldPackets::Achievement::CriteriaProgress::Flags, BaseEntity::GetGUID(), Player::GetSession(), WorldSession::GetTimezoneOffset(), WorldPackets::Achievement::EarnedAchievement::Id, WorldPackets::Achievement::CriteriaProgress::Id, Player::m_playerData, WorldPackets::Achievement::EarnedAchievement::NativeRealmAddress, WorldPackets::Achievement::EarnedAchievement::Owner, WorldPackets::Achievement::CriteriaProgress::Player, WorldPackets::Achievement::RespondInspectAchievements::Player, WorldPackets::Achievement::AllAchievements::Progress, WorldPackets::Achievement::CriteriaProgress::Quantity, Player::SendDirectMessage(), WowTime::SetUtcTimeFromUnixTime(), WorldPackets::Achievement::CriteriaProgress::TimeFromCreate, WorldPackets::Achievement::CriteriaProgress::TimeFromStart, WorldPackets::Achievement::EarnedAchievement::VirtualRealmAddress, and WorldPackets::Achievement::RespondInspectAchievements::Write().
|
overridevirtual |
Implements CriteriaHandler.
Definition at line 361 of file AchievementMgr.cpp.
References AchievementMgr::_completedAchievements, CriteriaHandler::_criteriaProgress, _owner, ACHIEVEMENT_FLAG_ACCOUNT, CRITERIA_FLAG_CU_ACCOUNT, WorldPackets::Achievement::AllAchievementData::Data, WorldPackets::Achievement::EarnedAchievement::Date, WorldPackets::Achievement::CriteriaProgress::Date, WorldPackets::Achievement::AllAchievements::Earned, AchievementEntry::Flags, WorldPackets::Achievement::CriteriaProgress::Flags, Criteria::FlagsCu, WorldSession::GetBattlenetAccountGUID(), BaseEntity::GetGUID(), Player::GetSession(), WorldSession::GetTimezoneOffset(), WorldPackets::Achievement::EarnedAchievement::Id, WorldPackets::Achievement::CriteriaProgress::Id, Player::m_playerData, WorldPackets::Achievement::EarnedAchievement::NativeRealmAddress, WorldPackets::Achievement::EarnedAchievement::Owner, WorldPackets::Achievement::CriteriaProgress::Player, WorldPackets::Achievement::AllAchievements::Progress, WorldPackets::Achievement::AllAccountCriteria::Progress, WorldPackets::Achievement::CriteriaProgress::Quantity, sCriteriaMgr, SendPacket(), WowTime::SetUtcTimeFromUnixTime(), WorldPackets::Achievement::CriteriaProgress::TimeFromCreate, WorldPackets::Achievement::CriteriaProgress::TimeFromStart, WorldPackets::Achievement::EarnedAchievement::VirtualRealmAddress, WorldPackets::Achievement::AllAchievementData::Write(), and WorldPackets::Achievement::AllAccountCriteria::Write().
|
overrideprotectedvirtual |
Implements CriteriaHandler.
Definition at line 615 of file AchievementMgr.cpp.
References WorldPackets::Achievement::CriteriaDeleted::CriteriaID, SendPacket(), and WorldPackets::Achievement::CriteriaDeleted::Write().
|
overrideprotectedvirtual |
Implements CriteriaHandler.
Definition at line 575 of file AchievementMgr.cpp.
References _owner, CriteriaProgress::Counter, WorldPackets::Achievement::CriteriaUpdate::CreationTime, CRITERIA_FLAG_CU_ACCOUNT, CRITERIA_FLAG_CU_PLAYER, WorldPackets::Achievement::CriteriaUpdate::CriteriaID, WorldPackets::Achievement::CriteriaUpdate::CurrentTime, CriteriaProgress::Date, WorldPackets::Achievement::CriteriaProgress::Date, WorldPackets::Achievement::CriteriaUpdate::ElapsedTime, Criteria::Entry, WorldPackets::Achievement::CriteriaProgress::Flags, WorldPackets::Achievement::CriteriaUpdate::Flags, Criteria::FlagsCu, WorldSession::GetBattlenetAccountGUID(), BaseEntity::GetGUID(), Player::GetSession(), WorldSession::GetTimezoneOffset(), Criteria::ID, WorldPackets::Achievement::CriteriaProgress::Id, WorldPackets::Achievement::CriteriaProgress::Player, WorldPackets::Achievement::CriteriaUpdate::PlayerGUID, WorldPackets::Achievement::AccountCriteriaUpdate::Progress, WorldPackets::Achievement::CriteriaProgress::Quantity, WorldPackets::Achievement::CriteriaUpdate::Quantity, SendPacket(), WowTime::SetUtcTimeFromUnixTime(), CriteriaEntry::StartTimer, WorldPackets::Achievement::CriteriaProgress::TimeFromCreate, WorldPackets::Achievement::CriteriaProgress::TimeFromStart, WorldPackets::Achievement::CriteriaUpdate::Write(), and WorldPackets::Achievement::AccountCriteriaUpdate::Write().
|
overrideprotectedvirtual |
Implements CriteriaHandler.
Definition at line 681 of file AchievementMgr.cpp.
References _owner, and Player::SendDirectMessage().
Referenced by Reset(), SendAllData(), SendCriteriaProgressRemoved(), and SendCriteriaUpdate().
|
private |
Definition at line 108 of file AchievementMgr.h.
Referenced by CompletedAchievement(), GetOwnerInfo(), LoadFromDB(), ModifierTreeSatisfied(), Reset(), SaveToDB(), SendAchievementEarned(), SendAchievementInfo(), SendAllData(), SendCriteriaUpdate(), and SendPacket().