More Callbacks

This commit is contained in:
CWX
2025-01-07 10:42:52 +00:00
parent 62c4cb17ad
commit 98f90bde27
51 changed files with 1125 additions and 29 deletions
+15 -10
View File
@@ -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<string> 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();
}
+63 -11
View File
@@ -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<bool> OnUpdate(int timeSinceLastRun)
{
throw new NotImplementedException();
}
public string GetRoute()
{
throw new NotImplementedException();
}
+2 -2
View File
@@ -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();
}
+38
View File
@@ -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();
}
}
+18 -5
View File
@@ -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<GetInsuranceCostResponseData> 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<bool> OnUpdate(int secondsSinceLastRun)
{
throw new NotImplementedException();
}
public bool Update(int secondsSinceLastRun)
public string GetRoute()
{
throw new NotImplementedException();
}
+37 -1
View File
@@ -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();
}
}
@@ -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<ItemCost> 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; }
}
@@ -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; }
}
+90
View File
@@ -0,0 +1,90 @@
namespace Core.Models.Eft.Health;
using System.Text.Json.Serialization;
public class WorkoutData : Dictionary<string, object>
{
[JsonPropertyName("skills")]
public WorkoutSkills Skills { get; set; }
}
public class WorkoutSkills
{
[JsonPropertyName("Common")]
public List<WorkoutSkillCommon> Common { get; set; }
[JsonPropertyName("Mastering")]
public List<object> 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; }
}
@@ -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<bool> 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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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";
/// <summary>
/// Id of the newly picked item to apply to hideout
/// </summary>
[JsonPropertyName("offerId")]
public string OfferId { get; set; }
[JsonPropertyName("timestamp")]
public long Timestamp { get; set; }
}
@@ -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; }
}
@@ -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<HideoutItem> Items { get; set; }
[JsonPropertyName("timestamp")]
public long Timestamp { get; set; }
}
@@ -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<string, ItemDetails> 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; }
}
@@ -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<HideoutItem> Items { get; set; }
[JsonPropertyName("tools")]
public List<Tool> 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; }
}
@@ -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<HandoverItem> Items { get; set; }
[JsonPropertyName("tools")]
public List<HandoverItem> 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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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<HideoutItem> Items { get; set; }
[JsonPropertyName("timestamp")]
public long Timestamp { get; set; }
}
@@ -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; }
}
@@ -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; }
}
@@ -0,0 +1,8 @@
using Core.Models.Eft.Common;
namespace Core.Models.Eft.InRaid;
public class ScavSaveRequestData : PostRaidPmcData
{
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Insurance;
public class GetInsuranceCostRequestData
{
[JsonPropertyName("traders")]
public List<string> Traders { get; set; }
[JsonPropertyName("items")]
public List<string> Items { get; set; }
}
@@ -0,0 +1,6 @@
namespace Core.Models.Eft.Insurance;
public class GetInsuranceCostResponseData : Dictionary<string, Dictionary<string, double>>
{
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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<string> Ids { get; set; }
}
@@ -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; }
}
@@ -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<Item> ChangedItems { get; set; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -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; }
}
@@ -0,0 +1,17 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Inventory;
public class OpenRandomLootContainerRequestData
{
public string Action { get; set; } = "OpenRandomLootContainer";
/// <summary>
/// Container item id being opened
/// </summary>
[JsonPropertyName("item")]
public string Item { get; set; }
[JsonPropertyName("to")]
public List<ItemEvent.To> To { get; set; }
}
@@ -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; }
}
@@ -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<RedeemProfileRequestEvent> Events { get; set; }
}
public class RedeemProfileRequestEvent
{
[JsonPropertyName("MessageId")]
public string MessageId { get; set; }
[JsonPropertyName("EventId")]
public string EventId { get; set; }
}
@@ -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<object> Items { get; set; }
[JsonPropertyName("timestamp")]
public long Timestamp { get; set; }
}
@@ -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; }
}