more nullable

This commit is contained in:
CWX
2025-01-08 13:19:24 +00:00
parent 3ca974de8a
commit f9d04b1774
3 changed files with 173 additions and 172 deletions
+58 -58
View File
@@ -6,144 +6,144 @@ namespace Core.Models.Eft.Hideout;
public class HideoutArea
{
[JsonPropertyName("_id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("type")]
public int Type { get; set; }
public int? Type { get; set; }
[JsonPropertyName("enabled")]
public bool IsEnabled { get; set; }
public bool? IsEnabled { get; set; }
[JsonPropertyName("needsFuel")]
public bool NeedsFuel { get; set; }
public bool? NeedsFuel { get; set; }
[JsonPropertyName("requirements")]
public List<HideoutAreaRequirement> Requirements { get; set; }
public List<HideoutAreaRequirement>? Requirements { get; set; }
[JsonPropertyName("takeFromSlotLocked")]
public bool IsTakeFromSlotLocked { get; set; }
public bool? IsTakeFromSlotLocked { get; set; }
[JsonPropertyName("craftGivesExp")]
public bool CraftGivesExperience { get; set; }
public bool? CraftGivesExperience { get; set; }
[JsonPropertyName("displayLevel")]
public bool DisplayLevel { get; set; }
public bool? DisplayLevel { get; set; }
[JsonPropertyName("enableAreaRequirements")]
public bool EnableAreaRequirements { get; set; }
public bool? EnableAreaRequirements { get; set; }
[JsonPropertyName("parentArea")]
public string? ParentArea { get; set; }
[JsonPropertyName("stages")]
public Dictionary<string, Stage> Stages { get; set; }
public Dictionary<string, Stage>? Stages { get; set; }
}
public class HideoutAreaRequirement
{
[JsonPropertyName("areaType")]
public int AreaType { get; set; }
public int? AreaType { get; set; }
[JsonPropertyName("requiredLevel")]
public int RequiredLevel { get; set; }
public int? RequiredLevel { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
public string? Type { get; set; }
}
public class Stage
{
[JsonPropertyName("autoUpgrade")]
public bool AutoUpgrade { get; set; }
public bool? AutoUpgrade { get; set; }
[JsonPropertyName("bonuses")]
public List<StageBonus> Bonuses { get; set; }
public List<StageBonus>? Bonuses { get; set; }
[JsonPropertyName("constructionTime")]
public double ConstructionTime { get; set; }
public double? ConstructionTime { get; set; }
/** Containers inventory tpl */
[JsonPropertyName("container")]
public string? Container { get; set; }
[JsonPropertyName("description")]
public string Description { get; set; }
public string? Description { get; set; }
[JsonPropertyName("globalCounterId")]
public string GlobalCounterId { get; set; }
public string? GlobalCounterId { get; set; }
[JsonPropertyName("displayInterface")]
public bool DisplayInterface { get; set; }
public bool? DisplayInterface { get; set; }
[JsonPropertyName("improvements")]
public List<StageImprovement> Improvements { get; set; }
public List<StageImprovement>? Improvements { get; set; }
[JsonPropertyName("requirements")]
public List<StageRequirement> Requirements { get; set; }
public List<StageRequirement>? Requirements { get; set; }
[JsonPropertyName("slots")]
public int Slots { get; set; }
public int? Slots { get; set; }
}
public class StageImprovement
{
[JsonPropertyName("id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("bonuses")]
public List<StageImprovementBonus> Bonuses { get; set; }
public List<StageImprovementBonus>? Bonuses { get; set; }
[JsonPropertyName("improvementTime")]
public int ImprovementTime { get; set; }
public int? ImprovementTime { get; set; }
[JsonPropertyName("requirements")]
public List<StageImprovementRequirement> Requirements { get; set; }
public List<StageImprovementRequirement>? Requirements { get; set; }
}
public class StageImprovementBonus
{
[JsonPropertyName("id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("passive")]
public bool IsPassive { get; set; }
public bool? IsPassive { get; set; }
[JsonPropertyName("production")]
public bool IsProduction { get; set; }
public bool? IsProduction { get; set; }
[JsonPropertyName("skillType")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public SkillTypes SkillType { get; set; }
public SkillTypes? SkillType { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
public string? Type { get; set; }
[JsonPropertyName("value")]
public int Value { get; set; }
public int? Value { get; set; }
[JsonPropertyName("visible")]
public bool IsVisible { get; set; }
public bool? IsVisible { get; set; }
}
public class StageImprovementRequirement
{
[JsonPropertyName("count")]
public int Count { get; set; }
public int? Count { get; set; }
[JsonPropertyName("isEncoded")]
public bool IsEncoded { get; set; }
public bool? IsEncoded { get; set; }
[JsonPropertyName("isFunctional")]
public bool IsFunctional { get; set; }
public bool? IsFunctional { get; set; }
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
[JsonPropertyName("isSpawnedInSession")]
public bool IsSpawnedInSession { get; set; }
public bool? IsSpawnedInSession { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
public string? Type { get; set; }
}
public class StageRequirement : RequirementBase
@@ -155,28 +155,28 @@ public class StageRequirement : RequirementBase
public int? RequiredLevel { get; set; }
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
[JsonPropertyName("count")]
public int? Count { get; set; }
[JsonPropertyName("isEncoded")]
public bool IsEncoded { get; set; } = false;
public bool? IsEncoded { get; set; } = false;
[JsonPropertyName("isFunctional")]
public bool IsFunctional { get; set; }
public bool? IsFunctional { get; set; }
[JsonPropertyName("traderId")]
public string TraderId { get; set; }
public string? TraderId { get; set; }
[JsonPropertyName("isSpawnedInSession")]
public bool IsSpawnedInSession { get; set; }
public bool? IsSpawnedInSession { get; set; }
[JsonPropertyName("loyaltyLevel")]
public int? LoyaltyLevel { get; set; }
[JsonPropertyName("skillName")]
public string SkillName { get; set; }
public string? SkillName { get; set; }
[JsonPropertyName("skillLevel")]
public int? SkillLevel { get; set; }
@@ -185,16 +185,16 @@ public class StageRequirement : RequirementBase
public class StageBonus
{
[JsonPropertyName("value")]
public int Value { get; set; }
public int? Value { get; set; }
[JsonPropertyName("passive")]
public bool Passive { get; set; }
public bool? Passive { get; set; }
[JsonPropertyName("production")]
public bool Production { get; set; }
public bool? Production { get; set; }
[JsonPropertyName("visible")]
public bool Visible { get; set; }
public bool? Visible { get; set; }
[JsonPropertyName("skillType")]
[JsonConverter(typeof(JsonStringEnumConverter))]
@@ -202,18 +202,18 @@ public class StageBonus
[JsonPropertyName("type")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public BonusType Type { get; set; }
public BonusType? Type { get; set; }
[JsonPropertyName("filter")]
public List<string> Filter { get; set; }
public List<string>? Filter { get; set; }
[JsonPropertyName("icon")]
public string Icon { get; set; }
public string? Icon { get; set; }
/** CHANGES PER DUMP */
[JsonPropertyName("id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
}
+38 -38
View File
@@ -6,84 +6,84 @@ namespace Core.Models.Eft.Hideout;
public class HideoutProductionData
{
[JsonPropertyName("recipes")]
public List<HideoutProduction> Recipes { get; set; }
public List<HideoutProduction>? Recipes { get; set; }
[JsonPropertyName("scavRecipes")]
public List<ScavRecipe> ScavRecipes { get; set; }
public List<ScavRecipe>? ScavRecipes { get; set; }
[JsonPropertyName("cultistRecipes")]
public List<CultistRecipe> CultistRecipes { get; set; }
public List<CultistRecipe>? CultistRecipes { get; set; }
}
public class HideoutProduction
{
[JsonPropertyName("_id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("areaType")]
public int AreaType { get; set; }
public int? AreaType { get; set; }
[JsonPropertyName("requirements")]
public List<Requirement> Requirements { get; set; }
public List<Requirement>? Requirements { get; set; }
[JsonPropertyName("productionTime")]
public int ProductionTime { get; set; }
public int? ProductionTime { get; set; }
/** Tpl of item being crafted */
[JsonPropertyName("endProduct")]
public string EndProduct { get; set; }
public string? EndProduct { get; set; }
[JsonPropertyName("isEncoded")]
public bool IsEncoded { get; set; }
public bool? IsEncoded { get; set; }
[JsonPropertyName("locked")]
public bool Locked { get; set; }
public bool? Locked { get; set; }
[JsonPropertyName("needFuelForAllProductionTime")]
public bool NeedFuelForAllProductionTime { get; set; }
public bool? NeedFuelForAllProductionTime { get; set; }
[JsonPropertyName("continuous")]
public bool Continuous { get; set; }
public bool? Continuous { get; set; }
[JsonPropertyName("count")]
public int Count { get; set; }
public int? Count { get; set; }
[JsonPropertyName("productionLimitCount")]
public int ProductionLimitCount { get; set; }
public int? ProductionLimitCount { get; set; }
[JsonPropertyName("isCodeProduction")]
public bool IsCodeProduction { get; set; }
public bool? IsCodeProduction { get; set; }
}
public class Requirement : RequirementBase
{
[JsonPropertyName("templateId")]
public string? TemplateId { get; set; }
[JsonPropertyName("count")]
public int? Count { get; set; }
[JsonPropertyName("isEncoded")]
public bool? IsEncoded { get; set; }
[JsonPropertyName("isFunctional")]
public bool? IsFunctional { get; set; }
[JsonPropertyName("areaType")]
public int? AreaType { get; set; }
[JsonPropertyName("requiredLevel")]
public int? RequiredLevel { get; set; }
[JsonPropertyName("resource")]
public int? Resource { get; set; }
[JsonPropertyName("questId")]
public string? QuestId { get; set; }
[JsonPropertyName("isSpawnedInSession")]
public bool? IsSpawnedInSession { get; set; }
[JsonPropertyName("gameVersions")]
public List<string>? GameVersions { get; set; }
}
@@ -91,38 +91,38 @@ public class Requirement : RequirementBase
public class RequirementBase
{
[JsonPropertyName("type")]
public string Type { get; set; }
public string? Type { get; set; }
}
public class ScavRecipe
{
[JsonPropertyName("_id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("requirements")]
public List<Requirement> Requirements { get; set; }
public List<Requirement>? Requirements { get; set; }
[JsonPropertyName("productionTime")]
public int ProductionTime { get; set; }
public int? ProductionTime { get; set; }
[JsonPropertyName("endProducts")]
public EndProducts EndProducts { get; set; }
public EndProducts? EndProducts { get; set; }
}
public class EndProducts
{
[JsonPropertyName("Common")]
public MinMax Common { get; set; }
public MinMax? Common { get; set; }
[JsonPropertyName("Rare")]
public MinMax Rare { get; set; }
public MinMax? Rare { get; set; }
[JsonPropertyName("Superrare")]
public MinMax Superrare { get; set; }
public MinMax? Superrare { get; set; }
}
public class CultistRecipe
{
[JsonPropertyName("_id")]
public string Id { get; set; }
public string? Id { get; set; }
}
+77 -76
View File
@@ -5,25 +5,25 @@ using Core.Models.Enums.Hideout;
namespace Core.Models.Eft.Hideout;
public class QteData
public class QteData
{
[JsonPropertyName("id")]
public string Id { get; set; }
public string? Id { get; set; }
[JsonPropertyName("type")]
public QteActivityType Type { get; set; }
public QteActivityType? Type { get; set; }
[JsonPropertyName("area")]
public HideoutAreas Area { get; set; }
public HideoutAreas? Area { get; set; }
[JsonPropertyName("areaLevel")]
public int AreaLevel { get; set; }
public int? AreaLevel { get; set; }
[JsonPropertyName("quickTimeEvents")]
public List<QuickTimeEvent> QuickTimeEvents { get; set; }
public List<QuickTimeEvent>? QuickTimeEvents { get; set; }
[JsonPropertyName("requirements")]
public List<object> Requirements { get; set; }
public List<object>? Requirements { get; set; }
/*
TODO: Could be an array of any of these:
| IAreaRequirement
@@ -39,218 +39,219 @@ public class QteData
*/
[JsonPropertyName("results")]
public Dictionary<QteEffectType, QteResult> Results { get; set; }
public Dictionary<QteEffectType, QteResult>? Results { get; set; }
}
public class QuickTimeEvent
{
[JsonPropertyName("type")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public QteType EventType { get; set; }
public QteType? EventType { get; set; }
[JsonPropertyName("position")]
public Position Coordinates { get; set; }
public Position? Coordinates { get; set; }
[JsonPropertyName("startDelay")]
public double StartDelay { get; set; }
public double? StartDelay { get; set; }
[JsonPropertyName("endDelay")]
public double EndDelay { get; set; }
public double? EndDelay { get; set; }
[JsonPropertyName("speed")]
public float MovementSpeed { get; set; }
public float? MovementSpeed { get; set; }
[JsonPropertyName("successRange")]
public Position SuccessCoordinates { get; set; }
public Position? SuccessCoordinates { get; set; }
[JsonPropertyName("key")]
public string UniqueKey { get; set; }
public string? UniqueKey { get; set; }
}
public class QteRequirement
{
[JsonPropertyName("type")]
public RequirementType RequirementType { get; set; }
public RequirementType? RequirementType { get; set; }
}
public class QteResult
{
[JsonPropertyName("energy")]
public int Energy { get; set; }
public int? Energy { get; set; }
[JsonPropertyName("hydration")]
public int Hydration { get; set; }
public int? Hydration { get; set; }
[JsonPropertyName("rewardsRange")]
public List<QteEffect> RewardEffects { get; set; }
public List<QteEffect>? RewardEffects { get; set; }
}
public class QteEffect
{
[JsonPropertyName("type")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public QteRewardType EffectType { get; set; }
public QteRewardType? EffectType { get; set; }
[JsonPropertyName("skillId")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public SkillTypes SkillIdentifier { get; set; }
public SkillTypes? SkillIdentifier { get; set; }
[JsonPropertyName("levelMultipliers")]
public List<SkillLevelMultiplier> LevelMultipliers { get; set; }
public List<SkillLevelMultiplier>? LevelMultipliers { get; set; }
[JsonPropertyName("time")]
public int DurationInMilliseconds { get; set; }
public int? DurationInMilliseconds { get; set; }
[JsonPropertyName("weight")]
public float EffectWeight { get; set; }
public float? EffectWeight { get; set; }
[JsonPropertyName("result")]
[JsonConverter(typeof(JsonStringEnumConverter))]
public QteResultType ResultType { get; set; }
public QteResultType? ResultType { get; set; }
}
public class SkillLevelMultiplier
{
[JsonPropertyName("level")]
public int Level { get; set; }
public int? Level { get; set; }
[JsonPropertyName("multiplier")]
public float MultiplierValue { get; set; }
public float? MultiplierValue { get; set; }
}
public class Position
{
[JsonPropertyName("x")]
public float X { get; set; }
public float? X { get; set; }
[JsonPropertyName("y")]
public float Y { get; set; }
public float? Y { get; set; }
}
public class AreaRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Area;
public RequirementType? Type { get; set; } = RequirementType.Area;
[JsonPropertyName("areaType")]
public HideoutAreas AreaType { get; set; }
public HideoutAreas? AreaType { get; set; }
[JsonPropertyName("requiredLevel")]
public int RequiredLevel { get; set; }
public int? RequiredLevel { get; set; }
}
public class TraderUnlockRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.TraderUnlock;
public RequirementType? Type { get; set; } = RequirementType.TraderUnlock;
[JsonPropertyName("traderId")]
public string TraderId { get; set; }
public string? TraderId { get; set; }
}
public class TraderLoyaltyRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.TraderLoyalty;
public RequirementType? Type { get; set; } = RequirementType.TraderLoyalty;
[JsonPropertyName("traderId")]
public string TraderId { get; set; }
public string? TraderId { get; set; }
[JsonPropertyName("loyaltyLevel")]
public int LoyaltyLevel { get; set; }
public int? LoyaltyLevel { get; set; }
}
public class SkillRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Skill;
public RequirementType? Type { get; set; } = RequirementType.Skill;
[JsonPropertyName("skillName")]
public SkillTypes SkillName { get; set; }
public SkillTypes? SkillName { get; set; }
[JsonPropertyName("skillLevel")]
public int SkillLevel { get; set; }
public int? SkillLevel { get; set; }
}
public class ResourceRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Resource;
public RequirementType? Type { get; set; } = RequirementType.Resource;
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
[JsonPropertyName("resource")]
public int Resource { get; set; }
public int? Resource { get; set; }
}
public class ItemRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Item;
public RequirementType? Type { get; set; } = RequirementType.Item;
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
[JsonPropertyName("count")]
public int Count { get; set; }
public int? Count { get; set; }
[JsonPropertyName("isFunctional")]
public bool IsFunctional { get; set; }
public bool? IsFunctional { get; set; }
[JsonPropertyName("isEncoded")]
public bool IsEncoded { get; set; }
public bool? IsEncoded { get; set; }
}
public class ToolRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Tool;
public RequirementType? Type { get; set; } = RequirementType.Tool;
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
public string? TemplateId { get; set; }
[JsonPropertyName("count")]
public int Count { get; set; }
public int? Count { get; set; }
[JsonPropertyName("isFunctional")]
public bool IsFunctional { get; set; }
public bool? IsFunctional { get; set; }
[JsonPropertyName("isEncoded")]
public bool IsEncoded { get; set; }
public bool? IsEncoded { get; set; }
}
public class QuestRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.QuestComplete;
public RequirementType? Type { get; set; } = RequirementType.QuestComplete;
[JsonPropertyName("questId")]
public string QuestId { get; set; }
public string? QuestId { get; set; }
}
public class HealthRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.Health;
public RequirementType? Type { get; set; } = RequirementType.Health;
[JsonPropertyName("energy")]
public int Energy { get; set; }
public int? Energy { get; set; }
[JsonPropertyName("hydration")]
public int Hydration { get; set; }
public int? Hydration { get; set; }
}
public class BodyPartBuffRequirement : QteRequirement
{
[JsonPropertyName("type")]
public RequirementType Type { get; set; } = RequirementType.BodyPartBuff;
public RequirementType? Type { get; set; } = RequirementType.BodyPartBuff;
[JsonPropertyName("effectName")]
public Effect EffectName { get; set; }
public Effect? EffectName { get; set; }
[JsonPropertyName("bodyPart")]
public BodyPart BodyPart { get; set; }
public BodyPart? BodyPart { get; set; }
[JsonPropertyName("excluded")]
public bool Excluded { get; set; }
public bool? Excluded { get; set; }
}