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
|
|
@ -23,7 +23,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public Arena Arena { get; private set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
|
|
@ -475,7 +475,7 @@ namespace Server.Engines.ConPVP
|
|||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public bool IsOccupied => Players.Count > 0;
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public ArenaStartPoints Points { get; }
|
||||
|
||||
public Item Teleporter { get; set; }
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.Administrator)]
|
||||
[CommandProperty(AccessLevel.Administrator, canModify: true)]
|
||||
public Ladder Ladder { get; private set; }
|
||||
|
||||
public override string DefaultName => "ladder controller";
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.Administrator)]
|
||||
[CommandProperty(AccessLevel.Administrator, canModify: true)]
|
||||
public Preferences Preferences { get; private set; }
|
||||
|
||||
public override string DefaultName => "preferences controller";
|
||||
|
|
|
|||
|
|
@ -996,10 +996,11 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
for (var j = 0; j < alerts.Length; ++j)
|
||||
{
|
||||
var alert = alerts[j];
|
||||
Timer.DelayCall(
|
||||
TimeSpan.FromSeconds(Math.Max(j - 0.5, 0.0)),
|
||||
() => arena.Announcer.PublicOverheadMessage(MessageType.Regular, 0x35, false, alert)
|
||||
(announcer, alert) => announcer.PublicOverheadMessage(MessageType.Regular, 0x35, false, alert),
|
||||
arena.Announcer,
|
||||
alerts[j]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
}
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
[CommandProperty(AccessLevel.GameMaster, canModify: true)]
|
||||
public Tournament Tournament { get; private set; }
|
||||
|
||||
public static bool IsActive
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue