diff --git a/Core/Models/Enums/AirdropType.cs b/Core/Models/Enums/AirdropType.cs new file mode 100644 index 00000000..43dd6985 --- /dev/null +++ b/Core/Models/Enums/AirdropType.cs @@ -0,0 +1,18 @@ +namespace Core.Models.Enums; + +public enum AirdropTypeEnum +{ + Common, + Supply, + Medical, + Weapon +} + +public enum SptAirdropTypeEnum +{ + mixed, + barter, + foodMedical, + weaponArmor, + radar +} \ No newline at end of file diff --git a/Core/Models/Enums/GiftSenderType.cs b/Core/Models/Enums/GiftSenderType.cs new file mode 100644 index 00000000..f3762599 --- /dev/null +++ b/Core/Models/Enums/GiftSenderType.cs @@ -0,0 +1,8 @@ +namespace Core.Models.Enums; + +public enum GiftSenderType +{ + System, + Trader, + User +} \ No newline at end of file diff --git a/Core/Models/Enums/Season.cs b/Core/Models/Enums/Season.cs new file mode 100644 index 00000000..a4977136 --- /dev/null +++ b/Core/Models/Enums/Season.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums; + +public enum Season { + SUMMER = 0, + AUTUMN = 1, + WINTER = 2, + SPRING = 3, + AUTUMN_LATE = 4, + SPRING_EARLY = 5, + STORM = 6, +} \ No newline at end of file diff --git a/Core/Models/Enums/SeasonalEventType.cs b/Core/Models/Enums/SeasonalEventType.cs new file mode 100644 index 00000000..03c15f70 --- /dev/null +++ b/Core/Models/Enums/SeasonalEventType.cs @@ -0,0 +1,11 @@ +namespace Core.Models.Enums; + +public enum SeasonalEventType +{ + None, + Christmas, + Halloween, + NewYears, + Promo, + AprilFools +} \ No newline at end of file diff --git a/Core/Models/Enums/WindDirection.cs b/Core/Models/Enums/WindDirection.cs new file mode 100644 index 00000000..f28b1179 --- /dev/null +++ b/Core/Models/Enums/WindDirection.cs @@ -0,0 +1,12 @@ +namespace Core.Models.Enums; + +public enum WindDirection { + EAST = 1, + NORTH = 2, + WEST = 3, + SOUTH = 4, + SE = 5, + SW = 6, + NW = 7, + NE = 8, +} \ No newline at end of file diff --git a/Core/Models/Spt/Config/AirdropConfig.cs b/Core/Models/Spt/Config/AirdropConfig.cs index 51d95197..b305685b 100644 --- a/Core/Models/Spt/Config/AirdropConfig.cs +++ b/Core/Models/Spt/Config/AirdropConfig.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using System.Text.Json.Serialization; using Core.Models.Common; +using Core.Models.Enums; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Config/CoreConfig.cs b/Core/Models/Spt/Config/CoreConfig.cs index 44b3531f..bd659571 100644 --- a/Core/Models/Spt/Config/CoreConfig.cs +++ b/Core/Models/Spt/Config/CoreConfig.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using Core.Models.Eft.Game; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Config/GiftsConfig.cs b/Core/Models/Spt/Config/GiftsConfig.cs index 33cbb220..61e6e6ee 100644 --- a/Core/Models/Spt/Config/GiftsConfig.cs +++ b/Core/Models/Spt/Config/GiftsConfig.cs @@ -42,7 +42,7 @@ public class Gift /// Optional - supply a trader type to send from, not necessary when sending from SYSTEM or USER /// [JsonPropertyName("trader")] - public Traders? Trader { get; set; } + public string? Trader { get; set; } [JsonPropertyName("messageText")] public string MessageText { get; set; } diff --git a/Core/Models/Spt/Config/ItemConfig.cs b/Core/Models/Spt/Config/ItemConfig.cs index f51537fe..4515cdd3 100644 --- a/Core/Models/Spt/Config/ItemConfig.cs +++ b/Core/Models/Spt/Config/ItemConfig.cs @@ -1,4 +1,5 @@ using System.Text.Json.Serialization; +using Core.Models.Eft.Common; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Config/SeasonalEventConfig.cs b/Core/Models/Spt/Config/SeasonalEventConfig.cs index bd624ae0..368a205f 100644 --- a/Core/Models/Spt/Config/SeasonalEventConfig.cs +++ b/Core/Models/Spt/Config/SeasonalEventConfig.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Core.Models.Eft.Common; +using Core.Models.Enums; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Config/TraderConfig.cs b/Core/Models/Spt/Config/TraderConfig.cs index cefaebab..f08de277 100644 --- a/Core/Models/Spt/Config/TraderConfig.cs +++ b/Core/Models/Spt/Config/TraderConfig.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Core.Models.Common; +using Core.Models.Spt.Services; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Config/WeatherConfig.cs b/Core/Models/Spt/Config/WeatherConfig.cs index fb70cf67..27d9add0 100644 --- a/Core/Models/Spt/Config/WeatherConfig.cs +++ b/Core/Models/Spt/Config/WeatherConfig.cs @@ -1,5 +1,6 @@ using System.Text.Json.Serialization; using Core.Models.Common; +using Core.Models.Enums; namespace Core.Models.Spt.Config; diff --git a/Core/Models/Spt/Services/LootRequest.cs b/Core/Models/Spt/Services/LootRequest.cs new file mode 100644 index 00000000..2c28fbeb --- /dev/null +++ b/Core/Models/Spt/Services/LootRequest.cs @@ -0,0 +1,92 @@ +using System.Text.Json.Serialization; +using Core.Models.Common; +using Core.Models.Enums; + +namespace Core.Models.Spt.Services; + +public class LootRequest +{ + /// + /// Count of weapons to generate + /// + [JsonPropertyName("weaponPresetCount")] + public MinMax WeaponPresetCount { get; set; } + + /// + /// Count of armor to generate + /// + [JsonPropertyName("armorPresetCount")] + public MinMax ArmorPresetCount { get; set; } + + /// + /// Count of items to generate + /// + [JsonPropertyName("itemCount")] + public MinMax ItemCount { get; set; } + + /// + /// Count of sealed weapon crates to generate + /// + [JsonPropertyName("weaponCrateCount")] + public MinMax WeaponCrateCount { get; set; } + + /// + /// Item tpl blacklist to exclude + /// + [JsonPropertyName("itemBlacklist")] + public List ItemBlacklist { get; set; } + + /// + /// Item tpl whitelist to pick from + /// + [JsonPropertyName("itemTypeWhitelist")] + public List ItemTypeWhitelist { get; set; } + + /// + /// key: item base type: value: max count + /// + [JsonPropertyName("itemLimits")] + public Dictionary ItemLimits { get; set; } + + [JsonPropertyName("itemStackLimits")] + public Dictionary ItemStackLimits { get; set; } + + /// + /// Allowed armor plate levels 2/3/4/5/6 for armor generated + /// + [JsonPropertyName("armorLevelWhitelist")] + public List ArmorLevelWhitelist { get; set; } + + /// + /// Should boss items be included in allowed items + /// + [JsonPropertyName("allowBossItems")] + public bool AllowBossItems { get; set; } + + /// + /// Should item.json item reward blacklist be used + /// + [JsonPropertyName("useRewardItemBlacklist")] + public bool? UseRewardItemBlacklist { get; set; } + + /// + /// Should forced loot be used instead of randomised loot + /// + [JsonPropertyName("useForcedLoot")] + public bool? UseForcedLoot { get; set; } + + /// + /// Item tpls + count of items to force include + /// + [JsonPropertyName("forcedLoot")] + public Dictionary ForcedLoot { get; set; } +} + +public class AirdropLootRequest : LootRequest +{ + /// + /// Airdrop icon used by client to show crate type + /// + [JsonPropertyName("icon")] + public AirdropTypeEnum? Icon { get; set; } +} \ No newline at end of file