/* * Copyright (C) 2012-2017 CypherCore * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Framework.Constants { public struct GarrisonFactionIndex { public const uint Horde = 0; public const uint Alliance = 1; } public enum GarrisonBuildingFlags : byte { NeedsPlan = 0x1 } enum GarrisonFollowerFlags { Unique = 0x1 } public enum GarrisonFollowerType { Garrison = 1, Shipyard = 2 } public enum GarrisonAbilityFlags : ushort { Trait = 0x01, CannotRoll = 0x02, HordeOnly = 0x04, AllianceOnly = 0x08, CannotRemove = 0x10, Exclusive = 0x20, SingleMissionDuration = 0x40, ActiveOnlyOnZoneSupport = 0x80, ApplyToFirstMission = 0x100, IsSpecialization = 0x200, IsEmptySlot = 0x400 } public enum GarrisonError { Success = 0, NoGarrison = 1, GarrisonExists = 2, GarrisonSameTypeExists = 3, InvalidGarrison = 4, InvalidGarrisonLevel = 5, GarrisonLevelUnchanged = 6, NotInGarrison = 7, NoBuilding = 8, BuildingExists = 9, InvalidPlotInstanceId = 10, InvalidBuildingId = 11, InvalidUpgradeLevel = 12, UpgradeLevelExceedsGarrisonLevel = 13, PlotsNotFull = 14, InvalidSiteId = 15, InvalidPlotBuilding = 16, InvalidFaction = 17, InvalidSpecialization = 18, SpecializationExists = 19, SpecializationOnCooldown = 20, BlueprintExists = 21, RequiresBlueprint = 22, InvalidDoodadSetId = 23, BuildingTypeExists = 24, BuildingNotActive = 25, ConstructionComplete = 26, FollowerExists = 27, InvalidFollower = 28, FollowerAlreadyOnMission = 29, FollowerInBuilding = 30, FollowerInvalidForBuilding = 31, InvalidFollowerLevel = 32, MissionExists = 33, InvalidMission = 34, InvalidMissionTime = 35, InvalidMissionRewardIndex = 36, MissionNotOffered = 37, AlreadyOnMission = 38, MissionSizeInvalid = 39, FollowerSoftCapExceeded = 40, NotOnMission = 41, AlreadyCompletedMission = 42, MissionNotComplete = 43, MissionRewardsPending = 44, MissionExpired = 45, NotEnoughCurrency = 46, NotEnoughGold = 47, BuildingMissing = 48, NoArchitect = 49, ArchitectNotAvailable = 50, NoMissionNpc = 51, MissionNpcNotAvailable = 52, InternalError = 53, InvalidStaticTableValue = 54, InvalidItemLevel = 55, InvalidAvailableRecruit = 56, FollowerAlreadyRecruited = 57, RecruitmentGenerationInProgress = 58, RecruitmentOnCooldown = 59, RecruitBlockedByGeneration = 60, RecruitmentNpcNotAvailable = 61, InvalidFollowerQuality = 62, ProxyNotOk = 63, RecallPortalUsedLessThan24HoursAgo = 64, OnRemoveBuildingSpellFailed = 65, OperationNotSupported = 66, FollowerFatigued = 67, UpgradeConditionFailed = 68, FollowerInactive = 69, FollowerActive = 70, FollowerActivationUnavailable = 71, FollowerTypeMismatch = 72, InvalidGarrisonType = 73, MissionStartConditionFailed = 74, InvalidFollowerAbility = 75, InvalidMissionBonusAbility = 76, HigherBuildingTypeExists = 77, AtFollowerHardCap = 78, FollowerCannotGainXp = 79, NoOp = 80, AtClassSpecCap = 81, MissionRequires100ToStart = 82, MissionMissingRequiredFollower = 83, InvalidTalent = 84, AlreadyResearchingTalent = 85, FailedCondition = 86, InvalidTier = 87, InvalidClass = 88 } public enum GarrisonFollowerStatus { Favorite = 0x01, Exhausted = 0x02, Inactive = 0x04, Troop = 0x08, NoXpGain = 0x10 } public enum GarrisonType { Garrison = 2, ClassOrder = 3 } }