| | | 1 | | using System.Text.Json.Serialization; |
| | | 2 | | |
| | | 3 | | namespace RaidLoop.Core.Contracts; |
| | | 4 | | |
| | 8 | 5 | | public sealed record RaidSnapshot( |
| | 6 | 6 | | int Health, |
| | 10 | 7 | | int BackpackCapacity, |
| | 6 | 8 | | int Ammo, |
| | 2 | 9 | | bool WeaponMalfunction, |
| | 6 | 10 | | int Medkits, |
| | 2 | 11 | | int LootSlots, |
| | 6 | 12 | | int Challenge, |
| | 6 | 13 | | int DistanceFromExtract, |
| | 11 | 14 | | string EncounterType, |
| | 2 | 15 | | string EncounterTitle, |
| | 6 | 16 | | string EncounterDescription, |
| | 6 | 17 | | string EnemyName, |
| | 6 | 18 | | int EnemyHealth, |
| | 6 | 19 | | int EnemyDexterity, |
| | 6 | 20 | | int EnemyConstitution, |
| | 6 | 21 | | int EnemyStrength, |
| | 6 | 22 | | string LootContainer, |
| | 6 | 23 | | bool AwaitingDecision, |
| | 10 | 24 | | string ContactState, |
| | 10 | 25 | | string SurpriseSide, |
| | 10 | 26 | | string InitiativeWinner, |
| | 7 | 27 | | int OpeningActionsRemaining, |
| | 7 | 28 | | bool SurprisePersistenceEligible, |
| | 6 | 29 | | IReadOnlyList<Item> DiscoveredLoot, |
| | 6 | 30 | | IReadOnlyList<Item> CarriedLoot, |
| | 6 | 31 | | IReadOnlyList<Item> EquippedItems, |
| | 6 | 32 | | IReadOnlyList<string> LogEntries, |
| | 7 | 33 | | int Encumbrance = 0, |
| | 11 | 34 | | int MaxEncumbrance = 0, |
| | 10 | 35 | | bool ExtractHoldActive = false, |
| | 8 | 36 | | [property: JsonConverter(typeof(FlexibleNullableDateTimeOffsetJsonConverter))] |
| | 7 | 37 | | DateTimeOffset? HoldAtExtractUntil = null, |
| | 6 | 38 | | string? EncounterDescriptionKey = null, |
| | 14 | 39 | | string? EnemyKey = null); |