using System; using System.Text.Json.Serialization; using Questionable.Model.Questing.Converter; namespace Questionable.Model.Questing; [JsonConverter(typeof(QuestWorkConfigConverter))] public sealed class QuestWorkValue(byte? high, byte? low, EQuestWorkMode mode) { public QuestWorkValue(byte value) : this((byte)(value >> 4), (byte)(value & 0xF), EQuestWorkMode.Bitwise) { } public byte? High { get; set; } = high; public byte? Low { get; set; } = low; public EQuestWorkMode Mode { get; set; } = mode; public override string ToString() { if (High != null && Low != null) return ((byte)(High << 4) + Low).ToString(); else if (High != null) return High + "H"; else if (Low != null) return Low + "L"; else return "-"; } }