fix(core): Fixes some properties that cannot be modified ingame (#604)
- [X] Adds a property to `CommandProperty` to allow modifying `PropertyObject` where there is no property setter that is accessible.
- [X] Updates AosAttributes and friends
Example of how to make this work:
```cs
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
public AosWeaponAttributes WeaponAttributes { get; private set; }
```
This fix is necessary because in release mode the optimizer will sometimes _entirely remove the setter_ because it knows it can do something that is more efficient _when the property setter is private_. RunUO got around this by declaring a public setter explicitly that _was empty_.
### Screenshot
<img width="313" alt="Screen Shot 2021-05-15 at 11 34 01 PM" src="https://user-images.githubusercontent.com/3953314/118387955-49293c00-b5d6-11eb-8f31-a3b5e31bd18b.png">
This commit is contained in:
parent
3023254d87
commit
db02a6b6e9
16 changed files with 98 additions and 99 deletions
|
|
@ -357,13 +357,13 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosArmorAttributes ArmorAttributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Items
|
|||
public override CraftResource DefaultResource => CraftResource.RegularLeather;
|
||||
public override ArmorMeditationAllowance DefMedAllowance => ArmorMeditationAllowance.All;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosWeaponAttributes WeaponAttributes { get; private set; }
|
||||
|
||||
public override void AppendChildNameProperties(ObjectPropertyList list)
|
||||
|
|
|
|||
|
|
@ -104,16 +104,16 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosArmorAttributes ClothingAttributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosElementAttributes Resistances { get; private set; }
|
||||
|
||||
public virtual int BasePhysicalResistance => 0;
|
||||
|
|
|
|||
|
|
@ -76,12 +76,13 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.Player)] public AosAttributes Attributes { get; private set; }
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosElementAttributes Resistances { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace Server.Items
|
|||
public override int DefaultMaxWeight => 50;
|
||||
public override double DefaultWeight => 2.0;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
|
|||
|
|
@ -119,10 +119,10 @@ namespace Server.Items
|
|||
|
||||
public override bool DisplayWeight => false;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
public virtual SpellbookType SpellbookType => SpellbookType.Regular;
|
||||
|
|
|
|||
|
|
@ -320,10 +320,10 @@ namespace Server.Items
|
|||
}
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
public static void Initialize()
|
||||
|
|
|
|||
|
|
@ -183,16 +183,16 @@ namespace Server.Items
|
|||
|
||||
public virtual SkillName AccuracySkill => SkillName.Tactics;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosAttributes Attributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosWeaponAttributes WeaponAttributes { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosSkillBonuses SkillBonuses { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public AosElementAttributes AosElementDamages { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue