Merge pull request #8 from CWXDEV/main

More types go brr
This commit is contained in:
clodanSPT
2025-01-07 09:05:39 +00:00
committed by GitHub
67 changed files with 1613 additions and 40 deletions
+23
View File
@@ -0,0 +1,23 @@
using Core.Models.Eft.Common;
using Core.Models.Eft.HttpResponse;
using Core.Models.Eft.Profile;
namespace Core.Callbacks;
public class AchievementCallbacks
{
public AchievementCallbacks()
{
}
public GetBodyResponseData<GetAchievementsResponse> GetAchievements(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<CompletedAchievementsResponse> Statistic(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
}
+14 -1
View File
@@ -1,4 +1,7 @@
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Bot;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.HttpResponse;
namespace Core.Callbacks;
@@ -14,6 +17,11 @@ public class BotCallbacks
throw new NotImplementedException();
}
public Dictionary<string, Difficulties> GetAllBotDifficulties(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<BotBase>> GenerateBots(string url, GenerateBotsRequestData info, string sessionID)
{
throw new NotImplementedException();
@@ -23,4 +31,9 @@ public class BotCallbacks
{
throw new NotImplementedException();
}
public string GetBotBehaviours()
{
throw new NotImplementedException();
}
}
+40
View File
@@ -0,0 +1,40 @@
using Core.Models.Eft.Builds;
using Core.Models.Eft.Common;
using Core.Models.Eft.HttpResponse;
using Core.Models.Eft.PresetBuild;
using Core.Models.Eft.Profile;
namespace Core.Callbacks;
public class BuildsCallbacks
{
public BuildsCallbacks()
{
}
public GetBodyResponseData<UserBuilds> GetBuilds(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData CreateMagazineTemplate(string url, SetMagazineRequest info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData SetWeapon(string url, PresetBuildActionRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData SetEquipment(string url, PresetBuildActionRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData DeleteBuild(string url, RemoveBuildRequestData info, string sessionID)
{
throw new NotImplementedException();
}
}
+10 -1
View File
@@ -1,7 +1,16 @@
namespace Core.Callbacks;
using Core.Models.Spt.Config;
namespace Core.Callbacks;
public class BundleCallbacks
{
private HttpConfig _httpConfig;
public BundleCallbacks()
{
}
public object SendBundle(string sessionID, object req, object res, object body)
{
throw new NotImplementedException();
+27
View File
@@ -0,0 +1,27 @@
using Core.Models.Eft.HttpResponse;
using Core.Models.Spt.Logging;
namespace Core.Callbacks;
public class ClientLogCallbacks
{
public ClientLogCallbacks()
{
}
public NullResponseData ClientLog(string url, ClientLogRequest info, string sessionID)
{
throw new NotImplementedException();
}
public string ReleaseNotes()
{
throw new NotImplementedException();
}
public string BsgLogging()
{
throw new NotImplementedException();
}
}
+13 -2
View File
@@ -1,8 +1,19 @@
namespace Core.Callbacks;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Customization;
using Core.Models.Eft.HttpResponse;
using Core.Models.Eft.ItemEvent;
namespace Core.Callbacks;
public class CustomizationCallbacks
{
public GetBodyResponseData<object> GetSuits(string url, object info, string sessionID)
public CustomizationCallbacks()
{
}
public GetBodyResponseData<GetSuitsResponse> GetSuits(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
+86
View File
@@ -0,0 +1,86 @@
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Game;
using Core.Models.Eft.Hideout;
using Core.Models.Eft.HttpResponse;
using Core.Models.Spt.Server;
namespace Core.Callbacks;
public class DataCallbacks
{
public DataCallbacks()
{
}
public GetBodyResponseData<SettingsBase> GetSettings(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<Globals> GetGlobals(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public string GetTemplateItems(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<HandbookBase> GetTemplateHandbook(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<Dictionary<string, CustomizationItem>> GetTemplateSuits(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<string>> GetTemplateCharacter(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<HideoutSettingsBase> GetHideoutSettings(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<HideoutArea>> GetHideoutAreas(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<HideoutProductionData> GetHideoutProduction(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<Dictionary<string, string>> GetLocalesLanguages(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<string> GetLocalesMenu(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public string GetLocalesGlobal(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public string GetQteList(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<GetItemPricesResponse> GetItemPrices(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
}
+85 -9
View File
@@ -1,4 +1,10 @@
namespace Core.Callbacks;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Request;
using Core.Models.Eft.Dialog;
using Core.Models.Eft.HttpResponse;
using Core.Models.Eft.Profile;
namespace Core.Callbacks;
public class DialogCallbacks
{
@@ -7,7 +13,7 @@ public class DialogCallbacks
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> GetChatServerList(string url, GetChatServerListRequestData info, string sessionID)
public GetBodyResponseData<List<ChatServer>> GetChatServerList(string url, GetChatServerListRequestData info, string sessionID)
{
throw new NotImplementedException();
}
@@ -22,7 +28,7 @@ public class DialogCallbacks
throw new NotImplementedException();
}
public GetBodyResponseData<object> GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID)
public GetBodyResponseData<DialogueInfo> GetMailDialogInfo(string url, GetMailDialogInfoRequestData info, string sessionID)
{
throw new NotImplementedException();
}
@@ -47,11 +53,16 @@ public class DialogCallbacks
throw new NotImplementedException();
}
public GetBodyResponseData<GetAllAttachmentsResponse> GetAllAttachments(string url, EmptyRequestData info, string sessionID)
public GetBodyResponseData<object> GetAllAttachments(string url, EmptyRequestData info, string sessionID) // TODO: Fix type - GetBodyResponseData<GetAllAttachmentsResponse | Undefined>
{
throw new NotImplementedException();
}
public GetBodyResponseData<string> SendMessage(string url, SendMessageRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> ListOutbox(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
@@ -59,20 +70,85 @@ public class DialogCallbacks
public GetBodyResponseData<List<object>> ListInbox(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData SendFriendRequest(string url, FriendRequestData info, string sessionID)
public GetBodyResponseData<FriendRequestSendResponse> SendFriendRequest(string url, FriendRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<int> SendMessage(string url, SendMessageRequest info, string sessionID)
public NullResponseData AcceptAllFriendRequests(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public bool Update()
public GetBodyResponseData<bool> AcceptFriendRequest(string url, AcceptFriendRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<bool> DeclineFriendRequest(string url, DeclineFriendRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<bool> CancelFriendRequest(string url, CancelFriendRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData DeleteFriend(string url, DeleteFriendRequest info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData IgnoreFriend(string url, UIDRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData UnIgnoreFriend(string url, UIDRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> ClearMail(string url, ClearMailMessageRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> RemoveMail(string url, RemoveMailMessageRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> CreateGroupMail(string url, CreateGroupMailRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> ChangeMailGroupOwner(string url, ChangeGroupMailOwnerRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> AddUserToMail(string url, AddUserGroupMailRequest info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<List<object>> RemoveUserFromMail(string url, RemoveUserGroupMailRequest info, string sessionID)
{
throw new NotImplementedException();
}
public async Task<bool> OnUpdate(int timeSinceLastRun)
{
throw new NotImplementedException();
}
public string GetRoute()
{
throw new NotImplementedException();
}
+57 -7
View File
@@ -1,18 +1,38 @@
namespace Core.Callbacks;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Request;
using Core.Models.Eft.Game;
using Core.Models.Eft.HttpResponse;
namespace Core.Callbacks;
public class GameCallbacks
{
public NullResponseData VersionValidata(string url, VersionValidaterequestData info, string sessionID)
public GameCallbacks()
{
}
public async Task OnLoad()
{
throw new NotImplementedException();
}
public GetBodyResponseData<object> GameStart(string url, EmptyRequestData info, string sessionID)
public string GetRoute()
{
throw new NotImplementedException();
}
public NullResponseData VersionValidata(string url, VersionValidateRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<object> GameLogout(string url, EmptyRequestData info, string sessionID)
public GetBodyResponseData<GameStartResponse> GameStart(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<GameLogoutResponseData> GameLogout(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
@@ -22,17 +42,22 @@ public class GameCallbacks
throw new NotImplementedException();
}
public GetBodyResponseData<object> GetServer(string url, EmptyRequestData info, string sessionID)
public GetBodyResponseData<GameModeResponse> GetGameMode(string url, GameModeRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<object> ValidateGameVersion(string url, EmptyRequestData info, string sessionID)
public GetBodyResponseData<List<ServerDetails>> GetServer(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<object> GameKeepalive(string url, EmptyRequestData info, string sessionID)
public GetBodyResponseData<CheckVersionResponse> ValidateGameVersion(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetBodyResponseData<GameKeepAliveResponse> GameKeepalive(string url, EmptyRequestData info, string sessionID)
{
throw new NotImplementedException();
}
@@ -41,4 +66,29 @@ public class GameCallbacks
{
throw new NotImplementedException();
}
public NullResponseData ReportNickname(string url, UIDRequestData info, string sessionID)
{
throw new NotImplementedException();
}
public GetRaidTimeResponse GetRaidTime(string url, GetRaidTimeRequest info, string sessionID)
{
throw new NotImplementedException();
}
public object GetSurvey(string url, EmptyRequestData info, string sessionID) // TODO: Types given was NullResponseData | GetBodyResponseData<SurveyResponseData>
{
throw new NotImplementedException();
}
public NullResponseData GetSurveyView(string url, object info, string sessionID)
{
throw new NotImplementedException();
}
public NullResponseData SendSurveyOpinion(string url, SendSurveyOpinionRequest info, string sessionID)
{
throw new NotImplementedException();
}
}
@@ -0,0 +1,24 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Bot;
public class GenerateBotsRequestData
{
[JsonPropertyName("conditions")]
public List<Condition> Conditions { get; set; }
}
public class Condition
{
/// <summary>
/// e.g. assault/pmcBot/bossKilla
/// </summary>
[JsonPropertyName("Role")]
public string Role { get; set; }
[JsonPropertyName("Limit")]
public int Limit { get; set; }
[JsonPropertyName("Difficulty")]
public string Difficulty { get; set; }
}
@@ -0,0 +1,25 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Profile;
namespace Core.Models.Eft.Builds;
public class SetMagazineRequest
{
[JsonPropertyName("Id")]
public string Id { get; set; }
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("Caliber")]
public string Caliber { get; set; }
[JsonPropertyName("Items")]
public List<MagazineTemplateAmmoItem> Items { get; set; }
[JsonPropertyName("TopCount")]
public int TopCount { get; set; }
[JsonPropertyName("BottomCount")]
public int BottomCount { get; set; }
}
@@ -0,0 +1,6 @@
namespace Core.Models.Eft.Common;
public class EmptyRequestData
{
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Common.Request;
public class UIDRequestData
{
[JsonPropertyName("uid")]
public string Uid { get; set; }
}
+116 -19
View File
@@ -8,62 +8,90 @@ public class BotBase
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("aid")]
public int Aid { get; set; }
/** SPT property - use to store player id - TODO - move to AID ( account id as guid of choice) */
[JsonPropertyName("sessionId")]
public string SessionId { get; set; }
[JsonPropertyName("savage")]
public string? Savage { get; set; }
[JsonPropertyName("karmaValue")]
public int KarmaValue { get; set; }
[JsonPropertyName("Info")]
public Info Info { get; set; }
[JsonPropertyName("Customization")]
public Customization Customization { get; set; }
[JsonPropertyName("Health")]
public BotBaseHealth Health { get; set; }
[JsonPropertyName("Inventory")]
public BotBaseInventory Inventory { get; set; }
[JsonPropertyName("Skills")]
public Skills Skills { get; set; }
[JsonPropertyName("Stats")]
public Stats Stats { get; set; }
[JsonPropertyName("Encyclopedia")]
public Dictionary<string, bool> Encyclopedia { get; set; }
[JsonPropertyName("TaskConditionCounters")]
public Dictionary<string, TaskConditionCounter> TaskConditionCounters { get; set; }
[JsonPropertyName("InsuredItems")]
public List<InsuredItem> InsuredItems { get; set; }
[JsonPropertyName("Hideout")]
public Hideout Hideout { get; set; }
[JsonPropertyName("Quests")]
public List<Quests> Quests { get; set; }
[JsonPropertyName("TradersInfo")]
public Dictionary<string, TraderInfo> TradersInfo { get; set; }
[JsonPropertyName("UnlockedInfo")]
public UnlockedInfo UnlockedInfo { get; set; }
[JsonPropertyName("RagfairInfo")]
public RagfairInfo RagfairInfo { get; set; }
/** Achievement id and timestamp */
[JsonPropertyName("Achievements")]
public Dictionary<string, int> Achievements { get; set; }
[JsonPropertyName("RepeatableQuests")]
public List<PmcDataRepeatableQuest> RepeatableQuests { get; set; }
[JsonPropertyName("Bonuses")]
public List<Bonus> Bonuses { get; set; }
[JsonPropertyName("Notes")]
public Notes Notes { get; set; }
[JsonPropertyName("CarExtractCounts")]
public Dictionary<string, int> CarExtractCounts { get; set; }
[JsonPropertyName("CoopExtractCounts")]
public Dictionary<string, int> CoopExtractCounts { get; set; }
[JsonPropertyName("SurvivorClass")]
public SurvivorClass SurvivorClass { get; set; }
[JsonPropertyName("WishList")]
public Dictionary<string, int> WishList { get; set; }
[JsonPropertyName("moneyTransferLimitData")]
public MoneyTransferLimits MoneyTransferLimitData { get; set; }
/** SPT specific property used during bot generation in raid */
[JsonPropertyName("sptIsPmc")]
public bool? IsPmc { get; set; }
@@ -75,10 +103,13 @@ public class MoneyTransferLimits
/** TODO: Implement */
[JsonPropertyName("nextResetTime")]
public double NextResetTime { get; set; }
[JsonPropertyName("remainingLimit")]
public double RemainingLimit { get; set; }
[JsonPropertyName("totalLimit")]
public double TotalLimit { get; set; }
[JsonPropertyName("resetInterval")]
public double ResetInterval { get; set; }
}
@@ -87,10 +118,13 @@ public class TaskConditionCounter
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("value")]
public double Value { get; set; }
/** Quest id */
[JsonPropertyName("sourceId")]
public string SourceId { get; set; }
@@ -120,25 +154,27 @@ public class Info
public int AccountType { get; set; }
public MemberCategory MemberCategory { get; set; }
public MemberCategory SelectedMemberCategory { get; set; }
[JsonPropertyName("lockedMoveCommands")]
public bool LockedMoveCommands { get; set; }
public long SavageLockTime { get; set; }
public long LastTimePlayedAsSavage { get; set; }
public BotInfoSettings Settings { get; set; }
public long NicknameChangeDate { get; set; }
public List<object> NeedWipeOptions { get; set; }
[JsonPropertyName("lastCompletedWipe")]
public LastCompleted LastCompletedWipe { get; set; }
public List<Ban> Bans { get; set; }
public bool BannedState { get; set; }
public long BannedUntil { get; set; }
public bool IsStreamerModeAvailable { get; set; }
[JsonPropertyName("lastCompletedEvent")]
public LastCompleted? LastCompletedEvent { get; set; }
[JsonPropertyName("isMigratedSkills")]
public bool IsMigratedSkills { get; set; }
}
@@ -157,6 +193,7 @@ public class Ban
{
[JsonPropertyName("banType")]
public BanType BanType { get; set; }
[JsonPropertyName("dateTime")]
public long DateTime { get; set; }
}
@@ -220,57 +257,75 @@ public class CurrentMax
public int Maximum { get; set; }
}
public class BotBaseInventory {
public class BotBaseInventory
{
[JsonPropertyName("items")]
public List<Item> Items { get; set; }
[JsonPropertyName("equipment")]
public string Equipment { get; set; }
[JsonPropertyName("stash")]
public string Stash { get; set; }
[JsonPropertyName("sortingTable")]
public string SortingTable { get; set; }
[JsonPropertyName("questRaidItems")]
public string QuestRaidItems { get; set; }
[JsonPropertyName("questStashItems")]
public string QuestStashItems { get; set; }
/** Key is hideout area enum numeric as string e.g. "24", value is area _id */
[JsonPropertyName("hideoutAreaStashes")]
public Dictionary<string, string> HideoutAreaStashes { get; set; }
[JsonPropertyName("fastPanel")]
public Dictionary<string, string> FastPanel { get; set; }
[JsonPropertyName("favoriteItems")]
public List<string> FavoriteItems { get; set; }
}
public class BaseJsonSkills {
public class BaseJsonSkills
{
public Dictionary<string, Common> Common { get; set; }
public Dictionary<string, Mastering> Mastering { get; set; }
public int Points { get; set; }
}
public class Skills {
public class Skills
{
public List<Common> Common { get; set; }
public List<Mastering> Mastering { get; set; }
public int Points { get; set; }
}
public class BaseSkill {
public class BaseSkill
{
public string Id { get; set; }
public int Progress { get; set; }
[JsonPropertyName("max")]
public int? Max { get; set; }
[JsonPropertyName("min")]
public int? Min { get; set; }
}
public class Common : BaseSkill {
public class Common : BaseSkill
{
public int? PointsEarnedDuringSession { get; set; }
public int? LastAccess { get; set; }
}
public class Mastering : BaseSkill {}
public class Mastering : BaseSkill
{
}
public class Stats {
public class Stats
{
public EftStats? Eft { get; set; }
}
@@ -292,6 +347,7 @@ public class EftStats
public LastPlayerState? LastPlayerState { get; set; }
public int TotalInGameTime { get; set; }
public string? SurvivorClass { get; set; }
[JsonPropertyName("sptLastRaidFenceRepChange")]
public float? SptLastRaidFenceRepChange { get; set; }
}
@@ -341,7 +397,7 @@ public class CounterKeyValue
public int Value { get; set; }
}
public class Aggressor
public class Aggressor
{
public string AccountId { get; set; }
public string ProfileId { get; set; }
@@ -354,7 +410,7 @@ public class Aggressor
public string Category { get; set; }
}
public class DamageHistory
public class DamageHistory
{
public string LethalDamagePart { get; set; }
public LethalDamage LethalDamage { get; set; }
@@ -362,7 +418,7 @@ public class DamageHistory
}
// TODO: this class seems exactly the same as DamageStats, why have it?
public class LethalDamage
public class LethalDamage
{
public int Amount { get; set; }
public string Type { get; set; }
@@ -423,8 +479,10 @@ public class BackendCounter
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("qid")]
public string? QId { get; set; }
[JsonPropertyName("value")]
public int Value { get; set; }
}
@@ -434,6 +492,7 @@ public class InsuredItem
/** Trader Id item was insured by */
[JsonPropertyName("tid")]
public string TId { get; set; }
[JsonPropertyName("itemId")]
public string ItemId { get; set; }
}
@@ -446,6 +505,7 @@ public class Hideout
public HideoutCounters HideoutCounters { get; set; }
public int Seed { get; set; }
public List<string> MannequinPoses { get; set; }
[JsonPropertyName("sptUpdateLastRunTimestamp")]
public long SptUpdateLastRunTimestamp { get; set; }
}
@@ -469,6 +529,7 @@ public class HideoutImprovement
{
[JsonPropertyName("completed")]
public bool Completed { get; set; }
[JsonPropertyName("improveCompleteTimestamp")]
public long ImproveCompleteTimestamp { get; set; }
}
@@ -498,8 +559,10 @@ public class Productive
/** Used in hideout production.json */
public bool? needFuelForAllProductionTime { get; set; }
/** Used when sending data to client */
public bool? NeedFuelForAllProductionTime { get; set; }
[JsonPropertyName("sptIsScavCase")]
public bool? SptIsScavCase { get; set; }
@@ -536,8 +599,10 @@ public class Product
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("_tpl")]
public string Template { get; set; }
[JsonPropertyName("upd")]
public Upd? Upd { get; set; }
}
@@ -546,19 +611,26 @@ public class BotHideoutArea
{
[JsonPropertyName("type")]
public HideoutAreas Type { get; set; }
[JsonPropertyName("level")]
public int Level { get; set; }
[JsonPropertyName("active")]
public bool Active { get; set; }
[JsonPropertyName("passiveBonusesEnabled")]
public bool PassiveBonusesEnabled { get; set; }
/** Must be integer */
[JsonPropertyName("completeTime")]
public int CompleteTime { get; set; }
[JsonPropertyName("constructing")]
public bool Constructing { get; set; }
[JsonPropertyName("slots")]
public List<HideoutSlot> Slots { get; set; }
[JsonPropertyName("lastRecipe")]
public string LastRecipe { get; set; }
}
@@ -570,6 +642,7 @@ public class HideoutSlot
/// </summary>
[JsonPropertyName("locationIndex")]
public int LocationIndex { get; set; }
[JsonPropertyName("item")]
public List<HideoutItem>? Items { get; set; }
}
@@ -578,8 +651,10 @@ public class HideoutItem
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("_tpl")]
public string Template { get; set; }
[JsonPropertyName("upd")]
public Upd? Upd { get; set; }
}
@@ -596,7 +671,8 @@ public class Notes
public List<Note> DataNotes { get; set; }
}
public enum SurvivorClass {
public enum SurvivorClass
{
UNKNOWN = 0,
NEUTRALIZER = 1,
MARAUDER = 2,
@@ -608,71 +684,92 @@ public class Quests
{
[JsonPropertyName("qid")]
public string QId { get; set; }
[JsonPropertyName("startTime")]
public long StartTime { get; set; }
[JsonPropertyName("status")]
public QuestStatus Status { get; set; }
[JsonPropertyName("statusTimers")]
public Dictionary<string, long>? StatusTimers { get; set; }
/** Property does not exist in live profile data, but is used by ProfileChanges.questsStatus when sent to client */
[JsonPropertyName("completedConditions")]
public List<string>? CompletedConditions { get; set; }
[JsonPropertyName("availableAfter")]
public long? AvailableAfter { get; set; }
}
public class TraderInfo
public class TraderInfo
{
[JsonPropertyName("loyaltyLevel")]
public int? LoyaltyLevel { get; set; }
[JsonPropertyName("salesSum")]
public int SalesSum { get; set; }
[JsonPropertyName("standing")]
public int Standing { get; set; }
[JsonPropertyName("nextResupply")]
public int NextResupply { get; set; }
[JsonPropertyName("unlocked")]
public bool Unlocked { get; set; }
[JsonPropertyName("disabled")]
public bool Disabled { get; set; }
}
public class RagfairInfo
public class RagfairInfo
{
[JsonPropertyName("rating")]
public double Rating { get; set; }
[JsonPropertyName("isRatingGrowing")]
public bool IsRatingGrowing { get; set; }
[JsonPropertyName("offers")]
public List<RagfairOffer> Offers { get; set; }
}
public class Bonus
{
[JsonPropertyName("id")]
public string? Id { get; set; }
[JsonPropertyName("type")]
public BonusType Type { get; set; }
[JsonPropertyName("templateId")]
public string? TemplateId { get; set; }
[JsonPropertyName("passive")]
public bool? IsPassive { get; set; }
[JsonPropertyName("production")]
public bool? IsProduction { get; set; }
[JsonPropertyName("visible")]
public bool? IsVisible { get; set; }
[JsonPropertyName("value")]
public double? Value { get; set; }
[JsonPropertyName("icon")]
public string? Icon { get; set; }
[JsonPropertyName("filter")]
public List<string>? Filter { get; set; }
[JsonPropertyName("skillType")]
public BonusSkillType? SkillType { get; set; }
}
public class Note {
public class Note
{
public double Time { get; set; }
public string Text { get; set; }
}
@@ -0,0 +1,27 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Customization;
public class BuyClothingRequestData
{
[JsonPropertyName("Action")]
public string Action { get; set; } = "CustomizationBuy";
[JsonPropertyName("offer")]
public string Offer { get; set; }
[JsonPropertyName("items")]
public List<PaymentItemForClothing> Items { get; set; }
}
public class PaymentItemForClothing
{
[JsonPropertyName("del")]
public bool Del { get; set; }
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("count")]
public int Count { get; set; }
}
@@ -0,0 +1,24 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Customization;
public class CustomizationSetRequest
{
[JsonPropertyName("Action")]
public string Action { get; set; } = "CustomizationSet";
[JsonPropertyName("customizations")]
public List<CustomizationSetOption> Customizations { get; set; }
}
public class CustomizationSetOption
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("source")]
public string Source { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Customization;
public class GetSuitsResponse
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("suites")]
public List<string> Suites { get; set; }
}
@@ -0,0 +1,6 @@
namespace Core.Models.Eft.Customization;
public class WearClothingRequestData
{
}
@@ -0,0 +1,21 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class AcceptFriendRequestData : BaseFriendRequest
{
}
public class CancelFriendRequestData : BaseFriendRequest
{
}
public class DeclineFriendRequestData : BaseFriendRequest
{
}
public class BaseFriendRequest
{
[JsonPropertyName("profileId")]
public string ProfileId { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class AddUserGroupMailRequest
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
[JsonPropertyName("uid")]
public string Uid { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class ChangeGroupMailOwnerRequest
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
[JsonPropertyName("uid")]
public string Uid { get; set; }
}
+43
View File
@@ -0,0 +1,43 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class ChatServer
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("RegistrationId")]
public int RegistrationId { get; set; }
[JsonPropertyName("VersionId")]
public string VersionId { get; set; }
[JsonPropertyName("Ip")]
public string Ip { get; set; }
[JsonPropertyName("Port")]
public int Port { get; set; }
[JsonPropertyName("DateTime")]
public long DateTime { get; set; }
[JsonPropertyName("Chats")]
public List<Chat> Chats { get; set; }
[JsonPropertyName("Regions")]
public List<string> Regions { get; set; }
/** Possibly removed */
[JsonPropertyName("IsDeveloper")]
public bool? IsDeveloper { get; set; }
}
public class Chat
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("Members")]
public int Members { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class ClearMailMessageRequest
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class CreateGroupMailRequest
{
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("Users")]
public List<string> Users { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class DeleteFriendRequest
{
[JsonPropertyName("friend_id")]
public string FriendId { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class FriendRequestData
{
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("requestId")]
public string RequestId { get; set; }
[JsonPropertyName("retryAfter")]
public int RetryAfter { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class FriendRequestSendResponse
{
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("requestId")]
public string RequestId { get; set; }
[JsonPropertyName("retryAfter")]
public int RetryAfter { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class GetChatServerListRequestData
{
[JsonPropertyName("VersionId")]
public string VersionId { get; set; }
}
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Profile;
namespace Core.Models.Eft.Dialog;
public class GetFriendListDataResponse
{
[JsonPropertyName("Friends")]
public List<UserDialogInfo> Friends { get; set; }
[JsonPropertyName("Ignore")]
public List<string> Ignore { get; set; }
[JsonPropertyName("InIgnoreList")]
public List<string> InIgnoreList { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogInfoRequestData
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogListRequestData
{
[JsonPropertyName("limit")]
public int Limit { get; set; }
[JsonPropertyName("offset")]
public int Offset { get; set; }
}
@@ -0,0 +1,19 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogViewRequestData
{
[JsonPropertyName("type")]
public MessageType Type { get; set; }
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
[JsonPropertyName("limit")]
public int Limit { get; set; }
[JsonPropertyName("time")]
public decimal Time { get; set; } // decimal
}
@@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Profile;
namespace Core.Models.Eft.Dialog;
public class GetMailDialogViewResponseData
{
[JsonPropertyName("messages")]
public List<Message> Messages { get; set; }
[JsonPropertyName("profiles")]
public List<UserDialogInfo> Profiles { get; set; }
[JsonPropertyName("hasMessagesWithRewards")]
public bool HasMessagesWithRewards { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class PinDialogRequestData
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class RemoveDialogRequestData
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class RemoveMailMessageRequest
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class RemoveUserGroupMailRequest
{
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
[JsonPropertyName("uid")]
public string Uid { get; set; }
}
@@ -0,0 +1,18 @@
using System.Text.Json.Serialization;
using Core.Models.Enums;
namespace Core.Models.Eft.Dialog;
public class SendMessageRequest {
[JsonPropertyName("dialogId")]
public string DialogId { get; set; }
[JsonPropertyName("type")]
public MessageType Type { get; set; }
[JsonPropertyName("text")]
public string Text { get; set; }
[JsonPropertyName("replyTo")]
public string ReplyTo { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Dialog;
public class SetDialogReadRequestData
{
[JsonPropertyName("dialogId")]
public List<string> DialogId { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class CheckVersionResponse
{
[JsonPropertyName("isvalid")]
public bool IsValid { get; set; }
[JsonPropertyName("latestVersion")]
public string LatestVersion { get; set; }
}
@@ -0,0 +1,76 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameConfigResponse
{
[JsonPropertyName("aid")]
public int Aid { get; set; }
[JsonPropertyName("lang")]
public string Language { get; set; }
[JsonPropertyName("languages")]
public Dictionary<string, string> Languages { get; set; }
[JsonPropertyName("ndaFree")]
public bool IsNdaFree { get; set; }
[JsonPropertyName("taxonomy")]
public int Taxonomy { get; set; }
[JsonPropertyName("activeProfileId")]
public string ActiveProfileId { get; set; }
[JsonPropertyName("backend")]
public Backend Backend { get; set; }
[JsonPropertyName("useProtobuf")]
public bool UseProtobuf { get; set; }
[JsonPropertyName("utc_time")]
public long UtcTime { get; set; }
/** Total in game time */
[JsonPropertyName("totalInGame")]
public int TotalInGame { get; set; }
[JsonPropertyName("reportAvailable")]
public bool IsReportAvailable { get; set; }
[JsonPropertyName("twitchEventMember")]
public bool IsTwitchEventMember { get; set; }
[JsonPropertyName("sessionMode")]
public string SessionMode { get; set; }
[JsonPropertyName("purchasedGames")]
public PurchasedGames PurchasedGames { get; set; }
}
public class PurchasedGames
{
[JsonPropertyName("eft")]
public bool IsEftPurchased { get; set; }
[JsonPropertyName("arena")]
public bool IsArenaPurchased { get; set; }
}
public class Backend
{
[JsonPropertyName("Lobby")]
public string Lobby { get; set; }
[JsonPropertyName("Trading")]
public string Trading { get; set; }
[JsonPropertyName("Messaging")]
public string Messaging { get; set; }
[JsonPropertyName("Main")]
public string Main { get; set; }
[JsonPropertyName("RagFair")]
public string RagFair { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameEmptyCrcRequestData
{
[JsonPropertyName("crc")]
public int Crc { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameKeepAliveResponse
{
[JsonPropertyName("msg")]
public string Message { get; set; }
[JsonPropertyName("utc_time")]
public double UtcTime { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameLogoutResponseData
{
[JsonPropertyName("status")]
public string Status { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameModeRequestData
{
[JsonPropertyName("sessionMode")]
public string? SessionMode { get; set; }
}
+18
View File
@@ -0,0 +1,18 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public enum SessionMode
{
REGULAR,
PVE
}
public class GameModeResponse
{
[JsonPropertyName("gameMode")]
public SessionMode GameMode { get; set; }
[JsonPropertyName("backendUrl")]
public string BackendUrl { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GameStartResponse
{
[JsonPropertyName("utc_time")]
public double UtcTime { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GetItemPricesResponse
{
[JsonPropertyName("supplyNextTime")]
public double SupplyNextTime { get; set; }
[JsonPropertyName("prices")]
public Dictionary<string, double> Prices { get; set; }
[JsonPropertyName("currencyCourses")]
public Dictionary<string, double> CurrencyCourses { get; set; }
}
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GetRaidTimeRequest
{
[JsonPropertyName("Side")]
public string Side { get; set; }
[JsonPropertyName("Location")]
public string Location { get; set; }
}
@@ -0,0 +1,33 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class GetRaidTimeResponse
{
[JsonPropertyName("RaidTimeMinutes")]
public int RaidTimeMinutes { get; set; }
[JsonPropertyName("NewSurviveTimeSeconds")]
public int? NewSurviveTimeSeconds { get; set; }
[JsonPropertyName("OriginalSurvivalTimeSeconds")]
public int OriginalSurvivalTimeSeconds { get; set; }
[JsonPropertyName("ExitChanges")]
public List<ExtractChange> ExitChanges { get; set; }
}
public class ExtractChange
{
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("MinTime")]
public int? MinTime { get; set; }
[JsonPropertyName("MaxTime")]
public int? MaxTime { get; set; }
[JsonPropertyName("Chance")]
public int? Chance { get; set; }
}
@@ -0,0 +1,24 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class SendSurveyOpinionRequest
{
[JsonPropertyName("surveyId")]
public int SurveyId { get; set; }
[JsonPropertyName("answers")]
public List<SurveyOpinionAnswer> Answers { get; set; }
}
public class SurveyOpinionAnswer
{
[JsonPropertyName("questionId")]
public int QuestionId { get; set; }
[JsonPropertyName("answerType")]
public string AnswerType { get; set; }
[JsonPropertyName("answers")]
public object Answers { get; set; }
}
+12
View File
@@ -0,0 +1,12 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class ServerDetails
{
[JsonPropertyName("ip")]
public string Ip { get; set; }
[JsonPropertyName("port")]
public int Port { get; set; }
}
@@ -0,0 +1,90 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class SurveyResponseData
{
[JsonPropertyName("locale")]
public Dictionary<string, Dictionary<string, string>> Locale { get; set; }
[JsonPropertyName("survey")]
public Survey Survey { get; set; }
}
public class Survey
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("welcomePageData")]
public WelcomePageData WelcomePageData { get; set; }
[JsonPropertyName("farewellPageData")]
public FarewellPageData FarewellPageData { get; set; }
[JsonPropertyName("pages")]
public List<List<int>> Pages { get; set; }
[JsonPropertyName("questions")]
public List<SurveyQuestion> Questions { get; set; }
[JsonPropertyName("isNew")]
public bool IsNew { get; set; }
}
public class WelcomePageData
{
[JsonPropertyName("titleLocaleKey")]
public string TitleLocaleKey { get; set; }
[JsonPropertyName("timeLocaleKey")]
public string TimeLocaleKey { get; set; }
[JsonPropertyName("descriptionLocaleKey")]
public string DescriptionLocaleKey { get; set; }
}
public class FarewellPageData
{
[JsonPropertyName("textLocaleKey")]
public string TextLocaleKey { get; set; }
}
public class SurveyQuestion
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("sortIndex")]
public int SortIndex { get; set; }
[JsonPropertyName("titleLocaleKey")]
public string TitleLocaleKey { get; set; }
[JsonPropertyName("hintLocaleKey")]
public string HintLocaleKey { get; set; }
[JsonPropertyName("answerLimit")]
public int AnswerLimit { get; set; }
[JsonPropertyName("answerType")]
public string AnswerType { get; set; }
[JsonPropertyName("answers")]
public List<SurveyAnswer> Answers { get; set; }
}
public class SurveyAnswer
{
[JsonPropertyName("id")]
public int Id { get; set; }
[JsonPropertyName("questionId")]
public int QuestionId { get; set; }
[JsonPropertyName("sortIndex")]
public int SortIndex { get; set; }
[JsonPropertyName("localeKey")]
public string LocaleKey { get; set; }
}
@@ -0,0 +1,30 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Game;
public class VersionValidateRequestData
{
[JsonPropertyName("version")]
public Version Version { get; set; }
[JsonPropertyName("develop")]
public bool Develop { get; set; }
}
public class Version
{
[JsonPropertyName("major")]
public string Major { get; set; }
[JsonPropertyName("minor")]
public string Minor { get; set; }
[JsonPropertyName("game")]
public string Game { get; set; }
[JsonPropertyName("backend")]
public string Backend { get; set; }
[JsonPropertyName("taxonomy")]
public string Taxonomy { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.HttpResponse;
public class GetBodyResponseData<T>
{
[JsonPropertyName("err")]
public int Err { get; set; }
[JsonPropertyName("errmsg")]
public string ErrMsg { get; set; }
[JsonPropertyName("data")]
public T Data { get; set; }
}
@@ -0,0 +1,15 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.HttpResponse;
public class NullResponseData
{
[JsonPropertyName("err")]
public int Err { get; set; }
[JsonPropertyName("errmsg")]
public object ErrMsg { get; set; }
[JsonPropertyName("data")]
public object Data { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.ItemEvent;
public class EmptyItemEventRouterResponse : ItemEventRouterBase
{
[JsonPropertyName("profileChanges")]
public string ProfileChanges { get; set; } = "";
}
@@ -0,0 +1,190 @@
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Ragfair;
using Core.Models.Enums;
namespace Core.Models.Eft.ItemEvent;
using System.Text.Json.Serialization;
public class ItemEventRouterBase
{
[JsonPropertyName("warnings")]
public List<Warning> Warnings { get; set; }
[JsonPropertyName("profileChanges")]
public object ProfileChanges { get; set; } // TODO: Types given TProfileChanges | ""
}
public class TProfileChanges : Dictionary<string, ProfileChange>
{
}
public class Warning
{
[JsonPropertyName("index")]
public int Index { get; set; }
[JsonPropertyName("errmsg")]
public string ErrorMessage { get; set; }
[JsonPropertyName("code")]
public string Code { get; set; }
[JsonPropertyName("data")]
public object Data { get; set; }
}
public class ProfileChange
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("experience")]
public int Experience { get; set; }
[JsonPropertyName("quests")]
public List<Quest> Quests { get; set; }
[JsonPropertyName("ragFairOffers")]
public List<RagfairOffer> RagFairOffers { get; set; }
[JsonPropertyName("weaponBuilds")]
public List<WeaponBuildChange> WeaponBuilds { get; set; }
[JsonPropertyName("equipmentBuilds")]
public List<EquipmentBuildChange> EquipmentBuilds { get; set; }
[JsonPropertyName("items")]
public ItemChanges Items { get; set; }
[JsonPropertyName("production")]
public Dictionary<string, Productive> Production { get; set; }
/** Hideout area improvement id */
[JsonPropertyName("improvements")]
public Dictionary<string, HideoutImprovement> Improvements { get; set; }
[JsonPropertyName("skills")]
public Skills Skills { get; set; }
[JsonPropertyName("health")]
public Common.Health Health { get; set; }
[JsonPropertyName("traderRelations")]
public Dictionary<string, TraderData> TraderRelations { get; set; }
[JsonPropertyName("moneyTransferLimitData")]
public MoneyTransferLimits MoneyTransferLimitData { get; set; }
[JsonPropertyName("repeatableQuests")]
public List<PmcDataRepeatableQuest> RepeatableQuests { get; set; }
[JsonPropertyName("recipeUnlocked")]
public Dictionary<string, bool> RecipeUnlocked { get; set; }
[JsonPropertyName("changedHideoutStashes")]
public Dictionary<string, HideoutStashItem> ChangedHideoutStashes { get; set; }
[JsonPropertyName("questsStatus")]
public List<QuestStatus> QuestsStatus { get; set; }
}
public class HideoutStashItem
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("tpl")]
public string Template { get; set; }
}
public class WeaponBuildChange
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("root")]
public string Root { get; set; }
[JsonPropertyName("items")]
public List<Item> Items { get; set; }
}
public class EquipmentBuildChange
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("root")]
public string Root { get; set; }
[JsonPropertyName("items")]
public List<Item> Items { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("fastpanel")]
public List<object> FastPanel { get; set; }
[JsonPropertyName("buildType")]
public EquipmentBuildType BuildType { get; set; }
}
public class ItemChanges
{
[JsonPropertyName("new")]
public List<Product> NewItems { get; set; }
[JsonPropertyName("change")]
public List<Product> ChangedItems { get; set; }
[JsonPropertyName("del")]
public List<Product> DeletedItems { get; set; } // Only needs _id property
}
/** Related to TraderInfo */
public class TraderData
{
[JsonPropertyName("salesSum")]
public double SalesSum { get; set; }
[JsonPropertyName("standing")]
public double Standing { get; set; }
[JsonPropertyName("loyalty")]
public double Loyalty { get; set; }
[JsonPropertyName("unlocked")]
public bool Unlocked { get; set; }
[JsonPropertyName("disabled")]
public bool Disabled { get; set; }
}
public class Product
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("_tpl")]
public string Template { get; set; }
[JsonPropertyName("parentId")]
public string ParentId { get; set; }
[JsonPropertyName("slotId")]
public string SlotId { get; set; }
[JsonPropertyName("location")]
public ItemLocation Location { get; set; }
[JsonPropertyName("upd")]
public Upd Upd { get; set; }
}
@@ -0,0 +1,54 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.ItemEvent;
public class ItemEventRouterRequest
{
[JsonPropertyName("data")]
public List<Daum> Data { get; set; }
[JsonPropertyName("tm")]
public int Time { get; set; }
[JsonPropertyName("reload")]
public int Reload { get; set; }
}
public class Daum
{
[JsonPropertyName("Action")]
public string Action { get; set; }
[JsonPropertyName("item")]
public string Item { get; set; }
[JsonPropertyName("to")]
public To To { get; set; }
}
public class To
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("container")]
public string Container { get; set; }
[JsonPropertyName("location")]
public Location Location { get; set; }
}
public class Location
{
[JsonPropertyName("x")]
public int X { get; set; }
[JsonPropertyName("y")]
public int Y { get; set; }
[JsonPropertyName("r")]
public string R { get; set; }
[JsonPropertyName("isSearched")]
public bool IsSearched { get; set; }
}
@@ -0,0 +1,6 @@
namespace Core.Models.Eft.ItemEvent;
public class ItemEventRouterResponse : ItemEventRouterBase
{
}
@@ -0,0 +1,23 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
namespace Core.Models.Eft.PresetBuild;
public class PresetBuildActionRequestData
{
[JsonPropertyName("Action")]
public string Action { get; set; }
[JsonPropertyName("Id")]
public string Id { get; set; }
/** name of preset given by player */
[JsonPropertyName("Name")]
public string Name { get; set; }
[JsonPropertyName("Root")]
public string Root { get; set; }
[JsonPropertyName("Items")]
public List<Item> Items { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.PresetBuild;
public class RemoveBuildRequestData
{
[JsonPropertyName("id")]
public string Id { get; set; }
}
@@ -0,0 +1,9 @@
using System.Text.Json.Serialization;
namespace Core.Models.Eft.Profile;
public class CompletedAchievementsResponse
{
[JsonPropertyName("elements")]
public Dictionary<string, int> Elements { get; set; }
}
@@ -0,0 +1,8 @@
using Core.Models.Eft.Common.Tables;
namespace Core.Models.Eft.Profile;
public class GetAchievementsResponse
{
public List<Achievement> Achievements { get; set; }
}
+2
View File
@@ -1,5 +1,7 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Profile;
using Core.Models.Enums;
using Core.Models.Spt.Dialog;
namespace Core.Models.Spt.Config;
@@ -1,5 +1,7 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Common.Tables;
using Core.Models.Eft.Profile;
using Core.Models.Enums;
namespace Core.Models.Spt.Dialog;
+2 -1
View File
@@ -1,5 +1,6 @@
using System.Text.Json.Serialization;
using Core.Models.Eft.Common;
using Core.Models.Eft.Common.Tables;
using Props = Core.Models.Eft.Common.Props;
namespace Core.Models.Spt.Mod;