@@ -0,0 +1,25 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
|
||||
namespace Core.Models.Eft.Common;
|
||||
|
||||
public class PmcData : BotBase
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class PostRaidPmcData : BotBase
|
||||
{
|
||||
[JsonPropertyName("Stats")]
|
||||
public PostRaidStats Stats { get; set; }
|
||||
}
|
||||
|
||||
public class PostRaidStats
|
||||
{
|
||||
[JsonPropertyName("Eft")]
|
||||
public EftStats Eft { get; set; }
|
||||
|
||||
/** Only found in profile we get from client post raid */
|
||||
[JsonPropertyName("Arena")]
|
||||
public EftStats Arena { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
public class Achievement
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("imageUrl")]
|
||||
public string ImageUrl { get; set; }
|
||||
|
||||
[JsonPropertyName("assetPath")]
|
||||
public string AssetPath { get; set; }
|
||||
|
||||
[JsonPropertyName("rewards")]
|
||||
public QuestRewards Rewards { get; set; }
|
||||
|
||||
[JsonPropertyName("conditions")]
|
||||
public QuestConditionTypes Conditions { get; set; }
|
||||
|
||||
[JsonPropertyName("instantComplete")]
|
||||
public bool InstantComplete { get; set; }
|
||||
|
||||
[JsonPropertyName("showNotificationsInGame")]
|
||||
public bool ShowNotificationsInGame { get; set; }
|
||||
|
||||
[JsonPropertyName("showProgress")]
|
||||
public bool ShowProgress { get; set; }
|
||||
|
||||
[JsonPropertyName("prefab")]
|
||||
public string Prefab { get; set; }
|
||||
|
||||
[JsonPropertyName("rarity")]
|
||||
public string Rarity { get; set; }
|
||||
|
||||
[JsonPropertyName("hidden")]
|
||||
public bool Hidden { get; set; }
|
||||
|
||||
[JsonPropertyName("showConditions")]
|
||||
public bool ShowConditions { get; set; }
|
||||
|
||||
[JsonPropertyName("progressBarEnabled")]
|
||||
public bool ProgressBarEnabled { get; set; }
|
||||
|
||||
[JsonPropertyName("side")]
|
||||
public string Side { get; set; }
|
||||
|
||||
[JsonPropertyName("index")]
|
||||
public int Index { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
public class CustomisationStorage
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("source")]
|
||||
public string Source { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public string Type { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
public class CustomizationItem
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("_name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonPropertyName("_parent")]
|
||||
public string Parent { get; set; }
|
||||
|
||||
[JsonPropertyName("_type")]
|
||||
public string Type { get; set; }
|
||||
|
||||
[JsonPropertyName("_props")]
|
||||
public Props Properties { get; set; }
|
||||
|
||||
[JsonPropertyName("_proto")]
|
||||
public string Proto { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
public class HandbookBase
|
||||
{
|
||||
[JsonPropertyName("Categories")]
|
||||
public List<HandbookCategory> Categories { get; set; }
|
||||
|
||||
[JsonPropertyName("Items")]
|
||||
public List<HandbookItem> Items { get; set; }
|
||||
}
|
||||
|
||||
public class HandbookCategory
|
||||
{
|
||||
[JsonPropertyName("Id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("ParentId")]
|
||||
public string? ParentId { get; set; }
|
||||
|
||||
[JsonPropertyName("Icon")]
|
||||
public string Icon { get; set; }
|
||||
|
||||
[JsonPropertyName("Color")]
|
||||
public string Color { get; set; }
|
||||
|
||||
[JsonPropertyName("Order")]
|
||||
public string Order { get; set; }
|
||||
}
|
||||
|
||||
public class HandbookItem
|
||||
{
|
||||
[JsonPropertyName("Id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("ParentId")]
|
||||
public string ParentId { get; set; }
|
||||
|
||||
[JsonPropertyName("Price")]
|
||||
public decimal Price { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
public class LocationServices
|
||||
{
|
||||
[JsonPropertyName("TraderServerSettings")]
|
||||
public TraderServerSettings TraderServerSettings { get; set; }
|
||||
|
||||
[JsonPropertyName("BTRServerSettings")]
|
||||
public BtrServerSettings BtrServerSettings { get; set; }
|
||||
}
|
||||
|
||||
public class TraderServerSettings
|
||||
{
|
||||
[JsonPropertyName("TraderServices")]
|
||||
public TraderServices TraderServices { get; set; }
|
||||
}
|
||||
|
||||
public class TraderServices
|
||||
{
|
||||
[JsonPropertyName("ExUsecLoyalty")]
|
||||
public TraderService ExUsecLoyalty { get; set; }
|
||||
|
||||
[JsonPropertyName("ZryachiyAid")]
|
||||
public TraderService ZryachiyAid { get; set; }
|
||||
|
||||
[JsonPropertyName("CultistsAid")]
|
||||
public TraderService CultistsAid { get; set; }
|
||||
|
||||
[JsonPropertyName("PlayerTaxi")]
|
||||
public TraderService PlayerTaxi { get; set; }
|
||||
|
||||
[JsonPropertyName("BtrItemsDelivery")]
|
||||
public TraderService BtrItemsDelivery { get; set; }
|
||||
|
||||
[JsonPropertyName("BtrBotCover")]
|
||||
public TraderService BtrBotCover { get; set; }
|
||||
|
||||
[JsonPropertyName("TransitItemsDelivery")]
|
||||
public TraderService TransitItemsDelivery { get; set; }
|
||||
}
|
||||
|
||||
public class TraderService
|
||||
{
|
||||
[JsonPropertyName("TraderId")]
|
||||
public string TraderId { get; set; }
|
||||
|
||||
[JsonPropertyName("TraderServiceType")]
|
||||
public string TraderServiceType { get; set; }
|
||||
|
||||
[JsonPropertyName("Requirements")]
|
||||
public ServiceRequirements Requirements { get; set; }
|
||||
|
||||
[JsonPropertyName("ServiceItemCost")]
|
||||
public Dictionary<string, ServiceItemCostDetails> ServiceItemCost { get; set; }
|
||||
|
||||
[JsonPropertyName("UniqueItems")]
|
||||
public List<string> UniqueItems { get; set; }
|
||||
}
|
||||
|
||||
public class ServiceRequirements
|
||||
{
|
||||
[JsonPropertyName("CompletedQuests")]
|
||||
public List<CompletedQuest> CompletedQuests { get; set; }
|
||||
|
||||
[JsonPropertyName("Standings")]
|
||||
public Dictionary<string, StandingRequirement> Standings { get; set; }
|
||||
}
|
||||
|
||||
public class CompletedQuest
|
||||
{
|
||||
[JsonPropertyName("QuestId")]
|
||||
public string QuestId { get; set; }
|
||||
}
|
||||
|
||||
public class StandingRequirement
|
||||
{
|
||||
[JsonPropertyName("Value")]
|
||||
public int Value { get; set; }
|
||||
}
|
||||
|
||||
public class ServiceItemCostDetails
|
||||
{
|
||||
[JsonPropertyName("Count")]
|
||||
public int Count { get; set; }
|
||||
}
|
||||
|
||||
public class BtrServerSettings
|
||||
{
|
||||
[JsonPropertyName("ChanceSpawn")]
|
||||
public int ChanceSpawn { get; set; }
|
||||
|
||||
[JsonPropertyName("SpawnPeriod")]
|
||||
public XYZ SpawnPeriod { get; set; }
|
||||
|
||||
[JsonPropertyName("MoveSpeed")]
|
||||
public float MoveSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("ReadyToDepartureTime")]
|
||||
public float ReadyToDepartureTime { get; set; }
|
||||
|
||||
[JsonPropertyName("CheckTurnDistanceTime")]
|
||||
public float CheckTurnDistanceTime { get; set; }
|
||||
|
||||
[JsonPropertyName("TurnCheckSensitivity")]
|
||||
public float TurnCheckSensitivity { get; set; }
|
||||
|
||||
[JsonPropertyName("DecreaseSpeedOnTurnLimit")]
|
||||
public float DecreaseSpeedOnTurnLimit { get; set; }
|
||||
|
||||
[JsonPropertyName("EndSplineDecelerationDistance")]
|
||||
public float EndSplineDecelerationDistance { get; set; }
|
||||
|
||||
[JsonPropertyName("AccelerationSpeed")]
|
||||
public float AccelerationSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("DecelerationSpeed")]
|
||||
public float DecelerationSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("PauseDurationRange")]
|
||||
public XYZ PauseDurationRange { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingReturnSpeed")]
|
||||
public float BodySwingReturnSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingDamping")]
|
||||
public float BodySwingDamping { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingIntensity")]
|
||||
public float BodySwingIntensity { get; set; }
|
||||
|
||||
[JsonPropertyName("ServerMapBTRSettings")]
|
||||
public Dictionary<string, ServerMapBtrsettings> ServerMapBTRSettings { get; set; }
|
||||
}
|
||||
|
||||
public class ServerMapBtrsettings
|
||||
{
|
||||
[JsonPropertyName("MapID")]
|
||||
public string MapID { get; set; }
|
||||
|
||||
[JsonPropertyName("ChanceSpawn")]
|
||||
public int ChanceSpawn { get; set; }
|
||||
|
||||
[JsonPropertyName("SpawnPeriod")]
|
||||
public XYZ SpawnPeriod { get; set; }
|
||||
|
||||
[JsonPropertyName("MoveSpeed")]
|
||||
public float MoveSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("ReadyToDepartureTime")]
|
||||
public float ReadyToDepartureTime { get; set; }
|
||||
|
||||
[JsonPropertyName("CheckTurnDistanceTime")]
|
||||
public float CheckTurnDistanceTime { get; set; }
|
||||
|
||||
[JsonPropertyName("TurnCheckSensitivity")]
|
||||
public float TurnCheckSensitivity { get; set; }
|
||||
|
||||
[JsonPropertyName("DecreaseSpeedOnTurnLimit")]
|
||||
public float DecreaseSpeedOnTurnLimit { get; set; }
|
||||
|
||||
[JsonPropertyName("EndSplineDecelerationDistance")]
|
||||
public float EndSplineDecelerationDistance { get; set; }
|
||||
|
||||
[JsonPropertyName("AccelerationSpeed")]
|
||||
public float AccelerationSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("DecelerationSpeed")]
|
||||
public float DecelerationSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("PauseDurationRange")]
|
||||
public XYZ PauseDurationRange { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingReturnSpeed")]
|
||||
public float BodySwingReturnSpeed { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingDamping")]
|
||||
public float BodySwingDamping { get; set; }
|
||||
|
||||
[JsonPropertyName("BodySwingIntensity")]
|
||||
public float BodySwingIntensity { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
public class Prestige
|
||||
{
|
||||
[JsonPropertyName("elements")]
|
||||
public PretigeElement Elements { get; set; }
|
||||
}
|
||||
|
||||
public class PretigeElement
|
||||
{
|
||||
[JsonPropertyName("id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("conditions")]
|
||||
public List<QuestCondition> Conditions { get; set; }
|
||||
|
||||
[JsonPropertyName("rewards")]
|
||||
public List<QuestReward> Rewards { get; set; }
|
||||
|
||||
[JsonPropertyName("transferConfigs")]
|
||||
public TransferConfigs TransferConfigs { get; set; }
|
||||
|
||||
[JsonPropertyName("image")]
|
||||
public string Image { get; set; }
|
||||
|
||||
[JsonPropertyName("bigImage")]
|
||||
public string BigImage { get; set; }
|
||||
}
|
||||
|
||||
public class TransferConfigs
|
||||
{
|
||||
[JsonPropertyName("stashConfig")]
|
||||
public StashPrestigeConfig StashConfig { get; set; }
|
||||
|
||||
[JsonPropertyName("skillConfig")]
|
||||
public PrestigeSkillConfig SkillConfig { get; set; }
|
||||
|
||||
[JsonPropertyName("masteringConfig")]
|
||||
public PrestigeMasteringConfig MasteringConfig { get; set; }
|
||||
}
|
||||
|
||||
public class StashPrestigeConfig
|
||||
{
|
||||
[JsonPropertyName("xCellCount")]
|
||||
public int XCellCount { get; set; }
|
||||
|
||||
[JsonPropertyName("yCellCount")]
|
||||
public int YCellCount { get; set; }
|
||||
|
||||
[JsonPropertyName("filters")]
|
||||
public StashPrestigeFilters Filters { get; set; }
|
||||
}
|
||||
|
||||
public class StashPrestigeFilters
|
||||
{
|
||||
[JsonPropertyName("includedItems")]
|
||||
public List<string> IncludedItems { get; set; }
|
||||
|
||||
[JsonPropertyName("excludedItems")]
|
||||
public List<string> ExcludedItems { get; set; }
|
||||
}
|
||||
|
||||
public class PrestigeSkillConfig
|
||||
{
|
||||
[JsonPropertyName("transferMultiplier")]
|
||||
public int TransferMultiplier { get; set; }
|
||||
}
|
||||
|
||||
public class PrestigeMasteringConfig
|
||||
{
|
||||
[JsonPropertyName("transferMultiplier")]
|
||||
public int TransferMultiplier { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Profile;
|
||||
|
||||
namespace Core.Models.Eft.Common.Tables;
|
||||
|
||||
public class ProfileTemplates
|
||||
{
|
||||
[JsonPropertyName("Standard")]
|
||||
public ProfileSides Standard { get; set; }
|
||||
|
||||
[JsonPropertyName("Left Behind")]
|
||||
public ProfileSides LeftBehind { get; set; }
|
||||
|
||||
[JsonPropertyName("Prepare To Escape")]
|
||||
public ProfileSides PrepareToEscape { get; set; }
|
||||
|
||||
[JsonPropertyName("Edge Of Darkness")]
|
||||
public ProfileSides EdgeOfDarkness { get; set; }
|
||||
|
||||
[JsonPropertyName("Unheard")]
|
||||
public ProfileSides Unheard { get; set; }
|
||||
|
||||
[JsonPropertyName("Tournament")]
|
||||
public ProfileSides Tournament { get; set; }
|
||||
|
||||
[JsonPropertyName("SPT Developer")]
|
||||
public ProfileSides SPTDeveloper { get; set; }
|
||||
|
||||
[JsonPropertyName("SPT Easy start")]
|
||||
public ProfileSides SPTEasyStart { get; set; }
|
||||
|
||||
[JsonPropertyName("SPT Zero to hero")]
|
||||
public ProfileSides SPTZeroToHero { get; set; }
|
||||
}
|
||||
|
||||
public class ProfileSides
|
||||
{
|
||||
[JsonPropertyName("descriptionLocaleKey")]
|
||||
public string DescriptionLocaleKey { get; set; }
|
||||
|
||||
[JsonPropertyName("usec")]
|
||||
public TemplateSide Usec { get; set; }
|
||||
|
||||
[JsonPropertyName("bear")]
|
||||
public TemplateSide Bear { get; set; }
|
||||
}
|
||||
|
||||
public class TemplateSide
|
||||
{
|
||||
[JsonPropertyName("character")]
|
||||
public PmcData Character { get; set; }
|
||||
|
||||
[JsonPropertyName("suits")]
|
||||
public List<string> Suits { get; set; }
|
||||
|
||||
[JsonPropertyName("dialogues")]
|
||||
public Dictionary<string, Dialogue> Dialogues { get; set; }
|
||||
|
||||
[JsonPropertyName("userbuilds")]
|
||||
public UserBuilds UserBuilds { get; set; }
|
||||
|
||||
[JsonPropertyName("trader")]
|
||||
public ProfileTraderTemplate Trader { get; set; }
|
||||
}
|
||||
|
||||
public class ProfileTraderTemplate
|
||||
{
|
||||
[JsonPropertyName("initialLoyaltyLevel")]
|
||||
public Dictionary<string, int> InitialLoyaltyLevel { get; set; }
|
||||
|
||||
[JsonPropertyName("initialStanding")]
|
||||
public Dictionary<string, int> InitialStanding { get; set; }
|
||||
|
||||
[JsonPropertyName("setQuestsAvailableForStart")]
|
||||
public bool? SetQuestsAvailableForStart { get; set; }
|
||||
|
||||
[JsonPropertyName("setQuestsAvailableForFinish")]
|
||||
public bool? SetQuestsAvailableForFinish { get; set; }
|
||||
|
||||
[JsonPropertyName("initialSalesSum")]
|
||||
public int InitialSalesSum { get; set; }
|
||||
|
||||
[JsonPropertyName("jaegerUnlocked")]
|
||||
public bool JaegerUnlocked { get; set; }
|
||||
|
||||
/** How many days is usage of the flea blocked for upon profile creation */
|
||||
[JsonPropertyName("fleaBlockedDays")]
|
||||
public int? FleaBlockedDays { get; set; }
|
||||
|
||||
/** What traders default to being locked on profile creation */
|
||||
[JsonPropertyName("lockedByDefaultOverride")]
|
||||
public List<string> LockedByDefaultOverride { get; set; }
|
||||
|
||||
/** What traders should have their clothing unlocked/purchased on creation */
|
||||
[JsonPropertyName("purchaseAllClothingByDefaultForTrader")]
|
||||
public List<string> PurchaseAllClothingByDefaultForTrader { get; set; }
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,550 @@
|
||||
using Core.Models.Eft.Common;
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using Core.Models.Enums;
|
||||
using Core.Models.Spt.Dialog;
|
||||
|
||||
namespace Core.Models.Eft.Profile;
|
||||
|
||||
public class SptProfile
|
||||
{
|
||||
[JsonPropertyName("info")]
|
||||
public Info ProfileInfo { get; set; }
|
||||
|
||||
[JsonPropertyName("characters")]
|
||||
public Characters CharacterData { get; set; }
|
||||
|
||||
/** Clothing purchases */
|
||||
[JsonPropertyName("suits")]
|
||||
public List<string> ClothingPurchases { get; set; }
|
||||
|
||||
[JsonPropertyName("userbuilds")]
|
||||
public UserBuilds UserBuildData { get; set; }
|
||||
|
||||
[JsonPropertyName("dialogues")]
|
||||
public Dictionary<string, Dialogue> DialogueRecords { get; set; }
|
||||
|
||||
[JsonPropertyName("spt")]
|
||||
public Spt SptData { get; set; }
|
||||
|
||||
[JsonPropertyName("vitality")]
|
||||
public Vitality VitalityData { get; set; }
|
||||
|
||||
[JsonPropertyName("inraid")]
|
||||
public Inraid InraidData { get; set; }
|
||||
|
||||
[JsonPropertyName("insurance")]
|
||||
public List<Insurance> InsuranceList { get; set; }
|
||||
|
||||
/** Assort purchases made by player since last trader refresh */
|
||||
[JsonPropertyName("traderPurchases")]
|
||||
public Dictionary<string, Dictionary<string, TraderPurchaseData>> TraderPurchases { get; set; }
|
||||
|
||||
/** Achievements earned by player */
|
||||
[JsonPropertyName("achievements")]
|
||||
public Dictionary<string, int> PlayerAchievements { get; set; }
|
||||
|
||||
/** List of friend profile IDs */
|
||||
[JsonPropertyName("friends")]
|
||||
public List<string> FriendProfileIds { get; set; }
|
||||
}
|
||||
|
||||
public class TraderPurchaseData
|
||||
{
|
||||
[JsonPropertyName("count")]
|
||||
public int PurchaseCount { get; set; }
|
||||
|
||||
[JsonPropertyName("purchaseTimestamp")]
|
||||
public long PurchaseTimestamp { get; set; }
|
||||
}
|
||||
|
||||
public class Info
|
||||
{
|
||||
/** main profile id */
|
||||
[JsonPropertyName("id")]
|
||||
public string ProfileId { get; set; }
|
||||
|
||||
[JsonPropertyName("scavId")]
|
||||
public string ScavengerId { get; set; }
|
||||
|
||||
[JsonPropertyName("aid")]
|
||||
public int Aid { get; set; }
|
||||
|
||||
[JsonPropertyName("username")]
|
||||
public string UserName { get; set; }
|
||||
|
||||
[JsonPropertyName("password")]
|
||||
public string Password { get; set; }
|
||||
|
||||
[JsonPropertyName("wipe")]
|
||||
public bool IsWiped { get; set; }
|
||||
|
||||
[JsonPropertyName("edition")]
|
||||
public string Edition { get; set; }
|
||||
}
|
||||
|
||||
public class Characters
|
||||
{
|
||||
[JsonPropertyName("pmc")]
|
||||
public PmcData PmcData { get; set; }
|
||||
|
||||
[JsonPropertyName("scav")]
|
||||
public PmcData ScavData { get; set; }
|
||||
}
|
||||
|
||||
/** used by profile.userbuilds */
|
||||
public class UserBuilds
|
||||
{
|
||||
[JsonPropertyName("weaponBuilds")]
|
||||
public List<WeaponBuild> WeaponBuilds { get; set; }
|
||||
|
||||
[JsonPropertyName("equipmentBuilds")]
|
||||
public List<EquipmentBuild> EquipmentBuilds { get; set; }
|
||||
|
||||
[JsonPropertyName("magazineBuilds")]
|
||||
public List<MagazineBuild> MagazineBuilds { get; set; }
|
||||
}
|
||||
|
||||
public class UserBuild
|
||||
{
|
||||
[JsonPropertyName("Id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("Name")]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
public class WeaponBuild : UserBuild
|
||||
{
|
||||
[JsonPropertyName("Root")]
|
||||
public string Root { get; set; }
|
||||
|
||||
[JsonPropertyName("Items")]
|
||||
public List<Item> Items { get; set; } // Same as PMC inventory items
|
||||
}
|
||||
|
||||
public class EquipmentBuild : UserBuild
|
||||
{
|
||||
[JsonPropertyName("Root")]
|
||||
public string Root { get; set; }
|
||||
|
||||
[JsonPropertyName("Items")]
|
||||
public List<Item> Items { get; set; } // Same as PMC inventory items
|
||||
|
||||
[JsonPropertyName("BuildType")]
|
||||
public EquipmentBuildType BuildType { get; set; }
|
||||
}
|
||||
|
||||
public class MagazineBuild : UserBuild
|
||||
{
|
||||
[JsonPropertyName("Caliber")]
|
||||
public string Caliber { get; set; }
|
||||
|
||||
[JsonPropertyName("TopCount")]
|
||||
public int TopCount { get; set; }
|
||||
|
||||
[JsonPropertyName("BottomCount")]
|
||||
public int BottomCount { get; set; }
|
||||
|
||||
[JsonPropertyName("Items")]
|
||||
public List<MagazineTemplateAmmoItem> Items { get; set; }
|
||||
}
|
||||
|
||||
public class MagazineTemplateAmmoItem
|
||||
{
|
||||
[JsonPropertyName("TemplateId")]
|
||||
public string TemplateId { get; set; }
|
||||
|
||||
[JsonPropertyName("Count")]
|
||||
public int Count { get; set; }
|
||||
}
|
||||
|
||||
/** Used by defaultEquipmentPresets.json */
|
||||
public class DefaultEquipmentPreset : UserBuild
|
||||
{
|
||||
[JsonPropertyName("Items")]
|
||||
public List<Item> Items { get; set; }
|
||||
|
||||
[JsonPropertyName("Root")]
|
||||
public string Root { get; set; }
|
||||
|
||||
[JsonPropertyName("BuildType")]
|
||||
public EquipmentBuildType BuildType { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public string Type { get; set; }
|
||||
}
|
||||
|
||||
public class Dialogue
|
||||
{
|
||||
[JsonPropertyName("attachmentsNew")]
|
||||
public int AttachmentsNew { get; set; }
|
||||
|
||||
[JsonPropertyName("new")]
|
||||
public int New { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public MessageType Type { get; set; }
|
||||
|
||||
[JsonPropertyName("Users")]
|
||||
public List<UserDialogInfo> Users { get; set; }
|
||||
|
||||
[JsonPropertyName("pinned")]
|
||||
public bool Pinned { get; set; }
|
||||
|
||||
[JsonPropertyName("messages")]
|
||||
public List<Message> Messages { get; set; }
|
||||
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
}
|
||||
|
||||
// @Cleanup: Maybe the same as Dialogue?
|
||||
public class DialogueInfo
|
||||
{
|
||||
[JsonPropertyName("attachmentsNew")]
|
||||
public int AttachmentsNew { get; set; }
|
||||
|
||||
[JsonPropertyName("new")]
|
||||
public int New { get; set; }
|
||||
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public MessageType Type { get; set; }
|
||||
|
||||
[JsonPropertyName("pinned")]
|
||||
public bool Pinned { get; set; }
|
||||
|
||||
[JsonPropertyName("Users")]
|
||||
public List<UserDialogInfo> Users { get; set; }
|
||||
|
||||
[JsonPropertyName("message")]
|
||||
public MessagePreview Message { get; set; }
|
||||
}
|
||||
|
||||
public class Message
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("uid")]
|
||||
public string UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public MessageType MessageType { get; set; }
|
||||
|
||||
[JsonPropertyName("dt")]
|
||||
public long DateTime { get; set; }
|
||||
|
||||
[JsonPropertyName("UtcDateTime")]
|
||||
public long? UtcDateTime { get; set; }
|
||||
|
||||
[JsonPropertyName("Member")]
|
||||
public UpdatableChatMember? Member { get; set; }
|
||||
|
||||
[JsonPropertyName("templateId")]
|
||||
public string? TemplateId { get; set; }
|
||||
|
||||
[JsonPropertyName("text")]
|
||||
public string? Text { get; set; }
|
||||
|
||||
[JsonPropertyName("replyTo")]
|
||||
public ReplyTo? ReplyTo { get; set; }
|
||||
|
||||
[JsonPropertyName("hasRewards")]
|
||||
public bool? HasRewards { get; set; }
|
||||
|
||||
[JsonPropertyName("rewardCollected")]
|
||||
public bool RewardCollected { get; set; }
|
||||
|
||||
[JsonPropertyName("items")]
|
||||
public MessageItems? Items { get; set; }
|
||||
|
||||
[JsonPropertyName("maxStorageTime")]
|
||||
public long? MaxStorageTime { get; set; }
|
||||
|
||||
[JsonPropertyName("systemData")]
|
||||
public SystemData? SystemData { get; set; }
|
||||
|
||||
[JsonPropertyName("profileChangeEvents")]
|
||||
public List<ProfileChangeEvent>? ProfileChangeEvents { get; set; }
|
||||
}
|
||||
|
||||
public class ReplyTo
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("uid")]
|
||||
public string UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public MessageType MessageType { get; set; }
|
||||
|
||||
[JsonPropertyName("dt")]
|
||||
public long DateTime { get; set; }
|
||||
|
||||
[JsonPropertyName("text")]
|
||||
public string? Text { get; set; }
|
||||
}
|
||||
|
||||
public class MessagePreview
|
||||
{
|
||||
[JsonPropertyName("uid")]
|
||||
public string UserId { get; set; }
|
||||
|
||||
[JsonPropertyName("type")]
|
||||
public MessageType MessageType { get; set; }
|
||||
|
||||
[JsonPropertyName("dt")]
|
||||
public long DateTime { get; set; }
|
||||
|
||||
[JsonPropertyName("templateId")]
|
||||
public string TemplateId { get; set; }
|
||||
|
||||
[JsonPropertyName("text")]
|
||||
public string? Text { get; set; }
|
||||
|
||||
[JsonPropertyName("systemData")]
|
||||
public SystemData? SystemData { get; set; }
|
||||
}
|
||||
|
||||
public class MessageItems
|
||||
{
|
||||
[JsonPropertyName("stash")]
|
||||
public string? Stash { get; set; }
|
||||
|
||||
[JsonPropertyName("data")]
|
||||
public List<Item>? Data { get; set; }
|
||||
}
|
||||
|
||||
public class UpdatableChatMember
|
||||
{
|
||||
[JsonPropertyName("Nickname")]
|
||||
public string Nickname { get; set; }
|
||||
|
||||
[JsonPropertyName("Side")]
|
||||
public string Side { get; set; }
|
||||
|
||||
[JsonPropertyName("Level")]
|
||||
public int Level { get; set; }
|
||||
|
||||
[JsonPropertyName("MemberCategory")]
|
||||
public MemberCategory MemberCategory { get; set; }
|
||||
|
||||
[JsonPropertyName("Ignored")]
|
||||
public bool IsIgnored { get; set; }
|
||||
|
||||
[JsonPropertyName("Banned")]
|
||||
public bool IsBanned { get; set; }
|
||||
}
|
||||
|
||||
public class Spt
|
||||
{
|
||||
/** What version of SPT was this profile made with */
|
||||
[JsonPropertyName("version")]
|
||||
public string Version { get; set; }
|
||||
|
||||
/** What mods has this profile loaded at any point in time */
|
||||
[JsonPropertyName("mods")]
|
||||
public List<ModDetails>? Mods { get; set; }
|
||||
|
||||
/** What gifts has this profile received and how many */
|
||||
[JsonPropertyName("receivedGifts")]
|
||||
public List<ReceivedGift>? ReceivedGifts { get; set; }
|
||||
|
||||
/** item TPLs blacklisted from being sold on flea for this profile */
|
||||
[JsonPropertyName("blacklistedItemTpls")]
|
||||
public List<string>? BlacklistedItemTemplates { get; set; }
|
||||
|
||||
/** key: daily type */
|
||||
[JsonPropertyName("freeRepeatableRefreshUsedCount")]
|
||||
public Dictionary<string, int>? FreeRepeatableRefreshUsedCount { get; set; }
|
||||
|
||||
/** When was a profile migrated, value is timestamp */
|
||||
[JsonPropertyName("migrations")]
|
||||
public Dictionary<string, long>? Migrations { get; set; }
|
||||
|
||||
/** Cultist circle rewards received that are one time use, key (md5) is a combination of sacrificed + reward items */
|
||||
[JsonPropertyName("cultistRewards")]
|
||||
public Dictionary<string, AcceptedCultistReward>? CultistRewards { get; set; }
|
||||
}
|
||||
|
||||
public class AcceptedCultistReward
|
||||
{
|
||||
[JsonPropertyName("timestamp")]
|
||||
public long Timestamp { get; set; }
|
||||
|
||||
[JsonPropertyName("sacrificeItems")]
|
||||
public List<string> SacrificeItems { get; set; }
|
||||
|
||||
[JsonPropertyName("rewardItems")]
|
||||
public List<string> RewardItems { get; set; }
|
||||
}
|
||||
|
||||
public class ModDetails
|
||||
{
|
||||
[JsonPropertyName("name")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonPropertyName("version")]
|
||||
public string Version { get; set; }
|
||||
|
||||
[JsonPropertyName("author")]
|
||||
public string Author { get; set; }
|
||||
|
||||
[JsonPropertyName("dateAdded")]
|
||||
public long DateAdded { get; set; }
|
||||
|
||||
[JsonPropertyName("url")]
|
||||
public string Url { get; set; }
|
||||
}
|
||||
|
||||
public class ReceivedGift
|
||||
{
|
||||
[JsonPropertyName("giftId")]
|
||||
public string GiftId { get; set; }
|
||||
|
||||
[JsonPropertyName("timestampLastAccepted")]
|
||||
public long TimestampLastAccepted { get; set; }
|
||||
|
||||
[JsonPropertyName("current")]
|
||||
public int Current { get; set; }
|
||||
}
|
||||
|
||||
public class Vitality
|
||||
{
|
||||
[JsonPropertyName("health")]
|
||||
public Health Health { get; set; }
|
||||
|
||||
[JsonPropertyName("effects")]
|
||||
public Effects Effects { get; set; }
|
||||
}
|
||||
|
||||
public class Health
|
||||
{
|
||||
[JsonPropertyName("Hydration")]
|
||||
public double Hydration { get; set; }
|
||||
|
||||
[JsonPropertyName("Energy")]
|
||||
public double Energy { get; set; }
|
||||
|
||||
[JsonPropertyName("Temperature")]
|
||||
public double Temperature { get; set; }
|
||||
|
||||
[JsonPropertyName("Head")]
|
||||
public double Head { get; set; }
|
||||
|
||||
[JsonPropertyName("Chest")]
|
||||
public double Chest { get; set; }
|
||||
|
||||
[JsonPropertyName("Stomach")]
|
||||
public double Stomach { get; set; }
|
||||
|
||||
[JsonPropertyName("LeftArm")]
|
||||
public double LeftArm { get; set; }
|
||||
|
||||
[JsonPropertyName("RightArm")]
|
||||
public double RightArm { get; set; }
|
||||
|
||||
[JsonPropertyName("LeftLeg")]
|
||||
public double LeftLeg { get; set; }
|
||||
|
||||
[JsonPropertyName("RightLeg")]
|
||||
public double RightLeg { get; set; }
|
||||
}
|
||||
|
||||
public class Effects
|
||||
{
|
||||
[JsonPropertyName("Head")]
|
||||
public Head Head { get; set; }
|
||||
|
||||
[JsonPropertyName("Chest")]
|
||||
public Chest Chest { get; set; }
|
||||
|
||||
[JsonPropertyName("Stomach")]
|
||||
public Stomach Stomach { get; set; }
|
||||
|
||||
[JsonPropertyName("LeftArm")]
|
||||
public LeftArm LeftArm { get; set; }
|
||||
|
||||
[JsonPropertyName("RightArm")]
|
||||
public RightArm RightArm { get; set; }
|
||||
|
||||
[JsonPropertyName("LeftLeg")]
|
||||
public LeftLeg LeftLeg { get; set; }
|
||||
|
||||
[JsonPropertyName("RightLeg")]
|
||||
public RightLeg RightLeg { get; set; }
|
||||
}
|
||||
|
||||
public class Head
|
||||
{
|
||||
}
|
||||
|
||||
public class Chest
|
||||
{
|
||||
}
|
||||
|
||||
public class Stomach
|
||||
{
|
||||
}
|
||||
|
||||
public class LeftArm
|
||||
{
|
||||
[JsonPropertyName("Fracture")]
|
||||
public double? Fracture { get; set; }
|
||||
}
|
||||
|
||||
public class RightArm
|
||||
{
|
||||
[JsonPropertyName("Fracture")]
|
||||
public double? Fracture { get; set; }
|
||||
}
|
||||
|
||||
public class LeftLeg
|
||||
{
|
||||
[JsonPropertyName("Fracture")]
|
||||
public double? Fracture { get; set; }
|
||||
}
|
||||
|
||||
public class RightLeg
|
||||
{
|
||||
[JsonPropertyName("Fracture")]
|
||||
public double? Fracture { get; set; }
|
||||
}
|
||||
|
||||
public class Inraid
|
||||
{
|
||||
[JsonPropertyName("location")]
|
||||
public string Location { get; set; }
|
||||
|
||||
[JsonPropertyName("character")]
|
||||
public string Character { get; set; }
|
||||
}
|
||||
|
||||
public class Insurance
|
||||
{
|
||||
[JsonPropertyName("scheduledTime")]
|
||||
public int ScheduledTime { get; set; }
|
||||
|
||||
[JsonPropertyName("traderId")]
|
||||
public string TraderId { get; set; }
|
||||
|
||||
[JsonPropertyName("maxStorageTime")]
|
||||
public int MaxStorageTime { get; set; }
|
||||
|
||||
[JsonPropertyName("systemData")]
|
||||
public SystemData SystemData { get; set; }
|
||||
|
||||
[JsonPropertyName("messageType")]
|
||||
public MessageType MessageType { get; set; }
|
||||
|
||||
[JsonPropertyName("messageTemplateId")]
|
||||
public string MessageTemplateId { get; set; }
|
||||
|
||||
[JsonPropertyName("items")]
|
||||
public List<Item> Items { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace Core.Models.Eft.Profile;
|
||||
|
||||
public class SystemData
|
||||
{
|
||||
[JsonPropertyName("date")]
|
||||
public string? Date { get; set; }
|
||||
|
||||
[JsonPropertyName("time")]
|
||||
public string? Time { get; set; }
|
||||
|
||||
[JsonPropertyName("location")]
|
||||
public string? Location { get; set; }
|
||||
|
||||
[JsonPropertyName("buyerNickname")]
|
||||
public string? BuyerNickname { get; set; }
|
||||
|
||||
[JsonPropertyName("soldItem")]
|
||||
public string? SoldItem { get; set; }
|
||||
|
||||
[JsonPropertyName("itemCount")]
|
||||
public int? ItemCount { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Enums;
|
||||
|
||||
namespace Core.Models.Eft.Profile;
|
||||
|
||||
public class UserDialogInfo
|
||||
{
|
||||
[JsonPropertyName("_id")]
|
||||
public string Id { get; set; }
|
||||
|
||||
[JsonPropertyName("aid")]
|
||||
public int Aid { get; set; }
|
||||
|
||||
[JsonPropertyName("Info")]
|
||||
public UserDialogDetails Info { get; set; }
|
||||
}
|
||||
|
||||
public class UserDialogDetails
|
||||
{
|
||||
[JsonPropertyName("Nickname")]
|
||||
public string Nickname { get; set; }
|
||||
|
||||
[JsonPropertyName("Side")]
|
||||
public string Side { get; set; }
|
||||
|
||||
[JsonPropertyName("Level")]
|
||||
public int Level { get; set; }
|
||||
|
||||
[JsonPropertyName("MemberCategory")]
|
||||
public MemberCategory MemberCategory { get; set; }
|
||||
|
||||
[JsonPropertyName("SelectedMemberCategory")]
|
||||
public MemberCategory SelectedMemberCategory { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace Core.Models.Enums;
|
||||
|
||||
public enum EquipmentBuildType
|
||||
{
|
||||
CUSTOM = 0,
|
||||
STANDARD = 1,
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
namespace Core.Models.Enums;
|
||||
|
||||
public enum MessageType
|
||||
{
|
||||
USER_MESSAGE = 1,
|
||||
NPC_TRADER = 2,
|
||||
AUCTION_MESSAGE = 3,
|
||||
FLEAMARKET_MESSAGE = 4,
|
||||
ADMIN_MESSAGE = 5,
|
||||
GROUP_CHAT_MESSAGE = 6,
|
||||
SYSTEM_MESSAGE = 7,
|
||||
INSURANCE_RETURN = 8,
|
||||
GLOBAL_CHAT = 9,
|
||||
QUEST_START = 10,
|
||||
QUEST_FAIL = 11,
|
||||
QUEST_SUCCESS = 12,
|
||||
MESSAGE_WITH_ITEMS = 13,
|
||||
INITIAL_SUPPORT = 14,
|
||||
BTR_ITEMS_DELIVERY = 15
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
namespace Core.Models.Spt.Server;
|
||||
using Core.Models.Eft.Common;
|
||||
|
||||
namespace Core.Models.Spt.Server;
|
||||
|
||||
public class DatabaseTables
|
||||
{
|
||||
@@ -7,7 +9,7 @@ public class DatabaseTables
|
||||
public LocaleBase? locales { get; }
|
||||
public Locations? locations { get; }
|
||||
public Match? match { get; }
|
||||
public Templates? templates { get; }
|
||||
public Templates.Templates? templates { get; }
|
||||
public Dictionary<string, Trader>? traders { get; }
|
||||
public Globals? globals { get; }
|
||||
public ServerBase? server { get; }
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
using Core.Models.Eft.Common.Tables;
|
||||
using System.Text.Json.Serialization;
|
||||
using Core.Models.Eft.Profile;
|
||||
|
||||
namespace Core.Models.Spt.Templates;
|
||||
|
||||
|
||||
public class Templates
|
||||
{
|
||||
[JsonPropertyName("character")]
|
||||
public List<string> Character { get; set; }
|
||||
|
||||
[JsonPropertyName("customisationStorage")]
|
||||
public List<CustomisationStorage> CustomisationStorage { get; set; }
|
||||
|
||||
[JsonPropertyName("items")]
|
||||
public Dictionary<string, TemplateItem> Items { get; set; }
|
||||
|
||||
[JsonPropertyName("prestige")]
|
||||
public Prestige Prestige { get; set; }
|
||||
|
||||
[JsonPropertyName("quests")]
|
||||
public Dictionary<string, Quest> Quests { get; set; }
|
||||
|
||||
[JsonPropertyName("repeatableQuests")]
|
||||
public RepeatableQuestDatabase RepeatableQuests { get; set; }
|
||||
|
||||
[JsonPropertyName("handbook")]
|
||||
public HandbookBase Handbook { get; set; }
|
||||
|
||||
[JsonPropertyName("customization")]
|
||||
public Dictionary<string, CustomizationItem> Customization { get; set; }
|
||||
|
||||
/** The profile templates listed in the launcher on profile creation, split by account type (e.g. Standard) then side (e.g. bear/usec) */
|
||||
[JsonPropertyName("profiles")]
|
||||
public ProfileTemplates Profiles { get; set; }
|
||||
|
||||
/** Flea prices of items - gathered from online flea market dump */
|
||||
[JsonPropertyName("prices")]
|
||||
public Dictionary<string, decimal> Prices { get; set; }
|
||||
|
||||
/** Default equipment loadouts that show on main inventory screen */
|
||||
[JsonPropertyName("defaultEquipmentPresets")]
|
||||
public List<DefaultEquipmentPreset> DefaultEquipmentPresets { get; set; }
|
||||
|
||||
/** Achievements */
|
||||
[JsonPropertyName("achievements")]
|
||||
public List<Achievement> Achievements { get; set; }
|
||||
|
||||
/** Location services data */
|
||||
[JsonPropertyName("locationServices")]
|
||||
public LocationServices LocationServices { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user