diff --git a/Source/ACE.Entity/Enum/Properties/ClientProperties.cs b/Source/ACE.Entity/Enum/Properties/ClientProperties.cs
deleted file mode 100644
index d71bd81383..0000000000
--- a/Source/ACE.Entity/Enum/Properties/ClientProperties.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-
-namespace ACE.Entity.Enum.Properties
-{
- ///
- /// Static selection of client enums that are NOT [ServerOnly]
- ///
- public static class ClientProperties
- {
- ///
- /// Method to return a list of enums by attribute type - in this case not [ServerOnly] using generics to enhance code reuse.
- ///
- /// Enum to list by NOT [ServerOnly]
- /// Type of the results
- private static HashSet GetValues()
- {
- var list =typeof(T).GetFields().Select(x => new
- {
- att = x.GetCustomAttributes(false).OfType().FirstOrDefault(),
- member = x
- }).Where(x => x.att == null && x.member.Name != "value__").Select(x => (TResult)x.member.GetValue(null)).ToList();
-
- return new HashSet(list);
- }
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesInt = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesInt64 = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesBool = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesString = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesDouble = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesDataId = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are NOT [ServerOnly]
- ///
- public static HashSet PropertiesInstanceId = GetValues();
- }
-}
diff --git a/Source/ACE.Entity/Enum/Properties/PositionType.cs b/Source/ACE.Entity/Enum/Properties/PositionType.cs
index d08731fdd8..9474cb7bb0 100644
--- a/Source/ACE.Entity/Enum/Properties/PositionType.cs
+++ b/Source/ACE.Entity/Enum/Properties/PositionType.cs
@@ -182,7 +182,6 @@ public enum PositionType : ushort
///
TeleportedCharacter = 27,
- [ServerOnly]
PCAPRecordedLocation = 8040
}
}
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyBool.cs b/Source/ACE.Entity/Enum/Properties/PropertyBool.cs
index d995a4a17a..a6bf4e8de0 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyBool.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyBool.cs
@@ -2,18 +2,17 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyBool : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
-
Undef = 0,
- [Ephemeral][ServerOnly]
- Stuck = 1,
[Ephemeral]
+ Stuck = 1,
+ [AssessmentProperty][Ephemeral]
Open = 2,
+ [AssessmentProperty]
Locked = 3,
RotProof = 4,
AllegianceUpdateRequest = 5,
@@ -22,25 +21,18 @@ public enum PropertyBool : ushort
AllowGive = 8,
CurrentlyAttacking = 9,
AttackerAi = 10,
- [ServerOnly]
IgnoreCollisions = 11,
- [ServerOnly]
ReportCollisions = 12,
- [ServerOnly]
Ethereal = 13,
- [ServerOnly]
GravityStatus = 14,
- [ServerOnly]
LightsStatus = 15,
- [ServerOnly]
ScriptedCollision = 16,
- [ServerOnly]
Inelastic = 17,
- [ServerOnly][Ephemeral]
+ [Ephemeral]
Visibility = 18,
- [ServerOnly]
Attackable = 19,
SafeSpellComponents = 20,
+ [SendOnLogin]
AdvocateState = 21,
Inscribable = 22,
DestroyOnSell = 23,
@@ -66,11 +58,11 @@ public enum PropertyBool : ushort
ReportCollisionsAsEnvironment = 41,
AllowEdgeSlide = 42,
AdvocateQuest = 43,
- [Ephemeral][SendOnLogin]
+ [SendOnLogin][Ephemeral]
IsAdmin = 44,
- [Ephemeral][SendOnLogin]
+ [SendOnLogin][Ephemeral]
IsArch = 45,
- [Ephemeral][SendOnLogin]
+ [SendOnLogin][Ephemeral]
IsSentinel = 46,
[SendOnLogin]
IsAdvocate = 47,
@@ -91,6 +83,7 @@ public enum PropertyBool : ushort
IsAcceptingTells = 60,
LoggingChannel = 61,
OpensAnyLock = 62,
+ [AssessmentProperty]
UnlimitedUse = 63,
GeneratedTreasureItem = 64,
IgnoreMagicResist = 65,
@@ -98,6 +91,7 @@ public enum PropertyBool : ushort
AiAllowTrade = 67,
[SendOnLogin]
SpellComponentsRequired = 68,
+ [AssessmentProperty]
IsSellable = 69,
IgnoreShieldsBySkill = 70,
NoDraw = 71,
@@ -113,25 +107,29 @@ public enum PropertyBool : ushort
IgnorePortalRestrictions = 80,
RequiresBackpackSlot = 81,
DontTurnOrMoveWhenGiving = 82,
- [ServerOnly]
NpcLooksLikeObject = 83,
IgnoreCloIcons = 84,
+ [AssessmentProperty]
AppraisalHasAllowedWielder = 85,
ChestRegenOnClose = 86,
LogoffInMinigame = 87,
PortalShowDestination = 88,
PortalIgnoresPkAttackTimer = 89,
NpcInteractsSilently = 90,
+ [AssessmentProperty]
Retained = 91,
IgnoreAuthor = 92,
Limbo = 93,
+ [AssessmentProperty]
AppraisalHasAllowedActivator = 94,
ExistedBeforeAllegianceXpChanges = 95,
IsDeaf = 96,
- [Ephemeral][SendOnLogin]
+ [SendOnLogin][Ephemeral]
IsPsr = 97,
Invincible = 98,
+ [AssessmentProperty]
Ivoryable = 99,
+ [AssessmentProperty]
Dyable = 100,
CanGenerateRare = 101,
CorpseGeneratedRare = 102,
@@ -142,6 +140,7 @@ public enum PropertyBool : ushort
[Ephemeral]
FirstEnterWorldDone = 106,
RecallsDisabled = 107,
+ [AssessmentProperty]
RareUsesTimer = 108,
ActdPreorderReceivedItems = 109,
[Ephemeral]
@@ -167,39 +166,21 @@ public enum PropertyBool : ushort
[SendOnLogin]
Account15Days = 127,
HadNoVitae = 128,
- [SendOnLogin]
NoOlthoiTalk = 129,
+ [AssessmentProperty]
AutowieldLeft = 130,
- /* custom */
- [ServerOnly]
+ /* Custom Properties */
LinkedPortalOneSummon = 9001,
- [ServerOnly]
LinkedPortalTwoSummon = 9002,
- [ServerOnly]
HouseEvicted = 9003,
- [ServerOnly]
UntrainedSkills = 9004,
- [Ephemeral][ServerOnly]
+ [Ephemeral]
IsEnvoy = 9005,
- [ServerOnly]
UnspecializedSkills = 9006,
- [ServerOnly]
FreeSkillResetRenewed = 9007,
- [ServerOnly]
FreeAttributeResetRenewed = 9008,
- [ServerOnly]
SkillTemplesTimerReset = 9009,
- [ServerOnly]
FreeMasteryResetRenewed = 9010,
}
-
- public static class PropertyBoolExtensions
- {
- public static string GetDescription(this PropertyBool prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
- }
}
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyDataId.cs b/Source/ACE.Entity/Enum/Properties/PropertyDataId.cs
index 581daad3ac..a9b8f357c4 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyDataId.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyDataId.cs
@@ -2,188 +2,107 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyDataId : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
-
- [ServerOnly]
- Undef = 0,
- [ServerOnly]
- Setup = 1,
+ Undef = 0,
+ Setup = 1,
[SendOnLogin]
- MotionTable = 2,
- [ServerOnly]
- SoundTable = 3,
+ MotionTable = 2,
+ SoundTable = 3,
[SendOnLogin]
- CombatTable = 4,
- [ServerOnly]
- QualityFilter = 5,
- [ServerOnly]
- PaletteBase = 6,
- [ServerOnly]
- ClothingBase = 7,
- [ServerOnly]
- Icon = 8,
+ CombatTable = 4,
+ QualityFilter = 5,
+ PaletteBase = 6,
+ ClothingBase = 7,
+ Icon = 8,
+ [AssessmentProperty]
+ EyesTexture = 9,
[AssessmentProperty]
- EyesTexture = 9,
+ NoseTexture = 10,
[AssessmentProperty]
- NoseTexture = 10,
+ MouthTexture = 11,
+ DefaultEyesTexture = 12,
+ DefaultNoseTexture = 13,
+ DefaultMouthTexture = 14,
[AssessmentProperty]
- MouthTexture = 11,
- [ServerOnly]
- DefaultEyesTexture = 12,
- [ServerOnly]
- DefaultNoseTexture = 13,
- [ServerOnly]
- DefaultMouthTexture = 14,
+ HairPalette = 15,
[AssessmentProperty]
- HairPalette = 15,
+ EyesPalette = 16,
[AssessmentProperty]
- EyesPalette = 16,
+ SkinPalette = 17,
+ HeadObject = 18,
+ ActivationAnimation = 19,
+ InitMotion = 20,
+ ActivationSound = 21,
+ PhysicsEffectTable = 22,
+ UseSound = 23,
+ UseTargetAnimation = 24,
+ UseTargetSuccessAnimation = 25,
+ UseTargetFailureAnimation = 26,
+ UseUserAnimation = 27,
+ Spell = 28,
+ SpellComponent = 29,
+ PhysicsScript = 30,
+ LinkedPortalOne = 31,
+ WieldedTreasureType = 32,
+ InventoryTreasureType = 33,
+ ShopTreasureType = 34,
+ DeathTreasureType = 35,
+ MutateFilter = 36,
+ ItemSkillLimit = 37,
+ UseCreateItem = 38,
+ DeathSpell = 39,
+ VendorsClassId = 40,
[AssessmentProperty]
- SkinPalette = 17,
- [ServerOnly]
- HeadObject = 18,
- [ServerOnly]
- ActivationAnimation = 19,
- [ServerOnly]
- InitMotion = 20,
- [ServerOnly]
- ActivationSound = 21,
- [ServerOnly]
- PhysicsEffectTable = 22,
- [ServerOnly]
- UseSound = 23,
- [ServerOnly]
- UseTargetAnimation = 24,
- [ServerOnly]
- UseTargetSuccessAnimation = 25,
- [ServerOnly]
- UseTargetFailureAnimation = 26,
- [ServerOnly]
- UseUserAnimation = 27,
- [ServerOnly]
- Spell = 28,
- [ServerOnly]
- SpellComponent = 29,
- [ServerOnly]
- PhysicsScript = 30,
- [ServerOnly]
- LinkedPortalOne = 31,
- [ServerOnly]
- WieldedTreasureType = 32,
- [ServerOnly]
- InventoryTreasureType = 33,
- [ServerOnly]
- ShopTreasureType = 34,
- [ServerOnly]
- DeathTreasureType = 35,
- [ServerOnly]
- MutateFilter = 36,
- [ServerOnly]
- ItemSkillLimit = 37,
- [ServerOnly]
- UseCreateItem = 38,
- [ServerOnly]
- DeathSpell = 39,
- [ServerOnly]
- VendorsClassId = 40,
- [ServerOnly]
- ItemSpecializedOnly = 41,
- [ServerOnly]
- HouseId = 42,
- [ServerOnly]
- AccountHouseId = 43,
- [ServerOnly]
- RestrictionEffect = 44,
- [ServerOnly]
- CreationMutationFilter = 45,
- [ServerOnly]
- TsysMutationFilter = 46,
- [ServerOnly]
- LastPortal = 47,
- [ServerOnly]
- LinkedPortalTwo = 48,
- [ServerOnly]
- OriginalPortal = 49,
- [ServerOnly]
- IconOverlay = 50,
- [ServerOnly]
- IconOverlaySecondary = 51,
- [ServerOnly]
- IconUnderlay = 52,
- [ServerOnly]
- AugmentationMutationFilter = 53,
- [ServerOnly]
- AugmentationEffect = 54,
- ProcSpell = 55,
- [ServerOnly]
- AugmentationCreateItem = 56,
- [ServerOnly]
- AlternateCurrency = 57,
- [ServerOnly]
- BlueSurgeSpell = 58,
- [ServerOnly]
- YellowSurgeSpell = 59,
- [ServerOnly]
- RedSurgeSpell = 60,
- [ServerOnly]
- OlthoiDeathTreasureType = 61,
+ ItemSpecializedOnly = 41,
+ HouseId = 42,
+ AccountHouseId = 43,
+ RestrictionEffect = 44,
+ CreationMutationFilter = 45,
+ TsysMutationFilter = 46,
+ LastPortal = 47,
+ LinkedPortalTwo = 48,
+ OriginalPortal = 49,
+ IconOverlay = 50,
+ IconOverlaySecondary = 51,
+ IconUnderlay = 52,
+ AugmentationMutationFilter = 53,
+ AugmentationEffect = 54,
+ [AssessmentProperty]
+ ProcSpell = 55,
+ AugmentationCreateItem = 56,
+ AlternateCurrency = 57,
+ BlueSurgeSpell = 58,
+ YellowSurgeSpell = 59,
+ RedSurgeSpell = 60,
+ OlthoiDeathTreasureType = 61,
- [ServerOnly]
+ /* Custom Properties */
PCAPRecordedWeenieHeader = 8001,
- [ServerOnly]
PCAPRecordedWeenieHeader2 = 8002,
- [ServerOnly]
PCAPRecordedObjectDesc = 8003,
- [ServerOnly]
PCAPRecordedPhysicsDesc = 8005,
- [ServerOnly]
PCAPRecordedParentLocation = 8009,
- [ServerOnly]
PCAPRecordedDefaultScript = 8019,
- [ServerOnly]
PCAPRecordedTimestamp0 = 8020,
- [ServerOnly]
PCAPRecordedTimestamp1 = 8021,
- [ServerOnly]
PCAPRecordedTimestamp2 = 8022,
- [ServerOnly]
PCAPRecordedTimestamp3 = 8023,
- [ServerOnly]
PCAPRecordedTimestamp4 = 8024,
- [ServerOnly]
PCAPRecordedTimestamp5 = 8025,
- [ServerOnly]
PCAPRecordedTimestamp6 = 8026,
- [ServerOnly]
PCAPRecordedTimestamp7 = 8027,
- [ServerOnly]
PCAPRecordedTimestamp8 = 8028,
- [ServerOnly]
PCAPRecordedTimestamp9 = 8029,
- [ServerOnly]
PCAPRecordedMaxVelocityEstimated = 8030,
- [ServerOnly]
- PCAPPhysicsDIDDataTemplatedFrom = 8044
-
- //[ServerOnly]
- //HairTexture = 9001,
- //[ServerOnly]
- //DefaultHairTexture = 9002,
+ PCAPPhysicsDIDDataTemplatedFrom = 8044,
}
public static class PropertyDataIdExtensions
{
- public static string GetDescription(this PropertyDataId prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
-
public static string GetValueEnumName(this PropertyDataId property, uint value)
{
switch (property)
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyFloat.cs b/Source/ACE.Entity/Enum/Properties/PropertyFloat.cs
index 59847a4472..f0f38fd8a8 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyFloat.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyFloat.cs
@@ -2,19 +2,18 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyFloat : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
-
Undef = 0,
HeartbeatInterval = 1,
[Ephemeral]
HeartbeatTimestamp = 2,
HealthRate = 3,
StaminaRate = 4,
+ [AssessmentProperty]
ManaRate = 5,
HealthUponResurrection = 6,
StaminaUponResurrection = 7,
@@ -39,6 +38,7 @@ public enum PropertyFloat : ushort
MaximumVelocity = 26,
RotationSpeed = 27,
MotionTimestamp = 28,
+ [AssessmentProperty]
WeaponDefense = 29,
WimpyLevel = 30,
VisualAwarenessRange = 31,
@@ -99,6 +99,7 @@ public enum PropertyFloat : ushort
Shade2 = 84,
Shade3 = 85,
Shade4 = 86,
+ [AssessmentProperty]
ItemEfficiency = 87,
ItemManaUpdateTimestamp = 88,
SpellGestureSpeedMod = 89,
@@ -113,6 +114,7 @@ public enum PropertyFloat : ushort
UseTimestamp = 98,
[Ephemeral]
UseLockTimestamp = 99,
+ [AssessmentProperty]
HealkitMod = 100,
FrozenTimestamp = 101,
HealthRateMod = 102,
@@ -154,7 +156,9 @@ public enum PropertyFloat : ushort
EventSpamTimestamp = 133,
EventSpamRate = 134,
InventoryOffset = 135,
+ [AssessmentProperty]
CriticalMultiplier = 136,
+ [AssessmentProperty]
ManaStoneDestroyChance = 137,
SlayerDamageBonus = 138,
AllegianceInfoSpamTimestamp = 139,
@@ -163,21 +167,29 @@ public enum PropertyFloat : ushort
[Ephemeral]
AppraisalRequestedTimestamp = 142,
AppraisalHeartbeatDueTimestamp = 143,
+ [AssessmentProperty]
ManaConversionMod = 144,
LastPkAttackTimestamp = 145,
FellowshipUpdateTimestamp = 146,
+ [AssessmentProperty]
CriticalFrequency = 147,
LimboStartTimestamp = 148,
+ [AssessmentProperty]
WeaponMissileDefense = 149,
+ [AssessmentProperty]
WeaponMagicDefense = 150,
IgnoreShield = 151,
+ [AssessmentProperty]
ElementalDamageMod = 152,
StartMissileAttackTimestamp = 153,
LastRareUsedTimestamp = 154,
+ [AssessmentProperty]
IgnoreArmor = 155,
ProcSpellRate = 156,
+ [AssessmentProperty]
ResistanceModifier = 157,
AllegianceGagTimestamp = 158,
+ [AssessmentProperty]
AbsorbMagicDamage = 159,
CachedMaxAbsorbMagicDamage = 160,
GagDuration = 161,
@@ -187,6 +199,7 @@ public enum PropertyFloat : ushort
HealingModifier = 164,
ArmorModVsNether = 165,
ResistNether = 166,
+ [AssessmentProperty]
CooldownDuration = 167,
[SendOnLogin]
WeaponAuraOffense = 168,
@@ -197,34 +210,16 @@ public enum PropertyFloat : ushort
[SendOnLogin]
WeaponAuraManaConv = 171,
- [ServerOnly]
+ /* Custom Properties */
PCAPRecordedWorkmanship = 8004,
- [ServerOnly]
PCAPRecordedVelocityX = 8010,
- [ServerOnly]
PCAPRecordedVelocityY = 8011,
- [ServerOnly]
PCAPRecordedVelocityZ = 8012,
- [ServerOnly]
PCAPRecordedAccelerationX = 8013,
- [ServerOnly]
PCAPRecordedAccelerationY = 8014,
- [ServerOnly]
PCAPRecordedAccelerationZ = 8015,
- [ServerOnly]
PCAPRecordeOmegaX = 8016,
- [ServerOnly]
PCAPRecordeOmegaY = 8017,
- [ServerOnly]
- PCAPRecordeOmegaZ = 8018
- }
-
- public static class PropertyFloatExtensions
- {
- public static string GetDescription(this PropertyFloat prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
+ PCAPRecordeOmegaZ = 8018,
}
}
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyInstanceId.cs b/Source/ACE.Entity/Enum/Properties/PropertyInstanceId.cs
index 0bb169f942..2410e955ee 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyInstanceId.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyInstanceId.cs
@@ -2,15 +2,12 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyInstanceId : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
-
- // description attributes are used by the weenie editor for a cleaner display name
-
- Undef = 0,
+ Undef = 0,
Owner = 1,
Container = 2,
Wielder = 3,
@@ -52,7 +49,7 @@ public enum PropertyInstanceId : ushort
CombatTarget = 27,
[Ephemeral]
HealthQueryTarget = 28,
- [ServerOnly][Ephemeral]
+ [Ephemeral]
LastUnlocker = 29,
CrashAndTurnTarget = 30,
AllowedActivator = 31,
@@ -69,24 +66,14 @@ public enum PropertyInstanceId : ushort
LimboSource = 40,
Snooper = 41,
TeleportedCharacter = 42,
- [ServerOnly][Ephemeral]
+ [Ephemeral]
Pet = 43,
PetOwner = 44,
- [ServerOnly][Ephemeral]
+ [Ephemeral]
PetDevice = 45,
- [ServerOnly]
+ /* Custom Properties */
PCAPRecordedObjectIID = 8000,
- [ServerOnly]
- PCAPRecordedParentIID = 8008
- }
-
- public static class PropertyInstanceIdExtensions
- {
- public static string GetDescription(this PropertyInstanceId prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
+ PCAPRecordedParentIID = 8008,
}
}
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyInt.cs b/Source/ACE.Entity/Enum/Properties/PropertyInt.cs
index 12c1173a72..ccd9e80e0d 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyInt.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyInt.cs
@@ -4,96 +4,88 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyInt : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
-
Undef = 0,
- [ServerOnly]
ItemType = 1,
+ [AssessmentProperty]
CreatureType = 2,
- [ServerOnly]
PaletteTemplate = 3,
ClothingPriority = 4,
- [SendOnLogin]
+ [AssessmentProperty][SendOnLogin]
EncumbranceVal = 5, // ENCUMB_VAL_INT,
- [SendOnLogin]
ItemsCapacity = 6,
[SendOnLogin]
ContainersCapacity = 7,
- [ServerOnly]
Mass = 8,
- [ServerOnly]
- ValidLocations = 9, // LOCATIONS_INT
- [ServerOnly]
+ ValidLocations = 9, // LOCATIONS_INT,
CurrentWieldedLocation = 10,
- [ServerOnly]
MaxStackSize = 11,
- [ServerOnly]
StackSize = 12,
- [ServerOnly]
StackUnitEncumbrance = 13,
- [ServerOnly]
StackUnitMass = 14,
- [ServerOnly]
StackUnitValue = 15,
- [ServerOnly]
ItemUseable = 16,
+ [AssessmentProperty]
RareId = 17,
- [ServerOnly]
UiEffects = 18,
+ [AssessmentProperty]
Value = 19,
- [Ephemeral][SendOnLogin]
+ [SendOnLogin][Ephemeral]
CoinValue = 20,
TotalExperience = 21,
AvailableCharacter = 22,
TotalSkillCredits = 23,
[SendOnLogin]
AvailableSkillCredits = 24,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Level = 25,
+ [AssessmentProperty]
AccountRequirements = 26,
ArmorType = 27,
+ [AssessmentProperty]
ArmorLevel = 28,
AllegianceCpPool = 29,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
AllegianceRank = 30,
ChannelsAllowed = 31,
ChannelsActive = 32,
+ [AssessmentProperty]
Bonded = 33,
MonarchsRank = 34,
+ [AssessmentProperty]
AllegianceFollowers = 35,
+ [AssessmentProperty]
ResistMagic = 36,
ResistItemAppraisal = 37,
+ [AssessmentProperty]
ResistLockpick = 38,
DeprecatedResistRepair = 39,
[SendOnLogin]
CombatMode = 40,
CurrentAttackHeight = 41,
CombatCollisions = 42,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
NumDeaths = 43,
Damage = 44,
+ [AssessmentProperty]
DamageType = 45,
- [ServerOnly]
DefaultCombatStyle = 46,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
AttackType = 47,
WeaponSkill = 48,
WeaponTime = 49,
AmmoType = 50,
CombatUse = 51,
- [ServerOnly]
ParentLocation = 52,
///
/// TODO: Migrate inventory order away from this and instead use the new InventoryOrder property
/// TODO: PlacementPosition is used (very sparingly) in cache.bin, so it has (or had) a meaning at one point before we hijacked it
/// TODO: and used it for our own inventory order
///
- [ServerOnly]
PlacementPosition = 53,
WeaponEncumbrance = 54,
WeaponMass = 55,
@@ -106,7 +98,6 @@ public enum PropertyInt : ushort
DefendersSkill = 62,
AttackersSkillValue = 63,
AttackersClass = 64,
- [ServerOnly]
Placement = 65,
CheckpointStatus = 66,
Tolerance = 67,
@@ -130,21 +121,25 @@ public enum PropertyInt : ushort
ActivationResponse = 83,
OriginalValue = 84,
NumMoveFailures = 85,
+ [AssessmentProperty]
MinLevel = 86,
+ [AssessmentProperty]
MaxLevel = 87,
LockpickMod = 88,
+ [AssessmentProperty]
BoosterEnum = 89,
+ [AssessmentProperty]
BoostValue = 90,
+ [AssessmentProperty]
MaxStructure = 91,
+ [AssessmentProperty]
Structure = 92,
- [ServerOnly]
PhysicsState = 93,
- [ServerOnly]
TargetType = 94,
RadarBlipColor = 95,
EncumbranceCapacity = 96,
LoginTimestamp = 97,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
CreationTimestamp = 98,
PkLevelModifier = 99,
GeneratorType = 100,
@@ -152,19 +147,29 @@ public enum PropertyInt : ushort
LogoffTimestamp = 102,
GeneratorDestructionType = 103,
ActivationCreateClass = 104,
+ [AssessmentProperty]
ItemWorkmanship = 105,
+ [AssessmentProperty]
ItemSpellcraft = 106,
+ [AssessmentProperty]
ItemCurMana = 107,
+ [AssessmentProperty]
ItemMaxMana = 108,
+ [AssessmentProperty]
ItemDifficulty = 109,
+ [AssessmentProperty]
ItemAllegianceRankLimit = 110,
+ [AssessmentProperty]
PortalBitmask = 111,
AdvocateLevel = 112,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Gender = 113,
+ [AssessmentProperty]
Attuned = 114,
+ [AssessmentProperty]
ItemSkillLevelLimit = 115,
GateLogic = 116,
+ [AssessmentProperty]
ItemManaCost = 117,
Logoff = 118,
Active = 119,
@@ -173,7 +178,7 @@ public enum PropertyInt : ushort
AiCpThreshold = 122,
AiAdvancementStrategy = 123,
Version = 124,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Age = 125,
VendorHappyMean = 126,
VendorHappyVariance = 127,
@@ -181,12 +186,13 @@ public enum PropertyInt : ushort
[SendOnLogin]
VitaeCpPool = 129,
NumServicesSold = 130,
+ [AssessmentProperty]
MaterialType = 131,
[SendOnLogin]
NumAllegianceBreaks = 132,
[Ephemeral]
ShowableOnRadar = 133,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
PlayerKillerStatus = 134,
VendorHappyMaxItems = 135,
ScorePageNum = 136,
@@ -194,62 +200,63 @@ public enum PropertyInt : ushort
ScoreNumScores = 138,
[SendOnLogin]
DeathLevel = 139,
- [ServerOnly]
AiOptions = 140,
- [ServerOnly]
OpenToEveryone = 141,
- [ServerOnly]
GeneratorTimeType = 142,
- [ServerOnly]
GeneratorStartTime = 143,
- [ServerOnly]
GeneratorEndTime = 144,
- [ServerOnly]
GeneratorEndDestructionType = 145,
- [ServerOnly]
XpOverride = 146,
NumCrashAndTurns = 147,
ComponentWarningThreshold = 148,
HouseStatus = 149,
- [ServerOnly]
HookPlacement = 150,
- [ServerOnly]
HookType = 151,
- [ServerOnly]
HookItemType = 152,
AiPpThreshold = 153,
GeneratorVersion = 154,
HouseType = 155,
PickupEmoteOffset = 156,
WeenieIteration = 157,
+ [AssessmentProperty]
WieldRequirements = 158,
+ [AssessmentProperty]
WieldSkillType = 159,
+ [AssessmentProperty]
WieldDifficulty = 160,
- [ServerOnly]
HouseMaxHooksUsable = 161,
- [ServerOnly][Ephemeral]
+ [Ephemeral]
HouseCurrentHooksUsable = 162,
AllegianceMinLevel = 163,
AllegianceMaxLevel = 164,
HouseRelinkHookCount = 165,
+ [AssessmentProperty]
SlayerCreatureType = 166,
ConfirmationInProgress = 167,
ConfirmationTypeInProgress = 168,
TsysMutationData = 169,
+ [AssessmentProperty]
NumItemsInMaterial = 170,
+ [AssessmentProperty]
NumTimesTinkered = 171,
+ [AssessmentProperty]
AppraisalLongDescDecoration = 172,
+ [AssessmentProperty]
AppraisalLockpickSuccessPercent = 173,
- [Ephemeral]
+ [AssessmentProperty][Ephemeral]
AppraisalPages = 174,
- [Ephemeral]
+ [AssessmentProperty][Ephemeral]
AppraisalMaxPages = 175,
+ [AssessmentProperty]
AppraisalItemSkill = 176,
+ [AssessmentProperty]
GemCount = 177,
+ [AssessmentProperty]
GemType = 178,
+ [AssessmentProperty]
ImbuedEffect = 179,
AttackersRawSkillValue = 180,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
ChessRank = 181,
ChessTotalGames = 182,
ChessGamesWon = 183,
@@ -257,18 +264,18 @@ public enum PropertyInt : ushort
TypeOfAlteration = 185,
SkillToBeAltered = 186,
SkillAlterationCount = 187,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
HeritageGroup = 188,
TransferFromAttribute = 189,
TransferToAttribute = 190,
AttributeTransferCount = 191,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
FakeFishingSkill = 192,
+ [AssessmentProperty]
NumKeys = 193,
DeathTimestamp = 194,
PkTimestamp = 195,
VictimTimestamp = 196,
- [ServerOnly]
HookGroup = 197,
AllegianceSwearTimestamp = 198,
[SendOnLogin]
@@ -277,6 +284,7 @@ public enum PropertyInt : ushort
MeleeDefenseImbuedEffectTypeCache = 201,
MissileDefenseImbuedEffectTypeCache = 202,
MagicDefenseImbuedEffectTypeCache = 203,
+ [AssessmentProperty]
ElementalDamageBonus = 204,
ImbueAttempts = 205,
ImbueSuccesses = 206,
@@ -288,11 +296,8 @@ public enum PropertyInt : ushort
RaresTierThree = 212,
RaresTierFour = 213,
RaresTierFive = 214,
- [SendOnLogin]
AugmentationStat = 215,
- [SendOnLogin]
AugmentationFamilyStat = 216,
- [SendOnLogin]
AugmentationInnateFamily = 217,
[SendOnLogin]
AugmentationInnateStrength = 218,
@@ -336,7 +341,6 @@ public enum PropertyInt : ushort
AugmentationFasterRegen = 237,
[SendOnLogin]
AugmentationIncreasedSpellDuration = 238,
- [SendOnLogin]
AugmentationResistanceFamily = 239,
[SendOnLogin]
AugmentationResistanceSlash = 240,
@@ -362,48 +366,68 @@ public enum PropertyInt : ushort
RaresTierSeven = 254,
RaresTierSixLogin = 255,
RaresTierSevenLogin = 256,
+ [AssessmentProperty]
ItemAttributeLimit = 257,
+ [AssessmentProperty]
ItemAttributeLevelLimit = 258,
+ [AssessmentProperty]
ItemAttribute2ndLimit = 259,
+ [AssessmentProperty]
ItemAttribute2ndLevelLimit = 260,
+ [AssessmentProperty]
CharacterTitleId = 261,
+ [AssessmentProperty]
NumCharacterTitles = 262,
+ [AssessmentProperty]
ResistanceModifierType = 263,
FreeTinkersBitfield = 264,
+ [AssessmentProperty]
EquipmentSetId = 265,
PetClass = 266,
+ [AssessmentProperty]
Lifespan = 267,
- [Ephemeral]
+ [AssessmentProperty][Ephemeral]
RemainingLifespan = 268,
UseCreateQuantity = 269,
+ [AssessmentProperty]
WieldRequirements2 = 270,
+ [AssessmentProperty]
WieldSkillType2 = 271,
+ [AssessmentProperty]
WieldDifficulty2 = 272,
+ [AssessmentProperty]
WieldRequirements3 = 273,
+ [AssessmentProperty]
WieldSkillType3 = 274,
+ [AssessmentProperty]
WieldDifficulty3 = 275,
+ [AssessmentProperty]
WieldRequirements4 = 276,
+ [AssessmentProperty]
WieldSkillType4 = 277,
+ [AssessmentProperty]
WieldDifficulty4 = 278,
+ [AssessmentProperty]
Unique = 279,
+ [AssessmentProperty]
SharedCooldown = 280,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Faction1Bits = 281,
Faction2Bits = 282,
Faction3Bits = 283,
Hatred1Bits = 284,
Hatred2Bits = 285,
Hatred3Bits = 286,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
SocietyRankCelhan = 287,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
SocietyRankEldweb = 288,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
SocietyRankRadblo = 289,
HearLocalSignals = 290,
HearLocalSignalsRadius = 291,
+ [AssessmentProperty]
Cleaving = 292,
- [SendOnLogin]
AugmentationSpecializeGearcraft = 293,
[SendOnLogin]
AugmentationInfusedCreatureMagic = 294,
@@ -423,13 +447,17 @@ public enum PropertyInt : ushort
AugmentationSkilledMissile = 301,
[SendOnLogin]
AugmentationSkilledMagic = 302,
+ [AssessmentProperty]
ImbuedEffect2 = 303,
+ [AssessmentProperty]
ImbuedEffect3 = 304,
+ [AssessmentProperty]
ImbuedEffect4 = 305,
+ [AssessmentProperty]
ImbuedEffect5 = 306,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
DamageRating = 307,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
DamageResistRating = 308,
[SendOnLogin]
AugmentationDamageBonus = 309,
@@ -438,30 +466,32 @@ public enum PropertyInt : ushort
ImbueStackingBits = 311,
[SendOnLogin]
HealOverTime = 312,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
CritRating = 313,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
CritDamageRating = 314,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
CritResistRating = 315,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
CritDamageResistRating = 316,
[SendOnLogin]
HealingResistRating = 317,
[SendOnLogin]
DamageOverTime = 318,
+ [AssessmentProperty]
ItemMaxLevel = 319,
+ [AssessmentProperty]
ItemXpStyle = 320,
EquipmentSetExtra = 321,
[SendOnLogin]
AetheriaBitfield = 322,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
HealingBoostRating = 323,
+ [AssessmentProperty]
HeritageSpecificArmor = 324,
AlternateRacialSkills = 325,
[SendOnLogin]
AugmentationJackOfAllTrades = 326,
- [SendOnLogin]
AugmentationResistanceNether = 327,
[SendOnLogin]
AugmentationInfusedVoidMagic = 328,
@@ -496,17 +526,19 @@ public enum PropertyInt : ushort
LumAugSkilledCraft = 343,
[SendOnLogin]
LumAugSkilledSpec = 344,
- [SendOnLogin]
LumAugNoDestroyCraft = 345,
RestrictInteraction = 346,
+ [SendOnLogin]
OlthoiLootTimestamp = 347,
OlthoiLootStep = 348,
UseCreatesContractId = 349,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
DotResistRating = 350,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
LifeResistRating = 351,
+ [AssessmentProperty]
CloakWeaveProc = 352,
+ [AssessmentProperty]
WeaponType = 353,
[SendOnLogin]
MeleeMastery = 354,
@@ -526,119 +558,88 @@ public enum PropertyInt : ushort
UseLevelRequirement = 364,
[SendOnLogin]
LumAugAllSkills = 365,
+ [AssessmentProperty]
UseRequiresSkill = 366,
+ [AssessmentProperty]
UseRequiresSkillLevel = 367,
+ [AssessmentProperty]
UseRequiresSkillSpec = 368,
+ [AssessmentProperty]
UseRequiresLevel = 369,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearDamage = 370,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearDamageResist = 371,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearCrit = 372,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearCritResist = 373,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearCritDamage = 374,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearCritDamageResist = 375,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearHealingBoost = 376,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearNetherResist = 377,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearLifeResist = 378,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearMaxHealth = 379,
Unknown380 = 380,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
PKDamageRating = 381,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
PKDamageResistRating = 382,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearPKDamageRating = 383,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearPKDamageResistRating = 384,
Unknown385 = 385,
///
/// Overpower chance % for endgame creatures.
///
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Overpower = 386,
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
OverpowerResist = 387,
// Client does not display accurately
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearOverpower = 388,
// Client does not display accurately
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
GearOverpowerResist = 389,
// Number of times a character has enlightened
- [SendOnLogin]
+ [SendOnLogin][AssessmentProperty]
Enlightenment = 390,
- [ServerOnly]
+ /* Custom Properties */
PCAPRecordedAutonomousMovement = 8007,
- [ServerOnly]
PCAPRecordedMaxVelocityEstimated = 8030,
- [ServerOnly]
PCAPRecordedPlacement = 8041,
- [ServerOnly]
PCAPRecordedAppraisalPages = 8042,
- [ServerOnly]
PCAPRecordedAppraisalMaxPages = 8043,
- //[ServerOnly]
- //TotalLogins = 9001,
- //[ServerOnly]
- //DeletionTimestamp = 9002,
- //[ServerOnly]
- //CharacterOptions1 = 9003,
- //[ServerOnly]
- //CharacterOptions2 = 9004,
- //[ServerOnly]
- //LootTier = 9005,
- //[ServerOnly]
- //GeneratorProbability = 9006,
- //[ServerOnly]
- //WeenieType = 9007 // I don't think this property type is needed anymore. We don't store the weenie type in the property bags, we store it as a separate field in the base objects.
- [ServerOnly]
- CurrentLoyaltyAtLastLogoff = 9008,
- [ServerOnly]
- CurrentLeadershipAtLastLogoff = 9009,
- [ServerOnly]
- AllegianceOfficerRank = 9010,
- [ServerOnly]
- HouseRentTimestamp = 9011,
- ///
- /// Stores the player's selected hairstyle at creation or after a barber use. This is used only for Gear Knights and Olthoi characters who have more than a single part/texture for a "hairstyle" (BodyStyle)
- ///
- [ServerOnly]
- Hairstyle = 9012,
- ///
- /// Used to store the calculated Clothing Priority for use with armor reduced items and items like Over-Robes.
- ///
- [Ephemeral][ServerOnly]
- VisualClothingPriority = 9013,
- [ServerOnly]
- SquelchGlobal = 9014,
-
- ///
- /// TODO: This is a place holder for future use. See PlacementPosition
- /// This is the sort order for items in a container
- ///
- [ServerOnly]
- InventoryOrder = 9015,
+ // TotalLogins = 9001,
+ // DeletionTimestamp = 9002,
+ // CharacterOptions1 = 9003,
+ // CharacterOptions2 = 9004,
+ // LootTier = 9005,
+ // GeneratorProbability = 9006,
+ // WeenieType = 9007
+ CurrentLoyaltyAtLastLogoff = 9008,
+ CurrentLeadershipAtLastLogoff = 9009,
+ AllegianceOfficerRank = 9010,
+ HouseRentTimestamp = 9011,
+ Hairstyle = 9012,
+ [Ephemeral]
+ VisualClothingPriority = 9013,
+ SquelchGlobal = 9014,
+ InventoryOrder = 9015,
}
public static class PropertyIntExtensions
{
- public static string GetDescription(this PropertyInt prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
-
public static string GetValueEnumName(this PropertyInt property, int value)
{
switch (property)
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyInt64.cs b/Source/ACE.Entity/Enum/Properties/PropertyInt64.cs
index 183ef25549..bc8267766e 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyInt64.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyInt64.cs
@@ -2,43 +2,32 @@
namespace ACE.Entity.Enum.Properties
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyInt64 : ushort
{
- Undef = 0,
+ Undef = 0,
[SendOnLogin]
- TotalExperience = 1,
+ TotalExperience = 1,
[SendOnLogin]
- AvailableExperience = 2,
- AugmentationCost = 3,
- ItemTotalXp = 4,
- ItemBaseXp = 5,
+ AvailableExperience = 2,
+ [AssessmentProperty]
+ AugmentationCost = 3,
+ [AssessmentProperty]
+ ItemTotalXp = 4,
+ [AssessmentProperty]
+ ItemBaseXp = 5,
[SendOnLogin]
- AvailableLuminance = 6,
+ AvailableLuminance = 6,
[SendOnLogin]
- MaximumLuminance = 7,
- InteractionReqs = 8,
+ MaximumLuminance = 7,
+ InteractionReqs = 8,
- /* custom */
- [ServerOnly]
+ /* Custom Properties */
AllegianceXPCached = 9000,
- [ServerOnly]
AllegianceXPGenerated = 9001,
- [ServerOnly]
AllegianceXPReceived = 9002,
- [ServerOnly]
- VerifyXp = 9003
- }
-
- public static class PropertyInt64Extensions
- {
- public static string GetDescription(this PropertyInt64 prop)
- {
- var description = prop.GetAttributeOfType();
- return description?.Description ?? prop.ToString();
- }
+ VerifyXp = 9003,
}
}
diff --git a/Source/ACE.Entity/Enum/Properties/PropertyString.cs b/Source/ACE.Entity/Enum/Properties/PropertyString.cs
index 864b7fcc40..e207080ce7 100644
--- a/Source/ACE.Entity/Enum/Properties/PropertyString.cs
+++ b/Source/ACE.Entity/Enum/Properties/PropertyString.cs
@@ -2,108 +2,98 @@
namespace ACE.Entity.Enum.Properties
{
+ // No properties are sent to the client unless they featured an attribute.
+ // SendOnLogin gets sent to players in the PlayerDescription event
+ // AssessmentProperty gets sent in successful appraisal
public enum PropertyString : ushort
{
- // properties marked as ServerOnly are properties we never saw in PCAPs, from here:
- // http://ac.yotesfan.com/ace_object/not_used_enums.php
- // source: @OptimShi
- // description attributes are used by the weenie editor for a cleaner display name
- Undef = 0,
+ Undef = 0,
[SendOnLogin]
- Name = 1,
+ Name = 1,
///
/// default "Adventurer"
- ///
- Title = 2,
- Sex = 3,
- HeritageGroup = 4,
- Template = 5,
- AttackersName = 6,
- Inscription = 7,
- [Description("Scribe Name")]
- ScribeName = 8,
- VendorsName = 9,
- Fellowship = 10,
- MonarchsName = 11,
- [ServerOnly]
- LockCode = 12,
- [ServerOnly]
- KeyCode = 13,
- Use = 14,
- ShortDesc = 15,
- LongDesc = 16,
- ActivationTalk = 17,
- [ServerOnly]
- UseMessage = 18,
- ItemHeritageGroupRestriction = 19,
- PluralName = 20,
- MonarchsTitle = 21,
- ActivationFailure = 22,
- ScribeAccount = 23,
- TownName = 24,
- CraftsmanName = 25,
- UsePkServerError = 26,
- ScoreCachedText = 27,
- ScoreDefaultEntryFormat = 28,
- ScoreFirstEntryFormat = 29,
- ScoreLastEntryFormat = 30,
- ScoreOnlyEntryFormat = 31,
- ScoreNoEntry = 32,
- [ServerOnly]
- Quest = 33,
- GeneratorEvent = 34,
- PatronsTitle = 35,
- HouseOwnerName = 36,
- QuestRestriction = 37,
- AppraisalPortalDestination = 38,
- TinkerName = 39,
- ImbuerName = 40,
- HouseOwnerAccount = 41,
- DisplayName = 42,
- DateOfBirth = 43,
- ThirdPartyApi = 44,
- KillQuest = 45,
+ /// ();
- return description?.Description ?? prop.ToString();
- }
+ AllegianceMotd = 9001,
+ AllegianceMotdSetBy = 9002,
+ AllegianceSpeakerTitle = 9003,
+ AllegianceSeneschalTitle = 9004,
+ AllegianceCastellanTitle = 9005,
+ GodState = 9006,
+ TinkerLog = 9007,
}
}
diff --git a/Source/ACE.Entity/Enum/Properties/ServerOnlyAttribute.cs b/Source/ACE.Entity/Enum/Properties/ServerOnlyAttribute.cs
deleted file mode 100644
index c59786a1d8..0000000000
--- a/Source/ACE.Entity/Enum/Properties/ServerOnlyAttribute.cs
+++ /dev/null
@@ -1,11 +0,0 @@
-using System;
-
-namespace ACE.Entity.Enum.Properties
-{
- ///
- /// These are properties that are never sent to any client.
- ///
- public class ServerOnlyAttribute : Attribute
- {
- }
-}
diff --git a/Source/ACE.Entity/Enum/Properties/ServerOnlyProperties.cs b/Source/ACE.Entity/Enum/Properties/ServerOnlyProperties.cs
deleted file mode 100644
index 48cade641f..0000000000
--- a/Source/ACE.Entity/Enum/Properties/ServerOnlyProperties.cs
+++ /dev/null
@@ -1,63 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-
-namespace ACE.Entity.Enum.Properties
-{
- ///
- /// Static selection of client enums that are [ServerOnly]
- /// These are properties that are never sent to any client.
- ///
- public static class ServerOnlyProperties
- {
- ///
- /// Method to return a list of enums by attribute type - in this case [ServerOnly] using generics to enhance code reuse.
- ///
- /// Enum to list by [ServerOnly]
- /// Type of the results
- private static HashSet GetValues()
- {
- var list = typeof(T).GetFields().Select(x => new
- {
- att = x.GetCustomAttributes(false).OfType().FirstOrDefault(),
- member = x
- }).Where(x => x.att != null && x.member.Name != "value__").Select(x => (TResult)x.member.GetValue(null)).ToList();
-
- return new HashSet(list);
- }
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- /// PropertiesInt = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesInt64 = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesBool = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesString = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesDouble = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesDataId = GetValues();
-
- ///
- /// returns a list of values for PropertyInt that are [ServerOnly]
- ///
- public static HashSet PropertiesInstanceId = GetValues();
- }
-}
diff --git a/Source/ACE.Server/Network/GameEvent/Events/GameEventPlayerDescription.cs b/Source/ACE.Server/Network/GameEvent/Events/GameEventPlayerDescription.cs
index 5a270112d9..149a0f1446 100644
--- a/Source/ACE.Server/Network/GameEvent/Events/GameEventPlayerDescription.cs
+++ b/Source/ACE.Server/Network/GameEvent/Events/GameEventPlayerDescription.cs
@@ -81,7 +81,7 @@ private void WriteEventBody()
}
}
- var _propertiesInt64 = Session.Player.GetAllPropertyInt64Where(ClientProperties.PropertiesInt64);
+ var _propertiesInt64 = Session.Player.GetAllPropertyInt64Where(SendOnLoginProperties.PropertiesInt64);
if (_propertiesInt64.Count != 0)
{
diff --git a/Source/ACE.Server/Network/Structure/AppraiseInfo.cs b/Source/ACE.Server/Network/Structure/AppraiseInfo.cs
index a5df76a991..0e38a40009 100644
--- a/Source/ACE.Server/Network/Structure/AppraiseInfo.cs
+++ b/Source/ACE.Server/Network/Structure/AppraiseInfo.cs
@@ -341,13 +341,13 @@ public void BuildProfile(WorldObject wo, Player examiner, bool success = true)
private void BuildProperties(WorldObject wo)
{
- PropertiesInt = wo.GetAllPropertyIntWhere(ClientProperties.PropertiesInt);
- PropertiesInt64 = wo.GetAllPropertyInt64Where(ClientProperties.PropertiesInt64);
- PropertiesBool = wo.GetAllPropertyBoolsWhere(ClientProperties.PropertiesBool);
- PropertiesFloat = wo.GetAllPropertyFloatWhere(ClientProperties.PropertiesDouble);
- PropertiesString = wo.GetAllPropertyStringWhere(ClientProperties.PropertiesString);
- PropertiesDID = wo.GetAllPropertyDataIdWhere(ClientProperties.PropertiesDataId);
- PropertiesIID = wo.GetAllPropertyInstanceIdWhere(ClientProperties.PropertiesInstanceId);
+ PropertiesInt = wo.GetAllPropertyIntWhere(AssessmentProperties.PropertiesInt);
+ PropertiesInt64 = wo.GetAllPropertyInt64Where(AssessmentProperties.PropertiesInt64);
+ PropertiesBool = wo.GetAllPropertyBoolsWhere(AssessmentProperties.PropertiesBool);
+ PropertiesFloat = wo.GetAllPropertyFloatWhere(AssessmentProperties.PropertiesDouble);
+ PropertiesString = wo.GetAllPropertyStringWhere(AssessmentProperties.PropertiesString);
+ PropertiesDID = wo.GetAllPropertyDataIdWhere(AssessmentProperties.PropertiesDataId);
+ PropertiesIID = wo.GetAllPropertyInstanceIdWhere(AssessmentProperties.PropertiesInstanceId);
if (wo is Player player)
{