Remove unused properties from configs, cleanup nullability (#475)
This commit is contained in:
@@ -436,27 +436,7 @@
|
||||
"weaponModLimits": {
|
||||
"lightLaserLimit": 2,
|
||||
"scopeLimit": 1
|
||||
},
|
||||
"weightingAdjustmentsByPlayerLevel": [
|
||||
{
|
||||
"equipment": {
|
||||
"add": {},
|
||||
"edit": {
|
||||
"FaceCover": {
|
||||
"572b7fa524597762b747ce82": 30
|
||||
},
|
||||
"FirstPrimaryWeapon": {
|
||||
"54491c4f4bdc2db1078b4568": 90,
|
||||
"5a38e6bac4a2826c6e06d79b": 90
|
||||
}
|
||||
}
|
||||
},
|
||||
"levelRange": {
|
||||
"max": 6,
|
||||
"min": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"assaultgroup": {},
|
||||
"bossboar": {
|
||||
@@ -2853,45 +2833,6 @@
|
||||
"tagillaHelperAgro": 5,
|
||||
"test": 30
|
||||
},
|
||||
"revenge": {
|
||||
"arenaFighter": [
|
||||
"pmcBot",
|
||||
"gifter"
|
||||
],
|
||||
"arenaFighterEvent": [
|
||||
"pmcBot",
|
||||
"gifter"
|
||||
],
|
||||
"bossKnight": [
|
||||
"exUsec",
|
||||
"gifter",
|
||||
"bossKnight",
|
||||
"followerBigPipe",
|
||||
"followerBirdEye"
|
||||
],
|
||||
"exUsec": [
|
||||
"exUsec",
|
||||
"gifter",
|
||||
"bossKnight",
|
||||
"followerBigPipe",
|
||||
"followerBirdEye"
|
||||
],
|
||||
"followerBigPipe": [
|
||||
"exUsec",
|
||||
"gifter",
|
||||
"bossKnight",
|
||||
"followerBigPipe",
|
||||
"followerBirdEye"
|
||||
],
|
||||
"pmcBot": [
|
||||
"pmcBot",
|
||||
"gifter"
|
||||
],
|
||||
"spiritWinter": [
|
||||
"pmcBot",
|
||||
"gifter"
|
||||
]
|
||||
},
|
||||
"secureContainerAmmoStackCount": 20,
|
||||
"showTypeInNickname": false,
|
||||
"walletLoot": {
|
||||
|
||||
@@ -439,7 +439,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "Merry christmas!",
|
||||
"timestampToSend": 42069,
|
||||
"associatedEvent": "Christmas",
|
||||
"collectionTimeHours": 48,
|
||||
"maxToSendPlayer": 1
|
||||
@@ -579,7 +578,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "1CLICKDRESSUP",
|
||||
"timestampToSend": 42069,
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendPlayer": 1
|
||||
@@ -722,7 +720,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "BARMALEY",
|
||||
"timestampToSend": 42069,
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendPlayer": 1
|
||||
@@ -792,7 +789,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "S00NS00N",
|
||||
"timestampToSend": 42069,
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendPlayer": 1
|
||||
@@ -942,7 +938,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "TRAMBON",
|
||||
"timestampToSend": 42069,
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendPlayer": 1
|
||||
@@ -1020,7 +1015,6 @@
|
||||
],
|
||||
"sender": "System",
|
||||
"messageText": "PINEWOOD",
|
||||
"timestampToSend": 42069,
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendPlayer": 1
|
||||
@@ -1428,7 +1422,6 @@
|
||||
"messageText": "JONKLER NO",
|
||||
"collectionTimeHours": 48,
|
||||
"associatedEvent": "Promo",
|
||||
"maxToSendToPlayer": 1,
|
||||
"maxToSendPlayer": 1
|
||||
},
|
||||
"BSGBIRTHDAY2023": {
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"healthMultipliers": {
|
||||
"death": 0.3,
|
||||
"blacked": 0.1
|
||||
},
|
||||
"save": {
|
||||
"health": true,
|
||||
"effects": true
|
||||
"health": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
"max": 1.4
|
||||
},
|
||||
"bonusChanceMultiplier": 0.25,
|
||||
"bonusAmountMultiplier": 0.43,
|
||||
"highValueThresholdRub": 70000,
|
||||
"hideoutTaskRewardTimeSeconds": 21600,
|
||||
"hideoutCraftSacrificeThresholdRub": 400000,
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
"port": 6969,
|
||||
"backendIp": "127.0.0.1",
|
||||
"backendPort": 6969,
|
||||
"webSocketPingDelayMs": 90000,
|
||||
"logRequests": true,
|
||||
"serverImagePathOverride": {},
|
||||
"certificatePassword": ""
|
||||
"serverImagePathOverride": {}
|
||||
}
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
"randomWeather": false,
|
||||
"randomTime": false
|
||||
},
|
||||
"save": {
|
||||
"loot": true
|
||||
},
|
||||
"carExtracts": ["Dorms V-Ex", "PP Exfil", "V-Ex_light", "South V-Ex", "E7_car", "Sandbox_VExit", "Shorl_V-Ex"],
|
||||
"coopExtracts": [
|
||||
"Interchange Cooperation",
|
||||
@@ -25,7 +22,6 @@
|
||||
"carExtractBaseStandingGain": 0.2,
|
||||
"coopExtractBaseStandingGain": 0.25,
|
||||
"scavExtractStandingGain": 0.01,
|
||||
"pmcKillProbabilityForScavGain": 0.2,
|
||||
"keepFiRSecureContainerOnDeath": false,
|
||||
"alwaysKeepFoundInRaidOnRaidEnd": false,
|
||||
"playerScavHostileChancePercent": 15
|
||||
|
||||
@@ -3,8 +3,6 @@
|
||||
"54cb50c76803fa8b248b4571": 85,
|
||||
"54cb57776803fa99248b456e": 95
|
||||
},
|
||||
"blacklistedEquipment": ["SpecialSlot1", "SpecialSlot2", "SpecialSlot3"],
|
||||
"slotIdsToAlwaysRemove": ["cartridges", "patron_in_weapon"],
|
||||
"returnTimeOverrideSeconds": 0,
|
||||
"storageTimeOverrideSeconds": 0,
|
||||
"runIntervalSeconds": 600,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
{
|
||||
"newItemsMarkedFound": false,
|
||||
"randomLootContainers": {
|
||||
"634959225289190e5e773b3b": {
|
||||
"rewardCount": 6,
|
||||
|
||||
@@ -1,15 +1,3 @@
|
||||
{
|
||||
"enabled": false,
|
||||
"randomiseMapContainers": {
|
||||
"tarkovstreets": false,
|
||||
"factory4_day": false,
|
||||
"factory4_night": false,
|
||||
"bigmap": false,
|
||||
"woods": false,
|
||||
"shoreline": false,
|
||||
"interchange": false,
|
||||
"lighthouse": false,
|
||||
"laboratory": false,
|
||||
"rezervbase": false
|
||||
}
|
||||
"enabled": false
|
||||
}
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
"whitelist": {}
|
||||
}
|
||||
},
|
||||
"labsAccessCardChancePercent": 0,
|
||||
"lootItemsToAddChancePercent": {}
|
||||
},
|
||||
"-6": {
|
||||
|
||||
@@ -420,7 +420,6 @@
|
||||
}
|
||||
},
|
||||
"forceHealingItemsIntoSecure": true,
|
||||
"addPrefixToSameNamePMCAsPlayerChance": 40,
|
||||
"allPMCsHavePlayerNameWithRandomPrefixChance": 1,
|
||||
"locationSpecificPmcLevelOverride": {
|
||||
"sandbox": {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"priceMultiplier": 1,
|
||||
"applyRandomizeDurabilityLoss": true,
|
||||
"weaponSkillRepairGain": 4.06,
|
||||
"armorKitSkillPointGainPerRepairPointMultiplier": 0.05,
|
||||
"repairKitIntellectGainMultiplier": {
|
||||
"weapon": 0.045,
|
||||
|
||||
@@ -38,13 +38,6 @@ public record BotConfig : BaseConfig
|
||||
RandomisedResourceDetails
|
||||
> LootItemResourceRandomization { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Control what bots are added to a bots revenge list <br />
|
||||
/// key: bottype, value: bottypes to revenge on seeing their death
|
||||
/// </summary>
|
||||
[JsonPropertyName("revenge")]
|
||||
public required Dictionary<string, List<string>> Revenge { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Control how many items are allowed to spawn on a bot <br />
|
||||
/// key: bottype, value: <br />
|
||||
@@ -162,7 +155,7 @@ public record WeeklyBossSettings
|
||||
/// Bosses that can be picked
|
||||
/// </summary>
|
||||
[JsonPropertyName("bossPool")]
|
||||
public List<WildSpawnType> BossPool { get; set; }
|
||||
public required List<WildSpawnType> BossPool { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Day of week boss choice resets
|
||||
@@ -172,150 +165,6 @@ public record WeeklyBossSettings
|
||||
public DayOfWeek ResetDay { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Number of bots to generate and store in cache on raid start per bot type
|
||||
/// </summary>
|
||||
public record PresetBatch
|
||||
{
|
||||
[JsonExtensionData]
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[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("bossZryachiy")]
|
||||
public int BossZryachiy { get; set; }
|
||||
|
||||
[JsonPropertyName("bossKolontay")]
|
||||
public int BossKolontay { get; set; }
|
||||
|
||||
[JsonPropertyName("bossPartisan")]
|
||||
public int BossPartisan { 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("followerBoarClose1")]
|
||||
public int FollowerBoarClose1 { get; set; }
|
||||
|
||||
[JsonPropertyName("followerBoarClose2")]
|
||||
public int FollowerBoarClose2 { get; set; }
|
||||
|
||||
[JsonPropertyName("followerZryachiy")]
|
||||
public int FollowerZryachiy { get; set; }
|
||||
|
||||
[JsonPropertyName("followerKolontayAssault")]
|
||||
public int FollowerKolontayAssault { get; set; }
|
||||
|
||||
[JsonPropertyName("followerKolontaySecurity")]
|
||||
public int FollowerKolontaySecurity { 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; }
|
||||
|
||||
[JsonPropertyName("shooterBTR")]
|
||||
public int ShooterBTR { get; set; }
|
||||
}
|
||||
|
||||
public record WalletLootSettings
|
||||
{
|
||||
[JsonExtensionData]
|
||||
@@ -352,49 +201,13 @@ public record EquipmentFilters
|
||||
/// Limits for mod types per weapon .e.g. scopes
|
||||
/// </summary>
|
||||
[JsonPropertyName("weaponModLimits")]
|
||||
public ModLimits WeaponModLimits { get; set; }
|
||||
public ModLimits? WeaponModLimits { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whitelist for weapon sight types allowed per gun
|
||||
/// </summary>
|
||||
[JsonPropertyName("weaponSightWhitelist")]
|
||||
public Dictionary<MongoId, List<MongoId>> WeaponSightWhitelist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance face shield is down/active
|
||||
/// </summary>
|
||||
[JsonPropertyName("faceShieldIsActiveChancePercent")]
|
||||
public double? FaceShieldIsActiveChancePercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance gun flashlight is active during the day
|
||||
/// </summary>
|
||||
[JsonPropertyName("lightIsActiveDayChancePercent")]
|
||||
public double? LightIsActiveDayChancePercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance gun flashlight is active during the night
|
||||
/// </summary>
|
||||
[JsonPropertyName("lightIsActiveNightChancePercent")]
|
||||
public double? LightIsActiveNightChancePercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance gun laser is active during the day
|
||||
/// </summary>
|
||||
[JsonPropertyName("laserIsActiveChancePercent")]
|
||||
public double? LaserIsActiveChancePercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance NODS are down/active during the day
|
||||
/// </summary>
|
||||
[JsonPropertyName("nvgIsActiveChanceDayPercent")]
|
||||
public double? NvgIsActiveChanceDayPercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Chance NODS are down/active during the night
|
||||
/// </summary>
|
||||
[JsonPropertyName("nvgIsActiveChanceNightPercent")]
|
||||
public double? NvgIsActiveChanceNightPercent { get; set; }
|
||||
public Dictionary<MongoId, List<MongoId>>? WeaponSightWhitelist { get; set; }
|
||||
|
||||
[JsonPropertyName("forceOnlyArmoredRigWhenNoArmor")]
|
||||
public bool? ForceOnlyArmoredRigWhenNoArmor { get; set; }
|
||||
@@ -415,31 +228,25 @@ public record EquipmentFilters
|
||||
/// Adjust weighting/chances of items on bot by level of bot
|
||||
/// </summary>
|
||||
[JsonPropertyName("randomisation")]
|
||||
public List<RandomisationDetails> Randomisation { get; set; }
|
||||
public List<RandomisationDetails>? Randomisation { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Blacklist equipment by level of bot
|
||||
/// </summary>
|
||||
[JsonPropertyName("blacklist")]
|
||||
public List<EquipmentFilterDetails> Blacklist { get; set; }
|
||||
public List<EquipmentFilterDetails>? Blacklist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Whitelist equipment by level of bot
|
||||
/// </summary>
|
||||
[JsonPropertyName("whitelist")]
|
||||
public List<EquipmentFilterDetails> Whitelist { get; set; }
|
||||
public List<EquipmentFilterDetails>? Whitelist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Adjust equipment/ammo
|
||||
/// </summary>
|
||||
[JsonPropertyName("weightingAdjustmentsByBotLevel")]
|
||||
public List<WeightingAdjustmentDetails> WeightingAdjustmentsByBotLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Same as weightingAdjustments but based on player level instead of bot level
|
||||
/// </summary>
|
||||
[JsonPropertyName("weightingAdjustmentsByPlayerLevel")]
|
||||
public List<WeightingAdjustmentDetails>? WeightingAdjustmentsByPlayerLevel { get; set; }
|
||||
public List<WeightingAdjustmentDetails>? WeightingAdjustmentsByBotLevel { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should the stock mod be forced to spawn on bot
|
||||
@@ -481,7 +288,7 @@ public record RandomisationDetails
|
||||
/// Between what levels do these randomisation setting apply to
|
||||
/// </summary>
|
||||
[JsonPropertyName("levelRange")]
|
||||
public MinMax<int> LevelRange { get; set; }
|
||||
public required MinMax<int> LevelRange { get; set; }
|
||||
|
||||
[JsonPropertyName("generation")]
|
||||
public Dictionary<string, GenerationData>? Generation { get; set; }
|
||||
@@ -535,10 +342,7 @@ public record NighttimeChanges
|
||||
/// Applies changes to values stored in equipmentMods
|
||||
/// </summary>
|
||||
[JsonPropertyName("equipmentModsModifiers")]
|
||||
public Dictionary<string, float> EquipmentModsModifiers { get; set; }
|
||||
|
||||
[JsonPropertyName("weaponModsModifiers")]
|
||||
public Dictionary<string, float> WeaponModsModifiers { get; set; } // TODO: currently not in use anywhere
|
||||
public required Dictionary<string, float> EquipmentModsModifiers { get; set; }
|
||||
}
|
||||
|
||||
public record EquipmentFilterDetails
|
||||
@@ -580,7 +384,7 @@ public record WeightingAdjustmentDetails
|
||||
/// Between what levels do these weight settings apply to
|
||||
/// </summary>
|
||||
[JsonPropertyName("levelRange")]
|
||||
public MinMax<int> LevelRange { get; set; }
|
||||
public required MinMax<int> LevelRange { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Key: ammo type e.g. Caliber556x45NATO, value: item tpl + weight
|
||||
@@ -607,10 +411,10 @@ public record AdjustmentDetails
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[JsonPropertyName("add")]
|
||||
public Dictionary<string, Dictionary<string, float>> Add { get; set; }
|
||||
public Dictionary<string, Dictionary<string, float>>? Add { get; set; }
|
||||
|
||||
[JsonPropertyName("edit")]
|
||||
public Dictionary<string, Dictionary<string, float>> Edit { get; set; }
|
||||
public Dictionary<string, Dictionary<string, float>>? Edit { get; set; }
|
||||
}
|
||||
|
||||
public class ArmorPlateWeights
|
||||
@@ -619,10 +423,10 @@ public class ArmorPlateWeights
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[JsonPropertyName("levelRange")]
|
||||
public MinMax<int> LevelRange { get; set; }
|
||||
public required MinMax<int> LevelRange { get; set; }
|
||||
|
||||
[JsonPropertyName("values")]
|
||||
public Dictionary<string, Dictionary<string, double>> Values { get; set; }
|
||||
public required Dictionary<string, Dictionary<string, double>> Values { get; set; }
|
||||
}
|
||||
|
||||
public record RandomisedResourceDetails
|
||||
@@ -631,10 +435,10 @@ public record RandomisedResourceDetails
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[JsonPropertyName("food")]
|
||||
public RandomisedResourceValues Food { get; set; }
|
||||
public RandomisedResourceValues? Food { get; set; }
|
||||
|
||||
[JsonPropertyName("meds")]
|
||||
public RandomisedResourceValues Meds { get; set; }
|
||||
public RandomisedResourceValues? Meds { get; set; }
|
||||
}
|
||||
|
||||
public record RandomisedResourceValues
|
||||
|
||||
@@ -32,12 +32,6 @@ public record Gift
|
||||
[JsonPropertyName("sender")]
|
||||
public GiftSenderType Sender { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional - supply a users id to send from, not necessary when sending from SYSTEM or TRADER
|
||||
/// </summary>
|
||||
[JsonPropertyName("senderId")]
|
||||
public string? SenderId { get; set; }
|
||||
|
||||
[JsonPropertyName("senderDetails")]
|
||||
public UserDialogInfo? SenderDetails { get; set; }
|
||||
|
||||
@@ -56,12 +50,6 @@ public record Gift
|
||||
[JsonPropertyName("localeTextId")]
|
||||
public string? LocaleTextId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Optional - Used by Seasonal events to send on specific day
|
||||
/// </summary>
|
||||
[JsonPropertyName("timestampToSend")]
|
||||
public long? TimestampToSend { get; set; }
|
||||
|
||||
[JsonPropertyName("associatedEvent")]
|
||||
public SeasonalEventType AssociatedEvent { get; set; }
|
||||
|
||||
@@ -76,7 +64,4 @@ public record Gift
|
||||
|
||||
[JsonPropertyName("maxToSendPlayer")]
|
||||
public int? MaxToSendPlayer { get; set; }
|
||||
|
||||
[JsonPropertyName("maxToSendToPlayer")]
|
||||
public int? MaxToSendToPlayer { get; set; }
|
||||
}
|
||||
|
||||
@@ -19,9 +19,6 @@ public record HealthMultipliers
|
||||
[JsonExtensionData]
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[JsonPropertyName("death")]
|
||||
public double Death { get; set; }
|
||||
|
||||
[JsonPropertyName("blacked")]
|
||||
public double Blacked { get; set; }
|
||||
}
|
||||
@@ -33,7 +30,4 @@ public record HealthSave
|
||||
|
||||
[JsonPropertyName("health")]
|
||||
public bool Health { get; set; }
|
||||
|
||||
[JsonPropertyName("effects")]
|
||||
public bool Effects { get; set; }
|
||||
}
|
||||
|
||||
@@ -81,12 +81,6 @@ public record CultistCircleSettings
|
||||
[JsonPropertyName("rewardPriceMultiplerMinMax")]
|
||||
public required MinMax<double> RewardPriceMultiplierMinMax { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The odds that meeting the highest threshold gives you a bonus to crafting time
|
||||
/// </summary>
|
||||
[JsonPropertyName("bonusAmountMultiplier")]
|
||||
public double BonusAmountMultiplier { get; set; }
|
||||
|
||||
[JsonPropertyName("bonusChanceMultiplier")]
|
||||
public double BonusChanceMultiplier { get; set; }
|
||||
|
||||
|
||||
@@ -25,9 +25,6 @@ public record HttpConfig : BaseConfig
|
||||
[JsonPropertyName("backendPort")]
|
||||
public required int BackendPort { get; set; }
|
||||
|
||||
[JsonPropertyName("webSocketPingDelayMs")]
|
||||
public required int WebSocketPingDelayMs { get; set; }
|
||||
|
||||
[JsonPropertyName("logRequests")]
|
||||
public required bool LogRequests { get; set; }
|
||||
|
||||
@@ -36,7 +33,4 @@ public record HttpConfig : BaseConfig
|
||||
/// </summary>
|
||||
[JsonPropertyName("serverImagePathOverride")]
|
||||
public required Dictionary<string, string> ServerImagePathOverride { get; set; }
|
||||
|
||||
[JsonPropertyName("certificatePassword")]
|
||||
public required string CertificatePassword { get; set; }
|
||||
}
|
||||
|
||||
@@ -13,12 +13,6 @@ public record InRaidConfig : BaseConfig
|
||||
[JsonPropertyName("raidMenuSettings")]
|
||||
public required RaidMenuSettings RaidMenuSettings { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// What effects should be saved post-raid
|
||||
/// </summary>
|
||||
[JsonPropertyName("save")]
|
||||
public RaidSave Save { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Names of car extracts
|
||||
/// </summary>
|
||||
@@ -49,12 +43,6 @@ public record InRaidConfig : BaseConfig
|
||||
[JsonPropertyName("scavExtractStandingGain")]
|
||||
public double ScavExtractStandingGain { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The likelihood of PMC eliminating a minimum of 2 scavs while you engage them as a pscav.
|
||||
/// </summary>
|
||||
[JsonPropertyName("pmcKillProbabilityForScavGain")]
|
||||
public double PmcKillProbabilityForScavGain { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// On death should items in your secure keep their Find in raid status regardless of how you finished the raid
|
||||
/// </summary>
|
||||
@@ -103,15 +91,3 @@ public record RaidMenuSettings
|
||||
[JsonPropertyName("randomTime")]
|
||||
public bool RandomTime { get; set; }
|
||||
}
|
||||
|
||||
public record RaidSave
|
||||
{
|
||||
[JsonExtensionData]
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should loot gained from raid be saved
|
||||
/// </summary>
|
||||
[JsonPropertyName("loot")]
|
||||
public bool Loot { get; set; }
|
||||
}
|
||||
|
||||
@@ -14,18 +14,6 @@ public record InsuranceConfig : BaseConfig
|
||||
[JsonPropertyName("returnChancePercent")]
|
||||
public Dictionary<MongoId, double> ReturnChancePercent { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Item slots that should never be returned as insurance
|
||||
/// </summary>
|
||||
[JsonPropertyName("blacklistedEquipment")]
|
||||
public List<string> BlacklistedEquipment { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Some slots should always be removed, e.g. 'cartridges'
|
||||
/// </summary>
|
||||
[JsonPropertyName("slotIdsToAlwaysRemove")]
|
||||
public List<string> SlotIdsToAlwaysRemove { get; set; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// Override to control how quickly insurance is processed/returned in seconds
|
||||
/// </summary>
|
||||
|
||||
@@ -8,12 +8,6 @@ public record InventoryConfig : BaseConfig
|
||||
[JsonPropertyName("kind")]
|
||||
public override string Kind { get; set; } = "spt-inventory";
|
||||
|
||||
/// <summary>
|
||||
/// Should new items purchased by flagged as found in raid
|
||||
/// </summary>
|
||||
[JsonPropertyName("newItemsMarkedFound")]
|
||||
public bool NewItemsMarkedFound { get; set; }
|
||||
|
||||
[JsonPropertyName("randomLootContainers")]
|
||||
public required Dictionary<MongoId, RewardDetails> RandomLootContainers { get; set; }
|
||||
|
||||
|
||||
@@ -9,7 +9,4 @@ public record MatchConfig : BaseConfig
|
||||
|
||||
[JsonPropertyName("enabled")]
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
[JsonPropertyName("randomiseMapContainers")]
|
||||
public required Dictionary<string, bool> RandomiseMapContainers { get; set; }
|
||||
}
|
||||
|
||||
@@ -31,9 +31,6 @@ public record KarmaLevel
|
||||
[JsonPropertyName("equipmentBlacklist")]
|
||||
public required Dictionary<EquipmentSlots, List<MongoId>> EquipmentBlacklist { get; set; }
|
||||
|
||||
[JsonPropertyName("labsAccessCardChancePercent")]
|
||||
public double? LabsAccessCardChancePercent { get; set; }
|
||||
|
||||
[JsonPropertyName("lootItemsToAddChancePercent")]
|
||||
public required Dictionary<MongoId, double> LootItemsToAddChancePercent { get; set; }
|
||||
}
|
||||
|
||||
@@ -148,9 +148,6 @@ public record PmcConfig : BaseConfig
|
||||
[JsonPropertyName("addSecureContainerLootFromBotConfig")]
|
||||
public required bool AddSecureContainerLootFromBotConfig { get; set; }
|
||||
|
||||
[JsonPropertyName("addPrefixToSameNamePMCAsPlayerChance")]
|
||||
public required int? AddPrefixToSameNamePMCAsPlayerChance { get; set; }
|
||||
|
||||
[JsonPropertyName("lootItemLimitsRub")]
|
||||
public required List<MinMaxLootItemValue>? LootItemLimitsRub { get; set; }
|
||||
|
||||
|
||||
@@ -18,13 +18,13 @@ public record RagfairConfig : BaseConfig
|
||||
/// Default values used to hydrate `runIntervalSeconds` with
|
||||
/// </summary>
|
||||
[JsonPropertyName("runIntervalValues")]
|
||||
public RunIntervalValues RunIntervalValues { get; set; }
|
||||
public required RunIntervalValues RunIntervalValues { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Player listing settings
|
||||
/// </summary>
|
||||
[JsonPropertyName("sell")]
|
||||
public Sell Sell { get; set; }
|
||||
public required Sell Sell { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trader ids + should their assorts be listed on flea
|
||||
@@ -33,10 +33,10 @@ public record RagfairConfig : BaseConfig
|
||||
public required Dictionary<MongoId, bool> Traders { get; set; }
|
||||
|
||||
[JsonPropertyName("dynamic")]
|
||||
public Dynamic Dynamic { get; set; }
|
||||
public required Dynamic Dynamic { get; set; }
|
||||
|
||||
[JsonPropertyName("tieredFlea")]
|
||||
public TieredFlea TieredFlea { get; set; }
|
||||
public required TieredFlea TieredFlea { get; set; }
|
||||
}
|
||||
|
||||
public record Sell
|
||||
@@ -54,13 +54,13 @@ public record Sell
|
||||
/// Settings to control chances of offer being sold
|
||||
/// </summary>
|
||||
[JsonPropertyName("chance")]
|
||||
public Chance Chance { get; set; }
|
||||
public required Chance Chance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Settings to control how long it takes for a player offer to sell
|
||||
/// </summary>
|
||||
[JsonPropertyName("time")]
|
||||
public MinMax<double> Time { get; set; }
|
||||
public required MinMax<double> Time { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Seconds from clicking remove to remove offer from market
|
||||
@@ -120,16 +120,16 @@ public record Dynamic
|
||||
/// Barter offer specific settings
|
||||
/// </summary>
|
||||
[JsonPropertyName("barter")]
|
||||
public BarterDetails Barter { get; set; }
|
||||
public required BarterDetails Barter { get; set; }
|
||||
|
||||
[JsonPropertyName("pack")]
|
||||
public PackDetails Pack { get; set; }
|
||||
public required PackDetails Pack { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dynamic offer price below handbook adjustment values
|
||||
/// </summary>
|
||||
[JsonPropertyName("offerAdjustment")]
|
||||
public OfferAdjustment OfferAdjustment { get; set; }
|
||||
public required OfferAdjustment OfferAdjustment { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How many offers should expire before an offer regeneration occurs
|
||||
@@ -141,13 +141,13 @@ public record Dynamic
|
||||
/// How many offers should be listed
|
||||
/// </summary>
|
||||
[JsonPropertyName("offerItemCount")]
|
||||
public Dictionary<string, MinMax<int>> OfferItemCount { get; set; }
|
||||
public required Dictionary<string, MinMax<int>> OfferItemCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// How much should the price of an offer vary by (percent 0.8 = 80%, 1.2 = 120%)
|
||||
/// </summary>
|
||||
[JsonPropertyName("priceRanges")]
|
||||
public PriceRanges PriceRanges { get; set; }
|
||||
public required PriceRanges PriceRanges { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should default presets to listed only or should non-standard presets found in globals.json be listed too
|
||||
@@ -159,40 +159,40 @@ public record Dynamic
|
||||
/// Tpls that should not use the variable price system when their quality is less than 100% (lower dura/uses = lower price)
|
||||
/// </summary>
|
||||
[JsonPropertyName("ignoreQualityPriceVarianceBlacklist")]
|
||||
public HashSet<MongoId> IgnoreQualityPriceVarianceBlacklist { get; set; }
|
||||
public required HashSet<MongoId> IgnoreQualityPriceVarianceBlacklist { get; set; }
|
||||
|
||||
[JsonPropertyName("endTimeSeconds")]
|
||||
public MinMax<int> EndTimeSeconds { get; set; }
|
||||
public required MinMax<int> EndTimeSeconds { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Settings to control the durability range of item items listed on flea
|
||||
/// </summary>
|
||||
[JsonPropertyName("condition")]
|
||||
public Dictionary<MongoId, Condition> Condition { get; set; }
|
||||
public required Dictionary<MongoId, Condition> Condition { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Size stackable items should be listed for in percent of max stack size
|
||||
/// </summary>
|
||||
[JsonPropertyName("stackablePercent")]
|
||||
public MinMax<double> StackablePercent { get; set; }
|
||||
public required MinMax<double> StackablePercent { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Items that cannot be stacked can have multiples sold in one offer, what range of values can be listed
|
||||
/// </summary>
|
||||
[JsonPropertyName("nonStackableCount")]
|
||||
public MinMax<int> NonStackableCount { get; set; }
|
||||
public required MinMax<int> NonStackableCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Range of rating offers for items being listed
|
||||
/// </summary>
|
||||
[JsonPropertyName("rating")]
|
||||
public MinMax<double> Rating { get; set; }
|
||||
public required MinMax<double> Rating { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Armor specific flea settings
|
||||
/// </summary>
|
||||
[JsonPropertyName("armor")]
|
||||
public ArmorSettings Armor { get; set; }
|
||||
public required ArmorSettings Armor { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// A multipler to apply to individual tpls price just prior to item quality adjustment
|
||||
@@ -207,13 +207,13 @@ public record Dynamic
|
||||
/// Percentages to sell offers in each currency
|
||||
/// </summary>
|
||||
[JsonPropertyName("currencies")]
|
||||
public Dictionary<MongoId, double> Currencies { get; set; }
|
||||
public required Dictionary<MongoId, double> Currencies { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Item tpls that should be forced to sell as a single item
|
||||
/// </summary>
|
||||
[JsonPropertyName("showAsSingleStack")]
|
||||
public HashSet<MongoId> ShowAsSingleStack { get; set; }
|
||||
public required HashSet<MongoId> ShowAsSingleStack { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should christmas/halloween items be removed from flea when not within the seasonal bounds
|
||||
@@ -225,19 +225,19 @@ public record Dynamic
|
||||
/// Flea blacklist settings
|
||||
/// </summary>
|
||||
[JsonPropertyName("blacklist")]
|
||||
public RagfairBlacklist Blacklist { get; set; }
|
||||
public required RagfairBlacklist Blacklist { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Dict of price limits keyed by item type
|
||||
/// </summary>
|
||||
[JsonPropertyName("unreasonableModPrices")]
|
||||
public Dictionary<MongoId, UnreasonableModPrices> UnreasonableModPrices { get; set; }
|
||||
public required Dictionary<MongoId, UnreasonableModPrices> UnreasonableModPrices { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Custom rouble prices for items to override values from prices.json
|
||||
/// </summary>
|
||||
[JsonPropertyName("itemPriceOverrideRouble")]
|
||||
public Dictionary<MongoId, double> ItemPriceOverrideRouble { get; set; }
|
||||
public required Dictionary<MongoId, double> ItemPriceOverrideRouble { get; set; }
|
||||
}
|
||||
|
||||
public record PriceRanges
|
||||
@@ -246,13 +246,13 @@ public record PriceRanges
|
||||
public Dictionary<string, object>? ExtensionData { get; set; }
|
||||
|
||||
[JsonPropertyName("default")]
|
||||
public MinMax<double> Default { get; set; }
|
||||
public required MinMax<double> Default { get; set; }
|
||||
|
||||
[JsonPropertyName("preset")]
|
||||
public MinMax<double> Preset { get; set; }
|
||||
public required MinMax<double> Preset { get; set; }
|
||||
|
||||
[JsonPropertyName("pack")]
|
||||
public MinMax<double> Pack { get; set; }
|
||||
public required MinMax<double> Pack { get; set; }
|
||||
}
|
||||
|
||||
public record BarterDetails
|
||||
@@ -300,7 +300,7 @@ public record BarterDetails
|
||||
/// Item Tpls to never be turned into a barter
|
||||
/// </summary>
|
||||
[JsonPropertyName("itemTypeBlacklist")]
|
||||
public HashSet<MongoId> ItemTypeBlacklist { get; set; }
|
||||
public required HashSet<MongoId> ItemTypeBlacklist { get; set; }
|
||||
}
|
||||
|
||||
public record PackDetails
|
||||
@@ -330,7 +330,7 @@ public record PackDetails
|
||||
/// item types to allow being a pack
|
||||
/// </summary>
|
||||
[JsonPropertyName("itemTypeWhitelist")]
|
||||
public HashSet<MongoId> ItemTypeWhitelist { get; set; }
|
||||
public required HashSet<MongoId> ItemTypeWhitelist { get; set; }
|
||||
}
|
||||
|
||||
public record OfferAdjustment
|
||||
@@ -375,13 +375,13 @@ public record Condition
|
||||
public double ConditionChance { get; set; }
|
||||
|
||||
[JsonPropertyName("current")]
|
||||
public MinMax<double> Current { get; set; }
|
||||
public required MinMax<double> Current { get; set; }
|
||||
|
||||
[JsonPropertyName("max")]
|
||||
public MinMax<double> Max { get; set; }
|
||||
public required MinMax<double> Max { get; set; }
|
||||
|
||||
[JsonPropertyName("_name")]
|
||||
public string Name { get; set; }
|
||||
public string? Name { get; set; }
|
||||
}
|
||||
|
||||
public record RagfairBlacklist
|
||||
@@ -399,7 +399,7 @@ public record RagfairBlacklist
|
||||
/// Custom blacklist for item Tpls
|
||||
/// </summary>
|
||||
[JsonPropertyName("custom")]
|
||||
public HashSet<MongoId> Custom { get; set; }
|
||||
public required HashSet<MongoId> Custom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// BSG blacklist a large number of items from flea, true = use blacklist
|
||||
@@ -423,7 +423,7 @@ public record RagfairBlacklist
|
||||
/// Maximum level an armor plate can be found in a flea-listed armor item
|
||||
/// </summary>
|
||||
[JsonPropertyName("armorPlate")]
|
||||
public ArmorPlateBlacklistSettings ArmorPlate { get; set; }
|
||||
public required ArmorPlateBlacklistSettings ArmorPlate { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Should specific categories be blacklisted from the flea, true = use blacklist
|
||||
@@ -435,7 +435,7 @@ public record RagfairBlacklist
|
||||
/// Custom category blacklist for parent Ids
|
||||
/// </summary>
|
||||
[JsonPropertyName("customItemCategoryList")]
|
||||
public HashSet<string> CustomItemCategoryList { get; set; }
|
||||
public required HashSet<string> CustomItemCategoryList { get; set; }
|
||||
}
|
||||
|
||||
public record ArmorPlateBlacklistSettings
|
||||
@@ -453,7 +453,7 @@ public record ArmorPlateBlacklistSettings
|
||||
/// Item slots to NOT remove from items on flea
|
||||
/// </summary>
|
||||
[JsonPropertyName("ignoreSlots")]
|
||||
public HashSet<string> IgnoreSlots { get; set; }
|
||||
public required HashSet<string> IgnoreSlots { get; set; }
|
||||
}
|
||||
|
||||
public record UnreasonableModPrices
|
||||
@@ -480,7 +480,7 @@ public record UnreasonableModPrices
|
||||
public int NewPriceHandbookMultiplier { get; set; }
|
||||
|
||||
[JsonPropertyName("itemType")]
|
||||
public string ItemType { get; set; }
|
||||
public string? ItemType { get; set; }
|
||||
}
|
||||
|
||||
public record ArmorSettings
|
||||
@@ -513,13 +513,13 @@ public record TieredFlea
|
||||
/// key: tpl, value: playerlevel
|
||||
/// </summary>
|
||||
[JsonPropertyName("unlocksTpl")]
|
||||
public Dictionary<MongoId, int> UnlocksTpl { get; set; }
|
||||
public required Dictionary<MongoId, int> UnlocksTpl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// key: item type id, value: playerlevel
|
||||
/// </summary>
|
||||
[JsonPropertyName("unlocksType")]
|
||||
public Dictionary<MongoId, int> UnlocksType { get; set; }
|
||||
public required Dictionary<MongoId, int> UnlocksType { get; set; }
|
||||
|
||||
[JsonPropertyName("ammoTplUnlocks")]
|
||||
public Dictionary<MongoId, int>? AmmoTplUnlocks { get; set; }
|
||||
|
||||
@@ -14,9 +14,6 @@ public record RepairConfig : BaseConfig
|
||||
[JsonPropertyName("applyRandomizeDurabilityLoss")]
|
||||
public bool ApplyRandomizeDurabilityLoss { get; set; }
|
||||
|
||||
[JsonPropertyName("weaponSkillRepairGain")]
|
||||
public double WeaponSkillRepairGain { get; set; }
|
||||
|
||||
[JsonPropertyName("armorKitSkillPointGainPerRepairPointMultiplier")]
|
||||
public double ArmorKitSkillPointGainPerRepairPointMultiplier { get; set; }
|
||||
|
||||
|
||||
@@ -14,10 +14,10 @@ public record WeatherConfig : BaseConfig
|
||||
public double? Acceleration { get; set; }
|
||||
|
||||
[JsonPropertyName("weather")]
|
||||
public WeatherValues? Weather { get; set; }
|
||||
public required WeatherValues Weather { get; set; }
|
||||
|
||||
[JsonPropertyName("seasonDates")]
|
||||
public List<SeasonDateTimes>? SeasonDates { get; set; }
|
||||
public required List<SeasonDateTimes> SeasonDates { get; set; }
|
||||
|
||||
[JsonPropertyName("overrideSeason")]
|
||||
public Season? OverrideSeason { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user