From 4f3d0c0ac6400c83b337be91b7cd5b937d813b39 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Sat, 5 Jun 2021 19:55:05 -0400 Subject: [PATCH] Core/Achievements: Implemented CRITERIA_TYPE_UPGRADE_GARRISON_BUILDING Port From (https://github.com/TrinityCore/TrinityCore/commit/d1ef8f28b01507286a6f876913c3242d0743ebef) --- Source/Framework/Constants/GarrisonConst.cs | 9 +++++++-- Source/Game/Achievements/CriteriaHandler.cs | 4 ++-- Source/Game/Garrisons/Garrisons.cs | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Source/Framework/Constants/GarrisonConst.cs b/Source/Framework/Constants/GarrisonConst.cs index 8c7055dd1..14d516935 100644 --- a/Source/Framework/Constants/GarrisonConst.cs +++ b/Source/Framework/Constants/GarrisonConst.cs @@ -36,7 +36,10 @@ namespace Framework.Constants public enum GarrisonFollowerType { Garrison = 1, - Shipyard = 2 + Shipyard = 2, + ClassOrder = 4, + WarCampaign = 11, + Covenant = 123 } public enum GarrisonAbilityFlags : ushort @@ -159,6 +162,8 @@ namespace Framework.Constants public enum GarrisonType { Garrison = 2, - ClassOrder = 3 + ClassOrder = 3, + WarCampaign = 9, + Covenant = 111 } } diff --git a/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs index b7c2156ea..d9a0bc9d6 100644 --- a/Source/Game/Achievements/CriteriaHandler.cs +++ b/Source/Game/Achievements/CriteriaHandler.cs @@ -138,6 +138,7 @@ namespace Game.Achievements case CriteriaTypes.WinArena: // This also behaves like ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA case CriteriaTypes.OnLogin: case CriteriaTypes.PlaceGarrisonBuilding: + case CriteriaTypes.UpgradeGarrisonBuilding: case CriteriaTypes.OwnBattlePetCount: case CriteriaTypes.HonorLevelReached: case CriteriaTypes.PrestigeReached: @@ -399,7 +400,6 @@ namespace Game.Achievements case CriteriaTypes.EnterArea: case CriteriaTypes.LeaveArea: case CriteriaTypes.CompleteDungeonEncounter: - case CriteriaTypes.UpgradeGarrisonBuilding: case CriteriaTypes.ConstructGarrisonBuilding: case CriteriaTypes.UpgradeGarrison: case CriteriaTypes.StartGarrisonMission: @@ -1761,7 +1761,7 @@ namespace Game.Achievements return false; break; case CriteriaAdditionalCondition.Mentor: // 123 - if (!referencePlayer.HasPlayerFlag(PlayerFlags.Mentor)) + if (!referencePlayer.HasPlayerFlag(PlayerFlags.Timewalking)) return false; break; case CriteriaAdditionalCondition.GarrisonLevelAbove: // 126 diff --git a/Source/Game/Garrisons/Garrisons.cs b/Source/Game/Garrisons/Garrisons.cs index f40087ecc..7b129e141 100644 --- a/Source/Game/Garrisons/Garrisons.cs +++ b/Source/Game/Garrisons/Garrisons.cs @@ -476,6 +476,8 @@ namespace Game.Garrisons GarrisonBuildingActivated buildingActivated = new(); buildingActivated.GarrPlotInstanceID = garrPlotInstanceId; _owner.SendPacket(buildingActivated); + + _owner.UpdateCriteria(CriteriaTypes.UpgradeGarrisonBuilding, plot.BuildingInfo.PacketInfo.Value.GarrBuildingID); } } }