diff options
author | Shauren <shauren.trinity@gmail.com> | 2021-06-05 01:06:02 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-06-05 01:06:02 +0200 |
commit | d1ef8f28b01507286a6f876913c3242d0743ebef (patch) | |
tree | 6b7199beefb47b7ab120b8223a002e3e26a5305a /src | |
parent | dd9913d7e3cb7a773849a8a80670ea62a200a02f (diff) |
Core/Achievements: Implemented CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Garrison/Garrison.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Garrison/Garrison.h | 11 |
3 files changed, 11 insertions, 4 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp index 1605bff0419..1366eba31ba 100644 --- a/src/server/game/Achievements/CriteriaHandler.cpp +++ b/src/server/game/Achievements/CriteriaHandler.cpp @@ -519,6 +519,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 case CRITERIA_TYPE_WIN_ARENA: // This also behaves like CRITERIA_TYPE_WIN_RATED_ARENA case CRITERIA_TYPE_ON_LOGIN: case CRITERIA_TYPE_PLACE_GARRISON_BUILDING: + case CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING: case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT: case CRITERIA_TYPE_HONOR_LEVEL_REACHED: case CRITERIA_TYPE_PRESTIGE_REACHED: @@ -770,7 +771,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0 case CRITERIA_TYPE_ENTER_AREA: case CRITERIA_TYPE_LEAVE_AREA: case CRITERIA_TYPE_COMPLETE_DUNGEON_ENCOUNTER: - case CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING: case CRITERIA_TYPE_CONSTRUCT_GARRISON_BUILDING: case CRITERIA_TYPE_UPGRADE_GARRISON: case CRITERIA_TYPE_START_GARRISON_MISSION: diff --git a/src/server/game/Garrison/Garrison.cpp b/src/server/game/Garrison/Garrison.cpp index 799791d569b..756581dfc2b 100644 --- a/src/server/game/Garrison/Garrison.cpp +++ b/src/server/game/Garrison/Garrison.cpp @@ -494,6 +494,8 @@ void Garrison::ActivateBuilding(uint32 garrPlotInstanceId) WorldPackets::Garrison::GarrisonBuildingActivated buildingActivated; buildingActivated.GarrPlotInstanceID = garrPlotInstanceId; _owner->SendDirectMessage(buildingActivated.Write()); + + _owner->UpdateCriteria(CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING, plot->BuildingInfo.PacketInfo->GarrBuildingID); } } } diff --git a/src/server/game/Garrison/Garrison.h b/src/server/game/Garrison/Garrison.h index 8a4551521be..f20c545e900 100644 --- a/src/server/game/Garrison/Garrison.h +++ b/src/server/game/Garrison/Garrison.h @@ -33,7 +33,9 @@ struct GarrSiteLevelEntry; enum GarrisonType { GARRISON_TYPE_GARRISON = 2, - GARRISON_TYPE_CLASS_ORDER = 3 + GARRISON_TYPE_CLASS_ORDER = 3, + GARRISON_TYPE_WAR_CAMPAIGN = 9, + GARRISON_TYPE_COVENANT = 111 }; enum GarrisonFactionIndex @@ -54,8 +56,11 @@ enum GarrisonFollowerFlags enum GarrisonFollowerType { - FOLLOWER_TYPE_GARRISON = 1, - FOLLOWER_TYPE_SHIPYARD = 2 + FOLLOWER_TYPE_GARRISON = 1, + FOLLOWER_TYPE_SHIPYARD = 2, + FOLLOWER_TYPE_CLASS_ORDER = 4, + FOLLOWER_TYPE_WAR_CAMPAIGN = 11, + FOLLOWER_TYPE_COVENANT = 123 }; enum GarrisonAbilityFlags |