From 98f90bde27eb860576791c61fd1b9b2857495ef4 Mon Sep 17 00:00:00 2001 From: CWX Date: Tue, 7 Jan 2025 10:42:52 +0000 Subject: [PATCH] More Callbacks --- Core/Callbacks/HealthCallbacks.cs | 25 +++--- Core/Callbacks/HideoutCallbacks.cs | 74 ++++++++++++--- Core/Callbacks/HttpCallbacks.cs | 4 +- Core/Callbacks/InraidCallbacks.cs | 38 ++++++++ Core/Callbacks/InsuranceCallbacks.cs | 23 +++-- Core/Callbacks/InventoryCallbacks.cs | 38 +++++++- .../Eft/Health/HealthTreatmentRequestData.cs | 68 ++++++++++++++ .../Eft/Health/OffraidEatRequestData.cs | 19 ++++ Core/Models/Eft/Health/WorkoutData.cs | 90 +++++++++++++++++++ .../Eft/Hideout/HandleQTEEventRequestData.cs | 20 +++++ ...rcleOfCultistProductionStartRequestData.cs | 12 +++ ...outContinuousProductionStartRequestData.cs | 15 ++++ .../HideoutCustomizationApplyRequestData.cs | 18 ++++ .../HideoutDeleteProductionRequestData.cs | 15 ++++ .../Hideout/HideoutImproveAreaRequestData.cs | 22 +++++ .../Hideout/HideoutPutItemInRequestData.cs | 27 ++++++ .../HideoutScavCaseStartRequestData.cs | 39 ++++++++ ...HideoutSingleProductionStartRequestData.cs | 30 +++++++ .../Hideout/HideoutTakeItemOutRequestData.cs | 18 ++++ .../HideoutTakeProductionRequestData.cs | 14 +++ .../Hideout/HideoutToggleAreaRequestData.cs | 18 ++++ .../HideoutUpgradeCompleteRequestData.cs | 15 ++++ .../Eft/Hideout/HideoutUpgradeRequestData.cs | 19 ++++ .../Eft/Hideout/RecordShootingRangePoints.cs | 12 +++ .../Eft/InRaid/RegisterPlayerRequestData.cs | 15 ++++ Core/Models/Eft/InRaid/ScavSaveRequestData.cs | 8 ++ .../Insurance/GetInsuranceCostRequestData.cs | 12 +++ .../Insurance/GetInsuranceCostResponseData.cs | 6 ++ .../Models/Eft/Insurance/InsureRequestData.cs | 16 ++++ .../InventoryBaseActionRequestData.cs | 53 +++++++++++ .../Eft/Inventory/InventoryBindRequestData.cs | 15 ++++ .../InventoryCreateMarkerRequestData.cs | 30 +++++++ .../InventoryDeleteMarkerRequestData.cs | 18 ++++ .../InventoryEditMarkerRequestData.cs | 21 +++++ .../Inventory/InventoryExamineRequestData.cs | 16 ++++ .../Eft/Inventory/InventoryFoldRequestData.cs | 15 ++++ .../Inventory/InventoryMergeRequestData.cs | 15 ++++ .../Eft/Inventory/InventoryMoveRequestData.cs | 16 ++++ .../InventoryReadEncyclopediaRequestData.cs | 12 +++ .../Inventory/InventoryRemoveRequestData.cs | 12 +++ .../Eft/Inventory/InventorySortRequestData.cs | 13 +++ .../Inventory/InventorySplitRequestData.cs | 23 +++++ .../Eft/Inventory/InventorySwapRequestData.cs | 28 ++++++ .../Eft/Inventory/InventoryTagRequestData.cs | 18 ++++ .../Inventory/InventoryToggleRequestData.cs | 15 ++++ .../Inventory/InventoryTransferRequestData.cs | 18 ++++ .../OpenRandomLootContainerRequestData.cs | 17 ++++ .../Eft/Inventory/PinOrLockItemRequest.cs | 18 ++++ .../Eft/Inventory/RedeemProfileRequestData.cs | 21 +++++ Core/Models/Eft/Inventory/SetFavoriteItems.cs | 15 ++++ .../Models/Eft/Quests/FailQuestRequestData.cs | 15 ++++ 51 files changed, 1125 insertions(+), 29 deletions(-) create mode 100644 Core/Callbacks/InraidCallbacks.cs create mode 100644 Core/Models/Eft/Health/HealthTreatmentRequestData.cs create mode 100644 Core/Models/Eft/Health/OffraidEatRequestData.cs create mode 100644 Core/Models/Eft/Health/WorkoutData.cs create mode 100644 Core/Models/Eft/Hideout/HandleQTEEventRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutCircleOfCultistProductionStartRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutCustomizationApplyRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutPutItemInRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutTakeItemOutRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutToggleAreaRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutUpgradeCompleteRequestData.cs create mode 100644 Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs create mode 100644 Core/Models/Eft/Hideout/RecordShootingRangePoints.cs create mode 100644 Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs create mode 100644 Core/Models/Eft/InRaid/ScavSaveRequestData.cs create mode 100644 Core/Models/Eft/Insurance/GetInsuranceCostRequestData.cs create mode 100644 Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs create mode 100644 Core/Models/Eft/Insurance/InsureRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryBaseActionRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryBindRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryExamineRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryFoldRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryMergeRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryMoveRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryReadEncyclopediaRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventorySortRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventorySplitRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventorySwapRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryTagRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryToggleRequestData.cs create mode 100644 Core/Models/Eft/Inventory/InventoryTransferRequestData.cs create mode 100644 Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs create mode 100644 Core/Models/Eft/Inventory/PinOrLockItemRequest.cs create mode 100644 Core/Models/Eft/Inventory/RedeemProfileRequestData.cs create mode 100644 Core/Models/Eft/Inventory/SetFavoriteItems.cs create mode 100644 Core/Models/Eft/Quests/FailQuestRequestData.cs diff --git a/Core/Callbacks/HealthCallbacks.cs b/Core/Callbacks/HealthCallbacks.cs index cadc5dca..a8097493 100644 --- a/Core/Callbacks/HealthCallbacks.cs +++ b/Core/Callbacks/HealthCallbacks.cs @@ -1,28 +1,33 @@ -namespace Core.Callbacks; +using Core.Models.Eft.Common; +using Core.Models.Eft.Health; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.ItemEvent; + +namespace Core.Callbacks; public class HealthCallbacks { - public SptProfile OnLoad(string sessionID) + public HealthCallbacks() + { + + } + + public GetBodyResponseData handleWorkoutEffects(string url, WorkoutData info, string sessionID) { throw new NotImplementedException(); } - public object SyncHealth(string url, SyncHealthRequestData info, string sessionID) + public ItemEventRouterResponse OffraidEat(PmcData pmcData, OffraidEatRequestData info, string sessionID) { throw new NotImplementedException(); } - public object OffraidEat(PmcData pmcData, OffraidEatRequestData info, string sessionID) + public ItemEventRouterResponse OffraidHeal(PmcData pmcData, OffraidHealRequestData info, string sessionID) { throw new NotImplementedException(); } - public object OffraidHeal(PmcData pmcData, OffraidHealRequestData info, string sessionID) - { - throw new NotImplementedException(); - } - - public object HealthTreatment(PmcData pmcData, HealthTreatmentRequestData info, string sessionID) + public ItemEventRouterResponse HealthTreatment(PmcData pmcData, HealthTreatmentRequestData info, string sessionID) { throw new NotImplementedException(); } diff --git a/Core/Callbacks/HideoutCallbacks.cs b/Core/Callbacks/HideoutCallbacks.cs index 36b2f8b0..fbbc42f1 100644 --- a/Core/Callbacks/HideoutCallbacks.cs +++ b/Core/Callbacks/HideoutCallbacks.cs @@ -1,53 +1,105 @@ -namespace Core.Callbacks; +using Core.Models.Eft.Common; +using Core.Models.Eft.Hideout; +using Core.Models.Eft.ItemEvent; +using Core.Models.Spt.Config; + +namespace Core.Callbacks; public class HideoutCallbacks { - public ItemEventRouterRepsonse Upgrade(PmcData pmcData, HideoutUpgraderequestData info, string sessionID) + private HideoutConfig _hideoutConfig; + + public HideoutCallbacks() + { + + } + + public ItemEventRouterResponse Upgrade(PmcData pmcData, HideoutUpgradeRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleterequestData info, string sessionID) + public ItemEventRouterResponse UpgradeComplete(PmcData pmcData, HideoutUpgradeCompleteRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData info, string sessionID) + public ItemEventRouterResponse PutItemsInAreaSlots(PmcData pmcData, HideoutPutItemInRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData info, string sessionID) + public ItemEventRouterResponse TakeItemsFromAreaSlots(PmcData pmcData, HideoutTakeItemOutRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData info, string sessionID) + public ItemEventRouterResponse ToggleArea(PmcData pmcData, HideoutToggleAreaRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData info, string sessionID) + public ItemEventRouterResponse SingleProductionStart(PmcData pmcData, HideoutSingleProductionStartRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData info, string sessionID) + public ItemEventRouterResponse ScavCaseProductionStart(PmcData pmcData, HideoutScavCaseStartRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionRequestData info, string sessionID) + public ItemEventRouterResponse ContinuousProductionStart(PmcData pmcData, HideoutContinuousProductionStartRequestData info, string sessionID) { throw new NotImplementedException(); } - public ItemEventRouterRepsonse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData info, string sessionID) + public ItemEventRouterResponse TakeProduction(PmcData pmcData, HideoutTakeProductionRequestData info, string sessionID) { throw new NotImplementedException(); } - public bool Update(int timeSinceLastRun) + public ItemEventRouterResponse HandleQTEEvent(PmcData pmcData, HandleQTEEventRequestData info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse RecordShootingRangePoints(PmcData pmcData, RecordShootingRangePoints info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse ImproveArea(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse CancelProduction(PmcData pmcData, HideoutImproveAreaRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse CicleOfCultistProductionStart(PmcData pmcData, HideoutCircleOfCultistProductionStartRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse HideoutDeleteProductionRequestData(PmcData pmcData, HideoutDeleteProductionRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse HideoutCustomizationApplyCommand(PmcData pmcData, HideoutCustomizationApplyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public async Task OnUpdate(int timeSinceLastRun) + { + throw new NotImplementedException(); + } + + public string GetRoute() { throw new NotImplementedException(); } diff --git a/Core/Callbacks/HttpCallbacks.cs b/Core/Callbacks/HttpCallbacks.cs index 868edf95..05acc4ff 100644 --- a/Core/Callbacks/HttpCallbacks.cs +++ b/Core/Callbacks/HttpCallbacks.cs @@ -2,12 +2,12 @@ public class HttpCallbacks { - public void Load() + public async Task OnLoad() { throw new NotImplementedException(); } - public void SendImage(string sessionID, object req, object resp, object body) + public string GetRoute() { throw new NotImplementedException(); } diff --git a/Core/Callbacks/InraidCallbacks.cs b/Core/Callbacks/InraidCallbacks.cs new file mode 100644 index 00000000..8717c79a --- /dev/null +++ b/Core/Callbacks/InraidCallbacks.cs @@ -0,0 +1,38 @@ +using Core.Models.Eft.Common; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.InRaid; + +namespace Core.Callbacks; + +public class InraidCallbacks +{ + public InraidCallbacks() + { + + } + + public NullResponseData RegisterPlayer(string url, RegisterPlayerRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public NullResponseData SaveProgress(string url, ScavSaveRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public string GetRaidMenuSettings() + { + throw new NotImplementedException(); + } + + public string GetTraitorScavHostileChance(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + + public string GetBossConvertSettings(string url, EmptyRequestData info, string sessionID) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/Core/Callbacks/InsuranceCallbacks.cs b/Core/Callbacks/InsuranceCallbacks.cs index 74bbb474..68aa571b 100644 --- a/Core/Callbacks/InsuranceCallbacks.cs +++ b/Core/Callbacks/InsuranceCallbacks.cs @@ -1,23 +1,36 @@ -namespace Core.Callbacks; +using Core.Models.Eft.Common; +using Core.Models.Eft.HttpResponse; +using Core.Models.Eft.Insurance; +using Core.Models.Eft.ItemEvent; +using Core.Models.Spt.Config; + +namespace Core.Callbacks; public class InsuranceCallbacks { - public SptProfile OnLoad(string sessionID) + private InsuranceConfig _insuranceConfig; + + public InsuranceCallbacks() + { + + } + + public GetBodyResponseData GetInsuranceCost(string url, GetInsuranceCostRequestData info, string sessionID) { throw new NotImplementedException(); } - public object GetInsuranceCost(string url, GetInsuranceCostRequestData info, string sessionID) + public ItemEventRouterResponse Insure(PmcData pmcData, InsureRequestData info, string sessionID) { throw new NotImplementedException(); } - public object Insure(PmcData pmcData, InsureRequestData info, string sessionID) + public async Task OnUpdate(int secondsSinceLastRun) { throw new NotImplementedException(); } - public bool Update(int secondsSinceLastRun) + public string GetRoute() { throw new NotImplementedException(); } diff --git a/Core/Callbacks/InventoryCallbacks.cs b/Core/Callbacks/InventoryCallbacks.cs index be4863dc..cdccefb2 100644 --- a/Core/Callbacks/InventoryCallbacks.cs +++ b/Core/Callbacks/InventoryCallbacks.cs @@ -1,4 +1,9 @@ -namespace Core.Callbacks; +using Core.Models.Eft.Common; +using Core.Models.Eft.Inventory; +using Core.Models.Eft.ItemEvent; +using Core.Models.Eft.Quests; + +namespace Core.Callbacks; public class InventoryCallbacks { @@ -52,6 +57,11 @@ public class InventoryCallbacks throw new NotImplementedException(); } + public ItemEventRouterResponse UnBindItem(PmcData pmcData, InventoryBindRequestData info, string sessionID) + { + throw new NotImplementedException(); + } + public ItemEventRouterResponse ExamineItem(PmcData pmcData, InventoryExamineRequestData info, string sessionID) { throw new NotImplementedException(); @@ -81,4 +91,30 @@ public class InventoryCallbacks { throw new NotImplementedException(); } + + public ItemEventRouterResponse OpenRandomLootContainer(PmcData pmcData, OpenRandomLootContainerRequestData info, string sessionID, + ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse RedeemProfileReward(PmcData pmcData, RedeemProfileRequestData info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse SetFavoriteItem(PmcData pmcData, SetFavoriteItems info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse FailQuest(PmcData pmcData, FailQuestRequestData info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } + + public ItemEventRouterResponse PinOrLock(PmcData pmcData, PinOrLockItemRequest info, string sessionID, ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Models/Eft/Health/HealthTreatmentRequestData.cs b/Core/Models/Eft/Health/HealthTreatmentRequestData.cs new file mode 100644 index 00000000..6c2131a0 --- /dev/null +++ b/Core/Models/Eft/Health/HealthTreatmentRequestData.cs @@ -0,0 +1,68 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Health; + +public class HealthTreatmentRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "RestoreHealth"; + + [JsonPropertyName("trader")] + public string Trader { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("difference")] + public Difference Difference { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} + +public class ItemCost +{ + /** Id of stack to take money from */ + [JsonPropertyName("id")] + public string Id { get; set; } + + /** Amount of money to take off player for treatment */ + [JsonPropertyName("count")] + public int Count { get; set; } +} + +public class Difference +{ + [JsonPropertyName("BodyParts")] + public BodyParts BodyParts { get; set; } + + [JsonPropertyName("Energy")] + public int Energy { get; set; } + + [JsonPropertyName("Hydration")] + public int Hydration { get; set; } +} + +public class BodyParts +{ + [JsonPropertyName("Head")] + public BodyPart Head { get; set; } + + [JsonPropertyName("Chest")] + public BodyPart Chest { get; set; } + + [JsonPropertyName("Stomach")] + public BodyPart Stomach { get; set; } + + [JsonPropertyName("LeftArm")] + public BodyPart LeftArm { get; set; } + + [JsonPropertyName("RightArm")] + public BodyPart RightArm { get; set; } + + [JsonPropertyName("LeftLeg")] + public BodyPart LeftLeg { get; set; } + + [JsonPropertyName("RightLeg")] + public BodyPart RightLeg { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Health/OffraidEatRequestData.cs b/Core/Models/Eft/Health/OffraidEatRequestData.cs new file mode 100644 index 00000000..0fb7dcc9 --- /dev/null +++ b/Core/Models/Eft/Health/OffraidEatRequestData.cs @@ -0,0 +1,19 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Health; + +public class OffraidEatRequestData : BaseInteractionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Eat"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("time")] + public int Time { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Health/WorkoutData.cs b/Core/Models/Eft/Health/WorkoutData.cs new file mode 100644 index 00000000..97b1d511 --- /dev/null +++ b/Core/Models/Eft/Health/WorkoutData.cs @@ -0,0 +1,90 @@ +namespace Core.Models.Eft.Health; + +using System.Text.Json.Serialization; + +public class WorkoutData : Dictionary +{ + [JsonPropertyName("skills")] + public WorkoutSkills Skills { get; set; } +} + +public class WorkoutSkills +{ + [JsonPropertyName("Common")] + public List Common { get; set; } + + [JsonPropertyName("Mastering")] + public List Mastering { get; set; } + + [JsonPropertyName("Bonuses")] + public object Bonuses { get; set; } + + [JsonPropertyName("Points")] + public int Points { get; set; } +} + +public class WorkoutSkillCommon +{ + [JsonPropertyName("Id")] + public string Id { get; set; } + + [JsonPropertyName("Progress")] + public int Progress { get; set; } + + [JsonPropertyName("PointsEarnedDuringSession")] + public int PointsEarnedDuringSession { get; set; } + + [JsonPropertyName("LastAccess")] + public long LastAccess { get; set; } +} + +public class WorkoutEffects +{ + [JsonPropertyName("Effects")] + public WorkoutEffectsParts Effects { get; set; } + + [JsonPropertyName("Hydration")] + public int Hydration { get; set; } + + [JsonPropertyName("Energy")] + public int Energy { get; set; } +} + +public class WorkoutEffectsParts +{ + [JsonPropertyName("Head")] + public WorkoutBodyPart Head { get; set; } + + [JsonPropertyName("Chest")] + public WorkoutBodyPart Chest { get; set; } + + [JsonPropertyName("Stomach")] + public WorkoutBodyPart Stomach { get; set; } + + [JsonPropertyName("LeftArm")] + public WorkoutBodyPart LeftArm { get; set; } + + [JsonPropertyName("RightArm")] + public WorkoutBodyPart RightArm { get; set; } + + [JsonPropertyName("LeftLeg")] + public WorkoutBodyPart LeftLeg { get; set; } + + [JsonPropertyName("RightLeg")] + public WorkoutBodyPart RightLeg { get; set; } + + [JsonPropertyName("Common")] + public WorkoutBodyPart Common { get; set; } +} + +public class WorkoutBodyPart +{ + [JsonPropertyName("Regeneration")] + public int Regeneration { get; set; } + + [JsonPropertyName("Fracture")] + public int Fracture { get; set; } + + [JsonPropertyName("MildMusclePain")] + public int MildMusclePain { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HandleQTEEventRequestData.cs b/Core/Models/Eft/Hideout/HandleQTEEventRequestData.cs new file mode 100644 index 00000000..7871e265 --- /dev/null +++ b/Core/Models/Eft/Hideout/HandleQTEEventRequestData.cs @@ -0,0 +1,20 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HandleQTEEventRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } + + /** true if QTE was successful, otherwise false */ + [JsonPropertyName("results")] + public List Results { get; set; } + + /** Id of the QTE object used from db/hideout/qte.json */ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutCircleOfCultistProductionStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutCircleOfCultistProductionStartRequestData.cs new file mode 100644 index 00000000..84eb0ec2 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutCircleOfCultistProductionStartRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutCircleOfCultistProductionStartRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutCircleOfCultistProductionStart"; + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs new file mode 100644 index 00000000..e7fd3ed5 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutContinuousProductionStartRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; } = "HideoutContinuousProductionStart"; + + [JsonPropertyName("recipeId")] + public string RecipeId { get; set; } + + [JsonPropertyName("timestamp")] + public double Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutCustomizationApplyRequestData.cs b/Core/Models/Eft/Hideout/HideoutCustomizationApplyRequestData.cs new file mode 100644 index 00000000..dd7cae4c --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutCustomizationApplyRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutCustomizationApplyRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutCustomizationApply"; + + /// + /// Id of the newly picked item to apply to hideout + /// + [JsonPropertyName("offerId")] + public string OfferId { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs b/Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs new file mode 100644 index 00000000..bbcbf12c --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutDeleteProductionRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutDeleteProductionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutDeleteProductionCommand"; + + [JsonPropertyName("recipeId")] + public string RecipeId { get; set; } + + [JsonPropertyName("timestamp")] + public double Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs b/Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs new file mode 100644 index 00000000..44c48c7c --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutImproveAreaRequestData.cs @@ -0,0 +1,22 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutImproveAreaRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutImproveArea"; + + /** Hideout area id from areas.json */ + [JsonPropertyName("id")] + public string AreaId { get; set; } + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutPutItemInRequestData.cs b/Core/Models/Eft/Hideout/HideoutPutItemInRequestData.cs new file mode 100644 index 00000000..ed71dd50 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutPutItemInRequestData.cs @@ -0,0 +1,27 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutPutItemInRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutPutItemsInAreaSlots"; + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("items")] + public Dictionary Items { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} + +public class ItemDetails +{ + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("id")] + public string Id { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs new file mode 100644 index 00000000..7a8fb45f --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs @@ -0,0 +1,39 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutScavCaseStartRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutScavCaseProductionStart"; + + [JsonPropertyName("recipeId")] + public string RecipeId { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("tools")] + public List Tools { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} + +public class HideoutItem +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} + +public class Tool +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs new file mode 100644 index 00000000..4e4e609e --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutSingleProductionStartRequestData.cs @@ -0,0 +1,30 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutSingleProductionStartRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutSingleProductionStart"; + + [JsonPropertyName("recipeId")] + public string RecipeId { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("tools")] + public List Tools { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} + +public class HandoverItem +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutTakeItemOutRequestData.cs b/Core/Models/Eft/Hideout/HideoutTakeItemOutRequestData.cs new file mode 100644 index 00000000..883e994f --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutTakeItemOutRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutTakeItemOutRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutTakeItemsFromAreaSlots"; + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("slots")] + public int[] Slots { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs b/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs new file mode 100644 index 00000000..ad7b0fc3 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs @@ -0,0 +1,14 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutTakeProductionRequestData { + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutTakeProduction"; + + [JsonPropertyName("recipeId")] + public string RecipeId { get; set; } + + [JsonPropertyName("timestamp")] + public int Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutToggleAreaRequestData.cs b/Core/Models/Eft/Hideout/HideoutToggleAreaRequestData.cs new file mode 100644 index 00000000..dd001bbe --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutToggleAreaRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutToggleAreaRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutToggleArea"; + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("enabled")] + public bool Enabled { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutUpgradeCompleteRequestData.cs b/Core/Models/Eft/Hideout/HideoutUpgradeCompleteRequestData.cs new file mode 100644 index 00000000..045176b3 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutUpgradeCompleteRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class HideoutUpgradeCompleteRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutUpgradeComplete"; + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs b/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs new file mode 100644 index 00000000..a86af346 --- /dev/null +++ b/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs @@ -0,0 +1,19 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; + +namespace Core.Models.Eft.Hideout; + +public class HideoutUpgradeRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "HideoutUpgrade"; + + [JsonPropertyName("areaType")] + public int AreaType { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/RecordShootingRangePoints.cs b/Core/Models/Eft/Hideout/RecordShootingRangePoints.cs new file mode 100644 index 00000000..7ba857ab --- /dev/null +++ b/Core/Models/Eft/Hideout/RecordShootingRangePoints.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Hideout; + +public class RecordShootingRangePoints +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "RecordShootingRangePoints"; + + [JsonPropertyName("points")] + public int Points { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs b/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs new file mode 100644 index 00000000..8024b21c --- /dev/null +++ b/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.InRaid; + +public class RegisterPlayerRequestData +{ + [JsonPropertyName("crc")] + public int Crc { get; set; } + + [JsonPropertyName("locationId")] + public string LocationId { get; set; } + + [JsonPropertyName("variantId")] + public int VariantId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/InRaid/ScavSaveRequestData.cs b/Core/Models/Eft/InRaid/ScavSaveRequestData.cs new file mode 100644 index 00000000..29c19a6d --- /dev/null +++ b/Core/Models/Eft/InRaid/ScavSaveRequestData.cs @@ -0,0 +1,8 @@ +using Core.Models.Eft.Common; + +namespace Core.Models.Eft.InRaid; + +public class ScavSaveRequestData : PostRaidPmcData +{ + +} \ No newline at end of file diff --git a/Core/Models/Eft/Insurance/GetInsuranceCostRequestData.cs b/Core/Models/Eft/Insurance/GetInsuranceCostRequestData.cs new file mode 100644 index 00000000..f479dde4 --- /dev/null +++ b/Core/Models/Eft/Insurance/GetInsuranceCostRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Insurance; + +public class GetInsuranceCostRequestData +{ + [JsonPropertyName("traders")] + public List Traders { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs b/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs new file mode 100644 index 00000000..59354a62 --- /dev/null +++ b/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs @@ -0,0 +1,6 @@ +namespace Core.Models.Eft.Insurance; + +public class GetInsuranceCostResponseData : Dictionary> +{ + +} \ No newline at end of file diff --git a/Core/Models/Eft/Insurance/InsureRequestData.cs b/Core/Models/Eft/Insurance/InsureRequestData.cs new file mode 100644 index 00000000..e92a3f92 --- /dev/null +++ b/Core/Models/Eft/Insurance/InsureRequestData.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Insurance; + +public class InsureRequestData : BaseInteractionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Insure"; + + [JsonPropertyName("tid")] + public string TransactionId { get; set; } + + [JsonPropertyName("items")] + public string[] Items { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryBaseActionRequestData.cs b/Core/Models/Eft/Inventory/InventoryBaseActionRequestData.cs new file mode 100644 index 00000000..b3672354 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryBaseActionRequestData.cs @@ -0,0 +1,53 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Inventory; + +public class InventoryBaseActionRequestData : BaseInteractionRequestData +{ +} + +public class To +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("container")] + public string Container { get; set; } + + [JsonPropertyName("location")] + public object Location { get; set; } // TODO: types given IItemLocation or number + + [JsonPropertyName("isSearched")] + public bool? IsSearched { get; set; } +} + +public class Container +{ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("container")] + public string ContainerName { get; set; } + + [JsonPropertyName("location")] + public object Location { get; set; } // TODO: types given: ILocation or number +} + +public class Location +{ + [JsonPropertyName("x")] + public double X { get; set; } + + [JsonPropertyName("y")] + public double Y { get; set; } + + [JsonPropertyName("r")] + public string R { get; set; } + + [JsonPropertyName("rotation")] + public string Rotation { get; set; } + + [JsonPropertyName("isSearched")] + public bool IsSearched { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryBindRequestData.cs b/Core/Models/Eft/Inventory/InventoryBindRequestData.cs new file mode 100644 index 00000000..a0f2467b --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryBindRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryBindRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Bind"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("index")] + public int Index { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs b/Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs new file mode 100644 index 00000000..0073b550 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryCreateMarkerRequestData.cs @@ -0,0 +1,30 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryCreateMarkerRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "CreateMapMarker"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("mapMarker")] + public MapMarker MapMarker { get; set; } +} + +public class MapMarker +{ + [JsonPropertyName("Type")] + public string Type { get; set; } + + [JsonPropertyName("X")] + public double X { get; set; } + + [JsonPropertyName("Y")] + public double Y { get; set; } + + [JsonPropertyName("Note")] + public string Note { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs b/Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs new file mode 100644 index 00000000..8dd0e580 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryDeleteMarkerRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryDeleteMarkerRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "DeleteMapMarker"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("X")] + public int X { get; set; } + + [JsonPropertyName("Y")] + public int Y { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs b/Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs new file mode 100644 index 00000000..d163544d --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryEditMarkerRequestData.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryEditMarkerRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "EditMapMarker"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("X")] + public double X { get; set; } + + [JsonPropertyName("Y")] + public double Y { get; set; } + + [JsonPropertyName("mapMarker")] + public MapMarker MapMarker { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryExamineRequestData.cs b/Core/Models/Eft/Inventory/InventoryExamineRequestData.cs new file mode 100644 index 00000000..51615573 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryExamineRequestData.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Inventory; + +public class InventoryExamineRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Examine"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("fromOwner")] + public OwnerInfo FromOwner { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs b/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs new file mode 100644 index 00000000..15980217 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryFoldRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Fold"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("value")] + public bool Value { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryMergeRequestData.cs b/Core/Models/Eft/Inventory/InventoryMergeRequestData.cs new file mode 100644 index 00000000..a7ab3ac8 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryMergeRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryMergeRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Merge"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("with")] + public string With { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryMoveRequestData.cs b/Core/Models/Eft/Inventory/InventoryMoveRequestData.cs new file mode 100644 index 00000000..5f9fa3d3 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryMoveRequestData.cs @@ -0,0 +1,16 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.ItemEvent; + +namespace Core.Models.Eft.Inventory; + +public class InventoryMoveRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Move"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("to")] + public To To { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryReadEncyclopediaRequestData.cs b/Core/Models/Eft/Inventory/InventoryReadEncyclopediaRequestData.cs new file mode 100644 index 00000000..d26fe661 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryReadEncyclopediaRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryReadEncyclopediaRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "ReadEncyclopedia"; + + [JsonPropertyName("ids")] + public List Ids { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs b/Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs new file mode 100644 index 00000000..7c5d6f4f --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryRemoveRequestData.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryRemoveRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Remove"; + + [JsonPropertyName("item")] + public string Item { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventorySortRequestData.cs b/Core/Models/Eft/Inventory/InventorySortRequestData.cs new file mode 100644 index 00000000..814ed23c --- /dev/null +++ b/Core/Models/Eft/Inventory/InventorySortRequestData.cs @@ -0,0 +1,13 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; + +namespace Core.Models.Eft.Inventory; + +public class InventorySortRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "ApplyInventoryChanges"; + + [JsonPropertyName("changedItems")] + public List ChangedItems { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventorySplitRequestData.cs b/Core/Models/Eft/Inventory/InventorySplitRequestData.cs new file mode 100644 index 00000000..53379947 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventorySplitRequestData.cs @@ -0,0 +1,23 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventorySplitRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; } = "Split"; + + /** Id of item to split */ + [JsonPropertyName("splitItem")] + public string SplitItem { get; set; } + + /** Id of new item stack */ + [JsonPropertyName("newItem")] + public string NewItem { get; set; } + + /** Destination new item will be placed in */ + [JsonPropertyName("container")] + public Container Container { get; set; } + + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventorySwapRequestData.cs b/Core/Models/Eft/Inventory/InventorySwapRequestData.cs new file mode 100644 index 00000000..4b346ee0 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventorySwapRequestData.cs @@ -0,0 +1,28 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Request; + +namespace Core.Models.Eft.Inventory; + +public class InventorySwapRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Swap"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("to")] + public To To { get; set; } + + [JsonPropertyName("item2")] + public string Item2 { get; set; } + + [JsonPropertyName("to2")] + public To To2 { get; set; } + + [JsonPropertyName("fromOwner2")] + public OwnerInfo FromOwner2 { get; set; } + + [JsonPropertyName("toOwner2")] + public OwnerInfo ToOwner2 { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryTagRequestData.cs b/Core/Models/Eft/Inventory/InventoryTagRequestData.cs new file mode 100644 index 00000000..272ef643 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryTagRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryTagRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Tag"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("TagName")] + public string TagName { get; set; } + + [JsonPropertyName("TagColor")] + public int TagColor { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryToggleRequestData.cs b/Core/Models/Eft/Inventory/InventoryToggleRequestData.cs new file mode 100644 index 00000000..9cd4c89e --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryToggleRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryToggleRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Toggle"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("value")] + public bool Value { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryTransferRequestData.cs b/Core/Models/Eft/Inventory/InventoryTransferRequestData.cs new file mode 100644 index 00000000..313532d5 --- /dev/null +++ b/Core/Models/Eft/Inventory/InventoryTransferRequestData.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class InventoryTransferRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "Transfer"; + + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("with")] + public string With { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs b/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs new file mode 100644 index 00000000..831e104a --- /dev/null +++ b/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs @@ -0,0 +1,17 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class OpenRandomLootContainerRequestData +{ + public string Action { get; set; } = "OpenRandomLootContainer"; + + /// + /// Container item id being opened + /// + [JsonPropertyName("item")] + public string Item { get; set; } + + [JsonPropertyName("to")] + public List To { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/PinOrLockItemRequest.cs b/Core/Models/Eft/Inventory/PinOrLockItemRequest.cs new file mode 100644 index 00000000..863cc918 --- /dev/null +++ b/Core/Models/Eft/Inventory/PinOrLockItemRequest.cs @@ -0,0 +1,18 @@ +using System.Text.Json.Serialization; +using Core.Models.Eft.Common.Tables; + +namespace Core.Models.Eft.Inventory; + +public class PinOrLockItemRequest +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "PinLock"; + + /** Id of item being pinned */ + [JsonPropertyName("Item")] + public string Item { get; set; } + + /** "Pinned"/"Locked"/"Free" */ + [JsonPropertyName("State")] + public PinLockState State { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/RedeemProfileRequestData.cs b/Core/Models/Eft/Inventory/RedeemProfileRequestData.cs new file mode 100644 index 00000000..f9d08f0c --- /dev/null +++ b/Core/Models/Eft/Inventory/RedeemProfileRequestData.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class RedeemProfileRequestData : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "RedeemProfileReward"; + + [JsonPropertyName("events")] + public List Events { get; set; } +} + +public class RedeemProfileRequestEvent +{ + [JsonPropertyName("MessageId")] + public string MessageId { get; set; } + + [JsonPropertyName("EventId")] + public string EventId { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/SetFavoriteItems.cs b/Core/Models/Eft/Inventory/SetFavoriteItems.cs new file mode 100644 index 00000000..ed5031e5 --- /dev/null +++ b/Core/Models/Eft/Inventory/SetFavoriteItems.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Inventory; + +public class SetFavoriteItems : InventoryBaseActionRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "SetFavoriteItems"; + + [JsonPropertyName("items")] + public List Items { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } +} \ No newline at end of file diff --git a/Core/Models/Eft/Quests/FailQuestRequestData.cs b/Core/Models/Eft/Quests/FailQuestRequestData.cs new file mode 100644 index 00000000..fb4f6721 --- /dev/null +++ b/Core/Models/Eft/Quests/FailQuestRequestData.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace Core.Models.Eft.Quests; + +public class FailQuestRequestData +{ + [JsonPropertyName("Action")] + public string Action { get; set; } = "QuestFail"; + + [JsonPropertyName("qid")] + public string QuestId { get; set; } + + [JsonPropertyName("removeExcessItems")] + public bool RemoveExcessItems { get; set; } +} \ No newline at end of file