From 22d2aebcbe0d555e3d5d258705237114ea72d4d4 Mon Sep 17 00:00:00 2001 From: CWX Date: Sat, 12 Apr 2025 17:30:44 +0100 Subject: [PATCH] added a few more converters, Repeatables need testing --- .../Generators/RepeatableQuestGenerator.cs | 8 +++---- .../Models/Eft/Common/Tables/Quest.cs | 24 +++++++++++-------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGenerator.cs b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGenerator.cs index 75592a07..926d7b1b 100644 --- a/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGenerator.cs +++ b/Libraries/SPTarkov.Server.Core/Generators/RepeatableQuestGenerator.cs @@ -430,7 +430,7 @@ public class RepeatableQuestGenerator( { Id = _hashUtil.Generate(), DynamicLocale = true, - Target = location, + Target = new ListOrT(location, null), ConditionType = "Location" }; } @@ -456,7 +456,7 @@ public class RepeatableQuestGenerator( { Id = _hashUtil.Generate(), DynamicLocale = true, - Target = target, // e,g, "AnyPmc" + Target = new ListOrT(null, target), // e,g, "AnyPmc" Value = 1, ResetOnSessionEnd = false, EnemyHealthEffects = [], @@ -470,7 +470,7 @@ public class RepeatableQuestGenerator( if (target.StartsWith("boss")) { - killConditionProps.Target = "Savage"; + killConditionProps.Target = new ListOrT(null, "Savage"); killConditionProps.SavageRole = [target]; } @@ -812,7 +812,7 @@ public class RepeatableQuestGenerator( { Id = _hashUtil.Generate(), DynamicLocale = true, - Target = locationTarget, + Target = new ListOrT(locationTarget, null), ConditionType = "Location" }; diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs index 35e39d63..299c8506 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Common/Tables/Quest.cs @@ -437,7 +437,7 @@ public record QuestCondition { get; set; - } // TODO: string[] | string + } [JsonPropertyName("value")] [JsonConverter(typeof(StringToNumberFactoryConverter))] @@ -511,11 +511,12 @@ public record QuestCondition } [JsonPropertyName("dogtagLevel")] - public object? DogtagLevel + [JsonConverter(typeof(StringToNumberFactoryConverter))] + public int? DogtagLevel { get; set; - } // TODO: number | string + } [JsonPropertyName("traderId")] public string? TraderId @@ -525,18 +526,20 @@ public record QuestCondition } [JsonPropertyName("maxDurability")] - public object? MaxDurability + [JsonConverter(typeof(StringToNumberFactoryConverter))] + public double? MaxDurability { get; set; - } // TODO: number | string + } [JsonPropertyName("minDurability")] - public object? MinDurability + [JsonConverter(typeof(StringToNumberFactoryConverter))] + public double? MinDurability { get; set; - } // TODO: number | string + } [JsonPropertyName("counter")] public QuestConditionCounter? Counter @@ -720,11 +723,12 @@ public record QuestConditionCounterCondition } [JsonPropertyName("target")] - public object? Target + [JsonConverter(typeof(ListOrTConverterFactory))] + public ListOrT? Target { get; set; - } // TODO: string[] | string + } [JsonPropertyName("completeInSeconds")] public int? CompleteInSeconds @@ -773,7 +777,7 @@ public record QuestConditionCounterCondition { get; set; - } // TODO: number | string + } [JsonPropertyName("weapon")] public List? Weapon