18#ifndef TRINITY_TRAIT_MGR_H
19#define TRINITY_TRAIT_MGR_H
83 std::vector<std::pair<int32, int32>>
ByGate;
89void FillSpentCurrenciesMap(std::vector<WorldPackets::Traits::TraitEntry>
const& traitEntries, std::map<int32, SpentCurrency>& cachedCurrencies);
constexpr uint32 COMMIT_COMBAT_TRAIT_CONFIG_CHANGES_SPELL_ID
bool CanApplyTraitNode(UF::TraitConfig const &traitConfig, UF::TraitEntry const &traitEntry)
constexpr uint32 MAX_COMBAT_TRAIT_CONFIGS
void InitializeStarterBuildTraitConfig(WorldPackets::Traits::TraitConfig &traitConfig, PlayerDataAccessor player)
std::vector< TraitDefinitionEffectPointsEntry const * > const * GetTraitDefinitionEffectPointModifiers(int32 traitDefinitionId)
LearnResult ValidateConfig(WorldPackets::Traits::TraitConfig &traitConfig, PlayerDataAccessor player, bool requireSpendingAllCurrencies, bool removeInvalidEntries)
int32 GenerateNewTraitConfigId()
bool IsValidEntry(WorldPackets::Traits::TraitEntry const &traitEntry)
@ CantDoThatChallengeModeActive
@ NotEnoughTalentsInPrimaryTree
std::vector< UF::TraitEntry > GetGrantedTraitEntriesForConfig(WorldPackets::Traits::TraitConfig const &traitConfig, PlayerDataAccessor player)
void FillSpentCurrenciesMap(std::vector< WorldPackets::Traits::TraitEntry > const &traitEntries, std::map< int32, SpentCurrency > &cachedCurrencies)
TraitConfigType GetConfigTypeForTree(int32 traitTreeId)
PlayerDataAccessor(Player const *player)
std::variant< int64, float > GetDataElementCharacter(uint32 dataElementId) const
int32 GetCurrencyQuantity(int32 currencyId) const
std::variant< int64, float > GetDataElementAccount(uint32 dataElementId) const
uint32 GetPrimarySpecialization() const
bool HasAchieved(int32 achievementId) const
bool IsQuestRewarded(int32 questId) const
std::vector< std::pair< int32, int32 > > ByGate