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); } } }