| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using Robust.Shared.Serialization;
- namespace Content.Shared._Stalker.Characteristics;
- [Serializable, NetSerializable]
- public struct Characteristic
- {
- public readonly CharacteristicPrototype Proto;
- public string ProtoId => Proto.ID;
- public string Name => Proto.Name;
- public string Description => Proto.Description;
- public CharacteristicAccess Access => Proto.Access;
- public CharacteristicType Type => Proto.Type;
- public int MinLevel => Proto.MinLevel;
- public int MaxLevel => Proto.MaxLevel;
- public int BaseLevel => Proto.BaseLevel;
- public int DefaultLevel => Proto.DefaultLevel;
- public int Value => Level - BaseLevel;
- public int Level { get; private set; }
- public Characteristic(CharacteristicPrototype proto)
- {
- Proto = proto;
- Level = DefaultLevel;
- }
- public Characteristic(Characteristic characteristic)
- {
- Proto = characteristic.Proto;
- Level = characteristic.Level;
- }
- public Characteristic WithLevel(int level)
- {
- return new(this) { Level = level };
- }
- }
|