From 826142edd189879e37f6dae80d7203b27bfbd374 Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 5 Jan 2025 22:12:27 +0000 Subject: [PATCH] more classes --- Core/Models/Eft/Common/Tables/BotBase.cs | 196 ++++++++++++++++++++++- 1 file changed, 194 insertions(+), 2 deletions(-) diff --git a/Core/Models/Eft/Common/Tables/BotBase.cs b/Core/Models/Eft/Common/Tables/BotBase.cs index f1b151c6..fc84e53e 100644 --- a/Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Core/Models/Eft/Common/Tables/BotBase.cs @@ -7,6 +7,198 @@ public class BotBase } + +public class EftStats +{ + public List CarriedQuestItems { get; set; } + public List Victims { get; set; } + public int TotalSessionExperience { get; set; } + public long LastSessionDate { get; set; } + public SessionCounters SessionCounters { get; set; } + public OverallCounters OverallCounters { get; set; } + public float? SessionExperienceMult { get; set; } + public float? ExperienceBonusMult { get; set; } + public Aggressor? Aggressor { get; set; } + public List? DroppedItems { get; set; } + public List? FoundInRaidItems { get; set; } + public DamageHistory? DamageHistory { get; set; } + public DeathCause? DeathCause { get; set; } + public LastPlayerState? LastPlayerState { get; set; } + public int TotalInGameTime { get; set; } + public string? SurvivorClass { get; set; } + [JsonPropertyName("sptLastRaidFenceRepChange")] + public float? SptLastRaidFenceRepChange { get; set; } +} + +public class DroppedItem +{ + public string QuestId { get; set; } + public string ItemId { get; set; } + public string ZoneId { get; set; } +} + +public class FoundInRaidItem +{ + public string QuestId { get; set; } + public string ItemId { get; set; } +} + +// TODO: Same as Aggressor? +public class Victim +{ + public string AccountId { get; set; } + public string ProfileId { get; set; } + public string Name { get; set; } + public string Side { get; set; } + public string BodyPart { get; set; } + public string Time { get; set; } + public float Distance { get; set; } + public int Level { get; set; } + public string Weapon { get; set; } + public string Role { get; set; } + public string Location { get; set; } +} + +public class SessionCounters +{ + public List Items { get; set; } +} + +public class OverallCounters +{ + public List Items { get; set; } +} + +public class CounterKeyValue +{ + public List Key { get; set; } + public int Value { get; set; } +} + +public class Aggressor +{ + public string AccountId { get; set; } + public string ProfileId { get; set; } + public string MainProfileNickname { get; set; } + public string Name { get; set; } + public string Side { get; set; } + public string BodyPart { get; set; } + public string HeadSegment { get; set; } + public string WeaponName { get; set; } + public string Category { get; set; } +} + +public class DamageHistory +{ + public string LethalDamagePart { get; set; } + public LethalDamage LethalDamage { get; set; } + public BodyPartsDamageHistory BodyParts { get; set; } +} + +// TODO: this class seems exactly the same as DamageStats, why have it? +public class LethalDamage +{ + public int Amount { get; set; } + public string Type { get; set; } + public string SourceId { get; set; } + public string OverDamageFrom { get; set; } + public bool Blunt { get; set; } + public int ImpactsCount { get; set; } +} + +public class BodyPartsDamageHistory +{ + public List Head { get; set; } + public List Chest { get; set; } + public List Stomach { get; set; } + public List LeftArm { get; set; } + public List RightArm { get; set; } + public List LeftLeg { get; set; } + public List RightLeg { get; set; } + public List Common { get; set; } +} + +public class DamageStats +{ + public int Amount { get; set; } + public string Type { get; set; } + public string SourceId { get; set; } + public string OverDamageFrom { get; set; } + public bool Blunt { get; set; } + public int ImpactsCount { get; set; } +} + +public class DeathCause +{ + public string DamageType { get; set; } + public string Side { get; set; } + public string Role { get; set; } + public string WeaponId { get; set; } +} + +public class LastPlayerState +{ + public LastPlayerStateInfo Info { get; set; } + public Dictionary Customization { get; set; } + + // TODO: there is no definition on TS just any + public object Equipment { get; set; } +} + +public class LastPlayerStateInfo +{ + public string Nickname { get; set; } + public string Side { get; set; } + public int Level { get; set; } + public MemberCategory MemberCategory { get; set; } +} + +public class BackendCounter +{ + [JsonPropertyName("id")] + public string Id { get; set; } + [JsonPropertyName("qid")] + public string? QId { get; set; } + [JsonPropertyName("value")] + public int Value { get; set; } +} + +public class InsuredItem +{ + /** Trader Id item was insured by */ + [JsonPropertyName("tid")] + public string TId { get; set; } + [JsonPropertyName("itemId")] + public string ItemId { get; set; } +} + +public class Hideout +{ + public Dictionary Production { get; set; } + public List Areas { get; set; } + public Dictionary Improvements { get; set; } + public HideoutCounters HideoutCounters { get; set; } + public int Seed { get; set; } + public List MannequinPoses { get; set; } + [JsonPropertyName("sptUpdateLastRunTimestamp")] + public long SptUpdateLastRunTimestamp { get; set; } +} + +public class HideoutCounters +{ + [JsonPropertyName("fuelCounter")] + public int FuelCounter { get; set; } + + [JsonPropertyName("airFilterCounter")] + public int AirFilterCounter { get; set; } + + [JsonPropertyName("waterFilterCounter")] + public int WaterFilterCounter { get; set; } + + [JsonPropertyName("craftingTimeCounter")] + public int CraftingTimeCounter { get; set; } +} + public class HideoutImprovement { [JsonPropertyName("completed")] @@ -129,7 +321,7 @@ public class HideoutItem public class LastCompleted { [JsonPropertyName("$oid")] - public string Oid { get; set; } + public string OId { get; set; } } public class Notes @@ -149,7 +341,7 @@ public enum SurvivorClass { public class QuestStatus { [JsonPropertyName("qid")] - public string QuestId { get; set; } + public string QId { get; set; } [JsonPropertyName("startTime")] public long StartTime { get; set; } [JsonPropertyName("status")]