From 5d866c25c0f8e6d38b82b4440afe29e3c55ca470 Mon Sep 17 00:00:00 2001 From: CWX Date: Wed, 8 Jan 2025 13:41:25 +0000 Subject: [PATCH] Formatting --- Core/Annotations/Injectable.cs | 2 +- Core/Callbacks/AchievementCallbacks.cs | 1 - Core/Callbacks/BotCallbacks.cs | 3 +- Core/Callbacks/BuildsCallbacks.cs | 1 - Core/Callbacks/BundleCallbacks.cs | 3 +- Core/Callbacks/ClientLogCallbacks.cs | 1 - Core/Callbacks/CustomizationCallbacks.cs | 6 +- Core/Callbacks/DataCallbacks.cs | 1 - Core/Callbacks/DialogCallbacks.cs | 11 +- Core/Callbacks/GameCallbacks.cs | 11 +- Core/Callbacks/HandbookCallbacks.cs | 3 +- Core/Callbacks/HealthCallbacks.cs | 1 - Core/Callbacks/HideoutCallbacks.cs | 7 +- Core/Callbacks/InraidCallbacks.cs | 1 - Core/Callbacks/InsuranceCallbacks.cs | 1 - Core/Callbacks/InventoryCallbacks.cs | 35 +- Core/Callbacks/ItemEventCallbacks.cs | 3 +- Core/Callbacks/LauncherCallbacks.cs | 3 +- Core/Callbacks/LocationCallbacks.cs | 3 +- Core/Callbacks/MatchCallbacks.cs | 5 +- Core/Callbacks/ModCallbacks.cs | 3 +- Core/Callbacks/NoteCallbacks.cs | 3 +- Core/Callbacks/NotifierCallbacks.cs | 3 +- Core/Callbacks/PresetCallbacks.cs | 3 +- Core/Callbacks/PrestigeCallbacks.cs | 1 - Core/Callbacks/ProfileCallbacks.cs | 19 +- Core/Callbacks/QuestCallbacks.cs | 3 +- Core/Callbacks/RagfairCallbacks.cs | 7 +- Core/Callbacks/RepairCallbacks.cs | 3 +- Core/Callbacks/SaveCallbacks.cs | 3 +- Core/Callbacks/TradeCallbacks.cs | 3 +- Core/Callbacks/TraderCallbacks.cs | 7 +- Core/Callbacks/WeatherCallbacks.cs | 3 +- Core/Callbacks/WishlistCallbacks.cs | 1 - Core/Context/ApplicationContext.cs | 2 +- Core/Context/ContextVariable.cs | 2 +- Core/Context/ContextVariableType.cs | 4 + Core/Controllers/AchievementController.cs | 1 - Core/Controllers/BotController.cs | 13 +- Core/Controllers/BuildController.cs | 110 +- Core/Controllers/ClientLogController.cs | 16 +- Core/Controllers/CustomizationController.cs | 244 +- Core/Controllers/DialogueController.cs | 454 +- Core/Controllers/GameController.cs | 322 +- Core/Controllers/HandBookController.cs | 8 +- Core/Controllers/HealthController.cs | 118 +- Core/Controllers/HideoutController.cs | 2 +- Core/Controllers/InRaidController.cs | 110 +- Core/Controllers/InsuranceController.cs | 2 +- Core/Controllers/InventoryController.cs | 2 +- Core/Controllers/LauncherController.cs | 250 +- Core/Controllers/LocationController.cs | 38 +- Core/Controllers/MatchController.cs | 164 +- Core/Controllers/NoteController.cs | 88 +- Core/Controllers/NotifierController.cs | 60 +- Core/Controllers/PresetController.cs | 14 +- Core/Controllers/PrestigeController.cs | 48 +- Core/Controllers/ProfileController.cs | 2 +- Core/Controllers/QuestController.cs | 2 +- Core/Controllers/RagfairController.cs | 2 +- Core/Controllers/RepairController.cs | 64 +- Core/Controllers/RepeatableQuestController.cs | 2 +- Core/Controllers/TradeController.cs | 262 +- Core/Controllers/TraderController.cs | 144 +- Core/Controllers/WeatherController.cs | 34 +- Core/Controllers/WishlistController.cs | 86 +- Core/Generators/BotInventoryGenerator.cs | 9 +- Core/Generators/BotLevelGenerator.cs | 1 - Core/Generators/BotLootGenerator.cs | 7 +- Core/Generators/BotWeaponGenerator.cs | 4 +- Core/Generators/FenceBaseAssortGenerator.cs | 11 +- Core/Generators/LocationLootGenerator.cs | 5 +- Core/Generators/PMCLootGenerator.cs | 3 +- Core/Generators/PlayerScavGenerator.cs | 31 +- Core/Generators/RagfairAssortGenerator.cs | 11 +- .../Implementations/BarrelInvetoryMagGen.cs | 1 - .../ExternalInventoryMagGen.cs | 1 - .../InternalMagazineInventoryMagGen.cs | 1 - .../Implementations/UbglExternalMagGen.cs | 1 - Core/Generators/WeaponGen/InventoryMagGen.cs | 3 +- .../Eft/Bot/RandomisedBotLevelResult.cs | 2 +- Core/Models/Eft/Builds/SetMagazineRequest.cs | 2 +- Core/Models/Eft/Common/EmptyRequestData.cs | 1 - Core/Models/Eft/Common/Globals.cs | 5070 ++++++++--------- Core/Models/Eft/Common/Location.cs | 198 +- Core/Models/Eft/Common/LocationBase.cs | 1116 ++-- Core/Models/Eft/Common/LooseLoot.cs | 120 +- Core/Models/Eft/Common/PmcData.cs | 14 +- Core/Models/Eft/Common/Tables/Achievement.cs | 2 +- Core/Models/Eft/Common/Tables/BotBase.cs | 7 +- Core/Models/Eft/Common/Tables/BotCore.cs | 263 +- Core/Models/Eft/Common/Tables/BotType.cs | 41 +- .../Eft/Common/Tables/CustomisationStorage.cs | 4 +- Core/Models/Eft/Common/Tables/HandbookBase.cs | 14 +- Core/Models/Eft/Common/Tables/Item.cs | 28 +- .../Models/Eft/Common/Tables/LocationsBase.cs | 2 +- Core/Models/Eft/Common/Tables/Match.cs | 1 - Core/Models/Eft/Common/Tables/Prestige.cs | 20 +- Core/Models/Eft/Common/Tables/Quest.cs | 180 +- .../Eft/Common/Tables/RepeatableQuests.cs | 98 +- Core/Models/Eft/Common/Tables/TemplateItem.cs | 343 +- Core/Models/Eft/Common/Tables/Trader.cs | 68 +- Core/Models/Eft/Common/XY.cs | 2 +- .../Customization/BuyClothingRequestData.cs | 24 +- .../Customization/CustomizationSetRequest.cs | 20 +- .../Customization/WearClothingRequestData.cs | 1 - Core/Models/Eft/Dialog/ChatServer.cs | 46 +- .../Eft/Dialog/FriendRequestSendResponse.cs | 12 +- .../Eft/Dialog/GetAllAttachmentsResponse.cs | 12 +- .../Eft/Dialog/GetFriendListDataResponse.cs | 12 +- .../Dialog/GetMailDialogListRequestData.cs | 2 +- .../Dialog/GetMailDialogViewRequestData.cs | 16 +- .../Dialog/GetMailDialogViewResponseData.cs | 12 +- Core/Models/Eft/Dialog/SendMessageRequest.cs | 16 +- .../Eft/Health/OffraidHealRequestData.cs | 2 +- ...outContinuousProductionStartRequestData.cs | 6 +- .../HideoutScavCaseStartRequestData.cs | 12 +- .../HideoutTakeProductionRequestData.cs | 3 +- .../Eft/Hideout/HideoutUpgradeRequestData.cs | 8 +- .../Eft/HttpResponse/GetBodyResponseData.cs | 4 +- .../Eft/HttpResponse/NullResponseData.cs | 2 +- .../Eft/InRaid/RegisterPlayerRequestData.cs | 4 +- Core/Models/Eft/InRaid/ScavSaveRequestData.cs | 1 - .../Insurance/GetInsuranceCostResponseData.cs | 1 - .../Eft/Inventory/InventoryFoldRequestData.cs | 4 +- .../Eft/Inventory/InventorySwapRequestData.cs | 12 +- .../OpenRandomLootContainerRequestData.cs | 2 +- .../Eft/ItemEvent/ItemEventRouterResponse.cs | 1 - .../Eft/Launcher/GetMiniProfileRequestData.cs | 2 +- Core/Models/Eft/Launcher/LoginRequestData.cs | 2 +- Core/Models/Eft/Launcher/RemoveProfileData.cs | 1 - .../Eft/Match/MatchGroupStatusResponse.cs | 2 +- .../Models/Eft/Match/ProfileStatusResponse.cs | 2 +- Core/Models/Eft/Match/Server.cs | 4 +- Core/Models/Eft/Notes/NoteActionData.cs | 20 +- Core/Models/Eft/Notifier/Notifier.cs | 20 +- .../Eft/Notifier/SelectProfileResponse.cs | 4 +- .../Eft/Profile/GetOtherProfileRequest.cs | 2 +- .../ProfileChangeNicknameRequestData.cs | 4 +- .../Profile/ProfileChangeVoiceRequestData.cs | 6 +- .../Eft/Profile/SearchFriendRequestData.cs | 4 +- .../Profile/ValidateNicknameRequestData.cs | 4 +- Core/Models/Eft/Ragfair/GetOffersResult.cs | 24 +- Core/Models/Eft/Ragfair/SearchRequestData.cs | 2 +- .../Eft/Repair/BaseRepairActionDataRequest.cs | 4 +- .../Eft/Repair/RepairActionDataRequest.cs | 20 +- .../Repair/TraderRepairActionDataRequest.cs | 20 +- .../Eft/Trade/ProcessBaseTradeRequestData.cs | 12 +- .../Eft/Trade/ProcessBuyTradeRequestData.cs | 52 +- .../Trade/ProcessRagfairTradeRequestData.cs | 28 +- .../Eft/Trade/ProcessSellTradeRequestData.cs | 38 +- .../Trade/SellScavItemsToFenceRequestData.cs | 22 +- Core/Models/Eft/Weather/WeatherData.cs | 108 +- .../Eft/Wishlist/AddToWishlistRequest.cs | 10 +- .../ChangeWishlistItemCategoryRequest.cs | 12 +- .../Eft/Wishlist/RemoveFromWishlistRequest.cs | 8 +- Core/Models/Eft/Ws/WsAid.cs | 4 +- Core/Models/Eft/Ws/WsAidNickname.cs | 8 +- Core/Models/Eft/Ws/WsChatMessageReceived.cs | 12 +- Core/Models/Eft/Ws/WsFriendListAccept.cs | 4 +- Core/Models/Eft/Ws/WsGroupId.cs | 4 +- .../Eft/Ws/WsGroupMatchInviteDecline.cs | 10 +- Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs | 12 +- .../Eft/Ws/WsGroupMatchLeaderChanged.cs | 4 +- Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs | 4 +- .../Models/Eft/Ws/WsGroupMatchRaidSettings.cs | 4 +- Core/Models/Eft/Ws/WsNotificationEvent.cs | 10 +- Core/Models/Eft/Ws/WsPing.cs | 1 - Core/Models/Eft/Ws/WsRagfairOfferSold.cs | 16 +- Core/Models/Eft/Ws/WsUserConfirmed.cs | 48 +- Core/Models/Enums/ConfigTypes.cs | 2 +- Core/Models/Enums/EquipmentBuildType.cs | 2 +- Core/Models/Enums/Hideout/QteType.cs | 2 +- Core/Models/Enums/HideoutAreas.cs | 2 +- Core/Models/Enums/MemberCategory.cs | 2 +- Core/Models/Enums/ModSpawn.cs | 4 +- Core/Models/Enums/ProfileStatus.cs | 2 +- Core/Models/Enums/QuestStatus.cs | 2 +- Core/Models/Enums/RagfairSort.cs | 2 +- Core/Models/Enums/RaidSettings/BotAmount.cs | 2 +- .../Enums/RaidSettings/BotDifficulty.cs | 2 +- .../RaidSettings/TimeAndWeather/FogType.cs | 2 +- .../RaidSettings/TimeAndWeather/RainType.cs | 2 +- .../TimeAndWeather/TimeFlowType.cs | 2 +- .../RaidSettings/TimeAndWeather/WindSpeed.cs | 2 +- Core/Models/Enums/Season.cs | 5 +- Core/Models/Enums/SkillTypes.cs | 1 + Core/Models/Enums/WindDirection.cs | 5 +- Core/Models/Spt/Bots/BotGenerationDetails.cs | 24 +- Core/Models/Spt/Bots/BotLootCache.cs | 78 +- Core/Models/Spt/Bots/Bots.cs | 1 - .../Bots/ChooseRandomCompatibleModResult.cs | 20 +- .../FilterPlateModsForSlotByLevelResult.cs | 18 +- .../Spt/Bots/GenerateEquipmentProperties.cs | 76 +- Core/Models/Spt/Bots/GenerateWeaponRequest.cs | 10 +- Core/Models/Spt/Bots/GenerateWeaponResult.cs | 20 +- .../Models/Spt/Bots/ItemSpawnLimitSettings.cs | 10 +- Core/Models/Spt/Config/AirdropConfig.cs | 14 +- Core/Models/Spt/Config/BaseConfig.cs | 2 +- Core/Models/Spt/Config/BotConfig.cs | 198 +- Core/Models/Spt/Config/BotDurability.cs | 12 +- Core/Models/Spt/Config/HideoutConfig.cs | 20 +- Core/Models/Spt/Config/InventoryConfig.cs | 30 +- Core/Models/Spt/Config/LocaleConfig.cs | 2 +- Core/Models/Spt/Config/LocationConfig.cs | 68 +- Core/Models/Spt/Config/LostOnDeathConfig.cs | 30 +- Core/Models/Spt/Config/MatchConfig.cs | 2 +- Core/Models/Spt/Config/PmcConfig.cs | 68 +- Core/Models/Spt/Config/SeasonalEventConfig.cs | 44 +- Core/Models/Spt/Config/TraderConfig.cs | 76 +- Core/Models/Spt/Hideout/CircleCraftDetails.cs | 6 +- Core/Models/Spt/Hideout/Hideout.cs | 8 +- .../Hideout/ScavCaseRewardCountsAndPrices.cs | 10 +- .../Spt/Inventory/OwnerInventoryItems.cs | 6 +- Core/Models/Spt/Location/RaidChanges.cs | 4 +- Core/Models/Spt/Logging/ClientLogRequest.cs | 8 +- Core/Models/Spt/Logging/LogBackgroundColor.cs | 3 +- Core/Models/Spt/Logging/LogTextColor.cs | 3 +- Core/Models/Spt/Logging/SptLogger.cs | 10 +- Core/Models/Spt/Mod/NewItemDetails.cs | 22 +- Core/Models/Spt/Mod/PackageJsonData.cs | 30 +- .../Spt/Quests/GetRepeatableByIdResult.cs | 2 +- .../Models/Spt/Ragfair/RagfairServerPrices.cs | 2 +- Core/Models/Spt/Ragfair/TplWithFleaPrice.cs | 2 +- Core/Models/Spt/Server/ExhaustableArray.cs | 3 +- Core/Models/Spt/Server/Locations.cs | 2 +- Core/Models/Spt/Server/ServerBase.cs | 2 +- Core/Models/Spt/Server/SettingsBase.cs | 72 +- .../Spt/Services/InsuranceEquipmentPkg.cs | 16 +- Core/Models/Spt/Services/LootItem.cs | 16 +- Core/Models/Spt/Templates/Templates.cs | 1 - .../Weather/GetLocalWeatherResponseData.cs | 8 +- Core/Models/Utils/ILogger.cs | 1 - Core/Servers/ConfigServer.cs | 12 +- Core/Servers/DatabaseServer.cs | 10 +- Core/Servers/HttpServer.cs | 39 +- Core/Services/DatabaseService.cs | 80 +- Core/Services/I18nService.cs | 10 +- Core/Services/LocaleService.cs | 34 +- Core/Utils/App.cs | 46 +- Core/Utils/DatabaseImporter.cs | 21 +- Core/Utils/EncodingUtil.cs | 3 +- Core/Utils/FileUtil.cs | 6 +- Core/Utils/HashUtil.cs | 194 +- Core/Utils/ImporterUtil.cs | 31 +- .../ArrayToObjectFactoryConverter.cs | 6 +- .../StringToNumberFactoryConverter.cs | 6 +- Core/Utils/JsonUtil.cs | 2 - Core/Utils/MathUtil.cs | 191 +- Core/Utils/RandomUtil.cs | 88 +- Core/Utils/TimeUtil.cs | 312 +- UnitTests/UnitTests.csproj | 2 +- 252 files changed, 6711 insertions(+), 6817 deletions(-) diff --git a/Core/Annotations/Injectable.cs b/Core/Annotations/Injectable.cs index 45caefde..b29b7af0 100644 --- a/Core/Annotations/Injectable.cs +++ b/Core/Annotations/Injectable.cs @@ -1,7 +1,7 @@ namespace Core.Annotations; [AttributeUsage(AttributeTargets.Class)] -public class Injectable(InjectionType injectionType = InjectionType.Scoped, Type? type = null, int typePriority = Int32.MaxValue) : Attribute +public class Injectable(InjectionType injectionType = InjectionType.Scoped, Type? type = null, int typePriority = int.MaxValue) : Attribute { public InjectionType InjectionType { get; set; } = injectionType; public Type? InjectableTypeOverride { get; set; } = type; diff --git a/Core/Callbacks/AchievementCallbacks.cs b/Core/Callbacks/AchievementCallbacks.cs index d2d43850..06fdc216 100644 --- a/Core/Callbacks/AchievementCallbacks.cs +++ b/Core/Callbacks/AchievementCallbacks.cs @@ -8,7 +8,6 @@ public class AchievementCallbacks { public AchievementCallbacks() { - } /// diff --git a/Core/Callbacks/BotCallbacks.cs b/Core/Callbacks/BotCallbacks.cs index 645fe536..543c1a61 100644 --- a/Core/Callbacks/BotCallbacks.cs +++ b/Core/Callbacks/BotCallbacks.cs @@ -9,9 +9,8 @@ public class BotCallbacks { public BotCallbacks() { - } - + /// /// Handle singleplayer/settings/bot/limit /// Is called by client to define each bot roles wave limit diff --git a/Core/Callbacks/BuildsCallbacks.cs b/Core/Callbacks/BuildsCallbacks.cs index 2948ef74..52d0c264 100644 --- a/Core/Callbacks/BuildsCallbacks.cs +++ b/Core/Callbacks/BuildsCallbacks.cs @@ -10,7 +10,6 @@ public class BuildsCallbacks { public BuildsCallbacks() { - } /// diff --git a/Core/Callbacks/BundleCallbacks.cs b/Core/Callbacks/BundleCallbacks.cs index c35544f7..d1e93a55 100644 --- a/Core/Callbacks/BundleCallbacks.cs +++ b/Core/Callbacks/BundleCallbacks.cs @@ -5,10 +5,9 @@ namespace Core.Callbacks; public class BundleCallbacks { private HttpConfig _httpConfig; - + public BundleCallbacks() { - } /// diff --git a/Core/Callbacks/ClientLogCallbacks.cs b/Core/Callbacks/ClientLogCallbacks.cs index 7af43dee..3ec61be1 100644 --- a/Core/Callbacks/ClientLogCallbacks.cs +++ b/Core/Callbacks/ClientLogCallbacks.cs @@ -7,7 +7,6 @@ public class ClientLogCallbacks { public ClientLogCallbacks() { - } /// diff --git a/Core/Callbacks/CustomizationCallbacks.cs b/Core/Callbacks/CustomizationCallbacks.cs index c01f0afa..18ad6903 100644 --- a/Core/Callbacks/CustomizationCallbacks.cs +++ b/Core/Callbacks/CustomizationCallbacks.cs @@ -11,9 +11,8 @@ public class CustomizationCallbacks { public CustomizationCallbacks() { - } - + /// /// Handle client/trading/customization/storage /// @@ -49,7 +48,7 @@ public class CustomizationCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/hideout/customization/offer/list /// @@ -85,5 +84,4 @@ public class CustomizationCallbacks { throw new NotImplementedException(); } - } \ No newline at end of file diff --git a/Core/Callbacks/DataCallbacks.cs b/Core/Callbacks/DataCallbacks.cs index 4ecfdb1d..1b94e341 100644 --- a/Core/Callbacks/DataCallbacks.cs +++ b/Core/Callbacks/DataCallbacks.cs @@ -11,7 +11,6 @@ public class DataCallbacks { public DataCallbacks() { - } /// diff --git a/Core/Callbacks/DialogCallbacks.cs b/Core/Callbacks/DialogCallbacks.cs index a91bd19d..8a1f507b 100644 --- a/Core/Callbacks/DialogCallbacks.cs +++ b/Core/Callbacks/DialogCallbacks.cs @@ -11,9 +11,8 @@ public class DialogCallbacks : OnUpdate { public DialogCallbacks() { - } - + /// /// Handle client/friend/list /// @@ -97,7 +96,7 @@ public class DialogCallbacks : OnUpdate { throw new NotImplementedException(); } - + /// /// Handle client/mail/dialog/unpin /// @@ -109,7 +108,7 @@ public class DialogCallbacks : OnUpdate { throw new NotImplementedException(); } - + /// /// Handle client/mail/dialog/read /// @@ -145,7 +144,7 @@ public class DialogCallbacks : OnUpdate { throw new NotImplementedException(); } - + /// /// Handle client/friend/request/list/outbox /// @@ -169,7 +168,7 @@ public class DialogCallbacks : OnUpdate { throw new NotImplementedException(); } - + /// /// Handle client/friend/request/send /// diff --git a/Core/Callbacks/GameCallbacks.cs b/Core/Callbacks/GameCallbacks.cs index 5001ff11..d6309616 100644 --- a/Core/Callbacks/GameCallbacks.cs +++ b/Core/Callbacks/GameCallbacks.cs @@ -10,7 +10,6 @@ public class GameCallbacks : OnLoad { public GameCallbacks() { - } public async Task OnLoad() @@ -22,7 +21,7 @@ public class GameCallbacks : OnLoad { throw new NotImplementedException(); } - + /// /// Handle client/game/version/validate /// @@ -34,7 +33,7 @@ public class GameCallbacks : OnLoad { throw new NotImplementedException(); } - + /// /// Handle client/game/start /// @@ -107,7 +106,7 @@ public class GameCallbacks : OnLoad { throw new NotImplementedException(); } - + /// /// Handle client/checkVersion /// @@ -119,7 +118,7 @@ public class GameCallbacks : OnLoad { throw new NotImplementedException(); } - + /// /// Handle client/game/keepalive /// @@ -131,7 +130,7 @@ public class GameCallbacks : OnLoad { throw new NotImplementedException(); } - + /// /// Handle singleplayer/settings/version /// diff --git a/Core/Callbacks/HandbookCallbacks.cs b/Core/Callbacks/HandbookCallbacks.cs index ae685b43..2d72e78b 100644 --- a/Core/Callbacks/HandbookCallbacks.cs +++ b/Core/Callbacks/HandbookCallbacks.cs @@ -6,9 +6,8 @@ public class HandbookCallbacks : OnLoad { public HandbookCallbacks() { - } - + public Task OnLoad() { throw new NotImplementedException(); diff --git a/Core/Callbacks/HealthCallbacks.cs b/Core/Callbacks/HealthCallbacks.cs index d4e9bd03..dbbe3f33 100644 --- a/Core/Callbacks/HealthCallbacks.cs +++ b/Core/Callbacks/HealthCallbacks.cs @@ -9,7 +9,6 @@ public class HealthCallbacks { public HealthCallbacks() { - } /// diff --git a/Core/Callbacks/HideoutCallbacks.cs b/Core/Callbacks/HideoutCallbacks.cs index 13abde75..7dd79e27 100644 --- a/Core/Callbacks/HideoutCallbacks.cs +++ b/Core/Callbacks/HideoutCallbacks.cs @@ -9,12 +9,11 @@ namespace Core.Callbacks; public class HideoutCallbacks : OnUpdate { private HideoutConfig _hideoutConfig; - + public HideoutCallbacks() { - } - + /// /// Handle HideoutUpgrade event /// @@ -208,7 +207,7 @@ public class HideoutCallbacks : OnUpdate { throw new NotImplementedException(); } - + public async Task OnUpdate(long timeSinceLastRun) { throw new NotImplementedException(); diff --git a/Core/Callbacks/InraidCallbacks.cs b/Core/Callbacks/InraidCallbacks.cs index 91c2f05b..2515a592 100644 --- a/Core/Callbacks/InraidCallbacks.cs +++ b/Core/Callbacks/InraidCallbacks.cs @@ -8,7 +8,6 @@ public class InraidCallbacks { public InraidCallbacks() { - } /// diff --git a/Core/Callbacks/InsuranceCallbacks.cs b/Core/Callbacks/InsuranceCallbacks.cs index 2071d528..3b5fc456 100644 --- a/Core/Callbacks/InsuranceCallbacks.cs +++ b/Core/Callbacks/InsuranceCallbacks.cs @@ -13,7 +13,6 @@ public class InsuranceCallbacks : OnUpdate public InsuranceCallbacks() { - } /// diff --git a/Core/Callbacks/InventoryCallbacks.cs b/Core/Callbacks/InventoryCallbacks.cs index 87b36ab4..aa439dbb 100644 --- a/Core/Callbacks/InventoryCallbacks.cs +++ b/Core/Callbacks/InventoryCallbacks.cs @@ -9,9 +9,8 @@ public class InventoryCallbacks { public InventoryCallbacks() { - } - + /// /// Handle client/game/profile/items/moving Move event /// @@ -24,7 +23,7 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + /// /// Handle Remove event /// @@ -37,7 +36,7 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + /// /// Handle Split event /// @@ -50,17 +49,17 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + public ItemEventRouterResponse MergeItem(PmcData pmcData, InventoryMergeRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse TransferItem(PmcData pmcData, InventoryTransferRequestData info, string sessionID) { throw new NotImplementedException(); } - + /// /// Handle Swap /// @@ -73,37 +72,37 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + public ItemEventRouterResponse FoldItem(PmcData pmcData, InventoryFoldRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse ToggleItem(PmcData pmcData, InventoryToggleRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse TagItem(PmcData pmcData, InventoryTagRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse BindItem(PmcData pmcData, InventoryBindRequestData info, string sessionID) { 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(); } - + /// /// Handle ReadEncyclopedia /// @@ -116,7 +115,7 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + /// /// Handle ApplyInventoryChanges /// @@ -129,17 +128,17 @@ public class InventoryCallbacks { throw new NotImplementedException(); } - + public ItemEventRouterResponse CreateMapMarker(PmcData pmcData, InventoryCreateMarkerRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse DeleteMapMarker(PmcData pmcData, InventoryDeleteMarkerRequestData info, string sessionID) { throw new NotImplementedException(); } - + public ItemEventRouterResponse EditMapMarker(PmcData pmcData, InventoryEditMarkerRequestData info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/ItemEventCallbacks.cs b/Core/Callbacks/ItemEventCallbacks.cs index 08c423eb..ffcb3c21 100644 --- a/Core/Callbacks/ItemEventCallbacks.cs +++ b/Core/Callbacks/ItemEventCallbacks.cs @@ -7,9 +7,8 @@ public class ItemEventCallbacks { public ItemEventCallbacks() { - } - + public async Task> HandleEvents(string url, ItemEventRouterRequest info, string sessionID) { throw new NotImplementedException(); diff --git a/Core/Callbacks/LauncherCallbacks.cs b/Core/Callbacks/LauncherCallbacks.cs index 84bee578..d672d167 100644 --- a/Core/Callbacks/LauncherCallbacks.cs +++ b/Core/Callbacks/LauncherCallbacks.cs @@ -7,9 +7,8 @@ public class LauncherCallbacks { public LauncherCallbacks() { - } - + public string Connect() { throw new NotImplementedException(); diff --git a/Core/Callbacks/LocationCallbacks.cs b/Core/Callbacks/LocationCallbacks.cs index cc2d23bf..4d425b5e 100644 --- a/Core/Callbacks/LocationCallbacks.cs +++ b/Core/Callbacks/LocationCallbacks.cs @@ -9,9 +9,8 @@ public class LocationCallbacks { public LocationCallbacks() { - } - + /// /// Handle client/locations /// diff --git a/Core/Callbacks/MatchCallbacks.cs b/Core/Callbacks/MatchCallbacks.cs index 4e7dac1f..5ac1972f 100644 --- a/Core/Callbacks/MatchCallbacks.cs +++ b/Core/Callbacks/MatchCallbacks.cs @@ -9,9 +9,8 @@ public class MatchCallbacks { public MatchCallbacks() { - } - + /// /// Handle client/match/updatePing /// @@ -47,7 +46,7 @@ public class MatchCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/match/group/current /// diff --git a/Core/Callbacks/ModCallbacks.cs b/Core/Callbacks/ModCallbacks.cs index 8c2d0d5d..258b4a6f 100644 --- a/Core/Callbacks/ModCallbacks.cs +++ b/Core/Callbacks/ModCallbacks.cs @@ -6,9 +6,8 @@ public class ModCallbacks : OnLoad { public ModCallbacks() { - } - + public async Task OnLoad() { throw new NotImplementedException(); diff --git a/Core/Callbacks/NoteCallbacks.cs b/Core/Callbacks/NoteCallbacks.cs index 267ff793..d7315979 100644 --- a/Core/Callbacks/NoteCallbacks.cs +++ b/Core/Callbacks/NoteCallbacks.cs @@ -8,9 +8,8 @@ public class NoteCallbacks { public NoteCallbacks() { - } - + /// /// Handle AddNote event /// diff --git a/Core/Callbacks/NotifierCallbacks.cs b/Core/Callbacks/NotifierCallbacks.cs index ecb00c5b..e55012ee 100644 --- a/Core/Callbacks/NotifierCallbacks.cs +++ b/Core/Callbacks/NotifierCallbacks.cs @@ -9,9 +9,8 @@ public class NotifierCallbacks { public NotifierCallbacks() { - } - + /** * If we don't have anything to send, it's ok to not send anything back * because notification requests can be long-polling. In fact, we SHOULD wait diff --git a/Core/Callbacks/PresetCallbacks.cs b/Core/Callbacks/PresetCallbacks.cs index e5de9fff..a19feb1c 100644 --- a/Core/Callbacks/PresetCallbacks.cs +++ b/Core/Callbacks/PresetCallbacks.cs @@ -6,9 +6,8 @@ public class PresetCallbacks : OnLoad { public PresetCallbacks() { - } - + public async Task OnLoad() { throw new NotImplementedException(); diff --git a/Core/Callbacks/PrestigeCallbacks.cs b/Core/Callbacks/PrestigeCallbacks.cs index 0175c7d2..c1a3de91 100644 --- a/Core/Callbacks/PrestigeCallbacks.cs +++ b/Core/Callbacks/PrestigeCallbacks.cs @@ -8,7 +8,6 @@ public class PrestigeCallbacks { public PrestigeCallbacks() { - } /// diff --git a/Core/Callbacks/ProfileCallbacks.cs b/Core/Callbacks/ProfileCallbacks.cs index 1d141561..8b6736eb 100644 --- a/Core/Callbacks/ProfileCallbacks.cs +++ b/Core/Callbacks/ProfileCallbacks.cs @@ -9,9 +9,8 @@ public class ProfileCallbacks { public ProfileCallbacks() { - } - + /// /// Handle client/game/profile/create /// @@ -23,7 +22,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/list /// Get the complete player profile (scav + pmc character) @@ -36,7 +35,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/savage/regenerate /// Handle the creation of a scav profile for player @@ -50,7 +49,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/voice/change event /// @@ -62,7 +61,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/nickname/change event /// Client allows player to adjust their profile name @@ -75,7 +74,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/nickname/validate /// @@ -87,7 +86,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/game/profile/nickname/reserved /// @@ -137,7 +136,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle client/profile/settings /// @@ -149,7 +148,7 @@ public class ProfileCallbacks { throw new NotImplementedException(); } - + /// /// Handle launcher/profile/info /// diff --git a/Core/Callbacks/QuestCallbacks.cs b/Core/Callbacks/QuestCallbacks.cs index 55181d69..cab18064 100644 --- a/Core/Callbacks/QuestCallbacks.cs +++ b/Core/Callbacks/QuestCallbacks.cs @@ -10,9 +10,8 @@ public class QuestCallbacks { public QuestCallbacks() { - } - + /// /// Handle RepeatableQuestChange event /// diff --git a/Core/Callbacks/RagfairCallbacks.cs b/Core/Callbacks/RagfairCallbacks.cs index 696f1af3..9d7762be 100644 --- a/Core/Callbacks/RagfairCallbacks.cs +++ b/Core/Callbacks/RagfairCallbacks.cs @@ -13,9 +13,8 @@ public class RagfairCallbacks : OnLoad, OnUpdate public RagfairCallbacks() { - } - + public async Task OnLoad() { throw new NotImplementedException(); @@ -83,7 +82,7 @@ public class RagfairCallbacks : OnLoad, OnUpdate { throw new NotImplementedException(); } - + /// /// Handle RagFairRenewOffer event /// @@ -128,7 +127,7 @@ public class RagfairCallbacks : OnLoad, OnUpdate { throw new NotImplementedException(); } - + /// /// Handle client/ragfair/offer/findbyid /// diff --git a/Core/Callbacks/RepairCallbacks.cs b/Core/Callbacks/RepairCallbacks.cs index 147b5b60..bc692a05 100644 --- a/Core/Callbacks/RepairCallbacks.cs +++ b/Core/Callbacks/RepairCallbacks.cs @@ -8,9 +8,8 @@ public class RepairCallbacks { public RepairCallbacks() { - } - + /// /// Handle TraderRepair event /// use trader to repair item diff --git a/Core/Callbacks/SaveCallbacks.cs b/Core/Callbacks/SaveCallbacks.cs index 63ff188c..176ed83b 100644 --- a/Core/Callbacks/SaveCallbacks.cs +++ b/Core/Callbacks/SaveCallbacks.cs @@ -9,9 +9,8 @@ public class SaveCallbacks : OnLoad, OnUpdate public SaveCallbacks() { - } - + public async Task OnLoad() { throw new NotImplementedException(); diff --git a/Core/Callbacks/TradeCallbacks.cs b/Core/Callbacks/TradeCallbacks.cs index 7be61846..1121bcbd 100644 --- a/Core/Callbacks/TradeCallbacks.cs +++ b/Core/Callbacks/TradeCallbacks.cs @@ -8,9 +8,8 @@ public class TradeCallbacks { public TradeCallbacks() { - } - + /// /// Handle client/game/profile/items/moving TradingConfirm event /// diff --git a/Core/Callbacks/TraderCallbacks.cs b/Core/Callbacks/TraderCallbacks.cs index 5edcf29a..93c489c1 100644 --- a/Core/Callbacks/TraderCallbacks.cs +++ b/Core/Callbacks/TraderCallbacks.cs @@ -10,9 +10,8 @@ public class TraderCallbacks : OnLoad, OnUpdate { public TraderCallbacks() { - } - + public async Task OnLoad() { throw new NotImplementedException(); @@ -22,12 +21,12 @@ public class TraderCallbacks : OnLoad, OnUpdate { throw new NotImplementedException(); } - + public string GetRoute() { throw new NotImplementedException(); } - + /// /// Handle client/trading/api/traderSettings /// diff --git a/Core/Callbacks/WeatherCallbacks.cs b/Core/Callbacks/WeatherCallbacks.cs index b888f3de..2b3957c3 100644 --- a/Core/Callbacks/WeatherCallbacks.cs +++ b/Core/Callbacks/WeatherCallbacks.cs @@ -9,9 +9,8 @@ public class WeatherCallbacks { public WeatherCallbacks() { - } - + /// /// Handle client/weather /// diff --git a/Core/Callbacks/WishlistCallbacks.cs b/Core/Callbacks/WishlistCallbacks.cs index 33e2e484..0a314ede 100644 --- a/Core/Callbacks/WishlistCallbacks.cs +++ b/Core/Callbacks/WishlistCallbacks.cs @@ -8,7 +8,6 @@ public class WishlistCallbacks { public WishlistCallbacks() { - } /// diff --git a/Core/Context/ApplicationContext.cs b/Core/Context/ApplicationContext.cs index 05b10522..23bfb345 100644 --- a/Core/Context/ApplicationContext.cs +++ b/Core/Context/ApplicationContext.cs @@ -8,7 +8,7 @@ public class ApplicationContext private const short MaxSavedValues = 10; private readonly Dictionary> variables = new(); private readonly object variablesLock = new(); - + public ContextVariable? GetLatestValue(ContextVariableType type) { lock (variablesLock) diff --git a/Core/Context/ContextVariable.cs b/Core/Context/ContextVariable.cs index 3e79b5f0..4f5e199b 100644 --- a/Core/Context/ContextVariable.cs +++ b/Core/Context/ContextVariable.cs @@ -2,7 +2,7 @@ public class ContextVariable(object value, ContextVariableType contextVariableType) { - public object Value { get; } = value; + public object Value { get; } = value; public DateTime Timestamp { get; } = DateTime.Now; public ContextVariableType Type { get; } = contextVariableType; } \ No newline at end of file diff --git a/Core/Context/ContextVariableType.cs b/Core/Context/ContextVariableType.cs index eb3b54ce..c6334931 100644 --- a/Core/Context/ContextVariableType.cs +++ b/Core/Context/ContextVariableType.cs @@ -4,13 +4,17 @@ public enum ContextVariableType { /** Logged in users session id */ SESSION_ID = 0, + /** Currently acive raid information */ RAID_CONFIGURATION = 1, + /** SessionID + Timestamp when client first connected, has _ between values */ CLIENT_START_TIMESTAMP = 2, + /** When player is loading into map and loot is requested */ REGISTER_PLAYER_REQUEST = 3, RAID_ADJUSTMENTS = 4, + /** Data returned from client request object from endLocalRaid() */ TRANSIT_INFO = 5, APP_BUILDER = 6 diff --git a/Core/Controllers/AchievementController.cs b/Core/Controllers/AchievementController.cs index c878fe5e..433e2c31 100644 --- a/Core/Controllers/AchievementController.cs +++ b/Core/Controllers/AchievementController.cs @@ -6,7 +6,6 @@ public class AchievementController { public AchievementController() { - } public GetAchievementsResponse GetAchievements(string sessionID) diff --git a/Core/Controllers/BotController.cs b/Core/Controllers/BotController.cs index 1092eae2..ab46030c 100644 --- a/Core/Controllers/BotController.cs +++ b/Core/Controllers/BotController.cs @@ -13,9 +13,10 @@ public class BotController { private BotConfig _botConfig; private PmcConfig _pmcConfig; - + public BotController() - {} + { + } public int GetBotPresetGenerationLimit(string type) { @@ -26,7 +27,7 @@ public class BotController { throw new NotImplementedException(); } - + public object GetBotDifficulty(string type, string difficulty) // TODO: return type was: IBotCore | IDifficultyCategories { throw new NotImplementedException(); @@ -36,7 +37,7 @@ public class BotController { throw new NotImplementedException(); } - + public async Task> Generate(GenerateBotsRequestData info, bool playerscav) { throw new NotImplementedException(); @@ -67,7 +68,7 @@ public class BotController { throw new NotImplementedException(); } - + public int GetBotLimit(string type) { throw new NotImplementedException(); @@ -88,7 +89,7 @@ public class BotController { throw new NotImplementedException(); } - + public int GetBotCap() { throw new NotImplementedException(); diff --git a/Core/Controllers/BuildController.cs b/Core/Controllers/BuildController.cs index 35922571..ec6eb832 100644 --- a/Core/Controllers/BuildController.cs +++ b/Core/Controllers/BuildController.cs @@ -6,63 +6,63 @@ namespace Core.Controllers; public class BuildController { - /// - /// Handle client/handbook/builds/my/list - /// - /// - /// - public UserBuilds GetUserBuilds(string sessionID) - { - throw new NotImplementedException(); - } + /// + /// Handle client/handbook/builds/my/list + /// + /// + /// + public UserBuilds GetUserBuilds(string sessionID) + { + throw new NotImplementedException(); + } - /// - /// Handle client/builds/weapon/save - /// - /// - /// - public void SaveWeaponBuild(string sessionId, PresetBuildActionRequestData body) - { - throw new NotImplementedException(); - } + /// + /// Handle client/builds/weapon/save + /// + /// + /// + public void SaveWeaponBuild(string sessionId, PresetBuildActionRequestData body) + { + throw new NotImplementedException(); + } - /// - /// Handle client/builds/equipment/save event - /// - /// - /// - public void SaveEquipmentBuild(string sessionId, PresetBuildActionRequestData request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/builds/equipment/save event + /// + /// + /// + public void SaveEquipmentBuild(string sessionId, PresetBuildActionRequestData request) + { + throw new NotImplementedException(); + } - /// - /// Handle client/builds/delete - /// - /// - /// - public void RemoveBuild(string sessionId, RemoveBuildRequestData request) - { - RemovePlayerBuild(request.Id, sessionId); - } + /// + /// Handle client/builds/delete + /// + /// + /// + public void RemoveBuild(string sessionId, RemoveBuildRequestData request) + { + RemovePlayerBuild(request.Id, sessionId); + } - /// - /// Handle client/builds/magazine/save - /// - /// - /// - public void CreateMagazineTemplate(string sessionId, SetMagazineRequest request) - { - throw new NotImplementedException(); - } - - /// - /// - /// - /// - /// - private void RemovePlayerBuild(string idToRemove, string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/builds/magazine/save + /// + /// + /// + public void CreateMagazineTemplate(string sessionId, SetMagazineRequest request) + { + throw new NotImplementedException(); + } + + /// + /// + /// + /// + /// + private void RemovePlayerBuild(string idToRemove, string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/ClientLogController.cs b/Core/Controllers/ClientLogController.cs index 3dcab6af..5be6b01c 100644 --- a/Core/Controllers/ClientLogController.cs +++ b/Core/Controllers/ClientLogController.cs @@ -4,12 +4,12 @@ namespace Core.Controllers; public class ClientLogController { - /// - /// Handle /singleplayer/log - /// - /// - public void ClientLog(ClientLogRequest logRequest) - { - throw new NotImplementedException(); - } + /// + /// Handle /singleplayer/log + /// + /// + public void ClientLog(ClientLogRequest logRequest) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/CustomizationController.cs b/Core/Controllers/CustomizationController.cs index 47ec396d..43765bb3 100644 --- a/Core/Controllers/CustomizationController.cs +++ b/Core/Controllers/CustomizationController.cs @@ -9,135 +9,135 @@ namespace Core.Controllers; public class CustomizationController { - /// - /// Get purchasable clothing items from trader that match players side (usec/bear) - /// - /// trader to look up clothing for - /// Session id - /// Suit array - public Suit GetTraderSuits(string traderId, string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get purchasable clothing items from trader that match players side (usec/bear) + /// + /// trader to look up clothing for + /// Session id + /// Suit array + public Suit GetTraderSuits(string traderId, string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle CustomizationBuy event - /// Purchase/unlock a clothing item from a trader - /// - /// Player profile - /// Request object - /// Session id - /// ItemEventRouterResponse - public ItemEventRouterResponse BuyClothing( - PmcData pmcData, - BuyClothingRequestData buyClothingRequest, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle CustomizationBuy event + /// Purchase/unlock a clothing item from a trader + /// + /// Player profile + /// Request object + /// Session id + /// ItemEventRouterResponse + public ItemEventRouterResponse BuyClothing( + PmcData pmcData, + BuyClothingRequestData buyClothingRequest, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Update output object and player profile with purchase details - /// - /// Session id - /// Player profile - /// Clothing purchased - /// Client response - private void PayForClothingItems( - string sessionId, - PmcData pmcData, - List itemsToPayForClothingWith, - ItemEventRouterResponse output) - { - throw new NotImplementedException(); - } + /// + /// Update output object and player profile with purchase details + /// + /// Session id + /// Player profile + /// Clothing purchased + /// Client response + private void PayForClothingItems( + string sessionId, + PmcData pmcData, + List itemsToPayForClothingWith, + ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } - /// - /// Update output object and player profile with purchase details for single piece of clothing - /// - /// Session id - /// Player profile - /// Payment details - /// Client response - private void PayForClothingItem( - string sessionId, - PmcData pmcData, - PaymentItemForClothing paymentItemDetails, - ItemEventRouterResponse output) - { - throw new NotImplementedException(); - } + /// + /// Update output object and player profile with purchase details for single piece of clothing + /// + /// Session id + /// Player profile + /// Payment details + /// Client response + private void PayForClothingItem( + string sessionId, + PmcData pmcData, + PaymentItemForClothing paymentItemDetails, + ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - private List GetAllTraderSuits(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + private List GetAllTraderSuits(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/hideout/customization/offer/list - /// - /// - /// - /// - public HideoutCustomisation GetHideoutCustomisation( - string sessionId, - EmptyRequestData info) - { - throw new NotImplementedException(); - } + /// + /// Handle client/hideout/customization/offer/list + /// + /// + /// + /// + public HideoutCustomisation GetHideoutCustomisation( + string sessionId, + EmptyRequestData info) + { + throw new NotImplementedException(); + } - /// - /// Handle client/customization/storage - /// - /// - /// - /// - public List GetCustomisationStorage( - string sessionId, - EmptyRequestData info) - { - throw new NotImplementedException(); - } + /// + /// Handle client/customization/storage + /// + /// + /// + /// + public List GetCustomisationStorage( + string sessionId, + EmptyRequestData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - private string GetGameEdition(SptProfile profile) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + private string GetGameEdition(SptProfile profile) + { + throw new NotImplementedException(); + } - /// - /// Handle CustomizationSet event - /// - /// - /// - /// - /// - public ItemEventRouterResponse SetClothing( - string sessionId, - CustomizationSetRequest request, - PmcData pmcData) - { - throw new NotImplementedException(); - } + /// + /// Handle CustomizationSet event + /// + /// + /// + /// + /// + public ItemEventRouterResponse SetClothing( + string sessionId, + CustomizationSetRequest request, + PmcData pmcData) + { + throw new NotImplementedException(); + } - /// - /// Applies a purchased suit to the players doll - /// - /// Suit to apply to profile - /// Profile to update - private void ApplyClothingItemToProfile( - CustomizationSetOption customization, - PmcData pmcData) - { - throw new NotImplementedException(); - } + /// + /// Applies a purchased suit to the players doll + /// + /// Suit to apply to profile + /// Profile to update + private void ApplyClothingItemToProfile( + CustomizationSetOption customization, + PmcData pmcData) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/DialogueController.cs b/Core/Controllers/DialogueController.cs index c2cdd595..989b05ea 100644 --- a/Core/Controllers/DialogueController.cs +++ b/Core/Controllers/DialogueController.cs @@ -6,248 +6,248 @@ namespace Core.Controllers; public class DialogueController { - /// - /// - /// - /// - /* - public void RegisterChatBot(DialogueChatBot chatBot) // TODO: this is in with the helper types - { - throw new NotImplementedException(); - } - */ + /// + /// + /// + /// + /* + public void RegisterChatBot(DialogueChatBot chatBot) // TODO: this is in with the helper types + { + throw new NotImplementedException(); + } + */ - /// - /// Handle onUpdate spt event - /// - public void Update() - { - throw new NotImplementedException(); - } + /// + /// Handle onUpdate spt event + /// + public void Update() + { + throw new NotImplementedException(); + } - /// - /// Handle client/friend/list - /// - /// session id - /// GetFriendListDataResponse - public GetFriendListDataResponse GetFriendList(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/friend/list + /// + /// session id + /// GetFriendListDataResponse + public GetFriendListDataResponse GetFriendList(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/list - /// Create array holding trader dialogs and mail interactions with player - /// Set the content of the dialogue on the list tab. - /// - /// Session Id - /// list of dialogs - public List GenerateDialogueList(string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Get the content of a dialogue - /// - /// Dialog id - /// Session Id - /// DialogueInfo - public DialogueInfo GetDialogueInfo( - string dialogueId, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/list + /// Create array holding trader dialogs and mail interactions with player + /// Set the content of the dialogue on the list tab. + /// + /// Session Id + /// list of dialogs + public List GenerateDialogueList(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Get the users involved in a dialog (player + other party) - /// - /// The dialog to check for users - /// What type of message is being sent - /// Player id - /// UserDialogInfo list - public List GetDialogueUsers( - Dialogue dialogue, - MessageType messageType, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get the content of a dialogue + /// + /// Dialog id + /// Session Id + /// DialogueInfo + public DialogueInfo GetDialogueInfo( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/view - /// Handle player clicking 'messenger' and seeing all the messages they've received - /// Set the content of the dialogue on the details panel, showing all the messages - /// for the specified dialogue. - /// - /// Get dialog request - /// Session id - /// GetMailDialogViewResponseData object - public GetMailDialogViewResponseData GenerateDialogueView( - GetMailDialogViewResponseData request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get the users involved in a dialog (player + other party) + /// + /// The dialog to check for users + /// What type of message is being sent + /// Player id + /// UserDialogInfo list + public List GetDialogueUsers( + Dialogue dialogue, + MessageType messageType, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Get dialog from player profile, create if doesn't exist - /// - /// Player profile - /// get dialog request - /// Dialogue - private Dialogue GetDialogByIdFromProfile( - SptProfile profile, - GetMailDialogViewRequestData request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/view + /// Handle player clicking 'messenger' and seeing all the messages they've received + /// Set the content of the dialogue on the details panel, showing all the messages + /// for the specified dialogue. + /// + /// Get dialog request + /// Session id + /// GetMailDialogViewResponseData object + public GetMailDialogViewResponseData GenerateDialogueView( + GetMailDialogViewResponseData request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Get the users involved in a mail between two entities - /// - /// Player profile - /// The participants of the mail - /// UserDialogInfo list - private List GetProfilesForMail( - SptProfile fullProfile, - List? userDialogs) - { - throw new NotImplementedException(); - } + /// + /// Get dialog from player profile, create if doesn't exist + /// + /// Player profile + /// get dialog request + /// Dialogue + private Dialogue GetDialogByIdFromProfile( + SptProfile profile, + GetMailDialogViewRequestData request) + { + throw new NotImplementedException(); + } - /// - /// Get a count of messages with attachments from a particular dialog - /// - /// Session id - /// Dialog id - /// Count of messages with attachments - private int GetUnreadMessagesWithAttachmentsCount( - string sessionId, - string dialogueId) - { - throw new NotImplementedException(); - } - - /// - /// Does list have messages with uncollected rewards (includes expired rewards) - /// - /// Messages to check - /// true if uncollected rewards found - private bool MessagesHaveUncollectedRewards(List messages) - { - throw new NotImplementedException(); - } + /// + /// Get the users involved in a mail between two entities + /// + /// Player profile + /// The participants of the mail + /// UserDialogInfo list + private List GetProfilesForMail( + SptProfile fullProfile, + List? userDialogs) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/remove - /// Remove an entire dialog with an entity (trader/user) - /// - /// id of the dialog to remove - /// Player id - public void RemoveDialogue( - string dialogueId, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get a count of messages with attachments from a particular dialog + /// + /// Session id + /// Dialog id + /// Count of messages with attachments + private int GetUnreadMessagesWithAttachmentsCount( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/pin && Handle client/mail/dialog/unpin - /// - /// - /// - /// - public void SetDialoguePin( - string dialogueId, - bool shouldPin, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Does list have messages with uncollected rewards (includes expired rewards) + /// + /// Messages to check + /// true if uncollected rewards found + private bool MessagesHaveUncollectedRewards(List messages) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/read - /// Set a dialog to be read (no number alert/attachment alert) - /// - /// Dialog ids to set as read - /// Player profile id - public void SetRead( - HashSet dialogueIds, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/remove + /// Remove an entire dialog with an entity (trader/user) + /// + /// id of the dialog to remove + /// Player id + public void RemoveDialogue( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/mail/dialog/getAllAttachments - /// Get all uncollected items attached to mail in a particular dialog - /// - /// Dialog to get mail attachments from - /// Session id - /// GetAllAttachmentsResponse or null if dialogue doesnt exist - public GetAllAttachmentsResponse? GetAllAttachments( - string dialogueId, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/pin && Handle client/mail/dialog/unpin + /// + /// + /// + /// + public void SetDialoguePin( + string dialogueId, + bool shouldPin, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// handle client/mail/msg/send - /// - /// - /// - /// - public string SendMessage( - string sessionId, - SendMessageRequest request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/read + /// Set a dialog to be read (no number alert/attachment alert) + /// + /// Dialog ids to set as read + /// Player profile id + public void SetRead( + HashSet dialogueIds, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Get messages from a specific dialog that have items not expired - /// - /// Session id - /// Dialog to get mail attachments from - /// message list - private List GetActiveMessagesFromDialogue( - string sessionId, - string dialogueId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/mail/dialog/getAllAttachments + /// Get all uncollected items attached to mail in a particular dialog + /// + /// Dialog to get mail attachments from + /// Session id + /// GetAllAttachmentsResponse or null if dialogue doesnt exist + public GetAllAttachmentsResponse? GetAllAttachments( + string dialogueId, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Return list of messages with uncollected items (includes expired) - /// - /// Messages to parse - /// messages with items to collect - private List GetMessageWithAttachments(List messages) - { - throw new NotImplementedException(); - } + /// + /// handle client/mail/msg/send + /// + /// + /// + /// + public string SendMessage( + string sessionId, + SendMessageRequest request) + { + throw new NotImplementedException(); + } - /// - /// Delete expired items from all messages in player profile. triggers when updating traders. - /// - /// Session id - private void RemoveExpiredItemsFromMessages(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get messages from a specific dialog that have items not expired + /// + /// Session id + /// Dialog to get mail attachments from + /// message list + private List GetActiveMessagesFromDialogue( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } - /// - /// Removes expired items from a message in player profile - /// - /// Session id - /// Dialog id - private void RemoveExpiredItemsFromMessage( - string sessionId, - string dialogueId) - { - throw new NotImplementedException(); - } + /// + /// Return list of messages with uncollected items (includes expired) + /// + /// Messages to parse + /// messages with items to collect + private List GetMessageWithAttachments(List messages) + { + throw new NotImplementedException(); + } + + /// + /// Delete expired items from all messages in player profile. triggers when updating traders. + /// + /// Session id + private void RemoveExpiredItemsFromMessages(string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Removes expired items from a message in player profile + /// + /// Session id + /// Dialog id + private void RemoveExpiredItemsFromMessage( + string sessionId, + string dialogueId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/GameController.cs b/Core/Controllers/GameController.cs index 930c91a7..622df961 100644 --- a/Core/Controllers/GameController.cs +++ b/Core/Controllers/GameController.cs @@ -6,180 +6,180 @@ namespace Core.Controllers; public class GameController { - /// - /// Handle client/game/start - /// - /// - /// - /// - /// - public void GameStart( - string url, - EmptyRequestData info, - string sessionId, - long startTimeStampMs) - { - throw new NotImplementedException(); - } + /// + /// Handle client/game/start + /// + /// + /// + /// + /// + public void GameStart( + string url, + EmptyRequestData info, + string sessionId, + long startTimeStampMs) + { + throw new NotImplementedException(); + } - /// - /// Handles migrating profiles from older SPT versions - /// - /// - /// Formerly migrate39xProfile in node server - private void MigrateProfile(SptProfile fullProfile) - { - throw new NotImplementedException(); - } + /// + /// Handles migrating profiles from older SPT versions + /// + /// + /// Formerly migrate39xProfile in node server + private void MigrateProfile(SptProfile fullProfile) + { + throw new NotImplementedException(); + } - /// - /// Handle client/game/config - /// - /// - /// - public GameConfigResponse GetGameConfig(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/game/config + /// + /// + /// + public GameConfigResponse GetGameConfig(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/game/mode - /// - /// - /// - /// - public object GetGameMode( // TODO: Returns `any` in node server - string sessionId, - GameModeRequestData requestData) - { - throw new NotImplementedException(); - } + /// + /// Handle client/game/mode + /// + /// + /// + /// + public object GetGameMode( // TODO: Returns `any` in node server + string sessionId, + GameModeRequestData requestData) + { + throw new NotImplementedException(); + } - /// - /// Handle client/server/list - /// - /// - /// - public List GetServer(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/server/list + /// + /// + /// + public List GetServer(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/match/group/current - /// - /// - /// - /* - public CurrentGroupResponse GetCurrentGroup(string sessionId) - { - throw new NotImplementedException(); - } - */ + /// + /// Handle client/match/group/current + /// + /// + /// + /* + public CurrentGroupResponse GetCurrentGroup(string sessionId) + { + throw new NotImplementedException(); + } + */ - /// - /// Handle client/checkVersion - /// - /// - /// - public CheckVersionResponse GetValidGameVersion(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/checkVersion + /// + /// + /// + public CheckVersionResponse GetValidGameVersion(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/game/keepalive - /// - /// - /// - public GameKeepAliveResponse GetKeepAlive(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/game/keepalive + /// + /// + /// + public GameKeepAliveResponse GetKeepAlive(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle singleplayer/settings/getRaidTime - /// - /// - /// - /// - public GetRaidTimeResponse GetRaidTime( - string sessionId, - GetRaidTimeRequest request) - { - throw new NotImplementedException(); - } + /// + /// Handle singleplayer/settings/getRaidTime + /// + /// + /// + /// + public GetRaidTimeResponse GetRaidTime( + string sessionId, + GetRaidTimeRequest request) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public SurveyResponseData GetSurvey(string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Players set botReload to a high value and don't expect the crazy fast reload speeds, give them a warn about it - /// - /// Player profile - private void WarnOnActiveBotReloadSkill(PmcData pmcProfile) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public SurveyResponseData GetSurvey(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// When player logs in, iterate over all active effects and reduce timer - /// - /// Profile to adjust values for - private void UpdateProfileHealthValues(PmcData pmcProfile) - { - throw new NotImplementedException(); - } + /// + /// Players set botReload to a high value and don't expect the crazy fast reload speeds, give them a warn about it + /// + /// Player profile + private void WarnOnActiveBotReloadSkill(PmcData pmcProfile) + { + throw new NotImplementedException(); + } - /// - /// Send starting gifts to profile after x days - /// - /// Profile to add gifts to - private void SendPraporGiftsToNewProfiles(PmcData pmcProfile) - { - throw new NotImplementedException(); - } + /// + /// When player logs in, iterate over all active effects and reduce timer + /// + /// Profile to adjust values for + private void UpdateProfileHealthValues(PmcData pmcProfile) + { + throw new NotImplementedException(); + } - /// - /// Get a list of installed mods and save their details to the profile being used - /// - /// Profile to add mod details to - private void SaveActiveModsToProfile(SptProfile fullProfile) - { - throw new NotImplementedException(); - } + /// + /// Send starting gifts to profile after x days + /// + /// Profile to add gifts to + private void SendPraporGiftsToNewProfiles(PmcData pmcProfile) + { + throw new NotImplementedException(); + } - /// - /// Add the logged in players name to PMC name pool - /// - /// Profile of player to get name from - private void AddPlayerToPmcNames(PmcData pmcProfile) - { - throw new NotImplementedException(); - } + /// + /// Get a list of installed mods and save their details to the profile being used + /// + /// Profile to add mod details to + private void SaveActiveModsToProfile(SptProfile fullProfile) + { + throw new NotImplementedException(); + } - /// - /// Check for a dialog with the key 'undefined', and remove it - /// - /// Profile to check for dialog in - private void CheckForAndRemoveUndefinedDialogues(SptProfile fullProfile) - { - throw new NotImplementedException(); - } + /// + /// Add the logged in players name to PMC name pool + /// + /// Profile of player to get name from + private void AddPlayerToPmcNames(PmcData pmcProfile) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - private void LogProfileDetails(SptProfile fullProfile) - { - throw new NotImplementedException(); - } + /// + /// Check for a dialog with the key 'undefined', and remove it + /// + /// Profile to check for dialog in + private void CheckForAndRemoveUndefinedDialogues(SptProfile fullProfile) + { + throw new NotImplementedException(); + } + + /// + /// + /// + /// + private void LogProfileDetails(SptProfile fullProfile) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/HandBookController.cs b/Core/Controllers/HandBookController.cs index e12cea12..ace2f35f 100644 --- a/Core/Controllers/HandBookController.cs +++ b/Core/Controllers/HandBookController.cs @@ -3,8 +3,8 @@ namespace Core.Controllers; // TODO: This seems unused, is it even needed? public class HandBookController { - public void Load() - { - throw new NotImplementedException(); - } + public void Load() + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/HealthController.cs b/Core/Controllers/HealthController.cs index dc366064..45248b60 100644 --- a/Core/Controllers/HealthController.cs +++ b/Core/Controllers/HealthController.cs @@ -6,64 +6,64 @@ namespace Core.Controllers; public class HealthController { - /// - /// When healing in menu - /// - /// Player profile - /// Healing request - /// Player id - /// ItemEventRouterResponse - public ItemEventRouterResponse OffRaidHeal( - PmcData pmcData, - OffraidHealRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Handle Eat event - /// Consume food/water outside of a raid - /// - /// Player profile - /// Eat request - /// Session id - /// ItemEventRouterResponse - public ItemEventRouterResponse OffRaidEat( - PmcData pmcData, - OffraidEatRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Handle RestoreHealth event - /// Occurs on post-raid healing page - /// - /// player profile - /// Request data from client - /// Session id - /// - public ItemEventRouterResponse HealthTreatment( - PmcData pmcData, - HealthTreatmentRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// When healing in menu + /// + /// Player profile + /// Healing request + /// Player id + /// ItemEventRouterResponse + public ItemEventRouterResponse OffRaidHeal( + PmcData pmcData, + OffraidHealRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// applies skills from hideout workout. - /// - /// Player profile - /// Request data - /// session id - public void ApplyWorkoutChanges( - PmcData pmcData, - WorkoutData info, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle Eat event + /// Consume food/water outside of a raid + /// + /// Player profile + /// Eat request + /// Session id + /// ItemEventRouterResponse + public ItemEventRouterResponse OffRaidEat( + PmcData pmcData, + OffraidEatRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle RestoreHealth event + /// Occurs on post-raid healing page + /// + /// player profile + /// Request data from client + /// Session id + /// + public ItemEventRouterResponse HealthTreatment( + PmcData pmcData, + HealthTreatmentRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// applies skills from hideout workout. + /// + /// Player profile + /// Request data + /// session id + public void ApplyWorkoutChanges( + PmcData pmcData, + WorkoutData info, + string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/HideoutController.cs b/Core/Controllers/HideoutController.cs index e672d1fd..9e503f5e 100644 --- a/Core/Controllers/HideoutController.cs +++ b/Core/Controllers/HideoutController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class HideoutController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/InRaidController.cs b/Core/Controllers/InRaidController.cs index 4d6c6331..0431fec7 100644 --- a/Core/Controllers/InRaidController.cs +++ b/Core/Controllers/InRaidController.cs @@ -4,63 +4,63 @@ namespace Core.Controllers; public class InRaidController { - /// - /// Save locationId to active profiles in-raid object AND app context - /// - /// Session id - /// Register player request - public void AddPlayer( - string sessionId, - RegisterPlayerRequestData info) - { - throw new NotImplementedException(); - } + /// + /// Save locationId to active profiles in-raid object AND app context + /// + /// Session id + /// Register player request + public void AddPlayer( + string sessionId, + RegisterPlayerRequestData info) + { + throw new NotImplementedException(); + } - /// - /// Handle raid/profile/scavsave - /// Save profile state to disk - /// Handles pmc/pscav - /// - /// - /// - public void SavePostRaidProfileForScav( - ScavSaveRequestData offRaidProfileData, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle raid/profile/scavsave + /// Save profile state to disk + /// Handles pmc/pscav + /// + /// + /// + public void SavePostRaidProfileForScav( + ScavSaveRequestData offRaidProfileData, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Get the inraid config from configs/inraid.json - /// - public void GetInRaidConfig() - { - throw new NotImplementedException(); - } + /// + /// Get the inraid config from configs/inraid.json + /// + public void GetInRaidConfig() + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - /// - public float GetTraitorScavHostileChance( - string url, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + /// + public float GetTraitorScavHostileChance( + string url, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - /// - public List GetBossConvertSettings( - string url, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + /// + public List GetBossConvertSettings( + string url, + string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/InsuranceController.cs b/Core/Controllers/InsuranceController.cs index 58bdb714..fbc8d095 100644 --- a/Core/Controllers/InsuranceController.cs +++ b/Core/Controllers/InsuranceController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class InsuranceController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/InventoryController.cs b/Core/Controllers/InventoryController.cs index 3cad5447..8d8ff777 100644 --- a/Core/Controllers/InventoryController.cs +++ b/Core/Controllers/InventoryController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class InventoryController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/LauncherController.cs b/Core/Controllers/LauncherController.cs index 5187b864..50f2aab5 100644 --- a/Core/Controllers/LauncherController.cs +++ b/Core/Controllers/LauncherController.cs @@ -6,142 +6,142 @@ namespace Core.Controllers; public class LauncherController { - /// - /// - /// - /// - public ConnectResponse Connect() - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + public ConnectResponse Connect() + { + throw new NotImplementedException(); + } - /// - /// Get descriptive text for each of the profile edtions a player can choose, keyed by profile.json profile type - /// e.g. "Edge Of Darkness" - /// - /// Dictionary of profile types with related descriptive text - private Dictionary GetProfileDescriptions() - { - throw new NotImplementedException(); - } + /// + /// Get descriptive text for each of the profile edtions a player can choose, keyed by profile.json profile type + /// e.g. "Edge Of Darkness" + /// + /// Dictionary of profile types with related descriptive text + private Dictionary GetProfileDescriptions() + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public Info Find(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public Info Find(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public string Login(LoginRequestData info) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public string Login(LoginRequestData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public string Register(RegisterData info) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public string Register(RegisterData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - private string CreateAccount(RegisterData info) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + private string CreateAccount(RegisterData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - private string GenerateProfileId() - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + private string GenerateProfileId() + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - /// - private string FormatId( - long timeStamp, - int counter) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + /// + private string FormatId( + long timeStamp, + int counter) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public string ChangeUsername(ChangeRequestData info) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public string ChangeUsername(ChangeRequestData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public string ChangePassword(ChangeRequestData info) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public string ChangePassword(ChangeRequestData info) + { + throw new NotImplementedException(); + } - /// - /// Handle launcher requesting profile be wiped - /// - /// RegisterData - /// Session id - public string Wipe(RegisterData info) - { - throw new NotImplementedException(); - } + /// + /// Handle launcher requesting profile be wiped + /// + /// RegisterData + /// Session id + public string Wipe(RegisterData info) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - public string GetCompatibleTarkovVersion() - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + public string GetCompatibleTarkovVersion() + { + throw new NotImplementedException(); + } - /// - /// Get the mods the server has currently loaded - /// - /// Dictionary of mod name and mod details - public Dictionary GetLoadedServerMods() // TODO: We no longer use a package.json - { - throw new NotImplementedException(); - } + /// + /// Get the mods the server has currently loaded + /// + /// Dictionary of mod name and mod details + public Dictionary GetLoadedServerMods() // TODO: We no longer use a package.json + { + throw new NotImplementedException(); + } - /// - /// Get the mods a profile has ever loaded into game with - /// - /// Player id - /// List of mod details - public List GetServerModsProfileUsed(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Get the mods a profile has ever loaded into game with + /// + /// Player id + /// List of mod details + public List GetServerModsProfileUsed(string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/LocationController.cs b/Core/Controllers/LocationController.cs index 5b40a43c..7b449981 100644 --- a/Core/Controllers/LocationController.cs +++ b/Core/Controllers/LocationController.cs @@ -5,24 +5,24 @@ namespace Core.Controllers; public class LocationController { - /// - /// Handle client/locations - /// Get all maps base location properties without loot data - /// - /// Players Id - /// LocationsGenerateAllResponse - public LocationsGenerateAllResponse GenerateAll(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/locations + /// Get all maps base location properties without loot data + /// + /// Players Id + /// LocationsGenerateAllResponse + public LocationsGenerateAllResponse GenerateAll(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/airdrop/loot - /// - /// - /// - public GetAirdropLootResponse GetAirDropLoot(GetAirdropLootRequest request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/airdrop/loot + /// + /// + /// + public GetAirdropLootResponse GetAirDropLoot(GetAirdropLootRequest request) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/MatchController.cs b/Core/Controllers/MatchController.cs index 7b613e1a..14b27307 100644 --- a/Core/Controllers/MatchController.cs +++ b/Core/Controllers/MatchController.cs @@ -4,93 +4,93 @@ namespace Core.Controllers; public class MatchController { - /// - /// - /// - /// - public bool GetEnabled() - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + public bool GetEnabled() + { + throw new NotImplementedException(); + } - /// - /// Handle client/match/group/delete - /// - /// - public void DeleteGroup(object info) // TODO: info is `any` in the node server - { - throw new NotImplementedException(); - } + /// + /// Handle client/match/group/delete + /// + /// + public void DeleteGroup(object info) // TODO: info is `any` in the node server + { + throw new NotImplementedException(); + } - /// - /// Handle match/group/start_game - /// - /// - /// - /// - public ProfileStatusResponse JoinMatch( - MatchGroupStartGameRequest info, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle match/group/start_game + /// + /// + /// + /// + public ProfileStatusResponse JoinMatch( + MatchGroupStartGameRequest info, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/match/group/status - /// - /// - /// - public MatchGroupStatusResponse GetGroupStatus( - MatchGroupStatusRequest info) - { - throw new NotImplementedException(); - } + /// + /// Handle client/match/group/status + /// + /// + /// + public MatchGroupStatusResponse GetGroupStatus( + MatchGroupStatusRequest info) + { + throw new NotImplementedException(); + } - /// - /// Handle /client/raid/configuration - /// - /// - /// - public void ConfigureOfflineRaid( - GetRaidConfigurationRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle /client/raid/configuration + /// + /// + /// + public void ConfigureOfflineRaid( + GetRaidConfigurationRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Convert a difficulty value from pre-raid screen to a bot difficulty - /// - /// dropdown difficulty value - /// bot difficulty - private string ConvertDifficultyDropdownIntoBotDifficulty( - string botDifficulty) - { - throw new NotImplementedException(); - } + /// + /// Convert a difficulty value from pre-raid screen to a bot difficulty + /// + /// dropdown difficulty value + /// bot difficulty + private string ConvertDifficultyDropdownIntoBotDifficulty( + string botDifficulty) + { + throw new NotImplementedException(); + } - /// - /// Handle client/match/local/start - /// - /// - /// - /// - public StartLocalRaidResponseData StartLocalRaid( - string sessionId, - StartLocalRaidRequestData request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/match/local/start + /// + /// + /// + /// + public StartLocalRaidResponseData StartLocalRaid( + string sessionId, + StartLocalRaidRequestData request) + { + throw new NotImplementedException(); + } - /// - /// Handle client/match/local/end - /// - /// - /// - public void EndLocalRaid( - string sessionId, - EndLocalRaidRequestData request) - { - throw new NotImplementedException(); - } + /// + /// Handle client/match/local/end + /// + /// + /// + public void EndLocalRaid( + string sessionId, + EndLocalRaidRequestData request) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/NoteController.cs b/Core/Controllers/NoteController.cs index 4e2a4b1a..caeff130 100644 --- a/Core/Controllers/NoteController.cs +++ b/Core/Controllers/NoteController.cs @@ -6,48 +6,48 @@ namespace Core.Controllers; public class NoteController { - /// - /// - /// - /// - /// - /// - /// - public ItemEventRouterResponse AddNote( - PmcData pmcData, - NoteActionData body, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// - /// - /// - /// - /// - /// - public ItemEventRouterResponse EditNote( - PmcData pmcData, - NoteActionData body, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// - /// - /// - /// - /// - /// - public ItemEventRouterResponse DeleteNote( - PmcData pmcData, - NoteActionData body, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + /// + /// + public ItemEventRouterResponse AddNote( + PmcData pmcData, + NoteActionData body, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// + /// + /// + /// + /// + /// + public ItemEventRouterResponse EditNote( + PmcData pmcData, + NoteActionData body, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// + /// + /// + /// + /// + /// + public ItemEventRouterResponse DeleteNote( + PmcData pmcData, + NoteActionData body, + string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/NotifierController.cs b/Core/Controllers/NotifierController.cs index 8b2f1d95..41b8b35e 100644 --- a/Core/Controllers/NotifierController.cs +++ b/Core/Controllers/NotifierController.cs @@ -4,36 +4,36 @@ namespace Core.Controllers; public class NotifierController { - /// - /// Resolve an array of session notifications. - /// - /// If no notifications are currently queued then intermittently check for new notifications until either - /// one or more appear or when a timeout expires. - /// If no notifications are available after the timeout, use a default message. - /// - /// - public async Task NotifyAsync(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Resolve an array of session notifications. + /// + /// If no notifications are currently queued then intermittently check for new notifications until either + /// one or more appear or when a timeout expires. + /// If no notifications are available after the timeout, use a default message. + /// + /// + public async Task NotifyAsync(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// - /// - /// - /// - public string GetServer(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// + /// + /// + /// + public string GetServer(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/notifier/channel/create - /// - /// - /// - public NotifierChannel GetChannel(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/notifier/channel/create + /// + /// + /// + public NotifierChannel GetChannel(string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/PresetController.cs b/Core/Controllers/PresetController.cs index f33380da..3ae71f55 100644 --- a/Core/Controllers/PresetController.cs +++ b/Core/Controllers/PresetController.cs @@ -2,11 +2,11 @@ namespace Core.Controllers; public class PresetController { - /// - /// - /// - public void Initialize() - { - throw new NotImplementedException(); - } + /// + /// + /// + public void Initialize() + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/PrestigeController.cs b/Core/Controllers/PrestigeController.cs index 2a4102a9..e1519a88 100644 --- a/Core/Controllers/PrestigeController.cs +++ b/Core/Controllers/PrestigeController.cs @@ -5,29 +5,29 @@ namespace Core.Controllers; public class PrestigeController { - /// - /// Handle /client/prestige/list - /// - /// - /// - /// - public Prestige GetPrestige( - string sessionId, - EmptyRequestData info) - { - throw new NotImplementedException(); - } + /// + /// Handle /client/prestige/list + /// + /// + /// + /// + public Prestige GetPrestige( + string sessionId, + EmptyRequestData info) + { + throw new NotImplementedException(); + } - /// - /// Handle /client/prestige/obtain - /// - /// - /// - /// - public object ObtainPrestige( // TODO: returns `any` in the node server, not implemented either - string sessionId, - EmptyRequestData info) - { - throw new NotImplementedException("Method not Implemented"); - } + /// + /// Handle /client/prestige/obtain + /// + /// + /// + /// + public object ObtainPrestige( // TODO: returns `any` in the node server, not implemented either + string sessionId, + EmptyRequestData info) + { + throw new NotImplementedException("Method not Implemented"); + } } \ No newline at end of file diff --git a/Core/Controllers/ProfileController.cs b/Core/Controllers/ProfileController.cs index f468531a..8642da04 100644 --- a/Core/Controllers/ProfileController.cs +++ b/Core/Controllers/ProfileController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class ProfileController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/QuestController.cs b/Core/Controllers/QuestController.cs index 50b51de4..4a67e92e 100644 --- a/Core/Controllers/QuestController.cs +++ b/Core/Controllers/QuestController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class QuestController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/RagfairController.cs b/Core/Controllers/RagfairController.cs index 7dc405fd..829e44d6 100644 --- a/Core/Controllers/RagfairController.cs +++ b/Core/Controllers/RagfairController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class RagfairController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/RepairController.cs b/Core/Controllers/RepairController.cs index 2d20c78c..3a5c4f5c 100644 --- a/Core/Controllers/RepairController.cs +++ b/Core/Controllers/RepairController.cs @@ -6,36 +6,36 @@ namespace Core.Controllers; public class RepairController { - /// - /// Handle TraderRepair event - /// Repair with trader - /// - /// session id - /// endpoint request data - /// player profile - /// item event router action - public ItemEventRouterResponse TraderRepair( - string sessionId, - TraderRepairActionDataRequest body, - PmcData pmcData) - { - throw new NotImplementedException(); - } - - /// - /// Handle Repair event - /// Repair with repair kit - /// - /// session id - /// endpoint request data - /// player profile - /// - /// - public ItemEventRouterResponse RepairWithKit( - string sessionId, - RepairActionDataRequest body, - PmcData pmcData) - { - throw new NotImplementedException(); - } + /// + /// Handle TraderRepair event + /// Repair with trader + /// + /// session id + /// endpoint request data + /// player profile + /// item event router action + public ItemEventRouterResponse TraderRepair( + string sessionId, + TraderRepairActionDataRequest body, + PmcData pmcData) + { + throw new NotImplementedException(); + } + + /// + /// Handle Repair event + /// Repair with repair kit + /// + /// session id + /// endpoint request data + /// player profile + /// + /// + public ItemEventRouterResponse RepairWithKit( + string sessionId, + RepairActionDataRequest body, + PmcData pmcData) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/RepeatableQuestController.cs b/Core/Controllers/RepeatableQuestController.cs index 0c3c57ab..b2c19e66 100644 --- a/Core/Controllers/RepeatableQuestController.cs +++ b/Core/Controllers/RepeatableQuestController.cs @@ -2,5 +2,5 @@ namespace Core.Controllers; public class RepeatableQuestController { - // TODO + // TODO } \ No newline at end of file diff --git a/Core/Controllers/TradeController.cs b/Core/Controllers/TradeController.cs index ff25706e..e8b157b3 100644 --- a/Core/Controllers/TradeController.cs +++ b/Core/Controllers/TradeController.cs @@ -9,141 +9,141 @@ namespace Core.Controllers; public class TradeController { - /// - /// Handle TradingConfirm event - /// - /// - /// - /// - /// - public ItemEventRouterResponse ConfirmTrading( - PmcData pmcData, - ProcessBaseTradeRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Handle RagFairBuyOffer event - /// - /// - /// - /// - /// - public ItemEventRouterResponse ConfirmRagfairTrading( - PmcData pmcData, - ProcessRagfairTradeRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle TradingConfirm event + /// + /// + /// + /// + /// + public ItemEventRouterResponse ConfirmTrading( + PmcData pmcData, + ProcessBaseTradeRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Buy an item off the flea sold by a trader - /// - /// Session id - /// Player profile - /// Offer being purchased - /// request data from client - /// Output to send back to client - private void BuyTraderItemFromRagfair( - string sessionId, - PmcData pmcData, - RagfairOffer fleaOffer, - OfferRequest offerRequest, - ItemEventRouterResponse output) - { - throw new NotImplementedException(); - } - - /// - /// Buy an item off the flea sold by a PMC - /// - /// Session id - /// Player profile - /// Offer being purchased - /// request data from client - /// Output to send back to client - private void BuyPmcItemFromRagfair( - string sessionId, - PmcData pmcData, - RagfairOffer fleaOffer, - OfferRequest offerRequest, - ItemEventRouterResponse output) - { - throw new NotImplementedException(); - } + /// + /// Handle RagFairBuyOffer event + /// + /// + /// + /// + /// + public ItemEventRouterResponse ConfirmRagfairTrading( + PmcData pmcData, + ProcessRagfairTradeRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Is the provided offerid and ownerid from a player made offer - /// - /// id of the offer - /// Owner id - /// true if offer was made by a player - private bool IsPlayerOffer( - string offerId, - string offerOwnerId) - { - throw new NotImplementedException(); - } + /// + /// Buy an item off the flea sold by a trader + /// + /// Session id + /// Player profile + /// Offer being purchased + /// request data from client + /// Output to send back to client + private void BuyTraderItemFromRagfair( + string sessionId, + PmcData pmcData, + RagfairOffer fleaOffer, + OfferRequest offerRequest, + ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } - /// - /// Does Player have necessary trader loyalty to purchase flea offer - /// - /// Flea offer being bought - /// Player profile - /// True if player can buy offer - private bool PlayerLacksTraderLoyaltyLevelToBuyOffer( - RagfairOffer fleaOffer, - PmcData pmcData) - { - throw new NotImplementedException(); - } + /// + /// Buy an item off the flea sold by a PMC + /// + /// Session id + /// Player profile + /// Offer being purchased + /// request data from client + /// Output to send back to client + private void BuyPmcItemFromRagfair( + string sessionId, + PmcData pmcData, + RagfairOffer fleaOffer, + OfferRequest offerRequest, + ItemEventRouterResponse output) + { + throw new NotImplementedException(); + } - /// - /// Handle SellAllFromSavage event - /// - /// - /// - /// - /// - public ItemEventRouterResponse SellScavItemsToFence( - PmcData pmcData, - SellScavItemsToFenceRequestData request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Is the provided offerid and ownerid from a player made offer + /// + /// id of the offer + /// Owner id + /// true if offer was made by a player + private bool IsPlayerOffer( + string offerId, + string offerOwnerId) + { + throw new NotImplementedException(); + } - /// - /// Send the specified rouble total to player as mail - /// - /// Session id - /// amount of roubles to send - /// Trader to sell items to - private void MailMoneyToPlayer( - string sessionId, - int roublesToSend, - string trader) - { - throw new NotImplementedException(); - } + /// + /// Does Player have necessary trader loyalty to purchase flea offer + /// + /// Flea offer being bought + /// Player profile + /// True if player can buy offer + private bool PlayerLacksTraderLoyaltyLevelToBuyOffer( + RagfairOffer fleaOffer, + PmcData pmcData) + { + throw new NotImplementedException(); + } - /// - /// Looks up an items children and gets total handbook price for them - /// - /// parent item that has children we want to sum price of - /// All items (parent + children) - /// Prices of items from handbook - /// Trader being sold to, to perform buy category check against - /// Rouble price - private int GetPriceOfItemAndChildren( - string parentItemId, - List items, - Dictionary handbookPrices, - TraderBase traderDetails) - { - throw new NotImplementedException(); - } + /// + /// Handle SellAllFromSavage event + /// + /// + /// + /// + /// + public ItemEventRouterResponse SellScavItemsToFence( + PmcData pmcData, + SellScavItemsToFenceRequestData request, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Send the specified rouble total to player as mail + /// + /// Session id + /// amount of roubles to send + /// Trader to sell items to + private void MailMoneyToPlayer( + string sessionId, + int roublesToSend, + string trader) + { + throw new NotImplementedException(); + } + + /// + /// Looks up an items children and gets total handbook price for them + /// + /// parent item that has children we want to sum price of + /// All items (parent + children) + /// Prices of items from handbook + /// Trader being sold to, to perform buy category check against + /// Rouble price + private int GetPriceOfItemAndChildren( + string parentItemId, + List items, + Dictionary handbookPrices, + TraderBase traderDetails) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/TraderController.cs b/Core/Controllers/TraderController.cs index 4ddd52ad..201f2595 100644 --- a/Core/Controllers/TraderController.cs +++ b/Core/Controllers/TraderController.cs @@ -5,82 +5,82 @@ namespace Core.Controllers; public class TraderController { - /// - /// Runs when onLoad event is fired - /// Iterate over traders, ensure a pristine copy of their assorts is stored in traderAssortService - /// Store timestamp of next assort refresh in nextResupply property of traders .base object - /// - public void Load() - { - throw new NotImplementedException(); - } + /// + /// Runs when onLoad event is fired + /// Iterate over traders, ensure a pristine copy of their assorts is stored in traderAssortService + /// Store timestamp of next assort refresh in nextResupply property of traders .base object + /// + public void Load() + { + throw new NotImplementedException(); + } - /// - /// Runs when onUpdate is fired - /// If current time is > nextResupply(expire) time of trader, refresh traders assorts and - /// Fence is handled slightly differently - /// - /// - public bool Update() - { - throw new NotImplementedException(); - } + /// + /// Runs when onUpdate is fired + /// If current time is > nextResupply(expire) time of trader, refresh traders assorts and + /// Fence is handled slightly differently + /// + /// + public bool Update() + { + throw new NotImplementedException(); + } - /// - /// Handle client/trading/api/traderSettings - /// - /// session id - /// Return a list of all traders - public List GetAllTraders(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/trading/api/traderSettings + /// + /// session id + /// Return a list of all traders + public List GetAllTraders(string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Order traders by their traderId (Ttid) - /// - /// First trader to compare - /// Second trader to compare - /// 1,-1 or 0 - private int SortByTraderId( - TraderBase traderA, - TraderBase traderB) - { - throw new NotImplementedException(); - } + /// + /// Order traders by their traderId (Ttid) + /// + /// First trader to compare + /// Second trader to compare + /// 1,-1 or 0 + private int SortByTraderId( + TraderBase traderA, + TraderBase traderB) + { + throw new NotImplementedException(); + } - /// - /// Handle client/trading/api/getTrader - /// - /// - /// - /// - public TraderBase GetTrader( - string sessionId, - string traderId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/trading/api/getTrader + /// + /// + /// + /// + public TraderBase GetTrader( + string sessionId, + string traderId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/trading/api/getTraderAssort - /// - /// - /// - /// - public TraderAssort GetAssort( - string sessionId, - string traderId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/trading/api/getTraderAssort + /// + /// + /// + /// + public TraderAssort GetAssort( + string sessionId, + string traderId) + { + throw new NotImplementedException(); + } - /// - /// Handle client/items/prices/TRADERID - /// - /// - public GetItemPricesResponse GetItemPrices() - { - throw new NotImplementedException(); - } + /// + /// Handle client/items/prices/TRADERID + /// + /// + public GetItemPricesResponse GetItemPrices() + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/WeatherController.cs b/Core/Controllers/WeatherController.cs index 4ea99924..98088c77 100644 --- a/Core/Controllers/WeatherController.cs +++ b/Core/Controllers/WeatherController.cs @@ -5,22 +5,22 @@ namespace Core.Controllers; public class WeatherController { - /// - /// Handle client/weather - /// - /// - public WeatherData Generate() - { - throw new NotImplementedException(); - } + /// + /// Handle client/weather + /// + /// + public WeatherData Generate() + { + throw new NotImplementedException(); + } - /// - /// Handle client/localGame/weather - /// - /// - /// - public GetLocalWeatherResponseData GenerateLocal(string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle client/localGame/weather + /// + /// + /// + public GetLocalWeatherResponseData GenerateLocal(string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Controllers/WishlistController.cs b/Core/Controllers/WishlistController.cs index d9545b66..936ee1df 100644 --- a/Core/Controllers/WishlistController.cs +++ b/Core/Controllers/WishlistController.cs @@ -6,48 +6,48 @@ namespace Core.Controllers; public class WishlistController { - /// - /// Handle AddToWishList - /// - /// - /// - /// - /// - public ItemEventRouterResponse AddToWishList( - PmcData pmcData, - AddToWishlistRequest request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle AddToWishList + /// + /// + /// + /// + /// + public ItemEventRouterResponse AddToWishList( + PmcData pmcData, + AddToWishlistRequest request, + string sessionId) + { + throw new NotImplementedException(); + } - /// - /// Handle RemoveFromWishList event - /// - /// - /// - /// - /// - public ItemEventRouterResponse RemoveFromWishList( - PmcData pmcData, - RemoveFromWishlistRequest request, - string sessionId) - { - throw new NotImplementedException(); - } - - /// - /// Handle changeWishlistItemCategory event - /// - /// - /// - /// - /// - public ItemEventRouterResponse ChangeWishListItemCategory( - PmcData pmcData, - ChangeWishlistItemCategoryRequest request, - string sessionId) - { - throw new NotImplementedException(); - } + /// + /// Handle RemoveFromWishList event + /// + /// + /// + /// + /// + public ItemEventRouterResponse RemoveFromWishList( + PmcData pmcData, + RemoveFromWishlistRequest request, + string sessionId) + { + throw new NotImplementedException(); + } + + /// + /// Handle changeWishlistItemCategory event + /// + /// + /// + /// + /// + public ItemEventRouterResponse ChangeWishListItemCategory( + PmcData pmcData, + ChangeWishlistItemCategoryRequest request, + string sessionId) + { + throw new NotImplementedException(); + } } \ No newline at end of file diff --git a/Core/Generators/BotInventoryGenerator.cs b/Core/Generators/BotInventoryGenerator.cs index 9baa42f8..f3ad9300 100644 --- a/Core/Generators/BotInventoryGenerator.cs +++ b/Core/Generators/BotInventoryGenerator.cs @@ -12,7 +12,6 @@ public class BotInventoryGenerator public BotInventoryGenerator() { - } /// @@ -109,7 +108,8 @@ public class BotInventoryGenerator /// Is the bot being generated as a pmc /// Limits for items the bot can have /// level of bot having weapon generated - public void GenerateAndAddWeaponsToBot(BotBaseInventory templateInventory, Chances equipmentChances, string sessionId, BotBaseInventory botInventory, string botRole, + public void GenerateAndAddWeaponsToBot(BotBaseInventory templateInventory, Chances equipmentChances, string sessionId, BotBaseInventory botInventory, + string botRole, bool isPmc, Generation itemGenerationLimitsMinMax, int botLevel) { throw new NotImplementedException(); @@ -124,7 +124,7 @@ public class BotInventoryGenerator { throw new NotImplementedException(); } - + /// /// Add weapon + spare mags/ammo to bots inventory /// @@ -137,7 +137,8 @@ public class BotInventoryGenerator /// Is the bot being generated as a pmc /// /// - public void AddWeaponAndMagazineToInventory(string sessionId, object weaponSlot, BotBaseInventory templateInventory, BotBaseInventory botInventory, Chances equipmentChances, string botRole, + public void AddWeaponAndMagazineToInventory(string sessionId, object weaponSlot, BotBaseInventory templateInventory, BotBaseInventory botInventory, + Chances equipmentChances, string botRole, bool isPmc, Generation itemGenerationWeights, int botLevel) { throw new NotImplementedException(); diff --git a/Core/Generators/BotLevelGenerator.cs b/Core/Generators/BotLevelGenerator.cs index 1741311d..e6bdad71 100644 --- a/Core/Generators/BotLevelGenerator.cs +++ b/Core/Generators/BotLevelGenerator.cs @@ -9,7 +9,6 @@ public class BotLevelGenerator { public BotLevelGenerator() { - } /// diff --git a/Core/Generators/BotLootGenerator.cs b/Core/Generators/BotLootGenerator.cs index 0c7015d7..c520ea23 100644 --- a/Core/Generators/BotLootGenerator.cs +++ b/Core/Generators/BotLootGenerator.cs @@ -12,7 +12,6 @@ public class BotLootGenerator public BotLootGenerator() { - } /// @@ -86,7 +85,8 @@ public class BotLootGenerator /// Total value of loot allowed in roubles /// Is bot being generated for a pmc /// - public void AddLootFromPool(Dictionary pool, List equipmentSlots, int totalItemCount, BotBaseInventory inventoryToAddItemsTo, // TODO: type for containersIdFull was Set + public void AddLootFromPool(Dictionary pool, List equipmentSlots, int totalItemCount, + BotBaseInventory inventoryToAddItemsTo, // TODO: type for containersIdFull was Set string botRole, ItemSpawnLimitSettings? itemSpawnLimits, List containersIdFull, int totalValueLimitRub = 0, bool isPmc = false) { throw new NotImplementedException(); @@ -127,7 +127,8 @@ public class BotLootGenerator /// are we generating for a pmc /// /// - public void AddLooseWeaponsToInventorySlot(string sessionId, BotBaseInventory botInventory, string equipmentSlot, BotBaseInventory templateInventory, // TODO: type for containersIdFull was Set + public void AddLooseWeaponsToInventorySlot(string sessionId, BotBaseInventory botInventory, string equipmentSlot, + BotBaseInventory templateInventory, // TODO: type for containersIdFull was Set Dictionary modsChances, string botRole, bool isPmc, int botLevel, List? containersIdFull) { throw new NotImplementedException(); diff --git a/Core/Generators/BotWeaponGenerator.cs b/Core/Generators/BotWeaponGenerator.cs index e47b6f72..f3cabb86 100644 --- a/Core/Generators/BotWeaponGenerator.cs +++ b/Core/Generators/BotWeaponGenerator.cs @@ -229,14 +229,14 @@ public class BotWeaponGenerator { throw new NotImplementedException(); } - + /// /// Fill each Camora with a bullet /// /// Weapon mods to find and update camora mod(s) from /// Magazine id to find and add to /// Ammo template id to hydrate with - protected void FillCamorasWithAmmo(List weaponMods, string magazineId, string ammoTpl) + protected void FillCamorasWithAmmo(List weaponMods, string magazineId, string ammoTpl) { throw new NotImplementedException(); } diff --git a/Core/Generators/FenceBaseAssortGenerator.cs b/Core/Generators/FenceBaseAssortGenerator.cs index 25634096..8258f115 100644 --- a/Core/Generators/FenceBaseAssortGenerator.cs +++ b/Core/Generators/FenceBaseAssortGenerator.cs @@ -9,9 +9,8 @@ public class FenceBaseAssortGenerator public FenceBaseAssortGenerator() { - } - + /// /// Create base fence assorts dynamically and store in memory /// @@ -19,7 +18,7 @@ public class FenceBaseAssortGenerator { throw new NotImplementedException(); } - + /// /// Check ammo in boxes and loose ammos has a penetration value above the configured value in trader.json / ammoMaxPenLimit /// @@ -29,7 +28,7 @@ public class FenceBaseAssortGenerator { throw new NotImplementedException(); } - + /// /// Gets the penetration power value of an ammo, works with ammo boxes and raw ammos. /// @@ -39,7 +38,7 @@ public class FenceBaseAssortGenerator { throw new NotImplementedException(); } - + /// /// Add soft inserts and armor plates to an armor. /// @@ -49,7 +48,7 @@ public class FenceBaseAssortGenerator { throw new NotImplementedException(); } - + /// /// Check if item is valid for being added to fence assorts /// diff --git a/Core/Generators/LocationLootGenerator.cs b/Core/Generators/LocationLootGenerator.cs index 02aa1d1c..ff2b33bb 100644 --- a/Core/Generators/LocationLootGenerator.cs +++ b/Core/Generators/LocationLootGenerator.cs @@ -153,9 +153,10 @@ public class LocationLootGenerator { throw new NotImplementedException(); } - + // TODO: rewrite, BIG yikes - protected ContainerItem CreateStaticLootItem(string chosenTemplate, Dictionary> staticAmmoDistribution, string? parentIdentifier = null) + protected ContainerItem CreateStaticLootItem(string chosenTemplate, Dictionary> staticAmmoDistribution, + string? parentIdentifier = null) { throw new NotImplementedException(); } diff --git a/Core/Generators/PMCLootGenerator.cs b/Core/Generators/PMCLootGenerator.cs index cda424e9..f93a1e82 100644 --- a/Core/Generators/PMCLootGenerator.cs +++ b/Core/Generators/PMCLootGenerator.cs @@ -6,9 +6,8 @@ public class PMCLootGenerator { public PMCLootGenerator() { - } - + /// /// Create a List of loot items a PMC can have in their pockets /// diff --git a/Core/Generators/PlayerScavGenerator.cs b/Core/Generators/PlayerScavGenerator.cs index 86dc3cef..2129b794 100644 --- a/Core/Generators/PlayerScavGenerator.cs +++ b/Core/Generators/PlayerScavGenerator.cs @@ -10,15 +10,14 @@ public class PlayerScavGenerator public PlayerScavGenerator() { - } - + /// /// Update a player profile to include a new player scav profile /// /// session id to specify what profile is updated /// profile object - public PmcData Generate(string sessionID) + public PmcData Generate(string sessionID) { throw new NotImplementedException(); } @@ -40,7 +39,7 @@ public class PlayerScavGenerator /// /// pmc profile /// karma level - protected double GetScavKarmaLevel(PmcData pmcData) + protected double GetScavKarmaLevel(PmcData pmcData) { throw new NotImplementedException(); } @@ -51,7 +50,7 @@ public class PlayerScavGenerator /// /// bot type to use for inventory/chances /// IBotType object - protected BotType ConstructBotBaseTemplate(string botTypeForLoot) + protected BotType ConstructBotBaseTemplate(string botTypeForLoot) { throw new NotImplementedException(); } @@ -61,32 +60,32 @@ public class PlayerScavGenerator /// /// Values to modify the bot template with /// bot template to modify according to karama level settings - protected void AdjustBotTemplateWithKarmaSpecificSettings(KarmaLevel karmaSettings, BotType baseBotNode) - { - throw new NotImplementedException(); - } - - protected Skills GetScavSkills(PmcData scavProfile) + protected void AdjustBotTemplateWithKarmaSpecificSettings(KarmaLevel karmaSettings, BotType baseBotNode) { throw new NotImplementedException(); } - protected Skills GetDefaultScavSkills() + protected Skills GetScavSkills(PmcData scavProfile) { throw new NotImplementedException(); } - protected Stats GetScavStats(PmcData scavProfile) + protected Skills GetDefaultScavSkills() { throw new NotImplementedException(); } - protected int GetScavLevel(PmcData scavProfile) + protected Stats GetScavStats(PmcData scavProfile) { throw new NotImplementedException(); } - protected int GetScavExperience(PmcData scavProfile) + protected int GetScavLevel(PmcData scavProfile) + { + throw new NotImplementedException(); + } + + protected int GetScavExperience(PmcData scavProfile) { throw new NotImplementedException(); } @@ -98,7 +97,7 @@ public class PlayerScavGenerator /// scav profile /// pmc profile /// - protected PmcData SetScavCooldownTimer(PmcData scavData, PmcData pmcData) + protected PmcData SetScavCooldownTimer(PmcData scavData, PmcData pmcData) { throw new NotImplementedException(); } diff --git a/Core/Generators/RagfairAssortGenerator.cs b/Core/Generators/RagfairAssortGenerator.cs index ca147c64..87aab60c 100644 --- a/Core/Generators/RagfairAssortGenerator.cs +++ b/Core/Generators/RagfairAssortGenerator.cs @@ -7,15 +7,14 @@ public class RagfairAssortGenerator { public RagfairAssortGenerator() { - } - + /// /// Get an array of arrays that can be sold on the flea /// Each sub array contains item + children (if any) /// /// List of Lists - public List> GetAssortItems() + public List> GetAssortItems() { throw new NotImplementedException(); } @@ -24,7 +23,7 @@ public class RagfairAssortGenerator /// Check internal generatedAssortItems array has objects /// /// true if array has objects - protected bool AssortsAreGenerated() + protected bool AssortsAreGenerated() { throw new NotImplementedException(); } @@ -33,7 +32,7 @@ public class RagfairAssortGenerator /// Generate an array of arrays (item + children) the flea can sell /// /// List of Lists (item + children) - protected List> GenerateRagfairAssortItems() + protected List> GenerateRagfairAssortItems() { throw new NotImplementedException(); } @@ -43,7 +42,7 @@ public class RagfairAssortGenerator /// ragfairConfig.dynamic.showDefaultPresetsOnly decides if its all presets or just defaults /// /// Dictionary - protected List GetPresetsToAdd() + protected List GetPresetsToAdd() { throw new NotImplementedException(); } diff --git a/Core/Generators/WeaponGen/Implementations/BarrelInvetoryMagGen.cs b/Core/Generators/WeaponGen/Implementations/BarrelInvetoryMagGen.cs index d5ea7d62..b1a80d19 100644 --- a/Core/Generators/WeaponGen/Implementations/BarrelInvetoryMagGen.cs +++ b/Core/Generators/WeaponGen/Implementations/BarrelInvetoryMagGen.cs @@ -4,7 +4,6 @@ public class BarrelInvetoryMagGen : InventoryMagGen { public BarrelInvetoryMagGen() { - } public int GetPriority() diff --git a/Core/Generators/WeaponGen/Implementations/ExternalInventoryMagGen.cs b/Core/Generators/WeaponGen/Implementations/ExternalInventoryMagGen.cs index af3b6e6d..d9a454c0 100644 --- a/Core/Generators/WeaponGen/Implementations/ExternalInventoryMagGen.cs +++ b/Core/Generators/WeaponGen/Implementations/ExternalInventoryMagGen.cs @@ -6,7 +6,6 @@ public class ExternalInventoryMagGen : InventoryMagGen { public ExternalInventoryMagGen() { - } public int GetPriority() diff --git a/Core/Generators/WeaponGen/Implementations/InternalMagazineInventoryMagGen.cs b/Core/Generators/WeaponGen/Implementations/InternalMagazineInventoryMagGen.cs index d1709cff..46e2f744 100644 --- a/Core/Generators/WeaponGen/Implementations/InternalMagazineInventoryMagGen.cs +++ b/Core/Generators/WeaponGen/Implementations/InternalMagazineInventoryMagGen.cs @@ -4,7 +4,6 @@ public class InternalMagazineInventoryMagGen : InventoryMagGen { public InternalMagazineInventoryMagGen() { - } public int GetPriority() diff --git a/Core/Generators/WeaponGen/Implementations/UbglExternalMagGen.cs b/Core/Generators/WeaponGen/Implementations/UbglExternalMagGen.cs index 5efefae5..a8bffd89 100644 --- a/Core/Generators/WeaponGen/Implementations/UbglExternalMagGen.cs +++ b/Core/Generators/WeaponGen/Implementations/UbglExternalMagGen.cs @@ -4,7 +4,6 @@ public class UbglExternalMagGen : InventoryMagGen { public UbglExternalMagGen() { - } public int GetPriority() diff --git a/Core/Generators/WeaponGen/InventoryMagGen.cs b/Core/Generators/WeaponGen/InventoryMagGen.cs index 3629f88f..b3620b62 100644 --- a/Core/Generators/WeaponGen/InventoryMagGen.cs +++ b/Core/Generators/WeaponGen/InventoryMagGen.cs @@ -9,10 +9,9 @@ public class InventoryMagGen private TemplateItem _weaponTemplate; private TemplateItem _ammoTemplate; private BotBaseInventory _pmcInventory; - + public InventoryMagGen() { - } public GenerationData GetMagCount() diff --git a/Core/Models/Eft/Bot/RandomisedBotLevelResult.cs b/Core/Models/Eft/Bot/RandomisedBotLevelResult.cs index 11b292da..a64f7b35 100644 --- a/Core/Models/Eft/Bot/RandomisedBotLevelResult.cs +++ b/Core/Models/Eft/Bot/RandomisedBotLevelResult.cs @@ -6,7 +6,7 @@ public class RandomisedBotLevelResult { [JsonPropertyName("level")] public int? Level { get; set; } - + [JsonPropertyName("exp")] public int? Exp { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Builds/SetMagazineRequest.cs b/Core/Models/Eft/Builds/SetMagazineRequest.cs index 911541a4..491d62b7 100644 --- a/Core/Models/Eft/Builds/SetMagazineRequest.cs +++ b/Core/Models/Eft/Builds/SetMagazineRequest.cs @@ -3,7 +3,7 @@ using Core.Models.Eft.Profile; namespace Core.Models.Eft.Builds; -public class SetMagazineRequest +public class SetMagazineRequest { [JsonPropertyName("Id")] public string? Id { get; set; } diff --git a/Core/Models/Eft/Common/EmptyRequestData.cs b/Core/Models/Eft/Common/EmptyRequestData.cs index 1aa37932..69c6616a 100644 --- a/Core/Models/Eft/Common/EmptyRequestData.cs +++ b/Core/Models/Eft/Common/EmptyRequestData.cs @@ -2,5 +2,4 @@ public class EmptyRequestData { - } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Globals.cs b/Core/Models/Eft/Common/Globals.cs index 974329fd..b4cb155a 100644 --- a/Core/Models/Eft/Common/Globals.cs +++ b/Core/Models/Eft/Common/Globals.cs @@ -7,4348 +7,4344 @@ using System.Text.Json.Serialization; public class Globals { - [JsonPropertyName("time")] - public double? Time { get; set; } + [JsonPropertyName("time")] + public double? Time { get; set; } - [JsonPropertyName("config")] - public Config? Configuration { get; set; } + [JsonPropertyName("config")] + public Config? Configuration { get; set; } - [JsonPropertyName("LocationInfection")] - public LocationInfection? LocationInfection { get; set; } + [JsonPropertyName("LocationInfection")] + public LocationInfection? LocationInfection { get; set; } - [JsonPropertyName("bot_presets")] - public List? BotPresets { get; set; } + [JsonPropertyName("bot_presets")] + public List? BotPresets { get; set; } - [JsonPropertyName("BotWeaponScatterings")] - public List? BotWeaponScatterings { get; set; } + [JsonPropertyName("BotWeaponScatterings")] + public List? BotWeaponScatterings { get; set; } - [JsonPropertyName("ItemPresets")] - public Dictionary? ItemPresets { get; set; } + [JsonPropertyName("ItemPresets")] + public Dictionary? ItemPresets { get; set; } } public class PlayerSettings { - [JsonPropertyName("BaseMaxMovementRolloff")] - public double? BaseMaxMovementRolloff { get; set; } + [JsonPropertyName("BaseMaxMovementRolloff")] + public double? BaseMaxMovementRolloff { get; set; } - [JsonPropertyName("EnabledOcclusionDynamicRolloff")] - public bool? IsEnabledOcclusionDynamicRolloff { get; set; } + [JsonPropertyName("EnabledOcclusionDynamicRolloff")] + public bool? IsEnabledOcclusionDynamicRolloff { get; set; } - [JsonPropertyName("IndoorRolloffMult")] - public double? IndoorRolloffMultiplier { get; set; } + [JsonPropertyName("IndoorRolloffMult")] + public double? IndoorRolloffMultiplier { get; set; } - [JsonPropertyName("MinStepSoundRolloffMult")] - public double? MinStepSoundRolloffMultiplier { get; set; } + [JsonPropertyName("MinStepSoundRolloffMult")] + public double? MinStepSoundRolloffMultiplier { get; set; } - [JsonPropertyName("MinStepSoundVolumeMult")] - public double? MinStepSoundVolumeMultiplier { get; set; } + [JsonPropertyName("MinStepSoundVolumeMult")] + public double? MinStepSoundVolumeMultiplier { get; set; } - [JsonPropertyName("MovementRolloffMultipliers")] - public List? MovementRolloffMultipliers { get; set; } + [JsonPropertyName("MovementRolloffMultipliers")] + public List? MovementRolloffMultipliers { get; set; } - [JsonPropertyName("OutdoorRolloffMult")] - public double? OutdoorRolloffMultiplier { get; set; } + [JsonPropertyName("OutdoorRolloffMult")] + public double? OutdoorRolloffMultiplier { get; set; } } public class MovementRolloffMultiplier { - [JsonPropertyName("MovementState")] - public string? MovementState { get; set; } + [JsonPropertyName("MovementState")] + public string? MovementState { get; set; } - [JsonPropertyName("RolloffMultiplier")] - public double? RolloffMultiplier { get; set; } + [JsonPropertyName("RolloffMultiplier")] + public double? RolloffMultiplier { get; set; } } public class RadioBroadcastSettings { - [JsonPropertyName("EnabledBroadcast")] - public bool? EnabledBroadcast { get; set; } + [JsonPropertyName("EnabledBroadcast")] + public bool? EnabledBroadcast { get; set; } - [JsonPropertyName("RadioStations")] - public List? RadioStations { get; set; } + [JsonPropertyName("RadioStations")] + public List? RadioStations { get; set; } } public class RadioStation { - [JsonPropertyName("Enabled")] - public bool? Enabled { get; set; } + [JsonPropertyName("Enabled")] + public bool? Enabled { get; set; } - [JsonPropertyName("Station")] - public string? Station { get; set; } + [JsonPropertyName("Station")] + public string? Station { get; set; } } public class LocationInfection { - [JsonPropertyName("Interchange")] - public double? Interchange { get; set; } + [JsonPropertyName("Interchange")] + public double? Interchange { get; set; } - [JsonPropertyName("Lighthouse")] - public double? Lighthouse { get; set; } + [JsonPropertyName("Lighthouse")] + public double? Lighthouse { get; set; } - [JsonPropertyName("RezervBase")] - public double? RezervBase { get; set; } + [JsonPropertyName("RezervBase")] + public double? RezervBase { get; set; } - [JsonPropertyName("Sandbox")] - public double? Sandbox { get; set; } + [JsonPropertyName("Sandbox")] + public double? Sandbox { get; set; } - [JsonPropertyName("Shoreline")] - public double? Shoreline { get; set; } + [JsonPropertyName("Shoreline")] + public double? Shoreline { get; set; } - [JsonPropertyName("TarkovStreets")] - public double? TarkovStreets { get; set; } + [JsonPropertyName("TarkovStreets")] + public double? TarkovStreets { get; set; } - [JsonPropertyName("Woods")] - public double? Woods { get; set; } + [JsonPropertyName("Woods")] + public double? Woods { get; set; } - [JsonPropertyName("bigmap")] - public double? BigMap { get; set; } + [JsonPropertyName("bigmap")] + public double? BigMap { get; set; } - [JsonPropertyName("factory4")] - public double? Factory4 { get; set; } + [JsonPropertyName("factory4")] + public double? Factory4 { get; set; } - [JsonPropertyName("laboratory")] - public double? Laboratory { get; set; } + [JsonPropertyName("laboratory")] + public double? Laboratory { get; set; } } public class ArtilleryShelling { - [JsonPropertyName("ArtilleryMapsConfigs")] - public Dictionary? ArtilleryMapsConfigs { get; set; } + [JsonPropertyName("ArtilleryMapsConfigs")] + public Dictionary? ArtilleryMapsConfigs { get; set; } - [JsonPropertyName("ProjectileExplosionParams")] - public ProjectileExplosionParams? ProjectileExplosionParams { get; set; } + [JsonPropertyName("ProjectileExplosionParams")] + public ProjectileExplosionParams? ProjectileExplosionParams { get; set; } - [JsonPropertyName("MaxCalledShellingCount")] - public double? MaxCalledShellingCount { get; set; } + [JsonPropertyName("MaxCalledShellingCount")] + public double? MaxCalledShellingCount { get; set; } } public class ArtilleryMapSettings { - [JsonPropertyName("PlanedShellingOn")] - public bool? PlanedShellingOn { get; set; } + [JsonPropertyName("PlanedShellingOn")] + public bool? PlanedShellingOn { get; set; } - [JsonPropertyName("InitShellingTimer")] - public double? InitShellingTimer { get; set; } + [JsonPropertyName("InitShellingTimer")] + public double? InitShellingTimer { get; set; } - [JsonPropertyName("BeforeShellingSignalTime")] - public double? BeforeShellingSignalTime { get; set; } + [JsonPropertyName("BeforeShellingSignalTime")] + public double? BeforeShellingSignalTime { get; set; } - [JsonPropertyName("ShellingCount")] - public double? ShellingCount { get; set; } + [JsonPropertyName("ShellingCount")] + public double? ShellingCount { get; set; } - [JsonPropertyName("ZonesInShelling")] - public double? ZonesInShelling { get; set; } + [JsonPropertyName("ZonesInShelling")] + public double? ZonesInShelling { get; set; } - [JsonPropertyName("NewZonesForEachShelling")] - public bool? NewZonesForEachShelling { get; set; } + [JsonPropertyName("NewZonesForEachShelling")] + public bool? NewZonesForEachShelling { get; set; } - [JsonPropertyName("InitCalledShellingTime")] - public double? InitCalledShellingTime { get; set; } + [JsonPropertyName("InitCalledShellingTime")] + public double? InitCalledShellingTime { get; set; } - [JsonPropertyName("ShellingZones")] - public List? ShellingZones { get; set; } + [JsonPropertyName("ShellingZones")] + public List? ShellingZones { get; set; } - [JsonPropertyName("Brigades")] - public List? Brigades { get; set; } + [JsonPropertyName("Brigades")] + public List? Brigades { get; set; } - [JsonPropertyName("ArtilleryShellingAirDropSettings")] - public ArtilleryShellingAirDropSettings? ArtilleryShellingAirDropSettings { get; set; } + [JsonPropertyName("ArtilleryShellingAirDropSettings")] + public ArtilleryShellingAirDropSettings? ArtilleryShellingAirDropSettings { get; set; } - [JsonPropertyName("PauseBetweenShellings")] - public XYZ? PauseBetweenShellings { get; set; } + [JsonPropertyName("PauseBetweenShellings")] + public XYZ? PauseBetweenShellings { get; set; } } public class ShellingZone { - [JsonPropertyName("ID")] - public double? ID { get; set; } + [JsonPropertyName("ID")] + public double? ID { get; set; } - [JsonPropertyName("PointsInShellings")] - public XYZ? PointsInShellings { get; set; } + [JsonPropertyName("PointsInShellings")] + public XYZ? PointsInShellings { get; set; } - [JsonPropertyName("ShellingRounds")] - public double? ShellingRounds { get; set; } + [JsonPropertyName("ShellingRounds")] + public double? ShellingRounds { get; set; } - [JsonPropertyName("ShotCount")] - public double? ShotCount { get; set; } + [JsonPropertyName("ShotCount")] + public double? ShotCount { get; set; } - [JsonPropertyName("PauseBetweenRounds")] - public XYZ? PauseBetweenRounds { get; set; } + [JsonPropertyName("PauseBetweenRounds")] + public XYZ? PauseBetweenRounds { get; set; } - [JsonPropertyName("PauseBetweenShots")] - public XYZ? PauseBetweenShots { get; set; } + [JsonPropertyName("PauseBetweenShots")] + public XYZ? PauseBetweenShots { get; set; } - [JsonPropertyName("Center")] - public XYZ? Center { get; set; } + [JsonPropertyName("Center")] + public XYZ? Center { get; set; } - [JsonPropertyName("Rotate")] - public double? Rotate { get; set; } + [JsonPropertyName("Rotate")] + public double? Rotate { get; set; } - [JsonPropertyName("GridStep")] - public XYZ? GridStep { get; set; } + [JsonPropertyName("GridStep")] + public XYZ? GridStep { get; set; } - [JsonPropertyName("Points")] - public XYZ? Points { get; set; } + [JsonPropertyName("Points")] + public XYZ? Points { get; set; } - [JsonPropertyName("PointRadius")] - public double? PointRadius { get; set; } + [JsonPropertyName("PointRadius")] + public double? PointRadius { get; set; } - [JsonPropertyName("ExplosionDistanceRange")] - public XYZ? ExplosionDistanceRange { get; set; } + [JsonPropertyName("ExplosionDistanceRange")] + public XYZ? ExplosionDistanceRange { get; set; } - [JsonPropertyName("AlarmStages")] - public List? AlarmStages { get; set; } + [JsonPropertyName("AlarmStages")] + public List? AlarmStages { get; set; } - [JsonPropertyName("BeforeShellingSignalTime")] - public double? BeforeShellingSignalTime { get; set; } + [JsonPropertyName("BeforeShellingSignalTime")] + public double? BeforeShellingSignalTime { get; set; } - [JsonPropertyName("UsedInPlanedShelling")] - public bool? UsedInPlanedShelling { get; set; } + [JsonPropertyName("UsedInPlanedShelling")] + public bool? UsedInPlanedShelling { get; set; } - [JsonPropertyName("UseInCalledShelling")] - public bool? UseInCalledShelling { get; set; } + [JsonPropertyName("UseInCalledShelling")] + public bool? UseInCalledShelling { get; set; } - [JsonPropertyName("IsActive")] - public bool? IsActive { get; set; } + [JsonPropertyName("IsActive")] + public bool? IsActive { get; set; } } public class AlarmStage { - [JsonPropertyName("Value")] - public Position? Value { get; set; } + [JsonPropertyName("Value")] + public Position? Value { get; set; } } public class Brigade { - [JsonPropertyName("ID")] - public double? Id { get; set; } + [JsonPropertyName("ID")] + public double? Id { get; set; } - [JsonPropertyName("ArtilleryGuns")] - public List? ArtilleryGuns { get; set; } + [JsonPropertyName("ArtilleryGuns")] + public List? ArtilleryGuns { get; set; } } public class ArtilleryGun { - [JsonPropertyName("Position")] - public XYZ? Position { get; set; } + [JsonPropertyName("Position")] + public XYZ? Position { get; set; } } public class ArtilleryShellingAirDropSettings { - [JsonPropertyName("UseAirDrop")] - public bool? UseAirDrop { get; set; } + [JsonPropertyName("UseAirDrop")] + public bool? UseAirDrop { get; set; } - [JsonPropertyName("AirDropTime")] - public double? AirDropTime { get; set; } + [JsonPropertyName("AirDropTime")] + public double? AirDropTime { get; set; } - [JsonPropertyName("AirDropPosition")] - public XYZ? AirDropPosition { get; set; } + [JsonPropertyName("AirDropPosition")] + public XYZ? AirDropPosition { get; set; } - [JsonPropertyName("LootTemplateId")] - public string? LootTemplateId { get; set; } + [JsonPropertyName("LootTemplateId")] + public string? LootTemplateId { get; set; } } public class ProjectileExplosionParams { - [JsonPropertyName("Blindness")] - public XYZ? Blindness { get; set; } + [JsonPropertyName("Blindness")] + public XYZ? Blindness { get; set; } - [JsonPropertyName("Contusion")] - public XYZ? Contusion { get; set; } + [JsonPropertyName("Contusion")] + public XYZ? Contusion { get; set; } - [JsonPropertyName("ArmorDistanceDistanceDamage")] - public XYZ? ArmorDistanceDistanceDamage { get; set; } + [JsonPropertyName("ArmorDistanceDistanceDamage")] + public XYZ? ArmorDistanceDistanceDamage { get; set; } - [JsonPropertyName("MinExplosionDistance")] - public float? MinExplosionDistance { get; set; } + [JsonPropertyName("MinExplosionDistance")] + public float? MinExplosionDistance { get; set; } - [JsonPropertyName("MaxExplosionDistance")] - public float? MaxExplosionDistance { get; set; } + [JsonPropertyName("MaxExplosionDistance")] + public float? MaxExplosionDistance { get; set; } - [JsonPropertyName("FragmentsCount")] - public double? FragmentsCount { get; set; } + [JsonPropertyName("FragmentsCount")] + public double? FragmentsCount { get; set; } - [JsonPropertyName("Strength")] - public float? Strength { get; set; } + [JsonPropertyName("Strength")] + public float? Strength { get; set; } - [JsonPropertyName("ArmorDamage")] - public float? ArmorDamage { get; set; } + [JsonPropertyName("ArmorDamage")] + public float? ArmorDamage { get; set; } - [JsonPropertyName("StaminaBurnRate")] - public float? StaminaBurnRate { get; set; } + [JsonPropertyName("StaminaBurnRate")] + public float? StaminaBurnRate { get; set; } - [JsonPropertyName("PenetrationPower")] - public float? PenetrationPower { get; set; } + [JsonPropertyName("PenetrationPower")] + public float? PenetrationPower { get; set; } - [JsonPropertyName("DirectionalDamageAngle")] - public float? DirectionalDamageAngle { get; set; } + [JsonPropertyName("DirectionalDamageAngle")] + public float? DirectionalDamageAngle { get; set; } - [JsonPropertyName("DirectionalDamageMultiplier")] - public float? DirectionalDamageMultiplier { get; set; } + [JsonPropertyName("DirectionalDamageMultiplier")] + public float? DirectionalDamageMultiplier { get; set; } - [JsonPropertyName("FragmentType")] - public string? FragmentType { get; set; } + [JsonPropertyName("FragmentType")] + public string? FragmentType { get; set; } - [JsonPropertyName("DeadlyDistance")] - public float? DeadlyDistance { get; set; } + [JsonPropertyName("DeadlyDistance")] + public float? DeadlyDistance { get; set; } } public class Config { - [JsonPropertyName("ArtilleryShelling")] - public ArtilleryShelling? ArtilleryShelling { get; set; } + [JsonPropertyName("ArtilleryShelling")] + public ArtilleryShelling? ArtilleryShelling { get; set; } - [JsonPropertyName("content")] - public Content? Content { get; set; } + [JsonPropertyName("content")] + public Content? Content { get; set; } - [JsonPropertyName("AimPunchMagnitude")] - public double? AimPunchMagnitude { get; set; } + [JsonPropertyName("AimPunchMagnitude")] + public double? AimPunchMagnitude { get; set; } - [JsonPropertyName("WeaponSkillProgressRate")] - public double? WeaponSkillProgressRate { get; set; } + [JsonPropertyName("WeaponSkillProgressRate")] + public double? WeaponSkillProgressRate { get; set; } - [JsonPropertyName("SkillAtrophy")] - public bool? SkillAtrophy { get; set; } + [JsonPropertyName("SkillAtrophy")] + public bool? SkillAtrophy { get; set; } - [JsonPropertyName("exp")] - public Exp? Exp { get; set; } + [JsonPropertyName("exp")] + public Exp? Exp { get; set; } - [JsonPropertyName("t_base_looting")] - public double? TBaseLooting { get; set; } + [JsonPropertyName("t_base_looting")] + public double? TBaseLooting { get; set; } - [JsonPropertyName("t_base_lockpicking")] - public double? TBaseLockpicking { get; set; } + [JsonPropertyName("t_base_lockpicking")] + public double? TBaseLockpicking { get; set; } - [JsonPropertyName("armor")] - public Armor? Armor { get; set; } + [JsonPropertyName("armor")] + public Armor? Armor { get; set; } - [JsonPropertyName("SessionsToShowHotKeys")] - public double? SessionsToShowHotKeys { get; set; } + [JsonPropertyName("SessionsToShowHotKeys")] + public double? SessionsToShowHotKeys { get; set; } - [JsonPropertyName("MaxBotsAliveOnMap")] - public double? MaxBotsAliveOnMap { get; set; } + [JsonPropertyName("MaxBotsAliveOnMap")] + public double? MaxBotsAliveOnMap { get; set; } - [JsonPropertyName("MaxBotsAliveOnMapPvE")] - public double? MaxBotsAliveOnMapPvE { get; set; } + [JsonPropertyName("MaxBotsAliveOnMapPvE")] + public double? MaxBotsAliveOnMapPvE { get; set; } - [JsonPropertyName("RunddansSettings")] - public RunddansSettings? RunddansSettings { get; set; } + [JsonPropertyName("RunddansSettings")] + public RunddansSettings? RunddansSettings { get; set; } - [JsonPropertyName("SavagePlayCooldown")] - public double? SavagePlayCooldown { get; set; } + [JsonPropertyName("SavagePlayCooldown")] + public double? SavagePlayCooldown { get; set; } - [JsonPropertyName("SavagePlayCooldownNdaFree")] - public double? SavagePlayCooldownNdaFree { get; set; } + [JsonPropertyName("SavagePlayCooldownNdaFree")] + public double? SavagePlayCooldownNdaFree { get; set; } - [JsonPropertyName("SeasonActivity")] - public SeasonActivity? SeasonActivity { get; set; } + [JsonPropertyName("SeasonActivity")] + public SeasonActivity? SeasonActivity { get; set; } - [JsonPropertyName("MarksmanAccuracy")] - public double? MarksmanAccuracy { get; set; } + [JsonPropertyName("MarksmanAccuracy")] + public double? MarksmanAccuracy { get; set; } - [JsonPropertyName("SavagePlayCooldownDevelop")] - public double? SavagePlayCooldownDevelop { get; set; } + [JsonPropertyName("SavagePlayCooldownDevelop")] + public double? SavagePlayCooldownDevelop { get; set; } - [JsonPropertyName("TODSkyDate")] - public string? TODSkyDate { get; set; } + [JsonPropertyName("TODSkyDate")] + public string? TODSkyDate { get; set; } - [JsonPropertyName("Mastering")] - public Mastering[] Mastering { get; set; } + [JsonPropertyName("Mastering")] + public Mastering[] Mastering { get; set; } - [JsonPropertyName("GlobalItemPriceModifier")] - public double? GlobalItemPriceModifier { get; set; } + [JsonPropertyName("GlobalItemPriceModifier")] + public double? GlobalItemPriceModifier { get; set; } - [JsonPropertyName("TradingUnlimitedItems")] - public bool? TradingUnlimitedItems { get; set; } + [JsonPropertyName("TradingUnlimitedItems")] + public bool? TradingUnlimitedItems { get; set; } - [JsonPropertyName("TradingUnsetPersonalLimitItems")] - public bool? TradingUnsetPersonalLimitItems { get; set; } + [JsonPropertyName("TradingUnsetPersonalLimitItems")] + public bool? TradingUnsetPersonalLimitItems { get; set; } - [JsonPropertyName("TransitSettings")] - public TransitSettings? TransitSettings { get; set; } + [JsonPropertyName("TransitSettings")] + public TransitSettings? TransitSettings { get; set; } - [JsonPropertyName("TripwiresSettings")] - public TripwiresSettings? TripwiresSettings { get; set; } + [JsonPropertyName("TripwiresSettings")] + public TripwiresSettings? TripwiresSettings { get; set; } - [JsonPropertyName("MaxLoyaltyLevelForAll")] - public bool? MaxLoyaltyLevelForAll { get; set; } + [JsonPropertyName("MaxLoyaltyLevelForAll")] + public bool? MaxLoyaltyLevelForAll { get; set; } - [JsonPropertyName("MountingSettings")] - public MountingSettings? MountingSettings { get; set; } + [JsonPropertyName("MountingSettings")] + public MountingSettings? MountingSettings { get; set; } - [JsonPropertyName("GlobalLootChanceModifier")] - public double? GlobalLootChanceModifier { get; set; } + [JsonPropertyName("GlobalLootChanceModifier")] + public double? GlobalLootChanceModifier { get; set; } - [JsonPropertyName("GlobalLootChanceModifierPvE")] - public double? GlobalLootChanceModifierPvE { get; set; } + [JsonPropertyName("GlobalLootChanceModifierPvE")] + public double? GlobalLootChanceModifierPvE { get; set; } - [JsonPropertyName("GraphicSettings")] - public GraphicSettings? GraphicSettings { get; set; } + [JsonPropertyName("GraphicSettings")] + public GraphicSettings? GraphicSettings { get; set; } - [JsonPropertyName("TimeBeforeDeploy")] - public double? TimeBeforeDeploy { get; set; } + [JsonPropertyName("TimeBeforeDeploy")] + public double? TimeBeforeDeploy { get; set; } - [JsonPropertyName("TimeBeforeDeployLocal")] - public double? TimeBeforeDeployLocal { get; set; } + [JsonPropertyName("TimeBeforeDeployLocal")] + public double? TimeBeforeDeployLocal { get; set; } - [JsonPropertyName("TradingSetting")] - public double? TradingSetting { get; set; } + [JsonPropertyName("TradingSetting")] + public double? TradingSetting { get; set; } - [JsonPropertyName("TradingSettings")] - public TradingSettings? TradingSettings { get; set; } + [JsonPropertyName("TradingSettings")] + public TradingSettings? TradingSettings { get; set; } - [JsonPropertyName("ItemsCommonSettings")] - public ItemsCommonSettings? ItemsCommonSettings { get; set; } + [JsonPropertyName("ItemsCommonSettings")] + public ItemsCommonSettings? ItemsCommonSettings { get; set; } - [JsonPropertyName("LoadTimeSpeedProgress")] - public double? LoadTimeSpeedProgress { get; set; } + [JsonPropertyName("LoadTimeSpeedProgress")] + public double? LoadTimeSpeedProgress { get; set; } - [JsonPropertyName("BaseLoadTime")] - public double? BaseLoadTime { get; set; } + [JsonPropertyName("BaseLoadTime")] + public double? BaseLoadTime { get; set; } - [JsonPropertyName("BaseUnloadTime")] - public double? BaseUnloadTime { get; set; } + [JsonPropertyName("BaseUnloadTime")] + public double? BaseUnloadTime { get; set; } - [JsonPropertyName("BaseCheckTime")] - public double? BaseCheckTime { get; set; } + [JsonPropertyName("BaseCheckTime")] + public double? BaseCheckTime { get; set; } - [JsonPropertyName("BluntDamageReduceFromSoftArmorMod")] - public double? BluntDamageReduceFromSoftArmorMod { get; set; } + [JsonPropertyName("BluntDamageReduceFromSoftArmorMod")] + public double? BluntDamageReduceFromSoftArmorMod { get; set; } - [JsonPropertyName("BodyPartColliderSettings")] - public BodyPartColliderSettings? BodyPartColliderSettings { get; set; } + [JsonPropertyName("BodyPartColliderSettings")] + public BodyPartColliderSettings? BodyPartColliderSettings { get; set; } - [JsonPropertyName("Customization")] - public Customization? Customization { get; set; } + [JsonPropertyName("Customization")] + public Customization? Customization { get; set; } - [JsonPropertyName("UncheckOnShot")] - public bool? UncheckOnShot { get; set; } + [JsonPropertyName("UncheckOnShot")] + public bool? UncheckOnShot { get; set; } - [JsonPropertyName("BotsEnabled")] - public bool? BotsEnabled { get; set; } + [JsonPropertyName("BotsEnabled")] + public bool? BotsEnabled { get; set; } - [JsonPropertyName("BufferZone")] - public BufferZone? BufferZone { get; set; } + [JsonPropertyName("BufferZone")] + public BufferZone? BufferZone { get; set; } - [JsonPropertyName("Airdrop")] - public AirdropGlobalSettings? Airdrop { get; set; } + [JsonPropertyName("Airdrop")] + public AirdropGlobalSettings? Airdrop { get; set; } - [JsonPropertyName("ArmorMaterials")] - public ArmorMaterials? ArmorMaterials { get; set; } + [JsonPropertyName("ArmorMaterials")] + public ArmorMaterials? ArmorMaterials { get; set; } - [JsonPropertyName("ArenaEftTransferSettings")] - public ArenaEftTransferSettings - ArenaEftTransferSettings - { - get; - set; - } // TODO: this needs to be looked into, there are two types further down commented out with the same name + [JsonPropertyName("ArenaEftTransferSettings")] + public ArenaEftTransferSettings + ArenaEftTransferSettings { get; set; } // TODO: this needs to be looked into, there are two types further down commented out with the same name - [JsonPropertyName("KarmaCalculationSettings")] - public KarmaCalculationSettings? KarmaCalculationSettings { get; set; } + [JsonPropertyName("KarmaCalculationSettings")] + public KarmaCalculationSettings? KarmaCalculationSettings { get; set; } - [JsonPropertyName("LegsOverdamage")] - public double? LegsOverdamage { get; set; } + [JsonPropertyName("LegsOverdamage")] + public double? LegsOverdamage { get; set; } - [JsonPropertyName("HandsOverdamage")] - public double? HandsOverdamage { get; set; } + [JsonPropertyName("HandsOverdamage")] + public double? HandsOverdamage { get; set; } - [JsonPropertyName("StomachOverdamage")] - public double? StomachOverdamage { get; set; } + [JsonPropertyName("StomachOverdamage")] + public double? StomachOverdamage { get; set; } - [JsonPropertyName("Health")] - public Health? Health { get; set; } + [JsonPropertyName("Health")] + public Health? Health { get; set; } - [JsonPropertyName("rating")] - public Rating? Rating { get; set; } + [JsonPropertyName("rating")] + public Rating? Rating { get; set; } - [JsonPropertyName("tournament")] - public Tournament? Tournament { get; set; } + [JsonPropertyName("tournament")] + public Tournament? Tournament { get; set; } - [JsonPropertyName("QuestSettings")] - public QuestSettings? QuestSettings { get; set; } + [JsonPropertyName("QuestSettings")] + public QuestSettings? QuestSettings { get; set; } - [JsonPropertyName("RagFair")] - public RagFair? RagFair { get; set; } + [JsonPropertyName("RagFair")] + public RagFair? RagFair { get; set; } - [JsonPropertyName("handbook")] - public Handbook? Handbook { get; set; } + [JsonPropertyName("handbook")] + public Handbook? Handbook { get; set; } - [JsonPropertyName("FractureCausedByFalling")] - public Probability? FractureCausedByFalling { get; set; } + [JsonPropertyName("FractureCausedByFalling")] + public Probability? FractureCausedByFalling { get; set; } - [JsonPropertyName("FractureCausedByBulletHit")] - public Probability? FractureCausedByBulletHit { get; set; } + [JsonPropertyName("FractureCausedByBulletHit")] + public Probability? FractureCausedByBulletHit { get; set; } - [JsonPropertyName("WAVE_COEF_LOW")] - public double? WaveCoefficientLow { get; set; } + [JsonPropertyName("WAVE_COEF_LOW")] + public double? WaveCoefficientLow { get; set; } - [JsonPropertyName("WAVE_COEF_MID")] - public double? WaveCoefficientMid { get; set; } + [JsonPropertyName("WAVE_COEF_MID")] + public double? WaveCoefficientMid { get; set; } - [JsonPropertyName("WAVE_COEF_HIGH")] - public double? WaveCoefficientHigh { get; set; } + [JsonPropertyName("WAVE_COEF_HIGH")] + public double? WaveCoefficientHigh { get; set; } - [JsonPropertyName("WAVE_COEF_HORDE")] - public double? WaveCoefficientHorde { get; set; } + [JsonPropertyName("WAVE_COEF_HORDE")] + public double? WaveCoefficientHorde { get; set; } - [JsonPropertyName("Stamina")] - public Stamina? Stamina { get; set; } + [JsonPropertyName("Stamina")] + public Stamina? Stamina { get; set; } - [JsonPropertyName("StaminaRestoration")] - public StaminaRestoration? StaminaRestoration { get; set; } + [JsonPropertyName("StaminaRestoration")] + public StaminaRestoration? StaminaRestoration { get; set; } - [JsonPropertyName("StaminaDrain")] - public StaminaDrain? StaminaDrain { get; set; } + [JsonPropertyName("StaminaDrain")] + public StaminaDrain? StaminaDrain { get; set; } - [JsonPropertyName("RequirementReferences")] - public RequirementReferences? RequirementReferences { get; set; } + [JsonPropertyName("RequirementReferences")] + public RequirementReferences? RequirementReferences { get; set; } - [JsonPropertyName("RestrictionsInRaid")] - public RestrictionsInRaid[] RestrictionsInRaid { get; set; } + [JsonPropertyName("RestrictionsInRaid")] + public RestrictionsInRaid[] RestrictionsInRaid { get; set; } - [JsonPropertyName("SkillMinEffectiveness")] - public double? SkillMinEffectiveness { get; set; } + [JsonPropertyName("SkillMinEffectiveness")] + public double? SkillMinEffectiveness { get; set; } - [JsonPropertyName("SkillFatiguePerPoint")] - public double? SkillFatiguePerPoint { get; set; } + [JsonPropertyName("SkillFatiguePerPoint")] + public double? SkillFatiguePerPoint { get; set; } - [JsonPropertyName("SkillFreshEffectiveness")] - public double? SkillFreshEffectiveness { get; set; } + [JsonPropertyName("SkillFreshEffectiveness")] + public double? SkillFreshEffectiveness { get; set; } - [JsonPropertyName("SkillFreshPoints")] - public double? SkillFreshPoints { get; set; } + [JsonPropertyName("SkillFreshPoints")] + public double? SkillFreshPoints { get; set; } - [JsonPropertyName("SkillPointsBeforeFatigue")] - public double? SkillPointsBeforeFatigue { get; set; } + [JsonPropertyName("SkillPointsBeforeFatigue")] + public double? SkillPointsBeforeFatigue { get; set; } - [JsonPropertyName("SkillFatigueReset")] - public double? SkillFatigueReset { get; set; } + [JsonPropertyName("SkillFatigueReset")] + public double? SkillFatigueReset { get; set; } - [JsonPropertyName("DiscardLimitsEnabled")] - public bool? DiscardLimitsEnabled { get; set; } + [JsonPropertyName("DiscardLimitsEnabled")] + public bool? DiscardLimitsEnabled { get; set; } - [JsonPropertyName("EnvironmentSettings")] - public EnvironmentSetting2? EnvironmentSettings { get; set; } + [JsonPropertyName("EnvironmentSettings")] + public EnvironmentSetting2? EnvironmentSettings { get; set; } - [JsonPropertyName("EventSettings")] - public EventSettings? EventSettings { get; set; } + [JsonPropertyName("EventSettings")] + public EventSettings? EventSettings { get; set; } - [JsonPropertyName("FavoriteItemsSettings")] - public FavoriteItemsSettings? FavoriteItemsSettings { get; set; } + [JsonPropertyName("FavoriteItemsSettings")] + public FavoriteItemsSettings? FavoriteItemsSettings { get; set; } - [JsonPropertyName("VaultingSettings")] - public VaultingSettings? VaultingSettings { get; set; } + [JsonPropertyName("VaultingSettings")] + public VaultingSettings? VaultingSettings { get; set; } - [JsonPropertyName("BTRSettings")] - public BTRSettings? BTRSettings { get; set; } + [JsonPropertyName("BTRSettings")] + public BTRSettings? BTRSettings { get; set; } - [JsonPropertyName("EventType")] - public string[] EventType { get; set; } + [JsonPropertyName("EventType")] + public string[] EventType { get; set; } - [JsonPropertyName("WalkSpeed")] - public XYZ? WalkSpeed { get; set; } + [JsonPropertyName("WalkSpeed")] + public XYZ? WalkSpeed { get; set; } - [JsonPropertyName("SprintSpeed")] - public XYZ? SprintSpeed { get; set; } + [JsonPropertyName("SprintSpeed")] + public XYZ? SprintSpeed { get; set; } - [JsonPropertyName("SquadSettings")] - public SquadSettings? SquadSettings { get; set; } + [JsonPropertyName("SquadSettings")] + public SquadSettings? SquadSettings { get; set; } - [JsonPropertyName("SkillEnduranceWeightThreshold")] - public double? SkillEnduranceWeightThreshold { get; set; } + [JsonPropertyName("SkillEnduranceWeightThreshold")] + public double? SkillEnduranceWeightThreshold { get; set; } - [JsonPropertyName("TeamSearchingTimeout")] - public double? TeamSearchingTimeout { get; set; } + [JsonPropertyName("TeamSearchingTimeout")] + public double? TeamSearchingTimeout { get; set; } - [JsonPropertyName("Insurance")] - public Insurance? Insurance { get; set; } + [JsonPropertyName("Insurance")] + public Insurance? Insurance { get; set; } - [JsonPropertyName("SkillExpPerLevel")] - public double? SkillExpPerLevel { get; set; } + [JsonPropertyName("SkillExpPerLevel")] + public double? SkillExpPerLevel { get; set; } - [JsonPropertyName("GameSearchingTimeout")] - public double? GameSearchingTimeout { get; set; } + [JsonPropertyName("GameSearchingTimeout")] + public double? GameSearchingTimeout { get; set; } - [JsonPropertyName("WallContusionAbsorption")] - public XYZ? WallContusionAbsorption { get; set; } + [JsonPropertyName("WallContusionAbsorption")] + public XYZ? WallContusionAbsorption { get; set; } - [JsonPropertyName("WeaponFastDrawSettings")] - public WeaponFastDrawSettings? WeaponFastDrawSettings { get; set; } + [JsonPropertyName("WeaponFastDrawSettings")] + public WeaponFastDrawSettings? WeaponFastDrawSettings { get; set; } - [JsonPropertyName("SkillsSettings")] - public SkillsSettings? SkillsSettings { get; set; } + [JsonPropertyName("SkillsSettings")] + public SkillsSettings? SkillsSettings { get; set; } - [JsonPropertyName("AzimuthPanelShowsPlayerOrientation")] - public bool? AzimuthPanelShowsPlayerOrientation { get; set; } + [JsonPropertyName("AzimuthPanelShowsPlayerOrientation")] + public bool? AzimuthPanelShowsPlayerOrientation { get; set; } - [JsonPropertyName("Aiming")] - public Aiming? Aiming { get; set; } + [JsonPropertyName("Aiming")] + public Aiming? Aiming { get; set; } - [JsonPropertyName("Malfunction")] - public Malfunction? Malfunction { get; set; } + [JsonPropertyName("Malfunction")] + public Malfunction? Malfunction { get; set; } - [JsonPropertyName("Overheat")] - public Overheat? Overheat { get; set; } + [JsonPropertyName("Overheat")] + public Overheat? Overheat { get; set; } - [JsonPropertyName("FenceSettings")] - public FenceSettings? FenceSettings { get; set; } + [JsonPropertyName("FenceSettings")] + public FenceSettings? FenceSettings { get; set; } - [JsonPropertyName("TestValue")] - public double? TestValue { get; set; } + [JsonPropertyName("TestValue")] + public double? TestValue { get; set; } - [JsonPropertyName("Inertia")] - public Inertia? Inertia { get; set; } + [JsonPropertyName("Inertia")] + public Inertia? Inertia { get; set; } - [JsonPropertyName("Ballistic")] - public Ballistic? Ballistic { get; set; } + [JsonPropertyName("Ballistic")] + public Ballistic? Ballistic { get; set; } - [JsonPropertyName("RepairSettings")] - public RepairSettings? RepairSettings { get; set; } + [JsonPropertyName("RepairSettings")] + public RepairSettings? RepairSettings { get; set; } - [JsonPropertyName("AudioSettings")] - public AudioSettings? AudioSettings { get; set; } + [JsonPropertyName("AudioSettings")] + public AudioSettings? AudioSettings { get; set; } - public CoopSettings? CoopSettings { get; set; } + public CoopSettings? CoopSettings { get; set; } - public PveSettings? PveSettings { get; set; } + public PveSettings? PveSettings { get; set; } } public class PveSettings { - public List? AvailableVersions { get; set; } - public bool? ModeEnabled { get; set; } + public List? AvailableVersions { get; set; } + public bool? ModeEnabled { get; set; } } public class CoopSettings { - public List? AvailableVersions { get; set; } + public List? AvailableVersions { get; set; } } public class RunddansSettings { - [JsonPropertyName("accessKeys")] - public List? AccessKeys { get; set; } + [JsonPropertyName("accessKeys")] + public List? AccessKeys { get; set; } - [JsonPropertyName("active")] - public bool? Active { get; set; } + [JsonPropertyName("active")] + public bool? Active { get; set; } - [JsonPropertyName("activePVE")] - public bool? ActivePVE { get; set; } + [JsonPropertyName("activePVE")] + public bool? ActivePVE { get; set; } - [JsonPropertyName("applyFrozenEverySec")] - public double? ApplyFrozenEverySec { get; set; } + [JsonPropertyName("applyFrozenEverySec")] + public double? ApplyFrozenEverySec { get; set; } - [JsonPropertyName("consumables")] - public List? Consumables { get; set; } + [JsonPropertyName("consumables")] + public List? Consumables { get; set; } - [JsonPropertyName("drunkImmunitySec")] - public double? DrunkImmunitySec { get; set; } + [JsonPropertyName("drunkImmunitySec")] + public double? DrunkImmunitySec { get; set; } - [JsonPropertyName("durability")] - public XY? Durability { get; set; } + [JsonPropertyName("durability")] + public XY? Durability { get; set; } - [JsonPropertyName("fireDistanceToHeat")] - public double? FireDistanceToHeat { get; set; } + [JsonPropertyName("fireDistanceToHeat")] + public double? FireDistanceToHeat { get; set; } - [JsonPropertyName("grenadeDistanceToBreak")] - public double? GrenadeDistanceToBreak { get; set; } + [JsonPropertyName("grenadeDistanceToBreak")] + public double? GrenadeDistanceToBreak { get; set; } - [JsonPropertyName("interactionDistance")] - public double? InteractionDistance { get; set; } + [JsonPropertyName("interactionDistance")] + public double? InteractionDistance { get; set; } - [JsonPropertyName("knifeCritChanceToBreak")] - public double? KnifeCritChanceToBreak { get; set; } + [JsonPropertyName("knifeCritChanceToBreak")] + public double? KnifeCritChanceToBreak { get; set; } - [JsonPropertyName("locations")] - public List? Locations { get; set; } + [JsonPropertyName("locations")] + public List? Locations { get; set; } - [JsonPropertyName("multitoolRepairSec")] - public double? MultitoolRepairSec { get; set; } + [JsonPropertyName("multitoolRepairSec")] + public double? MultitoolRepairSec { get; set; } - [JsonPropertyName("nonExitsLocations")] - public List? NonExitsLocations { get; set; } + [JsonPropertyName("nonExitsLocations")] + public List? NonExitsLocations { get; set; } - [JsonPropertyName("rainForFrozen")] - public double? RainForFrozen { get; set; } + [JsonPropertyName("rainForFrozen")] + public double? RainForFrozen { get; set; } - [JsonPropertyName("repairSec")] - public double? RepairSec { get; set; } + [JsonPropertyName("repairSec")] + public double? RepairSec { get; set; } - [JsonPropertyName("secToBreak")] - public XY? SecToBreak { get; set; } + [JsonPropertyName("secToBreak")] + public XY? SecToBreak { get; set; } - [JsonPropertyName("sleighLocations")] - public List? SleighLocations { get; set; } + [JsonPropertyName("sleighLocations")] + public List? SleighLocations { get; set; } } public class SeasonActivity { - [JsonPropertyName("InfectionHalloween")] - public SeasonActivityHalloween? InfectionHalloween { get; set; } + [JsonPropertyName("InfectionHalloween")] + public SeasonActivityHalloween? InfectionHalloween { get; set; } } public class SeasonActivityHalloween { - [JsonPropertyName("DisplayUIEnabled")] - public bool? DisplayUIEnabled { get; set; } + [JsonPropertyName("DisplayUIEnabled")] + public bool? DisplayUIEnabled { get; set; } - [JsonPropertyName("Enabled")] - public bool? Enabled { get; set; } + [JsonPropertyName("Enabled")] + public bool? Enabled { get; set; } - [JsonPropertyName("ZombieBleedMul")] - public double? ZombieBleedMul { get; set; } + [JsonPropertyName("ZombieBleedMul")] + public double? ZombieBleedMul { get; set; } } public class EnvironmentSetting2 { - public EnvironmentUIData? EnvironmentUIData { get; set; } + public EnvironmentUIData? EnvironmentUIData { get; set; } } public class EnvironmentUIData { - public string[] TheUnheardEditionEnvironmentUiType { get; set; } + public string[] TheUnheardEditionEnvironmentUiType { get; set; } } public class BodyPartColliderSettings { - public BodyPartColliderPart? BackHead { get; set; } - public BodyPartColliderPart? Ears { get; set; } - public BodyPartColliderPart? Eyes { get; set; } - public BodyPartColliderPart? HeadCommon { get; set; } - public BodyPartColliderPart? Jaw { get; set; } - public BodyPartColliderPart? LeftCalf { get; set; } - public BodyPartColliderPart? LeftForearm { get; set; } - public BodyPartColliderPart? LeftSideChestDown { get; set; } - public BodyPartColliderPart? LeftSideChestUp { get; set; } - public BodyPartColliderPart? LeftThigh { get; set; } - public BodyPartColliderPart? LeftUpperArm { get; set; } - public BodyPartColliderPart? NeckBack { get; set; } - public BodyPartColliderPart? NeckFront { get; set; } - public BodyPartColliderPart? ParietalHead { get; set; } - public BodyPartColliderPart? Pelvis { get; set; } - public BodyPartColliderPart? PelvisBack { get; set; } - public BodyPartColliderPart? RibcageLow { get; set; } - public BodyPartColliderPart? RibcageUp { get; set; } - public BodyPartColliderPart? RightCalf { get; set; } - public BodyPartColliderPart? RightForearm { get; set; } - public BodyPartColliderPart? RightSideChestDown { get; set; } - public BodyPartColliderPart? RightSideChestUp { get; set; } - public BodyPartColliderPart? RightThigh { get; set; } - public BodyPartColliderPart? RightUpperArm { get; set; } - public BodyPartColliderPart? SpineDown { get; set; } - public BodyPartColliderPart? SpineTop { get; set; } + public BodyPartColliderPart? BackHead { get; set; } + public BodyPartColliderPart? Ears { get; set; } + public BodyPartColliderPart? Eyes { get; set; } + public BodyPartColliderPart? HeadCommon { get; set; } + public BodyPartColliderPart? Jaw { get; set; } + public BodyPartColliderPart? LeftCalf { get; set; } + public BodyPartColliderPart? LeftForearm { get; set; } + public BodyPartColliderPart? LeftSideChestDown { get; set; } + public BodyPartColliderPart? LeftSideChestUp { get; set; } + public BodyPartColliderPart? LeftThigh { get; set; } + public BodyPartColliderPart? LeftUpperArm { get; set; } + public BodyPartColliderPart? NeckBack { get; set; } + public BodyPartColliderPart? NeckFront { get; set; } + public BodyPartColliderPart? ParietalHead { get; set; } + public BodyPartColliderPart? Pelvis { get; set; } + public BodyPartColliderPart? PelvisBack { get; set; } + public BodyPartColliderPart? RibcageLow { get; set; } + public BodyPartColliderPart? RibcageUp { get; set; } + public BodyPartColliderPart? RightCalf { get; set; } + public BodyPartColliderPart? RightForearm { get; set; } + public BodyPartColliderPart? RightSideChestDown { get; set; } + public BodyPartColliderPart? RightSideChestUp { get; set; } + public BodyPartColliderPart? RightThigh { get; set; } + public BodyPartColliderPart? RightUpperArm { get; set; } + public BodyPartColliderPart? SpineDown { get; set; } + public BodyPartColliderPart? SpineTop { get; set; } } public class BodyPartColliderPart { - [JsonPropertyName("PenetrationChance")] - public double? PenetrationChance { get; set; } + [JsonPropertyName("PenetrationChance")] + public double? PenetrationChance { get; set; } - [JsonPropertyName("PenetrationDamageMod")] - public double? PenetrationDamageMod { get; set; } + [JsonPropertyName("PenetrationDamageMod")] + public double? PenetrationDamageMod { get; set; } - [JsonPropertyName("PenetrationLevel")] - public double? PenetrationLevel { get; set; } + [JsonPropertyName("PenetrationLevel")] + public double? PenetrationLevel { get; set; } } public class WeaponFastDrawSettings { - [JsonPropertyName("HandShakeCurveFrequency")] - public double? HandShakeCurveFrequency { get; set; } + [JsonPropertyName("HandShakeCurveFrequency")] + public double? HandShakeCurveFrequency { get; set; } - [JsonPropertyName("HandShakeCurveIntensity")] - public double? HandShakeCurveIntensity { get; set; } + [JsonPropertyName("HandShakeCurveIntensity")] + public double? HandShakeCurveIntensity { get; set; } - [JsonPropertyName("HandShakeMaxDuration")] - public double? HandShakeMaxDuration { get; set; } + [JsonPropertyName("HandShakeMaxDuration")] + public double? HandShakeMaxDuration { get; set; } - [JsonPropertyName("HandShakeTremorIntensity")] - public double? HandShakeTremorIntensity { get; set; } + [JsonPropertyName("HandShakeTremorIntensity")] + public double? HandShakeTremorIntensity { get; set; } - [JsonPropertyName("WeaponFastSwitchMaxSpeedMult")] - public double? WeaponFastSwitchMaxSpeedMult { get; set; } + [JsonPropertyName("WeaponFastSwitchMaxSpeedMult")] + public double? WeaponFastSwitchMaxSpeedMult { get; set; } - [JsonPropertyName("WeaponFastSwitchMinSpeedMult")] - public double? WeaponFastSwitchMinSpeedMult { get; set; } + [JsonPropertyName("WeaponFastSwitchMinSpeedMult")] + public double? WeaponFastSwitchMinSpeedMult { get; set; } - [JsonPropertyName("WeaponPistolFastSwitchMaxSpeedMult")] - public double? WeaponPistolFastSwitchMaxSpeedMult { get; set; } + [JsonPropertyName("WeaponPistolFastSwitchMaxSpeedMult")] + public double? WeaponPistolFastSwitchMaxSpeedMult { get; set; } - [JsonPropertyName("WeaponPistolFastSwitchMinSpeedMult")] - public double? WeaponPistolFastSwitchMinSpeedMult { get; set; } + [JsonPropertyName("WeaponPistolFastSwitchMinSpeedMult")] + public double? WeaponPistolFastSwitchMinSpeedMult { get; set; } } public class EventSettings { - [JsonPropertyName("EventActive")] - public bool? EventActive { get; set; } + [JsonPropertyName("EventActive")] + public bool? EventActive { get; set; } - [JsonPropertyName("EventTime")] - public double? EventTime { get; set; } + [JsonPropertyName("EventTime")] + public double? EventTime { get; set; } - [JsonPropertyName("EventWeather")] - public EventWeather? EventWeather { get; set; } + [JsonPropertyName("EventWeather")] + public EventWeather? EventWeather { get; set; } - [JsonPropertyName("ExitTimeMultiplier")] - public double? ExitTimeMultiplier { get; set; } + [JsonPropertyName("ExitTimeMultiplier")] + public double? ExitTimeMultiplier { get; set; } - [JsonPropertyName("StaminaMultiplier")] - public double? StaminaMultiplier { get; set; } + [JsonPropertyName("StaminaMultiplier")] + public double? StaminaMultiplier { get; set; } - [JsonPropertyName("SummonFailedWeather")] - public EventWeather? SummonFailedWeather { get; set; } + [JsonPropertyName("SummonFailedWeather")] + public EventWeather? SummonFailedWeather { get; set; } - [JsonPropertyName("SummonSuccessWeather")] - public EventWeather? SummonSuccessWeather { get; set; } + [JsonPropertyName("SummonSuccessWeather")] + public EventWeather? SummonSuccessWeather { get; set; } - [JsonPropertyName("WeatherChangeTime")] - public double? WeatherChangeTime { get; set; } + [JsonPropertyName("WeatherChangeTime")] + public double? WeatherChangeTime { get; set; } } public class EventWeather { - [JsonPropertyName("Cloudness")] - public double? Cloudness { get; set; } + [JsonPropertyName("Cloudness")] + public double? Cloudness { get; set; } - [JsonPropertyName("Hour")] - public double? Hour { get; set; } + [JsonPropertyName("Hour")] + public double? Hour { get; set; } - [JsonPropertyName("Minute")] - public double? Minute { get; set; } + [JsonPropertyName("Minute")] + public double? Minute { get; set; } - [JsonPropertyName("Rain")] - public double? Rain { get; set; } + [JsonPropertyName("Rain")] + public double? Rain { get; set; } - [JsonPropertyName("RainRandomness")] - public double? RainRandomness { get; set; } + [JsonPropertyName("RainRandomness")] + public double? RainRandomness { get; set; } - [JsonPropertyName("ScaterringFogDensity")] - public double? ScaterringFogDensity { get; set; } + [JsonPropertyName("ScaterringFogDensity")] + public double? ScaterringFogDensity { get; set; } - [JsonPropertyName("TopWindDirection")] - public XYZ? TopWindDirection { get; set; } + [JsonPropertyName("TopWindDirection")] + public XYZ? TopWindDirection { get; set; } - [JsonPropertyName("Wind")] - public double? Wind { get; set; } + [JsonPropertyName("Wind")] + public double? Wind { get; set; } - [JsonPropertyName("WindDirection")] - public double? WindDirection { get; set; } + [JsonPropertyName("WindDirection")] + public double? WindDirection { get; set; } } public class TransitSettings { - [JsonPropertyName("BearPriceMod")] - public double? BearPriceMod { get; set; } + [JsonPropertyName("BearPriceMod")] + public double? BearPriceMod { get; set; } - [JsonPropertyName("ClearAllPlayerEffectsOnTransit")] - public bool? ClearAllPlayerEffectsOnTransit { get; set; } + [JsonPropertyName("ClearAllPlayerEffectsOnTransit")] + public bool? ClearAllPlayerEffectsOnTransit { get; set; } - [JsonPropertyName("CoefficientDiscountCharisma")] - public double? CoefficientDiscountCharisma { get; set; } + [JsonPropertyName("CoefficientDiscountCharisma")] + public double? CoefficientDiscountCharisma { get; set; } - [JsonPropertyName("DeliveryMinPrice")] - public double? DeliveryMinPrice { get; set; } + [JsonPropertyName("DeliveryMinPrice")] + public double? DeliveryMinPrice { get; set; } - [JsonPropertyName("DeliveryPrice")] - public double? DeliveryPrice { get; set; } + [JsonPropertyName("DeliveryPrice")] + public double? DeliveryPrice { get; set; } - [JsonPropertyName("ModDeliveryCost")] - public double? ModDeliveryCost { get; set; } + [JsonPropertyName("ModDeliveryCost")] + public double? ModDeliveryCost { get; set; } - [JsonPropertyName("PercentageOfMissingEnergyRestore")] - public double? PercentageOfMissingEnergyRestore { get; set; } + [JsonPropertyName("PercentageOfMissingEnergyRestore")] + public double? PercentageOfMissingEnergyRestore { get; set; } - [JsonPropertyName("PercentageOfMissingHealthRestore")] - public double? PercentageOfMissingHealthRestore { get; set; } + [JsonPropertyName("PercentageOfMissingHealthRestore")] + public double? PercentageOfMissingHealthRestore { get; set; } - [JsonPropertyName("PercentageOfMissingWaterRestore")] - public double? PercentageOfMissingWaterRestore { get; set; } + [JsonPropertyName("PercentageOfMissingWaterRestore")] + public double? PercentageOfMissingWaterRestore { get; set; } - [JsonPropertyName("RestoreHealthOnDestroyedParts")] - public bool? RestoreHealthOnDestroyedParts { get; set; } + [JsonPropertyName("RestoreHealthOnDestroyedParts")] + public bool? RestoreHealthOnDestroyedParts { get; set; } - [JsonPropertyName("ScavPriceMod")] - public double? ScavPriceMod { get; set; } + [JsonPropertyName("ScavPriceMod")] + public double? ScavPriceMod { get; set; } - [JsonPropertyName("UsecPriceMod")] - public double? UsecPriceMod { get; set; } + [JsonPropertyName("UsecPriceMod")] + public double? UsecPriceMod { get; set; } - [JsonPropertyName("active")] - public bool? Active { get; set; } + [JsonPropertyName("active")] + public bool? Active { get; set; } } public class TripwiresSettings { - [JsonPropertyName("CollisionCapsuleCheckCoef")] - public double? CollisionCapsuleCheckCoef { get; set; } + [JsonPropertyName("CollisionCapsuleCheckCoef")] + public double? CollisionCapsuleCheckCoef { get; set; } - [JsonPropertyName("CollisionCapsuleRadius")] - public double? CollisionCapsuleRadius { get; set; } + [JsonPropertyName("CollisionCapsuleRadius")] + public double? CollisionCapsuleRadius { get; set; } - [JsonPropertyName("DefuseTimeSeconds")] - public double? DefuseTimeSeconds { get; set; } + [JsonPropertyName("DefuseTimeSeconds")] + public double? DefuseTimeSeconds { get; set; } - [JsonPropertyName("DestroyedSeconds")] - public double? DestroyedSeconds { get; set; } + [JsonPropertyName("DestroyedSeconds")] + public double? DestroyedSeconds { get; set; } - [JsonPropertyName("GroundDotProductTolerance")] - public double? GroundDotProductTolerance { get; set; } + [JsonPropertyName("GroundDotProductTolerance")] + public double? GroundDotProductTolerance { get; set; } - [JsonPropertyName("InertSeconds")] - public double? InertSeconds { get; set; } + [JsonPropertyName("InertSeconds")] + public double? InertSeconds { get; set; } - [JsonPropertyName("InteractionSqrDistance")] - public double? InteractionSqrDistance { get; set; } + [JsonPropertyName("InteractionSqrDistance")] + public double? InteractionSqrDistance { get; set; } - [JsonPropertyName("MaxHeightDifference")] - public double? MaxHeightDifference { get; set; } + [JsonPropertyName("MaxHeightDifference")] + public double? MaxHeightDifference { get; set; } - [JsonPropertyName("MaxLength")] - public double? MaxLength { get; set; } + [JsonPropertyName("MaxLength")] + public double? MaxLength { get; set; } - [JsonPropertyName("MaxPreviewLength")] - public double? MaxPreviewLength { get; set; } + [JsonPropertyName("MaxPreviewLength")] + public double? MaxPreviewLength { get; set; } - [JsonPropertyName("MaxTripwireToPlayerDistance")] - public double? MaxTripwireToPlayerDistance { get; set; } + [JsonPropertyName("MaxTripwireToPlayerDistance")] + public double? MaxTripwireToPlayerDistance { get; set; } - [JsonPropertyName("MinLength")] - public double? MinLength { get; set; } + [JsonPropertyName("MinLength")] + public double? MinLength { get; set; } - [JsonPropertyName("MultitoolDefuseTimeSeconds")] - public double? MultitoolDefuseTimeSeconds { get; set; } + [JsonPropertyName("MultitoolDefuseTimeSeconds")] + public double? MultitoolDefuseTimeSeconds { get; set; } - [JsonPropertyName("ShotSqrDistance")] - public double? ShotSqrDistance { get; set; } + [JsonPropertyName("ShotSqrDistance")] + public double? ShotSqrDistance { get; set; } } public class MountingSettings { - [JsonPropertyName("MovementSettings")] - public MountingMovementSettings? MovementSettings { get; set; } + [JsonPropertyName("MovementSettings")] + public MountingMovementSettings? MovementSettings { get; set; } - [JsonPropertyName("PointDetectionSettings")] - public MountingPointDetectionSettings? PointDetectionSettings { get; set; } + [JsonPropertyName("PointDetectionSettings")] + public MountingPointDetectionSettings? PointDetectionSettings { get; set; } } public class MountingMovementSettings { - [JsonPropertyName("ApproachTime")] - public double? ApproachTime { get; set; } + [JsonPropertyName("ApproachTime")] + public double? ApproachTime { get; set; } - [JsonPropertyName("ApproachTimeDeltaAngleModifier")] - public double? ApproachTimeDeltaAngleModifier { get; set; } + [JsonPropertyName("ApproachTimeDeltaAngleModifier")] + public double? ApproachTimeDeltaAngleModifier { get; set; } - [JsonPropertyName("ExitTime")] - public double? ExitTime { get; set; } + [JsonPropertyName("ExitTime")] + public double? ExitTime { get; set; } - [JsonPropertyName("MaxApproachTime")] - public double? MaxApproachTime { get; set; } + [JsonPropertyName("MaxApproachTime")] + public double? MaxApproachTime { get; set; } - [JsonPropertyName("MaxPitchLimitExcess")] - public double? MaxPitchLimitExcess { get; set; } + [JsonPropertyName("MaxPitchLimitExcess")] + public double? MaxPitchLimitExcess { get; set; } - [JsonPropertyName("MaxVerticalMountAngle")] - public double? MaxVerticalMountAngle { get; set; } + [JsonPropertyName("MaxVerticalMountAngle")] + public double? MaxVerticalMountAngle { get; set; } - [JsonPropertyName("MaxYawLimitExcess")] - public double? MaxYawLimitExcess { get; set; } + [JsonPropertyName("MaxYawLimitExcess")] + public double? MaxYawLimitExcess { get; set; } - [JsonPropertyName("MinApproachTime")] - public double? MinApproachTime { get; set; } + [JsonPropertyName("MinApproachTime")] + public double? MinApproachTime { get; set; } - [JsonPropertyName("MountingCameraSpeed")] - public double? MountingCameraSpeed { get; set; } + [JsonPropertyName("MountingCameraSpeed")] + public double? MountingCameraSpeed { get; set; } - [JsonPropertyName("MountingSwayFactorModifier")] - public double? MountingSwayFactorModifier { get; set; } + [JsonPropertyName("MountingSwayFactorModifier")] + public double? MountingSwayFactorModifier { get; set; } - [JsonPropertyName("PitchLimitHorizontal")] - public XYZ? PitchLimitHorizontal { get; set; } + [JsonPropertyName("PitchLimitHorizontal")] + public XYZ? PitchLimitHorizontal { get; set; } - [JsonPropertyName("PitchLimitHorizontalBipod")] - public XYZ? PitchLimitHorizontalBipod { get; set; } + [JsonPropertyName("PitchLimitHorizontalBipod")] + public XYZ? PitchLimitHorizontalBipod { get; set; } - [JsonPropertyName("PitchLimitVertical")] - public XYZ? PitchLimitVertical { get; set; } + [JsonPropertyName("PitchLimitVertical")] + public XYZ? PitchLimitVertical { get; set; } - [JsonPropertyName("RotationSpeedClamp")] - public double? RotationSpeedClamp { get; set; } + [JsonPropertyName("RotationSpeedClamp")] + public double? RotationSpeedClamp { get; set; } - [JsonPropertyName("SensitivityMultiplier")] - public double? SensitivityMultiplier { get; set; } + [JsonPropertyName("SensitivityMultiplier")] + public double? SensitivityMultiplier { get; set; } } public class MountingPointDetectionSettings { - [JsonPropertyName("CheckHorizontalSecondaryOffset")] - public double? CheckHorizontalSecondaryOffset { get; set; } + [JsonPropertyName("CheckHorizontalSecondaryOffset")] + public double? CheckHorizontalSecondaryOffset { get; set; } - [JsonPropertyName("CheckWallOffset")] - public double? CheckWallOffset { get; set; } + [JsonPropertyName("CheckWallOffset")] + public double? CheckWallOffset { get; set; } - [JsonPropertyName("EdgeDetectionDistance")] - public double? EdgeDetectionDistance { get; set; } + [JsonPropertyName("EdgeDetectionDistance")] + public double? EdgeDetectionDistance { get; set; } - [JsonPropertyName("GridMaxHeight")] - public double? GridMaxHeight { get; set; } + [JsonPropertyName("GridMaxHeight")] + public double? GridMaxHeight { get; set; } - [JsonPropertyName("GridMinHeight")] - public double? GridMinHeight { get; set; } + [JsonPropertyName("GridMinHeight")] + public double? GridMinHeight { get; set; } - [JsonPropertyName("HorizontalGridFromTopOffset")] - public double? HorizontalGridFromTopOffset { get; set; } + [JsonPropertyName("HorizontalGridFromTopOffset")] + public double? HorizontalGridFromTopOffset { get; set; } - [JsonPropertyName("HorizontalGridSize")] - public double? HorizontalGridSize { get; set; } + [JsonPropertyName("HorizontalGridSize")] + public double? HorizontalGridSize { get; set; } - [JsonPropertyName("HorizontalGridStepsAmount")] - public double? HorizontalGridStepsAmount { get; set; } + [JsonPropertyName("HorizontalGridStepsAmount")] + public double? HorizontalGridStepsAmount { get; set; } - [JsonPropertyName("MaxFramesForRaycast")] - public double? MaxFramesForRaycast { get; set; } + [JsonPropertyName("MaxFramesForRaycast")] + public double? MaxFramesForRaycast { get; set; } - [JsonPropertyName("MaxHorizontalMountAngleDotDelta")] - public double? MaxHorizontalMountAngleDotDelta { get; set; } + [JsonPropertyName("MaxHorizontalMountAngleDotDelta")] + public double? MaxHorizontalMountAngleDotDelta { get; set; } - [JsonPropertyName("MaxProneMountAngleDotDelta")] - public double? MaxProneMountAngleDotDelta { get; set; } + [JsonPropertyName("MaxProneMountAngleDotDelta")] + public double? MaxProneMountAngleDotDelta { get; set; } - [JsonPropertyName("MaxVerticalMountAngleDotDelta")] - public double? MaxVerticalMountAngleDotDelta { get; set; } + [JsonPropertyName("MaxVerticalMountAngleDotDelta")] + public double? MaxVerticalMountAngleDotDelta { get; set; } - [JsonPropertyName("PointHorizontalMountOffset")] - public double? PointHorizontalMountOffset { get; set; } + [JsonPropertyName("PointHorizontalMountOffset")] + public double? PointHorizontalMountOffset { get; set; } - [JsonPropertyName("PointVerticalMountOffset")] - public double? PointVerticalMountOffset { get; set; } + [JsonPropertyName("PointVerticalMountOffset")] + public double? PointVerticalMountOffset { get; set; } - [JsonPropertyName("RaycastDistance")] - public double? RaycastDistance { get; set; } + [JsonPropertyName("RaycastDistance")] + public double? RaycastDistance { get; set; } - [JsonPropertyName("SecondCheckVerticalDistance")] - public double? SecondCheckVerticalDistance { get; set; } + [JsonPropertyName("SecondCheckVerticalDistance")] + public double? SecondCheckVerticalDistance { get; set; } - [JsonPropertyName("SecondCheckVerticalGridOffset")] - public double? SecondCheckVerticalGridOffset { get; set; } + [JsonPropertyName("SecondCheckVerticalGridOffset")] + public double? SecondCheckVerticalGridOffset { get; set; } - [JsonPropertyName("SecondCheckVerticalGridSize")] - public double? SecondCheckVerticalGridSize { get; set; } + [JsonPropertyName("SecondCheckVerticalGridSize")] + public double? SecondCheckVerticalGridSize { get; set; } - [JsonPropertyName("SecondCheckVerticalGridSizeStepsAmount")] - public double? SecondCheckVerticalGridSizeStepsAmount { get; set; } + [JsonPropertyName("SecondCheckVerticalGridSizeStepsAmount")] + public double? SecondCheckVerticalGridSizeStepsAmount { get; set; } - [JsonPropertyName("VerticalGridSize")] - public double? VerticalGridSize { get; set; } + [JsonPropertyName("VerticalGridSize")] + public double? VerticalGridSize { get; set; } - [JsonPropertyName("VerticalGridStepsAmount")] - public double? VerticalGridStepsAmount { get; set; } + [JsonPropertyName("VerticalGridStepsAmount")] + public double? VerticalGridStepsAmount { get; set; } } public class GraphicSettings { - [JsonPropertyName("ExperimentalFogInCity")] - public bool? ExperimentalFogInCity { get; set; } + [JsonPropertyName("ExperimentalFogInCity")] + public bool? ExperimentalFogInCity { get; set; } } public class BufferZone { - [JsonPropertyName("CustomerAccessTime")] - public double? CustomerAccessTime { get; set; } + [JsonPropertyName("CustomerAccessTime")] + public double? CustomerAccessTime { get; set; } - [JsonPropertyName("CustomerCriticalTimeStart")] - public double? CustomerCriticalTimeStart { get; set; } + [JsonPropertyName("CustomerCriticalTimeStart")] + public double? CustomerCriticalTimeStart { get; set; } - [JsonPropertyName("CustomerKickNotifTime")] - public double? CustomerKickNotifTime { get; set; } + [JsonPropertyName("CustomerKickNotifTime")] + public double? CustomerKickNotifTime { get; set; } } public class ItemsCommonSettings { - [JsonPropertyName("ItemRemoveAfterInterruptionTime")] - public double? ItemRemoveAfterInterruptionTime { get; set; } + [JsonPropertyName("ItemRemoveAfterInterruptionTime")] + public double? ItemRemoveAfterInterruptionTime { get; set; } } public class TradingSettings { - [JsonPropertyName("BuyRestrictionMaxBonus")] - public Dictionary? BuyRestrictionMaxBonus { get; set; } + [JsonPropertyName("BuyRestrictionMaxBonus")] + public Dictionary? BuyRestrictionMaxBonus { get; set; } - [JsonPropertyName("BuyoutRestrictions")] - public BuyoutRestrictions? BuyoutRestrictions { get; set; } + [JsonPropertyName("BuyoutRestrictions")] + public BuyoutRestrictions? BuyoutRestrictions { get; set; } } public class BuyRestrictionMaxBonus { - [JsonPropertyName("multiplier")] - public double? Multiplier { get; set; } + [JsonPropertyName("multiplier")] + public double? Multiplier { get; set; } } public class BuyoutRestrictions { - [JsonPropertyName("MinDurability")] - public double? MinDurability { get; set; } + [JsonPropertyName("MinDurability")] + public double? MinDurability { get; set; } - [JsonPropertyName("MinFoodDrinkResource")] - public double? MinFoodDrinkResource { get; set; } + [JsonPropertyName("MinFoodDrinkResource")] + public double? MinFoodDrinkResource { get; set; } - [JsonPropertyName("MinMedsResource")] - public double? MinMedsResource { get; set; } + [JsonPropertyName("MinMedsResource")] + public double? MinMedsResource { get; set; } } public class Content { - [JsonPropertyName("ip")] - public string? Ip { get; set; } + [JsonPropertyName("ip")] + public string? Ip { get; set; } - [JsonPropertyName("port")] - public double? Port { get; set; } + [JsonPropertyName("port")] + public double? Port { get; set; } - [JsonPropertyName("root")] - public string? Root { get; set; } + [JsonPropertyName("root")] + public string? Root { get; set; } } public class Exp { - [JsonPropertyName("heal")] - public Heal? Heal { get; set; } + [JsonPropertyName("heal")] + public Heal? Heal { get; set; } - [JsonPropertyName("match_end")] - public MatchEnd? MatchEnd { get; set; } + [JsonPropertyName("match_end")] + public MatchEnd? MatchEnd { get; set; } - [JsonPropertyName("kill")] - public Kill? Kill { get; set; } + [JsonPropertyName("kill")] + public Kill? Kill { get; set; } - [JsonPropertyName("level")] - public Level? Level { get; set; } + [JsonPropertyName("level")] + public Level? Level { get; set; } - [JsonPropertyName("loot_attempts")] - public List? LootAttempts { get; set; } + [JsonPropertyName("loot_attempts")] + public List? LootAttempts { get; set; } - [JsonPropertyName("expForLevelOneDogtag")] - public double? ExpForLevelOneDogtag { get; set; } + [JsonPropertyName("expForLevelOneDogtag")] + public double? ExpForLevelOneDogtag { get; set; } - [JsonPropertyName("expForLockedDoorOpen")] - public double? ExpForLockedDoorOpen { get; set; } + [JsonPropertyName("expForLockedDoorOpen")] + public double? ExpForLockedDoorOpen { get; set; } - [JsonPropertyName("expForLockedDoorBreach")] - public double? ExpForLockedDoorBreach { get; set; } + [JsonPropertyName("expForLockedDoorBreach")] + public double? ExpForLockedDoorBreach { get; set; } - [JsonPropertyName("triggerMult")] - public double? TriggerMult { get; set; } + [JsonPropertyName("triggerMult")] + public double? TriggerMult { get; set; } } public class Heal { - [JsonPropertyName("expForHeal")] - public double? ExpForHeal { get; set; } + [JsonPropertyName("expForHeal")] + public double? ExpForHeal { get; set; } - [JsonPropertyName("expForHydration")] - public double? ExpForHydration { get; set; } + [JsonPropertyName("expForHydration")] + public double? ExpForHydration { get; set; } - [JsonPropertyName("expForEnergy")] - public double? ExpForEnergy { get; set; } + [JsonPropertyName("expForEnergy")] + public double? ExpForEnergy { get; set; } } public class MatchEnd { - [JsonPropertyName("README")] - public string? ReadMe { get; set; } + [JsonPropertyName("README")] + public string? ReadMe { get; set; } - [JsonPropertyName("survived_exp_requirement")] - public double? SurvivedExperienceRequirement { get; set; } + [JsonPropertyName("survived_exp_requirement")] + public double? SurvivedExperienceRequirement { get; set; } - [JsonPropertyName("survived_seconds_requirement")] - public double? SurvivedSecondsRequirement { get; set; } + [JsonPropertyName("survived_seconds_requirement")] + public double? SurvivedSecondsRequirement { get; set; } - [JsonPropertyName("survived_exp_reward")] - public double? SurvivedExperienceReward { get; set; } + [JsonPropertyName("survived_exp_reward")] + public double? SurvivedExperienceReward { get; set; } - [JsonPropertyName("mia_exp_reward")] - public double? MiaExperienceReward { get; set; } + [JsonPropertyName("mia_exp_reward")] + public double? MiaExperienceReward { get; set; } - [JsonPropertyName("runner_exp_reward")] - public double? RunnerExperienceReward { get; set; } + [JsonPropertyName("runner_exp_reward")] + public double? RunnerExperienceReward { get; set; } - [JsonPropertyName("leftMult")] - public double? LeftMultiplier { get; set; } + [JsonPropertyName("leftMult")] + public double? LeftMultiplier { get; set; } - [JsonPropertyName("miaMult")] - public double? MiaMultiplier { get; set; } + [JsonPropertyName("miaMult")] + public double? MiaMultiplier { get; set; } - [JsonPropertyName("survivedMult")] - public double? SurvivedMultiplier { get; set; } + [JsonPropertyName("survivedMult")] + public double? SurvivedMultiplier { get; set; } - [JsonPropertyName("runnerMult")] - public double? RunnerMultiplier { get; set; } + [JsonPropertyName("runnerMult")] + public double? RunnerMultiplier { get; set; } - [JsonPropertyName("killedMult")] - public double? KilledMultiplier { get; set; } + [JsonPropertyName("killedMult")] + public double? KilledMultiplier { get; set; } - [JsonPropertyName("transit_exp_reward")] - public double? TransitExperienceReward { get; set; } + [JsonPropertyName("transit_exp_reward")] + public double? TransitExperienceReward { get; set; } - [JsonPropertyName("transit_mult")] - public List>? TransitMultiplier { get; set; } + [JsonPropertyName("transit_mult")] + public List>? TransitMultiplier { get; set; } } public class Kill { - [JsonPropertyName("combo")] - public Combo[] Combos { get; set; } + [JsonPropertyName("combo")] + public Combo[] Combos { get; set; } - [JsonPropertyName("victimLevelExp")] - public double? VictimLevelExperience { get; set; } + [JsonPropertyName("victimLevelExp")] + public double? VictimLevelExperience { get; set; } - [JsonPropertyName("headShotMult")] - public double? HeadShotMultiplier { get; set; } + [JsonPropertyName("headShotMult")] + public double? HeadShotMultiplier { get; set; } - [JsonPropertyName("expOnDamageAllHealth")] - public double? ExperienceOnDamageAllHealth { get; set; } + [JsonPropertyName("expOnDamageAllHealth")] + public double? ExperienceOnDamageAllHealth { get; set; } - [JsonPropertyName("longShotDistance")] - public double? LongShotDistance { get; set; } + [JsonPropertyName("longShotDistance")] + public double? LongShotDistance { get; set; } - [JsonPropertyName("bloodLossToLitre")] - public double? BloodLossToLitre { get; set; } + [JsonPropertyName("bloodLossToLitre")] + public double? BloodLossToLitre { get; set; } - [JsonPropertyName("botExpOnDamageAllHealth")] - public double? BotExperienceOnDamageAllHealth { get; set; } + [JsonPropertyName("botExpOnDamageAllHealth")] + public double? BotExperienceOnDamageAllHealth { get; set; } - [JsonPropertyName("botHeadShotMult")] - public double? BotHeadShotMultiplier { get; set; } + [JsonPropertyName("botHeadShotMult")] + public double? BotHeadShotMultiplier { get; set; } - [JsonPropertyName("victimBotLevelExp")] - public double? VictimBotLevelExperience { get; set; } + [JsonPropertyName("victimBotLevelExp")] + public double? VictimBotLevelExperience { get; set; } - [JsonPropertyName("pmcExpOnDamageAllHealth")] - public double? PmcExperienceOnDamageAllHealth { get; set; } + [JsonPropertyName("pmcExpOnDamageAllHealth")] + public double? PmcExperienceOnDamageAllHealth { get; set; } - [JsonPropertyName("pmcHeadShotMult")] - public double? PmcHeadShotMultiplier { get; set; } + [JsonPropertyName("pmcHeadShotMult")] + public double? PmcHeadShotMultiplier { get; set; } } public class Combo { - [JsonPropertyName("percent")] - public double? Percentage { get; set; } + [JsonPropertyName("percent")] + public double? Percentage { get; set; } } public class Level { - [JsonPropertyName("exp_table")] - public ExpTable[] ExperienceTable { get; set; } + [JsonPropertyName("exp_table")] + public ExpTable[] ExperienceTable { get; set; } - [JsonPropertyName("trade_level")] - public double? TradeLevel { get; set; } + [JsonPropertyName("trade_level")] + public double? TradeLevel { get; set; } - [JsonPropertyName("savage_level")] - public double? SavageLevel { get; set; } + [JsonPropertyName("savage_level")] + public double? SavageLevel { get; set; } - [JsonPropertyName("clan_level")] - public double? ClanLevel { get; set; } + [JsonPropertyName("clan_level")] + public double? ClanLevel { get; set; } - [JsonPropertyName("mastering1")] - public double? Mastering1 { get; set; } + [JsonPropertyName("mastering1")] + public double? Mastering1 { get; set; } - [JsonPropertyName("mastering2")] - public double? Mastering2 { get; set; } + [JsonPropertyName("mastering2")] + public double? Mastering2 { get; set; } } public class ExpTable { - [JsonPropertyName("exp")] - public double? Experience { get; set; } + [JsonPropertyName("exp")] + public double? Experience { get; set; } } public class LootAttempt { - [JsonPropertyName("k_exp")] - public double? ExperiencePoints { get; set; } + [JsonPropertyName("k_exp")] + public double? ExperiencePoints { get; set; } } public class Armor { - [JsonPropertyName("class")] - public List? Classes { get; set; } + [JsonPropertyName("class")] + public List? Classes { get; set; } } public class Class { - [JsonPropertyName("resistance")] - public double? Resistance { get; set; } + [JsonPropertyName("resistance")] + public double? Resistance { get; set; } } public class Mastering { - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("Templates")] - public List? Templates { get; set; } + [JsonPropertyName("Templates")] + public List? Templates { get; set; } - [JsonPropertyName("Level2")] - public double? Level2 { get; set; } + [JsonPropertyName("Level2")] + public double? Level2 { get; set; } - [JsonPropertyName("Level3")] - public double? Level3 { get; set; } + [JsonPropertyName("Level3")] + public double? Level3 { get; set; } } public class Customization { - [JsonPropertyName("SavageHead")] - public Dictionary>? Head { get; set; } + [JsonPropertyName("SavageHead")] + public Dictionary>? Head { get; set; } - [JsonPropertyName("SavageBody")] - public Dictionary>? Body { get; set; } + [JsonPropertyName("SavageBody")] + public Dictionary>? Body { get; set; } - [JsonPropertyName("SavageFeet")] - public Dictionary>? Feet { get; set; } + [JsonPropertyName("SavageFeet")] + public Dictionary>? Feet { get; set; } - [JsonPropertyName("CustomizationVoice")] - public List? VoiceOptions { get; set; } + [JsonPropertyName("CustomizationVoice")] + public List? VoiceOptions { get; set; } - [JsonPropertyName("BodyParts")] - public BodyParts? BodyParts { get; set; } + [JsonPropertyName("BodyParts")] + public BodyParts? BodyParts { get; set; } } public class CustomizationVoice { - [JsonPropertyName("voice")] - public string? Voice { get; set; } + [JsonPropertyName("voice")] + public string? Voice { get; set; } - [JsonPropertyName("side")] - public List? Side { get; set; } + [JsonPropertyName("side")] + public List? Side { get; set; } - [JsonPropertyName("isNotRandom")] - public bool? IsNotRandom { get; set; } + [JsonPropertyName("isNotRandom")] + public bool? IsNotRandom { get; set; } } public class BodyParts { - public string? Head { get; set; } - public string? Body { get; set; } - public string? Feet { get; set; } - public string? Hands { get; set; } + public string? Head { get; set; } + public string? Body { get; set; } + public string? Feet { get; set; } + public string? Hands { get; set; } } public class AirdropGlobalSettings { - public string? AirdropViewType { get; set; } - public double? ParachuteEndOpenHeight { get; set; } - public double? ParachuteStartOpenHeight { get; set; } - public double? PlaneAdditionalDistance { get; set; } - public double? PlaneAirdropDuration { get; set; } - public double? PlaneAirdropFlareWait { get; set; } - public double? PlaneAirdropSmoke { get; set; } - public double? PlaneMaxFlightHeight { get; set; } - public double? PlaneMinFlightHeight { get; set; } - public double? PlaneSpeed { get; set; } - public double? SmokeActivateHeight { get; set; } + public string? AirdropViewType { get; set; } + public double? ParachuteEndOpenHeight { get; set; } + public double? ParachuteStartOpenHeight { get; set; } + public double? PlaneAdditionalDistance { get; set; } + public double? PlaneAirdropDuration { get; set; } + public double? PlaneAirdropFlareWait { get; set; } + public double? PlaneAirdropSmoke { get; set; } + public double? PlaneMaxFlightHeight { get; set; } + public double? PlaneMinFlightHeight { get; set; } + public double? PlaneSpeed { get; set; } + public double? SmokeActivateHeight { get; set; } } public class KarmaCalculationSettings { - [JsonPropertyName("defaultPveKarmaValue")] - public double? DefaultPveKarmaValue { get; set; } + [JsonPropertyName("defaultPveKarmaValue")] + public double? DefaultPveKarmaValue { get; set; } - [JsonPropertyName("enable")] - public bool? Enable { get; set; } + [JsonPropertyName("enable")] + public bool? Enable { get; set; } - [JsonPropertyName("expireDaysAfterLastRaid")] - public double? ExpireDaysAfterLastRaid { get; set; } + [JsonPropertyName("expireDaysAfterLastRaid")] + public double? ExpireDaysAfterLastRaid { get; set; } - [JsonPropertyName("maxKarmaThresholdPercentile")] - public double? MaxKarmaThresholdPercentile { get; set; } + [JsonPropertyName("maxKarmaThresholdPercentile")] + public double? MaxKarmaThresholdPercentile { get; set; } - [JsonPropertyName("minKarmaThresholdPercentile")] - public double? MinKarmaThresholdPercentile { get; set; } + [JsonPropertyName("minKarmaThresholdPercentile")] + public double? MinKarmaThresholdPercentile { get; set; } - [JsonPropertyName("minSurvivedRaidCount")] - public double? MinSurvivedRaidCount { get; set; } + [JsonPropertyName("minSurvivedRaidCount")] + public double? MinSurvivedRaidCount { get; set; } } public class ArenaEftTransferSettings { - public double? ArenaManagerReputationTaxMultiplier { get; set; } - public double? CharismaTaxMultiplier { get; set; } - public double? CreditPriceTaxMultiplier { get; set; } - public double? RubTaxMultiplier { get; set; } - public Dictionary? TransferLimitsByGameEdition { get; set; } - public Dictionary? TransferLimitsSettings { get; set; } + public double? ArenaManagerReputationTaxMultiplier { get; set; } + public double? CharismaTaxMultiplier { get; set; } + public double? CreditPriceTaxMultiplier { get; set; } + public double? RubTaxMultiplier { get; set; } + public Dictionary? TransferLimitsByGameEdition { get; set; } + public Dictionary? TransferLimitsSettings { get; set; } } public class ArmorMaterials { - [JsonPropertyName("UHMWPE")] - public ArmorType? UHMWPE { get; set; } + [JsonPropertyName("UHMWPE")] + public ArmorType? UHMWPE { get; set; } - [JsonPropertyName("Aramid")] - public ArmorType? Aramid { get; set; } + [JsonPropertyName("Aramid")] + public ArmorType? Aramid { get; set; } - [JsonPropertyName("Combined")] - public ArmorType? Combined { get; set; } + [JsonPropertyName("Combined")] + public ArmorType? Combined { get; set; } - [JsonPropertyName("Titan")] - public ArmorType? Titan { get; set; } + [JsonPropertyName("Titan")] + public ArmorType? Titan { get; set; } - [JsonPropertyName("Aluminium")] - public ArmorType? Aluminium { get; set; } + [JsonPropertyName("Aluminium")] + public ArmorType? Aluminium { get; set; } - [JsonPropertyName("ArmoredSteel")] - public ArmorType? ArmoredSteel { get; set; } + [JsonPropertyName("ArmoredSteel")] + public ArmorType? ArmoredSteel { get; set; } - [JsonPropertyName("Ceramic")] - public ArmorType? Ceramic { get; set; } + [JsonPropertyName("Ceramic")] + public ArmorType? Ceramic { get; set; } - [JsonPropertyName("Glass")] - public ArmorType? Glass { get; set; } + [JsonPropertyName("Glass")] + public ArmorType? Glass { get; set; } } public class ArmorType { - [JsonPropertyName("Destructibility")] - public double? Destructibility { get; set; } + [JsonPropertyName("Destructibility")] + public double? Destructibility { get; set; } - [JsonPropertyName("MinRepairDegradation")] - public double? MinRepairDegradation { get; set; } + [JsonPropertyName("MinRepairDegradation")] + public double? MinRepairDegradation { get; set; } - [JsonPropertyName("MaxRepairDegradation")] - public double? MaxRepairDegradation { get; set; } + [JsonPropertyName("MaxRepairDegradation")] + public double? MaxRepairDegradation { get; set; } - [JsonPropertyName("ExplosionDestructibility")] - public double? ExplosionDestructibility { get; set; } + [JsonPropertyName("ExplosionDestructibility")] + public double? ExplosionDestructibility { get; set; } - [JsonPropertyName("MinRepairKitDegradation")] - public double? MinRepairKitDegradation { get; set; } + [JsonPropertyName("MinRepairKitDegradation")] + public double? MinRepairKitDegradation { get; set; } - [JsonPropertyName("MaxRepairKitDegradation")] - public double? MaxRepairKitDegradation { get; set; } + [JsonPropertyName("MaxRepairKitDegradation")] + public double? MaxRepairKitDegradation { get; set; } } public class Health { - [JsonPropertyName("Falling")] - public Falling? Falling { get; set; } + [JsonPropertyName("Falling")] + public Falling? Falling { get; set; } - [JsonPropertyName("Effects")] - public Effects? Effects { get; set; } + [JsonPropertyName("Effects")] + public Effects? Effects { get; set; } - [JsonPropertyName("HealPrice")] - public HealPrice? HealPrice { get; set; } + [JsonPropertyName("HealPrice")] + public HealPrice? HealPrice { get; set; } - [JsonPropertyName("ProfileHealthSettings")] - public ProfileHealthSettings? ProfileHealthSettings { get; set; } + [JsonPropertyName("ProfileHealthSettings")] + public ProfileHealthSettings? ProfileHealthSettings { get; set; } } public class Falling { - [JsonPropertyName("DamagePerMeter")] - public double? DamagePerMeter { get; set; } + [JsonPropertyName("DamagePerMeter")] + public double? DamagePerMeter { get; set; } - [JsonPropertyName("SafeHeight")] - public double? SafeHeight { get; set; } + [JsonPropertyName("SafeHeight")] + public double? SafeHeight { get; set; } } public class Effects { - [JsonPropertyName("Existence")] - public Existence? Existence { get; set; } + [JsonPropertyName("Existence")] + public Existence? Existence { get; set; } - [JsonPropertyName("Dehydration")] - public Dehydration? Dehydration { get; set; } + [JsonPropertyName("Dehydration")] + public Dehydration? Dehydration { get; set; } - [JsonPropertyName("BreakPart")] - public BreakPart? BreakPart { get; set; } + [JsonPropertyName("BreakPart")] + public BreakPart? BreakPart { get; set; } - [JsonPropertyName("Contusion")] - public Contusion? Contusion { get; set; } + [JsonPropertyName("Contusion")] + public Contusion? Contusion { get; set; } - [JsonPropertyName("Disorientation")] - public Disorientation? Disorientation { get; set; } + [JsonPropertyName("Disorientation")] + public Disorientation? Disorientation { get; set; } - [JsonPropertyName("Exhaustion")] - public Exhaustion? Exhaustion { get; set; } + [JsonPropertyName("Exhaustion")] + public Exhaustion? Exhaustion { get; set; } - [JsonPropertyName("LowEdgeHealth")] - public LowEdgeHealth? LowEdgeHealth { get; set; } + [JsonPropertyName("LowEdgeHealth")] + public LowEdgeHealth? LowEdgeHealth { get; set; } - [JsonPropertyName("RadExposure")] - public RadExposure? RadExposure { get; set; } + [JsonPropertyName("RadExposure")] + public RadExposure? RadExposure { get; set; } - [JsonPropertyName("Stun")] - public Stun? Stun { get; set; } + [JsonPropertyName("Stun")] + public Stun? Stun { get; set; } - [JsonPropertyName("Intoxication")] - public Intoxication? Intoxication { get; set; } + [JsonPropertyName("Intoxication")] + public Intoxication? Intoxication { get; set; } - [JsonPropertyName("Regeneration")] - public Regeneration? Regeneration { get; set; } + [JsonPropertyName("Regeneration")] + public Regeneration? Regeneration { get; set; } - [JsonPropertyName("Wound")] - public Wound? Wound { get; set; } + [JsonPropertyName("Wound")] + public Wound? Wound { get; set; } - [JsonPropertyName("Berserk")] - public Berserk? Berserk { get; set; } + [JsonPropertyName("Berserk")] + public Berserk? Berserk { get; set; } - [JsonPropertyName("Flash")] - public Flash? Flash { get; set; } + [JsonPropertyName("Flash")] + public Flash? Flash { get; set; } - [JsonPropertyName("MedEffect")] - public MedEffect? MedEffect { get; set; } + [JsonPropertyName("MedEffect")] + public MedEffect? MedEffect { get; set; } - [JsonPropertyName("Pain")] - public Pain? Pain { get; set; } + [JsonPropertyName("Pain")] + public Pain? Pain { get; set; } - [JsonPropertyName("PainKiller")] - public PainKiller? PainKiller { get; set; } + [JsonPropertyName("PainKiller")] + public PainKiller? PainKiller { get; set; } - [JsonPropertyName("SandingScreen")] - public SandingScreen? SandingScreen { get; set; } + [JsonPropertyName("SandingScreen")] + public SandingScreen? SandingScreen { get; set; } - [JsonPropertyName("MildMusclePain")] - public MusclePainEffect? MildMusclePain { get; set; } + [JsonPropertyName("MildMusclePain")] + public MusclePainEffect? MildMusclePain { get; set; } - [JsonPropertyName("SevereMusclePain")] - public MusclePainEffect? SevereMusclePain { get; set; } + [JsonPropertyName("SevereMusclePain")] + public MusclePainEffect? SevereMusclePain { get; set; } - [JsonPropertyName("Stimulator")] - public Stimulator? Stimulator { get; set; } + [JsonPropertyName("Stimulator")] + public Stimulator? Stimulator { get; set; } - [JsonPropertyName("Tremor")] - public Tremor? Tremor { get; set; } + [JsonPropertyName("Tremor")] + public Tremor? Tremor { get; set; } - [JsonPropertyName("ChronicStaminaFatigue")] - public ChronicStaminaFatigue? ChronicStaminaFatigue { get; set; } + [JsonPropertyName("ChronicStaminaFatigue")] + public ChronicStaminaFatigue? ChronicStaminaFatigue { get; set; } - [JsonPropertyName("Fracture")] - public Fracture? Fracture { get; set; } + [JsonPropertyName("Fracture")] + public Fracture? Fracture { get; set; } - [JsonPropertyName("HeavyBleeding")] - public HeavyBleeding? HeavyBleeding { get; set; } + [JsonPropertyName("HeavyBleeding")] + public HeavyBleeding? HeavyBleeding { get; set; } - [JsonPropertyName("LightBleeding")] - public LightBleeding? LightBleeding { get; set; } + [JsonPropertyName("LightBleeding")] + public LightBleeding? LightBleeding { get; set; } - [JsonPropertyName("BodyTemperature")] - public BodyTemperature? BodyTemperature { get; set; } + [JsonPropertyName("BodyTemperature")] + public BodyTemperature? BodyTemperature { get; set; } - [JsonPropertyName("ZombieInfection")] - public ZombieInfection? ZombieInfection { get; set; } + [JsonPropertyName("ZombieInfection")] + public ZombieInfection? ZombieInfection { get; set; } } public class ZombieInfection { - [JsonPropertyName("Dehydration")] - public double? Dehydration { get; set; } + [JsonPropertyName("Dehydration")] + public double? Dehydration { get; set; } - [JsonPropertyName("HearingDebuffPercentage")] - public double? HearingDebuffPercentage { get; set; } + [JsonPropertyName("HearingDebuffPercentage")] + public double? HearingDebuffPercentage { get; set; } - // The C on the Cumulatie down here is the russian C, its encoded differently, I THINK - // Just in case, dont change it - [JsonPropertyName("СumulativeTime")] - public double? CumulativeTime { get; set; } + // The C on the Cumulatie down here is the russian C, its encoded differently, I THINK + // Just in case, dont change it + [JsonPropertyName("СumulativeTime")] + public double? CumulativeTime { get; set; } } public class Existence { - [JsonPropertyName("EnergyLoopTime")] - public double? EnergyLoopTime { get; set; } + [JsonPropertyName("EnergyLoopTime")] + public double? EnergyLoopTime { get; set; } - [JsonPropertyName("HydrationLoopTime")] - public double? HydrationLoopTime { get; set; } + [JsonPropertyName("HydrationLoopTime")] + public double? HydrationLoopTime { get; set; } - [JsonPropertyName("EnergyDamage")] - public double? EnergyDamage { get; set; } + [JsonPropertyName("EnergyDamage")] + public double? EnergyDamage { get; set; } - [JsonPropertyName("HydrationDamage")] - public double? HydrationDamage { get; set; } + [JsonPropertyName("HydrationDamage")] + public double? HydrationDamage { get; set; } - [JsonPropertyName("DestroyedStomachEnergyTimeFactor")] - public double? DestroyedStomachEnergyTimeFactor { get; set; } + [JsonPropertyName("DestroyedStomachEnergyTimeFactor")] + public double? DestroyedStomachEnergyTimeFactor { get; set; } - [JsonPropertyName("DestroyedStomachHydrationTimeFactor")] - public double? DestroyedStomachHydrationTimeFactor { get; set; } + [JsonPropertyName("DestroyedStomachHydrationTimeFactor")] + public double? DestroyedStomachHydrationTimeFactor { get; set; } } public class Dehydration { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("BleedingHealth")] - public double? BleedingHealth { get; set; } + [JsonPropertyName("BleedingHealth")] + public double? BleedingHealth { get; set; } - [JsonPropertyName("BleedingLoopTime")] - public double? BleedingLoopTime { get; set; } + [JsonPropertyName("BleedingLoopTime")] + public double? BleedingLoopTime { get; set; } - [JsonPropertyName("BleedingLifeTime")] - public double? BleedingLifeTime { get; set; } + [JsonPropertyName("BleedingLifeTime")] + public double? BleedingLifeTime { get; set; } - [JsonPropertyName("DamageOnStrongDehydration")] - public double? DamageOnStrongDehydration { get; set; } + [JsonPropertyName("DamageOnStrongDehydration")] + public double? DamageOnStrongDehydration { get; set; } - [JsonPropertyName("StrongDehydrationLoopTime")] - public double? StrongDehydrationLoopTime { get; set; } + [JsonPropertyName("StrongDehydrationLoopTime")] + public double? StrongDehydrationLoopTime { get; set; } } public class BreakPart { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } - [JsonPropertyName("OfflineDurationMin")] - public double? OfflineDurationMin { get; set; } + [JsonPropertyName("OfflineDurationMin")] + public double? OfflineDurationMin { get; set; } - [JsonPropertyName("OfflineDurationMax")] - public double? OfflineDurationMax { get; set; } + [JsonPropertyName("OfflineDurationMax")] + public double? OfflineDurationMax { get; set; } - [JsonPropertyName("RemovePrice")] - public double? RemovePrice { get; set; } + [JsonPropertyName("RemovePrice")] + public double? RemovePrice { get; set; } - [JsonPropertyName("RemovedAfterDeath")] - public bool? RemovedAfterDeath { get; set; } + [JsonPropertyName("RemovedAfterDeath")] + public bool? RemovedAfterDeath { get; set; } - [JsonPropertyName("BulletHitProbability")] - public Probability? BulletHitProbability { get; set; } + [JsonPropertyName("BulletHitProbability")] + public Probability? BulletHitProbability { get; set; } - [JsonPropertyName("FallingProbability")] - public Probability? FallingProbability { get; set; } + [JsonPropertyName("FallingProbability")] + public Probability? FallingProbability { get; set; } } public class Contusion { - [JsonPropertyName("Dummy")] - public double? Dummy { get; set; } + [JsonPropertyName("Dummy")] + public double? Dummy { get; set; } } public class Disorientation { - [JsonPropertyName("Dummy")] - public double? Dummy { get; set; } + [JsonPropertyName("Dummy")] + public double? Dummy { get; set; } } public class Exhaustion { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("Damage")] - public double? Damage { get; set; } + [JsonPropertyName("Damage")] + public double? Damage { get; set; } - [JsonPropertyName("DamageLoopTime")] - public double? DamageLoopTime { get; set; } + [JsonPropertyName("DamageLoopTime")] + public double? DamageLoopTime { get; set; } } public class LowEdgeHealth { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("StartCommonHealth")] - public double? StartCommonHealth { get; set; } + [JsonPropertyName("StartCommonHealth")] + public double? StartCommonHealth { get; set; } } public class RadExposure { - [JsonPropertyName("Damage")] - public double? Damage { get; set; } + [JsonPropertyName("Damage")] + public double? Damage { get; set; } - [JsonPropertyName("DamageLoopTime")] - public double? DamageLoopTime { get; set; } + [JsonPropertyName("DamageLoopTime")] + public double? DamageLoopTime { get; set; } } public class Stun { - [JsonPropertyName("Dummy")] - public double? Dummy { get; set; } + [JsonPropertyName("Dummy")] + public double? Dummy { get; set; } } public class Intoxication { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("DamageHealth")] - public double? DamageHealth { get; set; } + [JsonPropertyName("DamageHealth")] + public double? DamageHealth { get; set; } - [JsonPropertyName("HealthLoopTime")] - public double? HealthLoopTime { get; set; } + [JsonPropertyName("HealthLoopTime")] + public double? HealthLoopTime { get; set; } - [JsonPropertyName("OfflineDurationMin")] - public double? OfflineDurationMin { get; set; } + [JsonPropertyName("OfflineDurationMin")] + public double? OfflineDurationMin { get; set; } - [JsonPropertyName("OfflineDurationMax")] - public double? OfflineDurationMax { get; set; } + [JsonPropertyName("OfflineDurationMax")] + public double? OfflineDurationMax { get; set; } - [JsonPropertyName("RemovedAfterDeath")] - public bool? RemovedAfterDeath { get; set; } + [JsonPropertyName("RemovedAfterDeath")] + public bool? RemovedAfterDeath { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } - [JsonPropertyName("RemovePrice")] - public double? RemovePrice { get; set; } + [JsonPropertyName("RemovePrice")] + public double? RemovePrice { get; set; } } public class Regeneration { - [JsonPropertyName("LoopTime")] - public double? LoopTime { get; set; } + [JsonPropertyName("LoopTime")] + public double? LoopTime { get; set; } - [JsonPropertyName("MinimumHealthPercentage")] - public double? MinimumHealthPercentage { get; set; } + [JsonPropertyName("MinimumHealthPercentage")] + public double? MinimumHealthPercentage { get; set; } - [JsonPropertyName("Energy")] - public double? Energy { get; set; } + [JsonPropertyName("Energy")] + public double? Energy { get; set; } - [JsonPropertyName("Hydration")] - public double? Hydration { get; set; } + [JsonPropertyName("Hydration")] + public double? Hydration { get; set; } - [JsonPropertyName("BodyHealth")] - public BodyHealth? BodyHealth { get; set; } + [JsonPropertyName("BodyHealth")] + public BodyHealth? BodyHealth { get; set; } - [JsonPropertyName("Influences")] - public Influences? Influences { get; set; } + [JsonPropertyName("Influences")] + public Influences? Influences { get; set; } } public class BodyHealth { - [JsonPropertyName("Head")] - public BodyHealthValue? Head { get; set; } + [JsonPropertyName("Head")] + public BodyHealthValue? Head { get; set; } - [JsonPropertyName("Chest")] - public BodyHealthValue? Chest { get; set; } + [JsonPropertyName("Chest")] + public BodyHealthValue? Chest { get; set; } - [JsonPropertyName("Stomach")] - public BodyHealthValue? Stomach { get; set; } + [JsonPropertyName("Stomach")] + public BodyHealthValue? Stomach { get; set; } - [JsonPropertyName("LeftArm")] - public BodyHealthValue? LeftArm { get; set; } + [JsonPropertyName("LeftArm")] + public BodyHealthValue? LeftArm { get; set; } - [JsonPropertyName("RightArm")] - public BodyHealthValue? RightArm { get; set; } + [JsonPropertyName("RightArm")] + public BodyHealthValue? RightArm { get; set; } - [JsonPropertyName("LeftLeg")] - public BodyHealthValue? LeftLeg { get; set; } + [JsonPropertyName("LeftLeg")] + public BodyHealthValue? LeftLeg { get; set; } - [JsonPropertyName("RightLeg")] - public BodyHealthValue? RightLeg { get; set; } + [JsonPropertyName("RightLeg")] + public BodyHealthValue? RightLeg { get; set; } } public class BodyHealthValue { - [JsonPropertyName("Value")] - public double? Value { get; set; } + [JsonPropertyName("Value")] + public double? Value { get; set; } } public class Influences { - [JsonPropertyName("LightBleeding")] - public Influence? LightBleeding { get; set; } + [JsonPropertyName("LightBleeding")] + public Influence? LightBleeding { get; set; } - [JsonPropertyName("HeavyBleeding")] - public Influence? HeavyBleeding { get; set; } + [JsonPropertyName("HeavyBleeding")] + public Influence? HeavyBleeding { get; set; } - [JsonPropertyName("Fracture")] - public Influence? Fracture { get; set; } + [JsonPropertyName("Fracture")] + public Influence? Fracture { get; set; } - [JsonPropertyName("RadExposure")] - public Influence? RadExposure { get; set; } + [JsonPropertyName("RadExposure")] + public Influence? RadExposure { get; set; } - [JsonPropertyName("Intoxication")] - public Influence? Intoxication { get; set; } + [JsonPropertyName("Intoxication")] + public Influence? Intoxication { get; set; } } public class Influence { - [JsonPropertyName("HealthSlowDownPercentage")] - public double? HealthSlowDownPercentage { get; set; } + [JsonPropertyName("HealthSlowDownPercentage")] + public double? HealthSlowDownPercentage { get; set; } - [JsonPropertyName("EnergySlowDownPercentage")] - public double? EnergySlowDownPercentage { get; set; } + [JsonPropertyName("EnergySlowDownPercentage")] + public double? EnergySlowDownPercentage { get; set; } - [JsonPropertyName("HydrationSlowDownPercentage")] - public double? HydrationSlowDownPercentage { get; set; } + [JsonPropertyName("HydrationSlowDownPercentage")] + public double? HydrationSlowDownPercentage { get; set; } } public class Wound { - [JsonPropertyName("WorkingTime")] - public double? WorkingTime { get; set; } + [JsonPropertyName("WorkingTime")] + public double? WorkingTime { get; set; } - [JsonPropertyName("ThresholdMin")] - public double? ThresholdMin { get; set; } + [JsonPropertyName("ThresholdMin")] + public double? ThresholdMin { get; set; } - [JsonPropertyName("ThresholdMax")] - public double? ThresholdMax { get; set; } + [JsonPropertyName("ThresholdMax")] + public double? ThresholdMax { get; set; } } public class Berserk { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("WorkingTime")] - public double? WorkingTime { get; set; } + [JsonPropertyName("WorkingTime")] + public double? WorkingTime { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } } public class Flash { - [JsonPropertyName("Dummy")] - public double? Dummy { get; set; } + [JsonPropertyName("Dummy")] + public double? Dummy { get; set; } } public class MedEffect { - [JsonPropertyName("LoopTime")] - public double? LoopTime { get; set; } + [JsonPropertyName("LoopTime")] + public double? LoopTime { get; set; } - [JsonPropertyName("StartDelay")] - public double? StartDelay { get; set; } + [JsonPropertyName("StartDelay")] + public double? StartDelay { get; set; } - [JsonPropertyName("DrinkStartDelay")] - public double? DrinkStartDelay { get; set; } + [JsonPropertyName("DrinkStartDelay")] + public double? DrinkStartDelay { get; set; } - [JsonPropertyName("FoodStartDelay")] - public double? FoodStartDelay { get; set; } + [JsonPropertyName("FoodStartDelay")] + public double? FoodStartDelay { get; set; } - [JsonPropertyName("DrugsStartDelay")] - public double? DrugsStartDelay { get; set; } + [JsonPropertyName("DrugsStartDelay")] + public double? DrugsStartDelay { get; set; } - [JsonPropertyName("MedKitStartDelay")] - public double? MedKitStartDelay { get; set; } + [JsonPropertyName("MedKitStartDelay")] + public double? MedKitStartDelay { get; set; } - [JsonPropertyName("MedicalStartDelay")] - public double? MedicalStartDelay { get; set; } + [JsonPropertyName("MedicalStartDelay")] + public double? MedicalStartDelay { get; set; } - [JsonPropertyName("StimulatorStartDelay")] - public double? StimulatorStartDelay { get; set; } + [JsonPropertyName("StimulatorStartDelay")] + public double? StimulatorStartDelay { get; set; } } public class Pain { - [JsonPropertyName("TremorDelay")] - public double? TremorDelay { get; set; } + [JsonPropertyName("TremorDelay")] + public double? TremorDelay { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } } public class PainKiller { - public double? Dummy { get; set; } + public double? Dummy { get; set; } } public class SandingScreen { - public double? Dummy { get; set; } + public double? Dummy { get; set; } } public class MusclePainEffect { - public double? GymEffectivity { get; set; } - public double? OfflineDurationMax { get; set; } - public double? OfflineDurationMin { get; set; } - public double? TraumaChance { get; set; } + public double? GymEffectivity { get; set; } + public double? OfflineDurationMax { get; set; } + public double? OfflineDurationMin { get; set; } + public double? TraumaChance { get; set; } } public class Stimulator { - public double? BuffLoopTime { get; set; } - public Dictionary>? Buffs { get; set; } + public double? BuffLoopTime { get; set; } + public Dictionary>? Buffs { get; set; } } public class Buff { - [JsonPropertyName("BuffType")] - public string? BuffType { get; set; } + [JsonPropertyName("BuffType")] + public string? BuffType { get; set; } - [JsonPropertyName("Chance")] - public double? Chance { get; set; } + [JsonPropertyName("Chance")] + public double? Chance { get; set; } - [JsonPropertyName("Delay")] - public double? Delay { get; set; } + [JsonPropertyName("Delay")] + public double? Delay { get; set; } - [JsonPropertyName("Duration")] - public double? Duration { get; set; } + [JsonPropertyName("Duration")] + public double? Duration { get; set; } - [JsonPropertyName("Value")] - public double? Value { get; set; } + [JsonPropertyName("Value")] + public double? Value { get; set; } - [JsonPropertyName("AbsoluteValue")] - public bool? AbsoluteValue { get; set; } + [JsonPropertyName("AbsoluteValue")] + public bool? AbsoluteValue { get; set; } - [JsonPropertyName("SkillName")] - public string? SkillName { get; set; } + [JsonPropertyName("SkillName")] + public string? SkillName { get; set; } - public List? AppliesTo { get; set; } + public List? AppliesTo { get; set; } } public class Tremor { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } } public class ChronicStaminaFatigue { - [JsonPropertyName("EnergyRate")] - public double? EnergyRate { get; set; } + [JsonPropertyName("EnergyRate")] + public double? EnergyRate { get; set; } - [JsonPropertyName("WorkingTime")] - public double? WorkingTime { get; set; } + [JsonPropertyName("WorkingTime")] + public double? WorkingTime { get; set; } - [JsonPropertyName("TicksEvery")] - public double? TicksEvery { get; set; } + [JsonPropertyName("TicksEvery")] + public double? TicksEvery { get; set; } - [JsonPropertyName("EnergyRatePerStack")] - public double? EnergyRatePerStack { get; set; } + [JsonPropertyName("EnergyRatePerStack")] + public double? EnergyRatePerStack { get; set; } } public class Fracture { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } - [JsonPropertyName("OfflineDurationMin")] - public double? OfflineDurationMin { get; set; } + [JsonPropertyName("OfflineDurationMin")] + public double? OfflineDurationMin { get; set; } - [JsonPropertyName("OfflineDurationMax")] - public double? OfflineDurationMax { get; set; } + [JsonPropertyName("OfflineDurationMax")] + public double? OfflineDurationMax { get; set; } - [JsonPropertyName("RemovePrice")] - public double? RemovePrice { get; set; } + [JsonPropertyName("RemovePrice")] + public double? RemovePrice { get; set; } - [JsonPropertyName("RemovedAfterDeath")] - public bool? RemovedAfterDeath { get; set; } + [JsonPropertyName("RemovedAfterDeath")] + public bool? RemovedAfterDeath { get; set; } - [JsonPropertyName("BulletHitProbability")] - public Probability? BulletHitProbability { get; set; } + [JsonPropertyName("BulletHitProbability")] + public Probability? BulletHitProbability { get; set; } - [JsonPropertyName("FallingProbability")] - public Probability? FallingProbability { get; set; } + [JsonPropertyName("FallingProbability")] + public Probability? FallingProbability { get; set; } } public class HeavyBleeding { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("DamageEnergy")] - public double? DamageEnergy { get; set; } + [JsonPropertyName("DamageEnergy")] + public double? DamageEnergy { get; set; } - [JsonPropertyName("DamageHealth")] - public double? DamageHealth { get; set; } + [JsonPropertyName("DamageHealth")] + public double? DamageHealth { get; set; } - [JsonPropertyName("EnergyLoopTime")] - public double? EnergyLoopTime { get; set; } + [JsonPropertyName("EnergyLoopTime")] + public double? EnergyLoopTime { get; set; } - [JsonPropertyName("HealthLoopTime")] - public double? HealthLoopTime { get; set; } + [JsonPropertyName("HealthLoopTime")] + public double? HealthLoopTime { get; set; } - [JsonPropertyName("DamageHealthDehydrated")] - public double? DamageHealthDehydrated { get; set; } + [JsonPropertyName("DamageHealthDehydrated")] + public double? DamageHealthDehydrated { get; set; } - [JsonPropertyName("HealthLoopTimeDehydrated")] - public double? HealthLoopTimeDehydrated { get; set; } + [JsonPropertyName("HealthLoopTimeDehydrated")] + public double? HealthLoopTimeDehydrated { get; set; } - [JsonPropertyName("LifeTimeDehydrated")] - public double? LifeTimeDehydrated { get; set; } + [JsonPropertyName("LifeTimeDehydrated")] + public double? LifeTimeDehydrated { get; set; } - [JsonPropertyName("EliteVitalityDuration")] - public double? EliteVitalityDuration { get; set; } + [JsonPropertyName("EliteVitalityDuration")] + public double? EliteVitalityDuration { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } - [JsonPropertyName("OfflineDurationMin")] - public double? OfflineDurationMin { get; set; } + [JsonPropertyName("OfflineDurationMin")] + public double? OfflineDurationMin { get; set; } - [JsonPropertyName("OfflineDurationMax")] - public double? OfflineDurationMax { get; set; } + [JsonPropertyName("OfflineDurationMax")] + public double? OfflineDurationMax { get; set; } - [JsonPropertyName("RemovePrice")] - public double? RemovePrice { get; set; } + [JsonPropertyName("RemovePrice")] + public double? RemovePrice { get; set; } - [JsonPropertyName("RemovedAfterDeath")] - public bool? RemovedAfterDeath { get; set; } + [JsonPropertyName("RemovedAfterDeath")] + public bool? RemovedAfterDeath { get; set; } - [JsonPropertyName("Probability")] - public Probability? Probability { get; set; } + [JsonPropertyName("Probability")] + public Probability? Probability { get; set; } } public class Probability { - [JsonPropertyName("FunctionType")] - public string? FunctionType { get; set; } + [JsonPropertyName("FunctionType")] + public string? FunctionType { get; set; } - [JsonPropertyName("K")] - public double? K { get; set; } + [JsonPropertyName("K")] + public double? K { get; set; } - [JsonPropertyName("B")] - public double? B { get; set; } + [JsonPropertyName("B")] + public double? B { get; set; } - [JsonPropertyName("Threshold")] - public double? Threshold { get; set; } + [JsonPropertyName("Threshold")] + public double? Threshold { get; set; } } public class LightBleeding { - [JsonPropertyName("DefaultDelay")] - public double? DefaultDelay { get; set; } + [JsonPropertyName("DefaultDelay")] + public double? DefaultDelay { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("DamageEnergy")] - public double? DamageEnergy { get; set; } + [JsonPropertyName("DamageEnergy")] + public double? DamageEnergy { get; set; } - [JsonPropertyName("DamageHealth")] - public double? DamageHealth { get; set; } + [JsonPropertyName("DamageHealth")] + public double? DamageHealth { get; set; } - [JsonPropertyName("EnergyLoopTime")] - public double? EnergyLoopTime { get; set; } + [JsonPropertyName("EnergyLoopTime")] + public double? EnergyLoopTime { get; set; } - [JsonPropertyName("HealthLoopTime")] - public double? HealthLoopTime { get; set; } + [JsonPropertyName("HealthLoopTime")] + public double? HealthLoopTime { get; set; } - [JsonPropertyName("DamageHealthDehydrated")] - public double? DamageHealthDehydrated { get; set; } + [JsonPropertyName("DamageHealthDehydrated")] + public double? DamageHealthDehydrated { get; set; } - [JsonPropertyName("HealthLoopTimeDehydrated")] - public double? HealthLoopTimeDehydrated { get; set; } + [JsonPropertyName("HealthLoopTimeDehydrated")] + public double? HealthLoopTimeDehydrated { get; set; } - [JsonPropertyName("LifeTimeDehydrated")] - public double? LifeTimeDehydrated { get; set; } + [JsonPropertyName("LifeTimeDehydrated")] + public double? LifeTimeDehydrated { get; set; } - [JsonPropertyName("EliteVitalityDuration")] - public double? EliteVitalityDuration { get; set; } + [JsonPropertyName("EliteVitalityDuration")] + public double? EliteVitalityDuration { get; set; } - [JsonPropertyName("HealExperience")] - public double? HealExperience { get; set; } + [JsonPropertyName("HealExperience")] + public double? HealExperience { get; set; } - [JsonPropertyName("OfflineDurationMin")] - public double? OfflineDurationMin { get; set; } + [JsonPropertyName("OfflineDurationMin")] + public double? OfflineDurationMin { get; set; } - [JsonPropertyName("OfflineDurationMax")] - public double? OfflineDurationMax { get; set; } + [JsonPropertyName("OfflineDurationMax")] + public double? OfflineDurationMax { get; set; } - [JsonPropertyName("RemovePrice")] - public double? RemovePrice { get; set; } + [JsonPropertyName("RemovePrice")] + public double? RemovePrice { get; set; } - [JsonPropertyName("RemovedAfterDeath")] - public bool? RemovedAfterDeath { get; set; } + [JsonPropertyName("RemovedAfterDeath")] + public bool? RemovedAfterDeath { get; set; } - [JsonPropertyName("Probability")] - public Probability? Probability { get; set; } + [JsonPropertyName("Probability")] + public Probability? Probability { get; set; } } public class BodyTemperature { - [JsonPropertyName("DefaultBuildUpTime")] - public double? DefaultBuildUpTime { get; set; } + [JsonPropertyName("DefaultBuildUpTime")] + public double? DefaultBuildUpTime { get; set; } - [JsonPropertyName("DefaultResidueTime")] - public double? DefaultResidueTime { get; set; } + [JsonPropertyName("DefaultResidueTime")] + public double? DefaultResidueTime { get; set; } - [JsonPropertyName("LoopTime")] - public double? LoopTime { get; set; } + [JsonPropertyName("LoopTime")] + public double? LoopTime { get; set; } } public class HealPrice { - [JsonPropertyName("HealthPointPrice")] - public double? HealthPointPrice { get; set; } + [JsonPropertyName("HealthPointPrice")] + public double? HealthPointPrice { get; set; } - [JsonPropertyName("HydrationPointPrice")] - public double? HydrationPointPrice { get; set; } + [JsonPropertyName("HydrationPointPrice")] + public double? HydrationPointPrice { get; set; } - [JsonPropertyName("EnergyPointPrice")] - public double? EnergyPointPrice { get; set; } + [JsonPropertyName("EnergyPointPrice")] + public double? EnergyPointPrice { get; set; } - [JsonPropertyName("TrialLevels")] - public double? TrialLevels { get; set; } + [JsonPropertyName("TrialLevels")] + public double? TrialLevels { get; set; } - [JsonPropertyName("TrialRaids")] - public double? TrialRaids { get; set; } + [JsonPropertyName("TrialRaids")] + public double? TrialRaids { get; set; } } public class ProfileHealthSettings { - [JsonPropertyName("BodyPartsSettings")] - public BodyPartsSettings? BodyPartsSettings { get; set; } + [JsonPropertyName("BodyPartsSettings")] + public BodyPartsSettings? BodyPartsSettings { get; set; } - [JsonPropertyName("HealthFactorsSettings")] - public HealthFactorsSettings? HealthFactorsSettings { get; set; } + [JsonPropertyName("HealthFactorsSettings")] + public HealthFactorsSettings? HealthFactorsSettings { get; set; } - [JsonPropertyName("DefaultStimulatorBuff")] - public string? DefaultStimulatorBuff { get; set; } + [JsonPropertyName("DefaultStimulatorBuff")] + public string? DefaultStimulatorBuff { get; set; } } public class BodyPartsSettings { - [JsonPropertyName("Head")] - public BodyPartsSetting? Head { get; set; } + [JsonPropertyName("Head")] + public BodyPartsSetting? Head { get; set; } - [JsonPropertyName("Chest")] - public BodyPartsSetting? Chest { get; set; } + [JsonPropertyName("Chest")] + public BodyPartsSetting? Chest { get; set; } - [JsonPropertyName("Stomach")] - public BodyPartsSetting? Stomach { get; set; } + [JsonPropertyName("Stomach")] + public BodyPartsSetting? Stomach { get; set; } - [JsonPropertyName("LeftArm")] - public BodyPartsSetting? LeftArm { get; set; } + [JsonPropertyName("LeftArm")] + public BodyPartsSetting? LeftArm { get; set; } - [JsonPropertyName("RightArm")] - public BodyPartsSetting? RightArm { get; set; } + [JsonPropertyName("RightArm")] + public BodyPartsSetting? RightArm { get; set; } - [JsonPropertyName("LeftLeg")] - public BodyPartsSetting? LeftLeg { get; set; } + [JsonPropertyName("LeftLeg")] + public BodyPartsSetting? LeftLeg { get; set; } - [JsonPropertyName("RightLeg")] - public BodyPartsSetting? RightLeg { get; set; } + [JsonPropertyName("RightLeg")] + public BodyPartsSetting? RightLeg { get; set; } } public class BodyPartsSetting { - [JsonPropertyName("Minimum")] - public double? Minimum { get; set; } + [JsonPropertyName("Minimum")] + public double? Minimum { get; set; } - [JsonPropertyName("Maximum")] - public double? Maximum { get; set; } + [JsonPropertyName("Maximum")] + public double? Maximum { get; set; } - [JsonPropertyName("Default")] - public double? Default { get; set; } + [JsonPropertyName("Default")] + public double? Default { get; set; } - [JsonPropertyName("EnvironmentDamageMultiplier")] - public float? EnvironmentDamageMultiplier { get; set; } + [JsonPropertyName("EnvironmentDamageMultiplier")] + public float? EnvironmentDamageMultiplier { get; set; } - [JsonPropertyName("OverDamageReceivedMultiplier")] - public float? OverDamageReceivedMultiplier { get; set; } + [JsonPropertyName("OverDamageReceivedMultiplier")] + public float? OverDamageReceivedMultiplier { get; set; } } public class HealthFactorsSettings { - [JsonPropertyName("Energy")] - public HealthFactorSetting? Energy { get; set; } + [JsonPropertyName("Energy")] + public HealthFactorSetting? Energy { get; set; } - [JsonPropertyName("Hydration")] - public HealthFactorSetting? Hydration { get; set; } + [JsonPropertyName("Hydration")] + public HealthFactorSetting? Hydration { get; set; } - [JsonPropertyName("Temperature")] - public HealthFactorSetting? Temperature { get; set; } + [JsonPropertyName("Temperature")] + public HealthFactorSetting? Temperature { get; set; } - [JsonPropertyName("Poisoning")] - public HealthFactorSetting? Poisoning { get; set; } + [JsonPropertyName("Poisoning")] + public HealthFactorSetting? Poisoning { get; set; } - [JsonPropertyName("Radiation")] - public HealthFactorSetting? Radiation { get; set; } + [JsonPropertyName("Radiation")] + public HealthFactorSetting? Radiation { get; set; } } public class HealthFactorSetting { - [JsonPropertyName("Minimum")] - public double? Minimum { get; set; } + [JsonPropertyName("Minimum")] + public double? Minimum { get; set; } - [JsonPropertyName("Maximum")] - public double? Maximum { get; set; } + [JsonPropertyName("Maximum")] + public double? Maximum { get; set; } - [JsonPropertyName("Default")] - public double? Default { get; set; } + [JsonPropertyName("Default")] + public double? Default { get; set; } } public class Rating { - [JsonPropertyName("levelRequired")] - public double? LevelRequired { get; set; } + [JsonPropertyName("levelRequired")] + public double? LevelRequired { get; set; } - [JsonPropertyName("limit")] - public double? Limit { get; set; } + [JsonPropertyName("limit")] + public double? Limit { get; set; } - [JsonPropertyName("categories")] - public Categories? Categories { get; set; } + [JsonPropertyName("categories")] + public Categories? Categories { get; set; } } public class Categories { - [JsonPropertyName("experience")] - public bool? Experience { get; set; } + [JsonPropertyName("experience")] + public bool? Experience { get; set; } - [JsonPropertyName("kd")] - public bool? Kd { get; set; } + [JsonPropertyName("kd")] + public bool? Kd { get; set; } - [JsonPropertyName("surviveRatio")] - public bool? SurviveRatio { get; set; } + [JsonPropertyName("surviveRatio")] + public bool? SurviveRatio { get; set; } - [JsonPropertyName("avgEarnings")] - public bool? AvgEarnings { get; set; } + [JsonPropertyName("avgEarnings")] + public bool? AvgEarnings { get; set; } - [JsonPropertyName("pmcKills")] - public bool? PmcKills { get; set; } + [JsonPropertyName("pmcKills")] + public bool? PmcKills { get; set; } - [JsonPropertyName("raidCount")] - public bool? RaidCount { get; set; } + [JsonPropertyName("raidCount")] + public bool? RaidCount { get; set; } - [JsonPropertyName("longestShot")] - public bool? LongestShot { get; set; } + [JsonPropertyName("longestShot")] + public bool? LongestShot { get; set; } - [JsonPropertyName("timeOnline")] - public bool? TimeOnline { get; set; } + [JsonPropertyName("timeOnline")] + public bool? TimeOnline { get; set; } - [JsonPropertyName("inventoryFullCost")] - public bool? InventoryFullCost { get; set; } + [JsonPropertyName("inventoryFullCost")] + public bool? InventoryFullCost { get; set; } - [JsonPropertyName("ragFairStanding")] - public bool? RagFairStanding { get; set; } + [JsonPropertyName("ragFairStanding")] + public bool? RagFairStanding { get; set; } } public class Tournament { - [JsonPropertyName("categories")] - public TournamentCategories? Categories { get; set; } + [JsonPropertyName("categories")] + public TournamentCategories? Categories { get; set; } - [JsonPropertyName("limit")] - public double? Limit { get; set; } + [JsonPropertyName("limit")] + public double? Limit { get; set; } - [JsonPropertyName("levelRequired")] - public double? LevelRequired { get; set; } + [JsonPropertyName("levelRequired")] + public double? LevelRequired { get; set; } } public class TournamentCategories { - [JsonPropertyName("dogtags")] - public bool? Dogtags { get; set; } + [JsonPropertyName("dogtags")] + public bool? Dogtags { get; set; } } public class RagFair { - [JsonPropertyName("enabled")] - public bool? Enabled { get; set; } + [JsonPropertyName("enabled")] + public bool? Enabled { get; set; } - [JsonPropertyName("priceStabilizerEnabled")] - public bool? PriceStabilizerEnabled { get; set; } + [JsonPropertyName("priceStabilizerEnabled")] + public bool? PriceStabilizerEnabled { get; set; } - [JsonPropertyName("includePveTraderSales")] - public bool? IncludePveTraderSales { get; set; } + [JsonPropertyName("includePveTraderSales")] + public bool? IncludePveTraderSales { get; set; } - [JsonPropertyName("priceStabilizerStartIntervalInHours")] - public double? PriceStabilizerStartIntervalInHours { get; set; } + [JsonPropertyName("priceStabilizerStartIntervalInHours")] + public double? PriceStabilizerStartIntervalInHours { get; set; } - [JsonPropertyName("minUserLevel")] - public double? MinUserLevel { get; set; } + [JsonPropertyName("minUserLevel")] + public double? MinUserLevel { get; set; } - [JsonPropertyName("communityTax")] - public float? CommunityTax { get; set; } + [JsonPropertyName("communityTax")] + public float? CommunityTax { get; set; } - [JsonPropertyName("communityItemTax")] - public float? CommunityItemTax { get; set; } + [JsonPropertyName("communityItemTax")] + public float? CommunityItemTax { get; set; } - [JsonPropertyName("communityRequirementTax")] - public float? CommunityRequirementTax { get; set; } + [JsonPropertyName("communityRequirementTax")] + public float? CommunityRequirementTax { get; set; } - [JsonPropertyName("offerPriorityCost")] - public float? OfferPriorityCost { get; set; } + [JsonPropertyName("offerPriorityCost")] + public float? OfferPriorityCost { get; set; } - [JsonPropertyName("offerDurationTimeInHour")] - public double? OfferDurationTimeInHour { get; set; } + [JsonPropertyName("offerDurationTimeInHour")] + public double? OfferDurationTimeInHour { get; set; } - [JsonPropertyName("offerDurationTimeInHourAfterRemove")] - public double? OfferDurationTimeInHourAfterRemove { get; set; } + [JsonPropertyName("offerDurationTimeInHourAfterRemove")] + public double? OfferDurationTimeInHourAfterRemove { get; set; } - [JsonPropertyName("priorityTimeModifier")] - public float? PriorityTimeModifier { get; set; } + [JsonPropertyName("priorityTimeModifier")] + public float? PriorityTimeModifier { get; set; } - [JsonPropertyName("maxRenewOfferTimeInHour")] - public double? MaxRenewOfferTimeInHour { get; set; } + [JsonPropertyName("maxRenewOfferTimeInHour")] + public double? MaxRenewOfferTimeInHour { get; set; } - [JsonPropertyName("renewPricePerHour")] - public float? RenewPricePerHour { get; set; } + [JsonPropertyName("renewPricePerHour")] + public float? RenewPricePerHour { get; set; } - [JsonPropertyName("maxActiveOfferCount")] - public List? MaxActiveOfferCount { get; set; } + [JsonPropertyName("maxActiveOfferCount")] + public List? MaxActiveOfferCount { get; set; } - [JsonPropertyName("balancerRemovePriceCoefficient")] - public float? BalancerRemovePriceCoefficient { get; set; } + [JsonPropertyName("balancerRemovePriceCoefficient")] + public float? BalancerRemovePriceCoefficient { get; set; } - [JsonPropertyName("balancerMinPriceCount")] - public float? BalancerMinPriceCount { get; set; } + [JsonPropertyName("balancerMinPriceCount")] + public float? BalancerMinPriceCount { get; set; } - [JsonPropertyName("balancerAveragePriceCoefficient")] - public float? BalancerAveragePriceCoefficient { get; set; } + [JsonPropertyName("balancerAveragePriceCoefficient")] + public float? BalancerAveragePriceCoefficient { get; set; } - [JsonPropertyName("delaySinceOfferAdd")] - public float? DelaySinceOfferAdd { get; set; } + [JsonPropertyName("delaySinceOfferAdd")] + public float? DelaySinceOfferAdd { get; set; } - [JsonPropertyName("uniqueBuyerTimeoutInDays")] - public double? UniqueBuyerTimeoutInDays { get; set; } + [JsonPropertyName("uniqueBuyerTimeoutInDays")] + public double? UniqueBuyerTimeoutInDays { get; set; } - [JsonPropertyName("userRatingChangeFrequencyMultiplayer")] - public float? UserRatingChangeFrequencyMultiplayer { get; set; } + [JsonPropertyName("userRatingChangeFrequencyMultiplayer")] + public float? UserRatingChangeFrequencyMultiplayer { get; set; } - [JsonPropertyName("RagfairTurnOnTimestamp")] - public long? RagfairTurnOnTimestamp { get; set; } + [JsonPropertyName("RagfairTurnOnTimestamp")] + public long? RagfairTurnOnTimestamp { get; set; } - [JsonPropertyName("ratingSumForIncrease")] - public float? RatingSumForIncrease { get; set; } + [JsonPropertyName("ratingSumForIncrease")] + public float? RatingSumForIncrease { get; set; } - [JsonPropertyName("ratingIncreaseCount")] - public double? RatingIncreaseCount { get; set; } + [JsonPropertyName("ratingIncreaseCount")] + public double? RatingIncreaseCount { get; set; } - [JsonPropertyName("ratingSumForDecrease")] - public float? RatingSumForDecrease { get; set; } + [JsonPropertyName("ratingSumForDecrease")] + public float? RatingSumForDecrease { get; set; } - [JsonPropertyName("ratingDecreaseCount")] - public double? RatingDecreaseCount { get; set; } + [JsonPropertyName("ratingDecreaseCount")] + public double? RatingDecreaseCount { get; set; } - [JsonPropertyName("maxSumForIncreaseRatingPerOneSale")] - public float? MaxSumForIncreaseRatingPerOneSale { get; set; } + [JsonPropertyName("maxSumForIncreaseRatingPerOneSale")] + public float? MaxSumForIncreaseRatingPerOneSale { get; set; } - [JsonPropertyName("maxSumForDecreaseRatingPerOneSale")] - public float? MaxSumForDecreaseRatingPerOneSale { get; set; } + [JsonPropertyName("maxSumForDecreaseRatingPerOneSale")] + public float? MaxSumForDecreaseRatingPerOneSale { get; set; } - [JsonPropertyName("maxSumForRarity")] - public MaxSumForRarity? MaxSumForRarity { get; set; } + [JsonPropertyName("maxSumForRarity")] + public MaxSumForRarity? MaxSumForRarity { get; set; } - [JsonPropertyName("ChangePriceCoef")] - public float? ChangePriceCoef { get; set; } + [JsonPropertyName("ChangePriceCoef")] + public float? ChangePriceCoef { get; set; } - [JsonPropertyName("ItemRestrictions")] - public List? ItemRestrictions { get; set; } + [JsonPropertyName("ItemRestrictions")] + public List? ItemRestrictions { get; set; } - [JsonPropertyName("balancerUserItemSaleCooldownEnabled")] - public bool? BalancerUserItemSaleCooldownEnabled { get; set; } + [JsonPropertyName("balancerUserItemSaleCooldownEnabled")] + public bool? BalancerUserItemSaleCooldownEnabled { get; set; } - [JsonPropertyName("balancerUserItemSaleCooldown")] - public float? BalancerUserItemSaleCooldown { get; set; } + [JsonPropertyName("balancerUserItemSaleCooldown")] + public float? BalancerUserItemSaleCooldown { get; set; } - [JsonPropertyName("youSellOfferMaxStorageTimeInHour")] - public double? YouSellOfferMaxStorageTimeInHour { get; set; } + [JsonPropertyName("youSellOfferMaxStorageTimeInHour")] + public double? YouSellOfferMaxStorageTimeInHour { get; set; } - [JsonPropertyName("yourOfferDidNotSellMaxStorageTimeInHour")] - public double? YourOfferDidNotSellMaxStorageTimeInHour { get; set; } + [JsonPropertyName("yourOfferDidNotSellMaxStorageTimeInHour")] + public double? YourOfferDidNotSellMaxStorageTimeInHour { get; set; } - [JsonPropertyName("isOnlyFoundInRaidAllowed")] - public bool? IsOnlyFoundInRaidAllowed { get; set; } + [JsonPropertyName("isOnlyFoundInRaidAllowed")] + public bool? IsOnlyFoundInRaidAllowed { get; set; } - [JsonPropertyName("sellInOnePiece")] - public double? SellInOnePiece { get; set; } + [JsonPropertyName("sellInOnePiece")] + public double? SellInOnePiece { get; set; } } public class ItemGlobalRestrictions { - [JsonPropertyName("MaxFlea")] - public double? MaxFlea { get; set; } + [JsonPropertyName("MaxFlea")] + public double? MaxFlea { get; set; } - [JsonPropertyName("MaxFleaStacked")] - public double? MaxFleaStacked { get; set; } + [JsonPropertyName("MaxFleaStacked")] + public double? MaxFleaStacked { get; set; } - [JsonPropertyName("TemplateId")] - public string? TemplateId { get; set; } + [JsonPropertyName("TemplateId")] + public string? TemplateId { get; set; } } public class MaxActiveOfferCount { - [JsonPropertyName("from")] - public double? From { get; set; } + [JsonPropertyName("from")] + public double? From { get; set; } - [JsonPropertyName("to")] - public double? To { get; set; } + [JsonPropertyName("to")] + public double? To { get; set; } - [JsonPropertyName("count")] - public double? Count { get; set; } + [JsonPropertyName("count")] + public double? Count { get; set; } - [JsonPropertyName("countForSpecialEditions")] - public double? CountForSpecialEditions { get; set; } + [JsonPropertyName("countForSpecialEditions")] + public double? CountForSpecialEditions { get; set; } } public class MaxSumForRarity { - [JsonPropertyName("Common")] - public RarityMaxSum? Common { get; set; } + [JsonPropertyName("Common")] + public RarityMaxSum? Common { get; set; } - [JsonPropertyName("Rare")] - public RarityMaxSum? Rare { get; set; } + [JsonPropertyName("Rare")] + public RarityMaxSum? Rare { get; set; } - [JsonPropertyName("Superrare")] - public RarityMaxSum? Superrare { get; set; } + [JsonPropertyName("Superrare")] + public RarityMaxSum? Superrare { get; set; } - [JsonPropertyName("Not_exist")] - public RarityMaxSum? NotExist { get; set; } + [JsonPropertyName("Not_exist")] + public RarityMaxSum? NotExist { get; set; } } public class RarityMaxSum { - [JsonPropertyName("value")] - public double? Value { get; set; } + [JsonPropertyName("value")] + public double? Value { get; set; } } public class Handbook { - [JsonPropertyName("defaultCategory")] - public string? DefaultCategory { get; set; } + [JsonPropertyName("defaultCategory")] + public string? DefaultCategory { get; set; } } public class Stamina { - [JsonPropertyName("Capacity")] - public double? Capacity { get; set; } + [JsonPropertyName("Capacity")] + public double? Capacity { get; set; } - [JsonPropertyName("SprintDrainRate")] - public double? SprintDrainRate { get; set; } + [JsonPropertyName("SprintDrainRate")] + public double? SprintDrainRate { get; set; } - [JsonPropertyName("BaseRestorationRate")] - public double? BaseRestorationRate { get; set; } + [JsonPropertyName("BaseRestorationRate")] + public double? BaseRestorationRate { get; set; } - [JsonPropertyName("BipodAimDrainRateMultiplier")] - public double? BipodAimDrainRateMultiplier { get; set; } + [JsonPropertyName("BipodAimDrainRateMultiplier")] + public double? BipodAimDrainRateMultiplier { get; set; } - [JsonPropertyName("JumpConsumption")] - public double? JumpConsumption { get; set; } + [JsonPropertyName("JumpConsumption")] + public double? JumpConsumption { get; set; } - [JsonPropertyName("MountingHorizontalAimDrainRateMultiplier")] - public double? MountingHorizontalAimDrainRateMultiplier { get; set; } + [JsonPropertyName("MountingHorizontalAimDrainRateMultiplier")] + public double? MountingHorizontalAimDrainRateMultiplier { get; set; } - [JsonPropertyName("MountingVerticalAimDrainRateMultiplier")] - public double? MountingVerticalAimDrainRateMultiplier { get; set; } + [JsonPropertyName("MountingVerticalAimDrainRateMultiplier")] + public double? MountingVerticalAimDrainRateMultiplier { get; set; } - [JsonPropertyName("GrenadeHighThrow")] - public double? GrenadeHighThrow { get; set; } + [JsonPropertyName("GrenadeHighThrow")] + public double? GrenadeHighThrow { get; set; } - [JsonPropertyName("GrenadeLowThrow")] - public double? GrenadeLowThrow { get; set; } + [JsonPropertyName("GrenadeLowThrow")] + public double? GrenadeLowThrow { get; set; } - [JsonPropertyName("AimDrainRate")] - public double? AimDrainRate { get; set; } + [JsonPropertyName("AimDrainRate")] + public double? AimDrainRate { get; set; } - [JsonPropertyName("AimRangeFinderDrainRate")] - public double? AimRangeFinderDrainRate { get; set; } + [JsonPropertyName("AimRangeFinderDrainRate")] + public double? AimRangeFinderDrainRate { get; set; } - [JsonPropertyName("OxygenCapacity")] - public double? OxygenCapacity { get; set; } + [JsonPropertyName("OxygenCapacity")] + public double? OxygenCapacity { get; set; } - [JsonPropertyName("OxygenRestoration")] - public double? OxygenRestoration { get; set; } + [JsonPropertyName("OxygenRestoration")] + public double? OxygenRestoration { get; set; } - [JsonPropertyName("WalkOverweightLimits")] - public XYZ? WalkOverweightLimits { get; set; } + [JsonPropertyName("WalkOverweightLimits")] + public XYZ? WalkOverweightLimits { get; set; } - [JsonPropertyName("BaseOverweightLimits")] - public XYZ? BaseOverweightLimits { get; set; } + [JsonPropertyName("BaseOverweightLimits")] + public XYZ? BaseOverweightLimits { get; set; } - [JsonPropertyName("SprintOverweightLimits")] - public XYZ? SprintOverweightLimits { get; set; } + [JsonPropertyName("SprintOverweightLimits")] + public XYZ? SprintOverweightLimits { get; set; } - [JsonPropertyName("WalkSpeedOverweightLimits")] - public XYZ? WalkSpeedOverweightLimits { get; set; } + [JsonPropertyName("WalkSpeedOverweightLimits")] + public XYZ? WalkSpeedOverweightLimits { get; set; } - [JsonPropertyName("CrouchConsumption")] - public XYZ? CrouchConsumption { get; set; } + [JsonPropertyName("CrouchConsumption")] + public XYZ? CrouchConsumption { get; set; } - [JsonPropertyName("WalkConsumption")] - public XYZ? WalkConsumption { get; set; } + [JsonPropertyName("WalkConsumption")] + public XYZ? WalkConsumption { get; set; } - [JsonPropertyName("StandupConsumption")] - public XYZ? StandupConsumption { get; set; } + [JsonPropertyName("StandupConsumption")] + public XYZ? StandupConsumption { get; set; } - [JsonPropertyName("TransitionSpeed")] - public XYZ? TransitionSpeed { get; set; } + [JsonPropertyName("TransitionSpeed")] + public XYZ? TransitionSpeed { get; set; } - [JsonPropertyName("SprintAccelerationLowerLimit")] - public double? SprintAccelerationLowerLimit { get; set; } + [JsonPropertyName("SprintAccelerationLowerLimit")] + public double? SprintAccelerationLowerLimit { get; set; } - [JsonPropertyName("SprintSpeedLowerLimit")] - public double? SprintSpeedLowerLimit { get; set; } + [JsonPropertyName("SprintSpeedLowerLimit")] + public double? SprintSpeedLowerLimit { get; set; } - [JsonPropertyName("SprintSensitivityLowerLimit")] - public double? SprintSensitivityLowerLimit { get; set; } + [JsonPropertyName("SprintSensitivityLowerLimit")] + public double? SprintSensitivityLowerLimit { get; set; } - [JsonPropertyName("AimConsumptionByPose")] - public XYZ? AimConsumptionByPose { get; set; } + [JsonPropertyName("AimConsumptionByPose")] + public XYZ? AimConsumptionByPose { get; set; } - [JsonPropertyName("RestorationMultiplierByPose")] - public XYZ? RestorationMultiplierByPose { get; set; } + [JsonPropertyName("RestorationMultiplierByPose")] + public XYZ? RestorationMultiplierByPose { get; set; } - [JsonPropertyName("OverweightConsumptionByPose")] - public XYZ? OverweightConsumptionByPose { get; set; } + [JsonPropertyName("OverweightConsumptionByPose")] + public XYZ? OverweightConsumptionByPose { get; set; } - [JsonPropertyName("AimingSpeedMultiplier")] - public double? AimingSpeedMultiplier { get; set; } + [JsonPropertyName("AimingSpeedMultiplier")] + public double? AimingSpeedMultiplier { get; set; } - [JsonPropertyName("WalkVisualEffectMultiplier")] - public double? WalkVisualEffectMultiplier { get; set; } + [JsonPropertyName("WalkVisualEffectMultiplier")] + public double? WalkVisualEffectMultiplier { get; set; } - [JsonPropertyName("WeaponFastSwitchConsumption")] - public double? WeaponFastSwitchConsumption { get; set; } + [JsonPropertyName("WeaponFastSwitchConsumption")] + public double? WeaponFastSwitchConsumption { get; set; } - [JsonPropertyName("HandsCapacity")] - public double? HandsCapacity { get; set; } + [JsonPropertyName("HandsCapacity")] + public double? HandsCapacity { get; set; } - [JsonPropertyName("HandsRestoration")] - public double? HandsRestoration { get; set; } + [JsonPropertyName("HandsRestoration")] + public double? HandsRestoration { get; set; } - [JsonPropertyName("ProneConsumption")] - public double? ProneConsumption { get; set; } + [JsonPropertyName("ProneConsumption")] + public double? ProneConsumption { get; set; } - [JsonPropertyName("BaseHoldBreathConsumption")] - public double? BaseHoldBreathConsumption { get; set; } + [JsonPropertyName("BaseHoldBreathConsumption")] + public double? BaseHoldBreathConsumption { get; set; } - [JsonPropertyName("SoundRadius")] - public XYZ? SoundRadius { get; set; } + [JsonPropertyName("SoundRadius")] + public XYZ? SoundRadius { get; set; } - [JsonPropertyName("ExhaustedMeleeSpeed")] - public double? ExhaustedMeleeSpeed { get; set; } + [JsonPropertyName("ExhaustedMeleeSpeed")] + public double? ExhaustedMeleeSpeed { get; set; } - [JsonPropertyName("FatigueRestorationRate")] - public double? FatigueRestorationRate { get; set; } + [JsonPropertyName("FatigueRestorationRate")] + public double? FatigueRestorationRate { get; set; } - [JsonPropertyName("FatigueAmountToCreateEffect")] - public double? FatigueAmountToCreateEffect { get; set; } + [JsonPropertyName("FatigueAmountToCreateEffect")] + public double? FatigueAmountToCreateEffect { get; set; } - [JsonPropertyName("ExhaustedMeleeDamageMultiplier")] - public double? ExhaustedMeleeDamageMultiplier { get; set; } + [JsonPropertyName("ExhaustedMeleeDamageMultiplier")] + public double? ExhaustedMeleeDamageMultiplier { get; set; } - [JsonPropertyName("FallDamageMultiplier")] - public double? FallDamageMultiplier { get; set; } + [JsonPropertyName("FallDamageMultiplier")] + public double? FallDamageMultiplier { get; set; } - [JsonPropertyName("SafeHeightOverweight")] - public double? SafeHeightOverweight { get; set; } + [JsonPropertyName("SafeHeightOverweight")] + public double? SafeHeightOverweight { get; set; } - [JsonPropertyName("SitToStandConsumption")] - public double? SitToStandConsumption { get; set; } + [JsonPropertyName("SitToStandConsumption")] + public double? SitToStandConsumption { get; set; } - [JsonPropertyName("StaminaExhaustionCausesJiggle")] - public bool? StaminaExhaustionCausesJiggle { get; set; } + [JsonPropertyName("StaminaExhaustionCausesJiggle")] + public bool? StaminaExhaustionCausesJiggle { get; set; } - [JsonPropertyName("StaminaExhaustionStartsBreathSound")] - public bool? StaminaExhaustionStartsBreathSound { get; set; } + [JsonPropertyName("StaminaExhaustionStartsBreathSound")] + public bool? StaminaExhaustionStartsBreathSound { get; set; } - [JsonPropertyName("StaminaExhaustionRocksCamera")] - public bool? StaminaExhaustionRocksCamera { get; set; } + [JsonPropertyName("StaminaExhaustionRocksCamera")] + public bool? StaminaExhaustionRocksCamera { get; set; } - [JsonPropertyName("HoldBreathStaminaMultiplier")] - public XYZ? HoldBreathStaminaMultiplier { get; set; } + [JsonPropertyName("HoldBreathStaminaMultiplier")] + public XYZ? HoldBreathStaminaMultiplier { get; set; } - [JsonPropertyName("PoseLevelIncreaseSpeed")] - public XYZ? PoseLevelIncreaseSpeed { get; set; } + [JsonPropertyName("PoseLevelIncreaseSpeed")] + public XYZ? PoseLevelIncreaseSpeed { get; set; } - [JsonPropertyName("PoseLevelDecreaseSpeed")] - public XYZ? PoseLevelDecreaseSpeed { get; set; } + [JsonPropertyName("PoseLevelDecreaseSpeed")] + public XYZ? PoseLevelDecreaseSpeed { get; set; } - [JsonPropertyName("PoseLevelConsumptionPerNotch")] - public XYZ? PoseLevelConsumptionPerNotch { get; set; } + [JsonPropertyName("PoseLevelConsumptionPerNotch")] + public XYZ? PoseLevelConsumptionPerNotch { get; set; } - public XYZ? ClimbLegsConsumption { get; set; } - public XYZ? ClimbOneHandConsumption { get; set; } - public XYZ? ClimbTwoHandsConsumption { get; set; } - public XYZ? VaultLegsConsumption { get; set; } - public XYZ? VaultOneHandConsumption { get; set; } + public XYZ? ClimbLegsConsumption { get; set; } + public XYZ? ClimbOneHandConsumption { get; set; } + public XYZ? ClimbTwoHandsConsumption { get; set; } + public XYZ? VaultLegsConsumption { get; set; } + public XYZ? VaultOneHandConsumption { get; set; } } public class StaminaRestoration { - [JsonPropertyName("LowerLeftPoint")] - public double? LowerLeftPoint { get; set; } + [JsonPropertyName("LowerLeftPoint")] + public double? LowerLeftPoint { get; set; } - [JsonPropertyName("LowerRightPoint")] - public double? LowerRightPoint { get; set; } + [JsonPropertyName("LowerRightPoint")] + public double? LowerRightPoint { get; set; } - [JsonPropertyName("LeftPlatoPoint")] - public double? LeftPlatoPoint { get; set; } + [JsonPropertyName("LeftPlatoPoint")] + public double? LeftPlatoPoint { get; set; } - [JsonPropertyName("RightPlatoPoint")] - public double? RightPlatoPoint { get; set; } + [JsonPropertyName("RightPlatoPoint")] + public double? RightPlatoPoint { get; set; } - [JsonPropertyName("RightLimit")] - public double? RightLimit { get; set; } + [JsonPropertyName("RightLimit")] + public double? RightLimit { get; set; } - [JsonPropertyName("ZeroValue")] - public double? ZeroValue { get; set; } + [JsonPropertyName("ZeroValue")] + public double? ZeroValue { get; set; } } public class StaminaDrain { - [JsonPropertyName("LowerLeftPoint")] - public double? LowerLeftPoint { get; set; } + [JsonPropertyName("LowerLeftPoint")] + public double? LowerLeftPoint { get; set; } - [JsonPropertyName("LowerRightPoint")] - public double? LowerRightPoint { get; set; } + [JsonPropertyName("LowerRightPoint")] + public double? LowerRightPoint { get; set; } - [JsonPropertyName("LeftPlatoPoint")] - public double? LeftPlatoPoint { get; set; } + [JsonPropertyName("LeftPlatoPoint")] + public double? LeftPlatoPoint { get; set; } - [JsonPropertyName("RightPlatoPoint")] - public double? RightPlatoPoint { get; set; } + [JsonPropertyName("RightPlatoPoint")] + public double? RightPlatoPoint { get; set; } - [JsonPropertyName("RightLimit")] - public double? RightLimit { get; set; } + [JsonPropertyName("RightLimit")] + public double? RightLimit { get; set; } - [JsonPropertyName("ZeroValue")] - public double? ZeroValue { get; set; } + [JsonPropertyName("ZeroValue")] + public double? ZeroValue { get; set; } } public class RequirementReferences { - [JsonPropertyName("Alpinist")] - public List? Alpinists { get; set; } + [JsonPropertyName("Alpinist")] + public List? Alpinists { get; set; } } public class Alpinist { - [JsonPropertyName("Requirement")] - public string? Requirement { get; set; } + [JsonPropertyName("Requirement")] + public string? Requirement { get; set; } - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("Count")] - public double? Count { get; set; } + [JsonPropertyName("Count")] + public double? Count { get; set; } - [JsonPropertyName("RequiredSlot")] - public string? RequiredSlot { get; set; } + [JsonPropertyName("RequiredSlot")] + public string? RequiredSlot { get; set; } - [JsonPropertyName("RequirementTip")] - public string? RequirementTip { get; set; } + [JsonPropertyName("RequirementTip")] + public string? RequirementTip { get; set; } } public class RestrictionsInRaid { - [JsonPropertyName("MaxInLobby")] - public double? MaxInLobby { get; set; } + [JsonPropertyName("MaxInLobby")] + public double? MaxInLobby { get; set; } - [JsonPropertyName("MaxInRaid")] - public double? MaxInRaid { get; set; } + [JsonPropertyName("MaxInRaid")] + public double? MaxInRaid { get; set; } - [JsonPropertyName("TemplateId")] - public string? TemplateId { get; set; } + [JsonPropertyName("TemplateId")] + public string? TemplateId { get; set; } } public class FavoriteItemsSettings { - [JsonPropertyName("WeaponStandMaxItemsCount")] - public double? WeaponStandMaxItemsCount { get; set; } + [JsonPropertyName("WeaponStandMaxItemsCount")] + public double? WeaponStandMaxItemsCount { get; set; } - [JsonPropertyName("PlaceOfFameMaxItemsCount")] - public double? PlaceOfFameMaxItemsCount { get; set; } + [JsonPropertyName("PlaceOfFameMaxItemsCount")] + public double? PlaceOfFameMaxItemsCount { get; set; } } public class VaultingSettings { - [JsonPropertyName("IsActive")] - public bool? IsActive { get; set; } + [JsonPropertyName("IsActive")] + public bool? IsActive { get; set; } - [JsonPropertyName("VaultingInputTime")] - public double? VaultingInputTime { get; set; } + [JsonPropertyName("VaultingInputTime")] + public double? VaultingInputTime { get; set; } - [JsonPropertyName("GridSettings")] - public VaultingGridSettings? GridSettings { get; set; } + [JsonPropertyName("GridSettings")] + public VaultingGridSettings? GridSettings { get; set; } - [JsonPropertyName("MovesSettings")] - public VaultingMovesSettings? MovesSettings { get; set; } + [JsonPropertyName("MovesSettings")] + public VaultingMovesSettings? MovesSettings { get; set; } } public class VaultingGridSettings { - [JsonPropertyName("GridSizeX")] - public double? GridSizeX { get; set; } + [JsonPropertyName("GridSizeX")] + public double? GridSizeX { get; set; } - [JsonPropertyName("GridSizeY")] - public double? GridSizeY { get; set; } + [JsonPropertyName("GridSizeY")] + public double? GridSizeY { get; set; } - [JsonPropertyName("GridSizeZ")] - public double? GridSizeZ { get; set; } + [JsonPropertyName("GridSizeZ")] + public double? GridSizeZ { get; set; } - [JsonPropertyName("SteppingLengthX")] - public double? SteppingLengthX { get; set; } + [JsonPropertyName("SteppingLengthX")] + public double? SteppingLengthX { get; set; } - [JsonPropertyName("SteppingLengthY")] - public double? SteppingLengthY { get; set; } + [JsonPropertyName("SteppingLengthY")] + public double? SteppingLengthY { get; set; } - [JsonPropertyName("SteppingLengthZ")] - public double? SteppingLengthZ { get; set; } + [JsonPropertyName("SteppingLengthZ")] + public double? SteppingLengthZ { get; set; } - [JsonPropertyName("GridOffsetX")] - public double? GridOffsetX { get; set; } + [JsonPropertyName("GridOffsetX")] + public double? GridOffsetX { get; set; } - [JsonPropertyName("GridOffsetY")] - public double? GridOffsetY { get; set; } + [JsonPropertyName("GridOffsetY")] + public double? GridOffsetY { get; set; } - [JsonPropertyName("GridOffsetZ")] - public double? GridOffsetZ { get; set; } + [JsonPropertyName("GridOffsetZ")] + public double? GridOffsetZ { get; set; } - [JsonPropertyName("OffsetFactor")] - public double? OffsetFactor { get; set; } + [JsonPropertyName("OffsetFactor")] + public double? OffsetFactor { get; set; } } public class VaultingMovesSettings { - [JsonPropertyName("VaultSettings")] - public VaultingSubMoveSettings? VaultSettings { get; set; } + [JsonPropertyName("VaultSettings")] + public VaultingSubMoveSettings? VaultSettings { get; set; } - [JsonPropertyName("ClimbSettings")] - public VaultingSubMoveSettings? ClimbSettings { get; set; } + [JsonPropertyName("ClimbSettings")] + public VaultingSubMoveSettings? ClimbSettings { get; set; } } public class VaultingSubMoveSettings { - [JsonPropertyName("IsActive")] - public bool? IsActive { get; set; } + [JsonPropertyName("IsActive")] + public bool? IsActive { get; set; } - [JsonPropertyName("MaxWithoutHandHeight")] - public double? MaxWithoutHandHeight { get; set; } + [JsonPropertyName("MaxWithoutHandHeight")] + public double? MaxWithoutHandHeight { get; set; } - public double? MaxOneHandHeight { get; set; } + public double? MaxOneHandHeight { get; set; } - [JsonPropertyName("SpeedRange")] - public XYZ? SpeedRange { get; set; } + [JsonPropertyName("SpeedRange")] + public XYZ? SpeedRange { get; set; } - [JsonPropertyName("MoveRestrictions")] - public MoveRestrictions? MoveRestrictions { get; set; } + [JsonPropertyName("MoveRestrictions")] + public MoveRestrictions? MoveRestrictions { get; set; } - [JsonPropertyName("AutoMoveRestrictions")] - public MoveRestrictions? AutoMoveRestrictions { get; set; } + [JsonPropertyName("AutoMoveRestrictions")] + public MoveRestrictions? AutoMoveRestrictions { get; set; } } public class MoveRestrictions { - [JsonPropertyName("IsActive")] - public bool? IsActive { get; set; } + [JsonPropertyName("IsActive")] + public bool? IsActive { get; set; } - [JsonPropertyName("MinDistantToInteract")] - public double? MinDistantToInteract { get; set; } + [JsonPropertyName("MinDistantToInteract")] + public double? MinDistantToInteract { get; set; } - [JsonPropertyName("MinHeight")] - public double? MinHeight { get; set; } + [JsonPropertyName("MinHeight")] + public double? MinHeight { get; set; } - [JsonPropertyName("MaxHeight")] - public double? MaxHeight { get; set; } + [JsonPropertyName("MaxHeight")] + public double? MaxHeight { get; set; } - [JsonPropertyName("MinLength")] - public double? MinLength { get; set; } + [JsonPropertyName("MinLength")] + public double? MinLength { get; set; } - [JsonPropertyName("MaxLength")] - public double? MaxLength { get; set; } + [JsonPropertyName("MaxLength")] + public double? MaxLength { get; set; } } public class BTRSettings { - [JsonPropertyName("LocationsWithBTR")] - public List? LocationsWithBTR { get; set; } + [JsonPropertyName("LocationsWithBTR")] + public List? LocationsWithBTR { get; set; } - [JsonPropertyName("BasePriceTaxi")] - public double? BasePriceTaxi { get; set; } + [JsonPropertyName("BasePriceTaxi")] + public double? BasePriceTaxi { get; set; } - [JsonPropertyName("AddPriceTaxi")] - public double? AddPriceTaxi { get; set; } + [JsonPropertyName("AddPriceTaxi")] + public double? AddPriceTaxi { get; set; } - [JsonPropertyName("CleanUpPrice")] - public double? CleanUpPrice { get; set; } + [JsonPropertyName("CleanUpPrice")] + public double? CleanUpPrice { get; set; } - [JsonPropertyName("DeliveryPrice")] - public double? DeliveryPrice { get; set; } + [JsonPropertyName("DeliveryPrice")] + public double? DeliveryPrice { get; set; } - [JsonPropertyName("ModDeliveryCost")] - public double? ModDeliveryCost { get; set; } + [JsonPropertyName("ModDeliveryCost")] + public double? ModDeliveryCost { get; set; } - [JsonPropertyName("BearPriceMod")] - public double? BearPriceMod { get; set; } + [JsonPropertyName("BearPriceMod")] + public double? BearPriceMod { get; set; } - [JsonPropertyName("UsecPriceMod")] - public double? UsecPriceMod { get; set; } + [JsonPropertyName("UsecPriceMod")] + public double? UsecPriceMod { get; set; } - [JsonPropertyName("ScavPriceMod")] - public double? ScavPriceMod { get; set; } + [JsonPropertyName("ScavPriceMod")] + public double? ScavPriceMod { get; set; } - [JsonPropertyName("CoefficientDiscountCharisma")] - public double? CoefficientDiscountCharisma { get; set; } + [JsonPropertyName("CoefficientDiscountCharisma")] + public double? CoefficientDiscountCharisma { get; set; } - [JsonPropertyName("DeliveryMinPrice")] - public double? DeliveryMinPrice { get; set; } + [JsonPropertyName("DeliveryMinPrice")] + public double? DeliveryMinPrice { get; set; } - [JsonPropertyName("TaxiMinPrice")] - public double? TaxiMinPrice { get; set; } + [JsonPropertyName("TaxiMinPrice")] + public double? TaxiMinPrice { get; set; } - [JsonPropertyName("BotCoverMinPrice")] - public double? BotCoverMinPrice { get; set; } + [JsonPropertyName("BotCoverMinPrice")] + public double? BotCoverMinPrice { get; set; } - [JsonPropertyName("MapsConfigs")] - public Dictionary? MapsConfigs { get; set; } + [JsonPropertyName("MapsConfigs")] + public Dictionary? MapsConfigs { get; set; } - [JsonPropertyName("DiameterWheel")] - public double? DiameterWheel { get; set; } + [JsonPropertyName("DiameterWheel")] + public double? DiameterWheel { get; set; } - [JsonPropertyName("HeightWheel")] - public double? HeightWheel { get; set; } + [JsonPropertyName("HeightWheel")] + public double? HeightWheel { get; set; } - [JsonPropertyName("HeightWheelMaxPosLimit")] - public double? HeightWheelMaxPosLimit { get; set; } + [JsonPropertyName("HeightWheelMaxPosLimit")] + public double? HeightWheelMaxPosLimit { get; set; } - [JsonPropertyName("HeightWheelMinPosLimit")] - public double? HeightWheelMinPosLimit { get; set; } + [JsonPropertyName("HeightWheelMinPosLimit")] + public double? HeightWheelMinPosLimit { get; set; } - [JsonPropertyName("SnapToSurfaceWheelsSpeed")] - public double? SnapToSurfaceWheelsSpeed { get; set; } + [JsonPropertyName("SnapToSurfaceWheelsSpeed")] + public double? SnapToSurfaceWheelsSpeed { get; set; } - [JsonPropertyName("CheckSurfaceForWheelsTimer")] - public double? CheckSurfaceForWheelsTimer { get; set; } + [JsonPropertyName("CheckSurfaceForWheelsTimer")] + public double? CheckSurfaceForWheelsTimer { get; set; } - [JsonPropertyName("HeightWheelOffset")] - public double? HeightWheelOffset { get; set; } + [JsonPropertyName("HeightWheelOffset")] + public double? HeightWheelOffset { get; set; } } public class BtrMapConfig { - [JsonPropertyName("BtrSkin")] - public string? BtrSkin { get; set; } + [JsonPropertyName("BtrSkin")] + public string? BtrSkin { get; set; } - [JsonPropertyName("CheckSurfaceForWheelsTimer")] - public double? CheckSurfaceForWheelsTimer { get; set; } + [JsonPropertyName("CheckSurfaceForWheelsTimer")] + public double? CheckSurfaceForWheelsTimer { get; set; } - [JsonPropertyName("DiameterWheel")] - public double? DiameterWheel { get; set; } + [JsonPropertyName("DiameterWheel")] + public double? DiameterWheel { get; set; } - [JsonPropertyName("HeightWheel")] - public double? HeightWheel { get; set; } + [JsonPropertyName("HeightWheel")] + public double? HeightWheel { get; set; } - [JsonPropertyName("HeightWheelMaxPosLimit")] - public double? HeightWheelMaxPosLimit { get; set; } + [JsonPropertyName("HeightWheelMaxPosLimit")] + public double? HeightWheelMaxPosLimit { get; set; } - [JsonPropertyName("HeightWheelMinPosLimit")] - public double? HeightWheelMinPosLimit { get; set; } + [JsonPropertyName("HeightWheelMinPosLimit")] + public double? HeightWheelMinPosLimit { get; set; } - [JsonPropertyName("HeightWheelOffset")] - public double? HeightWheelOffset { get; set; } + [JsonPropertyName("HeightWheelOffset")] + public double? HeightWheelOffset { get; set; } - [JsonPropertyName("SnapToSurfaceWheelsSpeed")] - public double? SnapToSurfaceWheelsSpeed { get; set; } + [JsonPropertyName("SnapToSurfaceWheelsSpeed")] + public double? SnapToSurfaceWheelsSpeed { get; set; } - [JsonPropertyName("SuspensionDamperStiffness")] - public double? SuspensionDamperStiffness { get; set; } + [JsonPropertyName("SuspensionDamperStiffness")] + public double? SuspensionDamperStiffness { get; set; } - [JsonPropertyName("SuspensionRestLength")] - public double? SuspensionRestLength { get; set; } + [JsonPropertyName("SuspensionRestLength")] + public double? SuspensionRestLength { get; set; } - [JsonPropertyName("SuspensionSpringStiffness")] - public double? SuspensionSpringStiffness { get; set; } + [JsonPropertyName("SuspensionSpringStiffness")] + public double? SuspensionSpringStiffness { get; set; } - [JsonPropertyName("SuspensionTravel")] - public double? SuspensionTravel { get; set; } + [JsonPropertyName("SuspensionTravel")] + public double? SuspensionTravel { get; set; } - [JsonPropertyName("SuspensionWheelRadius")] - public double? SuspensionWheelRadius { get; set; } + [JsonPropertyName("SuspensionWheelRadius")] + public double? SuspensionWheelRadius { get; set; } - [JsonPropertyName("mapID")] - public string? MapID { get; set; } + [JsonPropertyName("mapID")] + public string? MapID { get; set; } - [JsonPropertyName("pathsConfigurations")] - public List? PathsConfigurations { get; set; } + [JsonPropertyName("pathsConfigurations")] + public List? PathsConfigurations { get; set; } } public class PathConfig { - [JsonPropertyName("active")] - public bool? Active { get; set; } + [JsonPropertyName("active")] + public bool? Active { get; set; } - [JsonPropertyName("id")] - public string? Id { get; set; } + [JsonPropertyName("id")] + public string? Id { get; set; } - [JsonPropertyName("enterPoint")] - public string? EnterPoint { get; set; } + [JsonPropertyName("enterPoint")] + public string? EnterPoint { get; set; } - [JsonPropertyName("exitPoint")] - public string? ExitPoint { get; set; } + [JsonPropertyName("exitPoint")] + public string? ExitPoint { get; set; } - [JsonPropertyName("pathPoints")] - public List? PathPoints { get; set; } + [JsonPropertyName("pathPoints")] + public List? PathPoints { get; set; } - [JsonPropertyName("once")] - public bool? Once { get; set; } + [JsonPropertyName("once")] + public bool? Once { get; set; } - [JsonPropertyName("circle")] - public bool? Circle { get; set; } + [JsonPropertyName("circle")] + public bool? Circle { get; set; } - [JsonPropertyName("circleCount")] - public double? CircleCount { get; set; } + [JsonPropertyName("circleCount")] + public double? CircleCount { get; set; } - [JsonPropertyName("skinType")] - public List? SkinType { get; set; } + [JsonPropertyName("skinType")] + public List? SkinType { get; set; } } public class SquadSettings { - [JsonPropertyName("CountOfRequestsToOnePlayer")] - public double? CountOfRequestsToOnePlayer { get; set; } + [JsonPropertyName("CountOfRequestsToOnePlayer")] + public double? CountOfRequestsToOnePlayer { get; set; } - [JsonPropertyName("SecondsForExpiredRequest")] - public double? SecondsForExpiredRequest { get; set; } + [JsonPropertyName("SecondsForExpiredRequest")] + public double? SecondsForExpiredRequest { get; set; } - [JsonPropertyName("SendRequestDelaySeconds")] - public double? SendRequestDelaySeconds { get; set; } + [JsonPropertyName("SendRequestDelaySeconds")] + public double? SendRequestDelaySeconds { get; set; } } public class Insurance { - [JsonPropertyName("ChangeForReturnItemsInOfflineRaid")] - public double? ChangeForReturnItemsInOfflineRaid { get; set; } + [JsonPropertyName("ChangeForReturnItemsInOfflineRaid")] + public double? ChangeForReturnItemsInOfflineRaid { get; set; } - [JsonPropertyName("MaxStorageTimeInHour")] - public double? MaxStorageTimeInHour { get; set; } + [JsonPropertyName("MaxStorageTimeInHour")] + public double? MaxStorageTimeInHour { get; set; } - [JsonPropertyName("CoefOfSendingMessageTime")] - public double? CoefOfSendingMessageTime { get; set; } + [JsonPropertyName("CoefOfSendingMessageTime")] + public double? CoefOfSendingMessageTime { get; set; } - [JsonPropertyName("CoefOfHavingMarkOfUnknown")] - public double? CoefOfHavingMarkOfUnknown { get; set; } + [JsonPropertyName("CoefOfHavingMarkOfUnknown")] + public double? CoefOfHavingMarkOfUnknown { get; set; } - [JsonPropertyName("EditionSendingMessageTime")] - public Dictionary? EditionSendingMessageTime { get; set; } + [JsonPropertyName("EditionSendingMessageTime")] + public Dictionary? EditionSendingMessageTime { get; set; } - [JsonPropertyName("OnlyInDeathCase")] - public bool? OnlyInDeathCase { get; set; } + [JsonPropertyName("OnlyInDeathCase")] + public bool? OnlyInDeathCase { get; set; } } public class MessageSendTimeMultiplier { - [JsonPropertyName("multiplier")] - public double? Multiplier { get; set; } + [JsonPropertyName("multiplier")] + public double? Multiplier { get; set; } } public class SkillsSettings { - [JsonPropertyName("SkillProgressRate")] - public double? SkillProgressRate { get; set; } + [JsonPropertyName("SkillProgressRate")] + public double? SkillProgressRate { get; set; } - [JsonPropertyName("WeaponSkillProgressRate")] - public double? WeaponSkillProgressRate { get; set; } + [JsonPropertyName("WeaponSkillProgressRate")] + public double? WeaponSkillProgressRate { get; set; } - [JsonPropertyName("WeaponSkillRecoilBonusPerLevel")] - public double? WeaponSkillRecoilBonusPerLevel { get; set; } + [JsonPropertyName("WeaponSkillRecoilBonusPerLevel")] + public double? WeaponSkillRecoilBonusPerLevel { get; set; } - [JsonPropertyName("HideoutManagement")] - public HideoutManagement? HideoutManagement { get; set; } + [JsonPropertyName("HideoutManagement")] + public HideoutManagement? HideoutManagement { get; set; } - [JsonPropertyName("Crafting")] - public Crafting? Crafting { get; set; } + [JsonPropertyName("Crafting")] + public Crafting? Crafting { get; set; } - [JsonPropertyName("Metabolism")] - public Metabolism? Metabolism { get; set; } + [JsonPropertyName("Metabolism")] + public Metabolism? Metabolism { get; set; } - [JsonPropertyName("MountingErgonomicsBonusPerLevel")] - public double? MountingErgonomicsBonusPerLevel { get; set; } + [JsonPropertyName("MountingErgonomicsBonusPerLevel")] + public double? MountingErgonomicsBonusPerLevel { get; set; } - [JsonPropertyName("Immunity")] - public Immunity? Immunity { get; set; } + [JsonPropertyName("Immunity")] + public Immunity? Immunity { get; set; } - [JsonPropertyName("Endurance")] - public Endurance? Endurance { get; set; } + [JsonPropertyName("Endurance")] + public Endurance? Endurance { get; set; } - [JsonPropertyName("Strength")] - public Strength? Strength { get; set; } + [JsonPropertyName("Strength")] + public Strength? Strength { get; set; } - [JsonPropertyName("Vitality")] - public Vitality? Vitality { get; set; } + [JsonPropertyName("Vitality")] + public Vitality? Vitality { get; set; } - [JsonPropertyName("Health")] - public HealthSkillProgress? Health { get; set; } + [JsonPropertyName("Health")] + public HealthSkillProgress? Health { get; set; } - [JsonPropertyName("StressResistance")] - public StressResistance? StressResistance { get; set; } + [JsonPropertyName("StressResistance")] + public StressResistance? StressResistance { get; set; } - [JsonPropertyName("Throwing")] - public Throwing? Throwing { get; set; } + [JsonPropertyName("Throwing")] + public Throwing? Throwing { get; set; } - [JsonPropertyName("RecoilControl")] - public RecoilControl? RecoilControl { get; set; } + [JsonPropertyName("RecoilControl")] + public RecoilControl? RecoilControl { get; set; } - [JsonPropertyName("Pistol")] - public WeaponSkills? Pistol { get; set; } + [JsonPropertyName("Pistol")] + public WeaponSkills? Pistol { get; set; } - [JsonPropertyName("Revolver")] - public WeaponSkills? Revolver { get; set; } + [JsonPropertyName("Revolver")] + public WeaponSkills? Revolver { get; set; } - [JsonPropertyName("SMG")] - public List? SMG { get; set; } + [JsonPropertyName("SMG")] + public List? SMG { get; set; } - [JsonPropertyName("Assault")] - public WeaponSkills? Assault { get; set; } + [JsonPropertyName("Assault")] + public WeaponSkills? Assault { get; set; } - [JsonPropertyName("Shotgun")] - public WeaponSkills? Shotgun { get; set; } + [JsonPropertyName("Shotgun")] + public WeaponSkills? Shotgun { get; set; } - [JsonPropertyName("Sniper")] - public WeaponSkills? Sniper { get; set; } + [JsonPropertyName("Sniper")] + public WeaponSkills? Sniper { get; set; } - [JsonPropertyName("LMG")] - public List? LMG { get; set; } + [JsonPropertyName("LMG")] + public List? LMG { get; set; } - [JsonPropertyName("HMG")] - public List? HMG { get; set; } + [JsonPropertyName("HMG")] + public List? HMG { get; set; } - [JsonPropertyName("Launcher")] - public List? Launcher { get; set; } + [JsonPropertyName("Launcher")] + public List? Launcher { get; set; } - [JsonPropertyName("AttachedLauncher")] - public List? AttachedLauncher { get; set; } + [JsonPropertyName("AttachedLauncher")] + public List? AttachedLauncher { get; set; } - [JsonPropertyName("Melee")] - public MeleeSkill? Melee { get; set; } + [JsonPropertyName("Melee")] + public MeleeSkill? Melee { get; set; } - [JsonPropertyName("DMR")] - public WeaponSkills? DMR { get; set; } + [JsonPropertyName("DMR")] + public WeaponSkills? DMR { get; set; } - [JsonPropertyName("BearAssaultoperations")] - public List? BearAssaultoperations { get; set; } + [JsonPropertyName("BearAssaultoperations")] + public List? BearAssaultoperations { get; set; } - [JsonPropertyName("BearAuthority")] - public List? BearAuthority { get; set; } + [JsonPropertyName("BearAuthority")] + public List? BearAuthority { get; set; } - [JsonPropertyName("BearAksystems")] - public List? BearAksystems { get; set; } + [JsonPropertyName("BearAksystems")] + public List? BearAksystems { get; set; } - [JsonPropertyName("BearHeavycaliber")] - public List? BearHeavycaliber { get; set; } + [JsonPropertyName("BearHeavycaliber")] + public List? BearHeavycaliber { get; set; } - [JsonPropertyName("BearRawpower")] - public List? BearRawpower { get; set; } + [JsonPropertyName("BearRawpower")] + public List? BearRawpower { get; set; } - [JsonPropertyName("BipodErgonomicsBonusPerLevel")] - public double? BipodErgonomicsBonusPerLevel { get; set; } + [JsonPropertyName("BipodErgonomicsBonusPerLevel")] + public double? BipodErgonomicsBonusPerLevel { get; set; } - [JsonPropertyName("UsecArsystems")] - public List? UsecArsystems { get; set; } + [JsonPropertyName("UsecArsystems")] + public List? UsecArsystems { get; set; } - [JsonPropertyName("UsecDeepweaponmodding_Settings")] - public List? UsecDeepweaponmodding_Settings { get; set; } + [JsonPropertyName("UsecDeepweaponmodding_Settings")] + public List? UsecDeepweaponmodding_Settings { get; set; } - [JsonPropertyName("UsecLongrangeoptics_Settings")] - public List? UsecLongrangeoptics_Settings { get; set; } + [JsonPropertyName("UsecLongrangeoptics_Settings")] + public List? UsecLongrangeoptics_Settings { get; set; } - [JsonPropertyName("UsecNegotiations")] - public List? UsecNegotiations { get; set; } + [JsonPropertyName("UsecNegotiations")] + public List? UsecNegotiations { get; set; } - [JsonPropertyName("UsecTactics")] - public List? UsecTactics { get; set; } + [JsonPropertyName("UsecTactics")] + public List? UsecTactics { get; set; } - [JsonPropertyName("BotReload")] - public List? BotReload { get; set; } + [JsonPropertyName("BotReload")] + public List? BotReload { get; set; } - [JsonPropertyName("CovertMovement")] - public CovertMovement? CovertMovement { get; set; } + [JsonPropertyName("CovertMovement")] + public CovertMovement? CovertMovement { get; set; } - [JsonPropertyName("FieldMedicine")] - public List? FieldMedicine { get; set; } + [JsonPropertyName("FieldMedicine")] + public List? FieldMedicine { get; set; } - [JsonPropertyName("Search")] - public Search? Search { get; set; } + [JsonPropertyName("Search")] + public Search? Search { get; set; } - [JsonPropertyName("Sniping")] - public List? Sniping { get; set; } + [JsonPropertyName("Sniping")] + public List? Sniping { get; set; } - [JsonPropertyName("ProneMovement")] - public List? ProneMovement { get; set; } + [JsonPropertyName("ProneMovement")] + public List? ProneMovement { get; set; } - [JsonPropertyName("FirstAid")] - public List? FirstAid { get; set; } + [JsonPropertyName("FirstAid")] + public List? FirstAid { get; set; } - [JsonPropertyName("LightVests")] - public ArmorSkills? LightVests { get; set; } + [JsonPropertyName("LightVests")] + public ArmorSkills? LightVests { get; set; } - [JsonPropertyName("HeavyVests")] - public ArmorSkills? HeavyVests { get; set; } + [JsonPropertyName("HeavyVests")] + public ArmorSkills? HeavyVests { get; set; } - [JsonPropertyName("WeaponModding")] - public List? WeaponModding { get; set; } + [JsonPropertyName("WeaponModding")] + public List? WeaponModding { get; set; } - [JsonPropertyName("AdvancedModding")] - public List? AdvancedModding { get; set; } + [JsonPropertyName("AdvancedModding")] + public List? AdvancedModding { get; set; } - [JsonPropertyName("NightOps")] - public List? NightOps { get; set; } + [JsonPropertyName("NightOps")] + public List? NightOps { get; set; } - [JsonPropertyName("SilentOps")] - public List? SilentOps { get; set; } + [JsonPropertyName("SilentOps")] + public List? SilentOps { get; set; } - [JsonPropertyName("Lockpicking")] - public List? Lockpicking { get; set; } + [JsonPropertyName("Lockpicking")] + public List? Lockpicking { get; set; } - [JsonPropertyName("WeaponTreatment")] - public WeaponTreatment? WeaponTreatment { get; set; } + [JsonPropertyName("WeaponTreatment")] + public WeaponTreatment? WeaponTreatment { get; set; } - [JsonPropertyName("MagDrills")] - public MagDrills? MagDrills { get; set; } + [JsonPropertyName("MagDrills")] + public MagDrills? MagDrills { get; set; } - [JsonPropertyName("Freetrading")] - public List? Freetrading { get; set; } + [JsonPropertyName("Freetrading")] + public List? Freetrading { get; set; } - [JsonPropertyName("Auctions")] - public List? Auctions { get; set; } + [JsonPropertyName("Auctions")] + public List? Auctions { get; set; } - [JsonPropertyName("Cleanoperations")] - public List? Cleanoperations { get; set; } + [JsonPropertyName("Cleanoperations")] + public List? Cleanoperations { get; set; } - [JsonPropertyName("Barter")] - public List? Barter { get; set; } + [JsonPropertyName("Barter")] + public List? Barter { get; set; } - [JsonPropertyName("Shadowconnections")] - public List? Shadowconnections { get; set; } + [JsonPropertyName("Shadowconnections")] + public List? Shadowconnections { get; set; } - [JsonPropertyName("Taskperformance")] - public List? Taskperformance { get; set; } + [JsonPropertyName("Taskperformance")] + public List? Taskperformance { get; set; } - [JsonPropertyName("Perception")] - public Perception? Perception { get; set; } + [JsonPropertyName("Perception")] + public Perception? Perception { get; set; } - [JsonPropertyName("Intellect")] - public Intellect? Intellect { get; set; } + [JsonPropertyName("Intellect")] + public Intellect? Intellect { get; set; } - [JsonPropertyName("Attention")] - public Attention? Attention { get; set; } + [JsonPropertyName("Attention")] + public Attention? Attention { get; set; } - [JsonPropertyName("Charisma")] - public Charisma? Charisma { get; set; } + [JsonPropertyName("Charisma")] + public Charisma? Charisma { get; set; } - [JsonPropertyName("Memory")] - public Memory? Memory { get; set; } + [JsonPropertyName("Memory")] + public Memory? Memory { get; set; } - [JsonPropertyName("Surgery")] - public Surgery? Surgery { get; set; } + [JsonPropertyName("Surgery")] + public Surgery? Surgery { get; set; } - [JsonPropertyName("AimDrills")] - public AimDrills? AimDrills { get; set; } + [JsonPropertyName("AimDrills")] + public AimDrills? AimDrills { get; set; } - [JsonPropertyName("BotSound")] - public List? BotSound { get; set; } + [JsonPropertyName("BotSound")] + public List? BotSound { get; set; } - [JsonPropertyName("TroubleShooting")] - public TroubleShooting? TroubleShooting { get; set; } + [JsonPropertyName("TroubleShooting")] + public TroubleShooting? TroubleShooting { get; set; } } public class MeleeSkill { - public BuffSettings? BuffSettings { get; set; } + public BuffSettings? BuffSettings { get; set; } } public class ArmorSkills { - public double? BluntThroughputDamageHVestsReducePerLevel { get; set; } - public double? WearAmountRepairHVestsReducePerLevel { get; set; } - public double? WearChanceRepairHVestsReduceEliteLevel { get; set; } - public double? BuffMaxCount { get; set; } - public BuffSettings? BuffSettings { get; set; } - public ArmorCounters? Counters { get; set; } - public double? MoveSpeedPenaltyReductionHVestsReducePerLevel { get; set; } - public double? RicochetChanceHVestsCurrentDurabilityThreshold { get; set; } - public double? RicochetChanceHVestsEliteLevel { get; set; } - public double? RicochetChanceHVestsMaxDurabilityThreshold { get; set; } - public double? MeleeDamageLVestsReducePerLevel { get; set; } - public double? MoveSpeedPenaltyReductionLVestsReducePerLevel { get; set; } - public double? WearAmountRepairLVestsReducePerLevel { get; set; } - public double? WearChanceRepairLVestsReduceEliteLevel { get; set; } + public double? BluntThroughputDamageHVestsReducePerLevel { get; set; } + public double? WearAmountRepairHVestsReducePerLevel { get; set; } + public double? WearChanceRepairHVestsReduceEliteLevel { get; set; } + public double? BuffMaxCount { get; set; } + public BuffSettings? BuffSettings { get; set; } + public ArmorCounters? Counters { get; set; } + public double? MoveSpeedPenaltyReductionHVestsReducePerLevel { get; set; } + public double? RicochetChanceHVestsCurrentDurabilityThreshold { get; set; } + public double? RicochetChanceHVestsEliteLevel { get; set; } + public double? RicochetChanceHVestsMaxDurabilityThreshold { get; set; } + public double? MeleeDamageLVestsReducePerLevel { get; set; } + public double? MoveSpeedPenaltyReductionLVestsReducePerLevel { get; set; } + public double? WearAmountRepairLVestsReducePerLevel { get; set; } + public double? WearChanceRepairLVestsReduceEliteLevel { get; set; } } public class ArmorCounters { - [JsonPropertyName("armorDurability")] - public SkillCounter? ArmorDurability { get; set; } + [JsonPropertyName("armorDurability")] + public SkillCounter? ArmorDurability { get; set; } } public class HideoutManagement { - public double? SkillPointsPerAreaUpgrade { get; set; } - public double? SkillPointsPerCraft { get; set; } - public double? CircleOfCultistsBonusPercent { get; set; } - public double? ConsumptionReductionPerLevel { get; set; } - public double? SkillBoostPercent { get; set; } - public SkillPointsRate? SkillPointsRate { get; set; } - public EliteSlots? EliteSlots { get; set; } + public double? SkillPointsPerAreaUpgrade { get; set; } + public double? SkillPointsPerCraft { get; set; } + public double? CircleOfCultistsBonusPercent { get; set; } + public double? ConsumptionReductionPerLevel { get; set; } + public double? SkillBoostPercent { get; set; } + public SkillPointsRate? SkillPointsRate { get; set; } + public EliteSlots? EliteSlots { get; set; } } public class SkillPointsRate { - public SkillPointRate? Generator { get; set; } - public SkillPointRate? AirFilteringUnit { get; set; } - public SkillPointRate? WaterCollector { get; set; } - public SkillPointRate? SolarPower { get; set; } + public SkillPointRate? Generator { get; set; } + public SkillPointRate? AirFilteringUnit { get; set; } + public SkillPointRate? WaterCollector { get; set; } + public SkillPointRate? SolarPower { get; set; } } public class SkillPointRate { - public double? ResourceSpent { get; set; } - public double? PointsGained { get; set; } + public double? ResourceSpent { get; set; } + public double? PointsGained { get; set; } } public class EliteSlots { - public EliteSlot? Generator { get; set; } - public EliteSlot? AirFilteringUnit { get; set; } - public EliteSlot? WaterCollector { get; set; } - public EliteSlot? BitcoinFarm { get; set; } + public EliteSlot? Generator { get; set; } + public EliteSlot? AirFilteringUnit { get; set; } + public EliteSlot? WaterCollector { get; set; } + public EliteSlot? BitcoinFarm { get; set; } } public class EliteSlot { - public double? Slots { get; set; } - public double? Container { get; set; } + public double? Slots { get; set; } + public double? Container { get; set; } } public class Crafting { - [JsonPropertyName("DependentSkillRatios")] - public List? DependentSkillRatios { get; set; } + [JsonPropertyName("DependentSkillRatios")] + public List? DependentSkillRatios { get; set; } - [JsonPropertyName("PointsPerCraftingCycle")] - public double? PointsPerCraftingCycle { get; set; } + [JsonPropertyName("PointsPerCraftingCycle")] + public double? PointsPerCraftingCycle { get; set; } - [JsonPropertyName("CraftingCycleHours")] - public double? CraftingCycleHours { get; set; } + [JsonPropertyName("CraftingCycleHours")] + public double? CraftingCycleHours { get; set; } - [JsonPropertyName("PointsPerUniqueCraftCycle")] - public double? PointsPerUniqueCraftCycle { get; set; } + [JsonPropertyName("PointsPerUniqueCraftCycle")] + public double? PointsPerUniqueCraftCycle { get; set; } - [JsonPropertyName("UniqueCraftsPerCycle")] - public double? UniqueCraftsPerCycle { get; set; } + [JsonPropertyName("UniqueCraftsPerCycle")] + public double? UniqueCraftsPerCycle { get; set; } - [JsonPropertyName("CraftTimeReductionPerLevel")] - public double? CraftTimeReductionPerLevel { get; set; } + [JsonPropertyName("CraftTimeReductionPerLevel")] + public double? CraftTimeReductionPerLevel { get; set; } - [JsonPropertyName("ProductionTimeReductionPerLevel")] - public double? ProductionTimeReductionPerLevel { get; set; } + [JsonPropertyName("ProductionTimeReductionPerLevel")] + public double? ProductionTimeReductionPerLevel { get; set; } - [JsonPropertyName("EliteExtraProductions")] - public double? EliteExtraProductions { get; set; } + [JsonPropertyName("EliteExtraProductions")] + public double? EliteExtraProductions { get; set; } - // Yes, there is a typo - [JsonPropertyName("CraftingPointsToInteligence")] - public double? CraftingPointsToIntelligence { get; set; } + // Yes, there is a typo + [JsonPropertyName("CraftingPointsToInteligence")] + public double? CraftingPointsToIntelligence { get; set; } } public class Metabolism { - [JsonPropertyName("HydrationRecoveryRate")] - public double? HydrationRecoveryRate { get; set; } + [JsonPropertyName("HydrationRecoveryRate")] + public double? HydrationRecoveryRate { get; set; } - [JsonPropertyName("EnergyRecoveryRate")] - public double? EnergyRecoveryRate { get; set; } + [JsonPropertyName("EnergyRecoveryRate")] + public double? EnergyRecoveryRate { get; set; } - [JsonPropertyName("IncreasePositiveEffectDurationRate")] - public double? IncreasePositiveEffectDurationRate { get; set; } + [JsonPropertyName("IncreasePositiveEffectDurationRate")] + public double? IncreasePositiveEffectDurationRate { get; set; } - [JsonPropertyName("DecreaseNegativeEffectDurationRate")] - public double? DecreaseNegativeEffectDurationRate { get; set; } + [JsonPropertyName("DecreaseNegativeEffectDurationRate")] + public double? DecreaseNegativeEffectDurationRate { get; set; } - [JsonPropertyName("DecreasePoisonDurationRate")] - public double? DecreasePoisonDurationRate { get; set; } + [JsonPropertyName("DecreasePoisonDurationRate")] + public double? DecreasePoisonDurationRate { get; set; } } public class Immunity { - [JsonPropertyName("ImmunityMiscEffects")] - public double? ImmunityMiscEffects { get; set; } + [JsonPropertyName("ImmunityMiscEffects")] + public double? ImmunityMiscEffects { get; set; } - [JsonPropertyName("ImmunityPoisonBuff")] - public double? ImmunityPoisonBuff { get; set; } + [JsonPropertyName("ImmunityPoisonBuff")] + public double? ImmunityPoisonBuff { get; set; } - [JsonPropertyName("ImmunityPainKiller")] - public double? ImmunityPainKiller { get; set; } + [JsonPropertyName("ImmunityPainKiller")] + public double? ImmunityPainKiller { get; set; } - [JsonPropertyName("HealthNegativeEffect")] - public double? HealthNegativeEffect { get; set; } + [JsonPropertyName("HealthNegativeEffect")] + public double? HealthNegativeEffect { get; set; } - [JsonPropertyName("StimulatorNegativeBuff")] - public double? StimulatorNegativeBuff { get; set; } + [JsonPropertyName("StimulatorNegativeBuff")] + public double? StimulatorNegativeBuff { get; set; } } public class Endurance { - [JsonPropertyName("MovementAction")] - public double? MovementAction { get; set; } + [JsonPropertyName("MovementAction")] + public double? MovementAction { get; set; } - [JsonPropertyName("SprintAction")] - public double? SprintAction { get; set; } + [JsonPropertyName("SprintAction")] + public double? SprintAction { get; set; } - [JsonPropertyName("GainPerFatigueStack")] - public double? GainPerFatigueStack { get; set; } + [JsonPropertyName("GainPerFatigueStack")] + public double? GainPerFatigueStack { get; set; } - [JsonPropertyName("DependentSkillRatios")] - public List? DependentSkillRatios { get; set; } + [JsonPropertyName("DependentSkillRatios")] + public List? DependentSkillRatios { get; set; } - [JsonPropertyName("QTELevelMultipliers")] - public Dictionary>? QTELevelMultipliers { get; set; } + [JsonPropertyName("QTELevelMultipliers")] + public Dictionary>? QTELevelMultipliers { get; set; } } public class Strength { - [JsonPropertyName("DependentSkillRatios")] - public List? DependentSkillRatios { get; set; } + [JsonPropertyName("DependentSkillRatios")] + public List? DependentSkillRatios { get; set; } - [JsonPropertyName("SprintActionMin")] - public double? SprintActionMin { get; set; } + [JsonPropertyName("SprintActionMin")] + public double? SprintActionMin { get; set; } - [JsonPropertyName("SprintActionMax")] - public double? SprintActionMax { get; set; } + [JsonPropertyName("SprintActionMax")] + public double? SprintActionMax { get; set; } - [JsonPropertyName("MovementActionMin")] - public double? MovementActionMin { get; set; } + [JsonPropertyName("MovementActionMin")] + public double? MovementActionMin { get; set; } - [JsonPropertyName("MovementActionMax")] - public double? MovementActionMax { get; set; } + [JsonPropertyName("MovementActionMax")] + public double? MovementActionMax { get; set; } - [JsonPropertyName("PushUpMin")] - public double? PushUpMin { get; set; } + [JsonPropertyName("PushUpMin")] + public double? PushUpMin { get; set; } - [JsonPropertyName("PushUpMax")] - public double? PushUpMax { get; set; } + [JsonPropertyName("PushUpMax")] + public double? PushUpMax { get; set; } - [JsonPropertyName("QTELevelMultipliers")] - public List? QTELevelMultipliers { get; set; } + [JsonPropertyName("QTELevelMultipliers")] + public List? QTELevelMultipliers { get; set; } - [JsonPropertyName("FistfightAction")] - public double? FistfightAction { get; set; } + [JsonPropertyName("FistfightAction")] + public double? FistfightAction { get; set; } - [JsonPropertyName("ThrowAction")] - public double? ThrowAction { get; set; } + [JsonPropertyName("ThrowAction")] + public double? ThrowAction { get; set; } } public class DependentSkillRatio { - [JsonPropertyName("Ratio")] - public double? Ratio { get; set; } + [JsonPropertyName("Ratio")] + public double? Ratio { get; set; } - [JsonPropertyName("SkillId")] - public string? SkillId { get; set; } + [JsonPropertyName("SkillId")] + public string? SkillId { get; set; } } public class QTELevelMultiplier { - [JsonPropertyName("Level")] - public double? Level { get; set; } + [JsonPropertyName("Level")] + public double? Level { get; set; } - [JsonPropertyName("Multiplier")] - public double? Multiplier { get; set; } + [JsonPropertyName("Multiplier")] + public double? Multiplier { get; set; } } public class Vitality { - [JsonPropertyName("DamageTakenAction")] - public double? DamageTakenAction { get; set; } + [JsonPropertyName("DamageTakenAction")] + public double? DamageTakenAction { get; set; } - [JsonPropertyName("HealthNegativeEffect")] - public double? HealthNegativeEffect { get; set; } + [JsonPropertyName("HealthNegativeEffect")] + public double? HealthNegativeEffect { get; set; } } public class HealthSkillProgress { - [JsonPropertyName("SkillProgress")] - public double? SkillProgress { get; set; } + [JsonPropertyName("SkillProgress")] + public double? SkillProgress { get; set; } } public class StressResistance { - [JsonPropertyName("HealthNegativeEffect")] - public double? HealthNegativeEffect { get; set; } + [JsonPropertyName("HealthNegativeEffect")] + public double? HealthNegativeEffect { get; set; } - [JsonPropertyName("LowHPDuration")] - public double? LowHPDuration { get; set; } + [JsonPropertyName("LowHPDuration")] + public double? LowHPDuration { get; set; } } public class Throwing { - [JsonPropertyName("ThrowAction")] - public double? ThrowAction { get; set; } + [JsonPropertyName("ThrowAction")] + public double? ThrowAction { get; set; } } public class RecoilControl { - [JsonPropertyName("RecoilAction")] - public double? RecoilAction { get; set; } + [JsonPropertyName("RecoilAction")] + public double? RecoilAction { get; set; } - [JsonPropertyName("RecoilBonusPerLevel")] - public double? RecoilBonusPerLevel { get; set; } + [JsonPropertyName("RecoilBonusPerLevel")] + public double? RecoilBonusPerLevel { get; set; } } public class WeaponSkills { - [JsonPropertyName("WeaponReloadAction")] - public double? WeaponReloadAction { get; set; } + [JsonPropertyName("WeaponReloadAction")] + public double? WeaponReloadAction { get; set; } - [JsonPropertyName("WeaponShotAction")] - public double? WeaponShotAction { get; set; } + [JsonPropertyName("WeaponShotAction")] + public double? WeaponShotAction { get; set; } - [JsonPropertyName("WeaponFixAction")] - public double? WeaponFixAction { get; set; } + [JsonPropertyName("WeaponFixAction")] + public double? WeaponFixAction { get; set; } - [JsonPropertyName("WeaponChamberAction")] - public double? WeaponChamberAction { get; set; } + [JsonPropertyName("WeaponChamberAction")] + public double? WeaponChamberAction { get; set; } } public class CovertMovement { - [JsonPropertyName("MovementAction")] - public double? MovementAction { get; set; } + [JsonPropertyName("MovementAction")] + public double? MovementAction { get; set; } } public class Search { - [JsonPropertyName("SearchAction")] - public double? SearchAction { get; set; } + [JsonPropertyName("SearchAction")] + public double? SearchAction { get; set; } - [JsonPropertyName("FindAction")] - public double? FindAction { get; set; } + [JsonPropertyName("FindAction")] + public double? FindAction { get; set; } } public class WeaponTreatment { - [JsonPropertyName("BuffMaxCount")] - public double? BuffMaxCount { get; set; } + [JsonPropertyName("BuffMaxCount")] + public double? BuffMaxCount { get; set; } - [JsonPropertyName("BuffSettings")] - public BuffSettings? BuffSettings { get; set; } + [JsonPropertyName("BuffSettings")] + public BuffSettings? BuffSettings { get; set; } - [JsonPropertyName("Counters")] - public WeaponTreatmentCounters? Counters { get; set; } + [JsonPropertyName("Counters")] + public WeaponTreatmentCounters? Counters { get; set; } - [JsonPropertyName("DurLossReducePerLevel")] - public double? DurLossReducePerLevel { get; set; } + [JsonPropertyName("DurLossReducePerLevel")] + public double? DurLossReducePerLevel { get; set; } - [JsonPropertyName("SkillPointsPerRepair")] - public double? SkillPointsPerRepair { get; set; } + [JsonPropertyName("SkillPointsPerRepair")] + public double? SkillPointsPerRepair { get; set; } - [JsonPropertyName("Filter")] - public List? Filter { get; set; } + [JsonPropertyName("Filter")] + public List? Filter { get; set; } - [JsonPropertyName("WearAmountRepairGunsReducePerLevel")] - public double? WearAmountRepairGunsReducePerLevel { get; set; } + [JsonPropertyName("WearAmountRepairGunsReducePerLevel")] + public double? WearAmountRepairGunsReducePerLevel { get; set; } - [JsonPropertyName("WearChanceRepairGunsReduceEliteLevel")] - public double? WearChanceRepairGunsReduceEliteLevel { get; set; } + [JsonPropertyName("WearChanceRepairGunsReduceEliteLevel")] + public double? WearChanceRepairGunsReduceEliteLevel { get; set; } } public class WeaponTreatmentCounters { - [JsonPropertyName("firearmsDurability")] - public SkillCounter? FirearmsDurability { get; set; } + [JsonPropertyName("firearmsDurability")] + public SkillCounter? FirearmsDurability { get; set; } } public class BuffSettings { - [JsonPropertyName("CommonBuffChanceLevelBonus")] - public double? CommonBuffChanceLevelBonus { get; set; } + [JsonPropertyName("CommonBuffChanceLevelBonus")] + public double? CommonBuffChanceLevelBonus { get; set; } - [JsonPropertyName("CommonBuffMinChanceValue")] - public double? CommonBuffMinChanceValue { get; set; } + [JsonPropertyName("CommonBuffMinChanceValue")] + public double? CommonBuffMinChanceValue { get; set; } - [JsonPropertyName("CurrentDurabilityLossToRemoveBuff")] - public double? CurrentDurabilityLossToRemoveBuff { get; set; } + [JsonPropertyName("CurrentDurabilityLossToRemoveBuff")] + public double? CurrentDurabilityLossToRemoveBuff { get; set; } - [JsonPropertyName("MaxDurabilityLossToRemoveBuff")] - public double? MaxDurabilityLossToRemoveBuff { get; set; } + [JsonPropertyName("MaxDurabilityLossToRemoveBuff")] + public double? MaxDurabilityLossToRemoveBuff { get; set; } - [JsonPropertyName("RareBuffChanceCoff")] - public double? RareBuffChanceCoff { get; set; } + [JsonPropertyName("RareBuffChanceCoff")] + public double? RareBuffChanceCoff { get; set; } - [JsonPropertyName("ReceivedDurabilityMaxPercent")] - public double? ReceivedDurabilityMaxPercent { get; set; } + [JsonPropertyName("ReceivedDurabilityMaxPercent")] + public double? ReceivedDurabilityMaxPercent { get; set; } } public class MagDrills { - [JsonPropertyName("RaidLoadedAmmoAction")] - public double? RaidLoadedAmmoAction { get; set; } + [JsonPropertyName("RaidLoadedAmmoAction")] + public double? RaidLoadedAmmoAction { get; set; } - [JsonPropertyName("RaidUnloadedAmmoAction")] - public double? RaidUnloadedAmmoAction { get; set; } + [JsonPropertyName("RaidUnloadedAmmoAction")] + public double? RaidUnloadedAmmoAction { get; set; } - [JsonPropertyName("MagazineCheckAction")] - public double? MagazineCheckAction { get; set; } + [JsonPropertyName("MagazineCheckAction")] + public double? MagazineCheckAction { get; set; } } public class Perception { - [JsonPropertyName("DependentSkillRatios")] - public List? DependentSkillRatios { get; set; } + [JsonPropertyName("DependentSkillRatios")] + public List? DependentSkillRatios { get; set; } - [JsonPropertyName("OnlineAction")] - public double? OnlineAction { get; set; } + [JsonPropertyName("OnlineAction")] + public double? OnlineAction { get; set; } - [JsonPropertyName("UniqueLoot")] - public double? UniqueLoot { get; set; } + [JsonPropertyName("UniqueLoot")] + public double? UniqueLoot { get; set; } } public class SkillRatio { - [JsonPropertyName("Ratio")] - public double? Ratio { get; set; } + [JsonPropertyName("Ratio")] + public double? Ratio { get; set; } - [JsonPropertyName("SkillId")] - public string? SkillId { get; set; } + [JsonPropertyName("SkillId")] + public string? SkillId { get; set; } } public class Intellect { - public SkillRatio[] DependentSkillRatios { get; set; } + public SkillRatio[] DependentSkillRatios { get; set; } - [JsonPropertyName("Counters")] - public IntellectCounters? Counters { get; set; } + [JsonPropertyName("Counters")] + public IntellectCounters? Counters { get; set; } - [JsonPropertyName("ExamineAction")] - public double? ExamineAction { get; set; } + [JsonPropertyName("ExamineAction")] + public double? ExamineAction { get; set; } - [JsonPropertyName("SkillProgress")] - public double? SkillProgress { get; set; } + [JsonPropertyName("SkillProgress")] + public double? SkillProgress { get; set; } - [JsonPropertyName("RepairAction")] - public double? RepairAction { get; set; } + [JsonPropertyName("RepairAction")] + public double? RepairAction { get; set; } - [JsonPropertyName("WearAmountReducePerLevel")] - public double? WearAmountReducePerLevel { get; set; } + [JsonPropertyName("WearAmountReducePerLevel")] + public double? WearAmountReducePerLevel { get; set; } - [JsonPropertyName("WearChanceReduceEliteLevel")] - public double? WearChanceReduceEliteLevel { get; set; } + [JsonPropertyName("WearChanceReduceEliteLevel")] + public double? WearChanceReduceEliteLevel { get; set; } - [JsonPropertyName("RepairPointsCostReduction")] - public double? RepairPointsCostReduction { get; set; } + [JsonPropertyName("RepairPointsCostReduction")] + public double? RepairPointsCostReduction { get; set; } } public class IntellectCounters { - [JsonPropertyName("armorDurability")] - public SkillCounter? ArmorDurability { get; set; } + [JsonPropertyName("armorDurability")] + public SkillCounter? ArmorDurability { get; set; } - [JsonPropertyName("firearmsDurability")] - public SkillCounter? FirearmsDurability { get; set; } + [JsonPropertyName("firearmsDurability")] + public SkillCounter? FirearmsDurability { get; set; } - [JsonPropertyName("meleeWeaponDurability")] - public SkillCounter? MeleeWeaponDurability { get; set; } + [JsonPropertyName("meleeWeaponDurability")] + public SkillCounter? MeleeWeaponDurability { get; set; } } public class SkillCounter { - [JsonPropertyName("divisor")] - public double? Divisor { get; set; } + [JsonPropertyName("divisor")] + public double? Divisor { get; set; } - [JsonPropertyName("points")] - public double? Points { get; set; } + [JsonPropertyName("points")] + public double? Points { get; set; } } public class Attention { - [JsonPropertyName("DependentSkillRatios")] - public SkillRatio[] DependentSkillRatios { get; set; } + [JsonPropertyName("DependentSkillRatios")] + public SkillRatio[] DependentSkillRatios { get; set; } - [JsonPropertyName("ExamineWithInstruction")] - public double? ExamineWithInstruction { get; set; } + [JsonPropertyName("ExamineWithInstruction")] + public double? ExamineWithInstruction { get; set; } - [JsonPropertyName("FindActionFalse")] - public double? FindActionFalse { get; set; } + [JsonPropertyName("FindActionFalse")] + public double? FindActionFalse { get; set; } - [JsonPropertyName("FindActionTrue")] - public double? FindActionTrue { get; set; } + [JsonPropertyName("FindActionTrue")] + public double? FindActionTrue { get; set; } } public class Charisma { - [JsonPropertyName("BonusSettings")] - public BonusSettings? BonusSettings { get; set; } + [JsonPropertyName("BonusSettings")] + public BonusSettings? BonusSettings { get; set; } - [JsonPropertyName("Counters")] - public CharismaSkillCounters? Counters { get; set; } + [JsonPropertyName("Counters")] + public CharismaSkillCounters? Counters { get; set; } - [JsonPropertyName("SkillProgressInt")] - public double? SkillProgressInt { get; set; } + [JsonPropertyName("SkillProgressInt")] + public double? SkillProgressInt { get; set; } - [JsonPropertyName("SkillProgressAtn")] - public double? SkillProgressAtn { get; set; } + [JsonPropertyName("SkillProgressAtn")] + public double? SkillProgressAtn { get; set; } - [JsonPropertyName("SkillProgressPer")] - public double? SkillProgressPer { get; set; } + [JsonPropertyName("SkillProgressPer")] + public double? SkillProgressPer { get; set; } } public class CharismaSkillCounters { - [JsonPropertyName("insuranceCost")] - public SkillCounter? InsuranceCost { get; set; } + [JsonPropertyName("insuranceCost")] + public SkillCounter? InsuranceCost { get; set; } - [JsonPropertyName("repairCost")] - public SkillCounter? RepairCost { get; set; } + [JsonPropertyName("repairCost")] + public SkillCounter? RepairCost { get; set; } - [JsonPropertyName("repeatableQuestCompleteCount")] - public SkillCounter? RepeatableQuestCompleteCount { get; set; } + [JsonPropertyName("repeatableQuestCompleteCount")] + public SkillCounter? RepeatableQuestCompleteCount { get; set; } - [JsonPropertyName("restoredHealthCost")] - public SkillCounter? RestoredHealthCost { get; set; } + [JsonPropertyName("restoredHealthCost")] + public SkillCounter? RestoredHealthCost { get; set; } - [JsonPropertyName("scavCaseCost")] - public SkillCounter? ScavCaseCost { get; set; } + [JsonPropertyName("scavCaseCost")] + public SkillCounter? ScavCaseCost { get; set; } } public class BonusSettings { - [JsonPropertyName("EliteBonusSettings")] - public EliteBonusSettings? EliteBonusSettings { get; set; } + [JsonPropertyName("EliteBonusSettings")] + public EliteBonusSettings? EliteBonusSettings { get; set; } - [JsonPropertyName("LevelBonusSettings")] - public LevelBonusSettings? LevelBonusSettings { get; set; } + [JsonPropertyName("LevelBonusSettings")] + public LevelBonusSettings? LevelBonusSettings { get; set; } } public class EliteBonusSettings { - [JsonPropertyName("FenceStandingLossDiscount")] - public double? FenceStandingLossDiscount { get; set; } + [JsonPropertyName("FenceStandingLossDiscount")] + public double? FenceStandingLossDiscount { get; set; } - [JsonPropertyName("RepeatableQuestExtraCount")] - public double? RepeatableQuestExtraCount { get; set; } + [JsonPropertyName("RepeatableQuestExtraCount")] + public double? RepeatableQuestExtraCount { get; set; } - [JsonPropertyName("ScavCaseDiscount")] - public double? ScavCaseDiscount { get; set; } + [JsonPropertyName("ScavCaseDiscount")] + public double? ScavCaseDiscount { get; set; } } public class LevelBonusSettings { - [JsonPropertyName("HealthRestoreDiscount")] - public double? HealthRestoreDiscount { get; set; } + [JsonPropertyName("HealthRestoreDiscount")] + public double? HealthRestoreDiscount { get; set; } - [JsonPropertyName("HealthRestoreTraderDiscount")] - public double? HealthRestoreTraderDiscount { get; set; } + [JsonPropertyName("HealthRestoreTraderDiscount")] + public double? HealthRestoreTraderDiscount { get; set; } - [JsonPropertyName("InsuranceDiscount")] - public double? InsuranceDiscount { get; set; } + [JsonPropertyName("InsuranceDiscount")] + public double? InsuranceDiscount { get; set; } - [JsonPropertyName("InsuranceTraderDiscount")] - public double? InsuranceTraderDiscount { get; set; } + [JsonPropertyName("InsuranceTraderDiscount")] + public double? InsuranceTraderDiscount { get; set; } - [JsonPropertyName("PaidExitDiscount")] - public double? PaidExitDiscount { get; set; } + [JsonPropertyName("PaidExitDiscount")] + public double? PaidExitDiscount { get; set; } - [JsonPropertyName("RepeatableQuestChangeDiscount")] - public double? RepeatableQuestChangeDiscount { get; set; } + [JsonPropertyName("RepeatableQuestChangeDiscount")] + public double? RepeatableQuestChangeDiscount { get; set; } } public class Memory { - [JsonPropertyName("AnySkillUp")] - public double? AnySkillUp { get; set; } + [JsonPropertyName("AnySkillUp")] + public double? AnySkillUp { get; set; } - [JsonPropertyName("SkillProgress")] - public double? SkillProgress { get; set; } + [JsonPropertyName("SkillProgress")] + public double? SkillProgress { get; set; } } public class Surgery { - [JsonPropertyName("SurgeryAction")] - public double? SurgeryAction { get; set; } + [JsonPropertyName("SurgeryAction")] + public double? SurgeryAction { get; set; } - [JsonPropertyName("SkillProgress")] - public double? SkillProgress { get; set; } + [JsonPropertyName("SkillProgress")] + public double? SkillProgress { get; set; } } public class AimDrills { - [JsonPropertyName("WeaponShotAction")] - public double? WeaponShotAction { get; set; } + [JsonPropertyName("WeaponShotAction")] + public double? WeaponShotAction { get; set; } } public class TroubleShooting { - [JsonPropertyName("MalfRepairSpeedBonusPerLevel")] - public double? MalfRepairSpeedBonusPerLevel { get; set; } + [JsonPropertyName("MalfRepairSpeedBonusPerLevel")] + public double? MalfRepairSpeedBonusPerLevel { get; set; } - [JsonPropertyName("SkillPointsPerMalfFix")] - public double? SkillPointsPerMalfFix { get; set; } + [JsonPropertyName("SkillPointsPerMalfFix")] + public double? SkillPointsPerMalfFix { get; set; } - [JsonPropertyName("EliteDurabilityChanceReduceMult")] - public double? EliteDurabilityChanceReduceMult { get; set; } + [JsonPropertyName("EliteDurabilityChanceReduceMult")] + public double? EliteDurabilityChanceReduceMult { get; set; } - [JsonPropertyName("EliteAmmoChanceReduceMult")] - public double? EliteAmmoChanceReduceMult { get; set; } + [JsonPropertyName("EliteAmmoChanceReduceMult")] + public double? EliteAmmoChanceReduceMult { get; set; } - [JsonPropertyName("EliteMagChanceReduceMult")] - public double? EliteMagChanceReduceMult { get; set; } + [JsonPropertyName("EliteMagChanceReduceMult")] + public double? EliteMagChanceReduceMult { get; set; } } public class Aiming { - [JsonPropertyName("ProceduralIntensityByPose")] - public XYZ? ProceduralIntensityByPose { get; set; } + [JsonPropertyName("ProceduralIntensityByPose")] + public XYZ? ProceduralIntensityByPose { get; set; } - [JsonPropertyName("AimProceduralIntensity")] - public double? AimProceduralIntensity { get; set; } + [JsonPropertyName("AimProceduralIntensity")] + public double? AimProceduralIntensity { get; set; } - [JsonPropertyName("HeavyWeight")] - public double? HeavyWeight { get; set; } + [JsonPropertyName("HeavyWeight")] + public double? HeavyWeight { get; set; } - [JsonPropertyName("LightWeight")] - public double? LightWeight { get; set; } + [JsonPropertyName("LightWeight")] + public double? LightWeight { get; set; } - [JsonPropertyName("MaxTimeHeavy")] - public double? MaxTimeHeavy { get; set; } + [JsonPropertyName("MaxTimeHeavy")] + public double? MaxTimeHeavy { get; set; } - [JsonPropertyName("MinTimeHeavy")] - public double? MinTimeHeavy { get; set; } + [JsonPropertyName("MinTimeHeavy")] + public double? MinTimeHeavy { get; set; } - [JsonPropertyName("MaxTimeLight")] - public double? MaxTimeLight { get; set; } + [JsonPropertyName("MaxTimeLight")] + public double? MaxTimeLight { get; set; } - [JsonPropertyName("MinTimeLight")] - public double? MinTimeLight { get; set; } + [JsonPropertyName("MinTimeLight")] + public double? MinTimeLight { get; set; } - [JsonPropertyName("RecoilScaling")] - public double? RecoilScaling { get; set; } + [JsonPropertyName("RecoilScaling")] + public double? RecoilScaling { get; set; } - [JsonPropertyName("RecoilDamping")] - public double? RecoilDamping { get; set; } + [JsonPropertyName("RecoilDamping")] + public double? RecoilDamping { get; set; } - [JsonPropertyName("CameraSnapGlobalMult")] - public double? CameraSnapGlobalMult { get; set; } + [JsonPropertyName("CameraSnapGlobalMult")] + public double? CameraSnapGlobalMult { get; set; } - [JsonPropertyName("RecoilXIntensityByPose")] - public XYZ? RecoilXIntensityByPose { get; set; } + [JsonPropertyName("RecoilXIntensityByPose")] + public XYZ? RecoilXIntensityByPose { get; set; } - [JsonPropertyName("RecoilYIntensityByPose")] - public XYZ? RecoilYIntensityByPose { get; set; } + [JsonPropertyName("RecoilYIntensityByPose")] + public XYZ? RecoilYIntensityByPose { get; set; } - [JsonPropertyName("RecoilZIntensityByPose")] - public XYZ? RecoilZIntensityByPose { get; set; } + [JsonPropertyName("RecoilZIntensityByPose")] + public XYZ? RecoilZIntensityByPose { get; set; } - [JsonPropertyName("RecoilCrank")] - public bool? RecoilCrank { get; set; } + [JsonPropertyName("RecoilCrank")] + public bool? RecoilCrank { get; set; } - [JsonPropertyName("RecoilHandDamping")] - public double? RecoilHandDamping { get; set; } + [JsonPropertyName("RecoilHandDamping")] + public double? RecoilHandDamping { get; set; } - [JsonPropertyName("RecoilConvergenceMult")] - public double? RecoilConvergenceMult { get; set; } + [JsonPropertyName("RecoilConvergenceMult")] + public double? RecoilConvergenceMult { get; set; } - [JsonPropertyName("RecoilVertBonus")] - public double? RecoilVertBonus { get; set; } + [JsonPropertyName("RecoilVertBonus")] + public double? RecoilVertBonus { get; set; } - [JsonPropertyName("RecoilBackBonus")] - public double? RecoilBackBonus { get; set; } + [JsonPropertyName("RecoilBackBonus")] + public double? RecoilBackBonus { get; set; } } public class Malfunction { - [JsonPropertyName("AmmoMalfChanceMult")] - public double? AmmoMalfChanceMult { get; set; } + [JsonPropertyName("AmmoMalfChanceMult")] + public double? AmmoMalfChanceMult { get; set; } - [JsonPropertyName("MagazineMalfChanceMult")] - public double? MagazineMalfChanceMult { get; set; } + [JsonPropertyName("MagazineMalfChanceMult")] + public double? MagazineMalfChanceMult { get; set; } - [JsonPropertyName("MalfRepairHardSlideMult")] - public double? MalfRepairHardSlideMult { get; set; } + [JsonPropertyName("MalfRepairHardSlideMult")] + public double? MalfRepairHardSlideMult { get; set; } - [JsonPropertyName("MalfRepairOneHandBrokenMult")] - public double? MalfRepairOneHandBrokenMult { get; set; } + [JsonPropertyName("MalfRepairOneHandBrokenMult")] + public double? MalfRepairOneHandBrokenMult { get; set; } - [JsonPropertyName("MalfRepairTwoHandsBrokenMult")] - public double? MalfRepairTwoHandsBrokenMult { get; set; } + [JsonPropertyName("MalfRepairTwoHandsBrokenMult")] + public double? MalfRepairTwoHandsBrokenMult { get; set; } - [JsonPropertyName("AllowMalfForBots")] - public bool? AllowMalfForBots { get; set; } + [JsonPropertyName("AllowMalfForBots")] + public bool? AllowMalfForBots { get; set; } - [JsonPropertyName("ShowGlowAttemptsCount")] - public double? ShowGlowAttemptsCount { get; set; } + [JsonPropertyName("ShowGlowAttemptsCount")] + public double? ShowGlowAttemptsCount { get; set; } - [JsonPropertyName("OutToIdleSpeedMultForPistol")] - public double? OutToIdleSpeedMultForPistol { get; set; } + [JsonPropertyName("OutToIdleSpeedMultForPistol")] + public double? OutToIdleSpeedMultForPistol { get; set; } - [JsonPropertyName("IdleToOutSpeedMultOnMalf")] - public double? IdleToOutSpeedMultOnMalf { get; set; } + [JsonPropertyName("IdleToOutSpeedMultOnMalf")] + public double? IdleToOutSpeedMultOnMalf { get; set; } - [JsonPropertyName("TimeToQuickdrawPistol")] - public double? TimeToQuickdrawPistol { get; set; } + [JsonPropertyName("TimeToQuickdrawPistol")] + public double? TimeToQuickdrawPistol { get; set; } - [JsonPropertyName("DurRangeToIgnoreMalfs")] - public XYZ? DurRangeToIgnoreMalfs { get; set; } + [JsonPropertyName("DurRangeToIgnoreMalfs")] + public XYZ? DurRangeToIgnoreMalfs { get; set; } - [JsonPropertyName("DurFeedWt")] - public double? DurFeedWt { get; set; } + [JsonPropertyName("DurFeedWt")] + public double? DurFeedWt { get; set; } - [JsonPropertyName("DurMisfireWt")] - public double? DurMisfireWt { get; set; } + [JsonPropertyName("DurMisfireWt")] + public double? DurMisfireWt { get; set; } - [JsonPropertyName("DurJamWt")] - public double? DurJamWt { get; set; } + [JsonPropertyName("DurJamWt")] + public double? DurJamWt { get; set; } - [JsonPropertyName("DurSoftSlideWt")] - public double? DurSoftSlideWt { get; set; } + [JsonPropertyName("DurSoftSlideWt")] + public double? DurSoftSlideWt { get; set; } - [JsonPropertyName("DurHardSlideMinWt")] - public double? DurHardSlideMinWt { get; set; } + [JsonPropertyName("DurHardSlideMinWt")] + public double? DurHardSlideMinWt { get; set; } - [JsonPropertyName("DurHardSlideMaxWt")] - public double? DurHardSlideMaxWt { get; set; } + [JsonPropertyName("DurHardSlideMaxWt")] + public double? DurHardSlideMaxWt { get; set; } - [JsonPropertyName("AmmoMisfireWt")] - public double? AmmoMisfireWt { get; set; } + [JsonPropertyName("AmmoMisfireWt")] + public double? AmmoMisfireWt { get; set; } - [JsonPropertyName("AmmoFeedWt")] - public double? AmmoFeedWt { get; set; } + [JsonPropertyName("AmmoFeedWt")] + public double? AmmoFeedWt { get; set; } - [JsonPropertyName("AmmoJamWt")] - public double? AmmoJamWt { get; set; } + [JsonPropertyName("AmmoJamWt")] + public double? AmmoJamWt { get; set; } - [JsonPropertyName("OverheatFeedWt")] - public double? OverheatFeedWt { get; set; } + [JsonPropertyName("OverheatFeedWt")] + public double? OverheatFeedWt { get; set; } - [JsonPropertyName("OverheatJamWt")] - public double? OverheatJamWt { get; set; } + [JsonPropertyName("OverheatJamWt")] + public double? OverheatJamWt { get; set; } - [JsonPropertyName("OverheatSoftSlideWt")] - public double? OverheatSoftSlideWt { get; set; } + [JsonPropertyName("OverheatSoftSlideWt")] + public double? OverheatSoftSlideWt { get; set; } - [JsonPropertyName("OverheatHardSlideMinWt")] - public double? OverheatHardSlideMinWt { get; set; } + [JsonPropertyName("OverheatHardSlideMinWt")] + public double? OverheatHardSlideMinWt { get; set; } - [JsonPropertyName("OverheatHardSlideMaxWt")] - public double? OverheatHardSlideMaxWt { get; set; } + [JsonPropertyName("OverheatHardSlideMaxWt")] + public double? OverheatHardSlideMaxWt { get; set; } } public class Overheat { - [JsonPropertyName("MinOverheat")] - public double? MinimumOverheat { get; set; } + [JsonPropertyName("MinOverheat")] + public double? MinimumOverheat { get; set; } - [JsonPropertyName("MaxOverheat")] - public double? MaximumOverheat { get; set; } + [JsonPropertyName("MaxOverheat")] + public double? MaximumOverheat { get; set; } - [JsonPropertyName("OverheatProblemsStart")] - public double? OverheatProblemsStart { get; set; } + [JsonPropertyName("OverheatProblemsStart")] + public double? OverheatProblemsStart { get; set; } - [JsonPropertyName("ModHeatFactor")] - public double? ModificationHeatFactor { get; set; } + [JsonPropertyName("ModHeatFactor")] + public double? ModificationHeatFactor { get; set; } - [JsonPropertyName("ModCoolFactor")] - public double? ModificationCoolFactor { get; set; } + [JsonPropertyName("ModCoolFactor")] + public double? ModificationCoolFactor { get; set; } - [JsonPropertyName("MinWearOnOverheat")] - public double? MinimumWearOnOverheat { get; set; } + [JsonPropertyName("MinWearOnOverheat")] + public double? MinimumWearOnOverheat { get; set; } - [JsonPropertyName("MaxWearOnOverheat")] - public double? MaximumWearOnOverheat { get; set; } + [JsonPropertyName("MaxWearOnOverheat")] + public double? MaximumWearOnOverheat { get; set; } - [JsonPropertyName("MinWearOnMaxOverheat")] - public double? MinimumWearOnMaximumOverheat { get; set; } + [JsonPropertyName("MinWearOnMaxOverheat")] + public double? MinimumWearOnMaximumOverheat { get; set; } - [JsonPropertyName("MaxWearOnMaxOverheat")] - public double? MaximumWearOnMaximumOverheat { get; set; } + [JsonPropertyName("MaxWearOnMaxOverheat")] + public double? MaximumWearOnMaximumOverheat { get; set; } - [JsonPropertyName("OverheatWearLimit")] - public double? OverheatWearLimit { get; set; } + [JsonPropertyName("OverheatWearLimit")] + public double? OverheatWearLimit { get; set; } - [JsonPropertyName("MaxCOIIncreaseMult")] - public double? MaximumCOIIncreaseMultiplier { get; set; } + [JsonPropertyName("MaxCOIIncreaseMult")] + public double? MaximumCOIIncreaseMultiplier { get; set; } - [JsonPropertyName("MinMalfChance")] - public double? MinimumMalfunctionChance { get; set; } + [JsonPropertyName("MinMalfChance")] + public double? MinimumMalfunctionChance { get; set; } - [JsonPropertyName("MaxMalfChance")] - public double? MaximumMalfunctionChance { get; set; } + [JsonPropertyName("MaxMalfChance")] + public double? MaximumMalfunctionChance { get; set; } - [JsonPropertyName("DurReduceMinMult")] - public double? DurabilityReductionMinimumMultiplier { get; set; } + [JsonPropertyName("DurReduceMinMult")] + public double? DurabilityReductionMinimumMultiplier { get; set; } - [JsonPropertyName("DurReduceMaxMult")] - public double? DurabilityReductionMaximumMultiplier { get; set; } + [JsonPropertyName("DurReduceMaxMult")] + public double? DurabilityReductionMaximumMultiplier { get; set; } - [JsonPropertyName("BarrelMoveRndDuration")] - public double? BarrelMovementRandomDuration { get; set; } + [JsonPropertyName("BarrelMoveRndDuration")] + public double? BarrelMovementRandomDuration { get; set; } - [JsonPropertyName("BarrelMoveMaxMult")] - public double? BarrelMovementMaximumMultiplier { get; set; } + [JsonPropertyName("BarrelMoveMaxMult")] + public double? BarrelMovementMaximumMultiplier { get; set; } - [JsonPropertyName("FireratePitchMult")] - public double? FireRatePitchMultiplier { get; set; } + [JsonPropertyName("FireratePitchMult")] + public double? FireRatePitchMultiplier { get; set; } - [JsonPropertyName("FirerateReduceMinMult")] - public double? FireRateReductionMinimumMultiplier { get; set; } + [JsonPropertyName("FirerateReduceMinMult")] + public double? FireRateReductionMinimumMultiplier { get; set; } - [JsonPropertyName("FirerateReduceMaxMult")] - public double? FireRateReductionMaximumMultiplier { get; set; } + [JsonPropertyName("FirerateReduceMaxMult")] + public double? FireRateReductionMaximumMultiplier { get; set; } - [JsonPropertyName("FirerateOverheatBorder")] - public double? FireRateOverheatBorder { get; set; } + [JsonPropertyName("FirerateOverheatBorder")] + public double? FireRateOverheatBorder { get; set; } - [JsonPropertyName("EnableSlideOnMaxOverheat")] - public bool? IsSlideEnabledOnMaximumOverheat { get; set; } + [JsonPropertyName("EnableSlideOnMaxOverheat")] + public bool? IsSlideEnabledOnMaximumOverheat { get; set; } - [JsonPropertyName("StartSlideOverheat")] - public double? StartSlideOverheat { get; set; } + [JsonPropertyName("StartSlideOverheat")] + public double? StartSlideOverheat { get; set; } - [JsonPropertyName("FixSlideOverheat")] - public double? FixSlideOverheat { get; set; } + [JsonPropertyName("FixSlideOverheat")] + public double? FixSlideOverheat { get; set; } - [JsonPropertyName("AutoshotMinOverheat")] - public double? AutoshotMinimumOverheat { get; set; } + [JsonPropertyName("AutoshotMinOverheat")] + public double? AutoshotMinimumOverheat { get; set; } - [JsonPropertyName("AutoshotChance")] - public double? AutoshotChance { get; set; } + [JsonPropertyName("AutoshotChance")] + public double? AutoshotChance { get; set; } - [JsonPropertyName("AutoshotPossibilityDuration")] - public double? AutoshotPossibilityDuration { get; set; } + [JsonPropertyName("AutoshotPossibilityDuration")] + public double? AutoshotPossibilityDuration { get; set; } - [JsonPropertyName("MaxOverheatCoolCoef")] - public double? MaximumOverheatCoolCoefficient { get; set; } + [JsonPropertyName("MaxOverheatCoolCoef")] + public double? MaximumOverheatCoolCoefficient { get; set; } } public class FenceSettings { - [JsonPropertyName("FenceId")] - public string? FenceIdentifier { get; set; } + [JsonPropertyName("FenceId")] + public string? FenceIdentifier { get; set; } - [JsonPropertyName("Levels")] - public Dictionary? Levels { get; set; } + [JsonPropertyName("Levels")] + public Dictionary? Levels { get; set; } - [JsonPropertyName("paidExitStandingNumerator")] - public double? PaidExitStandingNumerator { get; set; } + [JsonPropertyName("paidExitStandingNumerator")] + public double? PaidExitStandingNumerator { get; set; } - public double? PmcBotKillStandingMultiplier { get; set; } + public double? PmcBotKillStandingMultiplier { get; set; } } public class FenceLevel { - [JsonPropertyName("ReachOnMarkOnUnknowns")] - public bool? CanReachOnMarkOnUnknowns { get; set; } + [JsonPropertyName("ReachOnMarkOnUnknowns")] + public bool? CanReachOnMarkOnUnknowns { get; set; } - [JsonPropertyName("SavageCooldownModifier")] - public double? SavageCooldownModifier { get; set; } + [JsonPropertyName("SavageCooldownModifier")] + public double? SavageCooldownModifier { get; set; } - [JsonPropertyName("ScavCaseTimeModifier")] - public double? ScavCaseTimeModifier { get; set; } + [JsonPropertyName("ScavCaseTimeModifier")] + public double? ScavCaseTimeModifier { get; set; } - [JsonPropertyName("PaidExitCostModifier")] - public double? PaidExitCostModifier { get; set; } + [JsonPropertyName("PaidExitCostModifier")] + public double? PaidExitCostModifier { get; set; } - [JsonPropertyName("BotFollowChance")] - public double? BotFollowChance { get; set; } + [JsonPropertyName("BotFollowChance")] + public double? BotFollowChance { get; set; } - [JsonPropertyName("ScavEquipmentSpawnChanceModifier")] - public double? ScavEquipmentSpawnChanceModifier { get; set; } + [JsonPropertyName("ScavEquipmentSpawnChanceModifier")] + public double? ScavEquipmentSpawnChanceModifier { get; set; } - [JsonPropertyName("TransitGridSize")] - public XYZ? TransitGridSize { get; set; } + [JsonPropertyName("TransitGridSize")] + public XYZ? TransitGridSize { get; set; } - [JsonPropertyName("PriceModifier")] - public double? PriceModifier { get; set; } + [JsonPropertyName("PriceModifier")] + public double? PriceModifier { get; set; } - [JsonPropertyName("HostileBosses")] - public bool? AreHostileBossesPresent { get; set; } + [JsonPropertyName("HostileBosses")] + public bool? AreHostileBossesPresent { get; set; } - [JsonPropertyName("HostileScavs")] - public bool? AreHostileScavsPresent { get; set; } + [JsonPropertyName("HostileScavs")] + public bool? AreHostileScavsPresent { get; set; } - [JsonPropertyName("ScavAttackSupport")] - public bool? IsScavAttackSupported { get; set; } + [JsonPropertyName("ScavAttackSupport")] + public bool? IsScavAttackSupported { get; set; } - [JsonPropertyName("ExfiltrationPriceModifier")] - public double? ExfiltrationPriceModifier { get; set; } + [JsonPropertyName("ExfiltrationPriceModifier")] + public double? ExfiltrationPriceModifier { get; set; } - [JsonPropertyName("AvailableExits")] - public double? AvailableExits { get; set; } + [JsonPropertyName("AvailableExits")] + public double? AvailableExits { get; set; } - [JsonPropertyName("BotApplySilenceChance")] - public double? BotApplySilenceChance { get; set; } + [JsonPropertyName("BotApplySilenceChance")] + public double? BotApplySilenceChance { get; set; } - [JsonPropertyName("BotGetInCoverChance")] - public double? BotGetInCoverChance { get; set; } + [JsonPropertyName("BotGetInCoverChance")] + public double? BotGetInCoverChance { get; set; } - [JsonPropertyName("BotHelpChance")] - public double? BotHelpChance { get; set; } + [JsonPropertyName("BotHelpChance")] + public double? BotHelpChance { get; set; } - [JsonPropertyName("BotSpreadoutChance")] - public double? BotSpreadoutChance { get; set; } + [JsonPropertyName("BotSpreadoutChance")] + public double? BotSpreadoutChance { get; set; } - [JsonPropertyName("BotStopChance")] - public double? BotStopChance { get; set; } + [JsonPropertyName("BotStopChance")] + public double? BotStopChance { get; set; } - [JsonPropertyName("PriceModTaxi")] - public double? PriceModifierTaxi { get; set; } + [JsonPropertyName("PriceModTaxi")] + public double? PriceModifierTaxi { get; set; } - [JsonPropertyName("PriceModDelivery")] - public double? PriceModifierDelivery { get; set; } + [JsonPropertyName("PriceModDelivery")] + public double? PriceModifierDelivery { get; set; } - [JsonPropertyName("PriceModCleanUp")] - public double? PriceModifierCleanUp { get; set; } + [JsonPropertyName("PriceModCleanUp")] + public double? PriceModifierCleanUp { get; set; } - [JsonPropertyName("ReactOnMarkOnUnknowns")] - public bool? ReactOnMarkOnUnknowns { get; set; } + [JsonPropertyName("ReactOnMarkOnUnknowns")] + public bool? ReactOnMarkOnUnknowns { get; set; } - [JsonPropertyName("ReactOnMarkOnUnknownsPVE")] - public bool? ReactOnMarkOnUnknownsPVE { get; set; } + [JsonPropertyName("ReactOnMarkOnUnknownsPVE")] + public bool? ReactOnMarkOnUnknownsPVE { get; set; } - [JsonPropertyName("DeliveryGridSize")] - public XYZ? DeliveryGridSize { get; set; } + [JsonPropertyName("DeliveryGridSize")] + public XYZ? DeliveryGridSize { get; set; } - [JsonPropertyName("CanInteractWithBtr")] - public bool? CanInteractWithBtr { get; set; } + [JsonPropertyName("CanInteractWithBtr")] + public bool? CanInteractWithBtr { get; set; } - [JsonPropertyName("CircleOfCultistsBonusPercent")] - public double? CircleOfCultistsBonusPercentage { get; set; } + [JsonPropertyName("CircleOfCultistsBonusPercent")] + public double? CircleOfCultistsBonusPercentage { get; set; } } public class Inertia { - [JsonPropertyName("InertiaLimits")] - public XYZ? InertiaLimits { get; set; } + [JsonPropertyName("InertiaLimits")] + public XYZ? InertiaLimits { get; set; } - [JsonPropertyName("InertiaLimitsStep")] - public double? InertiaLimitsStep { get; set; } + [JsonPropertyName("InertiaLimitsStep")] + public double? InertiaLimitsStep { get; set; } - [JsonPropertyName("ExitMovementStateSpeedThreshold")] - public XYZ? ExitMovementStateSpeedThreshold { get; set; } + [JsonPropertyName("ExitMovementStateSpeedThreshold")] + public XYZ? ExitMovementStateSpeedThreshold { get; set; } - [JsonPropertyName("WalkInertia")] - public XYZ? WalkInertia { get; set; } + [JsonPropertyName("WalkInertia")] + public XYZ? WalkInertia { get; set; } - [JsonPropertyName("FallThreshold")] - public double? FallThreshold { get; set; } + [JsonPropertyName("FallThreshold")] + public double? FallThreshold { get; set; } - [JsonPropertyName("SpeedLimitAfterFallMin")] - public XYZ? SpeedLimitAfterFallMin { get; set; } + [JsonPropertyName("SpeedLimitAfterFallMin")] + public XYZ? SpeedLimitAfterFallMin { get; set; } - [JsonPropertyName("SpeedLimitAfterFallMax")] - public XYZ? SpeedLimitAfterFallMax { get; set; } + [JsonPropertyName("SpeedLimitAfterFallMax")] + public XYZ? SpeedLimitAfterFallMax { get; set; } - [JsonPropertyName("SpeedLimitDurationMin")] - public XYZ? SpeedLimitDurationMin { get; set; } + [JsonPropertyName("SpeedLimitDurationMin")] + public XYZ? SpeedLimitDurationMin { get; set; } - [JsonPropertyName("SpeedLimitDurationMax")] - public XYZ? SpeedLimitDurationMax { get; set; } + [JsonPropertyName("SpeedLimitDurationMax")] + public XYZ? SpeedLimitDurationMax { get; set; } - [JsonPropertyName("SpeedInertiaAfterJump")] - public XYZ? SpeedInertiaAfterJump { get; set; } + [JsonPropertyName("SpeedInertiaAfterJump")] + public XYZ? SpeedInertiaAfterJump { get; set; } - [JsonPropertyName("BaseJumpPenaltyDuration")] - public double? BaseJumpPenaltyDuration { get; set; } + [JsonPropertyName("BaseJumpPenaltyDuration")] + public double? BaseJumpPenaltyDuration { get; set; } - [JsonPropertyName("DurationPower")] - public double? DurationPower { get; set; } + [JsonPropertyName("DurationPower")] + public double? DurationPower { get; set; } - [JsonPropertyName("BaseJumpPenalty")] - public double? BaseJumpPenalty { get; set; } + [JsonPropertyName("BaseJumpPenalty")] + public double? BaseJumpPenalty { get; set; } - [JsonPropertyName("PenaltyPower")] - public double? PenaltyPower { get; set; } + [JsonPropertyName("PenaltyPower")] + public double? PenaltyPower { get; set; } - [JsonPropertyName("InertiaTiltCurveMin")] - public XYZ? InertiaTiltCurveMin { get; set; } + [JsonPropertyName("InertiaTiltCurveMin")] + public XYZ? InertiaTiltCurveMin { get; set; } - [JsonPropertyName("InertiaTiltCurveMax")] - public XYZ? InertiaTiltCurveMax { get; set; } + [JsonPropertyName("InertiaTiltCurveMax")] + public XYZ? InertiaTiltCurveMax { get; set; } - [JsonPropertyName("InertiaBackwardCoef")] - public XYZ? InertiaBackwardCoef { get; set; } + [JsonPropertyName("InertiaBackwardCoef")] + public XYZ? InertiaBackwardCoef { get; set; } - [JsonPropertyName("TiltInertiaMaxSpeed")] - public XYZ? TiltInertiaMaxSpeed { get; set; } + [JsonPropertyName("TiltInertiaMaxSpeed")] + public XYZ? TiltInertiaMaxSpeed { get; set; } - [JsonPropertyName("TiltStartSideBackSpeed")] - public XYZ? TiltStartSideBackSpeed { get; set; } + [JsonPropertyName("TiltStartSideBackSpeed")] + public XYZ? TiltStartSideBackSpeed { get; set; } - [JsonPropertyName("TiltMaxSideBackSpeed")] - public XYZ? TiltMaxSideBackSpeed { get; set; } + [JsonPropertyName("TiltMaxSideBackSpeed")] + public XYZ? TiltMaxSideBackSpeed { get; set; } - [JsonPropertyName("TiltAcceleration")] - public XYZ? TiltAcceleration { get; set; } + [JsonPropertyName("TiltAcceleration")] + public XYZ? TiltAcceleration { get; set; } - [JsonPropertyName("AverageRotationFrameSpan")] - public double? AverageRotationFrameSpan { get; set; } + [JsonPropertyName("AverageRotationFrameSpan")] + public double? AverageRotationFrameSpan { get; set; } - [JsonPropertyName("SprintSpeedInertiaCurveMin")] - public XYZ? SprintSpeedInertiaCurveMin { get; set; } + [JsonPropertyName("SprintSpeedInertiaCurveMin")] + public XYZ? SprintSpeedInertiaCurveMin { get; set; } - [JsonPropertyName("SprintSpeedInertiaCurveMax")] - public XYZ? SprintSpeedInertiaCurveMax { get; set; } + [JsonPropertyName("SprintSpeedInertiaCurveMax")] + public XYZ? SprintSpeedInertiaCurveMax { get; set; } - [JsonPropertyName("SprintBrakeInertia")] - public XYZ? SprintBrakeInertia { get; set; } + [JsonPropertyName("SprintBrakeInertia")] + public XYZ? SprintBrakeInertia { get; set; } - [JsonPropertyName("SprintTransitionMotionPreservation")] - public XYZ? SprintTransitionMotionPreservation { get; set; } + [JsonPropertyName("SprintTransitionMotionPreservation")] + public XYZ? SprintTransitionMotionPreservation { get; set; } - [JsonPropertyName("WeaponFlipSpeed")] - public XYZ? WeaponFlipSpeed { get; set; } + [JsonPropertyName("WeaponFlipSpeed")] + public XYZ? WeaponFlipSpeed { get; set; } - [JsonPropertyName("PreSprintAccelerationLimits")] - public XYZ? PreSprintAccelerationLimits { get; set; } + [JsonPropertyName("PreSprintAccelerationLimits")] + public XYZ? PreSprintAccelerationLimits { get; set; } - [JsonPropertyName("SprintAccelerationLimits")] - public XYZ? SprintAccelerationLimits { get; set; } + [JsonPropertyName("SprintAccelerationLimits")] + public XYZ? SprintAccelerationLimits { get; set; } - [JsonPropertyName("SideTime")] - public XYZ? SideTime { get; set; } + [JsonPropertyName("SideTime")] + public XYZ? SideTime { get; set; } - [JsonPropertyName("DiagonalTime")] - public XYZ? DiagonalTime { get; set; } + [JsonPropertyName("DiagonalTime")] + public XYZ? DiagonalTime { get; set; } - [JsonPropertyName("MaxTimeWithoutInput")] - public XYZ? MaxTimeWithoutInput { get; set; } + [JsonPropertyName("MaxTimeWithoutInput")] + public XYZ? MaxTimeWithoutInput { get; set; } - [JsonPropertyName("MinDirectionBlendTime")] - public double? MinDirectionBlendTime { get; set; } + [JsonPropertyName("MinDirectionBlendTime")] + public double? MinDirectionBlendTime { get; set; } - [JsonPropertyName("MoveTimeRange")] - public XYZ? MoveTimeRange { get; set; } + [JsonPropertyName("MoveTimeRange")] + public XYZ? MoveTimeRange { get; set; } - [JsonPropertyName("ProneDirectionAccelerationRange")] - public XYZ? ProneDirectionAccelerationRange { get; set; } + [JsonPropertyName("ProneDirectionAccelerationRange")] + public XYZ? ProneDirectionAccelerationRange { get; set; } - [JsonPropertyName("ProneSpeedAccelerationRange")] - public XYZ? ProneSpeedAccelerationRange { get; set; } + [JsonPropertyName("ProneSpeedAccelerationRange")] + public XYZ? ProneSpeedAccelerationRange { get; set; } - [JsonPropertyName("MinMovementAccelerationRangeRight")] - public XYZ? MinMovementAccelerationRangeRight { get; set; } + [JsonPropertyName("MinMovementAccelerationRangeRight")] + public XYZ? MinMovementAccelerationRangeRight { get; set; } - [JsonPropertyName("MaxMovementAccelerationRangeRight")] - public XYZ? MaxMovementAccelerationRangeRight { get; set; } + [JsonPropertyName("MaxMovementAccelerationRangeRight")] + public XYZ? MaxMovementAccelerationRangeRight { get; set; } - public XYZ? CrouchSpeedAccelerationRange { get; set; } + public XYZ? CrouchSpeedAccelerationRange { get; set; } } public class Ballistic { - [JsonPropertyName("GlobalDamageDegradationCoefficient")] - public double? GlobalDamageDegradationCoefficient { get; set; } + [JsonPropertyName("GlobalDamageDegradationCoefficient")] + public double? GlobalDamageDegradationCoefficient { get; set; } } public class RepairSettings { - [JsonPropertyName("ItemEnhancementSettings")] - public ItemEnhancementSettings? ItemEnhancementSettings { get; set; } + [JsonPropertyName("ItemEnhancementSettings")] + public ItemEnhancementSettings? ItemEnhancementSettings { get; set; } - [JsonPropertyName("MinimumLevelToApplyBuff")] - public double? MinimumLevelToApplyBuff { get; set; } + [JsonPropertyName("MinimumLevelToApplyBuff")] + public double? MinimumLevelToApplyBuff { get; set; } - [JsonPropertyName("RepairStrategies")] - public RepairStrategies? RepairStrategies { get; set; } + [JsonPropertyName("RepairStrategies")] + public RepairStrategies? RepairStrategies { get; set; } - [JsonPropertyName("armorClassDivisor")] - public double? ArmorClassDivisor { get; set; } + [JsonPropertyName("armorClassDivisor")] + public double? ArmorClassDivisor { get; set; } - [JsonPropertyName("durabilityPointCostArmor")] - public double? DurabilityPointCostArmor { get; set; } + [JsonPropertyName("durabilityPointCostArmor")] + public double? DurabilityPointCostArmor { get; set; } - [JsonPropertyName("durabilityPointCostGuns")] - public double? DurabilityPointCostGuns { get; set; } + [JsonPropertyName("durabilityPointCostGuns")] + public double? DurabilityPointCostGuns { get; set; } } public class ItemEnhancementSettings { - [JsonPropertyName("DamageReduction")] - public PriceModifier? DamageReduction { get; set; } + [JsonPropertyName("DamageReduction")] + public PriceModifier? DamageReduction { get; set; } - [JsonPropertyName("MalfunctionProtections")] - public PriceModifier? MalfunctionProtections { get; set; } + [JsonPropertyName("MalfunctionProtections")] + public PriceModifier? MalfunctionProtections { get; set; } - [JsonPropertyName("WeaponSpread")] - public PriceModifier? WeaponSpread { get; set; } + [JsonPropertyName("WeaponSpread")] + public PriceModifier? WeaponSpread { get; set; } } public class PriceModifier { - [JsonPropertyName("PriceModifier")] - public double? PriceModifierValue { get; set; } + [JsonPropertyName("PriceModifier")] + public double? PriceModifierValue { get; set; } } public class RepairStrategies { - [JsonPropertyName("Armor")] - public RepairStrategy? Armor { get; set; } + [JsonPropertyName("Armor")] + public RepairStrategy? Armor { get; set; } - [JsonPropertyName("Firearms")] - public RepairStrategy? Firearms { get; set; } + [JsonPropertyName("Firearms")] + public RepairStrategy? Firearms { get; set; } } public class RepairStrategy { - [JsonPropertyName("BuffTypes")] - public List? BuffTypes { get; set; } + [JsonPropertyName("BuffTypes")] + public List? BuffTypes { get; set; } - [JsonPropertyName("Filter")] - public List? Filter { get; set; } + [JsonPropertyName("Filter")] + public List? Filter { get; set; } } public class BotPreset { - [JsonPropertyName("UseThis")] - public bool? UseThis { get; set; } + [JsonPropertyName("UseThis")] + public bool? UseThis { get; set; } - [JsonPropertyName("Role")] - public string? Role { get; set; } + [JsonPropertyName("Role")] + public string? Role { get; set; } - [JsonPropertyName("BotDifficulty")] - public string? BotDifficulty { get; set; } + [JsonPropertyName("BotDifficulty")] + public string? BotDifficulty { get; set; } - [JsonPropertyName("VisibleAngle")] - public double? VisibleAngle { get; set; } + [JsonPropertyName("VisibleAngle")] + public double? VisibleAngle { get; set; } - [JsonPropertyName("VisibleDistance")] - public double? VisibleDistance { get; set; } + [JsonPropertyName("VisibleDistance")] + public double? VisibleDistance { get; set; } - [JsonPropertyName("ScatteringPerMeter")] - public double? ScatteringPerMeter { get; set; } + [JsonPropertyName("ScatteringPerMeter")] + public double? ScatteringPerMeter { get; set; } - [JsonPropertyName("HearingSense")] - public double? HearingSense { get; set; } + [JsonPropertyName("HearingSense")] + public double? HearingSense { get; set; } - [JsonPropertyName("SCATTERING_DIST_MODIF")] - public double? ScatteringDistModif { get; set; } + [JsonPropertyName("SCATTERING_DIST_MODIF")] + public double? ScatteringDistModif { get; set; } - [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] - public double? MaxAimingUpgradeByTime { get; set; } + [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] + public double? MaxAimingUpgradeByTime { get; set; } - [JsonPropertyName("FIRST_CONTACT_ADD_SEC")] - public double? FirstContactAddSec { get; set; } + [JsonPropertyName("FIRST_CONTACT_ADD_SEC")] + public double? FirstContactAddSec { get; set; } - [JsonPropertyName("COEF_IF_MOVE")] - public double? CoefIfMove { get; set; } + [JsonPropertyName("COEF_IF_MOVE")] + public double? CoefIfMove { get; set; } } public class AudioSettings { - [JsonPropertyName("AudioGroupPresets")] - public List? AudioGroupPresets { get; set; } + [JsonPropertyName("AudioGroupPresets")] + public List? AudioGroupPresets { get; set; } - [JsonPropertyName("EnvironmentSettings")] - public EnvironmentSettings? EnvironmentSettings { get; set; } + [JsonPropertyName("EnvironmentSettings")] + public EnvironmentSettings? EnvironmentSettings { get; set; } - [JsonPropertyName("PlayerSettings")] - public PlayerSettings? PlayerSettings { get; set; } + [JsonPropertyName("PlayerSettings")] + public PlayerSettings? PlayerSettings { get; set; } - [JsonPropertyName("RadioBroadcastSettings")] - public RadioBroadcastSettings? RadioBroadcastSettings { get; set; } + [JsonPropertyName("RadioBroadcastSettings")] + public RadioBroadcastSettings? RadioBroadcastSettings { get; set; } } public class AudioGroupPreset { - [JsonPropertyName("AngleToAllowBinaural")] - public double? AngleToAllowBinaural { get; set; } + [JsonPropertyName("AngleToAllowBinaural")] + public double? AngleToAllowBinaural { get; set; } - [JsonPropertyName("DisabledBinauralByDistance")] - public bool? DisabledBinauralByDistance { get; set; } + [JsonPropertyName("DisabledBinauralByDistance")] + public bool? DisabledBinauralByDistance { get; set; } - [JsonPropertyName("DistanceToAllowBinaural")] - public double? DistanceToAllowBinaural { get; set; } + [JsonPropertyName("DistanceToAllowBinaural")] + public double? DistanceToAllowBinaural { get; set; } - [JsonPropertyName("GroupType")] - public double? GroupType { get; set; } + [JsonPropertyName("GroupType")] + public double? GroupType { get; set; } - [JsonPropertyName("HeightToAllowBinaural")] - public double? HeightToAllowBinaural { get; set; } + [JsonPropertyName("HeightToAllowBinaural")] + public double? HeightToAllowBinaural { get; set; } - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("OcclusionEnabled")] - public bool? OcclusionEnabled { get; set; } + [JsonPropertyName("OcclusionEnabled")] + public bool? OcclusionEnabled { get; set; } - [JsonPropertyName("OcclusionIntensity")] - public double? OcclusionIntensity { get; set; } + [JsonPropertyName("OcclusionIntensity")] + public double? OcclusionIntensity { get; set; } - [JsonPropertyName("OcclusionRolloffScale")] - public double? OcclusionRolloffScale { get; set; } + [JsonPropertyName("OcclusionRolloffScale")] + public double? OcclusionRolloffScale { get; set; } - [JsonPropertyName("OverallVolume")] - public double? OverallVolume { get; set; } + [JsonPropertyName("OverallVolume")] + public double? OverallVolume { get; set; } } public class EnvironmentSettings { - [JsonPropertyName("SnowStepsVolumeMultiplier")] - public double? SnowStepsVolumeMultiplier { get; set; } + [JsonPropertyName("SnowStepsVolumeMultiplier")] + public double? SnowStepsVolumeMultiplier { get; set; } - [JsonPropertyName("SurfaceMultipliers")] - public List? SurfaceMultipliers { get; set; } + [JsonPropertyName("SurfaceMultipliers")] + public List? SurfaceMultipliers { get; set; } } public class SurfaceMultiplier { - [JsonPropertyName("SurfaceType")] - public string? SurfaceType { get; set; } + [JsonPropertyName("SurfaceType")] + public string? SurfaceType { get; set; } - [JsonPropertyName("VolumeMult")] - public double? VolumeMultiplier { get; set; } + [JsonPropertyName("VolumeMult")] + public double? VolumeMultiplier { get; set; } } public class BotWeaponScattering { - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("PriorityScatter1meter")] - public double? PriorityScatter1Meter { get; set; } + [JsonPropertyName("PriorityScatter1meter")] + public double? PriorityScatter1Meter { get; set; } - [JsonPropertyName("PriorityScatter10meter")] - public double? PriorityScatter10Meter { get; set; } + [JsonPropertyName("PriorityScatter10meter")] + public double? PriorityScatter10Meter { get; set; } - [JsonPropertyName("PriorityScatter100meter")] - public double? PriorityScatter100Meter { get; set; } + [JsonPropertyName("PriorityScatter100meter")] + public double? PriorityScatter100Meter { get; set; } } public class Preset { - [JsonPropertyName("_id")] - public string? Id { get; set; } + [JsonPropertyName("_id")] + public string? Id { get; set; } - [JsonPropertyName("_type")] - public string? Type { get; set; } + [JsonPropertyName("_type")] + public string? Type { get; set; } - [JsonPropertyName("_changeWeaponName")] - public bool? ChangeWeaponName { get; set; } + [JsonPropertyName("_changeWeaponName")] + public bool? ChangeWeaponName { get; set; } - [JsonPropertyName("_name")] - public string? Name { get; set; } + [JsonPropertyName("_name")] + public string? Name { get; set; } - [JsonPropertyName("_parent")] - public string? Parent { get; set; } + [JsonPropertyName("_parent")] + public string? Parent { get; set; } - [JsonPropertyName("_items")] - public List? Items { get; set; } + [JsonPropertyName("_items")] + public List? Items { get; set; } - /** Default presets have this property */ - [JsonPropertyName("_encyclopedia")] - public string? Encyclopedia { get; set; } + /** Default presets have this property */ + [JsonPropertyName("_encyclopedia")] + public string? Encyclopedia { get; set; } } public class QuestSettings { - [JsonPropertyName("GlobalRewardRepModifierDailyQuestPvE")] - public double? GlobalRewardRepModifierDailyQuestPvE { get; set; } + [JsonPropertyName("GlobalRewardRepModifierDailyQuestPvE")] + public double? GlobalRewardRepModifierDailyQuestPvE { get; set; } - [JsonPropertyName("GlobalRewardRepModifierQuestPvE")] - public double? GlobalRewardRepModifierQuestPvE { get; set; } + [JsonPropertyName("GlobalRewardRepModifierQuestPvE")] + public double? GlobalRewardRepModifierQuestPvE { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Location.cs b/Core/Models/Eft/Common/Location.cs index 7dfebd87..9d656ced 100644 --- a/Core/Models/Eft/Common/Location.cs +++ b/Core/Models/Eft/Common/Location.cs @@ -5,190 +5,190 @@ namespace Core.Models.Eft.Common; public class Location { - /** Map meta-data */ - [JsonPropertyName("base")] - public LocationBase? Base { get; set; } + /** Map meta-data */ + [JsonPropertyName("base")] + public LocationBase? Base { get; set; } - /** Loose loot positions and item weights */ - [JsonPropertyName("looseLoot")] - public LooseLoot? LooseLoot { get; set; } + /** Loose loot positions and item weights */ + [JsonPropertyName("looseLoot")] + public LooseLoot? LooseLoot { get; set; } - /** Static loot item weights */ - [JsonPropertyName("staticLoot")] - public Dictionary? StaticLoot { get; set; } + /** Static loot item weights */ + [JsonPropertyName("staticLoot")] + public Dictionary? StaticLoot { get; set; } - /** Static container positions and item weights */ - [JsonPropertyName("staticContainers")] - public StaticContainerDetails? StaticContainers { get; set; } + /** Static container positions and item weights */ + [JsonPropertyName("staticContainers")] + public StaticContainerDetails? StaticContainers { get; set; } - [JsonPropertyName("staticAmmo")] - public Dictionary StaticAmmo { get; set; } + [JsonPropertyName("staticAmmo")] + public Dictionary StaticAmmo { get; set; } - /** All possible static containers on map + their assign groupings */ - [JsonPropertyName("statics")] - public StaticContainer? StaticContainer { get; set; } + /** All possible static containers on map + their assign groupings */ + [JsonPropertyName("statics")] + public StaticContainer? StaticContainer { get; set; } - /** All possible map extracts */ - [JsonPropertyName("allExtracts")] - public Exit[] AllExtracts { get; set; } + /** All possible map extracts */ + [JsonPropertyName("allExtracts")] + public Exit[] AllExtracts { get; set; } - // TODO: talk to chomp about this type! - [JsonPropertyName("statics")] - public Dictionary? Statics { get; set; } + // TODO: talk to chomp about this type! + [JsonPropertyName("statics")] + public Dictionary? Statics { get; set; } } public class StaticContainer { - [JsonPropertyName("containersGroups")] - public Dictionary? ContainersGroups { get; set; } + [JsonPropertyName("containersGroups")] + public Dictionary? ContainersGroups { get; set; } - [JsonPropertyName("containers")] - public Dictionary? Containers { get; set; } + [JsonPropertyName("containers")] + public Dictionary? Containers { get; set; } } public class ContainerMinMax { - [JsonPropertyName("minContainers")] - public int? MinContainers { get; set; } + [JsonPropertyName("minContainers")] + public int? MinContainers { get; set; } - [JsonPropertyName("maxContainers")] - public int? MaxContainers { get; set; } + [JsonPropertyName("maxContainers")] + public int? MaxContainers { get; set; } - [JsonPropertyName("current")] - public int? Current { get; set; } + [JsonPropertyName("current")] + public int? Current { get; set; } - [JsonPropertyName("chosenCount")] - public int? ChosenCount { get; set; } + [JsonPropertyName("chosenCount")] + public int? ChosenCount { get; set; } } public class ContainerData { - [JsonPropertyName("groupId")] - public string? GroupId { get; set; } + [JsonPropertyName("groupId")] + public string? GroupId { get; set; } } public class StaticLootDetails { - [JsonPropertyName("itemcountDistribution")] - public ItemCountDistribution[] ItemCountDistribution { get; set; } + [JsonPropertyName("itemcountDistribution")] + public ItemCountDistribution[] ItemCountDistribution { get; set; } - [JsonPropertyName("itemDistribution")] - public ItemDistribution[] ItemDistribution { get; set; } + [JsonPropertyName("itemDistribution")] + public ItemDistribution[] ItemDistribution { get; set; } } public class ItemCountDistribution { - [JsonPropertyName("count")] - public int? Count { get; set; } + [JsonPropertyName("count")] + public int? Count { get; set; } - [JsonPropertyName("relativeProbability")] - public float? RelativeProbability { get; set; } + [JsonPropertyName("relativeProbability")] + public float? RelativeProbability { get; set; } } public class ItemDistribution { - [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + [JsonPropertyName("tpl")] + public string? Tpl { get; set; } - [JsonPropertyName("relativeProbability")] - public float? RelativeProbability { get; set; } + [JsonPropertyName("relativeProbability")] + public float? RelativeProbability { get; set; } } public class StaticPropsBase { - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("IsContainer")] - public bool? IsContainer { get; set; } + [JsonPropertyName("IsContainer")] + public bool? IsContainer { get; set; } - [JsonPropertyName("useGravity")] - public bool? UseGravity { get; set; } + [JsonPropertyName("useGravity")] + public bool? UseGravity { get; set; } - [JsonPropertyName("randomRotation")] - public bool? RandomRotation { get; set; } + [JsonPropertyName("randomRotation")] + public bool? RandomRotation { get; set; } - [JsonPropertyName("Position")] - public XYZ? Position { get; set; } + [JsonPropertyName("Position")] + public XYZ? Position { get; set; } - [JsonPropertyName("Rotation")] - public XYZ? Rotation { get; set; } + [JsonPropertyName("Rotation")] + public XYZ? Rotation { get; set; } - [JsonPropertyName("IsGroupPosition")] - public bool? IsGroupPosition { get; set; } + [JsonPropertyName("IsGroupPosition")] + public bool? IsGroupPosition { get; set; } - [JsonPropertyName("IsAlwaysSpawn")] - public bool? IsAlwaysSpawn { get; set; } + [JsonPropertyName("IsAlwaysSpawn")] + public bool? IsAlwaysSpawn { get; set; } - [JsonPropertyName("GroupPositions")] - public GroupPosition[] GroupPositions { get; set; } + [JsonPropertyName("GroupPositions")] + public GroupPosition[] GroupPositions { get; set; } - [JsonPropertyName("Root")] - public string? Root { get; set; } + [JsonPropertyName("Root")] + public string? Root { get; set; } - [JsonPropertyName("Items")] - public Item[] Items { get; set; } + [JsonPropertyName("Items")] + public Item[] Items { get; set; } } public class StaticWeaponProps : StaticPropsBase { - [JsonPropertyName("Items")] - public Item[] Items { get; set; } + [JsonPropertyName("Items")] + public Item[] Items { get; set; } } public class StaticContainerDetails { - [JsonPropertyName("staticWeapons")] - public StaticWeaponProps[] StaticWeapons { get; set; } + [JsonPropertyName("staticWeapons")] + public StaticWeaponProps[] StaticWeapons { get; set; } - [JsonPropertyName("staticContainers")] - public StaticContainerData[] StaticContainers { get; set; } + [JsonPropertyName("staticContainers")] + public StaticContainerData[] StaticContainers { get; set; } - [JsonPropertyName("staticForced")] - public StaticForcedProps[] StaticForced { get; set; } + [JsonPropertyName("staticForced")] + public StaticForcedProps[] StaticForced { get; set; } } public class StaticContainerData { - [JsonPropertyName("probability")] - public float? Probability { get; set; } + [JsonPropertyName("probability")] + public float? Probability { get; set; } - [JsonPropertyName("template")] - public StaticContainerProps? Template { get; set; } + [JsonPropertyName("template")] + public StaticContainerProps? Template { get; set; } } public class StaticAmmoDetails { - [JsonPropertyName("tpl")] - public string? Tpl { get; set; } + [JsonPropertyName("tpl")] + public string? Tpl { get; set; } - [JsonPropertyName("relativeProbability")] - public float? RelativeProbability { get; set; } + [JsonPropertyName("relativeProbability")] + public float? RelativeProbability { get; set; } } public class StaticForcedProps { - [JsonPropertyName("containerId")] - public string? ContainerId { get; set; } + [JsonPropertyName("containerId")] + public string? ContainerId { get; set; } - [JsonPropertyName("itemTpl")] - public string? ItemTpl { get; set; } + [JsonPropertyName("itemTpl")] + public string? ItemTpl { get; set; } } public class StaticContainerProps : StaticPropsBase { - [JsonPropertyName("Items")] - public StaticItem[] Items { get; set; } + [JsonPropertyName("Items")] + public StaticItem[] Items { get; set; } } public class StaticItem { - [JsonPropertyName("_id")] - public string? Id { get; set; } + [JsonPropertyName("_id")] + public string? Id { get; set; } - [JsonPropertyName("_tpl")] - public string? Tpl { get; set; } + [JsonPropertyName("_tpl")] + public string? Tpl { get; set; } - [JsonPropertyName("upd")] - public Upd? Upd { get; set; } + [JsonPropertyName("upd")] + public Upd? Upd { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/LocationBase.cs b/Core/Models/Eft/Common/LocationBase.cs index c6ef4266..bc23cd9a 100644 --- a/Core/Models/Eft/Common/LocationBase.cs +++ b/Core/Models/Eft/Common/LocationBase.cs @@ -5,905 +5,905 @@ namespace Core.Models.Eft.Common; public class LocationBase { - [JsonPropertyName("AccessKeys")] - public List? AccessKeys { get; set; } + [JsonPropertyName("AccessKeys")] + public List? AccessKeys { get; set; } - [JsonPropertyName("AccessKeysPvE")] - public List? AccessKeysPvE { get; set; } + [JsonPropertyName("AccessKeysPvE")] + public List? AccessKeysPvE { get; set; } - [JsonPropertyName("AirdropParameters")] - public List? AirdropParameters { get; set; } + [JsonPropertyName("AirdropParameters")] + public List? AirdropParameters { get; set; } - [JsonPropertyName("NewSpawnForPlayers")] - public bool? NewSpawnForPlayers { get; set; } + [JsonPropertyName("NewSpawnForPlayers")] + public bool? NewSpawnForPlayers { get; set; } - [JsonPropertyName("OfflineNewSpawn")] - public bool? OfflineNewSpawn { get; set; } + [JsonPropertyName("OfflineNewSpawn")] + public bool? OfflineNewSpawn { get; set; } - [JsonPropertyName("OfflineOldSpawn")] - public bool? OfflineOldSpawn { get; set; } + [JsonPropertyName("OfflineOldSpawn")] + public bool? OfflineOldSpawn { get; set; } - [JsonPropertyName("Area")] - public double? Area { get; set; } + [JsonPropertyName("Area")] + public double? Area { get; set; } - [JsonPropertyName("AveragePlayTime")] - public double? AveragePlayTime { get; set; } + [JsonPropertyName("AveragePlayTime")] + public double? AveragePlayTime { get; set; } - [JsonPropertyName("AveragePlayerLevel")] - public double? AveragePlayerLevel { get; set; } + [JsonPropertyName("AveragePlayerLevel")] + public double? AveragePlayerLevel { get; set; } - [JsonPropertyName("Banners")] - public List? Banners { get; set; } + [JsonPropertyName("Banners")] + public List? Banners { get; set; } - [JsonPropertyName("BossLocationSpawn")] - public List? BossLocationSpawn { get; set; } + [JsonPropertyName("BossLocationSpawn")] + public List? BossLocationSpawn { get; set; } - [JsonPropertyName("secretExits")] - public List? SecretExits { get; set; } + [JsonPropertyName("secretExits")] + public List? SecretExits { get; set; } - [JsonPropertyName("BotStartPlayer")] - public int? BotStartPlayer { get; set; } + [JsonPropertyName("BotStartPlayer")] + public int? BotStartPlayer { get; set; } - [JsonPropertyName("BotAssault")] - public int? BotAssault { get; set; } + [JsonPropertyName("BotAssault")] + public int? BotAssault { get; set; } - /** Weighting on how likely a bot will be Easy difficulty */ - [JsonPropertyName("BotEasy")] - public int? BotEasy { get; set; } + /** Weighting on how likely a bot will be Easy difficulty */ + [JsonPropertyName("BotEasy")] + public int? BotEasy { get; set; } - /** Weighting on how likely a bot will be Hard difficulty */ - [JsonPropertyName("BotHard")] - public int? BotHard { get; set; } + /** Weighting on how likely a bot will be Hard difficulty */ + [JsonPropertyName("BotHard")] + public int? BotHard { get; set; } - /** Weighting on how likely a bot will be Impossible difficulty */ - [JsonPropertyName("BotImpossible")] - public int? BotImpossible { get; set; } + /** Weighting on how likely a bot will be Impossible difficulty */ + [JsonPropertyName("BotImpossible")] + public int? BotImpossible { get; set; } - [JsonPropertyName("BotLocationModifier")] - public BotLocationModifier? BotLocationModifier { get; set; } + [JsonPropertyName("BotLocationModifier")] + public BotLocationModifier? BotLocationModifier { get; set; } - [JsonPropertyName("BotMarksman")] - public int? BotMarksman { get; set; } + [JsonPropertyName("BotMarksman")] + public int? BotMarksman { get; set; } - /** Maximum Number of bots that are currently alive/loading/delayed */ - [JsonPropertyName("BotMax")] - public int? BotMax { get; set; } + /** Maximum Number of bots that are currently alive/loading/delayed */ + [JsonPropertyName("BotMax")] + public int? BotMax { get; set; } - /** Is not used in 33420 */ - [JsonPropertyName("BotMaxPlayer")] - public int? BotMaxPlayer { get; set; } + /** Is not used in 33420 */ + [JsonPropertyName("BotMaxPlayer")] + public int? BotMaxPlayer { get; set; } - /** Is not used in 33420 */ - [JsonPropertyName("BotMaxTimePlayer")] - public int? BotMaxTimePlayer { get; set; } + /** Is not used in 33420 */ + [JsonPropertyName("BotMaxTimePlayer")] + public int? BotMaxTimePlayer { get; set; } - /** Does not even exist in the client in 33420 */ - [JsonPropertyName("BotMaxPvE")] - public int? BotMaxPvE { get; set; } + /** Does not even exist in the client in 33420 */ + [JsonPropertyName("BotMaxPvE")] + public int? BotMaxPvE { get; set; } - /** Weighting on how likely a bot will be Normal difficulty */ - [JsonPropertyName("BotNormal")] - public int? BotNormal { get; set; } + /** Weighting on how likely a bot will be Normal difficulty */ + [JsonPropertyName("BotNormal")] + public int? BotNormal { get; set; } - /** How many bot slots that need to be open before trying to spawn new bots. */ - [JsonPropertyName("BotSpawnCountStep")] - public int? BotSpawnCountStep { get; set; } + /** How many bot slots that need to be open before trying to spawn new bots. */ + [JsonPropertyName("BotSpawnCountStep")] + public int? BotSpawnCountStep { get; set; } - /** How often to check if bots are spawn-able. In seconds */ - [JsonPropertyName("BotSpawnPeriodCheck")] - public int? BotSpawnPeriodCheck { get; set; } + /** How often to check if bots are spawn-able. In seconds */ + [JsonPropertyName("BotSpawnPeriodCheck")] + public int? BotSpawnPeriodCheck { get; set; } - /** The bot spawn will toggle on and off in intervals of Off(Min/Max) and On(Min/Max) */ - [JsonPropertyName("BotSpawnTimeOffMax")] - public int? BotSpawnTimeOffMax { get; set; } + /** The bot spawn will toggle on and off in intervals of Off(Min/Max) and On(Min/Max) */ + [JsonPropertyName("BotSpawnTimeOffMax")] + public int? BotSpawnTimeOffMax { get; set; } - [JsonPropertyName("BotSpawnTimeOffMin")] - public int? BotSpawnTimeOffMin { get; set; } + [JsonPropertyName("BotSpawnTimeOffMin")] + public int? BotSpawnTimeOffMin { get; set; } - [JsonPropertyName("BotSpawnTimeOnMax")] - public int? BotSpawnTimeOnMax { get; set; } + [JsonPropertyName("BotSpawnTimeOnMax")] + public int? BotSpawnTimeOnMax { get; set; } - [JsonPropertyName("BotSpawnTimeOnMin")] - public int? BotSpawnTimeOnMin { get; set; } + [JsonPropertyName("BotSpawnTimeOnMin")] + public int? BotSpawnTimeOnMin { get; set; } - /** How soon bots will be allowed to spawn */ - [JsonPropertyName("BotStart")] - public int? BotStart { get; set; } + /** How soon bots will be allowed to spawn */ + [JsonPropertyName("BotStart")] + public int? BotStart { get; set; } - /** After this long bots will no longer spawn */ - [JsonPropertyName("BotStop")] - public int? BotStop { get; set; } + /** After this long bots will no longer spawn */ + [JsonPropertyName("BotStop")] + public int? BotStop { get; set; } - [JsonPropertyName("Description")] - public string? Description { get; set; } + [JsonPropertyName("Description")] + public string? Description { get; set; } - [JsonPropertyName("DisabledForScav")] - public bool? DisabledForScav { get; set; } + [JsonPropertyName("DisabledForScav")] + public bool? DisabledForScav { get; set; } - [JsonPropertyName("DisabledScavExits")] - public string? DisabledScavExits { get; set; } + [JsonPropertyName("DisabledScavExits")] + public string? DisabledScavExits { get; set; } - [JsonPropertyName("Enabled")] - public bool? Enabled { get; set; } + [JsonPropertyName("Enabled")] + public bool? Enabled { get; set; } - [JsonPropertyName("EnableCoop")] - public bool? EnableCoop { get; set; } + [JsonPropertyName("EnableCoop")] + public bool? EnableCoop { get; set; } - [JsonPropertyName("GlobalLootChanceModifier")] - public double? GlobalLootChanceModifier { get; set; } + [JsonPropertyName("GlobalLootChanceModifier")] + public double? GlobalLootChanceModifier { get; set; } - [JsonPropertyName("GlobalLootChanceModifierPvE")] - public double? GlobalLootChanceModifierPvE { get; set; } + [JsonPropertyName("GlobalLootChanceModifierPvE")] + public double? GlobalLootChanceModifierPvE { get; set; } - [JsonPropertyName("GlobalContainerChanceModifier")] - public double? GlobalContainerChanceModifier { get; set; } + [JsonPropertyName("GlobalContainerChanceModifier")] + public double? GlobalContainerChanceModifier { get; set; } - [JsonPropertyName("IconX")] - public double? IconX { get; set; } + [JsonPropertyName("IconX")] + public double? IconX { get; set; } - [JsonPropertyName("IconY")] - public double? IconY { get; set; } + [JsonPropertyName("IconY")] + public double? IconY { get; set; } - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("Insurance")] - public bool? Insurance { get; set; } + [JsonPropertyName("Insurance")] + public bool? Insurance { get; set; } - [JsonPropertyName("IsSecret")] - public bool? IsSecret { get; set; } + [JsonPropertyName("IsSecret")] + public bool? IsSecret { get; set; } - [JsonPropertyName("Locked")] - public bool? Locked { get; set; } + [JsonPropertyName("Locked")] + public bool? Locked { get; set; } - [JsonPropertyName("Loot")] - public List? Loot { get; set; } + [JsonPropertyName("Loot")] + public List? Loot { get; set; } - [JsonPropertyName("MatchMakerMinPlayersByWaitTime")] - public List? MatchMakerMinPlayersByWaitTime { get; set; } + [JsonPropertyName("MatchMakerMinPlayersByWaitTime")] + public List? MatchMakerMinPlayersByWaitTime { get; set; } - [JsonPropertyName("MaxBotPerZone")] - public int? MaxBotPerZone { get; set; } + [JsonPropertyName("MaxBotPerZone")] + public int? MaxBotPerZone { get; set; } - [JsonPropertyName("MaxDistToFreePoint")] - public int? MaxDistToFreePoint { get; set; } + [JsonPropertyName("MaxDistToFreePoint")] + public int? MaxDistToFreePoint { get; set; } - [JsonPropertyName("MaxPlayers")] - public int? MaxPlayers { get; set; } + [JsonPropertyName("MaxPlayers")] + public int? MaxPlayers { get; set; } - [JsonPropertyName("MinDistToExitPoint")] - public double? MinDistToExitPoint { get; set; } + [JsonPropertyName("MinDistToExitPoint")] + public double? MinDistToExitPoint { get; set; } - [JsonPropertyName("MinDistToFreePoint")] - public double? MinDistToFreePoint { get; set; } + [JsonPropertyName("MinDistToFreePoint")] + public double? MinDistToFreePoint { get; set; } - [JsonPropertyName("MinMaxBots")] - public List? MinMaxBots { get; set; } + [JsonPropertyName("MinMaxBots")] + public List? MinMaxBots { get; set; } - [JsonPropertyName("MinPlayers")] - public int? MinPlayers { get; set; } + [JsonPropertyName("MinPlayers")] + public int? MinPlayers { get; set; } - [JsonPropertyName("MaxCoopGroup")] - public int? MaxCoopGroup { get; set; } + [JsonPropertyName("MaxCoopGroup")] + public int? MaxCoopGroup { get; set; } - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("NonWaveGroupScenario")] - public NonWaveGroupScenario? NonWaveGroupScenario { get; set; } + [JsonPropertyName("NonWaveGroupScenario")] + public NonWaveGroupScenario? NonWaveGroupScenario { get; set; } - [JsonPropertyName("NewSpawn")] - public bool? NewSpawn { get; set; } + [JsonPropertyName("NewSpawn")] + public bool? NewSpawn { get; set; } - [JsonPropertyName("OcculsionCullingEnabled")] - public bool? OcculsionCullingEnabled { get; set; } + [JsonPropertyName("OcculsionCullingEnabled")] + public bool? OcculsionCullingEnabled { get; set; } - [JsonPropertyName("OldSpawn")] - public bool? OldSpawn { get; set; } + [JsonPropertyName("OldSpawn")] + public bool? OldSpawn { get; set; } - [JsonPropertyName("OpenZones")] - public string? OpenZones { get; set; } + [JsonPropertyName("OpenZones")] + public string? OpenZones { get; set; } - [JsonPropertyName("Preview")] - public Preview? Preview { get; set; } + [JsonPropertyName("Preview")] + public Preview? Preview { get; set; } - [JsonPropertyName("PlayersRequestCount")] - public int? PlayersRequestCount { get; set; } + [JsonPropertyName("PlayersRequestCount")] + public int? PlayersRequestCount { get; set; } - [JsonPropertyName("RequiredPlayerLevel")] - public int? RequiredPlayerLevel { get; set; } + [JsonPropertyName("RequiredPlayerLevel")] + public int? RequiredPlayerLevel { get; set; } - [JsonPropertyName("RequiredPlayerLevelMin")] - public int? RequiredPlayerLevelMin { get; set; } + [JsonPropertyName("RequiredPlayerLevelMin")] + public int? RequiredPlayerLevelMin { get; set; } - [JsonPropertyName("RequiredPlayerLevelMax")] - public int? RequiredPlayerLevelMax { get; set; } + [JsonPropertyName("RequiredPlayerLevelMax")] + public int? RequiredPlayerLevelMax { get; set; } - [JsonPropertyName("MinPlayerLvlAccessKeys")] - public int? MinPlayerLvlAccessKeys { get; set; } + [JsonPropertyName("MinPlayerLvlAccessKeys")] + public int? MinPlayerLvlAccessKeys { get; set; } - [JsonPropertyName("PmcMaxPlayersInGroup")] - public int? PmcMaxPlayersInGroup { get; set; } + [JsonPropertyName("PmcMaxPlayersInGroup")] + public int? PmcMaxPlayersInGroup { get; set; } - [JsonPropertyName("ScavMaxPlayersInGroup")] - public int? ScavMaxPlayersInGroup { get; set; } + [JsonPropertyName("ScavMaxPlayersInGroup")] + public int? ScavMaxPlayersInGroup { get; set; } - [JsonPropertyName("Rules")] - public string? Rules { get; set; } + [JsonPropertyName("Rules")] + public string? Rules { get; set; } - [JsonPropertyName("SafeLocation")] - public bool? SafeLocation { get; set; } + [JsonPropertyName("SafeLocation")] + public bool? SafeLocation { get; set; } - [JsonPropertyName("Scene")] - public Scene? Scene { get; set; } + [JsonPropertyName("Scene")] + public Scene? Scene { get; set; } - [JsonPropertyName("SpawnPointParams")] - public List? SpawnPointParams { get; set; } + [JsonPropertyName("SpawnPointParams")] + public List? SpawnPointParams { get; set; } - [JsonPropertyName("UnixDateTime")] - public long? UnixDateTime { get; set; } + [JsonPropertyName("UnixDateTime")] + public long? UnixDateTime { get; set; } - [JsonPropertyName("_Id")] - public string? IdField { get; set; } + [JsonPropertyName("_Id")] + public string? IdField { get; set; } - [JsonPropertyName("doors")] - public List? Doors { get; set; } + [JsonPropertyName("doors")] + public List? Doors { get; set; } - [JsonPropertyName("EscapeTimeLimit")] - public int? EscapeTimeLimit { get; set; } + [JsonPropertyName("EscapeTimeLimit")] + public int? EscapeTimeLimit { get; set; } - // BSG fucked up another property name - [JsonPropertyName("escape_time_limit")] - public int Escape_Time_Limit_Do_Not_Use - { - set => EscapeTimeLimit = value; - } + // BSG fucked up another property name + [JsonPropertyName("escape_time_limit")] + public int Escape_Time_Limit_Do_Not_Use + { + set => EscapeTimeLimit = value; + } - [JsonPropertyName("EscapeTimeLimitCoop")] - public int? EscapeTimeLimitCoop { get; set; } + [JsonPropertyName("EscapeTimeLimitCoop")] + public int? EscapeTimeLimitCoop { get; set; } - [JsonPropertyName("EscapeTimeLimitPVE")] - public int? EscapeTimeLimitPVE { get; set; } + [JsonPropertyName("EscapeTimeLimitPVE")] + public int? EscapeTimeLimitPVE { get; set; } - [JsonPropertyName("Events")] - public LocationEvents? Events { get; set; } + [JsonPropertyName("Events")] + public LocationEvents? Events { get; set; } - [JsonPropertyName("exit_access_time")] - public int? ExitAccessTime { get; set; } + [JsonPropertyName("exit_access_time")] + public int? ExitAccessTime { get; set; } - [JsonPropertyName("ForceOnlineRaidInPVE")] - public bool? ForceOnlineRaidInPVE { get; set; } + [JsonPropertyName("ForceOnlineRaidInPVE")] + public bool? ForceOnlineRaidInPVE { get; set; } - [JsonPropertyName("exit_count")] - public int? ExitCount { get; set; } + [JsonPropertyName("exit_count")] + public int? ExitCount { get; set; } - [JsonPropertyName("exit_time")] - public int? ExitTime { get; set; } + [JsonPropertyName("exit_time")] + public int? ExitTime { get; set; } - [JsonPropertyName("exits")] - public List? Exits { get; set; } + [JsonPropertyName("exits")] + public List? Exits { get; set; } - [JsonPropertyName("filter_ex")] - public List? FilterEx { get; set; } + [JsonPropertyName("filter_ex")] + public List? FilterEx { get; set; } - [JsonPropertyName("limits")] - public List? Limits { get; set; } + [JsonPropertyName("limits")] + public List? Limits { get; set; } - [JsonPropertyName("matching_min_seconds")] - public int? MatchingMinSeconds { get; set; } + [JsonPropertyName("matching_min_seconds")] + public int? MatchingMinSeconds { get; set; } - [JsonPropertyName("GenerateLocalLootCache")] - public bool? GenerateLocalLootCache { get; set; } + [JsonPropertyName("GenerateLocalLootCache")] + public bool? GenerateLocalLootCache { get; set; } - [JsonPropertyName("maxItemCountInLocation")] - public List? MaxItemCountInLocation { get; set; } + [JsonPropertyName("maxItemCountInLocation")] + public List? MaxItemCountInLocation { get; set; } - [JsonPropertyName("sav_summon_seconds")] - public int? SavSummonSeconds { get; set; } + [JsonPropertyName("sav_summon_seconds")] + public int? SavSummonSeconds { get; set; } - [JsonPropertyName("tmp_location_field_remove_me")] - public int? TmpLocationFieldRemoveMe { get; set; } + [JsonPropertyName("tmp_location_field_remove_me")] + public int? TmpLocationFieldRemoveMe { get; set; } - [JsonPropertyName("transits")] - public List? Transits { get; set; } + [JsonPropertyName("transits")] + public List? Transits { get; set; } - [JsonPropertyName("users_gather_seconds")] - public int? UsersGatherSeconds { get; set; } + [JsonPropertyName("users_gather_seconds")] + public int? UsersGatherSeconds { get; set; } - [JsonPropertyName("users_spawn_seconds_n")] - public int? UsersSpawnSecondsN { get; set; } + [JsonPropertyName("users_spawn_seconds_n")] + public int? UsersSpawnSecondsN { get; set; } - [JsonPropertyName("users_spawn_seconds_n2")] - public int? UsersSpawnSecondsN2 { get; set; } + [JsonPropertyName("users_spawn_seconds_n2")] + public int? UsersSpawnSecondsN2 { get; set; } - [JsonPropertyName("users_summon_seconds")] - public int? UsersSummonSeconds { get; set; } + [JsonPropertyName("users_summon_seconds")] + public int? UsersSummonSeconds { get; set; } - [JsonPropertyName("waves")] - public List? Waves { get; set; } + [JsonPropertyName("waves")] + public List? Waves { get; set; } } public class Transit { - [JsonPropertyName("activateAfterSec")] - public int ActivateAfterSeconds { get; set; } // TODO: Int in client + [JsonPropertyName("activateAfterSec")] + public int ActivateAfterSeconds { get; set; } // TODO: Int in client - [JsonPropertyName("active")] - public bool? IsActive { get; set; } + [JsonPropertyName("active")] + public bool? IsActive { get; set; } - [JsonPropertyName("events")] - public bool? Events { get; set; } + [JsonPropertyName("events")] + public bool? Events { get; set; } - [JsonPropertyName("name")] - public string? Name { get; set; } + [JsonPropertyName("name")] + public string? Name { get; set; } - [JsonPropertyName("conditions")] - public string? Conditions { get; set; } + [JsonPropertyName("conditions")] + public string? Conditions { get; set; } - [JsonPropertyName("description")] - public string? Description { get; set; } + [JsonPropertyName("description")] + public string? Description { get; set; } - [JsonPropertyName("id")] - public int? Id { get; set; } + [JsonPropertyName("id")] + public int? Id { get; set; } - [JsonPropertyName("location")] - public string? Location { get; set; } + [JsonPropertyName("location")] + public string? Location { get; set; } - [JsonPropertyName("target")] - public string? Target { get; set; } + [JsonPropertyName("target")] + public string? Target { get; set; } - [JsonPropertyName("time")] - public int? Time { get; set; } + [JsonPropertyName("time")] + public int? Time { get; set; } } public class NonWaveGroupScenario { - [JsonPropertyName("Chance")] - public double? Chance { get; set; } + [JsonPropertyName("Chance")] + public double? Chance { get; set; } - [JsonPropertyName("Enabled")] - public bool? IsEnabled { get; set; } + [JsonPropertyName("Enabled")] + public bool? IsEnabled { get; set; } - [JsonPropertyName("MaxToBeGroup")] - public int? MaximumToBeGrouped { get; set; } + [JsonPropertyName("MaxToBeGroup")] + public int? MaximumToBeGrouped { get; set; } - [JsonPropertyName("MinToBeGroup")] - public int? MinimumToBeGrouped { get; set; } + [JsonPropertyName("MinToBeGroup")] + public int? MinimumToBeGrouped { get; set; } } public class Limit : MinMax { - [JsonPropertyName("items")] - public object[] Items { get; set; } // TODO: was on TS any[] hmmm.. + [JsonPropertyName("items")] + public object[] Items { get; set; } // TODO: was on TS any[] hmmm.. - [JsonPropertyName("min")] - public int? Min { get; set; } + [JsonPropertyName("min")] + public int? Min { get; set; } - [JsonPropertyName("max")] - public int? Max { get; set; } + [JsonPropertyName("max")] + public int? Max { get; set; } } public class AirdropParameter { - [JsonPropertyName("AirdropPointDeactivateDistance")] - public int? AirdropPointDeactivateDistance { get; set; } + [JsonPropertyName("AirdropPointDeactivateDistance")] + public int? AirdropPointDeactivateDistance { get; set; } - [JsonPropertyName("MinPlayersCountToSpawnAirdrop")] - public int? MinimumPlayersCountToSpawnAirdrop { get; set; } + [JsonPropertyName("MinPlayersCountToSpawnAirdrop")] + public int? MinimumPlayersCountToSpawnAirdrop { get; set; } - [JsonPropertyName("PlaneAirdropChance")] - public double? PlaneAirdropChance { get; set; } + [JsonPropertyName("PlaneAirdropChance")] + public double? PlaneAirdropChance { get; set; } - [JsonPropertyName("PlaneAirdropCooldownMax")] - public int? PlaneAirdropCooldownMax { get; set; } + [JsonPropertyName("PlaneAirdropCooldownMax")] + public int? PlaneAirdropCooldownMax { get; set; } - [JsonPropertyName("PlaneAirdropCooldownMin")] - public int? PlaneAirdropCooldownMin { get; set; } + [JsonPropertyName("PlaneAirdropCooldownMin")] + public int? PlaneAirdropCooldownMin { get; set; } - [JsonPropertyName("PlaneAirdropEnd")] - public int? PlaneAirdropEnd { get; set; } + [JsonPropertyName("PlaneAirdropEnd")] + public int? PlaneAirdropEnd { get; set; } - [JsonPropertyName("PlaneAirdropMax")] - public int? PlaneAirdropMax { get; set; } + [JsonPropertyName("PlaneAirdropMax")] + public int? PlaneAirdropMax { get; set; } - [JsonPropertyName("PlaneAirdropStartMax")] - public int? PlaneAirdropStartMax { get; set; } + [JsonPropertyName("PlaneAirdropStartMax")] + public int? PlaneAirdropStartMax { get; set; } - [JsonPropertyName("PlaneAirdropStartMin")] - public int? PlaneAirdropStartMin { get; set; } + [JsonPropertyName("PlaneAirdropStartMin")] + public int? PlaneAirdropStartMin { get; set; } - [JsonPropertyName("UnsuccessfulTryPenalty")] - public int? UnsuccessfulTryPenalty { get; set; } + [JsonPropertyName("UnsuccessfulTryPenalty")] + public int? UnsuccessfulTryPenalty { get; set; } } public class Banner { - [JsonPropertyName("id")] - public string? Id { get; set; } + [JsonPropertyName("id")] + public string? Id { get; set; } - [JsonPropertyName("pic")] - public Pic? Picture { get; set; } + [JsonPropertyName("pic")] + public Pic? Picture { get; set; } } public class Pic { - [JsonPropertyName("path")] - public string? Path { get; set; } + [JsonPropertyName("path")] + public string? Path { get; set; } - [JsonPropertyName("rcid")] - public string? Rcid { get; set; } + [JsonPropertyName("rcid")] + public string? Rcid { get; set; } } public class BossLocationSpawn { - [JsonPropertyName("BossChance")] - public double? BossChance { get; set; } + [JsonPropertyName("BossChance")] + public double? BossChance { get; set; } - [JsonPropertyName("BossDifficult")] - public string? BossDifficulty { get; set; } + [JsonPropertyName("BossDifficult")] + public string? BossDifficulty { get; set; } - [JsonPropertyName("BossEscortAmount")] - public string? BossEscortAmount { get; set; } + [JsonPropertyName("BossEscortAmount")] + public string? BossEscortAmount { get; set; } - [JsonPropertyName("BossEscortDifficult")] - public string? BossEscortDifficulty { get; set; } + [JsonPropertyName("BossEscortDifficult")] + public string? BossEscortDifficulty { get; set; } - [JsonPropertyName("BossEscortType")] - public string? BossEscortType { get; set; } + [JsonPropertyName("BossEscortType")] + public string? BossEscortType { get; set; } - [JsonPropertyName("BossName")] - public string? BossName { get; set; } + [JsonPropertyName("BossName")] + public string? BossName { get; set; } - [JsonPropertyName("BossPlayer")] - public bool? IsBossPlayer { get; set; } + [JsonPropertyName("BossPlayer")] + public bool? IsBossPlayer { get; set; } - [JsonPropertyName("BossZone")] - public string? BossZone { get; set; } + [JsonPropertyName("BossZone")] + public string? BossZone { get; set; } - [JsonPropertyName("RandomTimeSpawn")] - public bool? IsRandomTimeSpawn { get; set; } + [JsonPropertyName("RandomTimeSpawn")] + public bool? IsRandomTimeSpawn { get; set; } - [JsonPropertyName("Time")] - public double? Time { get; set; } + [JsonPropertyName("Time")] + public double? Time { get; set; } - [JsonPropertyName("TriggerId")] - public string? TriggerId { get; set; } + [JsonPropertyName("TriggerId")] + public string? TriggerId { get; set; } - [JsonPropertyName("TriggerName")] - public string? TriggerName { get; set; } + [JsonPropertyName("TriggerName")] + public string? TriggerName { get; set; } - [JsonPropertyName("Delay")] - public double? Delay { get; set; } + [JsonPropertyName("Delay")] + public double? Delay { get; set; } - [JsonPropertyName("DependKarma")] - public bool? DependKarma { get; set; } + [JsonPropertyName("DependKarma")] + public bool? DependKarma { get; set; } - [JsonPropertyName("DependKarmaPVE")] - public bool? DependKarmaPVE { get; set; } + [JsonPropertyName("DependKarmaPVE")] + public bool? DependKarmaPVE { get; set; } - [JsonPropertyName("ForceSpawn")] - public bool? ForceSpawn { get; set; } + [JsonPropertyName("ForceSpawn")] + public bool? ForceSpawn { get; set; } - [JsonPropertyName("IgnoreMaxBots")] - public bool? IgnoreMaxBots { get; set; } + [JsonPropertyName("IgnoreMaxBots")] + public bool? IgnoreMaxBots { get; set; } - [JsonPropertyName("Supports")] - public BossSupport[] Supports { get; set; } + [JsonPropertyName("Supports")] + public BossSupport[] Supports { get; set; } - [JsonPropertyName("sptId")] - public string? SptId { get; set; } + [JsonPropertyName("sptId")] + public string? SptId { get; set; } - [JsonPropertyName("SpawnMode")] - public string[] SpawnMode { get; set; } + [JsonPropertyName("SpawnMode")] + public string[] SpawnMode { get; set; } } public class BossSupport { - [JsonPropertyName("BossEscortAmount")] - public string? BossEscortAmount { get; set; } + [JsonPropertyName("BossEscortAmount")] + public string? BossEscortAmount { get; set; } - [JsonPropertyName("BossEscortDifficult")] - public string[] BossEscortDifficulty { get; set; } + [JsonPropertyName("BossEscortDifficult")] + public string[] BossEscortDifficulty { get; set; } - [JsonPropertyName("BossEscortType")] - public string? BossEscortType { get; set; } + [JsonPropertyName("BossEscortType")] + public string? BossEscortType { get; set; } } public class BotLocationModifier { - [JsonPropertyName("AccuracySpeed")] - public double? AccuracySpeed { get; set; } + [JsonPropertyName("AccuracySpeed")] + public double? AccuracySpeed { get; set; } - [JsonPropertyName("AdditionalHostilitySettings")] - public AdditionalHostilitySettings[] AdditionalHostilitySettings { get; set; } + [JsonPropertyName("AdditionalHostilitySettings")] + public AdditionalHostilitySettings[] AdditionalHostilitySettings { get; set; } - [JsonPropertyName("DistToActivate")] - public double? DistanceToActivate { get; set; } + [JsonPropertyName("DistToActivate")] + public double? DistanceToActivate { get; set; } - [JsonPropertyName("DistToActivatePvE")] - public double? DistanceToActivatePvE { get; set; } + [JsonPropertyName("DistToActivatePvE")] + public double? DistanceToActivatePvE { get; set; } - [JsonPropertyName("DistToPersueAxemanCoef")] - public double? DistanceToPursueAxemanCoefficient { get; set; } + [JsonPropertyName("DistToPersueAxemanCoef")] + public double? DistanceToPursueAxemanCoefficient { get; set; } - [JsonPropertyName("DistToSleep")] - public double? DistanceToSleep { get; set; } + [JsonPropertyName("DistToSleep")] + public double? DistanceToSleep { get; set; } - [JsonPropertyName("DistToSleepPvE")] - public double? DistanceToSleepPvE { get; set; } + [JsonPropertyName("DistToSleepPvE")] + public double? DistanceToSleepPvE { get; set; } - [JsonPropertyName("GainSight")] - public double? GainSight { get; set; } + [JsonPropertyName("GainSight")] + public double? GainSight { get; set; } - [JsonPropertyName("KhorovodChance")] - public double? KhorovodChance { get; set; } + [JsonPropertyName("KhorovodChance")] + public double? KhorovodChance { get; set; } - [JsonPropertyName("MagnetPower")] - public double? MagnetPower { get; set; } + [JsonPropertyName("MagnetPower")] + public double? MagnetPower { get; set; } - [JsonPropertyName("MarksmanAccuratyCoef")] - public double? MarksmanAccuracyCoefficient { get; set; } + [JsonPropertyName("MarksmanAccuratyCoef")] + public double? MarksmanAccuracyCoefficient { get; set; } - [JsonPropertyName("Scattering")] - public double? Scattering { get; set; } + [JsonPropertyName("Scattering")] + public double? Scattering { get; set; } - [JsonPropertyName("VisibleDistance")] - public double? VisibleDistance { get; set; } + [JsonPropertyName("VisibleDistance")] + public double? VisibleDistance { get; set; } - [JsonPropertyName("MaxExfiltrationTime")] - public double? MaxExfiltrationTime { get; set; } + [JsonPropertyName("MaxExfiltrationTime")] + public double? MaxExfiltrationTime { get; set; } - [JsonPropertyName("MinExfiltrationTime")] - public double? MinExfiltrationTime { get; set; } + [JsonPropertyName("MinExfiltrationTime")] + public double? MinExfiltrationTime { get; set; } } public class AdditionalHostilitySettings { - [JsonPropertyName("AlwaysEnemies")] - public List? AlwaysEnemies { get; set; } + [JsonPropertyName("AlwaysEnemies")] + public List? AlwaysEnemies { get; set; } - [JsonPropertyName("AlwaysFriends")] - public List? AlwaysFriends { get; set; } + [JsonPropertyName("AlwaysFriends")] + public List? AlwaysFriends { get; set; } - [JsonPropertyName("BearEnemyChance")] - public int? BearEnemyChance { get; set; } + [JsonPropertyName("BearEnemyChance")] + public int? BearEnemyChance { get; set; } - [JsonPropertyName("BearPlayerBehaviour")] - public string? BearPlayerBehaviour { get; set; } + [JsonPropertyName("BearPlayerBehaviour")] + public string? BearPlayerBehaviour { get; set; } - [JsonPropertyName("BotRole")] - public string? BotRole { get; set; } + [JsonPropertyName("BotRole")] + public string? BotRole { get; set; } - [JsonPropertyName("ChancedEnemies")] - public List? ChancedEnemies { get; set; } + [JsonPropertyName("ChancedEnemies")] + public List? ChancedEnemies { get; set; } - [JsonPropertyName("Neutral")] - public List? Neutral { get; set; } + [JsonPropertyName("Neutral")] + public List? Neutral { get; set; } - [JsonPropertyName("SavagePlayerBehaviour")] - public string? SavagePlayerBehaviour { get; set; } + [JsonPropertyName("SavagePlayerBehaviour")] + public string? SavagePlayerBehaviour { get; set; } - [JsonPropertyName("SavageEnemyChance")] - public int? SavageEnemyChance { get; set; } + [JsonPropertyName("SavageEnemyChance")] + public int? SavageEnemyChance { get; set; } - [JsonPropertyName("UsecEnemyChance")] - public int? UsecEnemyChance { get; set; } + [JsonPropertyName("UsecEnemyChance")] + public int? UsecEnemyChance { get; set; } - [JsonPropertyName("UsecPlayerBehaviour")] - public string? UsecPlayerBehaviour { get; set; } + [JsonPropertyName("UsecPlayerBehaviour")] + public string? UsecPlayerBehaviour { get; set; } - [JsonPropertyName("Warn")] - public List? Warn { get; set; } + [JsonPropertyName("Warn")] + public List? Warn { get; set; } } public class ChancedEnemy { - [JsonPropertyName("EnemyChance")] - public int? EnemyChance { get; set; } + [JsonPropertyName("EnemyChance")] + public int? EnemyChance { get; set; } - [JsonPropertyName("Role")] - public string? Role { get; set; } + [JsonPropertyName("Role")] + public string? Role { get; set; } } public class MinMaxBot : MinMax { - [JsonPropertyName("WildSpawnType")] - public object WildSpawnType { get; set; } // TODO: Could be WildSpawnType or string + [JsonPropertyName("WildSpawnType")] + public object WildSpawnType { get; set; } // TODO: Could be WildSpawnType or string } public class MinPlayerWaitTime { - [JsonPropertyName("minPlayers")] - public int? MinPlayers { get; set; } + [JsonPropertyName("minPlayers")] + public int? MinPlayers { get; set; } - [JsonPropertyName("time")] - public int? Time { get; set; } + [JsonPropertyName("time")] + public int? Time { get; set; } } public class Preview { - [JsonPropertyName("path")] - public string? Path { get; set; } + [JsonPropertyName("path")] + public string? Path { get; set; } - [JsonPropertyName("rcid")] - public string? Rcid { get; set; } + [JsonPropertyName("rcid")] + public string? Rcid { get; set; } } public class Scene { - [JsonPropertyName("path")] - public string? Path { get; set; } + [JsonPropertyName("path")] + public string? Path { get; set; } - [JsonPropertyName("rcid")] - public string? Rcid { get; set; } + [JsonPropertyName("rcid")] + public string? Rcid { get; set; } } public class SpawnPointParam { - [JsonPropertyName("BotZoneName")] - public string? BotZoneName { get; set; } + [JsonPropertyName("BotZoneName")] + public string? BotZoneName { get; set; } - [JsonPropertyName("Categories")] - public List? Categories { get; set; } + [JsonPropertyName("Categories")] + public List? Categories { get; set; } - [JsonPropertyName("ColliderParams")] - public ColliderParams? ColliderParams { get; set; } + [JsonPropertyName("ColliderParams")] + public ColliderParams? ColliderParams { get; set; } - [JsonPropertyName("CorePointId")] - public int? CorePointId { get; set; } + [JsonPropertyName("CorePointId")] + public int? CorePointId { get; set; } - [JsonPropertyName("DelayToCanSpawnSec")] - public double? DelayToCanSpawnSec { get; set; } + [JsonPropertyName("DelayToCanSpawnSec")] + public double? DelayToCanSpawnSec { get; set; } - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("Infiltration")] - public string? Infiltration { get; set; } + [JsonPropertyName("Infiltration")] + public string? Infiltration { get; set; } - [JsonPropertyName("Position")] - public XYZ? Position { get; set; } + [JsonPropertyName("Position")] + public XYZ? Position { get; set; } - [JsonPropertyName("Rotation")] - public float? Rotation { get; set; } + [JsonPropertyName("Rotation")] + public float? Rotation { get; set; } - [JsonPropertyName("Sides")] - public List? Sides { get; set; } + [JsonPropertyName("Sides")] + public List? Sides { get; set; } } public class ColliderParams { - [JsonPropertyName("_parent")] - public string? Parent { get; set; } + [JsonPropertyName("_parent")] + public string? Parent { get; set; } - [JsonPropertyName("_props")] - public Props? Props { get; set; } + [JsonPropertyName("_props")] + public Props? Props { get; set; } } public class Props { - [JsonPropertyName("Center")] - public XYZ? Center { get; set; } + [JsonPropertyName("Center")] + public XYZ? Center { get; set; } - [JsonPropertyName("Size")] - public XYZ? Size { get; set; } + [JsonPropertyName("Size")] + public XYZ? Size { get; set; } - [JsonPropertyName("Radius")] - public float? Radius { get; set; } + [JsonPropertyName("Radius")] + public float? Radius { get; set; } } public class Exit { - /** % Chance out of 100 exit will appear in raid */ - [JsonPropertyName("Chance")] - public double? Chance { get; set; } + /** % Chance out of 100 exit will appear in raid */ + [JsonPropertyName("Chance")] + public double? Chance { get; set; } - [JsonPropertyName("ChancePVE")] - public double? ChancePVE { get; set; } + [JsonPropertyName("ChancePVE")] + public double? ChancePVE { get; set; } - [JsonPropertyName("Count")] - public int? Count { get; set; } + [JsonPropertyName("Count")] + public int? Count { get; set; } - [JsonPropertyName("CountPve")] - public int? CountPve { get; set; } + [JsonPropertyName("CountPve")] + public int? CountPve { get; set; } - // Had to add this property as BSG sometimes names the properties with full PVE capitals - // This property will just point the value to CountPve - [JsonPropertyName("CountPVE")] - public int CountPVE - { - set => CountPve = value; - } + // Had to add this property as BSG sometimes names the properties with full PVE capitals + // This property will just point the value to CountPve + [JsonPropertyName("CountPVE")] + public int CountPVE + { + set => CountPve = value; + } - [JsonPropertyName("EntryPoints")] - public string? EntryPoints { get; set; } + [JsonPropertyName("EntryPoints")] + public string? EntryPoints { get; set; } - [JsonPropertyName("EventAvailable")] - public bool? EventAvailable { get; set; } + [JsonPropertyName("EventAvailable")] + public bool? EventAvailable { get; set; } - [JsonPropertyName("EligibleForPMC")] - public bool? EligibleForPMC { get; set; } + [JsonPropertyName("EligibleForPMC")] + public bool? EligibleForPMC { get; set; } - [JsonPropertyName("EligibleForScav")] - public bool? EligibleForScav { get; set; } + [JsonPropertyName("EligibleForScav")] + public bool? EligibleForScav { get; set; } - [JsonPropertyName("ExfiltrationTime")] - public double? ExfiltrationTime { get; set; } + [JsonPropertyName("ExfiltrationTime")] + public double? ExfiltrationTime { get; set; } - [JsonPropertyName("ExfiltrationTimePVE")] - public float? ExfiltrationTimePVE { get; set; } + [JsonPropertyName("ExfiltrationTimePVE")] + public float? ExfiltrationTimePVE { get; set; } - [JsonPropertyName("ExfiltrationType")] - public string? ExfiltrationType { get; set; } + [JsonPropertyName("ExfiltrationType")] + public string? ExfiltrationType { get; set; } - [JsonPropertyName("RequiredSlot")] - public string? RequiredSlot { get; set; } + [JsonPropertyName("RequiredSlot")] + public string? RequiredSlot { get; set; } - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("MaxTime")] - public double? MaxTime { get; set; } + [JsonPropertyName("MaxTime")] + public double? MaxTime { get; set; } - [JsonPropertyName("MaxTimePVE")] - public double? MaxTimePVE { get; set; } + [JsonPropertyName("MaxTimePVE")] + public double? MaxTimePVE { get; set; } - [JsonPropertyName("MinTime")] - public double? MinTime { get; set; } + [JsonPropertyName("MinTime")] + public double? MinTime { get; set; } - [JsonPropertyName("MinTimePVE")] - public double? MinTimePVE { get; set; } + [JsonPropertyName("MinTimePVE")] + public double? MinTimePVE { get; set; } - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("PassageRequirement")] - public string? PassageRequirement { get; set; } + [JsonPropertyName("PassageRequirement")] + public string? PassageRequirement { get; set; } - [JsonPropertyName("PlayersCount")] - public int? PlayersCount { get; set; } + [JsonPropertyName("PlayersCount")] + public int? PlayersCount { get; set; } - [JsonPropertyName("PlayersCountPVE")] - public int? PlayersCountPVE { get; set; } + [JsonPropertyName("PlayersCountPVE")] + public int? PlayersCountPVE { get; set; } - [JsonPropertyName("RequirementTip")] - public string? RequirementTip { get; set; } + [JsonPropertyName("RequirementTip")] + public string? RequirementTip { get; set; } - [JsonPropertyName("Side")] - public string? Side { get; set; } + [JsonPropertyName("Side")] + public string? Side { get; set; } } public class MaxItemCountInLocation { - [JsonPropertyName("TemplateId")] - public string? TemplateId { get; set; } + [JsonPropertyName("TemplateId")] + public string? TemplateId { get; set; } - [JsonPropertyName("Value")] - public int? Value { get; set; } + [JsonPropertyName("Value")] + public int? Value { get; set; } } public class Wave { - [JsonPropertyName("BotPreset")] - public string? BotPreset { get; set; } + [JsonPropertyName("BotPreset")] + public string? BotPreset { get; set; } - [JsonPropertyName("BotSide")] - public string? BotSide { get; set; } + [JsonPropertyName("BotSide")] + public string? BotSide { get; set; } - [JsonPropertyName("SpawnPoints")] - public string? SpawnPoints { get; set; } + [JsonPropertyName("SpawnPoints")] + public string? SpawnPoints { get; set; } - [JsonPropertyName("WildSpawnType")] - [JsonConverter(typeof(JsonStringEnumConverter))] - public WildSpawnType? WildSpawnType { get; set; } + [JsonPropertyName("WildSpawnType")] + [JsonConverter(typeof(JsonStringEnumConverter))] + public WildSpawnType? WildSpawnType { get; set; } - [JsonPropertyName("isPlayers")] - public bool? IsPlayers { get; set; } + [JsonPropertyName("isPlayers")] + public bool? IsPlayers { get; set; } - [JsonPropertyName("number")] - public int? Number { get; set; } + [JsonPropertyName("number")] + public int? Number { get; set; } - [JsonPropertyName("slots_max")] - public int? SlotsMax { get; set; } + [JsonPropertyName("slots_max")] + public int? SlotsMax { get; set; } - [JsonPropertyName("slots_min")] - public int? SlotsMin { get; set; } + [JsonPropertyName("slots_min")] + public int? SlotsMin { get; set; } - [JsonPropertyName("time_max")] - public int? TimeMax { get; set; } + [JsonPropertyName("time_max")] + public int? TimeMax { get; set; } - [JsonPropertyName("time_min")] - public int? TimeMin { get; set; } + [JsonPropertyName("time_min")] + public int? TimeMin { get; set; } - /** OPTIONAL - Needs to be unique - Used by custom wave service to ensure same wave isnt added multiple times */ - [JsonPropertyName("sptId")] - public string? SptId { get; set; } + /** OPTIONAL - Needs to be unique - Used by custom wave service to ensure same wave isnt added multiple times */ + [JsonPropertyName("sptId")] + public string? SptId { get; set; } - [JsonPropertyName("ChanceGroup")] - public int? ChanceGroup { get; set; } + [JsonPropertyName("ChanceGroup")] + public int? ChanceGroup { get; set; } - /** 'pve' and/or 'regular' */ - [JsonPropertyName("SpawnMode")] - public List? SpawnMode { get; set; } + /** 'pve' and/or 'regular' */ + [JsonPropertyName("SpawnMode")] + public List? SpawnMode { get; set; } } public class LocationEvents { - [JsonPropertyName("Halloween2024")] - public Halloween2024? Halloween2024 { get; set; } + [JsonPropertyName("Halloween2024")] + public Halloween2024? Halloween2024 { get; set; } - public Khorovod? Khorovod { get; set; } + public Khorovod? Khorovod { get; set; } } public class Khorovod { - public double? Chance { get; set; } + public double? Chance { get; set; } } public class Halloween2024 { - [JsonPropertyName("CrowdAttackBlockRadius")] - public int? CrowdAttackBlockRadius { get; set; } + [JsonPropertyName("CrowdAttackBlockRadius")] + public int? CrowdAttackBlockRadius { get; set; } - [JsonPropertyName("CrowdAttackSpawnParams")] - public List? CrowdAttackSpawnParams { get; set; } + [JsonPropertyName("CrowdAttackSpawnParams")] + public List? CrowdAttackSpawnParams { get; set; } - [JsonPropertyName("CrowdCooldownPerPlayerSec")] - public int? CrowdCooldownPerPlayerSec { get; set; } + [JsonPropertyName("CrowdCooldownPerPlayerSec")] + public int? CrowdCooldownPerPlayerSec { get; set; } - [JsonPropertyName("CrowdsLimit")] - public int? CrowdsLimit { get; set; } + [JsonPropertyName("CrowdsLimit")] + public int? CrowdsLimit { get; set; } - [JsonPropertyName("InfectedLookCoeff")] - public double? InfectedLookCoeff { get; set; } + [JsonPropertyName("InfectedLookCoeff")] + public double? InfectedLookCoeff { get; set; } - [JsonPropertyName("MaxCrowdAttackSpawnLimit")] - public int? MaxCrowdAttackSpawnLimit { get; set; } + [JsonPropertyName("MaxCrowdAttackSpawnLimit")] + public int? MaxCrowdAttackSpawnLimit { get; set; } - [JsonPropertyName("MinInfectionPercentage")] - public double? MinInfectionPercentage { get; set; } + [JsonPropertyName("MinInfectionPercentage")] + public double? MinInfectionPercentage { get; set; } - [JsonPropertyName("MinSpawnDistToPlayer")] - public double? MinSpawnDistToPlayer { get; set; } + [JsonPropertyName("MinSpawnDistToPlayer")] + public double? MinSpawnDistToPlayer { get; set; } - [JsonPropertyName("TargetPointSearchRadiusLimit")] - public double? TargetPointSearchRadiusLimit { get; set; } + [JsonPropertyName("TargetPointSearchRadiusLimit")] + public double? TargetPointSearchRadiusLimit { get; set; } - [JsonPropertyName("ZombieCallDeltaRadius")] - public double? ZombieCallDeltaRadius { get; set; } + [JsonPropertyName("ZombieCallDeltaRadius")] + public double? ZombieCallDeltaRadius { get; set; } - [JsonPropertyName("ZombieCallPeriodSec")] - public int? ZombieCallPeriodSec { get; set; } + [JsonPropertyName("ZombieCallPeriodSec")] + public int? ZombieCallPeriodSec { get; set; } - [JsonPropertyName("ZombieCallRadiusLimit")] - public double? ZombieCallRadiusLimit { get; set; } + [JsonPropertyName("ZombieCallRadiusLimit")] + public double? ZombieCallRadiusLimit { get; set; } - [JsonPropertyName("ZombieMultiplier")] - public double? ZombieMultiplier { get; set; } + [JsonPropertyName("ZombieMultiplier")] + public double? ZombieMultiplier { get; set; } - [JsonPropertyName("InfectionPercentage")] - public double? InfectionPercentage { get; set; } + [JsonPropertyName("InfectionPercentage")] + public double? InfectionPercentage { get; set; } - public Khorovod? Khorovod { get; set; } + public Khorovod? Khorovod { get; set; } } public class CrowdAttackSpawnParam { - [JsonPropertyName("Difficulty")] - public string? Difficulty { get; set; } + [JsonPropertyName("Difficulty")] + public string? Difficulty { get; set; } - [JsonPropertyName("Role")] - public string? Role { get; set; } + [JsonPropertyName("Role")] + public string? Role { get; set; } - [JsonPropertyName("Weight")] - public int? Weight { get; set; } + [JsonPropertyName("Weight")] + public int? Weight { get; set; } } public enum WildSpawnType { - assault, - marksman, - pmcbot, - bosskilla, - bossknight + assault, + marksman, + pmcbot, + bosskilla, + bossknight } \ No newline at end of file diff --git a/Core/Models/Eft/Common/LooseLoot.cs b/Core/Models/Eft/Common/LooseLoot.cs index 7f6ec70b..dea6989c 100644 --- a/Core/Models/Eft/Common/LooseLoot.cs +++ b/Core/Models/Eft/Common/LooseLoot.cs @@ -5,114 +5,114 @@ namespace Core.Models.Eft.Common; public class LooseLoot { - [JsonPropertyName("spawnpointCount")] - public SpawnpointCount? SpawnpointCount { get; set; } + [JsonPropertyName("spawnpointCount")] + public SpawnpointCount? SpawnpointCount { get; set; } - [JsonPropertyName("spawnpointsForced")] - public List? SpawnpointsForced { get; set; } + [JsonPropertyName("spawnpointsForced")] + public List? SpawnpointsForced { get; set; } - [JsonPropertyName("spawnpoints")] - public List? Spawnpoints { get; set; } + [JsonPropertyName("spawnpoints")] + public List? Spawnpoints { get; set; } } public class SpawnpointCount { - [JsonPropertyName("mean")] - public double? Mean { get; set; } + [JsonPropertyName("mean")] + public double? Mean { get; set; } - [JsonPropertyName("std")] - public double? Std { get; set; } + [JsonPropertyName("std")] + public double? Std { get; set; } } public class SpawnpointsForced { - [JsonPropertyName("locationId")] - public string? LocationId { get; set; } + [JsonPropertyName("locationId")] + public string? LocationId { get; set; } - [JsonPropertyName("probability")] - public double? Probability { get; set; } + [JsonPropertyName("probability")] + public double? Probability { get; set; } - [JsonPropertyName("template")] - public SpawnpointTemplate? Template { get; set; } + [JsonPropertyName("template")] + public SpawnpointTemplate? Template { get; set; } } public class SpawnpointTemplate { - [JsonPropertyName("Id")] - public string? Id { get; set; } + [JsonPropertyName("Id")] + public string? Id { get; set; } - [JsonPropertyName("IsContainer")] - public bool? IsContainer { get; set; } + [JsonPropertyName("IsContainer")] + public bool? IsContainer { get; set; } - [JsonPropertyName("useGravity")] - public bool? UseGravity { get; set; } + [JsonPropertyName("useGravity")] + public bool? UseGravity { get; set; } - [JsonPropertyName("randomRotation")] - public bool? RandomRotation { get; set; } + [JsonPropertyName("randomRotation")] + public bool? RandomRotation { get; set; } - [JsonPropertyName("Position")] - public XYZ? Position { get; set; } + [JsonPropertyName("Position")] + public XYZ? Position { get; set; } - [JsonPropertyName("Rotation")] - public XYZ? Rotation { get; set; } + [JsonPropertyName("Rotation")] + public XYZ? Rotation { get; set; } - [JsonPropertyName("IsAlwaysSpawn")] - public bool? IsAlwaysSpawn { get; set; } + [JsonPropertyName("IsAlwaysSpawn")] + public bool? IsAlwaysSpawn { get; set; } - [JsonPropertyName("IsGroupPosition")] - public bool? IsGroupPosition { get; set; } + [JsonPropertyName("IsGroupPosition")] + public bool? IsGroupPosition { get; set; } - [JsonPropertyName("GroupPositions")] - public List? GroupPositions { get; set; } + [JsonPropertyName("GroupPositions")] + public List? GroupPositions { get; set; } - [JsonPropertyName("Root")] - public string? Root { get; set; } + [JsonPropertyName("Root")] + public string? Root { get; set; } - [JsonPropertyName("Items")] - public List? Items { get; set; } + [JsonPropertyName("Items")] + public List? Items { get; set; } } public class GroupPosition { - [JsonPropertyName("Name")] - public string? Name { get; set; } + [JsonPropertyName("Name")] + public string? Name { get; set; } - [JsonPropertyName("Weight")] - public double? Weight { get; set; } + [JsonPropertyName("Weight")] + public double? Weight { get; set; } - [JsonPropertyName("Position")] - public XYZ? Position { get; set; } + [JsonPropertyName("Position")] + public XYZ? Position { get; set; } - [JsonPropertyName("Rotation")] - public XYZ? Rotation { get; set; } + [JsonPropertyName("Rotation")] + public XYZ? Rotation { get; set; } } public class Spawnpoint { - [JsonPropertyName("locationId")] - public string? LocationId { get; set; } + [JsonPropertyName("locationId")] + public string? LocationId { get; set; } - [JsonPropertyName("probability")] - public double? Probability { get; set; } + [JsonPropertyName("probability")] + public double? Probability { get; set; } - [JsonPropertyName("template")] - public SpawnpointTemplate? Template { get; set; } + [JsonPropertyName("template")] + public SpawnpointTemplate? Template { get; set; } - [JsonPropertyName("itemDistribution")] - public List? ItemDistribution { get; set; } + [JsonPropertyName("itemDistribution")] + public List? ItemDistribution { get; set; } } public class LooseLootItemDistribution { - [JsonPropertyName("composedKey")] - public ComposedKey? ComposedKey { get; set; } + [JsonPropertyName("composedKey")] + public ComposedKey? ComposedKey { get; set; } - [JsonPropertyName("relativeProbability")] - public double? RelativeProbability { get; set; } + [JsonPropertyName("relativeProbability")] + public double? RelativeProbability { get; set; } } public class ComposedKey { - [JsonPropertyName("key")] - public string? Key { get; set; } + [JsonPropertyName("key")] + public string? Key { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/PmcData.cs b/Core/Models/Eft/Common/PmcData.cs index 511f4553..9f5a9ef2 100644 --- a/Core/Models/Eft/Common/PmcData.cs +++ b/Core/Models/Eft/Common/PmcData.cs @@ -9,16 +9,16 @@ public class PmcData : BotBase public class PostRaidPmcData : BotBase { - [JsonPropertyName("Stats")] - public PostRaidStats? Stats { get; set; } + [JsonPropertyName("Stats")] + public PostRaidStats? Stats { get; set; } } public class PostRaidStats { - [JsonPropertyName("Eft")] - public EftStats? Eft { get; set; } + [JsonPropertyName("Eft")] + public EftStats? Eft { get; set; } - /** Only found in profile we get from client post raid */ - [JsonPropertyName("Arena")] - public EftStats? Arena { get; set; } + /** Only found in profile we get from client post raid */ + [JsonPropertyName("Arena")] + public EftStats? Arena { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/Achievement.cs b/Core/Models/Eft/Common/Tables/Achievement.cs index c96a9f91..3c51297e 100644 --- a/Core/Models/Eft/Common/Tables/Achievement.cs +++ b/Core/Models/Eft/Common/Tables/Achievement.cs @@ -2,7 +2,7 @@ namespace Core.Models.Eft.Common.Tables; -public class Achievement +public class Achievement { [JsonPropertyName("id")] public string? Id { get; set; } diff --git a/Core/Models/Eft/Common/Tables/BotBase.cs b/Core/Models/Eft/Common/Tables/BotBase.cs index c9383b8a..a390a006 100644 --- a/Core/Models/Eft/Common/Tables/BotBase.cs +++ b/Core/Models/Eft/Common/Tables/BotBase.cs @@ -209,7 +209,7 @@ public enum BanType TRADING = 3, ONLINE = 4, FRIENDS = 5, - CHANGE_NICKNAME = 6, + CHANGE_NICKNAME = 6 } public class Customization @@ -302,8 +302,10 @@ public class Skills { [JsonConverter(typeof(ArrayToObjectFactoryConverter))] public Dictionary Common { get; set; } + [JsonConverter(typeof(ArrayToObjectFactoryConverter))] public Dictionary Mastering { get; set; } + public double Points { get; set; } } @@ -419,6 +421,7 @@ public class DamageHistory { public string LethalDamagePart { get; set; } public LethalDamage LethalDamage { get; set; } + [JsonConverter(typeof(ArrayToObjectFactoryConverter))] public BodyPartsDamageHistory BodyParts { get; set; } } @@ -683,7 +686,7 @@ public enum SurvivorClass NEUTRALIZER = 1, MARAUDER = 2, PARAMEDIC = 3, - SURVIVOR = 4, + SURVIVOR = 4 } public class Quests diff --git a/Core/Models/Eft/Common/Tables/BotCore.cs b/Core/Models/Eft/Common/Tables/BotCore.cs index d2bbe699..5d20a27e 100644 --- a/Core/Models/Eft/Common/Tables/BotCore.cs +++ b/Core/Models/Eft/Common/Tables/BotCore.cs @@ -2,399 +2,398 @@ namespace Core.Models.Eft.Common.Tables; - public class BotCore { [JsonPropertyName("SAVAGE_KILL_DIST")] public double? SavageKillDistance { get; set; } - + [JsonPropertyName("SOUND_DOOR_BREACH_METERS")] public double? SoundDoorBreachMeters { get; set; } - + [JsonPropertyName("SOUND_DOOR_OPEN_METERS")] public double? SoundDoorOpenMeters { get; set; } - + [JsonPropertyName("STEP_NOISE_DELTA")] public double? StepNoiseDelta { get; set; } - + [JsonPropertyName("JUMP_NOISE_DELTA")] public double? JumpNoiseDelta { get; set; } - + [JsonPropertyName("GUNSHOT_SPREAD")] public double? GunshotSpread { get; set; } - + [JsonPropertyName("GUNSHOT_SPREAD_SILENCE")] public double? GunshotSpreadSilence { get; set; } - + [JsonPropertyName("BASE_WALK_SPEREAD2")] public double? BaseWalkSpread2 { get; set; } - + [JsonPropertyName("MOVE_SPEED_COEF_MAX")] public double? MoveSpeedCoefficientMax { get; set; } - + [JsonPropertyName("SPEED_SERV_SOUND_COEF_A")] public double? SpeedServiceSoundCoefficientA { get; set; } - + [JsonPropertyName("SPEED_SERV_SOUND_COEF_B")] public double? SpeedServiceSoundCoefficientB { get; set; } - + [JsonPropertyName("G")] public double? Gravity { get; set; } - + [JsonPropertyName("STAY_COEF")] public double? StayCoefficient { get; set; } - + [JsonPropertyName("SIT_COEF")] public double? SitCoefficient { get; set; } - + [JsonPropertyName("LAY_COEF")] public double? LayCoefficient { get; set; } - + [JsonPropertyName("MAX_ITERATIONS")] public double? MaxIterations { get; set; } - + [JsonPropertyName("START_DIST_TO_COV")] public double? StartDistanceToCover { get; set; } - + [JsonPropertyName("MAX_DIST_TO_COV")] public double? MaxDistanceToCover { get; set; } - + [JsonPropertyName("STAY_HEIGHT")] public double? StayHeight { get; set; } - + [JsonPropertyName("CLOSE_POINTS")] public double? ClosePoints { get; set; } - + [JsonPropertyName("COUNT_TURNS")] public double? CountTurns { get; set; } - + [JsonPropertyName("SIMPLE_POINT_LIFE_TIME_SEC")] public double? SimplePointLifetimeSeconds { get; set; } - + [JsonPropertyName("DANGER_POINT_LIFE_TIME_SEC")] public double? DangerPointLifetimeSeconds { get; set; } - + [JsonPropertyName("DANGER_POWER")] public double? DangerPower { get; set; } - + [JsonPropertyName("COVER_DIST_CLOSE")] public double? CoverDistanceClose { get; set; } - + [JsonPropertyName("GOOD_DIST_TO_POINT")] public double GoodDistanceToPoint { get; set; } - + [JsonPropertyName("COVER_TOOFAR_FROM_BOSS")] public double CoverTooFarFromBoss { get; set; } - + [JsonPropertyName("COVER_TOOFAR_FROM_BOSS_SQRT")] public double CoverTooFarFromBossSqrt { get; set; } - + [JsonPropertyName("MAX_Y_DIFF_TO_PROTECT")] public double MaxYDifferenceToProtect { get; set; } - + [JsonPropertyName("FLARE_POWER")] public double FlarePower { get; set; } - + [JsonPropertyName("MOVE_COEF")] public double MoveCoefficient { get; set; } - + [JsonPropertyName("PRONE_POSE")] public double PronePose { get; set; } - + [JsonPropertyName("LOWER_POSE")] public double LowerPose { get; set; } - + [JsonPropertyName("MAX_POSE")] public double MaxPose { get; set; } - + [JsonPropertyName("FLARE_TIME")] public double FlareTime { get; set; } - + [JsonPropertyName("MAX_REQUESTS__PER_GROUP")] public double MaxRequestsPerGroup { get; set; } - + [JsonPropertyName("UPDATE_GOAL_TIMER_SEC")] public double UpdateGoalTimerSeconds { get; set; } - + [JsonPropertyName("DIST_NOT_TO_GROUP")] public double DistanceNotToGroup { get; set; } - + [JsonPropertyName("DIST_NOT_TO_GROUP_SQR")] public double DistanceNotToGroupSquared { get; set; } - + [JsonPropertyName("LAST_SEEN_POS_LIFETIME")] public double LastSeenPositionLifetime { get; set; } - + [JsonPropertyName("DELTA_GRENADE_START_TIME")] public double DeltaGrenadeStartTime { get; set; } - + [JsonPropertyName("DELTA_GRENADE_END_TIME")] public double DeltaGrenadeEndTime { get; set; } - + [JsonPropertyName("DELTA_GRENADE_RUN_DIST")] public double DeltaGrenadeRunDistance { get; set; } - + [JsonPropertyName("DELTA_GRENADE_RUN_DIST_SQRT")] public double DeltaGrenadeRunDistanceSqrt { get; set; } - + [JsonPropertyName("PATROL_MIN_LIGHT_DIST")] public double PatrolMinimumLightDistance { get; set; } - + [JsonPropertyName("HOLD_MIN_LIGHT_DIST")] public double HoldMinimumLightDistance { get; set; } - + [JsonPropertyName("STANDART_BOT_PAUSE_DOOR")] public double StandardBotPauseDoor { get; set; } - + [JsonPropertyName("ARMOR_CLASS_COEF")] public double ArmorClassCoefficient { get; set; } - + [JsonPropertyName("SHOTGUN_POWER")] public double ShotgunPower { get; set; } - + [JsonPropertyName("RIFLE_POWER")] public double RiflePower { get; set; } - + [JsonPropertyName("PISTOL_POWER")] public double PistolPower { get; set; } - + [JsonPropertyName("SMG_POWER")] public double SMGPower { get; set; } - + [JsonPropertyName("SNIPE_POWER")] public double SniperPower { get; set; } - + [JsonPropertyName("GESTUS_PERIOD_SEC")] public double GestusPeriodSeconds { get; set; } - + [JsonPropertyName("GESTUS_AIMING_DELAY")] public double GestusAimingDelay { get; set; } - + [JsonPropertyName("GESTUS_REQUEST_LIFETIME")] public double GestusRequestLifetime { get; set; } - + [JsonPropertyName("GESTUS_FIRST_STAGE_MAX_TIME")] public double GestusFirstStageMaxTime { get; set; } - + [JsonPropertyName("GESTUS_SECOND_STAGE_MAX_TIME")] public double GestusSecondStageMaxTime { get; set; } - + [JsonPropertyName("GESTUS_MAX_ANSWERS")] public double GestusMaxAnswers { get; set; } - + [JsonPropertyName("GESTUS_FUCK_TO_SHOOT")] public double GestusFuckToShoot { get; set; } - + [JsonPropertyName("GESTUS_DIST_ANSWERS")] public double GestusDistanceAnswers { get; set; } - + [JsonPropertyName("GESTUS_DIST_ANSWERS_SQRT")] public double GestusDistanceAnswersSqrt { get; set; } - + [JsonPropertyName("GESTUS_ANYWAY_CHANCE")] public double GestusAnywayChance { get; set; } - + [JsonPropertyName("TALK_DELAY")] public double TalkDelay { get; set; } - + [JsonPropertyName("CAN_SHOOT_TO_HEAD")] public bool CanShootToHead { get; set; } - + [JsonPropertyName("CAN_TILT")] public bool CanTilt { get; set; } - + [JsonPropertyName("TILT_CHANCE")] public double TiltChance { get; set; } - + [JsonPropertyName("MIN_BLOCK_DIST")] public double MinimumBlockDistance { get; set; } - + [JsonPropertyName("MIN_BLOCK_TIME")] public double MinimumBlockTime { get; set; } - + [JsonPropertyName("COVER_SECONDS_AFTER_LOSE_VISION")] public double CoverSecondsAfterLoseVision { get; set; } - + [JsonPropertyName("MIN_ARG_COEF")] public double MinimumArgumentCoefficient { get; set; } - + [JsonPropertyName("MAX_ARG_COEF")] public double MaximumArgumentCoefficient { get; set; } - + [JsonPropertyName("DEAD_AGR_DIST")] public double DeadAgrDistance { get; set; } - + [JsonPropertyName("MAX_DANGER_CARE_DIST_SQRT")] public double MaxDangerCareDistanceSqrt { get; set; } - + [JsonPropertyName("MAX_DANGER_CARE_DIST")] public double MaxDangerCareDistance { get; set; } - + [JsonPropertyName("MIN_MAX_PERSON_SEARCH")] public double MinimumMaximumPersonSearch { get; set; } - + [JsonPropertyName("PERCENT_PERSON_SEARCH")] public double PercentPersonSearch { get; set; } - + [JsonPropertyName("LOOK_ANYSIDE_BY_WALL_SEC_OF_ENEMY")] public double LookAnySideByWallSecondsOfEnemy { get; set; } - + [JsonPropertyName("CLOSE_TO_WALL_ROTATE_BY_WALL_SQRT")] public double CloseToWallRotateByWallSqrt { get; set; } - + [JsonPropertyName("SHOOT_TO_CHANGE_RND_PART_MIN")] public double ShootToChangeRandomPartMinimum { get; set; } - + [JsonPropertyName("SHOOT_TO_CHANGE_RND_PART_MAX")] public double ShootToChangeRandomPartMaximum { get; set; } - + [JsonPropertyName("SHOOT_TO_CHANGE_RND_PART_DELTA")] public double ShootToChangeRandomPartDelta { get; set; } - + [JsonPropertyName("FORMUL_COEF_DELTA_DIST")] public double FormulaCoefficientDeltaDistance { get; set; } - + [JsonPropertyName("FORMUL_COEF_DELTA_SHOOT")] public double FormulaCoefficientDeltaShoot { get; set; } - + [JsonPropertyName("FORMUL_COEF_DELTA_FRIEND_COVER")] public double FormulaCoefficientDeltaFriendCover { get; set; } - + [JsonPropertyName("SUSPETION_POINT_DIST_CHECK")] public double SuspicionPointDistanceCheck { get; set; } - + [JsonPropertyName("MAX_BASE_REQUESTS_PER_PLAYER")] public double MaxBaseRequestsPerPlayer { get; set; } - + [JsonPropertyName("MAX_HOLD_REQUESTS_PER_PLAYER")] public double MaxHoldRequestsPerPlayer { get; set; } - + [JsonPropertyName("MAX_GO_TO_REQUESTS_PER_PLAYER")] public double MaxGoToRequestsPerPlayer { get; set; } - + [JsonPropertyName("MAX_COME_WITH_ME_REQUESTS_PER_PLAYER")] public double MaxComeWithMeRequestsPerPlayer { get; set; } - + [JsonPropertyName("CORE_POINT_MAX_VALUE")] public double CorePointMaxValue { get; set; } - + [JsonPropertyName("CORE_POINTS_MAX")] public double CorePointsMax { get; set; } - + [JsonPropertyName("CORE_POINTS_MIN")] public double CorePointsMin { get; set; } - + [JsonPropertyName("BORN_POISTS_FREE_ONLY_FAREST_BOT")] public bool BornPointsFreeOnlyFarthestBot { get; set; } - + [JsonPropertyName("BORN_POINSTS_FREE_ONLY_FAREST_PLAYER")] public bool BornPointsFreeOnlyFarthestPlayer { get; set; } - + [JsonPropertyName("SCAV_GROUPS_TOGETHER")] public bool ScavGroupsTogether { get; set; } - + [JsonPropertyName("LAY_DOWN_ANG_SHOOT")] public double LayDownAngleShoot { get; set; } - + [JsonPropertyName("HOLD_REQUEST_TIME_SEC")] public double HoldRequestTimeSeconds { get; set; } - + [JsonPropertyName("TRIGGERS_DOWN_TO_RUN_WHEN_MOVE")] public double TriggersDownToRunWhenMove { get; set; } - + [JsonPropertyName("MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING")] public double MinimumDistanceToRunWhileAttackingMoving { get; set; } - + [JsonPropertyName("MIN_DIST_TO_RUN_WHILE_ATTACK_MOVING_OTHER_ENEMIS")] public double MinimumDistanceToRunWhileAttackingMovingOtherEnemies { get; set; } - + [JsonPropertyName("MIN_DIST_TO_STOP_RUN")] public double MinimumDistanceToStopRunning { get; set; } - + [JsonPropertyName("JUMP_SPREAD_DIST")] public double JumpSpreadDistance { get; set; } - + [JsonPropertyName("LOOK_TIMES_TO_KILL")] public double LookTimesToKill { get; set; } - + [JsonPropertyName("COME_INSIDE_TIMES")] public double ComeInsideTimes { get; set; } - + [JsonPropertyName("TOTAL_TIME_KILL")] public double TotalTimeKill { get; set; } - + [JsonPropertyName("TOTAL_TIME_KILL_AFTER_WARN")] public double TotalTimeKillAfterWarning { get; set; } - + [JsonPropertyName("MOVING_AIM_COEF")] public double MovingAimCoefficient { get; set; } - + [JsonPropertyName("VERTICAL_DIST_TO_IGNORE_SOUND")] public double VerticalDistanceToIgnoreSound { get; set; } - + [JsonPropertyName("DEFENCE_LEVEL_SHIFT")] public double DefenseLevelShift { get; set; } - + [JsonPropertyName("MIN_DIST_CLOSE_DEF")] public double MinimumDistanceCloseDefense { get; set; } - + [JsonPropertyName("USE_ID_PRIOR_WHO_GO")] public bool UseIdPriorWhoGoes { get; set; } - + [JsonPropertyName("SMOKE_GRENADE_RADIUS_COEF")] public double SmokeGrenadeRadiusCoefficient { get; set; } - + [JsonPropertyName("GRENADE_PRECISION")] public double GrenadePrecision { get; set; } - + [JsonPropertyName("MAX_WARNS_BEFORE_KILL")] public double MaxWarningsBeforeKill { get; set; } - + [JsonPropertyName("CARE_ENEMY_ONLY_TIME")] public double CareEnemyOnlyTime { get; set; } - + [JsonPropertyName("MIDDLE_POINT_COEF")] public double MiddlePointCoefficient { get; set; } - + [JsonPropertyName("MAIN_TACTIC_ONLY_ATTACK")] public bool MainTacticOnlyAttack { get; set; } - + [JsonPropertyName("LAST_DAMAGE_ACTIVE")] public double LastDamageActive { get; set; } - + [JsonPropertyName("SHALL_DIE_IF_NOT_INITED")] public bool ShallDieIfNotInitialized { get; set; } - + [JsonPropertyName("CHECK_BOT_INIT_TIME_SEC")] public double CheckBotInitializationTimeSeconds { get; set; } - + [JsonPropertyName("WEAPON_ROOT_Y_OFFSET")] public double WeaponRootYOffset { get; set; } - + [JsonPropertyName("DELTA_SUPRESS_DISTANCE_SQRT")] public double DeltaSuppressDistanceSqrt { get; set; } - + [JsonPropertyName("DELTA_SUPRESS_DISTANCE")] public double DeltaSuppressDistance { get; set; } - + [JsonPropertyName("WAVE_COEF_LOW")] public double WaveCoefficientLow { get; set; } - + [JsonPropertyName("WAVE_COEF_MID")] public double WaveCoefficientMid { get; set; } - + [JsonPropertyName("WAVE_COEF_HIGH")] public double WaveCoefficientHigh { get; set; } - + [JsonPropertyName("WAVE_COEF_HORDE")] public double WaveCoefficientHorde { get; set; } - + [JsonPropertyName("WAVE_ONLY_AS_ONLINE")] public bool WaveOnlyAsOnline { get; set; } - + [JsonPropertyName("LOCAL_BOTS_COUNT")] public double LocalBotsCount { get; set; } - + [JsonPropertyName("AXE_MAN_KILLS_END")] public double AxeManKillsEnd { get; set; } -} +} \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/BotType.cs b/Core/Models/Eft/Common/Tables/BotType.cs index 1c8b5a19..fd72ce3d 100644 --- a/Core/Models/Eft/Common/Tables/BotType.cs +++ b/Core/Models/Eft/Common/Tables/BotType.cs @@ -68,7 +68,7 @@ public class Chances [JsonPropertyName("equipmentMods")] public Dictionary? EquipmentModsChances { get; set; } - + [JsonPropertyName("mods")] public Dictionary? Mods { get; set; } } @@ -126,19 +126,19 @@ public class ModsChances { [JsonPropertyName("mod_charge")] public double ModCharge { get; set; } - + [JsonPropertyName("mod_bipod")] public double ModBipod { get; set; } - + [JsonPropertyName("mod_barrel")] public double ModBarrel { get; set; } - + [JsonPropertyName("mod_catch")] public double ModCatch { get; set; } - + [JsonPropertyName("mod_gas_block")] public double ModGasBlock { get; set; } - + [JsonPropertyName("mod_hammer")] public double ModHammer { get; set; } @@ -240,43 +240,43 @@ public class ModsChances [JsonPropertyName("mod_handguard")] public double ModHandguard { get; set; } - + [JsonPropertyName("back_plate")] public double BackPlate { get; set; } - + [JsonPropertyName("front_plate")] public double FrontPlate { get; set; } - + [JsonPropertyName("left_side_plate")] public double LeftSidePlate { get; set; } - + [JsonPropertyName("right_side_plate")] public double RightSidePlate { get; set; } - + [JsonPropertyName("mod_mount_002")] public double ModMount002 { get; set; } - + [JsonPropertyName("mod_mount_003")] public double ModMount003 { get; set; } - + [JsonPropertyName("mod_mount_004")] public double ModMount004 { get; set; } - + [JsonPropertyName("mod_mount_005")] public double ModMount005 { get; set; } - + [JsonPropertyName("mod_mount_006")] public double ModMount006 { get; set; } - + [JsonPropertyName("mod_muzzle_000")] public double ModMuzzle000 { get; set; } - + [JsonPropertyName("mod_muzzle_001")] public double ModMuzzle001 { get; set; } - + [JsonPropertyName("mod_pistol_grip_akms")] public double ModPistolGripAkms { get; set; } - + [JsonPropertyName("mod_pistolgrip")] public double ModPistol_Grip { get; set; } } @@ -286,10 +286,13 @@ public class Difficulties { [JsonPropertyName("easy")] public DifficultyCategories? Easy { get; set; } + [JsonPropertyName("normal")] public DifficultyCategories? Normal { get; set; } + [JsonPropertyName("hard")] public DifficultyCategories? Hard { get; set; } + [JsonPropertyName("impossible")] public DifficultyCategories? Impossible { get; set; } } diff --git a/Core/Models/Eft/Common/Tables/CustomisationStorage.cs b/Core/Models/Eft/Common/Tables/CustomisationStorage.cs index 665a2cbc..f7394921 100644 --- a/Core/Models/Eft/Common/Tables/CustomisationStorage.cs +++ b/Core/Models/Eft/Common/Tables/CustomisationStorage.cs @@ -6,10 +6,10 @@ public class CustomisationStorage { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("source")] public string? Source { get; set; } - + [JsonPropertyName("type")] public string? Type { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/HandbookBase.cs b/Core/Models/Eft/Common/Tables/HandbookBase.cs index d5f5a85e..02b16c30 100644 --- a/Core/Models/Eft/Common/Tables/HandbookBase.cs +++ b/Core/Models/Eft/Common/Tables/HandbookBase.cs @@ -6,7 +6,7 @@ public class HandbookBase { [JsonPropertyName("Categories")] public List? Categories { get; set; } - + [JsonPropertyName("Items")] public List? Items { get; set; } } @@ -15,16 +15,16 @@ 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; } } @@ -33,10 +33,10 @@ public class HandbookItem { [JsonPropertyName("Id")] public string? Id { get; set; } - + [JsonPropertyName("ParentId")] public string? ParentId { get; set; } - + [JsonPropertyName("Price")] public decimal? Price { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/Item.cs b/Core/Models/Eft/Common/Tables/Item.cs index 8847cd28..954e7bd5 100644 --- a/Core/Models/Eft/Common/Tables/Item.cs +++ b/Core/Models/Eft/Common/Tables/Item.cs @@ -2,19 +2,23 @@ namespace Core.Models.Eft.Common.Tables; - public class Item { [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 object? Location { get; set; } // TODO: Can be IItemLocation or number + [JsonPropertyName("upd")] public Upd? Update { get; set; } } @@ -25,6 +29,7 @@ public class ItemLocation public float? Y { get; set; } public object? R { get; set; } // TODO: Can be string or number public bool? IsSearched { get; set; } + /** SPT property? */ public object? Rotation { get; set; } // TODO: Can be string or boolean } @@ -36,9 +41,11 @@ public class Upd public UpdTogglable? Togglable { get; set; } public UpdMap? Map { get; set; } public UpdTag? Tag { get; set; } + /** SPT specific property, not made by BSG */ [JsonPropertyName("sptPresetId")] public string? SptPresetId { get; set; } + public UpdFaceShield? FaceShield { get; set; } public double? StackObjectsCount { get; set; } public bool? UnlimitedCount { get; set; } @@ -62,7 +69,8 @@ public class Upd public PinLockState? PinLockState { get; set; } } -public enum PinLockState { +public enum PinLockState +{ Free, Locked, Pinned @@ -72,13 +80,13 @@ public class UpdBuff { [JsonPropertyName("Rarity")] public string? Rarity { get; set; } - + [JsonPropertyName("BuffType")] public string? BuffType { get; set; } - + [JsonPropertyName("Value")] public int? Value { get; set; } - + [JsonPropertyName("ThresholdDurability")] public int? ThresholdDurability { get; set; } } @@ -99,7 +107,7 @@ public class MapMarker { [JsonPropertyName("X")] public int? X { get; set; } - + [JsonPropertyName("Y")] public int? Y { get; set; } } @@ -108,7 +116,7 @@ public class UpdTag { [JsonPropertyName("Color")] public int? Color { get; set; } - + [JsonPropertyName("Name")] public string? Name { get; set; } } @@ -123,7 +131,7 @@ public class UpdRepairable { [JsonPropertyName("Durability")] public int? Durability { get; set; } - + [JsonPropertyName("MaxDurability")] public int? MaxDurability { get; set; } } @@ -144,10 +152,10 @@ public class UpdSight { [JsonPropertyName("ScopesCurrentCalibPointIndexes")] public List? ScopesCurrentCalibPointIndexes { get; set; } - + [JsonPropertyName("ScopesSelectedModes")] public List? ScopesSelectedModes { get; set; } - + [JsonPropertyName("SelectedScope")] public int? SelectedScope { get; set; } } diff --git a/Core/Models/Eft/Common/Tables/LocationsBase.cs b/Core/Models/Eft/Common/Tables/LocationsBase.cs index be707a1b..338d8468 100644 --- a/Core/Models/Eft/Common/Tables/LocationsBase.cs +++ b/Core/Models/Eft/Common/Tables/LocationsBase.cs @@ -23,6 +23,6 @@ public class Path [JsonPropertyName("Destination")] public string? Destination { get; set; } - + public bool? Event { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/Match.cs b/Core/Models/Eft/Common/Tables/Match.cs index d0165dda..0d806095 100644 --- a/Core/Models/Eft/Common/Tables/Match.cs +++ b/Core/Models/Eft/Common/Tables/Match.cs @@ -2,7 +2,6 @@ using System.Text.Json.Serialization; namespace Core.Models.Eft.Common.Tables; - public class Match { [JsonPropertyName("metrics")] diff --git a/Core/Models/Eft/Common/Tables/Prestige.cs b/Core/Models/Eft/Common/Tables/Prestige.cs index e0ea078b..ebbdc40a 100644 --- a/Core/Models/Eft/Common/Tables/Prestige.cs +++ b/Core/Models/Eft/Common/Tables/Prestige.cs @@ -12,19 +12,19 @@ public class PretigeElement { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("conditions")] public List? Conditions { get; set; } - + [JsonPropertyName("rewards")] public List? Rewards { get; set; } - + [JsonPropertyName("transferConfigs")] public TransferConfigs? TransferConfigs { get; set; } - + [JsonPropertyName("image")] public string? Image { get; set; } - + [JsonPropertyName("bigImage")] public string? BigImage { get; set; } } @@ -33,10 +33,10 @@ public class TransferConfigs { [JsonPropertyName("stashConfig")] public StashPrestigeConfig? StashConfig { get; set; } - + [JsonPropertyName("skillConfig")] public PrestigeSkillConfig? SkillConfig { get; set; } - + [JsonPropertyName("masteringConfig")] public PrestigeMasteringConfig? MasteringConfig { get; set; } } @@ -45,10 +45,10 @@ public class StashPrestigeConfig { [JsonPropertyName("xCellCount")] public int? XCellCount { get; set; } - + [JsonPropertyName("yCellCount")] public int? YCellCount { get; set; } - + [JsonPropertyName("filters")] public StashPrestigeFilters? Filters { get; set; } } @@ -57,7 +57,7 @@ public class StashPrestigeFilters { [JsonPropertyName("includedItems")] public List? IncludedItems { get; set; } - + [JsonPropertyName("excludedItems")] public List? ExcludedItems { get; set; } } diff --git a/Core/Models/Eft/Common/Tables/Quest.cs b/Core/Models/Eft/Common/Tables/Quest.cs index bc7bd8d0..c47c01bd 100644 --- a/Core/Models/Eft/Common/Tables/Quest.cs +++ b/Core/Models/Eft/Common/Tables/Quest.cs @@ -10,106 +10,106 @@ public class Quest /// [JsonPropertyName("QuestName")] public string? QuestName { get; set; } - + [JsonPropertyName("_id")] public string? Id { get; set; } - + [JsonPropertyName("canShowNotificationsInGame")] public bool? CanShowNotificationsInGame { get; set; } - + [JsonPropertyName("conditions")] public QuestConditionTypes? Conditions { get; set; } - + [JsonPropertyName("description")] public string? Description { get; set; } - + [JsonPropertyName("failMessageText")] public string? FailMessageText { get; set; } - + [JsonPropertyName("name")] public string? Name { get; set; } - + [JsonPropertyName("note")] public string? Note { get; set; } - + [JsonPropertyName("traderId")] public string? TraderId { get; set; } - + [JsonPropertyName("location")] public string? Location { get; set; } - + [JsonPropertyName("image")] public string? Image { get; set; } - + [JsonPropertyName("type")] public QuestTypeEnum? Type { get; set; } - + [JsonPropertyName("isKey")] public bool? IsKey { get; set; } - + [JsonPropertyName("restartable")] public bool? Restartable { get; set; } - + [JsonPropertyName("instantComplete")] public bool? InstantComplete { get; set; } - + [JsonPropertyName("secretQuest")] public bool? SecretQuest { get; set; } - + [JsonPropertyName("startedMessageText")] public string? StartedMessageText { get; set; } - + [JsonPropertyName("successMessageText")] public string? SuccessMessageText { get; set; } - + [JsonPropertyName("acceptPlayerMessage")] public string? AcceptPlayerMessage { get; set; } - + [JsonPropertyName("declinePlayerMessage")] public string? DeclinePlayerMessage { get; set; } - + [JsonPropertyName("completePlayerMessage")] public string? CompletePlayerMessage { get; set; } - + [JsonPropertyName("templateId")] public string? TemplateId { get; set; } - + [JsonPropertyName("rewards")] public QuestRewards? Rewards { get; set; } - + /// /// Becomes 'AppearStatus' inside client /// [JsonPropertyName("status")] public object? Status { get; set; } // TODO: string | number - + [JsonPropertyName("KeyQuest")] public bool? KeyQuest { get; set; } - + [JsonPropertyName("changeQuestMessageText")] public string? ChangeQuestMessageText { get; set; } - + /// /// "Pmc" or "Scav" /// [JsonPropertyName("side")] public string? Side { get; set; } - + [JsonPropertyName("acceptanceAndFinishingSource")] public string? AcceptanceAndFinishingSource { get; set; } - + [JsonPropertyName("progressSource")] public string? ProgressSource { get; set; } - + [JsonPropertyName("rankingModes")] public List? RankingModes { get; set; } - + [JsonPropertyName("gameModes")] public List? GameModes { get; set; } - + [JsonPropertyName("arenaLocations")] public List? ArenaLocations { get; set; } - + /// /// Status of quest to player /// @@ -121,16 +121,16 @@ public class QuestConditionTypes { [JsonPropertyName("Started")] public List? Started { get; set; } - + [JsonPropertyName("AvailableForFinish")] public List? AvailableForFinish { get; set; } - + [JsonPropertyName("AvailableForStart")] public List? AvailableForStart { get; set; } - + [JsonPropertyName("Success")] public List? Success { get; set; } - + [JsonPropertyName("Fail")] public List? Fail { get; set; } } @@ -139,91 +139,91 @@ public class QuestCondition { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("index")] public int? Index { get; set; } - + [JsonPropertyName("compareMethod")] public string? CompareMethod { get; set; } - + [JsonPropertyName("dynamicLocale")] public bool? DynamicLocale { get; set; } - + [JsonPropertyName("visibilityConditions")] public List? VisibilityConditions { get; set; } - + [JsonPropertyName("globalQuestCounterId")] public string? GlobalQuestCounterId { get; set; } - + [JsonPropertyName("parentId")] public string? ParentId { get; set; } - + [JsonPropertyName("target")] public object? Target { get; set; } // TODO: string[] | string - + [JsonPropertyName("value")] public object? Value { get; set; } // TODO: string | number - + [JsonPropertyName("type")] public object? Type { get; set; } // TODO: boolean | string - + [JsonPropertyName("status")] public List? Status { get; set; } - + [JsonPropertyName("availableAfter")] public int? AvailableAfter { get; set; } - + [JsonPropertyName("dispersion")] public double? Dispersion { get; set; } - + [JsonPropertyName("onlyFoundInRaid")] public bool? OnlyFoundInRaid { get; set; } - + [JsonPropertyName("oneSessionOnly")] public bool? OneSessionOnly { get; set; } - + [JsonPropertyName("isResetOnConditionFailed")] public bool? IsResetOnConditionFailed { get; set; } - + [JsonPropertyName("isNecessary")] public bool? IsNecessary { get; set; } - + [JsonPropertyName("doNotResetIfCounterCompleted")] public bool? DoNotResetIfCounterCompleted { get; set; } - + [JsonPropertyName("dogtagLevel")] public object? DogtagLevel { get; set; } // TODO: number | string - + [JsonPropertyName("traderId")] public string? TraderId { get; set; } - + [JsonPropertyName("maxDurability")] public object? MaxDurability { get; set; } // TODO: number | string - + [JsonPropertyName("minDurability")] public object? MinDurability { get; set; } // TODO: number | string - + [JsonPropertyName("counter")] public QuestConditionCounter? Counter { get; set; } - + [JsonPropertyName("plantTime")] public int? PlantTime { get; set; } - + [JsonPropertyName("zoneId")] public string? ZoneId { get; set; } - + [JsonPropertyName("countInRaid")] public bool? CountInRaid { get; set; } - + [JsonPropertyName("completeInSeconds")] public int? CompleteInSeconds { get; set; } - + [JsonPropertyName("isEncoded")] public bool? IsEncoded { get; set; } - + [JsonPropertyName("conditionType")] public string? ConditionType { get; set; } - + [JsonPropertyName("areaType")] public HideoutAreas? AreaType { get; set; } } @@ -232,7 +232,7 @@ public class QuestConditionCounter { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("conditions")] public List? Conditions { get; set; } } @@ -241,76 +241,76 @@ public class QuestConditionCounterCondition { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("dynamicLocale")] public bool? DynamicLocale { get; set; } - + [JsonPropertyName("target")] public object? Target { get; set; } // TODO: string[] | string - + [JsonPropertyName("completeInSeconds")] public int? CompleteInSeconds { get; set; } - + [JsonPropertyName("energy")] public ValueCompare? Energy { get; set; } - + [JsonPropertyName("exitName")] public string? ExitName { get; set; } - + [JsonPropertyName("hydration")] public ValueCompare? Hydration { get; set; } - + [JsonPropertyName("time")] public ValueCompare? Time { get; set; } - + [JsonPropertyName("compareMethod")] public string? CompareMethod { get; set; } - + [JsonPropertyName("value")] public object? Value { get; set; } // TODO: number | string - + [JsonPropertyName("weapon")] public List? Weapon { get; set; } - + [JsonPropertyName("distance")] public CounterConditionDistance? Distance { get; set; } - + [JsonPropertyName("equipmentInclusive")] public List>? EquipmentInclusive { get; set; } - + [JsonPropertyName("weaponModsInclusive")] public List>? WeaponModsInclusive { get; set; } - + [JsonPropertyName("weaponModsExclusive")] public List>? WeaponModsExclusive { get; set; } - + [JsonPropertyName("enemyEquipmentInclusive")] public List>? EnemyEquipmentInclusive { get; set; } - + [JsonPropertyName("enemyEquipmentExclusive")] public List>? EnemyEquipmentExclusive { get; set; } - + [JsonPropertyName("weaponCaliber")] public List? WeaponCaliber { get; set; } - + [JsonPropertyName("savageRole")] public List? SavageRole { get; set; } - + [JsonPropertyName("status")] public List? Status { get; set; } - + [JsonPropertyName("bodyPart")] public List? BodyPart { get; set; } - + [JsonPropertyName("daytime")] public DaytimeCounter? Daytime { get; set; } - + [JsonPropertyName("conditionType")] public string? ConditionType { get; set; } - + [JsonPropertyName("enemyHealthEffects")] public List? EnemyHealthEffects { get; set; } - + [JsonPropertyName("resetOnSessionEnd")] public bool? ResetOnSessionEnd { get; set; } } diff --git a/Core/Models/Eft/Common/Tables/RepeatableQuests.cs b/Core/Models/Eft/Common/Tables/RepeatableQuests.cs index c8ddacc5..67cef938 100644 --- a/Core/Models/Eft/Common/Tables/RepeatableQuests.cs +++ b/Core/Models/Eft/Common/Tables/RepeatableQuests.cs @@ -6,28 +6,28 @@ public class RepeatableQuest : Quest { [JsonPropertyName("changeCost")] public List? ChangeCost { get; set; } - + [JsonPropertyName("changeStandingCost")] public int? ChangeStandingCost { get; set; } - + [JsonPropertyName("sptRepatableGroupName")] public string? SptRepatableGroupName { get; set; } - + [JsonPropertyName("acceptanceAndFinishingSource")] public string? AcceptanceAndFinishingSource { get; set; } - + [JsonPropertyName("progressSource")] public string? ProgressSource { get; set; } - + [JsonPropertyName("rankingModes")] public List? RankingModes { get; set; } - + [JsonPropertyName("gameModes")] public List? GameModes { get; set; } - + [JsonPropertyName("arenaLocations")] public List? ArenaLocations { get; set; } - + [JsonPropertyName("questStatus")] public RepeatableQuestStatus? QuestStatus { get; set; } } @@ -36,13 +36,13 @@ public class RepeatableQuestDatabase { [JsonPropertyName("templates")] public RepeatableTemplates? Templates { get; set; } - + [JsonPropertyName("rewards")] public RewardOptions? Rewards { get; set; } - + [JsonPropertyName("data")] public Options? Data { get; set; } - + [JsonPropertyName("samples")] public List? Samples { get; set; } } @@ -51,19 +51,19 @@ public class RepeatableQuestStatus { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("uid")] public string? Uid { get; set; } - + [JsonPropertyName("qid")] public string? Qid { get; set; } - + [JsonPropertyName("startTime")] public long? StartTime { get; set; } - + [JsonPropertyName("status")] public int? Status { get; set; } - + [JsonPropertyName("statusTimers")] public object? StatusTimers { get; set; } // Use object for any type } @@ -72,10 +72,10 @@ public class RepeatableTemplates { [JsonPropertyName("Elimination")] public Quest? Elimination { get; set; } - + [JsonPropertyName("Completion")] public Quest? Completion { get; set; } - + [JsonPropertyName("Exploration")] public Quest? Exploration { get; set; } } @@ -84,28 +84,28 @@ public class PmcDataRepeatableQuest { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("name")] public string? Name { get; set; } - + [JsonPropertyName("unavailableTime")] public string? UnavailableTime { get; set; } - + [JsonPropertyName("activeQuests")] public List? ActiveQuests { get; set; } - + [JsonPropertyName("inactiveQuests")] public List? InactiveQuests { get; set; } - + [JsonPropertyName("endTime")] public long? EndTime { get; set; } - + [JsonPropertyName("changeRequirement")] public Dictionary? ChangeRequirement { get; set; } - + [JsonPropertyName("freeChanges")] public int? FreeChanges { get; set; } - + [JsonPropertyName("freeChangesAvailable")] public int? FreeChangesAvailable { get; set; } } @@ -114,7 +114,7 @@ public class ChangeRequirement { [JsonPropertyName("changeCost")] public List? ChangeCost { get; set; } - + [JsonPropertyName("changeStandingCost")] public int? ChangeStandingCost { get; set; } } @@ -123,7 +123,7 @@ public class ChangeCost { [JsonPropertyName("templateId")] public string? TemplateId { get; set; } - + [JsonPropertyName("count")] public int? Count { get; set; } } @@ -146,7 +146,7 @@ public class CompletionFilter { [JsonPropertyName("itemsBlacklist")] public List? ItemsBlacklist { get; set; } - + [JsonPropertyName("itemsWhitelist")] public List? ItemsWhitelist { get; set; } } @@ -155,7 +155,7 @@ public class ItemsBlacklist { [JsonPropertyName("minPlayerLevel")] public int? MinPlayerLevel { get; set; } - + [JsonPropertyName("itemIds")] public List? ItemIds { get; set; } } @@ -164,7 +164,7 @@ public class ItemsWhitelist { [JsonPropertyName("minPlayerLevel")] public int? MinPlayerLevel { get; set; } - + [JsonPropertyName("itemIds")] public List? ItemIds { get; set; } } @@ -173,58 +173,58 @@ public class SampleQuests { [JsonPropertyName("_id")] public string? Id { get; set; } - + [JsonPropertyName("traderId")] public string? TraderId { get; set; } - + [JsonPropertyName("location")] public string? Location { get; set; } - + [JsonPropertyName("image")] public string? Image { get; set; } - + [JsonPropertyName("type")] public string? Type { get; set; } - + [JsonPropertyName("isKey")] public bool? IsKey { get; set; } - + [JsonPropertyName("restartable")] public bool? Restartable { get; set; } - + [JsonPropertyName("instantComplete")] public bool? InstantComplete { get; set; } - + [JsonPropertyName("secretQuest")] public bool? SecretQuest { get; set; } - + [JsonPropertyName("canShowNotificationsInGame")] public bool? CanShowNotificationsInGame { get; set; } - + [JsonPropertyName("rewards")] public QuestRewards? Rewards { get; set; } - + [JsonPropertyName("conditions")] public QuestConditionTypes? Conditions { get; set; } - + [JsonPropertyName("name")] public string? Name { get; set; } - + [JsonPropertyName("note")] public string? Note { get; set; } - + [JsonPropertyName("description")] public string? Description { get; set; } - + [JsonPropertyName("successMessageText")] public string? SuccessMessageText { get; set; } - + [JsonPropertyName("failMessageText")] public string? FailMessageText { get; set; } - + [JsonPropertyName("startedMessageText")] public string? StartedMessageText { get; set; } - + [JsonPropertyName("templateId")] public string? TemplateId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/TemplateItem.cs b/Core/Models/Eft/Common/Tables/TemplateItem.cs index e206aa26..86b2f95b 100644 --- a/Core/Models/Eft/Common/Tables/TemplateItem.cs +++ b/Core/Models/Eft/Common/Tables/TemplateItem.cs @@ -302,7 +302,7 @@ public class Props public int? DoubleActionAccuracyPenaltyMult { get; set; } [JsonPropertyName("ModesCount")] - public object? ModesCount { get; set; } // TODO: object here + public object? ModesCount { get; set; } // TODO: object here [JsonPropertyName("DurabilityBurnModificator")] public int? DurabilityBurnModificator { get; set; } @@ -341,7 +341,7 @@ public class Props public int? ScopesCount { get; set; } [JsonPropertyName("AimSensitivity")] - public object? AimSensitivity { get; set; } // TODO: object here + public object? AimSensitivity { get; set; } // TODO: object here [JsonPropertyName("Zooms")] public List>? Zooms { get; set; } @@ -438,7 +438,7 @@ public class Props [JsonPropertyName("CanHit")] public bool? CanHit { get; set; } - + [JsonPropertyName("canAdmin")] public bool? CanAdmin { get; set; } @@ -503,10 +503,10 @@ public class Props public List? SpawnExcludedFilter { get; set; } [JsonPropertyName("spawnFilter")] - public List? SpawnFilter { get; set; } // TODO: object here + public List? SpawnFilter { get; set; } // TODO: object here [JsonPropertyName("containType")] - public List? ContainType { get; set; } // TODO: object here + public List? ContainType { get; set; } // TODO: object here [JsonPropertyName("sizeWidth")] public int? SizeWidth { get; set; } @@ -521,7 +521,7 @@ public class Props public string? SpawnTypes { get; set; } [JsonPropertyName("lootFilter")] - public List? LootFilter { get; set; } // TODO: object here + public List? LootFilter { get; set; } // TODO: object here [JsonPropertyName("spawnRarity")] public string? SpawnRarity { get; set; } @@ -545,7 +545,7 @@ public class Props public List? ArmorZone { get; set; } [JsonPropertyName("armorClass")] - public object? ArmorClass { get; set; } // TODO: object here + public object? ArmorClass { get; set; } // TODO: object here [JsonPropertyName("armorColliders")] public List? ArmorColliders { get; set; } @@ -926,7 +926,7 @@ public class Props public string? StimulatorBuffs { get; set; } [JsonPropertyName("effects_health")] - public object? EffectsHealth { get; set; } // TODO: object here + public object? EffectsHealth { get; set; } // TODO: object here [JsonPropertyName("effects_damage")] public Dictionary? EffectsDamage { get; set; } @@ -996,322 +996,322 @@ public class Props [JsonPropertyName("configPathStr")] public string? ConfigPathStr { get; set; } - + [JsonPropertyName("maxMarkersCount")] public int? MaxMarkersCount { get; set; } - + [JsonPropertyName("scaleMin")] public int? ScaleMin { get; set; } - + [JsonPropertyName("scaleMax")] public int? ScaleMax { get; set; } - + [JsonPropertyName("medUseTime")] public int? MedUseTime { get; set; } - + [JsonPropertyName("medEffectType")] public string? MedEffectType { get; set; } - + [JsonPropertyName("maxHpResource")] public int? MaxHpResource { get; set; } - + [JsonPropertyName("hpResourceRate")] public int? HpResourceRate { get; set; } - + [JsonPropertyName("apResource")] public int? ApResource { get; set; } - + [JsonPropertyName("krResource")] public int? KrResource { get; set; } - + [JsonPropertyName("maxOpticZoom")] public int? MaxOpticZoom { get; set; } - + [JsonPropertyName("maxRepairResource")] public int? MaxRepairResource { get; set; } - + [JsonPropertyName("targetItemFilter")] public List? TargetItemFilter { get; set; } - + [JsonPropertyName("repairQuality")] public int? RepairQuality { get; set; } - + [JsonPropertyName("repairType")] public string? RepairType { get; set; } - + [JsonPropertyName("stackMinRandom")] public int? StackMinRandom { get; set; } - + [JsonPropertyName("stackMaxRandom")] public int? StackMaxRandom { get; set; } - + [JsonPropertyName("ammoType")] public string? AmmoType { get; set; } - + [JsonPropertyName("initialSpeed")] public int? InitialSpeed { get; set; } - + [JsonPropertyName("ballisticCoefficient")] public int? BallisticCoefficient { get; set; } - + [JsonPropertyName("bulletMassGram")] public int? BulletMassGram { get; set; } - + [JsonPropertyName("bulletDiameterMillimeters")] public int? BulletDiameterMillimeters { get; set; } - + [JsonPropertyName("damage")] public int? Damage { get; set; } - + [JsonPropertyName("ammoAccr")] public int? AmmoAccr { get; set; } - + [JsonPropertyName("ammoRec")] public int? AmmoRec { get; set; } - + [JsonPropertyName("ammoDist")] public int? AmmoDist { get; set; } - + [JsonPropertyName("buckshotBullets")] public int? BuckshotBullets { get; set; } - + [JsonPropertyName("penetrationPower")] public int? PenetrationPower { get; set; } - + [JsonPropertyName("penetrationPowerDeviation")] public int? PenetrationPowerDeviation { get; set; } - + [JsonPropertyName("ammoHear")] public int? AmmoHear { get; set; } - + [JsonPropertyName("ammoSfx")] public string? AmmoSfx { get; set; } - + [JsonPropertyName("misfireChance")] public int? MisfireChance { get; set; } - + [JsonPropertyName("minFragmentsCount")] public int? MinFragmentsCount { get; set; } - + [JsonPropertyName("maxFragmentsCount")] public int? MaxFragmentsCount { get; set; } - + [JsonPropertyName("ammoShiftChance")] public int? AmmoShiftChance { get; set; } - + [JsonPropertyName("casingName")] public string? CasingName { get; set; } - + [JsonPropertyName("casingEjectPower")] public int? CasingEjectPower { get; set; } - + [JsonPropertyName("casingMass")] public int? CasingMass { get; set; } - + [JsonPropertyName("casingSounds")] public string? CasingSounds { get; set; } - + [JsonPropertyName("projectileCount")] public int? ProjectileCount { get; set; } - + [JsonPropertyName("penetrationChanceObstacle")] public int? PenetrationChanceObstacle { get; set; } - + [JsonPropertyName("penetrationDamageMod")] public int? PenetrationDamageMod { get; set; } - + [JsonPropertyName("ricochetChance")] public int? RicochetChance { get; set; } - + [JsonPropertyName("fragmentationChance")] public int? FragmentationChance { get; set; } - + [JsonPropertyName("deterioration")] public int? Deterioration { get; set; } - + [JsonPropertyName("speedRetardation")] public int? SpeedRetardation { get; set; } - + [JsonPropertyName("tracer")] public bool? Tracer { get; set; } - + [JsonPropertyName("tracerColor")] public string? TracerColor { get; set; } - + [JsonPropertyName("tracerDistance")] public int? TracerDistance { get; set; } - + [JsonPropertyName("armorDamage")] public int? ArmorDamage { get; set; } - + [JsonPropertyName("caliber")] public string? Caliber { get; set; } - + [JsonPropertyName("staminaBurnPerDamage")] public int? StaminaBurnPerDamage { get; set; } - + [JsonPropertyName("heavyBleedingDelta")] public int? HeavyBleedingDelta { get; set; } - + [JsonPropertyName("lightBleedingDelta")] public int? LightBleedingDelta { get; set; } - + [JsonPropertyName("showBullet")] public bool? ShowBullet { get; set; } - + [JsonPropertyName("hasGrenaderComponent")] public bool? HasGrenaderComponent { get; set; } - + [JsonPropertyName("fuzeArmTimeSec")] public int? FuzeArmTimeSec { get; set; } - + [JsonPropertyName("explosionStrength")] public int? ExplosionStrength { get; set; } - + [JsonPropertyName("minExplosionDistance")] public int? MinExplosionDistance { get; set; } - + [JsonPropertyName("maxExplosionDistance")] public int? MaxExplosionDistance { get; set; } - + [JsonPropertyName("fragmentsCount")] public int? FragmentsCount { get; set; } - + [JsonPropertyName("fragmentType")] public string FragmentType { get; set; } - + [JsonPropertyName("showHitEffectOnExplode")] public bool? ShowHitEffectOnExplode { get; set; } - + [JsonPropertyName("explosionType")] public string? ExplosionType { get; set; } - + [JsonPropertyName("ammoLifeTimeSec")] public int? AmmoLifeTimeSec { get; set; } - + [JsonPropertyName("ammoTooltipClass")] public string AmmoTooltipClass { get; set; } - + [JsonPropertyName("contusion")] public XYZ? Contusion { get; set; } - + [JsonPropertyName("armorDistanceDistanceDamage")] public XYZ? ArmorDistanceDistanceDamage { get; set; } - + [JsonPropertyName("blindness")] public XYZ? Blindness { get; set; } - + [JsonPropertyName("isLightAndSoundShot")] public bool? IsLightAndSoundShot { get; set; } - + [JsonPropertyName("lightAndSoundShotAngle")] public int? LightAndSoundShotAngle { get; set; } - + [JsonPropertyName("lightAndSoundShotSelfContusionTime")] public int? LightAndSoundShotSelfContusionTime { get; set; } - + [JsonPropertyName("lightAndSoundShotSelfContusionStrength")] public int? LightAndSoundShotSelfContusionStrength { get; set; } - + [JsonPropertyName("malfMisfireChance")] public int? MalfMisfireChance { get; set; } - + [JsonPropertyName("malfFeedChance")] public int? MalfFeedChance { get; set; } - + [JsonPropertyName("stackSlots")] public List? StackSlots { get; set; } - + [JsonPropertyName("type")] public string? Type { get; set; } - + [JsonPropertyName("eqMin")] public int? EqMin { get; set; } - + [JsonPropertyName("eqMax")] public int? EqMax { get; set; } - + [JsonPropertyName("rate")] public int? Rate { get; set; } - + [JsonPropertyName("throwType")] public string? ThrowType { get; set; } - + [JsonPropertyName("explDelay")] public int? ExplDelay { get; set; } - + [JsonPropertyName("strength")] public int? Strength { get; set; } - + [JsonPropertyName("contusionDistance")] public int? ContusionDistance { get; set; } - + [JsonPropertyName("throwDamMax")] public int? ThrowDamMax { get; set; } - + [JsonPropertyName("emitTime")] public int? EmitTime { get; set; } - + [JsonPropertyName("canBeHiddenDuringThrow")] public bool? CanBeHiddenDuringThrow { get; set; } - + [JsonPropertyName("canPlantOnGround")] public bool? CanPlantOnGround { get; set; } - + [JsonPropertyName("minTimeToContactExplode")] public int? MinTimeToContactExplode { get; set; } - + [JsonPropertyName("explosionEffectType")] public string? ExplosionEffectType { get; set; } - + [JsonPropertyName("linkedWeapon")] public string? LinkedWeapon { get; set; } - + [JsonPropertyName("useAmmoWithoutShell")] public bool? UseAmmoWithoutShell { get; set; } - + [JsonPropertyName("randomLootSettings")] public RandomLootSettings? RandomLootSettings { get; set; } - + [JsonPropertyName("recoilDampingHandRotation")] public int? RecoilDampingHandRotation { get; set; } [JsonPropertyName("leanWeaponAgainstBody")] public bool? LeanWeaponAgainstBody { get; set; } - + [JsonPropertyName("removeShellAfterFire")] public bool? RemoveShellAfterFire { get; set; } - + [JsonPropertyName("repairStrategyTypes")] public List? RepairStrategyTypes { get; set; } - + [JsonPropertyName("isEncoded")] public bool? IsEncoded { get; set; } - + [JsonPropertyName("layoutName")] public string? LayoutName { get; set; } - + [JsonPropertyName("lower75Prefab")] public Prefab? Lower75Prefab { get; set; } - + [JsonPropertyName("maxUsages")] public int? MaxUsages { get; set; } - + [JsonPropertyName("scavKillExpPenalty")] public int? ScavKillExpPenalty { get; set; } - + [JsonPropertyName("scavKillExpPenaltyPVE")] public int? ScavKillExpPenaltyPVE { get; set; } - + [JsonPropertyName("scavKillStandingPenalty")] public int? ScavKillStandingPenalty { get; set; } - + [JsonPropertyName("scavKillStandingPenaltyPVE")] public int? ScavKillStandingPenaltyPVE { get; set; } - + [JsonPropertyName("tradersDiscount")] public int? TradersDiscount { get; set; } - + [JsonPropertyName("tradersDiscountPVE")] public int? TradersDiscountPVE { get; set; } } @@ -1320,7 +1320,7 @@ public class WeaponRecoilSettings { [JsonPropertyName("Enable")] public bool Enable { get; set; } - + [JsonPropertyName("values")] public List Values { get; set; } } @@ -1329,10 +1329,10 @@ public class WeaponRecoilSettingValues { [JsonPropertyName("Enable")] public bool Enable { get; set; } - + [JsonPropertyName("Process")] public WeaponRecoilProcess Process { get; set; } - + [JsonPropertyName("Target")] public string Target { get; set; } } @@ -1341,16 +1341,16 @@ public class WeaponRecoilProcess { [JsonPropertyName("ComponentType")] public string ComponentType { get; set; } - + [JsonPropertyName("CurveAimingValueMultiply")] public double CurveAimingValueMultiply { get; set; } - + [JsonPropertyName("CurveTimeMultiply")] public double CurveTimeMultiply { get; set; } - + [JsonPropertyName("CurveValueMultiply")] public double CurveValueMultiply { get; set; } - + [JsonPropertyName("TransformationCurve")] public WeaponRecoilTransformationCurve TransformationCurve { get; set; } } @@ -1365,13 +1365,13 @@ public class WeaponRecoilTransformationCurveKey { [JsonPropertyName("inTangent")] public double? InTangent { get; set; } - + [JsonPropertyName("outTangent")] public double? OutTangent { get; set; } - + [JsonPropertyName("time")] public double? Time { get; set; } - + [JsonPropertyName("value")] public double? Value { get; set; } } @@ -1380,7 +1380,7 @@ public class HealthEffect { [JsonPropertyName("type")] public string? Type { get; set; } - + [JsonPropertyName("value")] public double? Value { get; set; } } @@ -1389,7 +1389,7 @@ public class Prefab { [JsonPropertyName("path")] public string? Path { get; set; } - + [JsonPropertyName("rcid")] public string? Rcid { get; set; } } @@ -1398,16 +1398,16 @@ public class Grid { [JsonPropertyName("_name")] public string? Name { get; set; } - + [JsonPropertyName("_id")] public string? Id { get; set; } - + [JsonPropertyName("_parent")] public string? Parent { get; set; } - + [JsonPropertyName("_props")] public GridProps? Props { get; set; } - + [JsonPropertyName("_proto")] public string? Proto { get; set; } } @@ -1538,131 +1538,140 @@ public class StackSlotProps public List? Filters { get; set; } } -public class RandomLootSettings { +public class RandomLootSettings +{ [JsonPropertyName("allowToSpawnIdenticalItems")] public bool? AllowToSpawnIdenticalItems { get; set; } - + [JsonPropertyName("allowToSpawnQuestItems")] public bool? AllowToSpawnQuestItems { get; set; } - + [JsonPropertyName("countByRarity")] public List? CountByRarity { get; set; } // TODO: object here - + [JsonPropertyName("excluded")] public RandomLootExcluded? Excluded { get; set; } - + [JsonPropertyName("filters")] public List? Filters { get; set; } // TODO: object here - + [JsonPropertyName("findInRaid")] public bool? FindInRaid { get; set; } - + [JsonPropertyName("maxCount")] public int? MaxCount { get; set; } - + [JsonPropertyName("minCount")] public int? MinCount { get; set; } } -public class RandomLootExcluded { +public class RandomLootExcluded +{ [JsonPropertyName("categoryTemplates")] public List? CategoryTemplates { get; set; } // TODO: object here - + [JsonPropertyName("rarity")] public List? Rarity { get; set; } - + [JsonPropertyName("templates")] public List? Templates { get; set; } // TODO: object here } -public class EffectsHealth { +public class EffectsHealth +{ [JsonPropertyName("Energy")] public EffectsHealthProps? Energy { get; set; } - + [JsonPropertyName("Hydration")] public EffectsHealthProps? Hydration { get; set; } } -public class EffectsHealthProps { +public class EffectsHealthProps +{ [JsonPropertyName("value")] public int? Value { get; set; } } -public class EffectsDamage { +public class EffectsDamage +{ [JsonPropertyName("Pain")] public EffectDamageProps? Pain { get; set; } - + [JsonPropertyName("LightBleeding")] public EffectDamageProps? LightBleeding { get; set; } - + [JsonPropertyName("HeavyBleeding")] public EffectDamageProps? HeavyBleeding { get; set; } - + [JsonPropertyName("Contusion")] public EffectDamageProps? Contusion { get; set; } - + [JsonPropertyName("RadExposure")] public EffectDamageProps? RadExposure { get; set; } - + [JsonPropertyName("Fracture")] public EffectDamageProps? Fracture { get; set; } - + [JsonPropertyName("DestroyedPart")] public EffectDamageProps? DestroyedPart { get; set; } } -public class EffectDamageProps { +public class EffectDamageProps +{ [JsonPropertyName("delay")] public int? Delay { get; set; } - + [JsonPropertyName("duration")] public int? Duration { get; set; } - + [JsonPropertyName("fadeOut")] public int? FadeOut { get; set; } - + [JsonPropertyName("cost")] public int? Cost { get; set; } - + [JsonPropertyName("healthPenaltyMin")] public int? HealthPenaltyMin { get; set; } - + [JsonPropertyName("healthPenaltyMax")] public int? HealthPenaltyMax { get; set; } } -public class Color { +public class Color +{ [JsonPropertyName("r")] public int? R { get; set; } - + [JsonPropertyName("g")] public int? G { get; set; } - + [JsonPropertyName("b")] public int? B { get; set; } - + [JsonPropertyName("a")] public int? A { get; set; } } -public class ShotsGroupSettings { +public class ShotsGroupSettings +{ [JsonPropertyName("EndShotIndex")] public int? EndShotIndex { get; set; } - + [JsonPropertyName("ShotRecoilPositionStrength")] public XYZ? ShotRecoilPositionStrength { get; set; } - + [JsonPropertyName("ShotRecoilRadianRange")] public XYZ? ShotRecoilRadianRange { get; set; } - + [JsonPropertyName("ShotRecoilRotationStrength")] public XYZ? ShotRecoilRotationStrength { get; set; } - + [JsonPropertyName("StartShotIndex")] public int? StartShotIndex { get; set; } } -public enum ItemType { +public enum ItemType +{ NODE = 1, - ITEM = 2, + ITEM = 2 } \ No newline at end of file diff --git a/Core/Models/Eft/Common/Tables/Trader.cs b/Core/Models/Eft/Common/Tables/Trader.cs index cdb50491..2648d3b2 100644 --- a/Core/Models/Eft/Common/Tables/Trader.cs +++ b/Core/Models/Eft/Common/Tables/Trader.cs @@ -29,91 +29,91 @@ public class TraderBase { [JsonPropertyName("refreshTraderRagfairOffers")] public bool? RefreshTraderRagfairOffers { get; set; } - + [JsonPropertyName("_id")] public string? Id { get; set; } - + [JsonPropertyName("availableInRaid")] public bool? AvailableInRaid { get; set; } - + [JsonPropertyName("avatar")] public string? Avatar { get; set; } - + [JsonPropertyName("balance_dol")] public decimal? BalanceDollar { get; set; } - + [JsonPropertyName("balance_eur")] public decimal? BalanceEuro { get; set; } - + [JsonPropertyName("balance_rub")] public decimal? BalanceRub { get; set; } - + [JsonPropertyName("buyer_up")] public bool? BuyerUp { get; set; } - + [JsonPropertyName("currency")] public string? Currency { get; set; } - + [JsonPropertyName("customization_seller")] public bool? CustomizationSeller { get; set; } - + [JsonPropertyName("discount")] public decimal? Discount { get; set; } - + [JsonPropertyName("discount_end")] public decimal? DiscountEnd { get; set; } - + [JsonPropertyName("gridHeight")] public int? GridHeight { get; set; } - + [JsonPropertyName("sell_modifier_for_prohibited_items")] public decimal? SellModifierForProhibitedItems { get; set; } - + [JsonPropertyName("insurance")] public TraderInsurance? Insurance { get; set; } - + [JsonPropertyName("items_buy")] public ItemBuyData? ItemsBuy { get; set; } - + [JsonPropertyName("items_buy_prohibited")] public ItemBuyData? ItemsBuyProhibited { get; set; } - + [JsonPropertyName("isCanTransferItems")] public bool? IsCanTransferItems { get; set; } - + [JsonPropertyName("transferableItems")] public ItemBuyData? TransferableItems { get; set; } - + [JsonPropertyName("prohibitedTransferableItems")] public ItemBuyData? ProhibitedTransferableItems { get; set; } - + [JsonPropertyName("location")] public string? Location { get; set; } - + [JsonPropertyName("loyaltyLevels")] public List? LoyaltyLevels { get; set; } - + [JsonPropertyName("medic")] public bool? Medic { get; set; } - + [JsonPropertyName("name")] public string? Name { get; set; } - + [JsonPropertyName("nextResupply")] public int? NextResupply { get; set; } - + [JsonPropertyName("nickname")] public string? Nickname { get; set; } - + [JsonPropertyName("repair")] public TraderRepair? Repair { get; set; } - + [JsonPropertyName("sell_category")] public List? SellCategory { get; set; } - + [JsonPropertyName("surname")] public string? Surname { get; set; } - + [JsonPropertyName("unlockedByDefault")] public bool? UnlockedByDefault { get; set; } } @@ -122,7 +122,7 @@ public class ItemBuyData { [JsonPropertyName("category")] public List? Category { get; set; } - + [JsonPropertyName("id_list")] public List? IdList { get; set; } } @@ -232,7 +232,7 @@ public class BarterScheme public DogtagExchangeSide? Side { get; set; } } -public class Suit +public class Suit { [JsonPropertyName("_id")] public string? Id { get; set; } @@ -259,7 +259,7 @@ public class Suit public SuitRequirements? Requirements { get; set; } } -public class SuitRequirements +public class SuitRequirements { [JsonPropertyName("achievementRequirements")] public List? AchievementRequirements { get; set; } @@ -286,7 +286,7 @@ public class SuitRequirements public string? RequiredTid { get; set; } } -public class ItemRequirement +public class ItemRequirement { [JsonPropertyName("count")] public int? Count { get; set; } @@ -298,7 +298,7 @@ public class ItemRequirement public string? Id { get; set; } [JsonPropertyName("onlyFunctional")] - public bool ?OnlyFunctional { get; set; } + public bool? OnlyFunctional { get; set; } [JsonPropertyName("type")] public string? Type { get; set; } diff --git a/Core/Models/Eft/Common/XY.cs b/Core/Models/Eft/Common/XY.cs index 0cadb541..9f0c8c39 100644 --- a/Core/Models/Eft/Common/XY.cs +++ b/Core/Models/Eft/Common/XY.cs @@ -6,7 +6,7 @@ public class XY { [JsonPropertyName("x")] public double? X { get; set; } - + [JsonPropertyName("y")] public double? Y { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Customization/BuyClothingRequestData.cs b/Core/Models/Eft/Customization/BuyClothingRequestData.cs index 46ca767a..afa100b0 100644 --- a/Core/Models/Eft/Customization/BuyClothingRequestData.cs +++ b/Core/Models/Eft/Customization/BuyClothingRequestData.cs @@ -4,24 +4,24 @@ namespace Core.Models.Eft.Customization; public class BuyClothingRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } = "CustomizationBuy"; + [JsonPropertyName("Action")] + public string Action { get; set; } = "CustomizationBuy"; - [JsonPropertyName("offer")] - public string? Offer { get; set; } + [JsonPropertyName("offer")] + public string? Offer { get; set; } - [JsonPropertyName("items")] - public List? Items { get; set; } + [JsonPropertyName("items")] + public List? Items { get; set; } } public class PaymentItemForClothing { - [JsonPropertyName("del")] - public bool? Del { get; set; } + [JsonPropertyName("del")] + public bool? Del { get; set; } - [JsonPropertyName("id")] - public string? Id { get; set; } + [JsonPropertyName("id")] + public string? Id { get; set; } - [JsonPropertyName("count")] - public int? Count { get; set; } + [JsonPropertyName("count")] + public int? Count { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Customization/CustomizationSetRequest.cs b/Core/Models/Eft/Customization/CustomizationSetRequest.cs index 94722b70..bb33deb8 100644 --- a/Core/Models/Eft/Customization/CustomizationSetRequest.cs +++ b/Core/Models/Eft/Customization/CustomizationSetRequest.cs @@ -4,21 +4,21 @@ namespace Core.Models.Eft.Customization; public class CustomizationSetRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } = "CustomizationSet"; + [JsonPropertyName("Action")] + public string Action { get; set; } = "CustomizationSet"; - [JsonPropertyName("customizations")] - public List? Customizations { get; set; } + [JsonPropertyName("customizations")] + public List? Customizations { get; set; } } public class CustomizationSetOption { - [JsonPropertyName("id")] - public string? Id { get; set; } + [JsonPropertyName("id")] + public string? Id { get; set; } - [JsonPropertyName("type")] - public string? Type { get; set; } + [JsonPropertyName("type")] + public string? Type { get; set; } - [JsonPropertyName("source")] - public string? Source { get; set; } + [JsonPropertyName("source")] + public string? Source { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Customization/WearClothingRequestData.cs b/Core/Models/Eft/Customization/WearClothingRequestData.cs index 747d2994..399686a5 100644 --- a/Core/Models/Eft/Customization/WearClothingRequestData.cs +++ b/Core/Models/Eft/Customization/WearClothingRequestData.cs @@ -2,5 +2,4 @@ public class WearClothingRequestData { - } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/ChatServer.cs b/Core/Models/Eft/Dialog/ChatServer.cs index 437de19d..a95550fd 100644 --- a/Core/Models/Eft/Dialog/ChatServer.cs +++ b/Core/Models/Eft/Dialog/ChatServer.cs @@ -4,40 +4,40 @@ namespace Core.Models.Eft.Dialog; public class ChatServer { - [JsonPropertyName("_id")] - public string? Id { get; set; } + [JsonPropertyName("_id")] + public string? Id { get; set; } - [JsonPropertyName("RegistrationId")] - public int? RegistrationId { get; set; } + [JsonPropertyName("RegistrationId")] + public int? RegistrationId { get; set; } - [JsonPropertyName("VersionId")] - public string? VersionId { get; set; } + [JsonPropertyName("VersionId")] + public string? VersionId { get; set; } - [JsonPropertyName("Ip")] - public string? Ip { get; set; } + [JsonPropertyName("Ip")] + public string? Ip { get; set; } - [JsonPropertyName("Port")] - public int? Port { get; set; } + [JsonPropertyName("Port")] + public int? Port { get; set; } - [JsonPropertyName("DateTime")] - public long? DateTime { get; set; } + [JsonPropertyName("DateTime")] + public long? DateTime { get; set; } - [JsonPropertyName("Chats")] - public List? Chats { get; set; } + [JsonPropertyName("Chats")] + public List? Chats { get; set; } - [JsonPropertyName("Regions")] - public List? Regions { get; set; } + [JsonPropertyName("Regions")] + public List? Regions { get; set; } - /** Possibly removed */ - [JsonPropertyName("IsDeveloper")] - public bool? IsDeveloper { get; set; } + /** Possibly removed */ + [JsonPropertyName("IsDeveloper")] + public bool? IsDeveloper { get; set; } } public class Chat { - [JsonPropertyName("_id")] - public string? Id { get; set; } + [JsonPropertyName("_id")] + public string? Id { get; set; } - [JsonPropertyName("Members")] - public int? Members { get; set; } + [JsonPropertyName("Members")] + public int? Members { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/FriendRequestSendResponse.cs b/Core/Models/Eft/Dialog/FriendRequestSendResponse.cs index e41878d2..7de099eb 100644 --- a/Core/Models/Eft/Dialog/FriendRequestSendResponse.cs +++ b/Core/Models/Eft/Dialog/FriendRequestSendResponse.cs @@ -4,12 +4,12 @@ namespace Core.Models.Eft.Dialog; public class FriendRequestSendResponse { - [JsonPropertyName("status")] - public int? Status { get; set; } + [JsonPropertyName("status")] + public int? Status { get; set; } - [JsonPropertyName("requestId")] - public string? RequestId { get; set; } + [JsonPropertyName("requestId")] + public string? RequestId { get; set; } - [JsonPropertyName("retryAfter")] - public int? RetryAfter { get; set; } + [JsonPropertyName("retryAfter")] + public int? RetryAfter { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/GetAllAttachmentsResponse.cs b/Core/Models/Eft/Dialog/GetAllAttachmentsResponse.cs index 0d26a1e1..517a3034 100644 --- a/Core/Models/Eft/Dialog/GetAllAttachmentsResponse.cs +++ b/Core/Models/Eft/Dialog/GetAllAttachmentsResponse.cs @@ -5,12 +5,12 @@ namespace Core.Models.Eft.Dialog; public class GetAllAttachmentsResponse { - [JsonPropertyName("messages")] - public List? Messages { get; set; } + [JsonPropertyName("messages")] + public List? Messages { get; set; } - [JsonPropertyName("profiles")] - public List Profiles { get; set; } // Assuming 'any' translates to 'object' + [JsonPropertyName("profiles")] + public List Profiles { get; set; } // Assuming 'any' translates to 'object' - [JsonPropertyName("hasMessagesWithRewards")] - public bool? HasMessagesWithRewards { get; set; } + [JsonPropertyName("hasMessagesWithRewards")] + public bool? HasMessagesWithRewards { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/GetFriendListDataResponse.cs b/Core/Models/Eft/Dialog/GetFriendListDataResponse.cs index 9fffd120..f2f8cb41 100644 --- a/Core/Models/Eft/Dialog/GetFriendListDataResponse.cs +++ b/Core/Models/Eft/Dialog/GetFriendListDataResponse.cs @@ -5,12 +5,12 @@ namespace Core.Models.Eft.Dialog; public class GetFriendListDataResponse { - [JsonPropertyName("Friends")] - public List? Friends { get; set; } + [JsonPropertyName("Friends")] + public List? Friends { get; set; } - [JsonPropertyName("Ignore")] - public List? Ignore { get; set; } + [JsonPropertyName("Ignore")] + public List? Ignore { get; set; } - [JsonPropertyName("InIgnoreList")] - public List? InIgnoreList { get; set; } + [JsonPropertyName("InIgnoreList")] + public List? InIgnoreList { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/GetMailDialogListRequestData.cs b/Core/Models/Eft/Dialog/GetMailDialogListRequestData.cs index a6f8eea4..19fcd49b 100644 --- a/Core/Models/Eft/Dialog/GetMailDialogListRequestData.cs +++ b/Core/Models/Eft/Dialog/GetMailDialogListRequestData.cs @@ -6,7 +6,7 @@ public class GetMailDialogListRequestData { [JsonPropertyName("limit")] public int? Limit { get; set; } - + [JsonPropertyName("offset")] public int? Offset { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs b/Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs index 3ca6f9fe..2d21aa7c 100644 --- a/Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs +++ b/Core/Models/Eft/Dialog/GetMailDialogViewRequestData.cs @@ -5,15 +5,15 @@ namespace Core.Models.Eft.Dialog; public class GetMailDialogViewRequestData { - [JsonPropertyName("type")] - public MessageType? Type { get; set; } + [JsonPropertyName("type")] + public MessageType? Type { get; set; } - [JsonPropertyName("dialogId")] - public string? DialogId { get; set; } + [JsonPropertyName("dialogId")] + public string? DialogId { get; set; } - [JsonPropertyName("limit")] - public int? Limit { get; set; } + [JsonPropertyName("limit")] + public int? Limit { get; set; } - [JsonPropertyName("time")] - public decimal Time { get; set; } // decimal + [JsonPropertyName("time")] + public decimal Time { get; set; } // decimal } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/GetMailDialogViewResponseData.cs b/Core/Models/Eft/Dialog/GetMailDialogViewResponseData.cs index a039a288..fad7d29b 100644 --- a/Core/Models/Eft/Dialog/GetMailDialogViewResponseData.cs +++ b/Core/Models/Eft/Dialog/GetMailDialogViewResponseData.cs @@ -5,12 +5,12 @@ namespace Core.Models.Eft.Dialog; public class GetMailDialogViewResponseData { - [JsonPropertyName("messages")] - public List? Messages { get; set; } + [JsonPropertyName("messages")] + public List? Messages { get; set; } - [JsonPropertyName("profiles")] - public List? Profiles { get; set; } + [JsonPropertyName("profiles")] + public List? Profiles { get; set; } - [JsonPropertyName("hasMessagesWithRewards")] - public bool? HasMessagesWithRewards { get; set; } + [JsonPropertyName("hasMessagesWithRewards")] + public bool? HasMessagesWithRewards { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Dialog/SendMessageRequest.cs b/Core/Models/Eft/Dialog/SendMessageRequest.cs index ffa5c2ce..ff445400 100644 --- a/Core/Models/Eft/Dialog/SendMessageRequest.cs +++ b/Core/Models/Eft/Dialog/SendMessageRequest.cs @@ -5,15 +5,15 @@ namespace Core.Models.Eft.Dialog; public class SendMessageRequest { - [JsonPropertyName("dialogId")] - public string? DialogId { get; set; } + [JsonPropertyName("dialogId")] + public string? DialogId { get; set; } - [JsonPropertyName("type")] - public MessageType? Type { get; set; } + [JsonPropertyName("type")] + public MessageType? Type { get; set; } - [JsonPropertyName("text")] - public string? Text { get; set; } + [JsonPropertyName("text")] + public string? Text { get; set; } - [JsonPropertyName("replyTo")] - public string? ReplyTo { get; set; } + [JsonPropertyName("replyTo")] + public string? ReplyTo { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Health/OffraidHealRequestData.cs b/Core/Models/Eft/Health/OffraidHealRequestData.cs index ee600e00..d3d7285a 100644 --- a/Core/Models/Eft/Health/OffraidHealRequestData.cs +++ b/Core/Models/Eft/Health/OffraidHealRequestData.cs @@ -20,5 +20,5 @@ public enum BodyPart RightArm, LeftLeg, RightLeg, - Common, + Common } \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs index da692a80..d77d9033 100644 --- a/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs +++ b/Core/Models/Eft/Hideout/HideoutContinuousProductionStartRequestData.cs @@ -2,14 +2,14 @@ namespace Core.Models.Eft.Hideout; -public class HideoutContinuousProductionStartRequestData +public class HideoutContinuousProductionStartRequestData { [JsonPropertyName("Action")] public string? Action { get; } = "HideoutContinuousProductionStart"; - + [JsonPropertyName("recipeId")] public string? RecipeId { get; set; } - + [JsonPropertyName("timestamp")] public double? Timestamp { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs b/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs index 8c077492..55553158 100644 --- a/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs +++ b/Core/Models/Eft/Hideout/HideoutScavCaseStartRequestData.cs @@ -6,16 +6,16 @@ public class HideoutScavCaseStartRequestData { [JsonPropertyName("Action")] public string? Action { get; set; } = "HideoutScavCaseProductionStart"; - + [JsonPropertyName("recipeId")] public string? RecipeId { get; set; } - + [JsonPropertyName("items")] public List? Items { get; set; } - + [JsonPropertyName("tools")] public List? Tools { get; set; } - + [JsonPropertyName("timestamp")] public long? Timestamp { get; set; } } @@ -24,7 +24,7 @@ public class HideoutItem { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("count")] public int? Count { get; set; } } @@ -33,7 +33,7 @@ public class Tool { [JsonPropertyName("id")] public string? Id { get; set; } - + [JsonPropertyName("count")] public int? Count { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs b/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs index 5e478595..e4c0e219 100644 --- a/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs +++ b/Core/Models/Eft/Hideout/HideoutTakeProductionRequestData.cs @@ -2,7 +2,8 @@ namespace Core.Models.Eft.Hideout; -public class HideoutTakeProductionRequestData { +public class HideoutTakeProductionRequestData +{ [JsonPropertyName("Action")] public string? Action { get; set; } = "HideoutTakeProduction"; diff --git a/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs b/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs index 2440b26d..18d1aabc 100644 --- a/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs +++ b/Core/Models/Eft/Hideout/HideoutUpgradeRequestData.cs @@ -3,17 +3,17 @@ using Core.Models.Eft.Common.Tables; namespace Core.Models.Eft.Hideout; -public class HideoutUpgradeRequestData +public class HideoutUpgradeRequestData { [JsonPropertyName("Action")] public string? Action { get; set; } = "HideoutUpgrade"; - + [JsonPropertyName("areaType")] public int? AreaType { get; set; } - + [JsonPropertyName("items")] public List? Items { get; set; } - + [JsonPropertyName("timestamp")] public long? Timestamp { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/HttpResponse/GetBodyResponseData.cs b/Core/Models/Eft/HttpResponse/GetBodyResponseData.cs index 7d0227ff..8acf13af 100644 --- a/Core/Models/Eft/HttpResponse/GetBodyResponseData.cs +++ b/Core/Models/Eft/HttpResponse/GetBodyResponseData.cs @@ -6,10 +6,10 @@ public class GetBodyResponseData { [JsonPropertyName("err")] public int? Err { get; set; } - + [JsonPropertyName("errmsg")] public string? ErrMsg { get; set; } - + [JsonPropertyName("data")] public T? Data { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/HttpResponse/NullResponseData.cs b/Core/Models/Eft/HttpResponse/NullResponseData.cs index f82b5af1..e903e309 100644 --- a/Core/Models/Eft/HttpResponse/NullResponseData.cs +++ b/Core/Models/Eft/HttpResponse/NullResponseData.cs @@ -9,7 +9,7 @@ public class NullResponseData [JsonPropertyName("errmsg")] public object? ErrMsg { get; set; } - + [JsonPropertyName("data")] public object? Data { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs b/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs index aad92907..19134729 100644 --- a/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs +++ b/Core/Models/Eft/InRaid/RegisterPlayerRequestData.cs @@ -6,10 +6,10 @@ public class RegisterPlayerRequestData { [JsonPropertyName("crc")] public int? Crc { get; set; } - + [JsonPropertyName("locationId")] public string? LocationId { get; set; } - + [JsonPropertyName("variantId")] public int? VariantId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/InRaid/ScavSaveRequestData.cs b/Core/Models/Eft/InRaid/ScavSaveRequestData.cs index 29c19a6d..db873462 100644 --- a/Core/Models/Eft/InRaid/ScavSaveRequestData.cs +++ b/Core/Models/Eft/InRaid/ScavSaveRequestData.cs @@ -4,5 +4,4 @@ namespace Core.Models.Eft.InRaid; public class ScavSaveRequestData : PostRaidPmcData { - } \ No newline at end of file diff --git a/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs b/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs index 59354a62..53a6eb62 100644 --- a/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs +++ b/Core/Models/Eft/Insurance/GetInsuranceCostResponseData.cs @@ -2,5 +2,4 @@ public class GetInsuranceCostResponseData : Dictionary> { - } \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs b/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs index 95059f5c..e3817674 100644 --- a/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs +++ b/Core/Models/Eft/Inventory/InventoryFoldRequestData.cs @@ -6,10 +6,10 @@ public class InventoryFoldRequestData : InventoryBaseActionRequestData { [JsonPropertyName("Action")] public string? Action { get; set; } = "Fold"; - + [JsonPropertyName("item")] public string? Item { get; set; } - + [JsonPropertyName("value")] public bool? Value { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/InventorySwapRequestData.cs b/Core/Models/Eft/Inventory/InventorySwapRequestData.cs index 1d77127f..6366280d 100644 --- a/Core/Models/Eft/Inventory/InventorySwapRequestData.cs +++ b/Core/Models/Eft/Inventory/InventorySwapRequestData.cs @@ -7,22 +7,22 @@ public class InventorySwapRequestData : InventoryBaseActionRequestData { [JsonPropertyName("Action")] public string? Action { get; set; } = "Swap"; - + [JsonPropertyName("item")] public string? Item { get; set; } - + [JsonPropertyName("to")] public To? To { get; set; } - + [JsonPropertyName("item2")] public string? Item2 { get; set; } - + [JsonPropertyName("to2")] public To? To2 { get; set; } - + [JsonPropertyName("fromOwner2")] public OwnerInfo? FromOwner2 { get; set; } - + [JsonPropertyName("toOwner2")] public OwnerInfo? ToOwner2 { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs b/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs index e6e44e39..ea440279 100644 --- a/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs +++ b/Core/Models/Eft/Inventory/OpenRandomLootContainerRequestData.cs @@ -5,7 +5,7 @@ namespace Core.Models.Eft.Inventory; public class OpenRandomLootContainerRequestData { public string? Action { get; set; } = "OpenRandomLootContainer"; - + /// /// Container item id being opened /// diff --git a/Core/Models/Eft/ItemEvent/ItemEventRouterResponse.cs b/Core/Models/Eft/ItemEvent/ItemEventRouterResponse.cs index 15c9baa7..8bfb384b 100644 --- a/Core/Models/Eft/ItemEvent/ItemEventRouterResponse.cs +++ b/Core/Models/Eft/ItemEvent/ItemEventRouterResponse.cs @@ -2,5 +2,4 @@ public class ItemEventRouterResponse : ItemEventRouterBase { - } \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/GetMiniProfileRequestData.cs b/Core/Models/Eft/Launcher/GetMiniProfileRequestData.cs index 2493218b..58cdf75c 100644 --- a/Core/Models/Eft/Launcher/GetMiniProfileRequestData.cs +++ b/Core/Models/Eft/Launcher/GetMiniProfileRequestData.cs @@ -6,7 +6,7 @@ public class GetMiniProfileRequestData { [JsonPropertyName("username")] public string? Username { get; set; } - + [JsonPropertyName("password")] public string? Password { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/LoginRequestData.cs b/Core/Models/Eft/Launcher/LoginRequestData.cs index f5441fdf..5545bfc4 100644 --- a/Core/Models/Eft/Launcher/LoginRequestData.cs +++ b/Core/Models/Eft/Launcher/LoginRequestData.cs @@ -6,7 +6,7 @@ public class LoginRequestData { [JsonPropertyName("username")] public string? Username { get; set; } - + [JsonPropertyName("password")] public string? Password { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Launcher/RemoveProfileData.cs b/Core/Models/Eft/Launcher/RemoveProfileData.cs index fb4d6834..51b02171 100644 --- a/Core/Models/Eft/Launcher/RemoveProfileData.cs +++ b/Core/Models/Eft/Launcher/RemoveProfileData.cs @@ -2,5 +2,4 @@ public class RemoveProfileData : LoginRequestData { - } \ No newline at end of file diff --git a/Core/Models/Eft/Match/MatchGroupStatusResponse.cs b/Core/Models/Eft/Match/MatchGroupStatusResponse.cs index 494fef42..4f50f5e6 100644 --- a/Core/Models/Eft/Match/MatchGroupStatusResponse.cs +++ b/Core/Models/Eft/Match/MatchGroupStatusResponse.cs @@ -6,7 +6,7 @@ public class MatchGroupStatusResponse { [JsonPropertyName("players")] public List? Players { get; set; } - + [JsonPropertyName("maxPveCountExceeded")] public bool? MaxPveCountExceeded { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Match/ProfileStatusResponse.cs b/Core/Models/Eft/Match/ProfileStatusResponse.cs index b4cf0b7c..0ecc5f40 100644 --- a/Core/Models/Eft/Match/ProfileStatusResponse.cs +++ b/Core/Models/Eft/Match/ProfileStatusResponse.cs @@ -2,7 +2,7 @@ namespace Core.Models.Eft.Match; -public class ProfileStatusResponse +public class ProfileStatusResponse { [JsonPropertyName("maxPveCountExceeded")] public bool? MaxPveCountExceeded { get; set; } diff --git a/Core/Models/Eft/Match/Server.cs b/Core/Models/Eft/Match/Server.cs index be625f85..cf1ce343 100644 --- a/Core/Models/Eft/Match/Server.cs +++ b/Core/Models/Eft/Match/Server.cs @@ -6,10 +6,10 @@ public class Server { [JsonPropertyName("ping")] public int? Ping { get; set; } - + [JsonPropertyName("ip")] public string? Ip { get; set; } - + [JsonPropertyName("port")] public int? Port { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Notes/NoteActionData.cs b/Core/Models/Eft/Notes/NoteActionData.cs index a0ecb4ac..b39321aa 100644 --- a/Core/Models/Eft/Notes/NoteActionData.cs +++ b/Core/Models/Eft/Notes/NoteActionData.cs @@ -5,21 +5,21 @@ namespace Core.Models.Eft.Notes; public class NoteActionData : BaseInteractionRequestData { - [JsonPropertyName("Action")] - public string? Action { get; set; } + [JsonPropertyName("Action")] + public string? Action { get; set; } - [JsonPropertyName("index")] - public int? Index { get; set; } + [JsonPropertyName("index")] + public int? Index { get; set; } - [JsonPropertyName("note")] - public Note? Note { get; set; } + [JsonPropertyName("note")] + public Note? Note { get; set; } } public class Note { - [JsonPropertyName("Time")] - public int? Time { get; set; } + [JsonPropertyName("Time")] + public int? Time { get; set; } - [JsonPropertyName("Text")] - public string? Text { get; set; } + [JsonPropertyName("Text")] + public string? Text { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Notifier/Notifier.cs b/Core/Models/Eft/Notifier/Notifier.cs index 0f8b6039..c575f9cc 100644 --- a/Core/Models/Eft/Notifier/Notifier.cs +++ b/Core/Models/Eft/Notifier/Notifier.cs @@ -4,18 +4,18 @@ namespace Core.Models.Eft.Notifier; public class NotifierChannel { - [JsonPropertyName("server")] - public string? Server { get; set; } + [JsonPropertyName("server")] + public string? Server { get; set; } - [JsonPropertyName("channel_id")] - public string? ChannelId { get; set; } + [JsonPropertyName("channel_id")] + public string? ChannelId { get; set; } - [JsonPropertyName("url")] - public string? Url { get; set; } + [JsonPropertyName("url")] + public string? Url { get; set; } - [JsonPropertyName("notifierServer")] - public string? NotifierServer { get; set; } + [JsonPropertyName("notifierServer")] + public string? NotifierServer { get; set; } - [JsonPropertyName("ws")] - public string? WebSocket { get; set; } + [JsonPropertyName("ws")] + public string? WebSocket { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Notifier/SelectProfileResponse.cs b/Core/Models/Eft/Notifier/SelectProfileResponse.cs index e6fe4d5e..01fd5b10 100644 --- a/Core/Models/Eft/Notifier/SelectProfileResponse.cs +++ b/Core/Models/Eft/Notifier/SelectProfileResponse.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Notifier; public class SelectProfileResponse { - [JsonPropertyName("status")] - public string? Status { get; set; } + [JsonPropertyName("status")] + public string? Status { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Profile/GetOtherProfileRequest.cs b/Core/Models/Eft/Profile/GetOtherProfileRequest.cs index 52ae7d75..a3892ce3 100644 --- a/Core/Models/Eft/Profile/GetOtherProfileRequest.cs +++ b/Core/Models/Eft/Profile/GetOtherProfileRequest.cs @@ -5,5 +5,5 @@ namespace Core.Models.Eft.Profile; public class GetOtherProfileRequest { [JsonPropertyName("accountId")] -public string? AccountId { get; set; } + public string? AccountId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs b/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs index caa75f31..ea99b3d3 100644 --- a/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs +++ b/Core/Models/Eft/Profile/ProfileChangeNicknameRequestData.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Profile; public class ProfileChangeNicknameRequestData { - [JsonPropertyName("nickname")] - public string? Nickname { get; set; } + [JsonPropertyName("nickname")] + public string? Nickname { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs b/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs index 454f32e8..3293686b 100644 --- a/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs +++ b/Core/Models/Eft/Profile/ProfileChangeVoiceRequestData.cs @@ -2,8 +2,8 @@ using System.Text.Json.Serialization; namespace Core.Models.Eft.Profile; -public class ProfileChangeVoiceRequestData +public class ProfileChangeVoiceRequestData { - [JsonPropertyName("voice")] - public string? Voice { get; set; } + [JsonPropertyName("voice")] + public string? Voice { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Profile/SearchFriendRequestData.cs b/Core/Models/Eft/Profile/SearchFriendRequestData.cs index 03af1fb4..fd2af942 100644 --- a/Core/Models/Eft/Profile/SearchFriendRequestData.cs +++ b/Core/Models/Eft/Profile/SearchFriendRequestData.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Profile; public class SearchFriendRequestData { - [JsonPropertyName("nickname")] - public string? Nickname { get; set; } + [JsonPropertyName("nickname")] + public string? Nickname { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs b/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs index 70eab556..46e5e43b 100644 --- a/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs +++ b/Core/Models/Eft/Profile/ValidateNicknameRequestData.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Profile; public class ValidateNicknameRequestData { - [JsonPropertyName("nickname")] - public string? Nickname { get; set; } + [JsonPropertyName("nickname")] + public string? Nickname { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/GetOffersResult.cs b/Core/Models/Eft/Ragfair/GetOffersResult.cs index 75618aff..9d0ab010 100644 --- a/Core/Models/Eft/Ragfair/GetOffersResult.cs +++ b/Core/Models/Eft/Ragfair/GetOffersResult.cs @@ -2,17 +2,17 @@ using System.Text.Json.Serialization; namespace Core.Models.Eft.Ragfair; -public class GetOffersResult +public class GetOffersResult { - [JsonPropertyName("categories")] - public Dictionary? Categories { get; set; } - - [JsonPropertyName("offers")] - public List? Offers { get; set; } - - [JsonPropertyName("offersCount")] - public int? OffersCount { get; set; } - - [JsonPropertyName("selectedCategory")] - public string? SelectedCategory { get; set; } + [JsonPropertyName("categories")] + public Dictionary? Categories { get; set; } + + [JsonPropertyName("offers")] + public List? Offers { get; set; } + + [JsonPropertyName("offersCount")] + public int? OffersCount { get; set; } + + [JsonPropertyName("selectedCategory")] + public string? SelectedCategory { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ragfair/SearchRequestData.cs b/Core/Models/Eft/Ragfair/SearchRequestData.cs index 10d2d2f6..5737e3bb 100644 --- a/Core/Models/Eft/Ragfair/SearchRequestData.cs +++ b/Core/Models/Eft/Ragfair/SearchRequestData.cs @@ -79,7 +79,7 @@ public enum OfferOwnerType { ANYOWNERTYPE = 0, TRADEROWNERTYPE = 1, - PLAYEROWNERTYPE = 2, + PLAYEROWNERTYPE = 2 } public class BuildItems diff --git a/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs index 1ee03dd0..149b249f 100644 --- a/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs +++ b/Core/Models/Eft/Repair/BaseRepairActionDataRequest.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Repair; public class BaseRepairActionDataRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Repair/RepairActionDataRequest.cs b/Core/Models/Eft/Repair/RepairActionDataRequest.cs index 4021c881..32d780d3 100644 --- a/Core/Models/Eft/Repair/RepairActionDataRequest.cs +++ b/Core/Models/Eft/Repair/RepairActionDataRequest.cs @@ -4,21 +4,21 @@ namespace Core.Models.Eft.Repair; public class RepairActionDataRequest : BaseRepairActionDataRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } = "Repair"; + [JsonPropertyName("Action")] + public string Action { get; set; } = "Repair"; - [JsonPropertyName("repairKitsInfo")] - public List RepairKitsInfo { get; set; } + [JsonPropertyName("repairKitsInfo")] + public List RepairKitsInfo { get; set; } - [JsonPropertyName("target")] - public string Target { get; set; } // item to repair + [JsonPropertyName("target")] + public string Target { get; set; } // item to repair } public class RepairKitsInfo { - [JsonPropertyName("_id")] - public string Id { get; set; } // id of repair kit to use + [JsonPropertyName("_id")] + public string Id { get; set; } // id of repair kit to use - [JsonPropertyName("count")] - public int Count { get; set; } // amount of units to reduce kit by + [JsonPropertyName("count")] + public int Count { get; set; } // amount of units to reduce kit by } \ No newline at end of file diff --git a/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs index cdddeecc..1cb1ff1a 100644 --- a/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs +++ b/Core/Models/Eft/Repair/TraderRepairActionDataRequest.cs @@ -4,21 +4,21 @@ namespace Core.Models.Eft.Repair; public class TraderRepairActionDataRequest : BaseRepairActionDataRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } = "TraderRepair"; + [JsonPropertyName("Action")] + public string Action { get; set; } = "TraderRepair"; - [JsonPropertyName("tid")] - public string TId { get; set; } + [JsonPropertyName("tid")] + public string TId { get; set; } - [JsonPropertyName("repairItems")] - public List RepairItems { get; set; } + [JsonPropertyName("repairItems")] + public List RepairItems { get; set; } } public class RepairItem { - [JsonPropertyName("_id")] - public string Id { get; set; } + [JsonPropertyName("_id")] + public string Id { get; set; } - [JsonPropertyName("count")] - public int Count { get; set; } + [JsonPropertyName("count")] + public int Count { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs index 253583c5..f5cc5d5d 100644 --- a/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs +++ b/Core/Models/Eft/Trade/ProcessBaseTradeRequestData.cs @@ -4,12 +4,12 @@ namespace Core.Models.Eft.Trade; public class ProcessBaseTradeRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } - [JsonPropertyName("type")] - public string Type { get; set; } + [JsonPropertyName("type")] + public string Type { get; set; } - [JsonPropertyName("tid")] - public string TransactionId { get; set; } + [JsonPropertyName("tid")] + public string TransactionId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs index 592e3d69..069d6110 100644 --- a/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs +++ b/Core/Models/Eft/Trade/ProcessBuyTradeRequestData.cs @@ -4,34 +4,34 @@ namespace Core.Models.Eft.Trade; public class ProcessBuyTradeRequestData : ProcessBaseTradeRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } // TODO: formerly - "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | "SptInsure" | "SptRepair" | "" - - [JsonPropertyName("type")] - public string Type { get; set; } - - [JsonPropertyName("tid")] - public string TId { get; set; } - - [JsonPropertyName("item_id")] - public string ItemId { get; set; } - - [JsonPropertyName("count")] - public int Count { get; set; } - - [JsonPropertyName("scheme_id")] - public int SchemeId { get; set; } - - [JsonPropertyName("scheme_items")] - public List SchemeItems { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } // TODO: formerly - "buy_from_trader" | "TradingConfirm" | "RestoreHealth" | "SptInsure" | "SptRepair" | "" + + [JsonPropertyName("type")] + public string Type { get; set; } + + [JsonPropertyName("tid")] + public string TId { get; set; } + + [JsonPropertyName("item_id")] + public string ItemId { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("scheme_id")] + public int SchemeId { get; set; } + + [JsonPropertyName("scheme_items")] + public List SchemeItems { get; set; } } public class SchemeItem { - /** Id of stack to take money from, is money tpl when Action is `SptInsure` */ - [JsonPropertyName("id")] - public string Id { get; set; } - - [JsonPropertyName("count")] - public int Count { get; set; } + /** Id of stack to take money from, is money tpl when Action is `SptInsure` */ + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs index c797bb9f..bd8b2862 100644 --- a/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs +++ b/Core/Models/Eft/Trade/ProcessRagfairTradeRequestData.cs @@ -4,30 +4,30 @@ namespace Core.Models.Eft.Trade; public class ProcessRagfairTradeRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } - [JsonPropertyName("offers")] - public List Offers { get; set; } + [JsonPropertyName("offers")] + public List Offers { get; set; } } public class OfferRequest { - [JsonPropertyName("id")] - public string Id { get; set; } + [JsonPropertyName("id")] + public string Id { get; set; } - [JsonPropertyName("count")] - public int Count { get; set; } + [JsonPropertyName("count")] + public int Count { get; set; } - [JsonPropertyName("items")] - public List Items { get; set; } + [JsonPropertyName("items")] + public List Items { get; set; } } public class ItemRequest { - [JsonPropertyName("id")] - public string Id { get; set; } + [JsonPropertyName("id")] + public string Id { get; set; } - [JsonPropertyName("count")] - public int Count { get; set; } + [JsonPropertyName("count")] + public int Count { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs b/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs index 7ef3a8cb..d5c2a682 100644 --- a/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs +++ b/Core/Models/Eft/Trade/ProcessSellTradeRequestData.cs @@ -4,30 +4,30 @@ namespace Core.Models.Eft.Trade; public class ProcessSellTradeRequestData : ProcessBaseTradeRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } = "sell_to_trader"; - - [JsonPropertyName("type")] - public string Type { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } = "sell_to_trader"; - [JsonPropertyName("tid")] - public string Tid { get; set; } + [JsonPropertyName("type")] + public string Type { get; set; } - [JsonPropertyName("price")] - public double Price { get; set; } + [JsonPropertyName("tid")] + public string Tid { get; set; } - [JsonPropertyName("items")] - public List Items { get; set; } + [JsonPropertyName("price")] + public double Price { get; set; } + + [JsonPropertyName("items")] + public List Items { get; set; } } public class SoldItem { - [JsonPropertyName("id")] - public string Id { get; set; } - - [JsonPropertyName("count")] - public int Count { get; set; } - - [JsonPropertyName("scheme_id")] - public int SchemeId { get; set; } + [JsonPropertyName("id")] + public string Id { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("scheme_id")] + public int SchemeId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs b/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs index 7f6b294d..e85753b9 100644 --- a/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs +++ b/Core/Models/Eft/Trade/SellScavItemsToFenceRequestData.cs @@ -5,15 +5,15 @@ namespace Core.Models.Eft.Trade; public class SellScavItemsToFenceRequestData { - [JsonPropertyName("Action")] - public string Action { get; set; } = "SellAllFromSavage"; - - [JsonPropertyName("totalValue")] - public double TotalValue { get; set; } - - [JsonPropertyName("fromOwner")] - public OwnerInfo FromOwner { get; set; } - - [JsonPropertyName("toOwner")] - public OwnerInfo ToOwner { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } = "SellAllFromSavage"; + + [JsonPropertyName("totalValue")] + public double TotalValue { get; set; } + + [JsonPropertyName("fromOwner")] + public OwnerInfo FromOwner { get; set; } + + [JsonPropertyName("toOwner")] + public OwnerInfo ToOwner { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Weather/WeatherData.cs b/Core/Models/Eft/Weather/WeatherData.cs index aa049359..3ce8cb98 100644 --- a/Core/Models/Eft/Weather/WeatherData.cs +++ b/Core/Models/Eft/Weather/WeatherData.cs @@ -5,62 +5,62 @@ namespace Core.Models.Eft.Weather; public class WeatherData { - [JsonPropertyName("acceleration")] - public double Acceleration { get; set; } - - [JsonPropertyName("time")] - public string Time { get; set; } - - [JsonPropertyName("date")] - public string Date { get; set; } - - [JsonPropertyName("weather")] - public Weather Weather { get; set; } - - [JsonPropertyName("season")] - public Season Season { get; set; } + [JsonPropertyName("acceleration")] + public double Acceleration { get; set; } + + [JsonPropertyName("time")] + public string Time { get; set; } + + [JsonPropertyName("date")] + public string Date { get; set; } + + [JsonPropertyName("weather")] + public Weather Weather { get; set; } + + [JsonPropertyName("season")] + public Season Season { get; set; } } public class Weather { - [JsonPropertyName("pressure")] - public double Pressure { get; set; } - - [JsonPropertyName("temp")] - public double Temperature { get; set; } - - [JsonPropertyName("fog")] - public double Fog { get; set; } - - [JsonPropertyName("rain_intensity")] - public double RainIntensity { get; set; } - - /** 1 - 3 light rain, 3+ 'rain' */ - [JsonPropertyName("rain")] - public double Rain { get; set; } - - [JsonPropertyName("wind_gustiness")] - public double WindGustiness { get; set; } - - [JsonPropertyName("wind_direction")] - public WindDirection WindDirection { get; set; } - - [JsonPropertyName("wind_speed")] - public double WindSpeed { get; set; } - - /** < -0.4 = clear day */ - [JsonPropertyName("cloud")] - public double Cloud { get; set; } - - [JsonPropertyName("time")] - public string Time { get; set; } - - [JsonPropertyName("date")] - public string Date { get; set; } - - [JsonPropertyName("timestamp")] - public long Timestamp { get; set; } - - [JsonPropertyName("sptInRaidTimestamp")] - public long SptInRaidTimestamp { get; set; } + [JsonPropertyName("pressure")] + public double Pressure { get; set; } + + [JsonPropertyName("temp")] + public double Temperature { get; set; } + + [JsonPropertyName("fog")] + public double Fog { get; set; } + + [JsonPropertyName("rain_intensity")] + public double RainIntensity { get; set; } + + /** 1 - 3 light rain, 3+ 'rain' */ + [JsonPropertyName("rain")] + public double Rain { get; set; } + + [JsonPropertyName("wind_gustiness")] + public double WindGustiness { get; set; } + + [JsonPropertyName("wind_direction")] + public WindDirection WindDirection { get; set; } + + [JsonPropertyName("wind_speed")] + public double WindSpeed { get; set; } + + /** < -0.4 = clear day */ + [JsonPropertyName("cloud")] + public double Cloud { get; set; } + + [JsonPropertyName("time")] + public string Time { get; set; } + + [JsonPropertyName("date")] + public string Date { get; set; } + + [JsonPropertyName("timestamp")] + public long Timestamp { get; set; } + + [JsonPropertyName("sptInRaidTimestamp")] + public long SptInRaidTimestamp { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs b/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs index b7af04af..93691121 100644 --- a/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs +++ b/Core/Models/Eft/Wishlist/AddToWishlistRequest.cs @@ -4,9 +4,9 @@ namespace Core.Models.Eft.Wishlist; public class AddToWishlistRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } - - [JsonPropertyName("items")] - public Dictionary Items { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } + + [JsonPropertyName("items")] + public Dictionary Items { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs b/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs index 0cf7ffa0..75b5065a 100644 --- a/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs +++ b/Core/Models/Eft/Wishlist/ChangeWishlistItemCategoryRequest.cs @@ -4,12 +4,12 @@ namespace Core.Models.Eft.Wishlist; public class ChangeWishlistItemCategoryRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } - [JsonPropertyName("item")] - public string Item { get; set; } + [JsonPropertyName("item")] + public string Item { get; set; } - [JsonPropertyName("category")] - public int Category { get; set; } + [JsonPropertyName("category")] + public int Category { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs b/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs index 7c55baba..0fb884d1 100644 --- a/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs +++ b/Core/Models/Eft/Wishlist/RemoveFromWishlistRequest.cs @@ -4,9 +4,9 @@ namespace Core.Models.Eft.Wishlist; public class RemoveFromWishlistRequest { - [JsonPropertyName("Action")] - public string Action { get; set; } + [JsonPropertyName("Action")] + public string Action { get; set; } - [JsonPropertyName("items")] - public List Items { get; set; } + [JsonPropertyName("items")] + public List Items { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsAid.cs b/Core/Models/Eft/Ws/WsAid.cs index 978e2ad1..226a6f56 100644 --- a/Core/Models/Eft/Ws/WsAid.cs +++ b/Core/Models/Eft/Ws/WsAid.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Ws; public class WsAid : WsNotificationEvent { - [JsonPropertyName("aid")] - public int? Aid { get; set; } + [JsonPropertyName("aid")] + public int? Aid { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsAidNickname.cs b/Core/Models/Eft/Ws/WsAidNickname.cs index d6aa6f70..e74fca90 100644 --- a/Core/Models/Eft/Ws/WsAidNickname.cs +++ b/Core/Models/Eft/Ws/WsAidNickname.cs @@ -4,9 +4,9 @@ namespace Core.Models.Eft.Ws; public class WsAidNickname : WsNotificationEvent { - [JsonPropertyName("aid")] - public int? Aid { get; set; } + [JsonPropertyName("aid")] + public int? Aid { get; set; } - [JsonPropertyName("Nickname")] - public string? Nickname { get; set; } + [JsonPropertyName("Nickname")] + public string? Nickname { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsChatMessageReceived.cs b/Core/Models/Eft/Ws/WsChatMessageReceived.cs index 92d40398..60c1de80 100644 --- a/Core/Models/Eft/Ws/WsChatMessageReceived.cs +++ b/Core/Models/Eft/Ws/WsChatMessageReceived.cs @@ -6,12 +6,12 @@ namespace Core.Models.Eft.Ws; public class WsChatMessageReceived : WsNotificationEvent { - [JsonPropertyName("dialogId")] - public string? DialogId { get; set; } + [JsonPropertyName("dialogId")] + public string? DialogId { get; set; } - [JsonPropertyName("message")] - public Message? Message { get; set; } + [JsonPropertyName("message")] + public Message? Message { get; set; } - [JsonPropertyName("profiles")] - public List? Profiles { get; set; } + [JsonPropertyName("profiles")] + public List? Profiles { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsFriendListAccept.cs b/Core/Models/Eft/Ws/WsFriendListAccept.cs index de62e953..3d7b2fc0 100644 --- a/Core/Models/Eft/Ws/WsFriendListAccept.cs +++ b/Core/Models/Eft/Ws/WsFriendListAccept.cs @@ -5,6 +5,6 @@ namespace Core.Models.Eft.Ws; public class WsFriendsListAccept : WsNotificationEvent { - [JsonPropertyName("profile")] - public SearchFriendResponse? Profile { get; set; } + [JsonPropertyName("profile")] + public SearchFriendResponse? Profile { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupId.cs b/Core/Models/Eft/Ws/WsGroupId.cs index e626b7ea..50811cc7 100644 --- a/Core/Models/Eft/Ws/WsGroupId.cs +++ b/Core/Models/Eft/Ws/WsGroupId.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Ws; public class WsGroupId : WsNotificationEvent { - [JsonPropertyName("groupId")] - public string? GroupId { get; set; } + [JsonPropertyName("groupId")] + public string? GroupId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs b/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs index de6fad9f..34cff6c9 100644 --- a/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs +++ b/Core/Models/Eft/Ws/WsGroupMatchInviteDecline.cs @@ -4,9 +4,9 @@ namespace Core.Models.Eft.Ws; public class WsGroupMatchInviteDecline : WsNotificationEvent { - [JsonPropertyName("aid")] - public int Aid { get; set; } - - [JsonPropertyName("Nickname")] - public string Nickname { get; set; } + [JsonPropertyName("aid")] + public int Aid { get; set; } + + [JsonPropertyName("Nickname")] + public string Nickname { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs b/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs index 21624403..a9725d32 100644 --- a/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs +++ b/Core/Models/Eft/Ws/WsGroupMatchInviteSend.cs @@ -5,12 +5,12 @@ namespace Core.Models.Eft.Ws; public class WsGroupMatchInviteSend : WsNotificationEvent { - [JsonPropertyName("requestId")] - public string RequestId { get; set; } + [JsonPropertyName("requestId")] + public string RequestId { get; set; } - [JsonPropertyName("from")] - public int From { get; set; } + [JsonPropertyName("from")] + public int From { get; set; } - [JsonPropertyName("members")] - public List Members { get; set; } + [JsonPropertyName("members")] + public List Members { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs b/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs index bd4106d1..b13499bb 100644 --- a/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs +++ b/Core/Models/Eft/Ws/WsGroupMatchLeaderChanged.cs @@ -4,6 +4,6 @@ namespace Core.Models.Eft.Ws; public class WsGroupMatchLeaderChanged : WsNotificationEvent { - [JsonPropertyName("owner")] - public int Owner { get; set; } + [JsonPropertyName("owner")] + public int Owner { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs b/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs index f2f38ad6..cf875a7f 100644 --- a/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs +++ b/Core/Models/Eft/Ws/WsGroupMatchRaidReady.cs @@ -5,6 +5,6 @@ namespace Core.Models.Eft.Ws; public class WsGroupMatchRaidReady : WsNotificationEvent { - [JsonPropertyName("extendedProfile")] - public GroupCharacter ExtendedProfile { get; set; } + [JsonPropertyName("extendedProfile")] + public GroupCharacter ExtendedProfile { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs b/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs index 2559b72d..faab2991 100644 --- a/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs +++ b/Core/Models/Eft/Ws/WsGroupMatchRaidSettings.cs @@ -5,6 +5,6 @@ namespace Core.Models.Eft.Ws; public class WsGroupMatchRaidSettings : WsNotificationEvent { - [JsonPropertyName("raidSettings")] - public RaidSettings RaidSettings { get; set; } + [JsonPropertyName("raidSettings")] + public RaidSettings RaidSettings { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsNotificationEvent.cs b/Core/Models/Eft/Ws/WsNotificationEvent.cs index 8274fc12..50eb0d44 100644 --- a/Core/Models/Eft/Ws/WsNotificationEvent.cs +++ b/Core/Models/Eft/Ws/WsNotificationEvent.cs @@ -2,11 +2,11 @@ using System.Text.Json.Serialization; namespace Core.Models.Eft.Ws; -public class WsNotificationEvent +public class WsNotificationEvent { - [JsonPropertyName("type")] - public string EventType { get; set; } + [JsonPropertyName("type")] + public string EventType { get; set; } - [JsonPropertyName("eventId")] - public string? EventIdentifier { get; set; } + [JsonPropertyName("eventId")] + public string? EventIdentifier { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsPing.cs b/Core/Models/Eft/Ws/WsPing.cs index 681d8ee6..b044de10 100644 --- a/Core/Models/Eft/Ws/WsPing.cs +++ b/Core/Models/Eft/Ws/WsPing.cs @@ -2,5 +2,4 @@ namespace Core.Models.Eft.Ws; public class WsPing : WsNotificationEvent { - } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsRagfairOfferSold.cs b/Core/Models/Eft/Ws/WsRagfairOfferSold.cs index 3d676e0c..86a2281f 100644 --- a/Core/Models/Eft/Ws/WsRagfairOfferSold.cs +++ b/Core/Models/Eft/Ws/WsRagfairOfferSold.cs @@ -4,12 +4,12 @@ namespace Core.Models.Eft.Ws; public class WsRagfairOfferSold : WsNotificationEvent { - [JsonPropertyName("offerId")] - public string OfferId { get; set; } - - [JsonPropertyName("count")] - public int Count { get; set; } - - [JsonPropertyName("handbookId")] - public string HandbookId { get; set; } + [JsonPropertyName("offerId")] + public string OfferId { get; set; } + + [JsonPropertyName("count")] + public int Count { get; set; } + + [JsonPropertyName("handbookId")] + public string HandbookId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Eft/Ws/WsUserConfirmed.cs b/Core/Models/Eft/Ws/WsUserConfirmed.cs index 6b814341..e44282c8 100644 --- a/Core/Models/Eft/Ws/WsUserConfirmed.cs +++ b/Core/Models/Eft/Ws/WsUserConfirmed.cs @@ -5,39 +5,39 @@ namespace Core.Models.Eft.Ws; public class WsUserConfirmed : WsNotificationEvent { - [JsonPropertyName("profileid")] - public string ProfileId { get; set; } + [JsonPropertyName("profileid")] + public string ProfileId { get; set; } - [JsonPropertyName("profileToken")] - public string ProfileToken { get; set; } + [JsonPropertyName("profileToken")] + public string ProfileToken { get; set; } - [JsonPropertyName("status")] - public ProfileStatus Status { get; set; } + [JsonPropertyName("status")] + public ProfileStatus Status { get; set; } - [JsonPropertyName("ip")] - public string Ip { get; set; } + [JsonPropertyName("ip")] + public string Ip { get; set; } - [JsonPropertyName("port")] - public int Port { get; set; } + [JsonPropertyName("port")] + public int Port { get; set; } - [JsonPropertyName("sid")] - public string Sid { get; set; } + [JsonPropertyName("sid")] + public string Sid { get; set; } - [JsonPropertyName("version")] - public string Version { get; set; } + [JsonPropertyName("version")] + public string Version { get; set; } - [JsonPropertyName("location")] - public string Location { get; set; } + [JsonPropertyName("location")] + public string Location { get; set; } - [JsonPropertyName("raidMode")] - public RaidMode RaidMode { get; set; } + [JsonPropertyName("raidMode")] + public RaidMode RaidMode { get; set; } - [JsonPropertyName("mode")] - public string Mode { get; set; } + [JsonPropertyName("mode")] + public string Mode { get; set; } - [JsonPropertyName("shortId")] - public string ShortId { get; set; } + [JsonPropertyName("shortId")] + public string ShortId { get; set; } - [JsonPropertyName("additional_info")] - public List AdditionalInfo { get; set; } // TODO: Was `any` in the node server. + [JsonPropertyName("additional_info")] + public List AdditionalInfo { get; set; } // TODO: Was `any` in the node server. } \ No newline at end of file diff --git a/Core/Models/Enums/ConfigTypes.cs b/Core/Models/Enums/ConfigTypes.cs index e3cdfad5..3d8d3d2d 100644 --- a/Core/Models/Enums/ConfigTypes.cs +++ b/Core/Models/Enums/ConfigTypes.cs @@ -38,7 +38,7 @@ public static class ConfigTypesExtension _ => throw new ArgumentOutOfRangeException(nameof(type), type, null) }; } - + public static Type GetConfigType(this ConfigTypes type) { return type switch diff --git a/Core/Models/Enums/EquipmentBuildType.cs b/Core/Models/Enums/EquipmentBuildType.cs index bf7f8406..073f4169 100644 --- a/Core/Models/Enums/EquipmentBuildType.cs +++ b/Core/Models/Enums/EquipmentBuildType.cs @@ -3,5 +3,5 @@ public enum EquipmentBuildType { CUSTOM = 0, - STANDARD = 1, + STANDARD = 1 } \ No newline at end of file diff --git a/Core/Models/Enums/Hideout/QteType.cs b/Core/Models/Enums/Hideout/QteType.cs index acb121ae..129e0aff 100644 --- a/Core/Models/Enums/Hideout/QteType.cs +++ b/Core/Models/Enums/Hideout/QteType.cs @@ -2,5 +2,5 @@ namespace Core.Models.Enums.Hideout; public enum QteType { - ShrinkingCircle, + ShrinkingCircle } \ No newline at end of file diff --git a/Core/Models/Enums/HideoutAreas.cs b/Core/Models/Enums/HideoutAreas.cs index c1106b11..6545172e 100644 --- a/Core/Models/Enums/HideoutAreas.cs +++ b/Core/Models/Enums/HideoutAreas.cs @@ -30,5 +30,5 @@ public enum HideoutAreas WEAPON_STAND = 24, WEAPON_STAND_SECONDARY = 25, EQUIPMENT_PRESETS_STAND = 26, - CIRCLE_OF_CULTISTS = 27, + CIRCLE_OF_CULTISTS = 27 } \ No newline at end of file diff --git a/Core/Models/Enums/MemberCategory.cs b/Core/Models/Enums/MemberCategory.cs index 4b97e615..8399e318 100644 --- a/Core/Models/Enums/MemberCategory.cs +++ b/Core/Models/Enums/MemberCategory.cs @@ -13,5 +13,5 @@ public enum MemberCategory UNIT_TEST = 128, SHERPA = 256, EMISSARY = 512, - UNHEARD = 1024, + UNHEARD = 1024 } \ No newline at end of file diff --git a/Core/Models/Enums/ModSpawn.cs b/Core/Models/Enums/ModSpawn.cs index f62e3b9b..bc437fc4 100644 --- a/Core/Models/Enums/ModSpawn.cs +++ b/Core/Models/Enums/ModSpawn.cs @@ -4,8 +4,10 @@ public enum ModSpawn { /** Chosen mod should be the tpl from the default weapon template */ DEFAULT_MOD = 0, + /** Normal behaviour */ SPAWN = 1, + /** Item should not be chosen */ - SKIP = 2, + SKIP = 2 } \ No newline at end of file diff --git a/Core/Models/Enums/ProfileStatus.cs b/Core/Models/Enums/ProfileStatus.cs index b9fc1774..08708398 100644 --- a/Core/Models/Enums/ProfileStatus.cs +++ b/Core/Models/Enums/ProfileStatus.cs @@ -6,5 +6,5 @@ public enum ProfileStatus MATCH_WAIT, BUSY, LEAVING, - TRANSFER, + TRANSFER } \ No newline at end of file diff --git a/Core/Models/Enums/QuestStatus.cs b/Core/Models/Enums/QuestStatus.cs index 08ed02e1..6cc109fc 100644 --- a/Core/Models/Enums/QuestStatus.cs +++ b/Core/Models/Enums/QuestStatus.cs @@ -11,5 +11,5 @@ public enum QuestStatus FailRestartable = 6, MarkedAsFailed = 7, Expired = 8, - AvailableAfter = 9, + AvailableAfter = 9 } \ No newline at end of file diff --git a/Core/Models/Enums/RagfairSort.cs b/Core/Models/Enums/RagfairSort.cs index 52b499c2..efc17775 100644 --- a/Core/Models/Enums/RagfairSort.cs +++ b/Core/Models/Enums/RagfairSort.cs @@ -7,5 +7,5 @@ public enum RagfairSort RATING = 3, OFFER_TITLE = 4, PRICE = 5, - EXPIRY = 6, + EXPIRY = 6 } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/BotAmount.cs b/Core/Models/Enums/RaidSettings/BotAmount.cs index 5fcaa5a4..06678794 100644 --- a/Core/Models/Enums/RaidSettings/BotAmount.cs +++ b/Core/Models/Enums/RaidSettings/BotAmount.cs @@ -7,5 +7,5 @@ public enum BotAmount LOW, MEDIUM, HIGH, - HORDE, + HORDE } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/BotDifficulty.cs b/Core/Models/Enums/RaidSettings/BotDifficulty.cs index 9a50d541..f641a086 100644 --- a/Core/Models/Enums/RaidSettings/BotDifficulty.cs +++ b/Core/Models/Enums/RaidSettings/BotDifficulty.cs @@ -7,5 +7,5 @@ public enum BotDifficulty MEDIUM, HARD, IMPOSSIBLE, - RANDOM, + RANDOM } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs index 6b1c8daa..c225e0e1 100644 --- a/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/FogType.cs @@ -6,5 +6,5 @@ public enum FogType FAINT, FOG, HEAVY, - CONTINUOUS, + CONTINUOUS } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs index 69bbdfd3..32f7cffa 100644 --- a/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/RainType.cs @@ -6,5 +6,5 @@ public enum RainType DRIZZLING, RAIN, HEAVY, - SHOWER, + SHOWER } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs index 442ae0dd..f7099fc0 100644 --- a/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/TimeFlowType.cs @@ -9,5 +9,5 @@ public enum TimeFlowType X1, X2, X4, - X8, + X8 } \ No newline at end of file diff --git a/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs b/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs index cdfa8ce4..0985983d 100644 --- a/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs +++ b/Core/Models/Enums/RaidSettings/TimeAndWeather/WindSpeed.cs @@ -6,5 +6,5 @@ public enum WindSpeed MODERATE, STRONG, VERY_STRONG, - HURRICANE, + HURRICANE } \ No newline at end of file diff --git a/Core/Models/Enums/Season.cs b/Core/Models/Enums/Season.cs index a4977136..2bb3f6f4 100644 --- a/Core/Models/Enums/Season.cs +++ b/Core/Models/Enums/Season.cs @@ -1,11 +1,12 @@ namespace Core.Models.Enums; -public enum Season { +public enum Season +{ SUMMER = 0, AUTUMN = 1, WINTER = 2, SPRING = 3, AUTUMN_LATE = 4, SPRING_EARLY = 5, - STORM = 6, + STORM = 6 } \ No newline at end of file diff --git a/Core/Models/Enums/SkillTypes.cs b/Core/Models/Enums/SkillTypes.cs index cf9969f1..a864a25a 100644 --- a/Core/Models/Enums/SkillTypes.cs +++ b/Core/Models/Enums/SkillTypes.cs @@ -40,6 +40,7 @@ public enum SkillTypes NightOps, SilentOps, Lockpicking, + // Also called Weapon Maintenance WeaponTreatment, MagDrills, diff --git a/Core/Models/Enums/WindDirection.cs b/Core/Models/Enums/WindDirection.cs index f28b1179..2aae4013 100644 --- a/Core/Models/Enums/WindDirection.cs +++ b/Core/Models/Enums/WindDirection.cs @@ -1,6 +1,7 @@ namespace Core.Models.Enums; -public enum WindDirection { +public enum WindDirection +{ EAST = 1, NORTH = 2, WEST = 3, @@ -8,5 +9,5 @@ public enum WindDirection { SE = 5, SW = 6, NW = 7, - NE = 8, + NE = 8 } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/BotGenerationDetails.cs b/Core/Models/Spt/Bots/BotGenerationDetails.cs index c758c83c..774b034c 100644 --- a/Core/Models/Spt/Bots/BotGenerationDetails.cs +++ b/Core/Models/Spt/Bots/BotGenerationDetails.cs @@ -10,67 +10,67 @@ public class BotGenerationDetails /// [JsonPropertyName("isPmc")] public bool IsPmc { get; set; } - + /// /// assault/pmcBot etc /// [JsonPropertyName("role")] public string Role { get; set; } - + /// /// Side of bot /// [JsonPropertyName("side")] public string Side { get; set; } - + /// /// Active players current level /// [JsonPropertyName("playerLevel")] public int? PlayerLevel { get; set; } - + [JsonPropertyName("playerName")] public string? PlayerName { get; set; } - + /// /// Level specific overrides for PMC level /// [JsonPropertyName("locationSpecificPmcLevelOverride")] public MinMax? LocationSpecificPmcLevelOverride { get; set; } - + /// /// Delta of highest level of bot e.g. 50 means 50 levels above player /// [JsonPropertyName("botRelativeLevelDeltaMax")] public int BotRelativeLevelDeltaMax { get; set; } - + /// /// Delta of lowest level of bot e.g. 50 means 50 levels below player /// [JsonPropertyName("botRelativeLevelDeltaMin")] public int BotRelativeLevelDeltaMin { get; set; } - + /// /// How many to create and store /// [JsonPropertyName("botCountToGenerate")] public int BotCountToGenerate { get; set; } - + /// /// Desired difficulty of the bot /// [JsonPropertyName("botDifficulty")] public string BotDifficulty { get; set; } - + /// /// Will the generated bot be a player scav /// [JsonPropertyName("isPlayerScav")] public bool IsPlayerScav { get; set; } - + [JsonPropertyName("eventRole")] public string? EventRole { get; set; } - + [JsonPropertyName("allPmcsHaveSameNameAsPlayer")] public bool? AllPmcsHaveSameNameAsPlayer { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/BotLootCache.cs b/Core/Models/Spt/Bots/BotLootCache.cs index 7eb83d39..ab7ca953 100644 --- a/Core/Models/Spt/Bots/BotLootCache.cs +++ b/Core/Models/Spt/Bots/BotLootCache.cs @@ -4,59 +4,59 @@ namespace Core.Models.Spt.Bots; public class BotLootCache { - [JsonPropertyName("backpackLoot")] - public Dictionary BackpackLoot { get; set; } + [JsonPropertyName("backpackLoot")] + public Dictionary BackpackLoot { get; set; } - [JsonPropertyName("pocketLoot")] - public Dictionary PocketLoot { get; set; } + [JsonPropertyName("pocketLoot")] + public Dictionary PocketLoot { get; set; } - [JsonPropertyName("vestLoot")] - public Dictionary VestLoot { get; set; } + [JsonPropertyName("vestLoot")] + public Dictionary VestLoot { get; set; } - [JsonPropertyName("secureLoot")] - public Dictionary SecureLoot { get; set; } + [JsonPropertyName("secureLoot")] + public Dictionary SecureLoot { get; set; } - [JsonPropertyName("combinedPoolLoot")] - public Dictionary CombinedPoolLoot { get; set; } + [JsonPropertyName("combinedPoolLoot")] + public Dictionary CombinedPoolLoot { get; set; } - [JsonPropertyName("specialItems")] - public Dictionary SpecialItems { get; set; } + [JsonPropertyName("specialItems")] + public Dictionary SpecialItems { get; set; } - [JsonPropertyName("healingItems")] - public Dictionary HealingItems { get; set; } + [JsonPropertyName("healingItems")] + public Dictionary HealingItems { get; set; } - [JsonPropertyName("drugItems")] - public Dictionary DrugItems { get; set; } + [JsonPropertyName("drugItems")] + public Dictionary DrugItems { get; set; } - [JsonPropertyName("foodItems")] - public Dictionary FoodItems { get; set; } + [JsonPropertyName("foodItems")] + public Dictionary FoodItems { get; set; } - [JsonPropertyName("drinkItems")] - public Dictionary DrinkItems { get; set; } + [JsonPropertyName("drinkItems")] + public Dictionary DrinkItems { get; set; } - [JsonPropertyName("currencyItems")] - public Dictionary CurrencyItems { get; set; } + [JsonPropertyName("currencyItems")] + public Dictionary CurrencyItems { get; set; } - [JsonPropertyName("stimItems")] - public Dictionary StimItems { get; set; } + [JsonPropertyName("stimItems")] + public Dictionary StimItems { get; set; } - [JsonPropertyName("grenadeItems")] - public Dictionary GrenadeItems { get; set; } + [JsonPropertyName("grenadeItems")] + public Dictionary GrenadeItems { get; set; } } public static class LootCacheType { - public const string Special = "Special"; - public const string Backpack = "Backpack"; - public const string Pocket = "Pocket"; - public const string Vest = "Vest"; - public const string Secure = "SecuredContainer"; - public const string Combined = "Combined"; - public const string HealingItems = "HealingItems"; - public const string DrugItems = "DrugItems"; - public const string StimItems = "StimItems"; - public const string GrenadeItems = "GrenadeItems"; - public const string FoodItems = "FoodItems"; - public const string DrinkItems = "DrinkItems"; - public const string CurrencyItems = "CurrencyItems"; + public const string Special = "Special"; + public const string Backpack = "Backpack"; + public const string Pocket = "Pocket"; + public const string Vest = "Vest"; + public const string Secure = "SecuredContainer"; + public const string Combined = "Combined"; + public const string HealingItems = "HealingItems"; + public const string DrugItems = "DrugItems"; + public const string StimItems = "StimItems"; + public const string GrenadeItems = "GrenadeItems"; + public const string FoodItems = "FoodItems"; + public const string DrinkItems = "DrinkItems"; + public const string CurrencyItems = "CurrencyItems"; } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/Bots.cs b/Core/Models/Spt/Bots/Bots.cs index a296ff9b..3f40504b 100644 --- a/Core/Models/Spt/Bots/Bots.cs +++ b/Core/Models/Spt/Bots/Bots.cs @@ -5,7 +5,6 @@ namespace Core.Models.Spt.Bots; public class Bots { - [JsonPropertyName("types")] public Dictionary Types { get; set; } diff --git a/Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs b/Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs index eb84769c..90ddeea7 100644 --- a/Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs +++ b/Core/Models/Spt/Bots/ChooseRandomCompatibleModResult.cs @@ -4,18 +4,18 @@ namespace Core.Models.Spt.Bots; public class ChooseRandomCompatibleModResult { - [JsonPropertyName("incompatible")] - public bool Incompatible { get; set; } + [JsonPropertyName("incompatible")] + public bool Incompatible { get; set; } - [JsonPropertyName("found")] - public bool? Found { get; set; } + [JsonPropertyName("found")] + public bool? Found { get; set; } - [JsonPropertyName("chosenTpl")] - public string? ChosenTemplate { get; set; } + [JsonPropertyName("chosenTpl")] + public string? ChosenTemplate { get; set; } - [JsonPropertyName("reason")] - public string Reason { get; set; } + [JsonPropertyName("reason")] + public string Reason { get; set; } - [JsonPropertyName("slotBlocked")] - public bool? SlotBlocked { get; set; } + [JsonPropertyName("slotBlocked")] + public bool? SlotBlocked { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/FilterPlateModsForSlotByLevelResult.cs b/Core/Models/Spt/Bots/FilterPlateModsForSlotByLevelResult.cs index 4e8ac73d..aa06e217 100644 --- a/Core/Models/Spt/Bots/FilterPlateModsForSlotByLevelResult.cs +++ b/Core/Models/Spt/Bots/FilterPlateModsForSlotByLevelResult.cs @@ -4,18 +4,18 @@ namespace Core.Models.Spt.Bots; public class FilterPlateModsForSlotByLevelResult { - [JsonPropertyName("result")] - public Result Result { get; set; } + [JsonPropertyName("result")] + public Result Result { get; set; } - [JsonPropertyName("plateModTpls")] - public List PlateModTemplates { get; set; } + [JsonPropertyName("plateModTpls")] + public List PlateModTemplates { get; set; } } public enum Result { - UNKNOWN_FAILURE = -1, - SUCCESS = 1, - NO_DEFAULT_FILTER = 2, - NOT_PLATE_HOLDING_SLOT = 3, - LACKS_PLATE_WEIGHTS = 4, + UNKNOWN_FAILURE = -1, + SUCCESS = 1, + NO_DEFAULT_FILTER = 2, + NOT_PLATE_HOLDING_SLOT = 3, + LACKS_PLATE_WEIGHTS = 4 } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/GenerateEquipmentProperties.cs b/Core/Models/Spt/Bots/GenerateEquipmentProperties.cs index 6179a6dc..ad44eca5 100644 --- a/Core/Models/Spt/Bots/GenerateEquipmentProperties.cs +++ b/Core/Models/Spt/Bots/GenerateEquipmentProperties.cs @@ -6,51 +6,51 @@ namespace Core.Models.Spt.Bots; public class GenerateEquipmentProperties { - /// - /// Root Slot being generated - /// - [JsonPropertyName("rootEquipmentSlot")] - public string RootEquipmentSlot { get; set; } + /// + /// Root Slot being generated + /// + [JsonPropertyName("rootEquipmentSlot")] + public string RootEquipmentSlot { get; set; } - /// - /// Equipment pool for root slot being generated - /// - [JsonPropertyName("rootEquipmentPool")] - public Dictionary RootEquipmentPool { get; set; } + /// + /// Equipment pool for root slot being generated + /// + [JsonPropertyName("rootEquipmentPool")] + public Dictionary RootEquipmentPool { get; set; } - [JsonPropertyName("modPool")] - public GlobalMods ModPool { get; set; } + [JsonPropertyName("modPool")] + public GlobalMods ModPool { get; set; } - /// - /// Dictionary of mod items and their chance to spawn for this bot type - /// - [JsonPropertyName("spawnChances")] - public Chances SpawnChances { get; set; } + /// + /// Dictionary of mod items and their chance to spawn for this bot type + /// + [JsonPropertyName("spawnChances")] + public Chances SpawnChances { get; set; } - /// - /// Bot-specific properties - /// - [JsonPropertyName("botData")] - public BotData BotData { get; set; } + /// + /// Bot-specific properties + /// + [JsonPropertyName("botData")] + public BotData BotData { get; set; } - [JsonPropertyName("inventory")] - public BotBaseInventory Inventory { get; set; } + [JsonPropertyName("inventory")] + public BotBaseInventory Inventory { get; set; } - [JsonPropertyName("botEquipmentConfig")] - public EquipmentFilters BotEquipmentConfig { get; set; } + [JsonPropertyName("botEquipmentConfig")] + public EquipmentFilters BotEquipmentConfig { get; set; } - /// - /// Settings from bot.json to adjust how item is generated - /// - [JsonPropertyName("randomisationDetails")] - public RandomisationDetails RandomisationDetails { get; set; } + /// + /// Settings from bot.json to adjust how item is generated + /// + [JsonPropertyName("randomisationDetails")] + public RandomisationDetails RandomisationDetails { get; set; } - /// - /// OPTIONAL - Do not generate mods for tpls in this array - /// - [JsonPropertyName("generateModsBlacklist")] - public List GenerateModsBlacklist { get; set; } + /// + /// OPTIONAL - Do not generate mods for tpls in this array + /// + [JsonPropertyName("generateModsBlacklist")] + public List GenerateModsBlacklist { get; set; } - [JsonPropertyName("generatingPlayerLevel")] - public int GeneratingPlayerLevel { get; set; } + [JsonPropertyName("generatingPlayerLevel")] + public int GeneratingPlayerLevel { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/GenerateWeaponRequest.cs b/Core/Models/Spt/Bots/GenerateWeaponRequest.cs index f04d85de..911d41a1 100644 --- a/Core/Models/Spt/Bots/GenerateWeaponRequest.cs +++ b/Core/Models/Spt/Bots/GenerateWeaponRequest.cs @@ -77,19 +77,19 @@ public class BotModLimits { [JsonPropertyName("scope")] public ItemCount Scope { get; set; } - + [JsonPropertyName("scopeMax")] public int ScopeMax { get; set; } - + [JsonPropertyName("scopeBaseTypes")] public string[] ScopeBaseTypes { get; set; } - + [JsonPropertyName("flashlightLaser")] public ItemCount FlashlightLaser { get; set; } - + [JsonPropertyName("flashlightLaserMax")] public int FlashlightLaserMax { get; set; } - + [JsonPropertyName("flashlightLaserBaseTypes")] public string[] FlashlightLaserBaseTypes { get; set; } } diff --git a/Core/Models/Spt/Bots/GenerateWeaponResult.cs b/Core/Models/Spt/Bots/GenerateWeaponResult.cs index b9a65f94..cb28f77a 100644 --- a/Core/Models/Spt/Bots/GenerateWeaponResult.cs +++ b/Core/Models/Spt/Bots/GenerateWeaponResult.cs @@ -5,18 +5,18 @@ namespace Core.Models.Spt.Bots; public class GenerateWeaponResult { - [JsonPropertyName("weapon")] - public List Weapon { get; set; } + [JsonPropertyName("weapon")] + public List Weapon { get; set; } - [JsonPropertyName("chosenAmmoTpl")] - public string ChosenAmmoTemplate { get; set; } + [JsonPropertyName("chosenAmmoTpl")] + public string ChosenAmmoTemplate { get; set; } - [JsonPropertyName("chosenUbglAmmoTpl")] - public string ChosenUbglAmmoTemplate { get; set; } + [JsonPropertyName("chosenUbglAmmoTpl")] + public string ChosenUbglAmmoTemplate { get; set; } - [JsonPropertyName("weaponMods")] - public GlobalMods WeaponMods { get; set; } + [JsonPropertyName("weaponMods")] + public GlobalMods WeaponMods { get; set; } - [JsonPropertyName("weaponTemplate")] - public TemplateItem WeaponTemplate { get; set; } + [JsonPropertyName("weaponTemplate")] + public TemplateItem WeaponTemplate { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Bots/ItemSpawnLimitSettings.cs b/Core/Models/Spt/Bots/ItemSpawnLimitSettings.cs index 1d46b19c..4121290a 100644 --- a/Core/Models/Spt/Bots/ItemSpawnLimitSettings.cs +++ b/Core/Models/Spt/Bots/ItemSpawnLimitSettings.cs @@ -2,11 +2,11 @@ using System.Text.Json.Serialization; namespace Core.Models.Spt.Bots; -public class ItemSpawnLimitSettings +public class ItemSpawnLimitSettings { - [JsonPropertyName("currentLimits")] - public Dictionary CurrentLimits { get; set; } + [JsonPropertyName("currentLimits")] + public Dictionary CurrentLimits { get; set; } - [JsonPropertyName("globalLimits")] - public Dictionary GlobalLimits { get; set; } + [JsonPropertyName("globalLimits")] + public Dictionary GlobalLimits { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/AirdropConfig.cs b/Core/Models/Spt/Config/AirdropConfig.cs index b305685b..dff76614 100644 --- a/Core/Models/Spt/Config/AirdropConfig.cs +++ b/Core/Models/Spt/Config/AirdropConfig.cs @@ -30,25 +30,25 @@ public class AirdropChancePercent { [JsonPropertyName("bigmap")] public double Bigmap { get; set; } - + [JsonPropertyName("woods")] public double Woods { get; set; } - + [JsonPropertyName("lighthouse")] public double Lighthouse { get; set; } - + [JsonPropertyName("shoreline")] public double Shoreline { get; set; } - + [JsonPropertyName("interchange")] public double Interchange { get; set; } - + [JsonPropertyName("reserve")] public double Reserve { get; set; } - + [JsonPropertyName("tarkovStreets")] public double TarkovStreets { get; set; } - + [JsonPropertyName("sandbox")] public double Sandbox { get; set; } } diff --git a/Core/Models/Spt/Config/BaseConfig.cs b/Core/Models/Spt/Config/BaseConfig.cs index b5138c9a..dc385bd2 100644 --- a/Core/Models/Spt/Config/BaseConfig.cs +++ b/Core/Models/Spt/Config/BaseConfig.cs @@ -12,7 +12,7 @@ public class RunIntervalValues { [JsonPropertyName("inRaid")] public int InRaid { get; set; } - + [JsonPropertyName("outOfRaid")] public int OutOfRaid { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/BotConfig.cs b/Core/Models/Spt/Config/BotConfig.cs index 45a9e31d..905056f9 100644 --- a/Core/Models/Spt/Config/BotConfig.cs +++ b/Core/Models/Spt/Config/BotConfig.cs @@ -9,91 +9,91 @@ public class BotConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-bot"; - + /** How many variants of each bot should be generated on raid start */ [JsonPropertyName("presetBatch")] public PresetBatch PresetBatch { get; set; } - + /** Bot roles that should not have PMC types (pmcBEAR/pmcUSEC) added as enemies to */ [JsonPropertyName("botsToNotAddPMCsAsEnemiesTo")] public List BotsToNotAddPMCsAsEnemiesTo { get; set; } - + /** What bot types should be classified as bosses */ [JsonPropertyName("bosses")] public List Bosses { get; set; } - + /** Control weapon/armor durability min/max values for each bot type */ [JsonPropertyName("durability")] public BotDurability Durability { get; set; } - + /** Controls the percentage values of randomization item resources */ [JsonPropertyName("lootItemResourceRandomization")] public Dictionary LootItemResourceRandomization { get; set; } - + /** Control what bots are added to a bots revenge list key: bottype, value: bottypes to revenge on seeing their death */ [JsonPropertyName("revenge")] public Dictionary> Revenge { get; set; } - + /** Control how many items are allowed to spawn on a bot * key: bottype, value: */ [JsonPropertyName("itemSpawnLimits")] public Dictionary> ItemSpawnLimits { get; set; } - + /** Blacklist/whitelist items on a bot */ [JsonPropertyName("equipment")] public Dictionary Equipment { get; set; } - + /** Show a bots botType value after their name */ [JsonPropertyName("showTypeInNickname")] public bool ShowTypeInNickname { get; set; } - + /** What ai brain should a normal scav use per map */ [JsonPropertyName("assaultBrainType")] public Dictionary> AssaultBrainType { get; set; } - + /** What ai brain should a player scav use per map */ [JsonPropertyName("playerScavBrainType")] public Dictionary> PlayerScavBrainType { get; set; } - + /** Max number of bots that can be spawned in a raid at any one time */ [JsonPropertyName("maxBotCap")] public Dictionary MaxBotCap { get; set; } - + /** Chance scav has fake pscav name e.g. Scav name (player name) */ [JsonPropertyName("chanceAssaultScavHasPlayerScavName")] public int ChanceAssaultScavHasPlayerScavName { get; set; } - + /** How many stacks of secret ammo should a bot have in its bot secure container */ [JsonPropertyName("secureContainerAmmoStackCount")] public int SecureContainerAmmoStackCount { get; set; } - + /** Bot roles in this array will be given a dog tag on generation */ [JsonPropertyName("botRolesWithDogTags")] public List BotRolesWithDogTags { get; set; } - + /** Settings to control the items that get added into wallets on bots */ [JsonPropertyName("walletLoot")] public WalletLootSettings WalletLoot { get; set; } - + /** Currency weights, Keyed by botrole / currency */ [JsonPropertyName("currencyStackSize")] public Dictionary>> CurrencyStackSize { get; set; } - + /** Tpls for low profile gas blocks */ [JsonPropertyName("lowProfileGasBlockTpls")] public List LowProfileGasBlockTpls { get; set; } - + /** What bottypes should be excluded from having loot generated on them (backpack/pocket/vest) does not disable food/drink/special/ */ [JsonPropertyName("disableLootOnBotTypes")] public List DisableLootOnBotTypes { get; set; } - + [JsonPropertyName("assaultToBossConversion")] public AssaultToBossConversion AssaultToBossConversion { get; set; } - + /** Max length a bots name can be */ [JsonPropertyName("botNameLengthLimit")] public int BotNameLengthLimit { get; set; } - + /** Bot roles that must have a unique name when generated vs other bots in raid */ [JsonPropertyName("botRolesThatMustHaveUniqueName")] public List BotRolesThatMustHaveUniqueName { get; set; } @@ -103,10 +103,10 @@ public class AssaultToBossConversion { [JsonPropertyName("bossConvertEnabled")] public bool BossConvertEnabled { get; set; } - + [JsonPropertyName("bossesToConvertToWeights")] public Dictionary BossesToConvertToWeights { get; set; } - + [JsonPropertyName("bossConvertMinMax")] public Dictionary BossConvertMinMax { get; set; } } @@ -116,109 +116,109 @@ public class PresetBatch { [JsonPropertyName("assault")] public int Assault { get; set; } - + [JsonPropertyName("bossBully")] public int BossBully { get; set; } - + [JsonPropertyName("bossGluhar")] public int BossGluhar { get; set; } - + [JsonPropertyName("bossKilla")] public int BossKilla { get; set; } - + [JsonPropertyName("bossKojaniy")] public int BossKojaniy { get; set; } - + [JsonPropertyName("bossSanitar")] public int BossSanitar { get; set; } - + [JsonPropertyName("bossTagilla")] public int BossTagilla { get; set; } - + [JsonPropertyName("bossKnight")] public int BossKnight { get; set; } - + [JsonPropertyName("bossTest")] public int BossTest { get; set; } - + [JsonPropertyName("cursedAssault")] public int CursedAssault { get; set; } - + [JsonPropertyName("followerBully")] public int FollowerBully { get; set; } - + [JsonPropertyName("followerGluharAssault")] public int FollowerGluharAssault { get; set; } - + [JsonPropertyName("followerGluharScout")] public int FollowerGluharScout { get; set; } - + [JsonPropertyName("followerGluharSecurity")] public int FollowerGluharSecurity { get; set; } - + [JsonPropertyName("followerGluharSnipe")] public int FollowerGluharSnipe { get; set; } - + [JsonPropertyName("followerKojaniy")] public int FollowerKojaniy { get; set; } - + [JsonPropertyName("followerSanitar")] public int FollowerSanitar { get; set; } - + [JsonPropertyName("followerTagilla")] public int FollowerTagilla { get; set; } - + [JsonPropertyName("followerBirdEye")] public int FollowerBirdEye { get; set; } - + [JsonPropertyName("followerBigPipe")] public int FollowerBigPipe { get; set; } - + [JsonPropertyName("followerTest")] public int FollowerTest { get; set; } - + [JsonPropertyName("followerBoar")] public int FollowerBoar { get; set; } - + [JsonPropertyName("marksman")] public int Marksman { get; set; } - + [JsonPropertyName("pmcBot")] public int PmcBot { get; set; } - + [JsonPropertyName("sectantPriest")] public int SectantPriest { get; set; } - + [JsonPropertyName("sectantWarrior")] public int SectantWarrior { get; set; } - + [JsonPropertyName("gifter")] public int Gifter { get; set; } - + [JsonPropertyName("test")] public int Test { get; set; } - + [JsonPropertyName("exUsec")] public int ExUsec { get; set; } - + [JsonPropertyName("arenaFighterEvent")] public int ArenaFighterEvent { get; set; } - + [JsonPropertyName("arenaFighter")] public int ArenaFighter { get; set; } - + [JsonPropertyName("crazyAssaultEvent")] public int CrazyAssaultEvent { get; set; } - + [JsonPropertyName("bossBoar")] public int BossBoar { get; set; } - + [JsonPropertyName("bossBoarSniper")] public int BossBoarSniper { get; set; } - + [JsonPropertyName("pmcUSEC")] public int PmcUSEC { get; set; } - + [JsonPropertyName("pmcBEAR")] public int PmcBEAR { get; set; } } @@ -230,16 +230,16 @@ public class WalletLootSettings /// [JsonPropertyName("chancePercent")] public float ChancePercent { get; set; } - + [JsonPropertyName("itemCount")] public MinMax ItemCount { get; set; } - + [JsonPropertyName("stackSizeWeight")] public Dictionary StackSizeWeight { get; set; } - + [JsonPropertyName("currencyWeight")] public Dictionary CurrencyWeight { get; set; } - + /// /// What wallets will have money in them /// @@ -254,103 +254,103 @@ public class EquipmentFilters /// [JsonPropertyName("weaponModLimits")] public ModLimits WeaponModLimits { get; set; } - + /// /// Whitelist for weapon sight types allowed per gun /// [JsonPropertyName("weaponSightWhitelist")] public Dictionary> WeaponSightWhitelist { get; set; } - + /// /// Chance face shield is down/active /// [JsonPropertyName("faceShieldIsActiveChancePercent")] public float? FaceShieldIsActiveChancePercent { get; set; } - + /// /// Chance gun flashlight is active during the day /// [JsonPropertyName("lightIsActiveDayChancePercent")] public float? LightIsActiveDayChancePercent { get; set; } - + /// /// Chance gun flashlight is active during the night /// [JsonPropertyName("lightIsActiveNightChancePercent")] public float? LightIsActiveNightChancePercent { get; set; } - + /// /// Chance gun laser is active during the day /// [JsonPropertyName("laserIsActiveChancePercent")] public float? LaserIsActiveChancePercent { get; set; } - + /// /// Chance NODS are down/active during the day /// [JsonPropertyName("NvgIsActiveChanceDayPercent")] public float? NvgIsActiveChanceDayPercent { get; set; } - + /// /// Chance NODS are down/active during the night /// [JsonPropertyName("nvgIsActiveChanceNightPercent")] public float? NvgIsActiveChanceNightPercent { get; set; } - + [JsonPropertyName("forceOnlyArmoredRigWhenNoArmor")] public bool? ForceOnlyArmoredRigWhenNoArmor { get; set; } - + /// /// Should plates be filtered by level /// [JsonPropertyName("filterPlatesByLevel")] public bool? FilterPlatesByLevel { get; set; } - + /// /// What additional slot ids should be seen as required when choosing a mod to add to a weapon /// [JsonPropertyName("weaponSlotIdsToMakeRequired")] public List? WeaponSlotIdsToMakeRequired { get; set; } - + /// /// Adjust weighting/chances of items on bot by level of bot /// [JsonPropertyName("randomisation")] public List Randomisation { get; set; } - + /// /// Blacklist equipment by level of bot /// [JsonPropertyName("blacklist")] public List Blacklist { get; set; } - + /// /// Whitelist equipment by level of bot /// [JsonPropertyName("whitelist")] public List Whitelist { get; set; } - + /// /// Adjust equipment/ammo /// [JsonPropertyName("weightingAdjustmentsByBotLevel")] public List WeightingAdjustmentsByBotLevel { get; set; } - + /// /// Same as weightingAdjustments but based on player level instead of bot level /// [JsonPropertyName("weightingAdjustmentsByPlayerLevel")] public List? WeightingAdjustmentsByPlayerLevel { get; set; } - + /// /// Should the stock mod be forced to spawn on bot /// [JsonPropertyName("forceStock")] public bool? ForceStock { get; set; } - + [JsonPropertyName("armorPlateWeighting")] public List? ArmorPlateWeighting { get; set; } - + [JsonPropertyName("forceRigWhenNoVest")] public bool? ForceRigWhenNoVest { get; set; } } @@ -362,7 +362,7 @@ public class ModLimits /// [JsonPropertyName("scopeLimit")] public int? ScopeLimit { get; set; } - + /// /// How many lasers or lights are allowed on a weapon - hard coded to work with TACTICAL_COMBO, and FLASHLIGHT /// @@ -377,43 +377,43 @@ public class RandomisationDetails /// [JsonPropertyName("levelRange")] public MinMax LevelRange { get; set; } - + [JsonPropertyName("generation")] public Dictionary? Generation { get; set; } - + /// /// Mod slots that should be fully randomised -ignores mods from bottype.json and instead creates a pool using items.json /// [JsonPropertyName("randomisedWeaponModSlots")] public List? RandomisedWeaponModSlots { get; set; } - + /// /// Armor slots that should be randomised e.g. 'Headwear, Armband' /// [JsonPropertyName("randomisedArmorSlots")] public List? RandomisedArmorSlots { get; set; } - + /// /// Equipment chances /// [JsonPropertyName("equipment")] public Dictionary? Equipment { get; set; } - + /// /// Weapon mod chances /// [JsonPropertyName("weaponMods")] public Dictionary? WeaponMods { get; set; } - + /// /// Equipment mod chances /// [JsonPropertyName("equipmentMods")] public Dictionary? EquipmentMods { get; set; } - + [JsonPropertyName("nighttimeChanges")] public NighttimeChanges? NighttimeChanges { get; set; } - + /// /// Key = weapon tpl, value = min size of magazine allowed /// @@ -438,19 +438,19 @@ public class EquipmentFilterDetails /// [JsonPropertyName("levelRange")] public MinMax LevelRange { get; set; } - + /// /// Key: mod slot name e.g. mod_magazine, value: item tpls /// [JsonPropertyName("equipment")] public Dictionary>? Equipment { get; set; } - + /// /// Key: equipment slot name e.g. FirstPrimaryWeapon, value: item tpls /// [JsonPropertyName("gear")] public Dictionary>? Gear { get; set; } - + /// /// Key: cartridge type e.g. Caliber23x75, value: item tpls /// @@ -465,19 +465,19 @@ public class WeightingAdjustmentDetails /// [JsonPropertyName("levelRange")] public MinMax LevelRange { get; set; } - + /// /// Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight /// [JsonPropertyName("ammo")] public AdjustmentDetails? Ammo { get; set; } - + /// /// Key: equipment slot e.g. TacticalVest, value: item tpl + weight /// [JsonPropertyName("equipment")] public AdjustmentDetails? Equipment { get; set; } - + /// /// Key: clothing slot e.g. feet, value: item tpl + weight /// @@ -489,7 +489,7 @@ public class AdjustmentDetails { [JsonPropertyName("add")] public Dictionary> Add { get; set; } - + [JsonPropertyName("edit")] public Dictionary> Edit { get; set; } } @@ -504,7 +504,7 @@ public class RandomisedResourceDetails { [JsonPropertyName("food")] public RandomisedResourceValues Food { get; set; } - + [JsonPropertyName("meds")] public RandomisedResourceValues Meds { get; set; } } @@ -516,7 +516,7 @@ public class RandomisedResourceValues /// [JsonPropertyName("resourcePercent")] public float ResourcePercent { get; set; } - + /// /// Chance for randomization to not occur /// diff --git a/Core/Models/Spt/Config/BotDurability.cs b/Core/Models/Spt/Config/BotDurability.cs index f6c06dd8..c4cd51f7 100644 --- a/Core/Models/Spt/Config/BotDurability.cs +++ b/Core/Models/Spt/Config/BotDurability.cs @@ -2,7 +2,7 @@ namespace Core.Models.Spt.Config; -public class BotDurability +public class BotDurability { [JsonPropertyName("default")] public DefaultDurability Default { get; set; } @@ -51,7 +51,7 @@ public class BotDurability } /** Durability values to be used when a more specific bot type can't be found */ -public class DefaultDurability +public class DefaultDurability { [JsonPropertyName("armor")] public ArmorDurability Armor { get; set; } @@ -60,7 +60,7 @@ public class DefaultDurability public WeaponDurability Weapon { get; set; } } -public class PmcDurability +public class PmcDurability { [JsonPropertyName("armor")] public PmcDurabilityArmor Armor { get; set; } @@ -69,7 +69,7 @@ public class PmcDurability public WeaponDurability Weapon { get; set; } } -public class PmcDurabilityArmor +public class PmcDurabilityArmor { [JsonPropertyName("lowestMaxPercent")] public double LowestMaxPercent { get; set; } @@ -84,7 +84,7 @@ public class PmcDurabilityArmor public double MinDelta { get; set; } } -public class ArmorDurability +public class ArmorDurability { [JsonPropertyName("maxDelta")] public double MaxDelta { get; set; } @@ -96,7 +96,7 @@ public class ArmorDurability public double MinLimitPercent { get; set; } } -public class WeaponDurability +public class WeaponDurability { [JsonPropertyName("lowestMax")] public double LowestMax { get; set; } diff --git a/Core/Models/Spt/Config/HideoutConfig.cs b/Core/Models/Spt/Config/HideoutConfig.cs index 29c1ab78..74e3060b 100644 --- a/Core/Models/Spt/Config/HideoutConfig.cs +++ b/Core/Models/Spt/Config/HideoutConfig.cs @@ -22,13 +22,13 @@ public class HideoutConfig : BaseConfig [JsonPropertyName("hoursForSkillCrafting")] public int HoursForSkillCrafting { get; set; } - + [JsonPropertyName("expCraftAmount")] public int ExpCraftAmount { get; set; } - + [JsonPropertyName("overrideCraftTimeSeconds")] public int OverrideCraftTimeSeconds { get; set; } - + [JsonPropertyName("overrideBuildTimeSeconds")] public int OverrideBuildTimeSeconds { get; set; } @@ -46,10 +46,10 @@ public class CultistCircleSettings { [JsonPropertyName("maxRewardItemCount")] public int MaxRewardItemCount { get; set; } - + [JsonPropertyName("maxAttemptsToPickRewardsWithinBudget")] public int MaxAttemptsToPickRewardsWithinBudget { get; set; } - + [JsonPropertyName("rewardPriceMultiplerMinMax")] public MinMax RewardPriceMultiplerMinMax { get; set; } @@ -58,7 +58,7 @@ public class CultistCircleSettings /// [JsonPropertyName("bonusAmountMultiplier")] public double BonusAmountMultiplier { get; set; } - + [JsonPropertyName("bonusChanceMultiplier")] public double BonusChanceMultiplier { get; set; } @@ -79,10 +79,10 @@ public class CultistCircleSettings /// [JsonPropertyName("hideoutCraftSacrificeThresholdRub")] public int HideoutCraftSacrificeThresholdRub { get; set; } - + [JsonPropertyName("craftTimeThreshholds")] public List CraftTimeThreshholds { get; set; } - + /// /// -1 means no override, value in seconds /// @@ -127,10 +127,10 @@ public class DirectRewardSettings { [JsonPropertyName("reward")] public List Reward { get; set; } - + [JsonPropertyName("requiredItems")] public List RequiredItems { get; set; } - + [JsonPropertyName("craftTimeSeconds")] public int CraftTimeSeconds { get; set; } diff --git a/Core/Models/Spt/Config/InventoryConfig.cs b/Core/Models/Spt/Config/InventoryConfig.cs index 58ae9cb4..1e16431d 100644 --- a/Core/Models/Spt/Config/InventoryConfig.cs +++ b/Core/Models/Spt/Config/InventoryConfig.cs @@ -7,25 +7,25 @@ public class InventoryConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-inventory"; - + /** Should new items purchased by flagged as found in raid */ [JsonPropertyName("newItemsMarkedFound")] public bool NewItemsMarkedFound { get; set; } - + [JsonPropertyName("randomLootContainers")] public Dictionary RandomLootContainers { get; set; } - + [JsonPropertyName("sealedAirdropContainer")] public SealedAirdropContainerSettings SealedAirdropContainer { get; set; } - + /** Contains item tpls that the server should consider money and treat the same as roubles/euros/dollars */ [JsonPropertyName("customMoneyTpls")] public List CustomMoneyTpls { get; set; } - + /** Multipliers for skill gain when inside menus, NOT in-game */ [JsonPropertyName("skillGainMultiplers")] public Dictionary SkillGainMultipliers { get; set; } - + /** Container Tpls that should be deprioritised when choosing where to take money from for payments */ [JsonPropertyName("deprioritisedMoneyContainers")] public List DeprioritisedMoneyContainers { get; set; } @@ -35,13 +35,13 @@ public class RewardDetails { [JsonPropertyName("rewardCount")] public int RewardCount { get; set; } - + [JsonPropertyName("foundInRaid")] public bool FoundInRaid { get; set; } - + [JsonPropertyName("rewardTplPool")] public Dictionary? RewardTplPool { get; set; } - + [JsonPropertyName("rewardTypePool")] public List? RewardTypePool { get; set; } } @@ -50,23 +50,23 @@ public class SealedAirdropContainerSettings { [JsonPropertyName("weaponRewardWeight")] public Dictionary WeaponRewardWeight { get; set; } - + [JsonPropertyName("defaultPresetsOnly")] public bool DefaultPresetsOnly { get; set; } - + /** Should contents be flagged as found in raid when opened */ [JsonPropertyName("foundInRaid")] public bool FoundInRaid { get; set; } - + [JsonPropertyName("weaponModRewardLimits")] public Dictionary WeaponModRewardLimits { get; set; } - + [JsonPropertyName("rewardTypeLimits")] public Dictionary RewardTypeLimits { get; set; } - + [JsonPropertyName("ammoBoxWhitelist")] public List AmmoBoxWhitelist { get; set; } - + [JsonPropertyName("allowBossItems")] public bool AllowBossItems { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/LocaleConfig.cs b/Core/Models/Spt/Config/LocaleConfig.cs index 9e6bc230..6aae0e41 100644 --- a/Core/Models/Spt/Config/LocaleConfig.cs +++ b/Core/Models/Spt/Config/LocaleConfig.cs @@ -6,7 +6,7 @@ public class LocaleConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-locale"; - + /** e.g. ru/en/cn/fr etc, or 'system', will take computer locale setting */ [JsonPropertyName("gameLocale")] public string GameLocale { get; set; } diff --git a/Core/Models/Spt/Config/LocationConfig.cs b/Core/Models/Spt/Config/LocationConfig.cs index 595d6d5f..4ea124c4 100644 --- a/Core/Models/Spt/Config/LocationConfig.cs +++ b/Core/Models/Spt/Config/LocationConfig.cs @@ -23,7 +23,7 @@ public class LocationConfig : BaseConfig [JsonPropertyName("looseLootMultiplier")] public LootMultiplier LooseLootMultiplier { get; set; } - + [JsonPropertyName("staticLootMultiplier")] public LootMultiplier StaticLootMultiplier { get; set; } @@ -74,7 +74,7 @@ public class LocationConfig : BaseConfig /// [JsonPropertyName("botTypeLimits")] public Dictionary> BotTypeLimits { get; set; } - + /// /// Container randomisation settings /// @@ -143,7 +143,7 @@ public class ReserveRaiderSpawnChanceOverrides { [JsonPropertyName("nonTriggered")] public int NonTriggered { get; set; } - + [JsonPropertyName("triggered")] public int Triggered { get; set; } } @@ -159,7 +159,7 @@ public class FixEmptyBotWavesSettings { [JsonPropertyName("enabled")] public bool Enabled { get; set; } - + [JsonPropertyName("ignoreMaps")] public List IgnoreMaps { get; set; } } @@ -168,7 +168,7 @@ public class RogueLighthouseSpawnTimeSettings { [JsonPropertyName("enabled")] public bool Enabled { get; set; } - + [JsonPropertyName("waitTimeSeconds")] public int WaitTimeSeconds { get; set; } } @@ -177,10 +177,10 @@ public class SplitWaveSettings { [JsonPropertyName("enabled")] public bool Enabled { get; set; } - + [JsonPropertyName("ignoreMaps")] public List IgnoreMaps { get; set; } - + [JsonPropertyName("waveSizeThreshold")] public int WaveSizeThreshold { get; set; } } @@ -190,7 +190,7 @@ public class CustomWaves /** Bosses spawn on raid start */ [JsonPropertyName("boss")] public Dictionary> Boss { get; set; } - + [JsonPropertyName("normal")] public Dictionary> Normal { get; set; } } @@ -206,52 +206,52 @@ public class LootMultiplier { [JsonPropertyName("bigmap")] public double BigMap { get; set; } - + [JsonPropertyName("develop")] public double Develop { get; set; } - + [JsonPropertyName("factory4_day")] public double Factory4Day { get; set; } - + [JsonPropertyName("factory4_night")] public double Factory4Night { get; set; } - + [JsonPropertyName("interchange")] public double Interchange { get; set; } - + [JsonPropertyName("laboratory")] public double Laboratory { get; set; } - + [JsonPropertyName("rezervbase")] public double RezervBase { get; set; } - + [JsonPropertyName("shoreline")] public double Shoreline { get; set; } - + [JsonPropertyName("woods")] public double Woods { get; set; } - + [JsonPropertyName("hideout")] public double Hideout { get; set; } - + [JsonPropertyName("lighthouse")] public double Lighthouse { get; set; } - + [JsonPropertyName("privatearea")] public double PrivateArea { get; set; } - + [JsonPropertyName("suburbs")] public double Suburbs { get; set; } - + [JsonPropertyName("tarkovstreets")] public double TarkovStreets { get; set; } - + [JsonPropertyName("terminal")] public double Terminal { get; set; } - + [JsonPropertyName("town")] public double Town { get; set; } - + [JsonPropertyName("sandbox")] public double Sandbox { get; set; } } @@ -260,18 +260,18 @@ public class ContainerRandomisationSettings { [JsonPropertyName("enabled")] public bool Enabled { get; set; } - + /** What maps can use the container randomisation feature */ [JsonPropertyName("maps")] public Dictionary Maps { get; set; } - + /** Some container types don't work when randomised */ [JsonPropertyName("containerTypesToNotRandomise")] public List ContainerTypesToNotRandomise { get; set; } - + [JsonPropertyName("containerGroupMinSizeMultiplier")] public double ContainerGroupMinSizeMultiplier { get; set; } - + [JsonPropertyName("containerGroupMaxSizeMultiplier")] public double ContainerGroupMaxSizeMultiplier { get; set; } } @@ -280,7 +280,7 @@ public class ScavRaidTimeSettings { [JsonPropertyName("settings")] public ScavRaidTimeConfigSettings Settings { get; set; } - + [JsonPropertyName("maps")] public Dictionary Maps { get; set; } } @@ -296,23 +296,23 @@ public class ScavRaidTimeLocationSettings /** Should loot be reduced by same percent length of raid is reduced by */ [JsonPropertyName("reduceLootByPercent")] public bool ReduceLootByPercent { get; set; } - + /** Smallest % of container loot that should be spawned */ [JsonPropertyName("minStaticLootPercent")] public double MinStaticLootPercent { get; set; } - + /** Smallest % of loose loot that should be spawned */ [JsonPropertyName("minDynamicLootPercent")] public double MinDynamicLootPercent { get; set; } - + /** Chance raid time is reduced */ [JsonPropertyName("reducedChancePercent")] public double ReducedChancePercent { get; set; } - + /** How much should raid time be reduced - weighted */ [JsonPropertyName("reductionPercentWeights")] public Dictionary ReductionPercentWeights { get; set; } - + /** Should bot waves be removed / spawn times be adjusted */ [JsonPropertyName("adjustWaves")] public bool AdjustWaves { get; set; } diff --git a/Core/Models/Spt/Config/LostOnDeathConfig.cs b/Core/Models/Spt/Config/LostOnDeathConfig.cs index 9803f6ef..19176c31 100644 --- a/Core/Models/Spt/Config/LostOnDeathConfig.cs +++ b/Core/Models/Spt/Config/LostOnDeathConfig.cs @@ -6,15 +6,15 @@ public class LostOnDeathConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-lostondeath"; - + /** What equipment in each slot should be lost on death */ [JsonPropertyName("equipment")] public LostEquipment Equipment { get; set; } - + /** Should special slot items be removed from quest inventory on death e.g. wifi camera/markers */ [JsonPropertyName("specialSlotItems")] public bool SpecialSlotItems { get; set; } - + /** Should quest items be removed from quest inventory on death */ [JsonPropertyName("questItems")] public bool QuestItems { get; set; } @@ -24,40 +24,40 @@ public class LostEquipment { [JsonPropertyName("ArmBand")] public bool ArmBand { get; set; } - + [JsonPropertyName("Headwear")] public bool Headwear { get; set; } - + [JsonPropertyName("Earpiece")] public bool Earpiece { get; set; } - + [JsonPropertyName("FaceCover")] public bool FaceCover { get; set; } - + [JsonPropertyName("ArmorVest")] public bool ArmorVest { get; set; } - + [JsonPropertyName("Eyewear")] public bool Eyewear { get; set; } - + [JsonPropertyName("TacticalVest")] public bool TacticalVest { get; set; } - + [JsonPropertyName("PocketItems")] public bool PocketItems { get; set; } - + [JsonPropertyName("Backpack")] public bool Backpack { get; set; } - + [JsonPropertyName("Holster")] public bool Holster { get; set; } - + [JsonPropertyName("FirstPrimaryWeapon")] public bool FirstPrimaryWeapon { get; set; } - + [JsonPropertyName("SecondPrimaryWeapon")] public bool SecondPrimaryWeapon { get; set; } - + [JsonPropertyName("Scabbard")] public bool Scabbard { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/MatchConfig.cs b/Core/Models/Spt/Config/MatchConfig.cs index 45a9ce58..46807fe3 100644 --- a/Core/Models/Spt/Config/MatchConfig.cs +++ b/Core/Models/Spt/Config/MatchConfig.cs @@ -6,7 +6,7 @@ public class MatchConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-match"; - + [JsonPropertyName("enabled")] public bool Enabled { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/PmcConfig.cs b/Core/Models/Spt/Config/PmcConfig.cs index 89149ee8..a7afabd0 100644 --- a/Core/Models/Spt/Config/PmcConfig.cs +++ b/Core/Models/Spt/Config/PmcConfig.cs @@ -9,100 +9,100 @@ public class PmcConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-pmc"; - + /** What game version should the PMC have */ [JsonPropertyName("gameVersionWeight")] public Dictionary GameVersionWeight { get; set; } - + /** What account type should the PMC have */ [JsonPropertyName("accountTypeWeight")] public Dictionary AccountTypeWeight { get; set; } - + /** Global whitelist/blacklist of vest loot for PMCs */ [JsonPropertyName("vestLoot")] public SlotLootSettings VestLoot { get; set; } - + /** Global whitelist/blacklist of pocket loot for PMCs */ [JsonPropertyName("pocketLoot")] public SlotLootSettings PocketLoot { get; set; } - + /** Global whitelist/blacklist of backpack loot for PMCs */ [JsonPropertyName("backpackLoot")] public SlotLootSettings BackpackLoot { get; set; } - + [JsonPropertyName("globalLootBlacklist")] public List GlobalLootBlacklist { get; set; } - + /** Use difficulty defined in config/bot.json/difficulty instead of chosen difficulty dropdown value */ [JsonPropertyName("useDifficultyOverride")] public bool UseDifficultyOverride { get; set; } - + /** Difficulty override e.g. "AsOnline/Hard" */ [JsonPropertyName("difficulty")] public string Difficulty { get; set; } - + /** Chance out of 100 to have a complete gun in backpack */ [JsonPropertyName("looseWeaponInBackpackChancePercent")] public double LooseWeaponInBackpackChancePercent { get; set; } - + /** Chance out of 100 to have an enhancement applied to PMC weapon */ [JsonPropertyName("weaponHasEnhancementChancePercent")] public double WeaponHasEnhancementChancePercent { get; set; } - + /** MinMax count of weapons to have in backpack */ [JsonPropertyName("looseWeaponInBackpackLootMinMax")] public MinMax LooseWeaponInBackpackLootMinMax { get; set; } - + /** Percentage chance PMC will be USEC */ [JsonPropertyName("isUsec")] public double IsUsec { get; set; } - + /** WildSpawnType enum value USEC PMCs use */ [JsonPropertyName("usecType")] public string UsecType { get; set; } - + /** WildSpawnType enum value BEAR PMCs use */ [JsonPropertyName("bearType")] public string BearType { get; set; } - + /** What 'brain' does a PMC use, keyed by map and side (USEC/BEAR) key: map location, value: type for usec/bear */ [JsonPropertyName("pmcType")] public Dictionary>> PmcType { get; set; } - + [JsonPropertyName("maxBackpackLootTotalRub")] public List MaxBackpackLootTotalRub { get; set; } - + [JsonPropertyName("maxPocketLootTotalRub")] public double MaxPocketLootTotalRub { get; set; } - + [JsonPropertyName("maxVestLootTotalRub")] public double MaxVestLootTotalRub { get; set; } - + /** Percentage chance a bot from a wave is converted into a PMC, first key = map, second key = bot wildspawn type (assault/exusec), value: min+max chance to be converted */ [JsonPropertyName("convertIntoPmcChance")] public Dictionary> ConvertIntoPmcChance { get; set; } - + /** How many levels above player level can a PMC be */ [JsonPropertyName("botRelativeLevelDeltaMax")] public double BotRelativeLevelDeltaMax { get; set; } - + /** How many levels below player level can a PMC be */ [JsonPropertyName("botRelativeLevelDeltaMin")] public double BotRelativeLevelDeltaMin { get; set; } - + /** Force a number of healing items into PMCs secure container to ensure they can heal */ [JsonPropertyName("forceHealingItemsIntoSecure")] public bool ForceHealingItemsIntoSecure { get; set; } - + [JsonPropertyName("hostilitySettings")] public Dictionary HostilitySettings { get; set; } - + [JsonPropertyName("allPMCsHavePlayerNameWithRandomPrefixChance")] public double AllPMCsHavePlayerNameWithRandomPrefixChance { get; set; } - + [JsonPropertyName("locationSpecificPmcLevelOverride")] public Dictionary LocationSpecificPmcLevelOverride { get; set; } - + /** Should secure container loot from usec.json/bear.json be added to pmc bots secure */ [JsonPropertyName("addSecureContainerLootFromBotConfig")] public bool AddSecureContainerLootFromBotConfig { get; set; } @@ -113,24 +113,24 @@ public class HostilitySettings /** Bot roles that are 100% an enemy */ [JsonPropertyName("additionalEnemyTypes")] public List? AdditionalEnemyTypes { get; set; } - + /** Objects that determine the % chance another bot type is an enemy */ [JsonPropertyName("chancedEnemies")] public List? ChancedEnemies { get; set; } - + [JsonPropertyName("bearEnemyChance")] public double? BearEnemyChance { get; set; } - + [JsonPropertyName("usecEnemyChance")] public double? UsecEnemyChance { get; set; } - + [JsonPropertyName("savageEnemyChance")] public double? SavageEnemyChance { get; set; } - + /** Bot roles that are 100% a friendly */ [JsonPropertyName("additionalFriendlyTypes")] public List? AdditionalFriendlyTypes { get; set; } - + [JsonPropertyName("savagePlayerBehaviour")] public string? SavagePlayerBehaviour { get; set; } } @@ -139,7 +139,7 @@ public class PmcTypes { [JsonPropertyName("usec")] public string Usec { get; set; } - + [JsonPropertyName("bear")] public string Bear { get; set; } } @@ -149,7 +149,7 @@ public class SlotLootSettings /** Item Type whitelist */ [JsonPropertyName("whitelist")] public List Whitelist { get; set; } - + /** Item tpl blacklist */ [JsonPropertyName("blacklist")] public List Blacklist { get; set; } diff --git a/Core/Models/Spt/Config/SeasonalEventConfig.cs b/Core/Models/Spt/Config/SeasonalEventConfig.cs index 368a205f..81eb8aa7 100644 --- a/Core/Models/Spt/Config/SeasonalEventConfig.cs +++ b/Core/Models/Spt/Config/SeasonalEventConfig.cs @@ -8,40 +8,40 @@ public class SeasonalEventConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-seasonalevents"; - + [JsonPropertyName("enableSeasonalEventDetection")] public bool EnableSeasonalEventDetection { get; set; } - + /** event / botType / equipSlot / itemid */ [JsonPropertyName("eventGear")] public Dictionary>>> EventGear { get; set; } - + /** event / bot type / equipSlot / itemid */ [JsonPropertyName("eventLoot")] public Dictionary>>> EventLoot { get; set; } - + public List Events { get; set; } - + [JsonPropertyName("eventBotMapping")] public Dictionary EventBotMapping { get; set; } - + [JsonPropertyName("eventBossSpawns")] public Dictionary>> EventBossSpawns { get; set; } - + [JsonPropertyName("eventWaves")] public Dictionary>> EventWaves { get; set; } - + [JsonPropertyName("gifterSettings")] public List GifterSettings { get; set; } - + /** key = event, second key = map name */ [JsonPropertyName("hostilitySettingsForEvent")] public Dictionary>> HostilitySettingsForEvent { get; set; } - + /** Ids of containers on locations that only have christmas loot */ [JsonPropertyName("christmasContainerIds")] public List ChristmasContainerIds { get; set; } - + /** Season - botType - location (body/feet/hands/head) */ [JsonPropertyName("botAppearanceChanges")] public Dictionary>>> BotAppearanceChanges { get; set; } @@ -51,25 +51,25 @@ public class SeasonalEvent { [JsonPropertyName("enabled")] public bool Enabled { get; set; } - + [JsonPropertyName("name")] public string Name { get; set; } - + [JsonPropertyName("type")] public SeasonalEventType Type { get; set; } - + [JsonPropertyName("startDay")] public int StartDay { get; set; } - + [JsonPropertyName("startMonth")] public int StartMonth { get; set; } - + [JsonPropertyName("endDay")] public int EndDay { get; set; } - + [JsonPropertyName("endMonth")] public int EndMonth { get; set; } - + [JsonPropertyName("settings")] public Dictionary Settings { get; set; } // TODO: Type was Record } @@ -84,10 +84,10 @@ public class ZombieSettings : SeasonalEventSettings { [JsonPropertyName("mapInfectionAmount")] public Dictionary MapInfectionAmount { get; set; } - + [JsonPropertyName("disableBosses")] public List DisableBosses { get; set; } - + [JsonPropertyName("disableWaves")] public List DisableWaves { get; set; } } @@ -96,10 +96,10 @@ public class GifterSetting { [JsonPropertyName("map")] public string Map { get; set; } - + [JsonPropertyName("zones")] public string Zones { get; set; } - + [JsonPropertyName("spawnChance")] public int SpawnChance { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Config/TraderConfig.cs b/Core/Models/Spt/Config/TraderConfig.cs index f08de277..f565ee92 100644 --- a/Core/Models/Spt/Config/TraderConfig.cs +++ b/Core/Models/Spt/Config/TraderConfig.cs @@ -8,26 +8,26 @@ public class TraderConfig : BaseConfig { [JsonPropertyName("kind")] public string Kind { get; set; } = "spt-trader"; - + [JsonPropertyName("updateTime")] public List UpdateTime { get; set; } - + [JsonPropertyName("updateTimeDefault")] public int UpdateTimeDefault { get; set; } - + [JsonPropertyName("purchasesAreFoundInRaid")] public bool PurchasesAreFoundInRaid { get; set; } - + /** Should trader reset times be set based on server start time (false = bsg time - on the hour) */ [JsonPropertyName("tradersResetFromServerStart")] public bool TradersResetFromServerStart { get; set; } - + [JsonPropertyName("traderPriceMultipler")] public double TraderPriceMultipler { get; set; } - + [JsonPropertyName("fence")] public FenceConfig Fence { get; set; } - + [JsonPropertyName("moddedTraders")] public ModdedTraders ModdedTraders { get; set; } } @@ -36,7 +36,7 @@ public class UpdateTime { [JsonPropertyName("traderId")] public string TraderId { get; set; } - + /** Seconds between trader resets */ [JsonPropertyName("seconds")] public MinMax Seconds { get; set; } @@ -46,81 +46,81 @@ public class FenceConfig { [JsonPropertyName("discountOptions")] public DiscountOptions DiscountOptions { get; set; } - + [JsonPropertyName("partialRefreshTimeSeconds")] public int PartialRefreshTimeSeconds { get; set; } - + [JsonPropertyName("partialRefreshChangePercent")] public double PartialRefreshChangePercent { get; set; } - + [JsonPropertyName("assortSize")] public int AssortSize { get; set; } - + [JsonPropertyName("weaponPresetMinMax")] public MinMax WeaponPresetMinMax { get; set; } - + [JsonPropertyName("equipmentPresetMinMax")] public MinMax EquipmentPresetMinMax { get; set; } - + [JsonPropertyName("itemPriceMult")] public double ItemPriceMult { get; set; } - + [JsonPropertyName("presetPriceMult")] public double PresetPriceMult { get; set; } - + [JsonPropertyName("armorMaxDurabilityPercentMinMax")] public ItemDurabilityCurrentMax ArmorMaxDurabilityPercentMinMax { get; set; } - + [JsonPropertyName("weaponDurabilityPercentMinMax")] public ItemDurabilityCurrentMax WeaponDurabilityPercentMinMax { get; set; } - + /** Keyed to plate protection level */ [JsonPropertyName("chancePlateExistsInArmorPercent")] public Dictionary ChancePlateExistsInArmorPercent { get; set; } - + /** Key: item tpl */ [JsonPropertyName("itemStackSizeOverrideMinMax")] public Dictionary ItemStackSizeOverrideMinMax { get; set; } - + [JsonPropertyName("itemTypeLimits")] public Dictionary ItemTypeLimits { get; set; } - + /** Prevent duplicate offers of items of specific categories by parentId */ [JsonPropertyName("preventDuplicateOffersOfCategory")] public List PreventDuplicateOffersOfCategory { get; set; } - + [JsonPropertyName("regenerateAssortsOnRefresh")] public bool RegenerateAssortsOnRefresh { get; set; } - + /** Max rouble price before item is not listed on flea */ [JsonPropertyName("itemCategoryRoublePriceLimit")] public Dictionary ItemCategoryRoublePriceLimit { get; set; } - + /** Each slotid with % to be removed prior to listing on fence */ [JsonPropertyName("presetSlotsToRemoveChancePercent")] public Dictionary PresetSlotsToRemoveChancePercent { get; set; } - + /** Block seasonal items from appearing when season is inactive */ [JsonPropertyName("blacklistSeasonalItems")] public bool BlacklistSeasonalItems { get; set; } - + /** Max pen value allowed to be listed on flea - affects ammo + ammo boxes */ [JsonPropertyName("ammoMaxPenLimit")] public double AmmoMaxPenLimit { get; set; } - + [JsonPropertyName("blacklist")] public List Blacklist { get; set; } - + [JsonPropertyName("coopExtractGift")] public CoopExtractReward CoopExtractGift { get; set; } - + [JsonPropertyName("btrDeliveryExpireHours")] public int BtrDeliveryExpireHours { get; set; } - + /** Smallest value player rep with fence can fall to */ [JsonPropertyName("playerRepMin")] public double PlayerRepMin { get; set; } - + /** Highest value player rep with fence can climb to */ [JsonPropertyName("playerRepMax")] public double PlayerRepMax { get; set; } @@ -130,7 +130,7 @@ public class ItemDurabilityCurrentMax { [JsonPropertyName("current")] public MinMax Current { get; set; } - + [JsonPropertyName("max")] public MinMax Max { get; set; } } @@ -139,10 +139,10 @@ public class CoopExtractReward : LootRequest { [JsonPropertyName("sendGift")] public bool SendGift { get; set; } - + [JsonPropertyName("messageLocaleIds")] public List MessageLocaleIds { get; set; } - + [JsonPropertyName("giftExpiryHours")] public int GiftExpiryHours { get; set; } } @@ -151,16 +151,16 @@ public class DiscountOptions { [JsonPropertyName("assortSize")] public int AssortSize { get; set; } - + [JsonPropertyName("itemPriceMult")] public double ItemPriceMult { get; set; } - + [JsonPropertyName("presetPriceMult")] public double PresetPriceMult { get; set; } - + [JsonPropertyName("weaponPresetMinMax")] public MinMax WeaponPresetMinMax { get; set; } - + [JsonPropertyName("equipmentPresetMinMax")] public MinMax EquipmentPresetMinMax { get; set; } } diff --git a/Core/Models/Spt/Hideout/CircleCraftDetails.cs b/Core/Models/Spt/Hideout/CircleCraftDetails.cs index fc93efc1..226cc2de 100644 --- a/Core/Models/Spt/Hideout/CircleCraftDetails.cs +++ b/Core/Models/Spt/Hideout/CircleCraftDetails.cs @@ -8,13 +8,13 @@ public class CircleCraftDetails { [JsonPropertyName("time")] public int Time { get; set; } // this might not be the right "number" type - + [JsonPropertyName("rewardType")] public CircleRewardType RewardType { get; set; } - + [JsonPropertyName("rewardAmountRoubles")] public int RewardAmountRoubles { get; set; } - + [JsonPropertyName("rewardDetails")] public CraftTimeThreshhold? RewardDetails { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Hideout/Hideout.cs b/Core/Models/Spt/Hideout/Hideout.cs index 27b6d101..37d5963c 100644 --- a/Core/Models/Spt/Hideout/Hideout.cs +++ b/Core/Models/Spt/Hideout/Hideout.cs @@ -7,16 +7,16 @@ public class Hideout { [JsonPropertyName("areas")] public List Areas { get; set; } - + [JsonPropertyName("customisation")] public HideoutCustomisation Customisation { get; set; } - + [JsonPropertyName("production")] public HideoutProductionData Production { get; set; } - + [JsonPropertyName("settings")] public HideoutSettingsBase Settings { get; set; } - + [JsonPropertyName("qte")] public List Qte { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Hideout/ScavCaseRewardCountsAndPrices.cs b/Core/Models/Spt/Hideout/ScavCaseRewardCountsAndPrices.cs index 2493204e..fd46e006 100644 --- a/Core/Models/Spt/Hideout/ScavCaseRewardCountsAndPrices.cs +++ b/Core/Models/Spt/Hideout/ScavCaseRewardCountsAndPrices.cs @@ -6,10 +6,10 @@ public class ScavCaseRewardCountsAndPrices { [JsonPropertyName("Common")] public RewardCountAndPriceDetails Common { get; set; } - + [JsonPropertyName("Rare")] public RewardCountAndPriceDetails Rare { get; set; } - + [JsonPropertyName("Superrare")] public RewardCountAndPriceDetails Superrare { get; set; } } @@ -18,13 +18,13 @@ public class RewardCountAndPriceDetails { [JsonPropertyName("minCount")] public int MinCount { get; set; } - + [JsonPropertyName("maxCount")] public int MaxCount { get; set; } - + [JsonPropertyName("minPriceRub")] public int MinPriceRub { get; set; } - + [JsonPropertyName("maxPriceRub")] public int MaxPriceRub { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Inventory/OwnerInventoryItems.cs b/Core/Models/Spt/Inventory/OwnerInventoryItems.cs index 02f5e2ae..68b411b0 100644 --- a/Core/Models/Spt/Inventory/OwnerInventoryItems.cs +++ b/Core/Models/Spt/Inventory/OwnerInventoryItems.cs @@ -7,13 +7,13 @@ public class OwnerInventoryItems { [JsonPropertyName("from")] public List From { get; set; } - + [JsonPropertyName("to")] public List To { get; set; } - + [JsonPropertyName("sameInventory")] public bool SameInventory { get; set; } - + [JsonPropertyName("isMail")] public bool IsMail { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Location/RaidChanges.cs b/Core/Models/Spt/Location/RaidChanges.cs index e8a757a4..bb083474 100644 --- a/Core/Models/Spt/Location/RaidChanges.cs +++ b/Core/Models/Spt/Location/RaidChanges.cs @@ -6,10 +6,10 @@ public class RaidChanges { [JsonPropertyName("dynamicLootPercent")] public float DynamicLootPercent { get; set; } - + [JsonPropertyName("staticLootPercent")] public float StaticLootPercent { get; set; } - + [JsonPropertyName("simulatedRaidStartSeconds")] public int SimulatedRaidStartSeconds { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Logging/ClientLogRequest.cs b/Core/Models/Spt/Logging/ClientLogRequest.cs index 07f69215..2462461a 100644 --- a/Core/Models/Spt/Logging/ClientLogRequest.cs +++ b/Core/Models/Spt/Logging/ClientLogRequest.cs @@ -6,16 +6,16 @@ public class ClientLogRequest { [JsonPropertyName("Source")] public string Source { get; set; } - + [JsonPropertyName("Level")] public LogLevel Level { get; set; } - + [JsonPropertyName("Message")] public string Message { get; set; } - + [JsonPropertyName("Color")] public string? Color { get; set; } - + [JsonPropertyName("BackgroundColor")] public string? BackgroundColor { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Logging/LogBackgroundColor.cs b/Core/Models/Spt/Logging/LogBackgroundColor.cs index f5853895..422ccf91 100644 --- a/Core/Models/Spt/Logging/LogBackgroundColor.cs +++ b/Core/Models/Spt/Logging/LogBackgroundColor.cs @@ -13,4 +13,5 @@ // public const string WHITE = "whiteBG"; // } -// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing \ No newline at end of file +// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing + diff --git a/Core/Models/Spt/Logging/LogTextColor.cs b/Core/Models/Spt/Logging/LogTextColor.cs index cf7e1a20..24e01c6b 100644 --- a/Core/Models/Spt/Logging/LogTextColor.cs +++ b/Core/Models/Spt/Logging/LogTextColor.cs @@ -13,4 +13,5 @@ // public const string GRAY = "gray"; // } -// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing \ No newline at end of file +// TODO: this likely wont be used anymore, so commenting out insteaad of reimplementing + diff --git a/Core/Models/Spt/Logging/SptLogger.cs b/Core/Models/Spt/Logging/SptLogger.cs index cd4dd87c..208794c8 100644 --- a/Core/Models/Spt/Logging/SptLogger.cs +++ b/Core/Models/Spt/Logging/SptLogger.cs @@ -2,11 +2,11 @@ public class SptLogger { - public object Error { get; set; } // error: (msg: string | Record) => void; - public object Warn { get; set; } // warn: (msg: string | Record) => void; - public object Succ { get; set; } // succ?: (msg: string | Record) => void; - public object Info { get; set; } // info: (msg: string | Record) => void; - public object Debug { get; set; } // debug: (msg: string | Record) => void; + public object Error { get; set; } // error: (msg: string | Record) => void; + public object Warn { get; set; } // warn: (msg: string | Record) => void; + public object Succ { get; set; } // succ?: (msg: string | Record) => void; + public object Info { get; set; } // info: (msg: string | Record) => void; + public object Debug { get; set; } // debug: (msg: string | Record) => void; } // TODO: needs to be reimplemented however we want to do it in this project \ No newline at end of file diff --git a/Core/Models/Spt/Mod/NewItemDetails.cs b/Core/Models/Spt/Mod/NewItemDetails.cs index dde52cad..66e0c53c 100644 --- a/Core/Models/Spt/Mod/NewItemDetails.cs +++ b/Core/Models/Spt/Mod/NewItemDetails.cs @@ -14,14 +14,14 @@ public class NewItemFromCloneDetails : NewItemDetailsBase { [JsonPropertyName("itemTplToClone")] public string ItemTplToClone { get; set; } - + [JsonPropertyName("overrideProperties")] public Props OverrideProperties { get; set; } - + [JsonPropertyName("parentId")] public string ParentId { get; set; } - [JsonPropertyName("newId")] + [JsonPropertyName("newId")] public string NewId { get; set; } = ""; } @@ -29,13 +29,13 @@ public class NewItemDetailsBase { [JsonPropertyName("fleaPriceRoubles")] public float FleaPriceRoubles { get; set; } - + [JsonPropertyName("handbookPriceRoubles")] public float HandbookPriceRoubles { get; set; } - + [JsonPropertyName("handbookParentId")] public string HandbookParentId { get; set; } - + [JsonPropertyName("locales")] public Dictionary Locales { get; set; } } @@ -44,22 +44,22 @@ public class LocaleDetails { [JsonPropertyName("name")] public string Name { get; set; } - + [JsonPropertyName("shortName")] public string ShortName { get; set; } - + [JsonPropertyName("description")] public string Description { get; set; } } public class CreateItemResult { - [JsonPropertyName("success")] + [JsonPropertyName("success")] public bool Success { get; set; } - + [JsonPropertyName("itemId")] public string ItemId { get; set; } - + [JsonPropertyName("errors")] public List Errors { get; set; } diff --git a/Core/Models/Spt/Mod/PackageJsonData.cs b/Core/Models/Spt/Mod/PackageJsonData.cs index e114969d..0a022e07 100644 --- a/Core/Models/Spt/Mod/PackageJsonData.cs +++ b/Core/Models/Spt/Mod/PackageJsonData.cs @@ -6,50 +6,50 @@ public class PackageJsonData { [JsonPropertyName("incompatibilities")] public List? Incompatibilities { get; set; } - + [JsonPropertyName("loadBefore")] public List? LoadBefore { get; set; } - + [JsonPropertyName("loadAfter")] public List? LoadAfter { get; set; } - + [JsonPropertyName("dependencies")] public Dictionary? Dependencies { get; set; } - + [JsonPropertyName("modDependencies")] public Dictionary? ModDependencies { get; set; } - + [JsonPropertyName("name")] public string Name { get; set; } - + [JsonPropertyName("url")] public string Url { get; set; } - + [JsonPropertyName("author")] public string Author { get; set; } - + [JsonPropertyName("version")] public string Version { get; set; } - + [JsonPropertyName("sptVersion")] public string SptVersion { get; set; } - + // We deliberately purge this data [JsonPropertyName("scripts")] public Dictionary Scripts { get; set; } - + [JsonPropertyName("devDependencies")] public Dictionary? DevDependencies { get; set; } - + [JsonPropertyName("licence")] public string Licence { get; set; } - + [JsonPropertyName("main")] public string Main { get; set; } - + [JsonPropertyName("isBundleMod")] public bool IsBundleMod { get; set; } - + [JsonPropertyName("contributors")] public List Contributors { get; set; } } diff --git a/Core/Models/Spt/Quests/GetRepeatableByIdResult.cs b/Core/Models/Spt/Quests/GetRepeatableByIdResult.cs index 43f85d4f..bf651983 100644 --- a/Core/Models/Spt/Quests/GetRepeatableByIdResult.cs +++ b/Core/Models/Spt/Quests/GetRepeatableByIdResult.cs @@ -7,7 +7,7 @@ public class GetRepeatableByIdResult { [JsonPropertyName("quest")] public RepeatableQuest Quest { get; set; } - + [JsonPropertyName("repeatableType")] public PmcDataRepeatableQuest RepeatableType { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Ragfair/RagfairServerPrices.cs b/Core/Models/Spt/Ragfair/RagfairServerPrices.cs index 74053c8d..7a2e6d3f 100644 --- a/Core/Models/Spt/Ragfair/RagfairServerPrices.cs +++ b/Core/Models/Spt/Ragfair/RagfairServerPrices.cs @@ -6,7 +6,7 @@ public class RagfairServerPrices { [JsonPropertyName("static")] public Dictionary Static { get; set; } - + [JsonPropertyName("dynamic")] public Dictionary Dynamic { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Ragfair/TplWithFleaPrice.cs b/Core/Models/Spt/Ragfair/TplWithFleaPrice.cs index 50bfa61a..f4c09b23 100644 --- a/Core/Models/Spt/Ragfair/TplWithFleaPrice.cs +++ b/Core/Models/Spt/Ragfair/TplWithFleaPrice.cs @@ -6,7 +6,7 @@ public class TplWithFleaPrice { [JsonPropertyName("tpl")] public string Tpl { get; set; } - + // Roubles [JsonPropertyName("price")] public decimal Price { get; set; } diff --git a/Core/Models/Spt/Server/ExhaustableArray.cs b/Core/Models/Spt/Server/ExhaustableArray.cs index 7f539d8a..91e9171c 100644 --- a/Core/Models/Spt/Server/ExhaustableArray.cs +++ b/Core/Models/Spt/Server/ExhaustableArray.cs @@ -42,4 +42,5 @@ // } // } -// TODO: Convert this to C# properly \ No newline at end of file +// TODO: Convert this to C# properly + diff --git a/Core/Models/Spt/Server/Locations.cs b/Core/Models/Spt/Server/Locations.cs index bfd56b14..b3040be8 100644 --- a/Core/Models/Spt/Server/Locations.cs +++ b/Core/Models/Spt/Server/Locations.cs @@ -68,7 +68,7 @@ public class Locations { get { - return (Eft.Common.Location?) GetType() + return (Eft.Common.Location?)GetType() .GetProperties() .First(p => p.Name.ToLower() == key.ToLower()).GetGetMethod()? .Invoke(this, null) ?? null; diff --git a/Core/Models/Spt/Server/ServerBase.cs b/Core/Models/Spt/Server/ServerBase.cs index fbf2df39..e3f6c2be 100644 --- a/Core/Models/Spt/Server/ServerBase.cs +++ b/Core/Models/Spt/Server/ServerBase.cs @@ -6,7 +6,7 @@ public class ServerBase { [JsonPropertyName("ip")] public string Ip { get; set; } - + [JsonPropertyName("port")] public int Port { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Server/SettingsBase.cs b/Core/Models/Spt/Server/SettingsBase.cs index b2700a47..440078d8 100644 --- a/Core/Models/Spt/Server/SettingsBase.cs +++ b/Core/Models/Spt/Server/SettingsBase.cs @@ -12,82 +12,82 @@ public class Config { [JsonPropertyName("AFKTimeoutSeconds")] public int AFKTimeoutSeconds { get; set; } - + [JsonPropertyName("AdditionalRandomDelaySeconds")] public int AdditionalRandomDelaySeconds { get; set; } - + [JsonPropertyName("ClientSendRateLimit")] public int ClientSendRateLimit { get; set; } - + [JsonPropertyName("CriticalRetriesCount")] public int CriticalRetriesCount { get; set; } - + [JsonPropertyName("DefaultRetriesCount")] public int DefaultRetriesCount { get; set; } - + [JsonPropertyName("FirstCycleDelaySeconds")] public int FirstCycleDelaySeconds { get; set; } - + [JsonPropertyName("FramerateLimit")] public FramerateLimit FramerateLimit { get; set; } - + [JsonPropertyName("GroupStatusInterval")] public int GroupStatusInterval { get; set; } - + [JsonPropertyName("GroupStatusButtonInterval")] public int GroupStatusButtonInterval { get; set; } - + [JsonPropertyName("KeepAliveInterval")] public int KeepAliveInterval { get; set; } - + [JsonPropertyName("LobbyKeepAliveInterval")] public int LobbyKeepAliveInterval { get; set; } - + [JsonPropertyName("Mark502and504AsNonImportant")] public bool Mark502and504AsNonImportant { get; set; } - + [JsonPropertyName("MemoryManagementSettings")] public MemoryManagementSettings MemoryManagementSettings { get; set; } - + [JsonPropertyName("NVidiaHighlights")] public bool NVidiaHighlights { get; set; } - + [JsonPropertyName("NextCycleDelaySeconds")] public int NextCycleDelaySeconds { get; set; } - + [JsonPropertyName("PingServerResultSendInterval")] public int PingServerResultSendInterval { get; set; } - + [JsonPropertyName("PingServersInterval")] public int PingServersInterval { get; set; } - + [JsonPropertyName("ReleaseProfiler")] public ReleaseProfiler ReleaseProfiler { get; set; } - + [JsonPropertyName("RequestConfirmationTimeouts")] public List RequestConfirmationTimeouts { get; set; } - + [JsonPropertyName("RequestsMadeThroughLobby")] public List RequestsMadeThroughLobby { get; set; } - + [JsonPropertyName("SecondCycleDelaySeconds")] public int SecondCycleDelaySeconds { get; set; } - + [JsonPropertyName("ShouldEstablishLobbyConnection")] public bool ShouldEstablishLobbyConnection { get; set; } - + [JsonPropertyName("TurnOffLogging")] public bool TurnOffLogging { get; set; } - + [JsonPropertyName("WeaponOverlapDistanceCulling")] public int WeaponOverlapDistanceCulling { get; set; } - + [JsonPropertyName("WebDiagnosticsEnabled")] public bool WebDiagnosticsEnabled { get; set; } - + [JsonPropertyName("NetworkStateView")] public NetworkStateView NetworkStateView { get; set; } - + [JsonPropertyName("WsReconnectionDelays")] public List WsReconnectionDelays { get; set; } } @@ -96,10 +96,10 @@ public class FramerateLimit { [JsonPropertyName("MaxFramerateGameLimit")] public int MaxFramerateGameLimit { get; set; } - + [JsonPropertyName("MaxFramerateLobbyLimit")] public int MaxFramerateLobbyLimit { get; set; } - + [JsonPropertyName("MinFramerateLimit")] public int MinFramerateLimit { get; set; } } @@ -108,19 +108,19 @@ public class MemoryManagementSettings { [JsonPropertyName("AggressiveGC")] public bool AggressiveGC { get; set; } - + [JsonPropertyName("GigabytesRequiredToDisableGCDuringRaid")] public int GigabytesRequiredToDisableGCDuringRaid { get; set; } - + [JsonPropertyName("HeapPreAllocationEnabled")] public bool HeapPreAllocationEnabled { get; set; } - + [JsonPropertyName("HeapPreAllocationMB")] public int HeapPreAllocationMB { get; set; } - + [JsonPropertyName("OverrideRamCleanerSettings")] public bool OverrideRamCleanerSettings { get; set; } - + [JsonPropertyName("RamCleanerEnabled")] public bool RamCleanerEnabled { get; set; } } @@ -129,10 +129,10 @@ public class ReleaseProfiler { [JsonPropertyName("Enabled")] public bool Enabled { get; set; } - + [JsonPropertyName("MaxRecords")] public int MaxRecords { get; set; } - + [JsonPropertyName("RecordTriggerValue")] public int RecordTriggerValue { get; set; } } @@ -141,7 +141,7 @@ public class NetworkStateView { [JsonPropertyName("LossThreshold")] public int LossThreshold { get; set; } - + [JsonPropertyName("RttThreshold")] public int RttThreshold { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Services/InsuranceEquipmentPkg.cs b/Core/Models/Spt/Services/InsuranceEquipmentPkg.cs index 305e4894..cdfb8e17 100644 --- a/Core/Models/Spt/Services/InsuranceEquipmentPkg.cs +++ b/Core/Models/Spt/Services/InsuranceEquipmentPkg.cs @@ -6,15 +6,15 @@ namespace Core.Models.Spt.Services; public class InsuranceEquipmentPkg { - [JsonPropertyName("sessionID")] - public string SessionId { get; set; } + [JsonPropertyName("sessionID")] + public string SessionId { get; set; } - [JsonPropertyName("pmcData")] - public PmcData PmcData { get; set; } + [JsonPropertyName("pmcData")] + public PmcData PmcData { get; set; } - [JsonPropertyName("itemToReturnToPlayer")] - public Item ItemToReturnToPlayer { get; set; } + [JsonPropertyName("itemToReturnToPlayer")] + public Item ItemToReturnToPlayer { get; set; } - [JsonPropertyName("traderId")] - public string TraderId { get; set; } + [JsonPropertyName("traderId")] + public string TraderId { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Services/LootItem.cs b/Core/Models/Spt/Services/LootItem.cs index 1133bbf2..cc46caa1 100644 --- a/Core/Models/Spt/Services/LootItem.cs +++ b/Core/Models/Spt/Services/LootItem.cs @@ -4,15 +4,15 @@ namespace Core.Models.Spt.Services; public class LootItem { - [JsonPropertyName("id")] - public string? Id { get; set; } + [JsonPropertyName("id")] + public string? Id { get; set; } - [JsonPropertyName("tpl")] - public string Tpl { get; set; } + [JsonPropertyName("tpl")] + public string Tpl { get; set; } - [JsonPropertyName("isPreset")] - public bool IsPreset { get; set; } + [JsonPropertyName("isPreset")] + public bool IsPreset { get; set; } - [JsonPropertyName("stackCount")] - public int StackCount { get; set; } + [JsonPropertyName("stackCount")] + public int StackCount { get; set; } } \ No newline at end of file diff --git a/Core/Models/Spt/Templates/Templates.cs b/Core/Models/Spt/Templates/Templates.cs index 941ef11d..c6b22820 100644 --- a/Core/Models/Spt/Templates/Templates.cs +++ b/Core/Models/Spt/Templates/Templates.cs @@ -4,7 +4,6 @@ using Core.Models.Eft.Profile; namespace Core.Models.Spt.Templates; - public class Templates { [JsonPropertyName("character")] diff --git a/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs b/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs index dbc318b9..fb5bdca7 100644 --- a/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs +++ b/Core/Models/Spt/Weather/GetLocalWeatherResponseData.cs @@ -4,9 +4,9 @@ namespace Core.Models.Spt.Weather; public class GetLocalWeatherResponseData { - [JsonPropertyName("season")] - public int Season { get; set; } + [JsonPropertyName("season")] + public int Season { get; set; } - [JsonPropertyName("weather")] - public List Weather { get; set; } + [JsonPropertyName("weather")] + public List Weather { get; set; } } \ No newline at end of file diff --git a/Core/Models/Utils/ILogger.cs b/Core/Models/Utils/ILogger.cs index 3554c800..587a7885 100644 --- a/Core/Models/Utils/ILogger.cs +++ b/Core/Models/Utils/ILogger.cs @@ -4,7 +4,6 @@ namespace Core.Models.Utils; public interface ILogger { - void WriteToLogFile(string data); void Log(string data, string color, string? backgroundColor = null); void LogWithColor(string data, LogTextColor textColor, LogBackgroundColor? backgroundColor = null); diff --git a/Core/Servers/ConfigServer.cs b/Core/Servers/ConfigServer.cs index cecbcabf..92c8d4bd 100644 --- a/Core/Servers/ConfigServer.cs +++ b/Core/Servers/ConfigServer.cs @@ -23,13 +23,10 @@ public class ConfigServer _logger = logger; Initialize(); } - + public T GetConfig(ConfigTypes configType) where T : BaseConfig { - if (!configs.ContainsKey(configType.GetValue())) - { - throw new Exception($"Config: {configType} is undefined. Ensure you have not broken it via editing"); - } + if (!configs.ContainsKey(configType.GetValue())) throw new Exception($"Config: {configType} is undefined. Ensure you have not broken it via editing"); return configs[configType.GetValue()] as T; } @@ -49,12 +46,12 @@ public class ConfigServer // Add file content to result foreach (var file in files) - { if (acceptableFileExtensions.Contains(Path.GetExtension(file))) { var fileContent = File.ReadAllText(file); var type = GetConfigTypeByFilename(file); - var deserializedContent = JsonSerializer.Deserialize(fileContent, type, options: new JsonSerializerOptions() {Converters = { new JsonStringEnumConverter() }}); + var deserializedContent = + JsonSerializer.Deserialize(fileContent, type, new JsonSerializerOptions() { Converters = { new JsonStringEnumConverter() } }); if (deserializedContent == null) { @@ -64,7 +61,6 @@ public class ConfigServer configs[$"spt-{Path.GetFileNameWithoutExtension(file)}"] = deserializedContent; } - } /** TODO: deal with this: this.logger.info(`Commit hash: ${ diff --git a/Core/Servers/DatabaseServer.cs b/Core/Servers/DatabaseServer.cs index 3a731900..0395fd3f 100644 --- a/Core/Servers/DatabaseServer.cs +++ b/Core/Servers/DatabaseServer.cs @@ -8,7 +8,13 @@ public class DatabaseServer { protected DatabaseTables tableData = new(); - public DatabaseTables GetTables() => tableData; + public DatabaseTables GetTables() + { + return tableData; + } - public void SetTables(DatabaseTables tables) => tableData = tables; + public void SetTables(DatabaseTables tables) + { + tableData = tables; + } } \ No newline at end of file diff --git a/Core/Servers/HttpServer.cs b/Core/Servers/HttpServer.cs index 1e468087..1ceb73db 100644 --- a/Core/Servers/HttpServer.cs +++ b/Core/Servers/HttpServer.cs @@ -69,7 +69,7 @@ public class HttpServer { context.Request.Cookies.TryGetValue("PHPSESSID", out var sessionId); _applicationContext.AddValue(ContextVariableType.SESSION_ID, sessionId); - + // Extract headers for original IP detection StringValues? realIp = null; if (context.Request.Headers.ContainsKey("x-real-ip")) @@ -87,21 +87,20 @@ public class HttpServer if (httpConfig.LogRequests) { var isLocalRequest = IsLocalRequest(clientIp); - if (isLocalRequest.HasValue) { - if (isLocalRequest.Value) { + if (isLocalRequest.HasValue) + { + if (isLocalRequest.Value) _logger.Info(_localisationService.GetText("client_request", context.Request.Path.Value)); - } else - { + else _logger.Info( _localisationService.GetText("client_request_ip", new Dictionary { { "ip", clientIp }, { "url", context.Request.Path.Value } }) ); - } } } - - + + //_httpListeners.Single() // This http request would be passed through the SPT Router and handled by an ICallback } @@ -111,25 +110,18 @@ public class HttpServer private bool? IsLocalRequest(string? remoteAddress) { - if (remoteAddress == null) { - return null; - } + if (remoteAddress == null) return null; - return ( - remoteAddress.StartsWith("127.0.0") || - remoteAddress.StartsWith("192.168.") || - remoteAddress.StartsWith("localhost") - ); + return remoteAddress.StartsWith("127.0.0") || + remoteAddress.StartsWith("192.168.") || + remoteAddress.StartsWith("localhost"); } protected Dictionary GetCookies(HttpRequest req) { var found = new Dictionary(); - - foreach (var keyValuePair in req.Cookies) - { - found.Add(keyValuePair.Key, keyValuePair.Value); - } + + foreach (var keyValuePair in req.Cookies) found.Add(keyValuePair.Key, keyValuePair.Value); return found; } @@ -162,5 +154,8 @@ public class HttpServer CancellationToken.None); } - public bool IsStarted() => started; + public bool IsStarted() + { + return started; + } } \ No newline at end of file diff --git a/Core/Services/DatabaseService.cs b/Core/Services/DatabaseService.cs index 9bcd8841..062d9c80 100644 --- a/Core/Services/DatabaseService.cs +++ b/Core/Services/DatabaseService.cs @@ -52,9 +52,7 @@ public class DatabaseService public Bots GetBots() { if (_databaseServer.GetTables().bots == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/bots")); - } return _databaseServer.GetTables().bots!; } @@ -65,10 +63,8 @@ public class DatabaseService public Globals GetGlobals() { if (_databaseServer.GetTables().globals == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/globals.json")); - } return _databaseServer.GetTables().globals!; } @@ -79,10 +75,8 @@ public class DatabaseService public Hideout GetHideout() { if (_databaseServer.GetTables().hideout == null) - { throw new Exception( _localisationService.GetText("database-data_at_path_missing", "assets/database/hideout")); - } return _databaseServer.GetTables().hideout!; } @@ -93,10 +87,8 @@ public class DatabaseService public LocaleBase GetLocales() { if (_databaseServer.GetTables().locales == null) - { throw new Exception( _localisationService.GetText("database-data_at_path_missing", "assets/database/locales")); - } return _databaseServer.GetTables().locales!; } @@ -107,10 +99,8 @@ public class DatabaseService public Locations GetLocations() { if (_databaseServer.GetTables().locations == null) - { throw new Exception( _localisationService.GetText("database-data_at_path_missing", "assets/database/locales")); - } return _databaseServer.GetTables().locations!; } @@ -124,10 +114,7 @@ public class DatabaseService { var locations = GetLocations(); var desiredLocation = locations[locationId.ToLower()]; - if (desiredLocation == null) - { - throw new Exception(_localisationService.GetText("database-no_location_found_with_id", locationId)); - } + if (desiredLocation == null) throw new Exception(_localisationService.GetText("database-no_location_found_with_id", locationId)); return desiredLocation; } @@ -138,10 +125,8 @@ public class DatabaseService public Match GetMatch() { if (_databaseServer.GetTables().match == null) - { throw new Exception( _localisationService.GetText("database-data_at_path_missing", "assets/database/locales")); - } return _databaseServer.GetTables().match!; } @@ -152,10 +137,8 @@ public class DatabaseService public ServerBase GetServer() { if (_databaseServer.GetTables().server == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/server.json")); - } return _databaseServer.GetTables().server!; } @@ -166,10 +149,8 @@ public class DatabaseService public SettingsBase GetSettings() { if (_databaseServer.GetTables().settings == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/settings.json")); - } return _databaseServer.GetTables().settings!; } @@ -180,10 +161,8 @@ public class DatabaseService public Templates GetTemplates() { if (_databaseServer.GetTables().templates == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates")); - } return _databaseServer.GetTables().templates!; } @@ -194,10 +173,8 @@ public class DatabaseService public List GetAchievements() { if (_databaseServer.GetTables().templates?.Achievements == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/achievements.json")); - } return _databaseServer.GetTables().templates?.Achievements!; } @@ -208,10 +185,8 @@ public class DatabaseService public Dictionary GetCustomization() { if (_databaseServer.GetTables().templates?.Customization == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/customization.json")); - } return _databaseServer.GetTables().templates?.Customization!; } @@ -222,9 +197,7 @@ public class DatabaseService public HandbookBase GetHandbook() { if (_databaseServer.GetTables().templates?.Handbook == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/handbook.json")); - } return _databaseServer.GetTables().templates?.Handbook!; } @@ -232,11 +205,10 @@ public class DatabaseService /** * @returns assets/database/templates/items.json */ - public Dictionary GetItems() { + public Dictionary GetItems() + { if (_databaseServer.GetTables().templates?.Items == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/items.json")); - } return _databaseServer.GetTables().templates?.Items!; } @@ -244,11 +216,10 @@ public class DatabaseService /** * @returns assets/database/templates/prices.json */ - public Dictionary GetPrices() { + public Dictionary GetPrices() + { if (_databaseServer.GetTables().templates?.Prices == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/prices.json")); - } return _databaseServer.GetTables().templates?.Prices!; } @@ -259,9 +230,7 @@ public class DatabaseService public ProfileTemplates GetProfiles() { if (_databaseServer.GetTables().templates?.Profiles == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/profiles.json")); - } return _databaseServer.GetTables().templates?.Profiles!; } @@ -269,11 +238,10 @@ public class DatabaseService /** * @returns assets/database/templates/quests.json */ - public Dictionary GetQuests() { + public Dictionary GetQuests() + { if (_databaseServer.GetTables().templates?.Quests == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/templates/quests.json")); - } return _databaseServer.GetTables().templates?.Quests!; } @@ -281,11 +249,10 @@ public class DatabaseService /** * @returns assets/database/traders/ */ - public Dictionary GetTraders() { + public Dictionary GetTraders() + { if (_databaseServer.GetTables().traders == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/traders")); - } return _databaseServer.GetTables().traders!; } @@ -295,13 +262,11 @@ public class DatabaseService * @param traderId Desired trader id * @returns assets/database/traders/ */ - public Trader GetTrader(string traderId) + public Trader GetTrader(string traderId) { var traders = GetTraders(); if (!traders.TryGetValue(traderId, out var desiredTrader)) - { throw new Exception(_localisationService.GetText("database-no_trader_found_with_id", traderId)); - } return desiredTrader; } @@ -309,11 +274,10 @@ public class DatabaseService /** * @returns assets/database/locationServices/ */ - public LocationServices GetLocationServices() { + public LocationServices GetLocationServices() + { if (_databaseServer.GetTables().templates?.LocationServices == null) - { throw new Exception(_localisationService.GetText("database-data_at_path_missing", "assets/database/locationServices.json")); - } return _databaseServer.GetTables().templates?.LocationServices!; } @@ -321,8 +285,9 @@ public class DatabaseService /** * Validates that the database doesn't contain invalid ID data */ - public void ValidateDatabase() { - var start = Stopwatch.StartNew(); + public void ValidateDatabase() + { + var start = Stopwatch.StartNew(); isDataValid = ValidateTable(GetQuests(), "quest") && @@ -330,10 +295,7 @@ public class DatabaseService ValidateTable(GetItems(), "item") && ValidateTable(GetCustomization(), "customization"); - if (!isDataValid) - { - _logger.Error(_localisationService.GetText("database-invalid_data")); - } + if (!isDataValid) _logger.Error(_localisationService.GetText("database-invalid_data")); start.Stop(); _logger.Debug($"ID validation took: {start.ElapsedMilliseconds}ms"); @@ -345,15 +307,14 @@ public class DatabaseService * @param tableType The type of table, used in output message * @returns True if the table only contains valid data */ - private bool ValidateTable(Dictionary table, string tableType) { + private bool ValidateTable(Dictionary table, string tableType) + { foreach (var keyValuePair in table) - { if (!_hashUtil.IsValidMongoId(keyValuePair.Key)) { _logger.Error($"Invalid {tableType} ID: '{keyValuePair.Key}'"); return false; } - } return true; } @@ -362,5 +323,8 @@ public class DatabaseService * Check if the database is valid * @returns True if the database contains valid data, false otherwise */ - public bool IsDatabaseValid() => isDataValid; + public bool IsDatabaseValid() + { + return isDataValid; + } } \ No newline at end of file diff --git a/Core/Services/I18nService.cs b/Core/Services/I18nService.cs index e9908423..a9bcbf8e 100644 --- a/Core/Services/I18nService.cs +++ b/Core/Services/I18nService.cs @@ -10,7 +10,7 @@ public class I18nService private string _directory; private string _setLocale; - + private Dictionary> _loadedLocales = new(); public I18nService(List locales, Dictionary fallbacks, string defaultLocale, string directory) @@ -29,11 +29,9 @@ public class I18nService if (files.Length == 0) throw new Exception($"Localisation files in directory {_directory} not found."); foreach (var file in files) - { _loadedLocales.Add(Path.GetFileNameWithoutExtension(file), JsonSerializer.Deserialize>(File.ReadAllText(file)) ?? new Dictionary()); - } - + if (!_loadedLocales.ContainsKey(_defaultLocale)) throw new Exception($"The default locale '{_defaultLocale}' does not exist on the loaded locales."); } @@ -41,7 +39,9 @@ public class I18nService public void SetLocale(string locale) { if (_loadedLocales.ContainsKey(locale)) + { _setLocale = locale; + } else { var fallback = _fallbacks.Where(kv => locale.StartsWith(kv.Key.Replace("*", ""))); @@ -67,7 +67,7 @@ public class I18nService defaults.TryGetValue(key, out value); return value ?? key; } - + return value; } diff --git a/Core/Services/LocaleService.cs b/Core/Services/LocaleService.cs index d91733cc..714acd37 100644 --- a/Core/Services/LocaleService.cs +++ b/Core/Services/LocaleService.cs @@ -30,10 +30,7 @@ public class LocaleService public Dictionary GetLocaleDb() { var desiredLocale = _databaseServer.GetTables().locales.Global[GetDesiredGameLocale()]; - if (desiredLocale != null) - { - return desiredLocale; - } + if (desiredLocale != null) return desiredLocale; _logger.Warning( $"Unable to find desired locale file using locale: {GetDesiredGameLocale()} from config/locale.json, falling back to 'en'"); @@ -48,10 +45,7 @@ public class LocaleService */ public string GetDesiredGameLocale() { - if (_localeConfig.GameLocale.ToLower() == "system") - { - return GetPlatformForClientLocale(); - } + if (_localeConfig.GameLocale.ToLower() == "system") return GetPlatformForClientLocale(); return _localeConfig.GameLocale.ToLower(); } @@ -63,10 +57,7 @@ public class LocaleService */ public string GetDesiredServerLocale() { - if (_localeConfig.ServerLocale.ToLower() == "system") - { - return GetPlatformForServerLocale(); - } + if (_localeConfig.ServerLocale.ToLower() == "system") return GetPlatformForServerLocale(); return _localeConfig.ServerLocale.ToLower(); } @@ -110,19 +101,15 @@ public class LocaleService if (_localeConfig.ServerSupportedLocales.Contains(languageCode)) { if (baseNameCode == "zh") - { // Handle edge case of zh return "zh-cn"; - } return languageCode; } if (baseNameCode == "pt") - { // Handle edge case of pt return "pt-pt"; - } _logger.Warning($"Unsupported system language found: {baseNameCode}, falling back to english"); @@ -147,16 +134,10 @@ public class LocaleService var locales = _databaseServer.GetTables().locales; var baseNameCode = platformLocale.TwoLetterISOLanguageName.ToLower(); - if (locales.Global.ContainsKey(baseNameCode)) - { - return baseNameCode; - } + if (locales.Global.ContainsKey(baseNameCode)) return baseNameCode; var languageCode = platformLocale.Name.ToLower(); - if (locales.Global.ContainsKey(languageCode)) - { - return languageCode; - } + if (locales.Global.ContainsKey(languageCode)) return languageCode; /* const regionCode = platformLocale.region?.toLocaleLowerCase(); @@ -166,10 +147,7 @@ public class LocaleService */ // BSG map DE to GE some reason - if (baseNameCode == "de") - { - return "ge"; - } + if (baseNameCode == "de") return "ge"; _logger.Warning($"Unsupported system language found: {languageCode}, falling back to english"); return "en"; diff --git a/Core/Utils/App.cs b/Core/Utils/App.cs index 7e460f44..6824f5ec 100644 --- a/Core/Utils/App.cs +++ b/Core/Utils/App.cs @@ -13,7 +13,7 @@ public class App { protected Dictionary _onUpdateLastRun; protected CoreConfig _coreConfig; - + private ILogger _logger; private TimeUtil _timeUtil; private LocalisationService _localisationService; @@ -23,7 +23,7 @@ public class App private DatabaseService _databaseService; private IEnumerable _onLoad; private IEnumerable _onUpdate; - + public App( ILogger logger, TimeUtil timeUtil, @@ -34,7 +34,8 @@ public class App DatabaseService databaseService, IEnumerable onLoadComponents, IEnumerable onUpdateComponents - ) { + ) + { _logger = logger; _timeUtil = timeUtil; _localisationService = localisationService; @@ -44,10 +45,10 @@ public class App _databaseService = databaseService; _onLoad = onLoadComponents; _onUpdate = onUpdateComponents; - + _coreConfig = configServer.GetConfig(ConfigTypes.CORE); } - + public async Task Load() { // execute onLoad callbacks @@ -78,23 +79,15 @@ public class App _logger.Debug("Commit: ${ProgramStatics.COMMIT}"); } */ - foreach (var onLoad in _onLoad) - { - await onLoad.OnLoad(); - } + foreach (var onLoad in _onLoad) await onLoad.OnLoad(); - var timer = new Timer(_ => - { - update(_onUpdate); - }, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(5000)); + var timer = new Timer(_ => { update(_onUpdate); }, null, TimeSpan.Zero, TimeSpan.FromMilliseconds(5000)); } protected async Task update(IEnumerable onUpdateComponents) { // If the server has failed to start, skip any update calls - if (!_httpServer.IsStarted() || !_databaseService.IsDatabaseValid()) { - return; - } + if (!_httpServer.IsStarted() || !_databaseService.IsDatabaseValid()) return; foreach (var updateable in onUpdateComponents) { @@ -103,26 +96,31 @@ public class App lastRunTimeTimestamp = 0; var secondsSinceLastRun = _timeUtil.GetTimeStamp() - lastRunTimeTimestamp; - try { + try + { success = await updateable.OnUpdate(secondsSinceLastRun); - } catch (Exception err) { + } + catch (Exception err) + { LogUpdateException(err, updateable); } - if (success) { + if (success) + { _onUpdateLastRun[updateable.GetRoute()] = _timeUtil.GetTimeStamp(); - } else { + } + else + { /* temporary for debug */ var warnTime = 20 * 60; - if (secondsSinceLastRun % warnTime == 0) { - _logger.Debug(_localisationService.GetText("route_onupdate_no_response", updateable.GetRoute())); - } + if (secondsSinceLastRun % warnTime == 0) _logger.Debug(_localisationService.GetText("route_onupdate_no_response", updateable.GetRoute())); } } } - protected void LogUpdateException(Exception err, OnUpdate updateable) { + protected void LogUpdateException(Exception err, OnUpdate updateable) + { _logger.Error(_localisationService.GetText("scheduled_event_failed_to_run", updateable.GetRoute())); _logger.Error(err.ToString()); } diff --git a/Core/Utils/DatabaseImporter.cs b/Core/Utils/DatabaseImporter.cs index a0bc89c5..8e126ebc 100644 --- a/Core/Utils/DatabaseImporter.cs +++ b/Core/Utils/DatabaseImporter.cs @@ -19,13 +19,15 @@ public class DatabaseImporter : OnLoad protected readonly ILogger _logger; protected readonly LocalisationService _localisationService; + protected readonly DatabaseServer _databaseServer; + //protected readonly ImageRouter _imageRouter; protected readonly EncodingUtil _encodingUtil; protected readonly HashUtil _hashUtil; protected readonly ImporterUtil _importerUtil; protected readonly ConfigServer _configServer; - + public DatabaseImporter( ILogger logger, // TODO: are we gonna use this? @inject("JsonUtil") protected jsonUtil: JsonUtil, @@ -36,7 +38,8 @@ public class DatabaseImporter : OnLoad HashUtil hashUtil, ImporterUtil importerUtil, ConfigServer configServer - ) { + ) + { _logger = logger; _localisationService = localisationService; _databaseServer = databaseServer; @@ -51,7 +54,8 @@ public class DatabaseImporter : OnLoad * Get path to spt data * @returns path to data */ - public string GetSptDataPath() { + public string GetSptDataPath() + { return "./Assets/"; } @@ -113,9 +117,9 @@ public class DatabaseImporter : OnLoad OnReadValidate ); - var validation = valid == ValidationResult.FAILED || this.valid == ValidationResult.NOT_FOUND ? "." : ""; + var validation = valid == ValidationResult.FAILED || valid == ValidationResult.NOT_FOUND ? "." : ""; _logger.Info($"{_localisationService.GetText("importing_database_finish")}{validation}"); - _databaseServer.SetTables((DatabaseTables) dataToImport); + _databaseServer.SetTables((DatabaseTables)dataToImport); } protected void OnReadValidate(string fileWithPath, string data) @@ -201,9 +205,10 @@ public class DatabaseImporter : OnLoad } } -enum ValidationResult { +internal enum ValidationResult +{ SUCCESS = 0, FAILED = 1, NOT_FOUND = 2, - UNDEFINED = 3, -} + UNDEFINED = 3 +} \ No newline at end of file diff --git a/Core/Utils/EncodingUtil.cs b/Core/Utils/EncodingUtil.cs index e023ddc9..d1ce91cd 100644 --- a/Core/Utils/EncodingUtil.cs +++ b/Core/Utils/EncodingUtil.cs @@ -56,7 +56,8 @@ public class EncodingUtil } } -public enum EncodeType { +public enum EncodeType +{ BASE64, HEX, ASCII, diff --git a/Core/Utils/FileUtil.cs b/Core/Utils/FileUtil.cs index 0fabd1a3..5fc396f4 100644 --- a/Core/Utils/FileUtil.cs +++ b/Core/Utils/FileUtil.cs @@ -11,7 +11,7 @@ public class FileUtil if (recursive) files.AddRange(Directory.GetDirectories(path).SelectMany(d => GetFiles(d, recursive))); - + return files; } @@ -24,6 +24,4 @@ public class FileUtil { return Path.GetExtension(path).Replace(".", ""); } - -} - +} \ No newline at end of file diff --git a/Core/Utils/HashUtil.cs b/Core/Utils/HashUtil.cs index 993d228c..bd15a005 100644 --- a/Core/Utils/HashUtil.cs +++ b/Core/Utils/HashUtil.cs @@ -8,110 +8,110 @@ namespace Core.Utils; [Injectable(InjectionType.Singleton)] public class HashUtil { - private readonly Regex MongoIdRegex = new Regex("^[a-fA-F0-9]{24}$"); + private readonly Regex MongoIdRegex = new("^[a-fA-F0-9]{24}$"); - private readonly RandomUtil _randomUtil; - - public HashUtil(RandomUtil randomUtil) - { - _randomUtil = randomUtil; - } - - /// - /// Create a 24 character MongoId - /// - /// 24 character objectId - public string Generate() - { - var objectId = new byte[12]; - - // Time stamp (4 bytes) - var timestamp = BitConverter.GetBytes((int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()); - // Convert to big-endian - Array.Reverse(timestamp); - Array.Copy(timestamp, 0, objectId, 0, 4); - - // Random value (5 bytes) - var randomValue = new byte[5]; - _randomUtil.Random.NextBytes(randomValue); - Array.Copy(randomValue, 0, objectId, 4, 5); - - // Incrementing counter (3 bytes) - // 24-bit counter - var counter = BitConverter.GetBytes(_randomUtil.GetInt(0, 16777215)); - Array.Reverse(counter); - Array.Copy(counter, 0, objectId, 9, 3); - - return Convert.ToHexStringLower(objectId); - } - - /// - /// is the passed in string a valid mongo id - /// - /// String to check - /// True when string is a valid mongo id - public bool IsValidMongoId(string stringToCheck) - { - return MongoIdRegex.IsMatch(stringToCheck); - } - - public string GenerateMd5ForData(string data) - { - return GenerateHashForData(HashingAlgorithm.MD5, data); - } + private readonly RandomUtil _randomUtil; - public string GenerateSha1ForData(string data) - { - return GenerateHashForData(HashingAlgorithm.SHA1, data); - } - - public string GenerateCrc32ForData(string data) - { - // TODO: Could not find a ms way of doing this. - // May need a custom impl to avoid an external lib. - CJ - throw new NotImplementedException(); - } + public HashUtil(RandomUtil randomUtil) + { + _randomUtil = randomUtil; + } - /// - /// Create a hash for the data parameter - /// - /// algorithm to use to hash - /// data to be hashed - /// hash value - /// thrown if the provided algorithm is not implemented> - public string GenerateHashForData(HashingAlgorithm algorithm, string data) - { - switch (algorithm) - { - case HashingAlgorithm.MD5: - var md5HashData = MD5.HashData(Encoding.UTF8.GetBytes(data)); - return Convert.ToHexString(md5HashData).Replace("-", string.Empty); - - case HashingAlgorithm.SHA1: - var sha1HashData = SHA1.HashData(Encoding.UTF8.GetBytes(data)); - return Convert.ToHexString(sha1HashData).Replace("-", string.Empty); - } + /// + /// Create a 24 character MongoId + /// + /// 24 character objectId + public string Generate() + { + var objectId = new byte[12]; - throw new NotImplementedException("Provided hash algorithm is not supported."); - } + // Time stamp (4 bytes) + var timestamp = BitConverter.GetBytes((int)DateTimeOffset.UtcNow.ToUnixTimeSeconds()); + // Convert to big-endian + Array.Reverse(timestamp); + Array.Copy(timestamp, 0, objectId, 0, 4); - /// - /// Generates an account ID for a profile - /// - /// Generated account ID - public int GenerateAccountId() - { - const int min = 1000000; - const int max = 1999999; - - var random = new Random(); - - return random.Next() * (max - min + 1) + min; - } + // Random value (5 bytes) + var randomValue = new byte[5]; + _randomUtil.Random.NextBytes(randomValue); + Array.Copy(randomValue, 0, objectId, 4, 5); + + // Incrementing counter (3 bytes) + // 24-bit counter + var counter = BitConverter.GetBytes(_randomUtil.GetInt(0, 16777215)); + Array.Reverse(counter); + Array.Copy(counter, 0, objectId, 9, 3); + + return Convert.ToHexStringLower(objectId); + } + + /// + /// is the passed in string a valid mongo id + /// + /// String to check + /// True when string is a valid mongo id + public bool IsValidMongoId(string stringToCheck) + { + return MongoIdRegex.IsMatch(stringToCheck); + } + + public string GenerateMd5ForData(string data) + { + return GenerateHashForData(HashingAlgorithm.MD5, data); + } + + public string GenerateSha1ForData(string data) + { + return GenerateHashForData(HashingAlgorithm.SHA1, data); + } + + public string GenerateCrc32ForData(string data) + { + // TODO: Could not find a ms way of doing this. + // May need a custom impl to avoid an external lib. - CJ + throw new NotImplementedException(); + } + + /// + /// Create a hash for the data parameter + /// + /// algorithm to use to hash + /// data to be hashed + /// hash value + /// thrown if the provided algorithm is not implemented> + public string GenerateHashForData(HashingAlgorithm algorithm, string data) + { + switch (algorithm) + { + case HashingAlgorithm.MD5: + var md5HashData = MD5.HashData(Encoding.UTF8.GetBytes(data)); + return Convert.ToHexString(md5HashData).Replace("-", string.Empty); + + case HashingAlgorithm.SHA1: + var sha1HashData = SHA1.HashData(Encoding.UTF8.GetBytes(data)); + return Convert.ToHexString(sha1HashData).Replace("-", string.Empty); + } + + throw new NotImplementedException("Provided hash algorithm is not supported."); + } + + /// + /// Generates an account ID for a profile + /// + /// Generated account ID + public int GenerateAccountId() + { + const int min = 1000000; + const int max = 1999999; + + var random = new Random(); + + return random.Next() * (max - min + 1) + min; + } } public enum HashingAlgorithm { - MD5, - SHA1, + MD5, + SHA1 } \ No newline at end of file diff --git a/Core/Utils/ImporterUtil.cs b/Core/Utils/ImporterUtil.cs index 67350667..b383be85 100644 --- a/Core/Utils/ImporterUtil.cs +++ b/Core/Utils/ImporterUtil.cs @@ -15,7 +15,7 @@ public class ImporterUtil { _fileUtil = fileUtil; } - + /** * Load files into js objects recursively (asynchronous) * @param filepath Path to folder with files @@ -26,7 +26,8 @@ public class ImporterUtil Type loadedType, Action? onReadCallback = null, Action? onObjectDeserialized = null - ) { + ) + { var result = Activator.CreateInstance(loadedType); // get all filepaths @@ -45,7 +46,7 @@ public class ImporterUtil Type propertyType; MethodInfo setMethod; - bool isDictionary = false; + var isDictionary = false; if (loadedType.IsGenericType && loadedType.GetGenericTypeDefinition() == typeof(Dictionary<,>)) { propertyType = loadedType.GetGenericArguments()[1]; @@ -54,15 +55,18 @@ public class ImporterUtil } else { - var matchedProperty = loadedType.GetProperties().FirstOrDefault(prop => prop.Name.ToLower() == Path.GetFileNameWithoutExtension(file).ToLower()); + var matchedProperty = loadedType.GetProperties() + .FirstOrDefault(prop => prop.Name.ToLower() == Path.GetFileNameWithoutExtension(file).ToLower()); if (matchedProperty == null) throw new Exception($"Unable to find property '{Path.GetFileNameWithoutExtension(file)}' for type '{loadedType.Name}'"); propertyType = matchedProperty.PropertyType; setMethod = matchedProperty.GetSetMethod(); } + try { - var fileDeserialized = JsonSerializer.Deserialize(fileData, propertyType, new JsonSerializerOptions { UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow }); + var fileDeserialized = JsonSerializer.Deserialize(fileData, propertyType, + new JsonSerializerOptions { UnmappedMemberHandling = JsonUnmappedMemberHandling.Disallow }); if (onObjectDeserialized != null) onObjectDeserialized(file, fileDeserialized); @@ -77,7 +81,8 @@ public class ImporterUtil // deep tree search foreach (var directory in directories) { - var matchedProperty = loadedType.GetProperties().FirstOrDefault(prop => prop.Name.ToLower() == directory.Split("/").Last().Replace("_", "").ToLower()); + var matchedProperty = loadedType.GetProperties() + .FirstOrDefault(prop => prop.Name.ToLower() == directory.Split("/").Last().Replace("_", "").ToLower()); if (matchedProperty == null) throw new Exception($"Unable to find property '{directory}' for type '{loadedType.Name}'"); matchedProperty.GetSetMethod().Invoke(result, [await LoadRecursiveAsync($"{directory}/", matchedProperty.PropertyType)]); @@ -106,14 +111,14 @@ public class ImporterUtil var directories = Directory.GetDirectories(filepath); foreach (var file in files) - { - if (Path.GetExtension(file) == "json") + if (Path.GetExtension(file) == "json") { // const filename = this.vfs.stripExtension(file); // const filePathAndName = `${filepath}${file}`; var fileData = File.ReadAllText(file); onReadCallback(file, fileData); - var matchedProperty = loadedType.GetProperties().FirstOrDefault(prop => prop.Name.ToLower() == Path.GetFileNameWithoutExtension(file).ToLower()); + var matchedProperty = loadedType.GetProperties() + .FirstOrDefault(prop => prop.Name.ToLower() == Path.GetFileNameWithoutExtension(file).ToLower()); if (matchedProperty == null) throw new Exception($"Unable to find property '{Path.GetFileNameWithoutExtension(file)}' for type '{loadedType.Name}'"); var propertyType = matchedProperty.PropertyType; @@ -122,7 +127,6 @@ public class ImporterUtil matchedProperty.GetSetMethod().Invoke(result, [fileDeserialized]); } - } // deep tree search foreach (var directory in directories) @@ -149,11 +153,10 @@ public class ImporterUtil var promises = new List>(); var filesToProcess = new Queue(_fileUtil.GetFiles(filepath, true)); - while (filesToProcess.Count != 0) { + while (filesToProcess.Count != 0) + { var fileNode = filesToProcess.Dequeue(); - if (fileNode == null || _fileUtil.GetFileExtension(fileNode) != "json") { - continue; - } + if (fileNode == null || _fileUtil.GetFileExtension(fileNode) != "json") continue; promises.Add(File.ReadAllTextAsync(fileNode).ContinueWith(fd => { diff --git a/Core/Utils/Json/Converters/ArrayToObjectFactoryConverter.cs b/Core/Utils/Json/Converters/ArrayToObjectFactoryConverter.cs index 27e11ce8..4ef07ccb 100644 --- a/Core/Utils/Json/Converters/ArrayToObjectFactoryConverter.cs +++ b/Core/Utils/Json/Converters/ArrayToObjectFactoryConverter.cs @@ -12,10 +12,10 @@ public class ArrayToObjectFactoryConverter : JsonConverterFactory public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options) { - return (JsonConverter) Activator.CreateInstance(typeof(ArrayToObjectConverter<>).MakeGenericType(typeToConvert)); + return (JsonConverter)Activator.CreateInstance(typeof(ArrayToObjectConverter<>).MakeGenericType(typeToConvert)); } - - class ArrayToObjectConverter : JsonConverter + + private class ArrayToObjectConverter : JsonConverter { public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { diff --git a/Core/Utils/Json/Converters/StringToNumberFactoryConverter.cs b/Core/Utils/Json/Converters/StringToNumberFactoryConverter.cs index 4fe35603..8736d7fb 100644 --- a/Core/Utils/Json/Converters/StringToNumberFactoryConverter.cs +++ b/Core/Utils/Json/Converters/StringToNumberFactoryConverter.cs @@ -12,10 +12,10 @@ public class StringToNumberFactoryConverter : JsonConverterFactory public override JsonConverter? CreateConverter(Type typeToConvert, JsonSerializerOptions options) { - return (JsonConverter) Activator.CreateInstance(typeof(StringToNumberConverter<>).MakeGenericType(typeToConvert)); + return (JsonConverter)Activator.CreateInstance(typeof(StringToNumberConverter<>).MakeGenericType(typeToConvert)); } - - class StringToNumberConverter : JsonConverter + + private class StringToNumberConverter : JsonConverter { public override T? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { diff --git a/Core/Utils/JsonUtil.cs b/Core/Utils/JsonUtil.cs index 18312a98..474bc078 100644 --- a/Core/Utils/JsonUtil.cs +++ b/Core/Utils/JsonUtil.cs @@ -5,6 +5,4 @@ namespace Core.Utils; [Injectable(InjectionType.Singleton)] public class JsonUtil { - - } \ No newline at end of file diff --git a/Core/Utils/MathUtil.cs b/Core/Utils/MathUtil.cs index 1c5d8e50..010cb69b 100644 --- a/Core/Utils/MathUtil.cs +++ b/Core/Utils/MathUtil.cs @@ -6,111 +6,102 @@ namespace Core.Utils; [Injectable(InjectionType.Singleton)] public class MathUtil { - /// - /// Helper to create the sum of all list elements - /// - /// List of floats to sum - /// sum of all values - public float ListSum(List values) - { - // Sum the list starting with an initial value of 0 - return values.Aggregate(0f, (sum, x) => sum + x); - } - - /// - /// Helper to create the cumulative sum of all list elements - /// ListCumSum([1, 2, 3, 4]) = [1, 3, 6, 10] - /// - /// The list with numbers of which to calculate the cumulative sum - /// cumulative sum of values - public List ListCumSum(List values) - { - var cumSumList = new List(values.Count); - float sum = 0; + /// + /// Helper to create the sum of all list elements + /// + /// List of floats to sum + /// sum of all values + public float ListSum(List values) + { + // Sum the list starting with an initial value of 0 + return values.Aggregate(0f, (sum, x) => sum + x); + } - foreach (var value in values) - { - sum += value; - cumSumList.Add(sum); - } - - return cumSumList; - } + /// + /// Helper to create the cumulative sum of all list elements + /// ListCumSum([1, 2, 3, 4]) = [1, 3, 6, 10] + /// + /// The list with numbers of which to calculate the cumulative sum + /// cumulative sum of values + public List ListCumSum(List values) + { + var cumSumList = new List(values.Count); + float sum = 0; - /// - /// Helper to create the product of each element times factor - /// - /// The list of numbers which shall be multiplied by the factor - /// Number to multiply each element by - /// A list of elements all multiplied by the factor - public List ListProduct(List values, float factor) - { - return values.Select(v => v * factor).ToList(); - } + foreach (var value in values) + { + sum += value; + cumSumList.Add(sum); + } - /// - /// Helper to add a constant to all list elements - /// - /// The list of numbers to which the summand should be added - /// - /// A list of elements with the additive added to all elements - public List ListAdd(List values, float additive) - { - return values.Select(v => v + additive).ToList(); - } - - /// - /// Maps a value from an input range to an output range linearly. - /// - /// Example: - /// a_min = 0; a_max=1; - /// b_min = 1; b_max=3; - /// MapToRange(0.5, a_min, a_max, b_min, b_max) // returns 2 - /// - /// - /// The value from the input range to be mapped to the output range. - /// Minimum of the input range. - /// Maximum of the input range. - /// Minimum of the output range. - /// Maximum of the output range. - /// The result of the mapping. - public double MapToRange(double x, double minIn, double maxIn, double minOut, double maxOut) - { - var deltaIn = maxIn - minIn; - var deltaOut = maxOut - minOut; + return cumSumList; + } - var xScale = (x - minIn) / deltaIn; - return Math.Max(minOut, Math.Min(maxOut, minOut + xScale * deltaOut)); - } - - /// - /// Linear interpolation - /// e.g. used to do a continuous integration for quest rewards which are defined for specific support centers of pmcLevel - /// - /// The point of x at which to interpolate - /// Support points in x (of same length as y) - /// Support points in y (of same length as x) - /// Interpolated value at xp, or null if xp is out of bounds - public static double? Interp1(double xp, double[] x, double[] y) - { - if (xp > x[^1]) // ^1 is the last index in C# - { - return y[^1]; - } + /// + /// Helper to create the product of each element times factor + /// + /// The list of numbers which shall be multiplied by the factor + /// Number to multiply each element by + /// A list of elements all multiplied by the factor + public List ListProduct(List values, float factor) + { + return values.Select(v => v * factor).ToList(); + } - if (xp < x[0]) - { - return y[0]; - } + /// + /// Helper to add a constant to all list elements + /// + /// The list of numbers to which the summand should be added + /// + /// A list of elements with the additive added to all elements + public List ListAdd(List values, float additive) + { + return values.Select(v => v + additive).ToList(); + } - for (var i = 0; i < x.Length - 1; i++) - { - if (xp >= x[i] && xp <= x[i + 1]) - { - return y[i] + (xp - x[i]) * (y[i + 1] - y[i]) / (x[i + 1] - x[i]); - } - } + /// + /// Maps a value from an input range to an output range linearly. + /// + /// Example: + /// a_min = 0; a_max=1; + /// b_min = 1; b_max=3; + /// MapToRange(0.5, a_min, a_max, b_min, b_max) // returns 2 + /// + /// + /// The value from the input range to be mapped to the output range. + /// Minimum of the input range. + /// Maximum of the input range. + /// Minimum of the output range. + /// Maximum of the output range. + /// The result of the mapping. + public double MapToRange(double x, double minIn, double maxIn, double minOut, double maxOut) + { + var deltaIn = maxIn - minIn; + var deltaOut = maxOut - minOut; - return null; - } + var xScale = (x - minIn) / deltaIn; + return Math.Max(minOut, Math.Min(maxOut, minOut + xScale * deltaOut)); + } + + /// + /// Linear interpolation + /// e.g. used to do a continuous integration for quest rewards which are defined for specific support centers of pmcLevel + /// + /// The point of x at which to interpolate + /// Support points in x (of same length as y) + /// Support points in y (of same length as x) + /// Interpolated value at xp, or null if xp is out of bounds + public static double? Interp1(double xp, double[] x, double[] y) + { + if (xp > x[^1]) // ^1 is the last index in C# + return y[^1]; + + if (xp < x[0]) return y[0]; + + for (var i = 0; i < x.Length - 1; i++) + if (xp >= x[i] && xp <= x[i + 1]) + return y[i] + (xp - x[i]) * (y[i + 1] - y[i]) / (x[i + 1] - x[i]); + + return null; + } } \ No newline at end of file diff --git a/Core/Utils/RandomUtil.cs b/Core/Utils/RandomUtil.cs index 7e5993d8..b51d2115 100644 --- a/Core/Utils/RandomUtil.cs +++ b/Core/Utils/RandomUtil.cs @@ -8,13 +8,13 @@ namespace Core.Utils; public class RandomUtil { public readonly Random Random = new(); - + /// /// The IEEE-754 standard for double-precision floating-point numbers limits the number of digits (including both /// integer + fractional parts) to about 15–17 significant digits. 15 is a safe upper bound, so we'll use that. /// public const int MaxSignificantDigits = 15; - + /// /// Generates a random integer between the specified minimum and maximum values, inclusive. /// @@ -24,11 +24,8 @@ public class RandomUtil public int GetInt(int min, int max) { // Prevents a potential integer overflow. - if (max == int.MaxValue) - { - max -= 1; - } - + if (max == int.MaxValue) max -= 1; + // maxVal is exclusive of the passed value, so add 1 return max > min ? Random.Next(min, max + 1) : min; } @@ -54,7 +51,7 @@ public class RandomUtil { return (float)GetSecureRandomNumber() * (max - min) + min; } - + /// /// Generates a random floating-point number within the specified range ~15-17 digits (8 bytes). /// @@ -85,7 +82,7 @@ public class RandomUtil public float GetPercentOfValue(float percent, float number, int toFixed = 2) { var num = percent * number / 100; - + return (float)Math.Round(num, toFixed); } @@ -98,7 +95,7 @@ public class RandomUtil public float ReduceValueByPercent(float number, float percentage) { var reductionAmount = number * percentage / 100; - + return number - reductionAmount; } @@ -110,7 +107,7 @@ public class RandomUtil public bool GetChance100(float chancePercent) { chancePercent = Math.Clamp(chancePercent, 0f, 100f); - + return GetIntEx(100) <= chancePercent; } @@ -125,7 +122,7 @@ public class RandomUtil { return collection.ElementAt(GetInt(0, collection.Count() - 1)); } - + /// /// Returns a random type T from the provided collection of type T. /// @@ -177,28 +174,26 @@ public class RandomUtil public double GetNormallyDistributedRandomNumber(double mean, double sigma, int attempt = 0) { double u, v; - + do { u = GetSecureRandomNumber(); } while (u == 0); - + do { v = GetSecureRandomNumber(); } while (v == 0); - + // Apply the Box-Muller transform var w = Math.Sqrt(-2.0 * Math.Log(u)) * Math.Cos(2.0 * Math.PI * v); var valueDrawn = mean + w * sigma; - + // Check if the generated value is valid if (valueDrawn < 0) - { - return attempt > 100 + return attempt > 100 ? GetDouble(0.01f, mean * 2f) : GetNormallyDistributedRandomNumber(mean, sigma, attempt + 1); - } return valueDrawn; } @@ -212,11 +207,8 @@ public class RandomUtil public int RandInt(int low, int? high = null) { // Return a random integer from 0 to low if high is not provided - if (high is null) - { - return Random.Next(0, low); - } - + if (high is null) return Random.Next(0, low); + // Return low directly when low and high are equal return low == high ? low @@ -235,11 +227,8 @@ public class RandomUtil /// public double RandNum(double val1, double val2 = 0, byte? precision = null) { - if (!double.IsFinite(val1) || !double.IsFinite(val2)) - { - throw new ArgumentException("RandNum() parameters 'value1' and 'value2' must be finite numbers."); - } - + if (!double.IsFinite(val1) || !double.IsFinite(val2)) throw new ArgumentException("RandNum() parameters 'value1' and 'value2' must be finite numbers."); + // Determine the range var min = Math.Min(val1, val2); var max = Math.Max(val1, val2); @@ -248,33 +237,29 @@ public class RandomUtil if (precision is not null) { if (precision > MaxSignificantDigits) - { throw new ArgumentOutOfRangeException( nameof(precision), "Must be less than 16"); - } - + // Calculate the number of whole-number digits in the maximum absolute value of the range var maxAbsoluteValue = Math.Max(Math.Abs(min), Math.Abs(max)); var wholeNumberDigits = (int)Math.Floor(Math.Log10(maxAbsoluteValue)) + 1; - + var maxAllowedPrecision = Math.Max(0, MaxSignificantDigits - wholeNumberDigits); if (precision > maxAllowedPrecision) - { throw new ArgumentException( $"RandNum() precision of {precision} exceeds the allowable precision ({maxAllowedPrecision}) for the given values." ); - } } - + var result = GetSecureRandomNumber() * (max - min) + min; - + // Determine effective precision var maxPrecision = Math.Max(GetNumberPrecision(val1), GetNumberPrecision(val2)); var effectivePrecision = precision ?? maxPrecision; var factor = Math.Pow(2, effectivePrecision); - + return Math.Round(result * factor) / factor; } @@ -329,7 +314,7 @@ public class RandomUtil * Here's a place where you can play around with the 'n' and 'shift' values to see how the distribution changes: * http://jsfiddle.net/e08cumyx/ */ - + throw new NotImplementedException("This honestly went over my head..."); } @@ -342,19 +327,19 @@ public class RandomUtil public List Shuffle(List originalList) { var currentIndex = originalList.Count; - + while (currentIndex != 0) { var randomIndex = GetInt(0, currentIndex); currentIndex--; - + // Swap it with the current element. (originalList[currentIndex], originalList[randomIndex]) = (originalList[randomIndex], originalList[currentIndex]); } - + return originalList; } - + /// /// Generates a secure random number between 0 (inclusive) and 1 (exclusive). /// @@ -368,18 +353,15 @@ public class RandomUtil var buffer = new byte[6]; using var rng = RandomNumberGenerator.Create(); - + // Fill buffer with random bytes rng.GetBytes(buffer); - + var integer = 0; - for (var i = 0; i < 6; i++) - { - integer = (integer << 8) | buffer[i]; - } + for (var i = 0; i < 6; i++) integer = (integer << 8) | buffer[i]; const ulong maxInt = 1UL << 48; - + return (double)Math.Abs(integer) / maxInt; } @@ -391,9 +373,9 @@ public class RandomUtil public int GetNumberPrecision(double num) { var parts = num.ToString($"G{MaxSignificantDigits}").Split('.'); - - return parts.Length > 1 - ? parts[1].Length + + return parts.Length > 1 + ? parts[1].Length : 0; } } \ No newline at end of file diff --git a/Core/Utils/TimeUtil.cs b/Core/Utils/TimeUtil.cs index 94fcbb61..29a98d9f 100644 --- a/Core/Utils/TimeUtil.cs +++ b/Core/Utils/TimeUtil.cs @@ -5,174 +5,174 @@ namespace Core.Utils; [Injectable(InjectionType.Singleton)] public class TimeUtil { - public const int OneHourAsSeconds = 3600; + public const int OneHourAsSeconds = 3600; - /// - /// Formats the time part of a date as a UTC string. - /// - /// The date to format in UTC. - /// The formatted time as 'HH-MM-SS'. - public string FormatTime(DateTime dateTime) - { - var hour = Pad(dateTime.ToUniversalTime().Hour); - var minute = Pad(dateTime.ToUniversalTime().Minute); - var second = Pad(dateTime.ToUniversalTime().Second); + /// + /// Formats the time part of a date as a UTC string. + /// + /// The date to format in UTC. + /// The formatted time as 'HH-MM-SS'. + public string FormatTime(DateTime dateTime) + { + var hour = Pad(dateTime.ToUniversalTime().Hour); + var minute = Pad(dateTime.ToUniversalTime().Minute); + var second = Pad(dateTime.ToUniversalTime().Second); - return $"{hour}-{minute}-{second}"; - } + return $"{hour}-{minute}-{second}"; + } - /// - /// Formats the date part of a date as a UTC string. - /// - /// The date to format in UTC. - /// The formatted date as 'YYYY-MM-DD'. - public string FormatDate(DateTime dateTime) - { - var day = Pad(dateTime.ToUniversalTime().Day); - var month = Pad(dateTime.ToUniversalTime().Month); - var year = Pad(dateTime.ToUniversalTime().Year); - - return $"{year}-{month}-{day}"; - } + /// + /// Formats the date part of a date as a UTC string. + /// + /// The date to format in UTC. + /// The formatted date as 'YYYY-MM-DD'. + public string FormatDate(DateTime dateTime) + { + var day = Pad(dateTime.ToUniversalTime().Day); + var month = Pad(dateTime.ToUniversalTime().Month); + var year = Pad(dateTime.ToUniversalTime().Year); - /// - /// Gets the current date as a formatted UTC string. - /// - /// The current date as 'YYYY-MM-DD'. - public string GetDate() - { - return FormatDate(DateTime.Now); - } + return $"{year}-{month}-{day}"; + } - /// - /// Gets the current time as a formatted UTC string. - /// - /// The current time as 'HH-MM-SS'. - public string GetTime() - { - return FormatTime(DateTime.Now); - } + /// + /// Gets the current date as a formatted UTC string. + /// + /// The current date as 'YYYY-MM-DD'. + public string GetDate() + { + return FormatDate(DateTime.Now); + } - /// - /// Gets the current timestamp in seconds in UTC. - /// - /// The current timestamp in seconds since the Unix epoch in UTC. - public long GetTimeStamp() - { - return DateTimeOffset.Now.ToUnixTimeSeconds(); - } + /// + /// Gets the current time as a formatted UTC string. + /// + /// The current time as 'HH-MM-SS'. + public string GetTime() + { + return FormatTime(DateTime.Now); + } - /// - /// Gets the start of day timestamp for the given date - /// - /// datetime to get the time stamp for, if null it uses current date. - /// Unix epoch for the start of day of the calculated date - public long GetStartOfDayTimeStamp(DateTime? dateTime) - { - var now = dateTime ?? DateTime.Now; - - return new DateTimeOffset(new DateTime(now.Year, now.Month, now.Day, 0, 0, 0)) - .ToUnixTimeSeconds(); - } + /// + /// Gets the current timestamp in seconds in UTC. + /// + /// The current timestamp in seconds since the Unix epoch in UTC. + public long GetTimeStamp() + { + return DateTimeOffset.Now.ToUnixTimeSeconds(); + } - /// - /// Get timestamp of today + passed in day count - /// - /// Days from now - /// - public long GetTimeStampFromNowDays(int daysFromNow) - { - return DateTimeOffset.Now.AddDays(daysFromNow).ToUnixTimeSeconds(); - } + /// + /// Gets the start of day timestamp for the given date + /// + /// datetime to get the time stamp for, if null it uses current date. + /// Unix epoch for the start of day of the calculated date + public long GetStartOfDayTimeStamp(DateTime? dateTime) + { + var now = dateTime ?? DateTime.Now; - /// - /// Get timestamp of today + passed in hour count - /// - /// - /// - public long GetTimeStampFromNowHours(int hoursFromNow) - { - return DateTimeOffset.Now.AddHours(hoursFromNow).ToUnixTimeSeconds(); - } + return new DateTimeOffset(new DateTime(now.Year, now.Month, now.Day, 0, 0, 0)) + .ToUnixTimeSeconds(); + } - /// - /// Gets the current time in UTC in a format suitable for mail in EFT. - /// - /// The current time as 'HH:MM' in UTC. - public string GetTimeMailFormat() - { - return DateTime.UtcNow.ToString("HH:mm"); - } + /// + /// Get timestamp of today + passed in day count + /// + /// Days from now + /// + public long GetTimeStampFromNowDays(int daysFromNow) + { + return DateTimeOffset.Now.AddDays(daysFromNow).ToUnixTimeSeconds(); + } - /// - /// Gets the current date in UTC in a format suitable for emails in EFT. - /// - /// The current date as 'DD.MM.YYYY' in UTC. - public string GetDateMailFormat() - { - return DateTime.UtcNow.ToString("dd.MM.yyyy"); - } + /// + /// Get timestamp of today + passed in hour count + /// + /// + /// + public long GetTimeStampFromNowHours(int hoursFromNow) + { + return DateTimeOffset.Now.AddHours(hoursFromNow).ToUnixTimeSeconds(); + } - /// - /// Converts a number of hours into seconds. - /// - /// The number of hours to convert. - /// The equivalent number of seconds. - public int GetHoursAsSeconds(int hours) - { - return OneHourAsSeconds * hours; - } + /// + /// Gets the current time in UTC in a format suitable for mail in EFT. + /// + /// The current time as 'HH:MM' in UTC. + public string GetTimeMailFormat() + { + return DateTime.UtcNow.ToString("HH:mm"); + } - /// - /// Gets the time stamp of the start of the next hour in UTC - /// - /// Time stamp of the next hour in unix time seconds - public long GetTimeStampOfNextHour() - { - var now = DateTime.UtcNow; - - var nextHour = new DateTime( - now.Year, - now.Month, - now.Day, - now.Hour, - 0, - 0, - DateTimeKind.Utc - ).AddHours(1); - - return new DateTimeOffset(nextHour).ToUnixTimeSeconds(); - } + /// + /// Gets the current date in UTC in a format suitable for emails in EFT. + /// + /// The current date as 'DD.MM.YYYY' in UTC. + public string GetDateMailFormat() + { + return DateTime.UtcNow.ToString("dd.MM.yyyy"); + } - /// - /// Returns the current days timestamp at 00:00 - /// e.g. current time: 13th March 14:22 will return 13th March 00:00 - /// - /// Timestamp - public long GetTodayMidNightTimeStamp() - { - var now = DateTime.UtcNow; - - var midNight = new DateTime( - now.Year, - now.Month, - now.Day, - 0, - 0, - 0, - DateTimeKind.Utc - ); - - return new DateTimeOffset(midNight).ToUnixTimeSeconds(); - } - - /// - /// Pads a number with a leading zero if it is less than 10. - /// - /// The number to pad. - /// The padded number as a string. - private static string Pad(int number) - { - return number.ToString().PadLeft(2, '0'); - } + /// + /// Converts a number of hours into seconds. + /// + /// The number of hours to convert. + /// The equivalent number of seconds. + public int GetHoursAsSeconds(int hours) + { + return OneHourAsSeconds * hours; + } + + /// + /// Gets the time stamp of the start of the next hour in UTC + /// + /// Time stamp of the next hour in unix time seconds + public long GetTimeStampOfNextHour() + { + var now = DateTime.UtcNow; + + var nextHour = new DateTime( + now.Year, + now.Month, + now.Day, + now.Hour, + 0, + 0, + DateTimeKind.Utc + ).AddHours(1); + + return new DateTimeOffset(nextHour).ToUnixTimeSeconds(); + } + + /// + /// Returns the current days timestamp at 00:00 + /// e.g. current time: 13th March 14:22 will return 13th March 00:00 + /// + /// Timestamp + public long GetTodayMidNightTimeStamp() + { + var now = DateTime.UtcNow; + + var midNight = new DateTime( + now.Year, + now.Month, + now.Day, + 0, + 0, + 0, + DateTimeKind.Utc + ); + + return new DateTimeOffset(midNight).ToUnixTimeSeconds(); + } + + /// + /// Pads a number with a leading zero if it is less than 10. + /// + /// The number to pad. + /// The padded number as a string. + private static string Pad(int number) + { + return number.ToString().PadLeft(2, '0'); + } } \ No newline at end of file diff --git a/UnitTests/UnitTests.csproj b/UnitTests/UnitTests.csproj index 42335228..5c0de1e2 100644 --- a/UnitTests/UnitTests.csproj +++ b/UnitTests/UnitTests.csproj @@ -17,7 +17,7 @@ - +