TrinityCore
Loading...
Searching...
No Matches
Garrison Class Reference

#include <Garrison.h>

Classes

struct  Building
 
struct  Follower
 
struct  Plot
 

Public Member Functions

 Garrison (Player *owner)
 
bool LoadFromDB (PreparedQueryResult garrison, PreparedQueryResult blueprints, PreparedQueryResult buildings, PreparedQueryResult followers, PreparedQueryResult abilities)
 
void SaveToDB (CharacterDatabaseTransaction trans)
 
bool Create (uint32 garrSiteId)
 
void Delete ()
 
void Upgrade ()
 
void Enter () const
 
void Leave () const
 
GarrisonFactionIndex GetFaction () const
 
GarrisonType GetType () const
 
GarrSiteLevelEntry const * GetSiteLevel () const
 
std::vector< Plot * > GetPlots ()
 
Plot * GetPlot (uint32 garrPlotInstanceId)
 
Plot const * GetPlot (uint32 garrPlotInstanceId) const
 
void LearnBlueprint (uint32 garrBuildingId)
 
void UnlearnBlueprint (uint32 garrBuildingId)
 
bool HasBlueprint (uint32 garrBuildingId) const
 
void PlaceBuilding (uint32 garrPlotInstanceId, uint32 garrBuildingId)
 
void CancelBuildingConstruction (uint32 garrPlotInstanceId)
 
void ActivateBuilding (uint32 garrPlotInstanceId)
 
void AddFollower (uint32 garrFollowerId)
 
Follower const * GetFollower (uint64 dbId) const
 
template<typename Predicate >
uint32 CountFollowers (Predicate &&predicate) const
 
void BuildInfoPacket (WorldPackets::Garrison::GarrisonInfo &garrison) const
 
void SendRemoteInfo () const
 
void SendBlueprintAndSpecializationData ()
 
void SendMapData (Player *receiver) const
 
void ResetFollowerActivationLimit ()
 

Static Public Member Functions

static void DeleteFromDB (ObjectGuid::LowType ownerGuid, CharacterDatabaseTransaction trans)
 
static constexpr GarrisonFactionIndex GetFaction (Team team)
 

Private Member Functions

Map * FindMap () const
 
void InitializePlots ()
 
GarrisonError CheckBuildingPlacement (uint32 garrPlotInstanceId, uint32 garrBuildingId) const
 
GarrisonError CheckBuildingRemoval (uint32 garrPlotInstanceId) const
 

Private Attributes

Player * _owner
 
GarrSiteLevelEntry const * _siteLevel
 
uint32 _followerActivationsRemainingToday
 
std::unordered_map< uint32, Plot > _plots
 
std::unordered_set< uint32 > _knownBuildings
 
std::unordered_map< uint64, Follower > _followers
 
std::unordered_set< uint32 > _followerIds
 

Detailed Description

Definition at line 184 of file Garrison.h.

Constructor & Destructor Documentation

◆ Garrison()

Garrison::Garrison ( Player *  owner)
explicit

Definition at line 34 of file Garrison.cpp.

Member Function Documentation

◆ ActivateBuilding()

◆ AddFollower()

◆ BuildInfoPacket()

◆ CancelBuildingConstruction()

void Garrison::CancelBuildingConstruction ( uint32  garrPlotInstanceId)

Definition at line 418 of file Garrison.cpp.

References _owner, WorldPackets::Garrison::GarrisonBuildingInfo::Active, Player::AddCurrency(), Map::AddToMap(), ASSERT, Garrison::Plot::BuildingInfo, WorldPackets::Garrison::GarrisonPlaceBuildingResult::BuildingInfo, GarrBuildingEntry::BuildingType, CheckBuildingRemoval(), Garrison::Plot::ClearBuildingInfo(), Garrison::Plot::CreateGameObject(), GarrBuildingEntry::CurrencyQty, GarrBuildingEntry::CurrencyTypeID, Garrison::Plot::DeleteGameObject(), FindMap(), WorldPackets::Garrison::GarrisonBuildingInfo::GarrBuildingID, WorldPackets::Garrison::GarrisonBuildingRemoved::GarrBuildingID, GARRISON_SUCCESS, GarrisonBuildingRefund, WorldPackets::Garrison::GarrisonBuildingInfo::GarrPlotInstanceID, WorldPackets::Garrison::GarrisonBuildingRemoved::GarrPlotInstanceID, WorldPackets::Garrison::GarrisonPlaceBuildingResult::GarrTypeID, WorldPackets::Garrison::GarrisonBuildingRemoved::GarrTypeID, GetFaction(), GameTime::GetGameTime(), GetPlot(), GetType(), GOLD, GarrBuildingEntry::GoldCost, Player::ModifyMoney(), Garrison::Building::PacketInfo, WorldPackets::Garrison::GarrisonPlaceBuildingResult::Result, WorldPackets::Garrison::GarrisonBuildingRemoved::Result, Player::SendDirectMessage(), Garrison::Plot::SetBuildingInfo(), sGarrBuildingStore, sGarrisonMgr, WorldPackets::Garrison::GarrisonBuildingInfo::TimeBuilt, GarrBuildingEntry::UpgradeLevel, WorldPackets::Garrison::GarrisonPlaceBuildingResult::Write(), and WorldPackets::Garrison::GarrisonBuildingRemoved::Write().

◆ CheckBuildingPlacement()

◆ CheckBuildingRemoval()

◆ CountFollowers()

template<typename Predicate >
uint32 Garrison::CountFollowers ( Predicate &&  predicate) const
inline

Definition at line 254 of file Garrison.h.

Referenced by CriteriaHandler::ModifierSatisfied().

◆ Create()

◆ Delete()

◆ DeleteFromDB()

◆ Enter()

void Garrison::Enter ( ) const

◆ FindMap()

Map * Garrison::FindMap ( ) const
private

◆ GetFaction() [1/2]

◆ GetFaction() [2/2]

static constexpr GarrisonFactionIndex Garrison::GetFaction ( Team  team)
inlinestaticconstexpr

◆ GetFollower()

Garrison::Follower const * Garrison::GetFollower ( uint64  dbId) const

Definition at line 524 of file Garrison.cpp.

References _followers.

Referenced by CriteriaHandler::ModifierSatisfied().

◆ GetPlot() [1/2]

◆ GetPlot() [2/2]

Garrison::Plot const * Garrison::GetPlot ( uint32  garrPlotInstanceId) const

Definition at line 326 of file Garrison.cpp.

References _plots.

◆ GetPlots()

std::vector< Garrison::Plot * > Garrison::GetPlots ( )

Definition at line 307 of file Garrison.cpp.

References _plots.

Referenced by GarrisonGridLoader::LoadN(), and CriteriaHandler::ModifierSatisfied().

◆ GetSiteLevel()

GarrSiteLevelEntry const * Garrison::GetSiteLevel ( ) const
inline

Definition at line 235 of file Garrison.h.

Referenced by CriteriaHandler::ModifierSatisfied().

◆ GetType()

◆ HasBlueprint()

bool Garrison::HasBlueprint ( uint32  garrBuildingId) const
inline

◆ InitializePlots()

◆ LearnBlueprint()

◆ Leave()

void Garrison::Leave ( ) const

◆ LoadFromDB()

◆ PlaceBuilding()

void Garrison::PlaceBuilding ( uint32  garrPlotInstanceId,
uint32  garrBuildingId 
)

◆ ResetFollowerActivationLimit()

void Garrison::ResetFollowerActivationLimit ( )
inline

Definition at line 269 of file Garrison.h.

◆ SaveToDB()

◆ SendBlueprintAndSpecializationData()

◆ SendMapData()

◆ SendRemoteInfo()

◆ UnlearnBlueprint()

◆ Upgrade()

void Garrison::Upgrade ( )

Definition at line 284 of file Garrison.cpp.

Member Data Documentation

◆ _followerActivationsRemainingToday

uint32 Garrison::_followerActivationsRemainingToday
private

Definition at line 278 of file Garrison.h.

Referenced by BuildInfoPacket(), LoadFromDB(), and SaveToDB().

◆ _followerIds

std::unordered_set<uint32> Garrison::_followerIds
private

Definition at line 283 of file Garrison.h.

Referenced by AddFollower(), and LoadFromDB().

◆ _followers

std::unordered_map<uint64 , Follower> Garrison::_followers
private

Definition at line 282 of file Garrison.h.

Referenced by AddFollower(), BuildInfoPacket(), GetFollower(), LoadFromDB(), and SaveToDB().

◆ _knownBuildings

std::unordered_set<uint32 > Garrison::_knownBuildings
private

◆ _owner

◆ _plots

std::unordered_map<uint32 , Plot> Garrison::_plots
private

◆ _siteLevel


The documentation for this class was generated from the following files: