diff --git a/Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs b/Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs new file mode 100644 index 00000000..203c686d --- /dev/null +++ b/Core/Models/Eft/Common/Request/BaseInteractionRequestData.cs @@ -0,0 +1,24 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Common.Request; + +public class BaseInteractionRequestData +{ + [JsonPropertyName("Action")] + public virtual string Action { get; set; } + + [JsonPropertyName("fromOwner")] + public OwnerInfo FromOwner { get; set; } + + [JsonPropertyName("toOwner")] + public OwnerInfo ToOwner { get; set; } +} + +public class OwnerInfo +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("type")] + public string Type { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Health/Effect.cs b/Core/Models/Eft/Health/Effect.cs new file mode 100644 index 00000000..aa2830ba --- /dev/null +++ b/Core/Models/Eft/Health/Effect.cs @@ -0,0 +1,10 @@ +namespace Core.Models.Eft.Health; + +public enum Effect +{ + Fracture, + LightBleeding, + HeavyBleeding, + MildMusclePain, + SevereMusclePain +} \ No newline at end of file diff --git a/Core/Models/Eft/Health/OffraidHealRequestData.cs b/Core/Models/Eft/Health/OffraidHealRequestData.cs new file mode 100644 index 00000000..011926c9 --- /dev/null +++ b/Core/Models/Eft/Health/OffraidHealRequestData.cs @@ -0,0 +1,24 @@ +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Health; + +public class OffraidHealRequestData : BaseInteractionRequestData +{ + public override string Action { get; set; } = "Heal"; + public string Item { get; set; } + public BodyPart Part { get; set; } + public int Count { get; set; } + public int Time { get; set; } +} + +public enum BodyPart +{ + Head, + Chest, + Stomach, + LeftArm, + RightArm, + LeftLeg, + RightLeg, + Common, +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/QteData.cs b/Core/Models/Eft/Hideout/QteData.cs index ea41d9b1..1fc8dd82 100644 --- a/Core/Models/Eft/Hideout/QteData.cs +++ b/Core/Models/Eft/Hideout/QteData.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using Core.Models.Eft.Health; using Core.Models.Enums; using Core.Models.Enums.Hideout; @@ -137,7 +138,7 @@ public class TraderUnlockRequirement : QteRequirement public RequirementType Type { get; set; } = RequirementType.TraderUnlock; [JsonPropertyName("traderId")] - public Traders TraderId { get; set; } + public string TraderId { get; set; } } public class TraderLoyaltyRequirement : QteRequirement @@ -146,7 +147,7 @@ public class TraderLoyaltyRequirement : QteRequirement public RequirementType Type { get; set; } = RequirementType.TraderLoyalty; [JsonPropertyName("traderId")] - public Traders TraderId { get; set; } + public string TraderId { get; set; } [JsonPropertyName("loyaltyLevel")] public int LoyaltyLevel { get; set; } diff --git a/Core/Models/Enums/SkillTypes.cs b/Core/Models/Enums/SkillTypes.cs new file mode 100644 index 00000000..c316b007 --- /dev/null +++ b/Core/Models/Enums/SkillTypes.cs @@ -0,0 +1,73 @@ +namespace Core.Models.Enums; + +public enum SkillTypes +{ + BotReload, + BotSound, + HideoutManagement, + Crafting, + Metabolism, + Immunity, + Endurance, + Strength, + Vitality, + Health, + StressResistance, + Throwing, + RecoilControl, + CovertMovement, + FieldMedicine, + Search, + Sniping, + Perception, + Intellect, + Attention, + Charisma, + Memory, + Melee, + Surgery, + AimDrills, + TroubleShooting, + ProneMovement, + FirstAid, + LightVests, + HeavyVests, + WeaponModding, + AdvancedModding, + NightOps, + SilentOps, + Lockpicking, + // Also called Weapon Maintenance + WeaponTreatment, + MagDrills, + Freetrading, + Auctions, + Cleanoperations, + Barter, + Shadowconnections, + Taskperformance, + BearAssaultoperations, + BearAuthority, + BearAksystems, + BearHeavycaliber, + BearRawpower, + UsecArsystems, + UsecDeepweaponmodding_Settings, + UsecLongrangeoptics_Settings, + UsecNegotiations, + UsecTactics, + Pistol, + Revolver, + SMG, + Assault, + Shotgun, + Sniper, + LMG, + HMG, + Launcher, + AttachedLauncher, + Misc, + DMR, + DrawMaster, + AimMaster, +} \ No newline at end of file diff --git a/Core/Models/Enums/Traders.cs b/Core/Models/Enums/Traders.cs new file mode 100644 index 00000000..7d6204aa --- /dev/null +++ b/Core/Models/Enums/Traders.cs @@ -0,0 +1,16 @@ +namespace Core.Models.Enums; + +public static class Traders +{ + public const string PRAPOR = "54cb50c76803fa8b248b4571"; + public const string THERAPIST = "54cb57776803fa99248b456e"; + public const string FENCE = "579dc571d53a0658a154fbec"; + public const string SKIER = "58330581ace78e27b8b10cee"; + public const string PEACEKEEPER = "5935c25fb3acc3127c3d8cd9"; + public const string MECHANIC = "5a7c2eca46aef81a7ca2145d"; + public const string RAGMAN = "5ac3b934156ae10c4430e83c"; + public const string JAEGER = "5c0647fdd443bc2504c2d371"; + public const string LIGHTHOUSEKEEPER = "638f541a29ffd1183d187f57"; + public const string BTR = "656f0f98d80a697f855d34b1"; + public const string REF = "6617beeaa9cfa777ca915b7c"; +} \ No newline at end of file diff --git a/Core/Models/Spt/Server/DatabaseTables.cs b/Core/Models/Spt/Server/DatabaseTables.cs index fa6eb47a..8e133c34 100644 --- a/Core/Models/Spt/Server/DatabaseTables.cs +++ b/Core/Models/Spt/Server/DatabaseTables.cs @@ -2,8 +2,8 @@ public class DatabaseTables { - public Bots? bots { get; } - public Hideout? hideout { get; } + public Bots.Bots? bots { get; } + public Hideout.Hideout? hideout { get; } public LocaleBase? locales { get; } public Locations? locations { get; } public Match? match { get; } diff --git a/Core/Models/Spt/Server/Locations.cs b/Core/Models/Spt/Server/Locations.cs index 631b3a2f..b3872983 100644 --- a/Core/Models/Spt/Server/Locations.cs +++ b/Core/Models/Spt/Server/Locations.cs @@ -1,64 +1,64 @@ using System.Text.Json.Serialization; -using Core.Models.Eft.Common; using Core.Models.Eft.Common.Tables; +using Core.Models.Eft.Common; namespace Core.Models.Spt.Server; public class Locations { [JsonPropertyName("bigmap")] - public Location? Bigmap { get; set; } + public Eft.Common.Location? Bigmap { get; set; } [JsonPropertyName("develop")] - public Location? Develop { get; set; } + public Eft.Common.Location? Develop { get; set; } [JsonPropertyName("factory4_day")] - public Location? Factory4Day { get; set; } + public Eft.Common.Location? Factory4Day { get; set; } [JsonPropertyName("factory4_night")] - public Location? Factory4Night { get; set; } + public Eft.Common.Location? Factory4Night { get; set; } [JsonPropertyName("hideout")] - public Location? Hideout { get; set; } + public Eft.Common.Location? Hideout { get; set; } [JsonPropertyName("interchange")] - public Location? Interchange { get; set; } + public Eft.Common.Location? Interchange { get; set; } [JsonPropertyName("laboratory")] - public Location? Laboratory { get; set; } + public Eft.Common.Location? Laboratory { get; set; } [JsonPropertyName("lighthouse")] - public Location? Lighthouse { get; set; } + public Eft.Common.Location? Lighthouse { get; set; } [JsonPropertyName("privatearea")] - public Location? PrivateArea { get; set; } + public Eft.Common.Location? PrivateArea { get; set; } [JsonPropertyName("rezervbase")] - public Location? RezervBase { get; set; } + public Eft.Common.Location? RezervBase { get; set; } [JsonPropertyName("shoreline")] - public Location? Shoreline { get; set; } + public Eft.Common.Location? Shoreline { get; set; } [JsonPropertyName("suburbs")] - public Location? Suburbs { get; set; } + public Eft.Common.Location? Suburbs { get; set; } [JsonPropertyName("tarkovstreets")] - public Location? TarkovStreets { get; set; } + public Eft.Common.Location? TarkovStreets { get; set; } [JsonPropertyName("terminal")] - public Location? Terminal { get; set; } + public Eft.Common.Location? Terminal { get; set; } [JsonPropertyName("town")] - public Location? Town { get; set; } + public Eft.Common.Location? Town { get; set; } [JsonPropertyName("woods")] - public Location? Woods { get; set; } + public Eft.Common.Location? Woods { get; set; } [JsonPropertyName("sandbox")] - public Location? Sandbox { get; set; } + public Eft.Common.Location? Sandbox { get; set; } [JsonPropertyName("sandbox_high")] - public Location? SandboxHigh { get; set; } + public Eft.Common.Location? SandboxHigh { get; set; } /** Holds a mapping of the linkages between locations on the UI */ [JsonPropertyName("base")]