using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Common; using SPTarkov.Server.Core.Models.Eft.Common.Tables; using SPTarkov.Server.Core.Models.Eft.Hideout; using SPTarkov.Server.Core.Models.Enums; namespace SPTarkov.Server.Core.Models.Eft.Common; public record Globals { [JsonPropertyName("config")] public required Config Configuration { get; init; } [JsonPropertyName("LocationInfection")] public required Dictionary LocationInfection { get; init; } [JsonPropertyName("bot_presets")] public required IEnumerable BotPresets { get; init; } [JsonPropertyName("BotWeaponScatterings")] public required IEnumerable BotWeaponScatterings { get; init; } [JsonPropertyName("ItemPresets")] public required Dictionary ItemPresets { get; init; } } public record PlayerSettings { [JsonPropertyName("BaseMaxMovementRolloff")] public double BaseMaxMovementRolloff { get; set; } [JsonPropertyName("EnabledOcclusionDynamicRolloff")] public bool IsEnabledOcclusionDynamicRolloff { get; set; } [JsonPropertyName("IndoorRolloffMult")] public double IndoorRolloffMultiplier { get; set; } [JsonPropertyName("MinStepSoundRolloffMult")] public double MinStepSoundRolloffMultiplier { get; set; } [JsonPropertyName("MinStepSoundVolumeMult")] public double MinStepSoundVolumeMultiplier { get; set; } [JsonPropertyName("MovementRolloffMultipliers")] public IEnumerable MovementRolloffMultipliers { get; set; } [JsonPropertyName("OutdoorRolloffMult")] public double OutdoorRolloffMultiplier { get; set; } [JsonPropertyName("SearchSoundVolume")] public SearchSoundVolumeSettings SearchSoundVolume { get; set; } } public record SearchSoundVolumeSettings { public double FpVolume { get; set; } public double TpVolume { get; set; } } public record MovementRolloffMultiplier { [JsonPropertyName("MovementState")] public string MovementState { get; set; } [JsonPropertyName("RolloffMultiplier")] public double RolloffMultiplier { get; set; } } public record RadioBroadcastSettings { [JsonPropertyName("EnabledBroadcast")] public bool EnabledBroadcast { get; set; } [JsonPropertyName("RadioStations")] public IEnumerable RadioStations { get; set; } } public record RadioStation { [JsonPropertyName("Enabled")] public bool Enabled { get; set; } [JsonPropertyName("Station")] public RadioStationType Station { get; set; } } public record ArtilleryShelling { [JsonPropertyName("ArtilleryMapsConfigs")] public Dictionary ArtilleryMapsConfigs { get; set; } [JsonPropertyName("ProjectileExplosionParams")] public ProjectileExplosionParams ProjectileExplosionParams { get; set; } [JsonPropertyName("MaxCalledShellingCount")] public double MaxCalledShellingCount { get; set; } } public record ArtilleryMapSettings { [JsonPropertyName("PlanedShellingOn")] public bool PlanedShellingOn { get; set; } [JsonPropertyName("InitShellingTimer")] public double InitShellingTimer { get; set; } [JsonPropertyName("BeforeShellingSignalTime")] public double BeforeShellingSignalTime { get; set; } [JsonPropertyName("ShellingCount")] public double ShellingCount { get; set; } [JsonPropertyName("ZonesInShelling")] public double ZonesInShelling { get; set; } [JsonPropertyName("NewZonesForEachShelling")] public bool NewZonesForEachShelling { get; set; } [JsonPropertyName("InitCalledShellingTime")] public double InitCalledShellingTime { get; set; } [JsonPropertyName("ShellingZones")] public IEnumerable ShellingZones { get; set; } [JsonPropertyName("Brigades")] public IEnumerable Brigades { get; set; } [JsonPropertyName("ArtilleryShellingAirDropSettings")] public ArtilleryShellingAirDropSettings ArtilleryShellingAirDropSettings { get; set; } [JsonPropertyName("PauseBetweenShellings")] public XYZ PauseBetweenShellings { get; set; } } public record ShellingZone { [JsonPropertyName("ID")] public double ID { get; set; } [JsonPropertyName("PointsInShellings")] public XYZ PointsInShellings { get; set; } [JsonPropertyName("ShellingRounds")] public double ShellingRounds { get; set; } [JsonPropertyName("ShotCount")] public double ShotCount { get; set; } [JsonPropertyName("PauseBetweenRounds")] public XYZ PauseBetweenRounds { get; set; } [JsonPropertyName("PauseBetweenShots")] public XYZ PauseBetweenShots { get; set; } [JsonPropertyName("Center")] public XYZ Center { get; set; } [JsonPropertyName("Rotate")] public double Rotate { get; set; } [JsonPropertyName("GridStep")] public XYZ GridStep { get; set; } [JsonPropertyName("Points")] public XYZ Points { get; set; } [JsonPropertyName("PointRadius")] public double PointRadius { get; set; } [JsonPropertyName("ExplosionDistanceRange")] public XYZ ExplosionDistanceRange { get; set; } [JsonPropertyName("AlarmStages")] public IEnumerable AlarmStages { get; set; } [JsonPropertyName("BeforeShellingSignalTime")] public double BeforeShellingSignalTime { get; set; } [JsonPropertyName("UsedInPlanedShelling")] public bool UsedInPlanedShelling { get; set; } [JsonPropertyName("UseInCalledShelling")] public bool UseInCalledShelling { get; set; } [JsonPropertyName("IsActive")] public bool IsActive { get; set; } } public record AlarmStage { [JsonPropertyName("Value")] public Position Value { get; set; } } public record Brigade { [JsonPropertyName("ID")] public double Id { get; set; } [JsonPropertyName("ArtilleryGuns")] public IEnumerable ArtilleryGuns { get; set; } } public record ArtilleryGun { [JsonPropertyName("Position")] public XYZ Position { get; set; } } public record ArtilleryShellingAirDropSettings { [JsonPropertyName("UseAirDrop")] public bool UseAirDrop { get; set; } [JsonPropertyName("AirDropTime")] public double AirDropTime { get; set; } [JsonPropertyName("AirDropPosition")] public XYZ AirDropPosition { get; set; } [JsonPropertyName("LootTemplateId")] public MongoId LootTemplateId { get; set; } } public record ProjectileExplosionParams { [JsonPropertyName("Blindness")] public XYZ Blindness { get; set; } [JsonPropertyName("Contusion")] public XYZ Contusion { get; set; } [JsonPropertyName("ArmorDistanceDistanceDamage")] public XYZ ArmorDistanceDistanceDamage { get; set; } // Checked in client [JsonPropertyName("MinExplosionDistance")] public double MinExplosionDistance { get; set; } [JsonPropertyName("MaxExplosionDistance")] public float MaxExplosionDistance { get; set; } // Checked in client [JsonPropertyName("FragmentsCount")] public int FragmentsCount { get; set; } [JsonPropertyName("Strength")] public double Strength { get; set; } // Checked in client [JsonPropertyName("ArmorDamage")] public double ArmorDamage { get; set; } // Checked in client [JsonPropertyName("StaminaBurnRate")] public double StaminaBurnRate { get; set; } // Checked in client [JsonPropertyName("PenetrationPower")] public double PenetrationPower { get; set; } [JsonPropertyName("DirectionalDamageAngle")] public double DirectionalDamageAngle { get; set; } [JsonPropertyName("DirectionalDamageMultiplier")] public double DirectionalDamageMultiplier { get; set; } [JsonPropertyName("FragmentType")] public string FragmentType { get; set; } [JsonPropertyName("DeadlyDistance")] public double DeadlyDistance { get; set; } } public record Config { [JsonPropertyName("ArtilleryShelling")] public ArtilleryShelling ArtilleryShelling { get; set; } [JsonPropertyName("AudioSettings")] public GlobalAudioSettings AudioSettings { get; set; } [JsonPropertyName("content")] public Content Content { get; set; } [JsonPropertyName("AimPunchMagnitude")] public double AimPunchMagnitude { get; set; } [JsonPropertyName("WeaponSkillProgressRate")] public double WeaponSkillProgressRate { get; set; } [JsonPropertyName("SkillAtrophy")] public bool SkillAtrophy { get; set; } [JsonPropertyName("exp")] public Exp Exp { get; set; } [JsonPropertyName("t_base_looting")] public double TBaseLooting { get; set; } [JsonPropertyName("t_base_lockpicking")] public double TBaseLockpicking { get; set; } [JsonPropertyName("armor")] public Armor Armor { get; set; } [JsonPropertyName("SessionsToShowHotKeys")] public double SessionsToShowHotKeys { get; set; } [JsonPropertyName("MaxBotsAliveOnMap")] public double MaxBotsAliveOnMap { get; set; } [JsonPropertyName("MaxBotsAliveOnMapPvE")] public double MaxBotsAliveOnMapPvE { get; set; } [JsonPropertyName("RunddansSettings")] public RunddansSettings RunddansSettings { get; set; } // Checked in client [JsonPropertyName("SavagePlayCooldown")] public int SavagePlayCooldown { get; set; } [JsonPropertyName("SavagePlayCooldownNdaFree")] public double SavagePlayCooldownNdaFree { get; set; } [JsonPropertyName("SeasonActivity")] public SeasonActivity SeasonActivity { get; set; } [JsonPropertyName("MarksmanAccuracy")] public double MarksmanAccuracy { get; set; } [JsonPropertyName("SavagePlayCooldownDevelop")] public double SavagePlayCooldownDevelop { get; set; } [JsonPropertyName("TODSkyDate")] public string TODSkyDate { get; set; } [JsonPropertyName("Mastering")] public required Mastering[] Mastering { get; set; } [JsonPropertyName("GlobalItemPriceModifier")] public double GlobalItemPriceModifier { get; set; } [JsonPropertyName("TradingUnlimitedItems")] public bool TradingUnlimitedItems { get; set; } [JsonPropertyName("TradingUnsetPersonalLimitItems")] public bool TradingUnsetPersonalLimitItems { get; set; } [JsonPropertyName("TransitSettings")] public TransitSettings TransitSettings { get; set; } [JsonPropertyName("Triggers")] public Triggers Triggers { get; set; } [JsonPropertyName("TripwiresSettings")] public TripwiresSettings TripwiresSettings { get; set; } [JsonPropertyName("MaxLoyaltyLevelForAll")] public bool MaxLoyaltyLevelForAll { get; set; } [JsonPropertyName("MountingSettings")] public MountingSettings MountingSettings { get; set; } [JsonPropertyName("GlobalLootChanceModifier")] public double GlobalLootChanceModifier { get; set; } [JsonPropertyName("GlobalLootChanceModifierPvE")] public double GlobalLootChanceModifierPvE { get; set; } [JsonPropertyName("GraphicSettings")] public GraphicSettings GraphicSettings { get; set; } [JsonPropertyName("TimeBeforeDeploy")] public double TimeBeforeDeploy { get; set; } [JsonPropertyName("TimeBeforeDeployLocal")] public double TimeBeforeDeployLocal { get; set; } [JsonPropertyName("TradingSetting")] public double TradingSetting { get; set; } [JsonPropertyName("TradingSettings")] public TradingSettings TradingSettings { get; set; } [JsonPropertyName("ItemsCommonSettings")] public ItemsCommonSettings ItemsCommonSettings { get; set; } [JsonPropertyName("LoadTimeSpeedProgress")] public double LoadTimeSpeedProgress { get; set; } [JsonPropertyName("MailItemsExpirationTimeLimitWarning")] public double MailItemsExpirationTimeLimitWarning { get; set; } [JsonPropertyName("BaseLoadTime")] public double BaseLoadTime { get; set; } [JsonPropertyName("BaseUnloadTime")] public double BaseUnloadTime { get; set; } [JsonPropertyName("BaseCheckTime")] public double BaseCheckTime { get; set; } [JsonPropertyName("BluntDamageReduceFromSoftArmorMod")] public double BluntDamageReduceFromSoftArmorMod { get; set; } [JsonPropertyName("BodyPartColliderSettings")] public BodyPartColliderSettings BodyPartColliderSettings { get; set; } [JsonPropertyName("Customization")] public Customization Customization { get; set; } [JsonPropertyName("UncheckOnShot")] public bool UncheckOnShot { get; set; } [JsonPropertyName("BotsEnabled")] public bool BotsEnabled { get; set; } [JsonPropertyName("BufferZone")] public BufferZone BufferZone { get; set; } [JsonPropertyName("Airdrop")] public AirdropGlobalSettings Airdrop { get; set; } [JsonPropertyName("ArmorMaterials")] public Dictionary ArmorMaterials { get; set; } [JsonPropertyName("ArenaEftTransferSettings")] public required 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("LegsOverdamage")] public double LegsOverdamage { get; set; } [JsonPropertyName("HandsOverdamage")] public double HandsOverdamage { get; set; } [JsonPropertyName("StomachOverdamage")] public double StomachOverdamage { get; set; } [JsonPropertyName("Health")] public Health Health { get; set; } [JsonPropertyName("rating")] public Rating Rating { get; set; } [JsonPropertyName("tournament")] public Tournament Tournament { get; set; } [JsonPropertyName("QuestSettings")] public QuestSettings QuestSettings { get; set; } [JsonPropertyName("RagFair")] public RagFair RagFair { get; set; } [JsonPropertyName("handbook")] public Handbook Handbook { get; set; } [JsonPropertyName("FractureCausedByFalling")] public Probability FractureCausedByFalling { get; set; } [JsonPropertyName("FractureCausedByBulletHit")] public Probability FractureCausedByBulletHit { 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("Stamina")] public Stamina Stamina { get; set; } [JsonPropertyName("StaminaRestoration")] public StaminaRestoration StaminaRestoration { get; set; } [JsonPropertyName("StaminaDrain")] public StaminaDrain StaminaDrain { get; set; } [JsonPropertyName("RequirementReferences")] public RequirementReferences RequirementReferences { get; set; } [JsonPropertyName("RestrictionsInRaid")] public required RestrictionsInRaid[] RestrictionsInRaid { get; set; } [JsonPropertyName("SkillMinEffectiveness")] public double SkillMinEffectiveness { get; set; } [JsonPropertyName("SkillFatiguePerPoint")] public double SkillFatiguePerPoint { get; set; } [JsonPropertyName("SkillFreshEffectiveness")] public double SkillFreshEffectiveness { get; set; } [JsonPropertyName("SkillFreshPoints")] public double SkillFreshPoints { get; set; } [JsonPropertyName("SkillPointsBeforeFatigue")] public double SkillPointsBeforeFatigue { get; set; } [JsonPropertyName("SkillFatigueReset")] public double SkillFatigueReset { get; set; } [JsonPropertyName("DiscardLimitsEnabled")] public bool DiscardLimitsEnabled { get; set; } [JsonPropertyName("EnvironmentSettings")] public EnvironmentUISettings EnvironmentSettings { get; set; } [JsonPropertyName("EventSettings")] public EventSettings EventSettings { get; set; } [JsonPropertyName("FavoriteItemsSettings")] public FavoriteItemsSettings FavoriteItemsSettings { get; set; } [JsonPropertyName("VaultingSettings")] public VaultingSettings VaultingSettings { get; set; } [JsonPropertyName("BTRSettings")] public BTRSettings BTRSettings { get; set; } [JsonPropertyName("EventType")] public required List EventType { get; set; } [JsonPropertyName("WalkSpeed")] public XYZ WalkSpeed { get; set; } [JsonPropertyName("SprintSpeed")] public XYZ SprintSpeed { get; set; } [JsonPropertyName("SquadSettings")] public SquadSettings SquadSettings { get; set; } [JsonPropertyName("SkillEnduranceWeightThreshold")] public double SkillEnduranceWeightThreshold { get; set; } [JsonPropertyName("TeamSearchingTimeout")] public double TeamSearchingTimeout { get; set; } [JsonPropertyName("Insurance")] public Insurance Insurance { get; set; } [JsonPropertyName("SkillExpPerLevel")] public double SkillExpPerLevel { get; set; } [JsonPropertyName("GameSearchingTimeout")] public double GameSearchingTimeout { get; set; } [JsonPropertyName("WallContusionAbsorption")] public XYZ WallContusionAbsorption { get; set; } [JsonPropertyName("WeaponFastDrawSettings")] public WeaponFastDrawSettings WeaponFastDrawSettings { get; set; } [JsonPropertyName("SkillsSettings")] public SkillsSettings SkillsSettings { get; set; } [JsonPropertyName("AzimuthPanelShowsPlayerOrientation")] public bool AzimuthPanelShowsPlayerOrientation { get; set; } [JsonPropertyName("Aiming")] public Aiming Aiming { get; set; } [JsonPropertyName("Malfunction")] public Malfunction Malfunction { get; set; } [JsonPropertyName("Overheat")] public Overheat Overheat { get; set; } [JsonPropertyName("FenceSettings")] public FenceSettings FenceSettings { get; set; } [JsonPropertyName("TestValue")] public double TestValue { get; set; } [JsonPropertyName("Inertia")] public Inertia Inertia { get; set; } [JsonPropertyName("Ballistic")] public Ballistic Ballistic { get; set; } [JsonPropertyName("RepairSettings")] public RepairSettings RepairSettings { get; set; } public CoopSettings CoopSettings { get; set; } public PveSettings PveSettings { get; set; } } public record GlobalAudioSettings { [JsonPropertyName("RadioBroadcastSettings")] public RadioBroadcastSettings RadioBroadcastSettings { get; set; } } public record Triggers { public Dictionary> HandlerDamage { get; set; } } public record DamageData { public int Amount { get; set; } [JsonConverter(typeof(JsonStringEnumConverter))] public BodyPartColliderType BodyPartColliderType { get; set; } } public record HandlerDamageObject { public int Amount { get; set; } public string BodyPartColliderType { get; set; } } public record PveSettings { public IEnumerable AvailableVersions { get; set; } public bool ModeEnabled { get; set; } } public record CoopSettings { public IEnumerable AvailableVersions { get; set; } } public record RunddansSettings { [JsonPropertyName("accessKeys")] public IEnumerable AccessKeys { get; set; } [JsonPropertyName("active")] public bool Active { get; set; } [JsonPropertyName("activePVE")] public bool ActivePVE { get; set; } [JsonPropertyName("applyFrozenEverySec")] public double ApplyFrozenEverySec { get; set; } [JsonPropertyName("initialFrozenDelaySec")] public double InitialFrozenDelaySec { get; set; } [JsonPropertyName("consumables")] public IEnumerable Consumables { get; set; } [JsonPropertyName("drunkImmunitySec")] public double DrunkImmunitySec { get; set; } [JsonPropertyName("durability")] public XY Durability { get; set; } [JsonPropertyName("fireDistanceToHeat")] public double FireDistanceToHeat { get; set; } [JsonPropertyName("grenadeDistanceToBreak")] public double GrenadeDistanceToBreak { get; set; } [JsonPropertyName("interactionDistance")] public double InteractionDistance { get; set; } [JsonPropertyName("knifeCritChanceToBreak")] public double KnifeCritChanceToBreak { get; set; } [JsonPropertyName("locations")] public IEnumerable Locations { get; set; } [JsonPropertyName("multitoolRepairSec")] public double MultitoolRepairSec { get; set; } [JsonPropertyName("nonExitsLocations")] public IEnumerable NonExitsLocations { get; set; } [JsonPropertyName("rainForFrozen")] public double RainForFrozen { get; set; } [JsonPropertyName("repairSec")] public double RepairSec { get; set; } [JsonPropertyName("secToBreak")] public XY SecToBreak { get; set; } [JsonPropertyName("sleighLocations")] public IEnumerable SleighLocations { get; set; } } public record SeasonActivity { [JsonPropertyName("InfectionHalloween")] public SeasonActivityHalloween InfectionHalloween { get; set; } } public record SeasonActivityHalloween { [JsonPropertyName("DisplayUIEnabled")] public bool DisplayUIEnabled { get; set; } [JsonPropertyName("Enabled")] public bool Enabled { get; set; } [JsonPropertyName("ZombieBleedMul")] public double ZombieBleedMul { get; set; } } public record EnvironmentUISettings { public EnvironmentUIData EnvironmentUIData { get; set; } } public record EnvironmentUIData { public required string[] TheUnheardEditionEnvironmentUiType { get; set; } } public record 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 record BodyPartColliderPart { [JsonPropertyName("PenetrationChance")] public double PenetrationChance { get; set; } [JsonPropertyName("PenetrationDamageMod")] public double PenetrationDamageMod { get; set; } [JsonPropertyName("PenetrationLevel")] public double PenetrationLevel { get; set; } } public record WeaponFastDrawSettings { [JsonPropertyName("HandShakeCurveFrequency")] public double HandShakeCurveFrequency { get; set; } [JsonPropertyName("HandShakeCurveIntensity")] public double HandShakeCurveIntensity { get; set; } [JsonPropertyName("HandShakeMaxDuration")] public double HandShakeMaxDuration { get; set; } [JsonPropertyName("HandShakeTremorIntensity")] public double HandShakeTremorIntensity { get; set; } [JsonPropertyName("WeaponFastSwitchMaxSpeedMult")] public double WeaponFastSwitchMaxSpeedMult { get; set; } [JsonPropertyName("WeaponFastSwitchMinSpeedMult")] public double WeaponFastSwitchMinSpeedMult { get; set; } [JsonPropertyName("WeaponPistolFastSwitchMaxSpeedMult")] public double WeaponPistolFastSwitchMaxSpeedMult { get; set; } [JsonPropertyName("WeaponPistolFastSwitchMinSpeedMult")] public double WeaponPistolFastSwitchMinSpeedMult { get; set; } } public record EventSettings { [JsonPropertyName("EventActive")] public bool EventActive { get; set; } [JsonPropertyName("EventTime")] public double EventTime { get; set; } [JsonPropertyName("EventWeather")] public EventWeather EventWeather { get; set; } [JsonPropertyName("ExitTimeMultiplier")] public double ExitTimeMultiplier { get; set; } [JsonPropertyName("StaminaMultiplier")] public double StaminaMultiplier { get; set; } [JsonPropertyName("SummonFailedWeather")] public EventWeather SummonFailedWeather { get; set; } [JsonPropertyName("SummonSuccessWeather")] public EventWeather SummonSuccessWeather { get; set; } [JsonPropertyName("WeatherChangeTime")] public double WeatherChangeTime { get; set; } } public record EventWeather { [JsonPropertyName("Cloudness")] public double Cloudness { get; set; } [JsonPropertyName("Hour")] public double Hour { get; set; } [JsonPropertyName("Minute")] public double Minute { get; set; } [JsonPropertyName("Rain")] public double Rain { get; set; } [JsonPropertyName("RainRandomness")] public double RainRandomness { get; set; } [JsonPropertyName("ScaterringFogDensity")] public double ScaterringFogDensity { get; set; } [JsonPropertyName("TopWindDirection")] public XYZ TopWindDirection { get; set; } [JsonPropertyName("Wind")] public double Wind { get; set; } [JsonPropertyName("WindDirection")] public double WindDirection { get; set; } } public record TransitSettings { [JsonPropertyName("BearPriceMod")] public double BearPriceMod { get; set; } [JsonPropertyName("ClearAllPlayerEffectsOnTransit")] public bool ClearAllPlayerEffectsOnTransit { get; set; } [JsonPropertyName("CoefficientDiscountCharisma")] public double CoefficientDiscountCharisma { get; set; } [JsonPropertyName("DeliveryMinPrice")] public double DeliveryMinPrice { get; set; } [JsonPropertyName("DeliveryPrice")] public double DeliveryPrice { get; set; } [JsonPropertyName("ModDeliveryCost")] public double ModDeliveryCost { get; set; } [JsonPropertyName("PercentageOfMissingEnergyRestore")] public double PercentageOfMissingEnergyRestore { get; set; } [JsonPropertyName("PercentageOfMissingHealthRestore")] public double PercentageOfMissingHealthRestore { get; set; } [JsonPropertyName("PercentageOfMissingWaterRestore")] public double PercentageOfMissingWaterRestore { get; set; } [JsonPropertyName("RestoreHealthOnDestroyedParts")] public bool RestoreHealthOnDestroyedParts { get; set; } [JsonPropertyName("ScavPriceMod")] public double ScavPriceMod { get; set; } [JsonPropertyName("UsecPriceMod")] public double UsecPriceMod { get; set; } [JsonPropertyName("active")] public bool Active { get; set; } } public record TripwiresSettings { [JsonPropertyName("CollisionCapsuleCheckCoef")] public double CollisionCapsuleCheckCoef { get; set; } [JsonPropertyName("CollisionCapsuleRadius")] public double CollisionCapsuleRadius { get; set; } [JsonPropertyName("DefuseTimeSeconds")] public double DefuseTimeSeconds { get; set; } [JsonPropertyName("DestroyedSeconds")] public double DestroyedSeconds { get; set; } [JsonPropertyName("GroundDotProductTolerance")] public double GroundDotProductTolerance { get; set; } [JsonPropertyName("InertSeconds")] public double InertSeconds { get; set; } [JsonPropertyName("InteractionSqrDistance")] public double InteractionSqrDistance { get; set; } [JsonPropertyName("MaxHeightDifference")] public double MaxHeightDifference { get; set; } [JsonPropertyName("MaxLength")] public double MaxLength { get; set; } [JsonPropertyName("MaxPreviewLength")] public double MaxPreviewLength { get; set; } [JsonPropertyName("MaxTripwireToPlayerDistance")] public double MaxTripwireToPlayerDistance { get; set; } [JsonPropertyName("MinLength")] public double MinLength { get; set; } [JsonPropertyName("MultitoolDefuseTimeSeconds")] public double MultitoolDefuseTimeSeconds { get; set; } [JsonPropertyName("ShotSqrDistance")] public double ShotSqrDistance { get; set; } } public record MountingSettings { [JsonPropertyName("MovementSettings")] public MountingMovementSettings MovementSettings { get; set; } [JsonPropertyName("PointDetectionSettings")] public MountingPointDetectionSettings PointDetectionSettings { get; set; } } public record MountingMovementSettings { [JsonPropertyName("ApproachTime")] public double ApproachTime { get; set; } [JsonPropertyName("ApproachTimeDeltaAngleModifier")] public double ApproachTimeDeltaAngleModifier { get; set; } [JsonPropertyName("ExitTime")] public double ExitTime { get; set; } [JsonPropertyName("MaxApproachTime")] public double MaxApproachTime { get; set; } [JsonPropertyName("MaxPitchLimitExcess")] public double MaxPitchLimitExcess { get; set; } [JsonPropertyName("MaxVerticalMountAngle")] public double MaxVerticalMountAngle { get; set; } [JsonPropertyName("MaxYawLimitExcess")] public double MaxYawLimitExcess { get; set; } [JsonPropertyName("MinApproachTime")] public double MinApproachTime { get; set; } [JsonPropertyName("MountingCameraSpeed")] public double MountingCameraSpeed { get; set; } [JsonPropertyName("MountingSwayFactorModifier")] public double MountingSwayFactorModifier { get; set; } [JsonPropertyName("PitchLimitHorizontal")] public XYZ PitchLimitHorizontal { get; set; } [JsonPropertyName("PitchLimitHorizontalBipod")] public XYZ PitchLimitHorizontalBipod { get; set; } [JsonPropertyName("PitchLimitVertical")] public XYZ PitchLimitVertical { get; set; } [JsonPropertyName("RotationSpeedClamp")] public double RotationSpeedClamp { get; set; } [JsonPropertyName("SensitivityMultiplier")] public double SensitivityMultiplier { get; set; } } public record MountingPointDetectionSettings { [JsonPropertyName("CheckHorizontalSecondaryOffset")] public double CheckHorizontalSecondaryOffset { get; set; } [JsonPropertyName("CheckWallOffset")] public double CheckWallOffset { get; set; } [JsonPropertyName("EdgeDetectionDistance")] public double EdgeDetectionDistance { get; set; } [JsonPropertyName("GridMaxHeight")] public double GridMaxHeight { get; set; } [JsonPropertyName("GridMinHeight")] public double GridMinHeight { get; set; } [JsonPropertyName("HorizontalGridFromTopOffset")] public double HorizontalGridFromTopOffset { get; set; } [JsonPropertyName("HorizontalGridSize")] public double HorizontalGridSize { get; set; } [JsonPropertyName("HorizontalGridStepsAmount")] public double HorizontalGridStepsAmount { get; set; } [JsonPropertyName("MaxFramesForRaycast")] public double MaxFramesForRaycast { get; set; } [JsonPropertyName("MaxHorizontalMountAngleDotDelta")] public double MaxHorizontalMountAngleDotDelta { get; set; } [JsonPropertyName("MaxProneMountAngleDotDelta")] public double MaxProneMountAngleDotDelta { get; set; } [JsonPropertyName("MaxVerticalMountAngleDotDelta")] public double MaxVerticalMountAngleDotDelta { get; set; } [JsonPropertyName("PointHorizontalMountOffset")] public double PointHorizontalMountOffset { get; set; } [JsonPropertyName("PointVerticalMountOffset")] public double PointVerticalMountOffset { get; set; } [JsonPropertyName("RaycastDistance")] public double RaycastDistance { get; set; } [JsonPropertyName("SecondCheckVerticalDistance")] public double SecondCheckVerticalDistance { get; set; } [JsonPropertyName("SecondCheckVerticalGridOffset")] public double SecondCheckVerticalGridOffset { get; set; } [JsonPropertyName("SecondCheckVerticalGridSize")] public double SecondCheckVerticalGridSize { get; set; } [JsonPropertyName("SecondCheckVerticalGridSizeStepsAmount")] public double SecondCheckVerticalGridSizeStepsAmount { get; set; } [JsonPropertyName("VerticalGridSize")] public double VerticalGridSize { get; set; } [JsonPropertyName("VerticalGridStepsAmount")] public double VerticalGridStepsAmount { get; set; } } public record GraphicSettings { [JsonPropertyName("ExperimentalFogInCity")] public bool ExperimentalFogInCity { get; set; } } public record BufferZone { [JsonPropertyName("CustomerAccessTime")] public double CustomerAccessTime { get; set; } [JsonPropertyName("CustomerCriticalTimeStart")] public double CustomerCriticalTimeStart { get; set; } [JsonPropertyName("CustomerKickNotifTime")] public double CustomerKickNotifTime { get; set; } } public record ItemsCommonSettings { [JsonPropertyName("ItemRemoveAfterInterruptionTime")] public double ItemRemoveAfterInterruptionTime { get; set; } [JsonPropertyName("MaxBackpackInserting")] public double MaxBackpackInserting { get; set; } } public record TradingSettings { [JsonPropertyName("BuyRestrictionMaxBonus")] public Dictionary BuyRestrictionMaxBonus { get; set; } [JsonPropertyName("BuyoutRestrictions")] public BuyoutRestrictions BuyoutRestrictions { get; set; } } public record BuyRestrictionMaxBonus { [JsonPropertyName("multiplier")] public double Multiplier { get; set; } } public record BuyoutRestrictions { [JsonPropertyName("MinDurability")] public double MinDurability { get; set; } [JsonPropertyName("MinFoodDrinkResource")] public double MinFoodDrinkResource { get; set; } [JsonPropertyName("MinMedsResource")] public double MinMedsResource { get; set; } } public record Content { [JsonPropertyName("ip")] public string Ip { get; set; } [JsonPropertyName("port")] public double Port { get; set; } [JsonPropertyName("root")] public string Root { get; set; } } public record Exp { [JsonPropertyName("heal")] public Heal Heal { get; set; } [JsonPropertyName("match_end")] public MatchEnd MatchEnd { get; set; } [JsonPropertyName("kill")] public Kill Kill { get; set; } [JsonPropertyName("level")] public Level Level { get; set; } [JsonPropertyName("loot_attempts")] public IEnumerable LootAttempts { get; set; } // Confirmed in client [JsonPropertyName("expForLevelOneDogtag")] public double ExpForLevelOneDogtag { get; set; } // Confirmed in client [JsonPropertyName("expForLockedDoorOpen")] public int ExpForLockedDoorOpen { get; set; } // Confirmed in client [JsonPropertyName("expForLockedDoorBreach")] public int ExpForLockedDoorBreach { get; set; } [JsonPropertyName("triggerMult")] public double TriggerMult { get; set; } } public record Heal { [JsonPropertyName("expForHeal")] public double ExpForHeal { get; set; } [JsonPropertyName("expForHydration")] public double ExpForHydration { get; set; } [JsonPropertyName("expForEnergy")] public double ExpForEnergy { get; set; } } public record MatchEnd { [JsonPropertyName("README")] public string ReadMe { get; set; } // Confirmed in client [JsonPropertyName("survived_exp_requirement")] public int SurvivedExperienceRequirement { get; set; } // Confirmed in client [JsonPropertyName("survived_seconds_requirement")] public int SurvivedSecondsRequirement { get; set; } // Confirmed in client [JsonPropertyName("survived_exp_reward")] public int SurvivedExperienceReward { get; set; } // Confirmed in client [JsonPropertyName("mia_exp_reward")] public int MiaExperienceReward { get; set; } [JsonPropertyName("runner_exp_reward")] public int RunnerExperienceReward { get; set; } [JsonPropertyName("leftMult")] public double LeftMultiplier { get; set; } [JsonPropertyName("miaMult")] public double MiaMultiplier { get; set; } [JsonPropertyName("survivedMult")] public double SurvivedMultiplier { get; set; } [JsonPropertyName("runnerMult")] public double RunnerMultiplier { get; set; } [JsonPropertyName("killedMult")] public double KilledMultiplier { get; set; } [JsonPropertyName("transit_exp_reward")] public double TransitExperienceReward { get; set; } [JsonPropertyName("transit_mult")] public IEnumerable> TransitMultiplier { get; set; } } public record Kill { [JsonPropertyName("combo")] public required Combo[] Combos { get; set; } [JsonPropertyName("victimLevelExp")] public double VictimLevelExperience { get; set; } [JsonPropertyName("headShotMult")] public double HeadShotMultiplier { get; set; } [JsonPropertyName("expOnDamageAllHealth")] public double ExperienceOnDamageAllHealth { get; set; } [JsonPropertyName("longShotDistance")] public double LongShotDistance { get; set; } [JsonPropertyName("bloodLossToLitre")] public double BloodLossToLitre { get; set; } [JsonPropertyName("botExpOnDamageAllHealth")] public double BotExperienceOnDamageAllHealth { get; set; } [JsonPropertyName("botHeadShotMult")] public double BotHeadShotMultiplier { get; set; } [JsonPropertyName("victimBotLevelExp")] public double VictimBotLevelExperience { get; set; } [JsonPropertyName("pmcExpOnDamageAllHealth")] public double PmcExperienceOnDamageAllHealth { get; set; } [JsonPropertyName("pmcHeadShotMult")] public double PmcHeadShotMultiplier { get; set; } } public record Combo { [JsonPropertyName("percent")] public double Percentage { get; set; } } public record Level { [JsonPropertyName("exp_table")] public required ExpTable[] ExperienceTable { get; set; } [JsonPropertyName("trade_level")] public double TradeLevel { get; set; } [JsonPropertyName("savage_level")] public double SavageLevel { get; set; } [JsonPropertyName("clan_level")] public double ClanLevel { get; set; } [JsonPropertyName("mastering1")] public double Mastering1 { get; set; } [JsonPropertyName("mastering2")] public double Mastering2 { get; set; } } public record ExpTable { [JsonPropertyName("exp")] public int Experience { get; set; } } public record LootAttempt { [JsonPropertyName("k_exp")] public double ExperiencePoints { get; set; } } public record Armor { [JsonPropertyName("class")] public IEnumerable Classes { get; set; } } public record Class { // Checked in client [JsonPropertyName("resistance")] public int Resistance { get; set; } } public record Mastering { [JsonPropertyName("Name")] public string Name { get; set; } [JsonPropertyName("Templates")] public IEnumerable Templates { get; set; } [JsonPropertyName("Progress")] public double Progress { get; set; } // Checked in client [JsonPropertyName("Level2")] public int Level2 { get; set; } // Checked in client [JsonPropertyName("Level3")] public int Level3 { get; set; } } public record Customization { [JsonPropertyName("SavageHead")] public Dictionary Head { get; set; } [JsonPropertyName("SavageBody")] public Dictionary Body { get; set; } [JsonPropertyName("SavageFeet")] public Dictionary Feet { get; set; } [JsonPropertyName("CustomizationVoice")] public IEnumerable VoiceOptions { get; set; } [JsonPropertyName("BodyParts")] public BodyParts BodyParts { get; set; } } public record WildHead { [JsonPropertyName("head")] public string Head { get; set; } [JsonPropertyName("isNotRandom")] public bool IsNotRandom { get; set; } [JsonPropertyName("NotRandom")] public bool NotRandom { get; set; } [JsonPropertyName("isSupportingSimpleAnimator")] public bool IsSupportingSimpleAnimator { get; set; } } public record WildBody { [JsonPropertyName("body")] public MongoId Body { get; set; } [JsonPropertyName("hands")] public MongoId Hands { get; set; } [JsonPropertyName("isNotRandom")] public bool IsNotRandom { get; set; } [JsonPropertyName("isSupportingSimpleAnimator")] public bool IsSupportingSimpleAnimator { get; set; } } public record WildFeet { [JsonPropertyName("feet")] public string Feet { get; set; } [JsonPropertyName("isNotRandom")] public bool IsNotRandom { get; set; } [JsonPropertyName("NotRandom")] public bool NotRandom { get; set; } [JsonPropertyName("isSupportingSimpleAnimator")] public bool IsSupportingSimpleAnimator { get; set; } } public record CustomizationVoice { [JsonPropertyName("voice")] public string Voice { get; set; } [JsonPropertyName("side")] public IEnumerable Side { get; set; } [JsonPropertyName("isNotRandom")] public bool IsNotRandom { get; set; } } public record BodyParts { public string Head { get; set; } public string Body { get; set; } public string Feet { get; set; } public string Hands { get; set; } } public record 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 record KarmaCalculationSettings { [JsonPropertyName("defaultPveKarmaValue")] public double DefaultPveKarmaValue { get; set; } [JsonPropertyName("enable")] public bool Enable { get; set; } [JsonPropertyName("expireDaysAfterLastRaid")] public double ExpireDaysAfterLastRaid { get; set; } [JsonPropertyName("maxKarmaThresholdPercentile")] public double MaxKarmaThresholdPercentile { get; set; } [JsonPropertyName("minKarmaThresholdPercentile")] public double MinKarmaThresholdPercentile { get; set; } [JsonPropertyName("minSurvivedRaidCount")] public double MinSurvivedRaidCount { get; set; } } public record 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 record ArmorType { [JsonPropertyName("Destructibility")] public double Destructibility { get; set; } [JsonPropertyName("MinRepairDegradation")] public double MinRepairDegradation { get; set; } [JsonPropertyName("MaxRepairDegradation")] public double MaxRepairDegradation { get; set; } [JsonPropertyName("ExplosionDestructibility")] public double ExplosionDestructibility { get; set; } [JsonPropertyName("MinRepairKitDegradation")] public double MinRepairKitDegradation { get; set; } [JsonPropertyName("MaxRepairKitDegradation")] public double MaxRepairKitDegradation { get; set; } } public record Health { [JsonPropertyName("Falling")] public Falling Falling { get; set; } [JsonPropertyName("Effects")] public Effects Effects { get; set; } [JsonPropertyName("HealPrice")] public HealPrice HealPrice { get; set; } [JsonPropertyName("ProfileHealthSettings")] public ProfileHealthSettings ProfileHealthSettings { get; set; } } public record Falling { [JsonPropertyName("DamagePerMeter")] public double DamagePerMeter { get; set; } [JsonPropertyName("SafeHeight")] public double SafeHeight { get; set; } } public record Effects { [JsonPropertyName("Existence")] public Existence Existence { get; set; } [JsonPropertyName("Dehydration")] public Dehydration Dehydration { get; set; } [JsonPropertyName("BreakPart")] public BreakPart BreakPart { get; set; } [JsonPropertyName("Contusion")] public Contusion Contusion { get; set; } [JsonPropertyName("Disorientation")] public Disorientation Disorientation { get; set; } [JsonPropertyName("Exhaustion")] public Exhaustion Exhaustion { get; set; } [JsonPropertyName("LowEdgeHealth")] public LowEdgeHealth LowEdgeHealth { get; set; } [JsonPropertyName("RadExposure")] public RadExposure RadExposure { get; set; } [JsonPropertyName("Stun")] public Stun Stun { get; set; } [JsonPropertyName("Intoxication")] public Intoxication Intoxication { get; set; } [JsonPropertyName("Regeneration")] public Regeneration Regeneration { get; set; } [JsonPropertyName("Wound")] public Wound Wound { get; set; } [JsonPropertyName("Berserk")] public Berserk Berserk { get; set; } [JsonPropertyName("Flash")] public Flash Flash { get; set; } [JsonPropertyName("MedEffect")] public MedEffect MedEffect { get; set; } [JsonPropertyName("Pain")] public Pain Pain { get; set; } [JsonPropertyName("PainKiller")] public PainKiller PainKiller { get; set; } [JsonPropertyName("SandingScreen")] public SandingScreen SandingScreen { get; set; } [JsonPropertyName("MildMusclePain")] public MusclePainEffect MildMusclePain { get; set; } [JsonPropertyName("SevereMusclePain")] public MusclePainEffect SevereMusclePain { get; set; } [JsonPropertyName("Stimulator")] public Stimulator Stimulator { get; set; } [JsonPropertyName("Tremor")] public Tremor Tremor { get; set; } [JsonPropertyName("ChronicStaminaFatigue")] public ChronicStaminaFatigue ChronicStaminaFatigue { get; set; } [JsonPropertyName("Fracture")] public Fracture Fracture { get; set; } [JsonPropertyName("HeavyBleeding")] public HeavyBleeding HeavyBleeding { get; set; } [JsonPropertyName("LightBleeding")] public LightBleeding LightBleeding { get; set; } [JsonPropertyName("BodyTemperature")] public BodyTemperature BodyTemperature { get; set; } [JsonPropertyName("ZombieInfection")] public ZombieInfection ZombieInfection { get; set; } } public record ZombieInfection { [JsonPropertyName("Dehydration")] public double Dehydration { 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; } } public record Existence { [JsonPropertyName("EnergyLoopTime")] public double EnergyLoopTime { get; set; } [JsonPropertyName("HydrationLoopTime")] public double HydrationLoopTime { get; set; } [JsonPropertyName("EnergyDamage")] public double EnergyDamage { get; set; } [JsonPropertyName("HydrationDamage")] public double HydrationDamage { get; set; } [JsonPropertyName("DestroyedStomachEnergyTimeFactor")] public double DestroyedStomachEnergyTimeFactor { get; set; } [JsonPropertyName("DestroyedStomachHydrationTimeFactor")] public double DestroyedStomachHydrationTimeFactor { get; set; } } public record Dehydration { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("BleedingHealth")] public double BleedingHealth { get; set; } [JsonPropertyName("BleedingLoopTime")] public double BleedingLoopTime { get; set; } [JsonPropertyName("BleedingLifeTime")] public double BleedingLifeTime { get; set; } [JsonPropertyName("DamageOnStrongDehydration")] public double DamageOnStrongDehydration { get; set; } [JsonPropertyName("StrongDehydrationLoopTime")] public double StrongDehydrationLoopTime { get; set; } } public record BreakPart { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } [JsonPropertyName("OfflineDurationMin")] public double OfflineDurationMin { get; set; } [JsonPropertyName("OfflineDurationMax")] public double OfflineDurationMax { get; set; } [JsonPropertyName("RemovePrice")] public double RemovePrice { get; set; } [JsonPropertyName("RemovedAfterDeath")] public bool RemovedAfterDeath { get; set; } [JsonPropertyName("BulletHitProbability")] public Probability BulletHitProbability { get; set; } [JsonPropertyName("FallingProbability")] public Probability FallingProbability { get; set; } } public record Contusion { [JsonPropertyName("Dummy")] public double Dummy { get; set; } } public record Disorientation { [JsonPropertyName("Dummy")] public double Dummy { get; set; } } public record Exhaustion { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("Damage")] public double Damage { get; set; } [JsonPropertyName("DamageLoopTime")] public double DamageLoopTime { get; set; } } public record LowEdgeHealth { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("StartCommonHealth")] public double StartCommonHealth { get; set; } } public record RadExposure { [JsonPropertyName("Damage")] public double Damage { get; set; } [JsonPropertyName("DamageLoopTime")] public double DamageLoopTime { get; set; } } public record Stun { [JsonPropertyName("Dummy")] public double Dummy { get; set; } } public record Intoxication { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("DamageHealth")] public double DamageHealth { get; set; } [JsonPropertyName("HealthLoopTime")] public double HealthLoopTime { get; set; } [JsonPropertyName("OfflineDurationMin")] public double OfflineDurationMin { get; set; } [JsonPropertyName("OfflineDurationMax")] public double OfflineDurationMax { get; set; } [JsonPropertyName("RemovedAfterDeath")] public bool RemovedAfterDeath { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } [JsonPropertyName("RemovePrice")] public double RemovePrice { get; set; } } public record Regeneration { [JsonPropertyName("LoopTime")] public double LoopTime { get; set; } [JsonPropertyName("MinimumHealthPercentage")] public double MinimumHealthPercentage { get; set; } [JsonPropertyName("Energy")] public double Energy { get; set; } [JsonPropertyName("Hydration")] public double Hydration { get; set; } [JsonPropertyName("BodyHealth")] public BodyHealth BodyHealth { get; set; } [JsonPropertyName("Influences")] public Influences Influences { get; set; } } public record BodyHealth { [JsonPropertyName("Head")] public BodyHealthValue Head { get; set; } [JsonPropertyName("Chest")] public BodyHealthValue Chest { get; set; } [JsonPropertyName("Stomach")] public BodyHealthValue Stomach { get; set; } [JsonPropertyName("LeftArm")] public BodyHealthValue LeftArm { get; set; } [JsonPropertyName("RightArm")] public BodyHealthValue RightArm { get; set; } [JsonPropertyName("LeftLeg")] public BodyHealthValue LeftLeg { get; set; } [JsonPropertyName("RightLeg")] public BodyHealthValue RightLeg { get; set; } } public record BodyHealthValue { [JsonPropertyName("Value")] public double Value { get; set; } } public record Influences { [JsonPropertyName("LightBleeding")] public Influence LightBleeding { get; set; } [JsonPropertyName("HeavyBleeding")] public Influence HeavyBleeding { get; set; } [JsonPropertyName("Fracture")] public Influence Fracture { get; set; } [JsonPropertyName("RadExposure")] public Influence RadExposure { get; set; } [JsonPropertyName("Intoxication")] public Influence Intoxication { get; set; } } public record Influence { [JsonPropertyName("HealthSlowDownPercentage")] public double HealthSlowDownPercentage { get; set; } [JsonPropertyName("EnergySlowDownPercentage")] public double EnergySlowDownPercentage { get; set; } [JsonPropertyName("HydrationSlowDownPercentage")] public double HydrationSlowDownPercentage { get; set; } } public record Wound { [JsonPropertyName("WorkingTime")] public double WorkingTime { get; set; } [JsonPropertyName("ThresholdMin")] public double ThresholdMin { get; set; } [JsonPropertyName("ThresholdMax")] public double ThresholdMax { get; set; } } public record Berserk { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("WorkingTime")] public double WorkingTime { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } } public record Flash { [JsonPropertyName("Dummy")] public double Dummy { get; set; } } public record MedEffect { [JsonPropertyName("LoopTime")] public double LoopTime { get; set; } [JsonPropertyName("StartDelay")] public double StartDelay { get; set; } [JsonPropertyName("DrinkStartDelay")] public double DrinkStartDelay { get; set; } [JsonPropertyName("FoodStartDelay")] public double FoodStartDelay { get; set; } [JsonPropertyName("DrugsStartDelay")] public double DrugsStartDelay { get; set; } [JsonPropertyName("MedKitStartDelay")] public double MedKitStartDelay { get; set; } [JsonPropertyName("MedicalStartDelay")] public double MedicalStartDelay { get; set; } [JsonPropertyName("StimulatorStartDelay")] public double StimulatorStartDelay { get; set; } } public record Pain { [JsonPropertyName("TremorDelay")] public double TremorDelay { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } } public record PainKiller { public double Dummy { get; set; } } public record SandingScreen { public double Dummy { get; set; } } public record MusclePainEffect { public double GymEffectivity { get; set; } public double OfflineDurationMax { get; set; } public double OfflineDurationMin { get; set; } public double TraumaChance { get; set; } } public record Stimulator { public double BuffLoopTime { get; set; } public Dictionary> Buffs { get; set; } } public record Buff { [JsonPropertyName("BuffType")] public string BuffType { get; set; } [JsonPropertyName("Chance")] public double Chance { get; set; } [JsonPropertyName("Delay")] public double Delay { get; set; } [JsonPropertyName("Duration")] public double Duration { get; set; } [JsonPropertyName("Value")] public double Value { get; set; } [JsonPropertyName("AbsoluteValue")] public bool AbsoluteValue { get; set; } [JsonPropertyName("SkillName")] public string SkillName { get; set; } public IEnumerable AppliesTo { get; set; } } public record Tremor { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } } public record ChronicStaminaFatigue { [JsonPropertyName("EnergyRate")] public double EnergyRate { get; set; } [JsonPropertyName("WorkingTime")] public double WorkingTime { get; set; } [JsonPropertyName("TicksEvery")] public double TicksEvery { get; set; } [JsonPropertyName("EnergyRatePerStack")] public double EnergyRatePerStack { get; set; } } public record Fracture { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } [JsonPropertyName("OfflineDurationMin")] public double OfflineDurationMin { get; set; } [JsonPropertyName("OfflineDurationMax")] public double OfflineDurationMax { get; set; } [JsonPropertyName("RemovePrice")] public double RemovePrice { get; set; } [JsonPropertyName("RemovedAfterDeath")] public bool RemovedAfterDeath { get; set; } [JsonPropertyName("BulletHitProbability")] public Probability BulletHitProbability { get; set; } [JsonPropertyName("FallingProbability")] public Probability FallingProbability { get; set; } } public record HeavyBleeding { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("DamageEnergy")] public double DamageEnergy { get; set; } [JsonPropertyName("DamageHealth")] public double DamageHealth { get; set; } [JsonPropertyName("EnergyLoopTime")] public double EnergyLoopTime { get; set; } [JsonPropertyName("HealthLoopTime")] public double HealthLoopTime { get; set; } [JsonPropertyName("DamageHealthDehydrated")] public double DamageHealthDehydrated { get; set; } [JsonPropertyName("HealthLoopTimeDehydrated")] public double HealthLoopTimeDehydrated { get; set; } [JsonPropertyName("LifeTimeDehydrated")] public double LifeTimeDehydrated { get; set; } [JsonPropertyName("EliteVitalityDuration")] public double EliteVitalityDuration { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } [JsonPropertyName("OfflineDurationMin")] public double OfflineDurationMin { get; set; } [JsonPropertyName("OfflineDurationMax")] public double OfflineDurationMax { get; set; } [JsonPropertyName("RemovePrice")] public double RemovePrice { get; set; } [JsonPropertyName("RemovedAfterDeath")] public bool RemovedAfterDeath { get; set; } [JsonPropertyName("Probability")] public Probability Probability { get; set; } } public record Probability { [JsonPropertyName("FunctionType")] public string FunctionType { get; set; } [JsonPropertyName("K")] public double K { get; set; } [JsonPropertyName("B")] public double B { get; set; } [JsonPropertyName("Threshold")] public double Threshold { get; set; } } public record LightBleeding { [JsonPropertyName("DefaultDelay")] public double DefaultDelay { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("DamageEnergy")] public double DamageEnergy { get; set; } [JsonPropertyName("DamageHealth")] public double DamageHealth { get; set; } [JsonPropertyName("EnergyLoopTime")] public double EnergyLoopTime { get; set; } [JsonPropertyName("HealthLoopTime")] public double HealthLoopTime { get; set; } [JsonPropertyName("DamageHealthDehydrated")] public double DamageHealthDehydrated { get; set; } [JsonPropertyName("HealthLoopTimeDehydrated")] public double HealthLoopTimeDehydrated { get; set; } [JsonPropertyName("LifeTimeDehydrated")] public double LifeTimeDehydrated { get; set; } [JsonPropertyName("EliteVitalityDuration")] public double EliteVitalityDuration { get; set; } [JsonPropertyName("HealExperience")] public double HealExperience { get; set; } [JsonPropertyName("OfflineDurationMin")] public double OfflineDurationMin { get; set; } [JsonPropertyName("OfflineDurationMax")] public double OfflineDurationMax { get; set; } [JsonPropertyName("RemovePrice")] public double RemovePrice { get; set; } [JsonPropertyName("RemovedAfterDeath")] public bool RemovedAfterDeath { get; set; } [JsonPropertyName("Probability")] public Probability Probability { get; set; } } public record BodyTemperature { [JsonPropertyName("DefaultBuildUpTime")] public double DefaultBuildUpTime { get; set; } [JsonPropertyName("DefaultResidueTime")] public double DefaultResidueTime { get; set; } [JsonPropertyName("LoopTime")] public double LoopTime { get; set; } } public record HealPrice { [JsonPropertyName("HealthPointPrice")] public double HealthPointPrice { get; set; } [JsonPropertyName("HydrationPointPrice")] public double HydrationPointPrice { get; set; } [JsonPropertyName("EnergyPointPrice")] public double EnergyPointPrice { get; set; } [JsonPropertyName("TrialLevels")] public double TrialLevels { get; set; } [JsonPropertyName("TrialRaids")] public double TrialRaids { get; set; } } public record ProfileHealthSettings { [JsonPropertyName("BodyPartsSettings")] public BodyPartsSettings BodyPartsSettings { get; set; } [JsonPropertyName("HealthFactorsSettings")] public HealthFactorsSettings HealthFactorsSettings { get; set; } [JsonPropertyName("DefaultStimulatorBuff")] public string DefaultStimulatorBuff { get; set; } } public record BodyPartsSettings { [JsonPropertyName("Head")] public BodyPartsSetting Head { get; set; } [JsonPropertyName("Chest")] public BodyPartsSetting Chest { get; set; } [JsonPropertyName("Stomach")] public BodyPartsSetting Stomach { get; set; } [JsonPropertyName("LeftArm")] public BodyPartsSetting LeftArm { get; set; } [JsonPropertyName("RightArm")] public BodyPartsSetting RightArm { get; set; } [JsonPropertyName("LeftLeg")] public BodyPartsSetting LeftLeg { get; set; } [JsonPropertyName("RightLeg")] public BodyPartsSetting RightLeg { get; set; } } public record BodyPartsSetting { [JsonPropertyName("Minimum")] public double Minimum { get; set; } [JsonPropertyName("Maximum")] public double Maximum { get; set; } [JsonPropertyName("Default")] public double Default { get; set; } [JsonPropertyName("EnvironmentDamageMultiplier")] public float EnvironmentDamageMultiplier { get; set; } [JsonPropertyName("OverDamageReceivedMultiplier")] public float OverDamageReceivedMultiplier { get; set; } } public record HealthFactorsSettings { [JsonPropertyName("Energy")] public HealthFactorSetting Energy { get; set; } [JsonPropertyName("Hydration")] public HealthFactorSetting Hydration { get; set; } [JsonPropertyName("Temperature")] public HealthFactorSetting Temperature { get; set; } [JsonPropertyName("Poisoning")] public HealthFactorSetting Poisoning { get; set; } [JsonPropertyName("Radiation")] public HealthFactorSetting Radiation { get; set; } } public record HealthFactorSetting { [JsonPropertyName("Minimum")] public double Minimum { get; set; } [JsonPropertyName("Maximum")] public double Maximum { get; set; } [JsonPropertyName("Default")] public double Default { get; set; } } public record Rating { [JsonPropertyName("levelRequired")] public double LevelRequired { get; set; } [JsonPropertyName("limit")] public double Limit { get; set; } [JsonPropertyName("categories")] public Categories Categories { get; set; } } public record Categories { [JsonPropertyName("experience")] public bool Experience { get; set; } [JsonPropertyName("kd")] public bool Kd { get; set; } [JsonPropertyName("surviveRatio")] public bool SurviveRatio { get; set; } [JsonPropertyName("avgEarnings")] public bool AvgEarnings { get; set; } [JsonPropertyName("pmcKills")] public bool PmcKills { get; set; } [JsonPropertyName("raidCount")] public bool RaidCount { get; set; } [JsonPropertyName("longestShot")] public bool LongestShot { get; set; } [JsonPropertyName("timeOnline")] public bool TimeOnline { get; set; } [JsonPropertyName("inventoryFullCost")] public bool InventoryFullCost { get; set; } [JsonPropertyName("ragFairStanding")] public bool RagFairStanding { get; set; } } public record Tournament { [JsonPropertyName("categories")] public TournamentCategories Categories { get; set; } [JsonPropertyName("limit")] public double Limit { get; set; } [JsonPropertyName("levelRequired")] public double LevelRequired { get; set; } } public record TournamentCategories { [JsonPropertyName("dogtags")] public bool Dogtags { get; set; } } public record RagFair { [JsonPropertyName("enabled")] public bool Enabled { get; set; } [JsonPropertyName("priceStabilizerEnabled")] public bool PriceStabilizerEnabled { get; set; } [JsonPropertyName("includePveTraderSales")] public bool IncludePveTraderSales { get; set; } [JsonPropertyName("priceStabilizerStartIntervalInHours")] public double PriceStabilizerStartIntervalInHours { get; set; } // Checked in client [JsonPropertyName("minUserLevel")] public int MinUserLevel { get; set; } [JsonPropertyName("communityTax")] public float CommunityTax { get; set; } [JsonPropertyName("communityItemTax")] public float CommunityItemTax { get; set; } // Checked in client [JsonPropertyName("communityRequirementTax")] public double CommunityRequirementTax { get; set; } [JsonPropertyName("offerPriorityCost")] public float OfferPriorityCost { get; set; } [JsonPropertyName("offerDurationTimeInHour")] public double OfferDurationTimeInHour { get; set; } [JsonPropertyName("offerDurationTimeInHourAfterRemove")] public double OfferDurationTimeInHourAfterRemove { get; set; } [JsonPropertyName("priorityTimeModifier")] public float PriorityTimeModifier { get; set; } [JsonPropertyName("maxRenewOfferTimeInHour")] public double MaxRenewOfferTimeInHour { get; set; } [JsonPropertyName("renewPricePerHour")] public float RenewPricePerHour { get; set; } [JsonPropertyName("maxActiveOfferCount")] public IEnumerable MaxActiveOfferCount { get; set; } [JsonPropertyName("balancerRemovePriceCoefficient")] public float BalancerRemovePriceCoefficient { get; set; } [JsonPropertyName("balancerMinPriceCount")] public float BalancerMinPriceCount { get; set; } [JsonPropertyName("balancerAveragePriceCoefficient")] public float BalancerAveragePriceCoefficient { get; set; } [JsonPropertyName("delaySinceOfferAdd")] public int DelaySinceOfferAdd { get; set; } [JsonPropertyName("uniqueBuyerTimeoutInDays")] public double UniqueBuyerTimeoutInDays { get; set; } [JsonPropertyName("userRatingChangeFrequencyMultiplayer")] public float UserRatingChangeFrequencyMultiplayer { get; set; } [JsonPropertyName("RagfairTurnOnTimestamp")] public long RagfairTurnOnTimestamp { get; set; } [JsonPropertyName("ratingSumForIncrease")] public double RatingSumForIncrease { get; set; } [JsonPropertyName("ratingIncreaseCount")] public double RatingIncreaseCount { get; set; } [JsonPropertyName("ratingSumForDecrease")] public double RatingSumForDecrease { get; set; } [JsonPropertyName("ratingDecreaseCount")] public double RatingDecreaseCount { get; set; } [JsonPropertyName("maxSumForIncreaseRatingPerOneSale")] public double MaxSumForIncreaseRatingPerOneSale { get; set; } [JsonPropertyName("maxSumForDecreaseRatingPerOneSale")] public double MaxSumForDecreaseRatingPerOneSale { get; set; } [JsonPropertyName("maxSumForRarity")] public MaxSumForRarity MaxSumForRarity { get; set; } [JsonPropertyName("ChangePriceCoef")] public double ChangePriceCoef { get; set; } [JsonPropertyName("ItemRestrictions")] public IEnumerable ItemRestrictions { get; set; } [JsonPropertyName("balancerUserItemSaleCooldownEnabled")] public bool BalancerUserItemSaleCooldownEnabled { get; set; } [JsonPropertyName("balancerUserItemSaleCooldown")] public float BalancerUserItemSaleCooldown { get; set; } [JsonPropertyName("youSellOfferMaxStorageTimeInHour")] public double YouSellOfferMaxStorageTimeInHour { get; set; } [JsonPropertyName("yourOfferDidNotSellMaxStorageTimeInHour")] public double YourOfferDidNotSellMaxStorageTimeInHour { get; set; } [JsonPropertyName("isOnlyFoundInRaidAllowed")] public bool IsOnlyFoundInRaidAllowed { get; set; } [JsonPropertyName("sellInOnePiece")] public double SellInOnePiece { get; set; } } public record ItemGlobalRestrictions { [JsonPropertyName("MaxFlea")] public double MaxFlea { get; set; } [JsonPropertyName("MaxFleaStacked")] public double MaxFleaStacked { get; set; } [JsonPropertyName("TemplateId")] public MongoId TemplateId { get; set; } } public record MaxActiveOfferCount { [JsonPropertyName("from")] public double From { get; set; } [JsonPropertyName("to")] public double To { get; set; } [JsonPropertyName("count")] public double Count { get; set; } [JsonPropertyName("countForSpecialEditions")] public double CountForSpecialEditions { get; set; } } public record MaxSumForRarity { [JsonPropertyName("Common")] public RarityMaxSum Common { get; set; } [JsonPropertyName("Rare")] public RarityMaxSum Rare { get; set; } [JsonPropertyName("Superrare")] public RarityMaxSum Superrare { get; set; } [JsonPropertyName("Not_exist")] public RarityMaxSum NotExist { get; set; } } public record RarityMaxSum { [JsonPropertyName("value")] public double Value { get; set; } } public record Handbook { [JsonPropertyName("defaultCategory")] public string DefaultCategory { get; set; } } public record Stamina { [JsonPropertyName("Capacity")] public double Capacity { get; set; } [JsonPropertyName("SprintDrainRate")] public double SprintDrainRate { get; set; } [JsonPropertyName("BaseRestorationRate")] public double BaseRestorationRate { get; set; } [JsonPropertyName("BipodAimDrainRateMultiplier")] public double BipodAimDrainRateMultiplier { get; set; } [JsonPropertyName("JumpConsumption")] public double JumpConsumption { get; set; } [JsonPropertyName("MountingHorizontalAimDrainRateMultiplier")] public double MountingHorizontalAimDrainRateMultiplier { get; set; } [JsonPropertyName("MountingVerticalAimDrainRateMultiplier")] public double MountingVerticalAimDrainRateMultiplier { get; set; } [JsonPropertyName("GrenadeHighThrow")] public double GrenadeHighThrow { get; set; } [JsonPropertyName("GrenadeLowThrow")] public double GrenadeLowThrow { get; set; } [JsonPropertyName("AimDrainRate")] public double AimDrainRate { get; set; } [JsonPropertyName("AimRangeFinderDrainRate")] public double AimRangeFinderDrainRate { get; set; } [JsonPropertyName("OxygenCapacity")] public double OxygenCapacity { get; set; } [JsonPropertyName("OxygenRestoration")] public double OxygenRestoration { get; set; } [JsonPropertyName("WalkOverweightLimits")] public XYZ WalkOverweightLimits { get; set; } [JsonPropertyName("BaseOverweightLimits")] public XYZ BaseOverweightLimits { get; set; } [JsonPropertyName("SprintOverweightLimits")] public XYZ SprintOverweightLimits { get; set; } [JsonPropertyName("WalkSpeedOverweightLimits")] public XYZ WalkSpeedOverweightLimits { get; set; } [JsonPropertyName("CrouchConsumption")] public XYZ CrouchConsumption { get; set; } [JsonPropertyName("WalkConsumption")] public XYZ WalkConsumption { get; set; } [JsonPropertyName("StandupConsumption")] public XYZ StandupConsumption { get; set; } [JsonPropertyName("TransitionSpeed")] public XYZ TransitionSpeed { get; set; } [JsonPropertyName("SprintAccelerationLowerLimit")] public double SprintAccelerationLowerLimit { get; set; } [JsonPropertyName("SprintSpeedLowerLimit")] public double SprintSpeedLowerLimit { get; set; } [JsonPropertyName("SprintSensitivityLowerLimit")] public double SprintSensitivityLowerLimit { get; set; } [JsonPropertyName("AimConsumptionByPose")] public XYZ AimConsumptionByPose { get; set; } [JsonPropertyName("RestorationMultiplierByPose")] public XYZ RestorationMultiplierByPose { get; set; } [JsonPropertyName("OverweightConsumptionByPose")] public XYZ OverweightConsumptionByPose { get; set; } [JsonPropertyName("AimingSpeedMultiplier")] public double AimingSpeedMultiplier { get; set; } [JsonPropertyName("WalkVisualEffectMultiplier")] public double WalkVisualEffectMultiplier { get; set; } [JsonPropertyName("WeaponFastSwitchConsumption")] public double WeaponFastSwitchConsumption { get; set; } [JsonPropertyName("HandsCapacity")] public double HandsCapacity { get; set; } [JsonPropertyName("HandsRestoration")] public double HandsRestoration { get; set; } [JsonPropertyName("ProneConsumption")] public double ProneConsumption { get; set; } [JsonPropertyName("BaseHoldBreathConsumption")] public double BaseHoldBreathConsumption { get; set; } [JsonPropertyName("SoundRadius")] public XYZ SoundRadius { get; set; } [JsonPropertyName("ExhaustedMeleeSpeed")] public double ExhaustedMeleeSpeed { get; set; } [JsonPropertyName("FatigueRestorationRate")] public double FatigueRestorationRate { get; set; } [JsonPropertyName("FatigueAmountToCreateEffect")] public double FatigueAmountToCreateEffect { get; set; } [JsonPropertyName("ExhaustedMeleeDamageMultiplier")] public double ExhaustedMeleeDamageMultiplier { get; set; } [JsonPropertyName("FallDamageMultiplier")] public double FallDamageMultiplier { get; set; } [JsonPropertyName("SafeHeightOverweight")] public double SafeHeightOverweight { get; set; } [JsonPropertyName("SitToStandConsumption")] public double SitToStandConsumption { get; set; } [JsonPropertyName("StaminaExhaustionCausesJiggle")] public bool StaminaExhaustionCausesJiggle { get; set; } [JsonPropertyName("StaminaExhaustionStartsBreathSound")] public bool StaminaExhaustionStartsBreathSound { get; set; } [JsonPropertyName("StaminaExhaustionRocksCamera")] public bool StaminaExhaustionRocksCamera { get; set; } [JsonPropertyName("HoldBreathStaminaMultiplier")] public XYZ HoldBreathStaminaMultiplier { get; set; } [JsonPropertyName("PoseLevelIncreaseSpeed")] public XYZ PoseLevelIncreaseSpeed { get; set; } [JsonPropertyName("PoseLevelDecreaseSpeed")] public XYZ PoseLevelDecreaseSpeed { 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 record StaminaRestoration { [JsonPropertyName("LowerLeftPoint")] public double LowerLeftPoint { get; set; } [JsonPropertyName("LowerRightPoint")] public double LowerRightPoint { get; set; } [JsonPropertyName("LeftPlatoPoint")] public double LeftPlatoPoint { get; set; } [JsonPropertyName("RightPlatoPoint")] public double RightPlatoPoint { get; set; } [JsonPropertyName("RightLimit")] public double RightLimit { get; set; } [JsonPropertyName("ZeroValue")] public double ZeroValue { get; set; } } public record StaminaDrain { [JsonPropertyName("LowerLeftPoint")] public double LowerLeftPoint { get; set; } [JsonPropertyName("LowerRightPoint")] public double LowerRightPoint { get; set; } [JsonPropertyName("LeftPlatoPoint")] public double LeftPlatoPoint { get; set; } [JsonPropertyName("RightPlatoPoint")] public double RightPlatoPoint { get; set; } [JsonPropertyName("RightLimit")] public double RightLimit { get; set; } [JsonPropertyName("ZeroValue")] public double ZeroValue { get; set; } } public record RequirementReferences { [JsonPropertyName("Alpinist")] public IEnumerable Alpinists { get; set; } } public record Alpinist { [JsonPropertyName("Requirement")] public string Requirement { get; set; } [JsonPropertyName("Id")] public string Id { get; set; } [JsonPropertyName("Count")] public double Count { get; set; } [JsonPropertyName("RequiredSlot")] public string RequiredSlot { get; set; } [JsonPropertyName("RequirementTip")] public string RequirementTip { get; set; } } public record RestrictionsInRaid { [JsonPropertyName("MaxInLobby")] public double MaxInLobby { get; set; } [JsonPropertyName("MaxInRaid")] public double MaxInRaid { get; set; } [JsonPropertyName("TemplateId")] public MongoId TemplateId { get; set; } } public record FavoriteItemsSettings { [JsonPropertyName("WeaponStandMaxItemsCount")] public double WeaponStandMaxItemsCount { get; set; } [JsonPropertyName("PlaceOfFameMaxItemsCount")] public double PlaceOfFameMaxItemsCount { get; set; } } public record VaultingSettings { [JsonPropertyName("IsActive")] public bool IsActive { get; set; } [JsonPropertyName("VaultingInputTime")] public double VaultingInputTime { get; set; } [JsonPropertyName("GridSettings")] public VaultingGridSettings GridSettings { get; set; } [JsonPropertyName("MovesSettings")] public VaultingMovesSettings MovesSettings { get; set; } } public record VaultingGridSettings { [JsonPropertyName("GridSizeX")] public double GridSizeX { get; set; } [JsonPropertyName("GridSizeY")] public double GridSizeY { get; set; } [JsonPropertyName("GridSizeZ")] public double GridSizeZ { get; set; } [JsonPropertyName("SteppingLengthX")] public double SteppingLengthX { get; set; } [JsonPropertyName("SteppingLengthY")] public double SteppingLengthY { get; set; } [JsonPropertyName("SteppingLengthZ")] public double SteppingLengthZ { get; set; } [JsonPropertyName("GridOffsetX")] public double GridOffsetX { get; set; } [JsonPropertyName("GridOffsetY")] public double GridOffsetY { get; set; } [JsonPropertyName("GridOffsetZ")] public double GridOffsetZ { get; set; } [JsonPropertyName("OffsetFactor")] public double OffsetFactor { get; set; } } public record VaultingMovesSettings { [JsonPropertyName("VaultSettings")] public VaultingSubMoveSettings VaultSettings { get; set; } [JsonPropertyName("ClimbSettings")] public VaultingSubMoveSettings ClimbSettings { get; set; } } public record VaultingSubMoveSettings { [JsonPropertyName("IsActive")] public bool IsActive { get; set; } [JsonPropertyName("MaxWithoutHandHeight")] public double MaxWithoutHandHeight { get; set; } public double MaxOneHandHeight { get; set; } [JsonPropertyName("SpeedRange")] public XYZ SpeedRange { get; set; } [JsonPropertyName("MoveRestrictions")] public MoveRestrictions MoveRestrictions { get; set; } [JsonPropertyName("AutoMoveRestrictions")] public MoveRestrictions AutoMoveRestrictions { get; set; } } public record MoveRestrictions { [JsonPropertyName("IsActive")] public bool IsActive { get; set; } [JsonPropertyName("MinDistantToInteract")] public double MinDistantToInteract { get; set; } [JsonPropertyName("MinHeight")] public double MinHeight { get; set; } [JsonPropertyName("MaxHeight")] public double MaxHeight { get; set; } [JsonPropertyName("MinLength")] public double MinLength { get; set; } [JsonPropertyName("MaxLength")] public double MaxLength { get; set; } } public record BTRSettings { [JsonPropertyName("LocationsWithBTR")] public IEnumerable LocationsWithBTR { get; set; } [JsonPropertyName("BasePriceTaxi")] public double BasePriceTaxi { get; set; } [JsonPropertyName("AddPriceTaxi")] public double AddPriceTaxi { get; set; } [JsonPropertyName("CleanUpPrice")] public double CleanUpPrice { get; set; } [JsonPropertyName("DeliveryPrice")] public double DeliveryPrice { get; set; } [JsonPropertyName("ModDeliveryCost")] public double ModDeliveryCost { get; set; } [JsonPropertyName("BearPriceMod")] public double BearPriceMod { get; set; } [JsonPropertyName("UsecPriceMod")] public double UsecPriceMod { get; set; } [JsonPropertyName("ScavPriceMod")] public double ScavPriceMod { get; set; } [JsonPropertyName("CoefficientDiscountCharisma")] public double CoefficientDiscountCharisma { get; set; } [JsonPropertyName("DeliveryMinPrice")] public double DeliveryMinPrice { get; set; } [JsonPropertyName("TaxiMinPrice")] public double TaxiMinPrice { get; set; } [JsonPropertyName("BotCoverMinPrice")] public double BotCoverMinPrice { get; set; } [JsonPropertyName("MapsConfigs")] public Dictionary MapsConfigs { get; set; } [JsonPropertyName("DiameterWheel")] public double DiameterWheel { get; set; } [JsonPropertyName("HeightWheel")] public double HeightWheel { get; set; } [JsonPropertyName("HeightWheelMaxPosLimit")] public double HeightWheelMaxPosLimit { get; set; } [JsonPropertyName("HeightWheelMinPosLimit")] public double HeightWheelMinPosLimit { get; set; } [JsonPropertyName("SnapToSurfaceWheelsSpeed")] public double SnapToSurfaceWheelsSpeed { get; set; } [JsonPropertyName("CheckSurfaceForWheelsTimer")] public double CheckSurfaceForWheelsTimer { get; set; } [JsonPropertyName("HeightWheelOffset")] public double HeightWheelOffset { get; set; } } public record BtrMapConfig { /// /// Known values: Tarcola, Cleare, Dirt, HeavyDirt /// [JsonPropertyName("BtrSkin")] public string BtrSkin { get; set; } [JsonPropertyName("CheckSurfaceForWheelsTimer")] public double CheckSurfaceForWheelsTimer { get; set; } [JsonPropertyName("DiameterWheel")] public double DiameterWheel { get; set; } [JsonPropertyName("HeightWheel")] public double HeightWheel { get; set; } [JsonPropertyName("HeightWheelMaxPosLimit")] public double HeightWheelMaxPosLimit { get; set; } [JsonPropertyName("HeightWheelMinPosLimit")] public double HeightWheelMinPosLimit { get; set; } [JsonPropertyName("HeightWheelOffset")] public double HeightWheelOffset { get; set; } [JsonPropertyName("SnapToSurfaceWheelsSpeed")] public double SnapToSurfaceWheelsSpeed { get; set; } [JsonPropertyName("SuspensionDamperStiffness")] public double SuspensionDamperStiffness { get; set; } [JsonPropertyName("SuspensionRestLength")] public double SuspensionRestLength { get; set; } [JsonPropertyName("SuspensionSpringStiffness")] public double SuspensionSpringStiffness { get; set; } [JsonPropertyName("SuspensionTravel")] public double SuspensionTravel { get; set; } [JsonPropertyName("SuspensionWheelRadius")] public double SuspensionWheelRadius { get; set; } [JsonPropertyName("mapID")] public string MapID { get; set; } [JsonPropertyName("pathsConfigurations")] public IEnumerable PathsConfigurations { get; set; } } public record PathConfig { [JsonPropertyName("active")] public bool Active { get; set; } /// /// Not mongoId /// [JsonPropertyName("id")] public string Id { get; set; } [JsonPropertyName("enterPoint")] public string EnterPoint { get; set; } [JsonPropertyName("exitPoint")] public string ExitPoint { get; set; } [JsonPropertyName("pathPoints")] public IEnumerable PathPoints { get; set; } [JsonPropertyName("once")] public bool Once { get; set; } [JsonPropertyName("circle")] public bool Circle { get; set; } [JsonPropertyName("circleCount")] public double CircleCount { get; set; } [JsonPropertyName("skinType")] public IEnumerable SkinType { get; set; } } public record SquadSettings { [JsonPropertyName("CountOfRequestsToOnePlayer")] public double CountOfRequestsToOnePlayer { get; set; } [JsonPropertyName("SecondsForExpiredRequest")] public double SecondsForExpiredRequest { get; set; } [JsonPropertyName("SendRequestDelaySeconds")] public double SendRequestDelaySeconds { get; set; } } public record Insurance { [JsonPropertyName("ChangeForReturnItemsInOfflineRaid")] public double ChangeForReturnItemsInOfflineRaid { get; set; } [JsonPropertyName("MaxStorageTimeInHour")] public double MaxStorageTimeInHour { get; set; } [JsonPropertyName("CoefOfSendingMessageTime")] public double CoefOfSendingMessageTime { get; set; } [JsonPropertyName("CoefOfHavingMarkOfUnknown")] public double CoefOfHavingMarkOfUnknown { get; set; } [JsonPropertyName("EditionSendingMessageTime")] public Dictionary EditionSendingMessageTime { get; set; } [JsonPropertyName("OnlyInDeathCase")] public bool OnlyInDeathCase { get; set; } } public record MessageSendTimeMultiplier { [JsonPropertyName("multiplier")] public double Multiplier { get; set; } } public record SkillsSettings { [JsonPropertyName("SkillProgressRate")] public double SkillProgressRate { get; set; } [JsonPropertyName("WeaponSkillProgressRate")] public double WeaponSkillProgressRate { get; set; } [JsonPropertyName("WeaponSkillRecoilBonusPerLevel")] public double WeaponSkillRecoilBonusPerLevel { get; set; } [JsonPropertyName("HideoutManagement")] public HideoutManagement HideoutManagement { get; set; } [JsonPropertyName("Crafting")] public Crafting Crafting { get; set; } [JsonPropertyName("Metabolism")] public Metabolism Metabolism { get; set; } [JsonPropertyName("MountingErgonomicsBonusPerLevel")] public double MountingErgonomicsBonusPerLevel { get; set; } [JsonPropertyName("Immunity")] public Immunity Immunity { get; set; } [JsonPropertyName("Endurance")] public Endurance Endurance { get; set; } [JsonPropertyName("Strength")] public Strength Strength { get; set; } [JsonPropertyName("Vitality")] public Vitality Vitality { get; set; } [JsonPropertyName("Health")] public HealthSkillProgress Health { get; set; } [JsonPropertyName("StressResistance")] public StressResistance StressResistance { get; set; } [JsonPropertyName("Throwing")] public Throwing Throwing { get; set; } [JsonPropertyName("RecoilControl")] public RecoilControl RecoilControl { get; set; } [JsonPropertyName("Pistol")] public WeaponSkills Pistol { get; set; } [JsonPropertyName("Revolver")] public WeaponSkills Revolver { get; set; } [JsonPropertyName("SMG")] public IEnumerable SMG { get; set; } [JsonPropertyName("Assault")] public WeaponSkills Assault { get; set; } [JsonPropertyName("Shotgun")] public WeaponSkills Shotgun { get; set; } [JsonPropertyName("Sniper")] public WeaponSkills Sniper { get; set; } [JsonPropertyName("LMG")] public IEnumerable LMG { get; set; } [JsonPropertyName("HMG")] public IEnumerable HMG { get; set; } [JsonPropertyName("Launcher")] public IEnumerable Launcher { get; set; } [JsonPropertyName("AttachedLauncher")] public IEnumerable AttachedLauncher { get; set; } [JsonPropertyName("Melee")] public MeleeSkill Melee { get; set; } [JsonPropertyName("DMR")] public WeaponSkills DMR { get; set; } [JsonPropertyName("BearAssaultoperations")] public IEnumerable BearAssaultoperations { get; set; } [JsonPropertyName("BearAuthority")] public IEnumerable BearAuthority { get; set; } [JsonPropertyName("BearAksystems")] public IEnumerable BearAksystems { get; set; } [JsonPropertyName("BearHeavycaliber")] public IEnumerable BearHeavycaliber { get; set; } [JsonPropertyName("BearRawpower")] public IEnumerable BearRawpower { get; set; } [JsonPropertyName("BipodErgonomicsBonusPerLevel")] public double BipodErgonomicsBonusPerLevel { get; set; } [JsonPropertyName("UsecArsystems")] public IEnumerable UsecArsystems { get; set; } [JsonPropertyName("UsecDeepweaponmodding_Settings")] public IEnumerable UsecDeepweaponmodding_Settings { get; set; } [JsonPropertyName("UsecLongrangeoptics_Settings")] public IEnumerable UsecLongrangeoptics_Settings { get; set; } [JsonPropertyName("UsecNegotiations")] public IEnumerable UsecNegotiations { get; set; } [JsonPropertyName("UsecTactics")] public IEnumerable UsecTactics { get; set; } [JsonPropertyName("BotReload")] public IEnumerable BotReload { get; set; } [JsonPropertyName("CovertMovement")] public CovertMovement CovertMovement { get; set; } [JsonPropertyName("FieldMedicine")] public IEnumerable FieldMedicine { get; set; } [JsonPropertyName("Search")] public Search Search { get; set; } [JsonPropertyName("Sniping")] public IEnumerable Sniping { get; set; } [JsonPropertyName("ProneMovement")] public IEnumerable ProneMovement { get; set; } [JsonPropertyName("FirstAid")] public IEnumerable FirstAid { get; set; } [JsonPropertyName("LightVests")] public ArmorSkills LightVests { get; set; } [JsonPropertyName("HeavyVests")] public ArmorSkills HeavyVests { get; set; } [JsonPropertyName("WeaponModding")] public IEnumerable WeaponModding { get; set; } [JsonPropertyName("AdvancedModding")] public IEnumerable AdvancedModding { get; set; } [JsonPropertyName("NightOps")] public IEnumerable NightOps { get; set; } [JsonPropertyName("SilentOps")] public IEnumerable SilentOps { get; set; } [JsonPropertyName("Lockpicking")] public IEnumerable Lockpicking { get; set; } [JsonPropertyName("WeaponTreatment")] public WeaponTreatment WeaponTreatment { get; set; } [JsonPropertyName("MagDrills")] public MagDrills MagDrills { get; set; } [JsonPropertyName("Freetrading")] public IEnumerable Freetrading { get; set; } [JsonPropertyName("Auctions")] public IEnumerable Auctions { get; set; } [JsonPropertyName("Cleanoperations")] public IEnumerable Cleanoperations { get; set; } [JsonPropertyName("Barter")] public IEnumerable Barter { get; set; } [JsonPropertyName("Shadowconnections")] public IEnumerable Shadowconnections { get; set; } [JsonPropertyName("Taskperformance")] public IEnumerable Taskperformance { get; set; } [JsonPropertyName("Perception")] public Perception Perception { get; set; } [JsonPropertyName("Intellect")] public Intellect Intellect { get; set; } [JsonPropertyName("Attention")] public Attention Attention { get; set; } [JsonPropertyName("Charisma")] public Charisma Charisma { get; set; } [JsonPropertyName("Memory")] public Memory Memory { get; set; } [JsonPropertyName("Surgery")] public Surgery Surgery { get; set; } [JsonPropertyName("AimDrills")] public AimDrills AimDrills { get; set; } [JsonPropertyName("BotSound")] public IEnumerable BotSound { get; set; } [JsonPropertyName("TroubleShooting")] public TroubleShooting TroubleShooting { get; set; } } public record MeleeSkill { public BuffSettings BuffSettings { get; set; } } public record 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 record ArmorCounters { [JsonPropertyName("armorDurability")] public SkillCounter ArmorDurability { get; set; } } public record 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 record SkillPointsRate { public SkillPointRate Generator { get; set; } public SkillPointRate AirFilteringUnit { get; set; } public SkillPointRate WaterCollector { get; set; } public SkillPointRate SolarPower { get; set; } } public record SkillPointRate { public double ResourceSpent { get; set; } public double PointsGained { get; set; } } public record EliteSlots { public EliteSlot Generator { get; set; } public EliteSlot AirFilteringUnit { get; set; } public EliteSlot WaterCollector { get; set; } public EliteSlot BitcoinFarm { get; set; } } public record EliteSlot { public double Slots { get; set; } public double Container { get; set; } } public record Crafting { [JsonPropertyName("DependentSkillRatios")] public IEnumerable DependentSkillRatios { get; set; } [JsonPropertyName("PointsPerCraftingCycle")] public double PointsPerCraftingCycle { get; set; } [JsonPropertyName("CraftingCycleHours")] public double CraftingCycleHours { get; set; } [JsonPropertyName("PointsPerUniqueCraftCycle")] public double PointsPerUniqueCraftCycle { get; set; } [JsonPropertyName("UniqueCraftsPerCycle")] public double UniqueCraftsPerCycle { get; set; } [JsonPropertyName("CraftTimeReductionPerLevel")] public double CraftTimeReductionPerLevel { get; set; } [JsonPropertyName("ProductionTimeReductionPerLevel")] public double ProductionTimeReductionPerLevel { get; set; } [JsonPropertyName("EliteExtraProductions")] public double EliteExtraProductions { get; set; } // Yes, there is a typo [JsonPropertyName("CraftingPointsToInteligence")] public double CraftingPointsToIntelligence { get; set; } } public record Metabolism { [JsonPropertyName("HydrationRecoveryRate")] public double HydrationRecoveryRate { get; set; } [JsonPropertyName("EnergyRecoveryRate")] public double EnergyRecoveryRate { get; set; } [JsonPropertyName("IncreasePositiveEffectDurationRate")] public double IncreasePositiveEffectDurationRate { get; set; } [JsonPropertyName("DecreaseNegativeEffectDurationRate")] public double DecreaseNegativeEffectDurationRate { get; set; } [JsonPropertyName("DecreasePoisonDurationRate")] public double DecreasePoisonDurationRate { get; set; } } public record Immunity { [JsonPropertyName("ImmunityMiscEffects")] public double ImmunityMiscEffects { get; set; } [JsonPropertyName("ImmunityPoisonBuff")] public double ImmunityPoisonBuff { get; set; } [JsonPropertyName("ImmunityPainKiller")] public double ImmunityPainKiller { get; set; } [JsonPropertyName("HealthNegativeEffect")] public double HealthNegativeEffect { get; set; } [JsonPropertyName("StimulatorNegativeBuff")] public double StimulatorNegativeBuff { get; set; } } public record Endurance { [JsonPropertyName("MovementAction")] public double MovementAction { get; set; } [JsonPropertyName("SprintAction")] public double SprintAction { get; set; } [JsonPropertyName("GainPerFatigueStack")] public double GainPerFatigueStack { get; set; } [JsonPropertyName("DependentSkillRatios")] public IEnumerable DependentSkillRatios { get; set; } [JsonPropertyName("QTELevelMultipliers")] public Dictionary> QTELevelMultipliers { get; set; } } public record Strength { [JsonPropertyName("DependentSkillRatios")] public IEnumerable DependentSkillRatios { get; set; } [JsonPropertyName("SprintActionMin")] public double SprintActionMin { get; set; } [JsonPropertyName("SprintActionMax")] public double SprintActionMax { get; set; } [JsonPropertyName("MovementActionMin")] public double MovementActionMin { get; set; } [JsonPropertyName("MovementActionMax")] public double MovementActionMax { get; set; } [JsonPropertyName("PushUpMin")] public double PushUpMin { get; set; } [JsonPropertyName("PushUpMax")] public double PushUpMax { get; set; } [JsonPropertyName("QTELevelMultipliers")] public IEnumerable QTELevelMultipliers { get; set; } [JsonPropertyName("FistfightAction")] public double FistfightAction { get; set; } [JsonPropertyName("ThrowAction")] public double ThrowAction { get; set; } } public record DependentSkillRatio { [JsonPropertyName("Ratio")] public double Ratio { get; set; } [JsonPropertyName("SkillId")] public string SkillId { get; set; } } public record QTELevelMultiplier { [JsonPropertyName("Level")] public double Level { get; set; } [JsonPropertyName("Multiplier")] public double Multiplier { get; set; } } public record Vitality { [JsonPropertyName("DamageTakenAction")] public double DamageTakenAction { get; set; } [JsonPropertyName("HealthNegativeEffect")] public double HealthNegativeEffect { get; set; } } public record HealthSkillProgress { [JsonPropertyName("SkillProgress")] public double SkillProgress { get; set; } } public record StressResistance { [JsonPropertyName("HealthNegativeEffect")] public double HealthNegativeEffect { get; set; } [JsonPropertyName("LowHPDuration")] public double LowHPDuration { get; set; } } public record Throwing { [JsonPropertyName("ThrowAction")] public double ThrowAction { get; set; } } public record RecoilControl { [JsonPropertyName("RecoilAction")] public double RecoilAction { get; set; } [JsonPropertyName("RecoilBonusPerLevel")] public double RecoilBonusPerLevel { get; set; } } public record WeaponSkills { [JsonPropertyName("WeaponReloadAction")] public double WeaponReloadAction { get; set; } [JsonPropertyName("WeaponShotAction")] public double WeaponShotAction { get; set; } [JsonPropertyName("WeaponFixAction")] public double WeaponFixAction { get; set; } [JsonPropertyName("WeaponChamberAction")] public double WeaponChamberAction { get; set; } } public record CovertMovement { [JsonPropertyName("MovementAction")] public double MovementAction { get; set; } } public record Search { [JsonPropertyName("SearchAction")] public double SearchAction { get; set; } [JsonPropertyName("FindAction")] public double FindAction { get; set; } } public record WeaponTreatment { [JsonPropertyName("BuffMaxCount")] public double BuffMaxCount { get; set; } [JsonPropertyName("BuffSettings")] public BuffSettings BuffSettings { get; set; } [JsonPropertyName("Counters")] public WeaponTreatmentCounters Counters { get; set; } [JsonPropertyName("DurLossReducePerLevel")] public double DurLossReducePerLevel { get; set; } [JsonPropertyName("SkillPointsPerRepair")] public double SkillPointsPerRepair { get; set; } [JsonPropertyName("Filter")] public IEnumerable Filter { get; set; } [JsonPropertyName("WearAmountRepairGunsReducePerLevel")] public double WearAmountRepairGunsReducePerLevel { get; set; } [JsonPropertyName("WearChanceRepairGunsReduceEliteLevel")] public double WearChanceRepairGunsReduceEliteLevel { get; set; } } public record WeaponTreatmentCounters { [JsonPropertyName("firearmsDurability")] public SkillCounter FirearmsDurability { get; set; } } public record BuffSettings { [JsonPropertyName("CommonBuffChanceLevelBonus")] public double CommonBuffChanceLevelBonus { get; set; } [JsonPropertyName("CommonBuffMinChanceValue")] public double CommonBuffMinChanceValue { get; set; } [JsonPropertyName("CurrentDurabilityLossToRemoveBuff")] public double CurrentDurabilityLossToRemoveBuff { get; set; } [JsonPropertyName("MaxDurabilityLossToRemoveBuff")] public double MaxDurabilityLossToRemoveBuff { get; set; } [JsonPropertyName("RareBuffChanceCoff")] public double RareBuffChanceCoff { get; set; } [JsonPropertyName("ReceivedDurabilityMaxPercent")] public double ReceivedDurabilityMaxPercent { get; set; } } public record MagDrills { [JsonPropertyName("RaidLoadedAmmoAction")] public double RaidLoadedAmmoAction { get; set; } [JsonPropertyName("RaidUnloadedAmmoAction")] public double RaidUnloadedAmmoAction { get; set; } [JsonPropertyName("MagazineCheckAction")] public double MagazineCheckAction { get; set; } } public record Perception { [JsonPropertyName("DependentSkillRatios")] public IEnumerable DependentSkillRatios { get; set; } [JsonPropertyName("OnlineAction")] public double OnlineAction { get; set; } [JsonPropertyName("UniqueLoot")] public double UniqueLoot { get; set; } } public record SkillRatio { [JsonPropertyName("Ratio")] public double Ratio { get; set; } [JsonPropertyName("SkillId")] public string SkillId { get; set; } } public record Intellect { public required SkillRatio[] DependentSkillRatios { get; set; } [JsonPropertyName("Counters")] public IntellectCounters Counters { get; set; } [JsonPropertyName("ExamineAction")] public double ExamineAction { get; set; } [JsonPropertyName("SkillProgress")] public double SkillProgress { get; set; } [JsonPropertyName("RepairAction")] public double RepairAction { get; set; } [JsonPropertyName("WearAmountReducePerLevel")] public double WearAmountReducePerLevel { get; set; } [JsonPropertyName("WearChanceReduceEliteLevel")] public double WearChanceReduceEliteLevel { get; set; } [JsonPropertyName("RepairPointsCostReduction")] public double RepairPointsCostReduction { get; set; } } public record IntellectCounters { [JsonPropertyName("armorDurability")] public SkillCounter ArmorDurability { get; set; } [JsonPropertyName("firearmsDurability")] public SkillCounter FirearmsDurability { get; set; } [JsonPropertyName("meleeWeaponDurability")] public SkillCounter MeleeWeaponDurability { get; set; } } public record SkillCounter { [JsonPropertyName("divisor")] public double Divisor { get; set; } [JsonPropertyName("points")] public double Points { get; set; } } public record Attention { [JsonPropertyName("DependentSkillRatios")] public required SkillRatio[] DependentSkillRatios { get; set; } [JsonPropertyName("ExamineWithInstruction")] public double ExamineWithInstruction { get; set; } [JsonPropertyName("FindActionFalse")] public double FindActionFalse { get; set; } [JsonPropertyName("FindActionTrue")] public double FindActionTrue { get; set; } } public record Charisma { [JsonPropertyName("BonusSettings")] public BonusSettings BonusSettings { get; set; } [JsonPropertyName("Counters")] public CharismaSkillCounters Counters { get; set; } [JsonPropertyName("SkillProgressInt")] public double SkillProgressInt { get; set; } [JsonPropertyName("SkillProgressAtn")] public double SkillProgressAtn { get; set; } [JsonPropertyName("SkillProgressPer")] public double SkillProgressPer { get; set; } } public record CharismaSkillCounters { [JsonPropertyName("insuranceCost")] public SkillCounter InsuranceCost { get; set; } [JsonPropertyName("repairCost")] public SkillCounter RepairCost { get; set; } [JsonPropertyName("repeatableQuestCompleteCount")] public SkillCounter RepeatableQuestCompleteCount { get; set; } [JsonPropertyName("restoredHealthCost")] public SkillCounter RestoredHealthCost { get; set; } [JsonPropertyName("scavCaseCost")] public SkillCounter ScavCaseCost { get; set; } } public record BonusSettings { [JsonPropertyName("EliteBonusSettings")] public EliteBonusSettings EliteBonusSettings { get; set; } [JsonPropertyName("LevelBonusSettings")] public LevelBonusSettings LevelBonusSettings { get; set; } } public record EliteBonusSettings { [JsonPropertyName("FenceStandingLossDiscount")] public double FenceStandingLossDiscount { get; set; } [JsonPropertyName("RepeatableQuestExtraCount")] public int RepeatableQuestExtraCount { get; set; } [JsonPropertyName("ScavCaseDiscount")] public double ScavCaseDiscount { get; set; } } public record LevelBonusSettings { [JsonPropertyName("HealthRestoreDiscount")] public double HealthRestoreDiscount { get; set; } [JsonPropertyName("HealthRestoreTraderDiscount")] public double HealthRestoreTraderDiscount { get; set; } [JsonPropertyName("InsuranceDiscount")] public double InsuranceDiscount { get; set; } [JsonPropertyName("InsuranceTraderDiscount")] public double InsuranceTraderDiscount { get; set; } [JsonPropertyName("PaidExitDiscount")] public double PaidExitDiscount { get; set; } [JsonPropertyName("RepeatableQuestChangeDiscount")] public double RepeatableQuestChangeDiscount { get; set; } } public record Memory { [JsonPropertyName("AnySkillUp")] public double AnySkillUp { get; set; } [JsonPropertyName("SkillProgress")] public double SkillProgress { get; set; } } public record Surgery { [JsonPropertyName("SurgeryAction")] public double SurgeryAction { get; set; } [JsonPropertyName("SkillProgress")] public double SkillProgress { get; set; } } public record AimDrills { [JsonPropertyName("WeaponShotAction")] public double WeaponShotAction { get; set; } } public record TroubleShooting { [JsonPropertyName("MalfRepairSpeedBonusPerLevel")] public double MalfRepairSpeedBonusPerLevel { get; set; } [JsonPropertyName("SkillPointsPerMalfFix")] public double SkillPointsPerMalfFix { get; set; } [JsonPropertyName("EliteDurabilityChanceReduceMult")] public double EliteDurabilityChanceReduceMult { get; set; } [JsonPropertyName("EliteAmmoChanceReduceMult")] public double EliteAmmoChanceReduceMult { get; set; } [JsonPropertyName("EliteMagChanceReduceMult")] public double EliteMagChanceReduceMult { get; set; } } public record Aiming { [JsonPropertyName("ProceduralIntensityByPose")] public XYZ ProceduralIntensityByPose { get; set; } [JsonPropertyName("AimProceduralIntensity")] public double AimProceduralIntensity { get; set; } [JsonPropertyName("HeavyWeight")] public double HeavyWeight { get; set; } [JsonPropertyName("LightWeight")] public double LightWeight { get; set; } [JsonPropertyName("MaxTimeHeavy")] public double MaxTimeHeavy { get; set; } [JsonPropertyName("MinTimeHeavy")] public double MinTimeHeavy { get; set; } [JsonPropertyName("MaxTimeLight")] public double MaxTimeLight { get; set; } [JsonPropertyName("MinTimeLight")] public double MinTimeLight { get; set; } [JsonPropertyName("RecoilScaling")] public double RecoilScaling { get; set; } [JsonPropertyName("RecoilDamping")] public double RecoilDamping { get; set; } [JsonPropertyName("CameraSnapGlobalMult")] public double CameraSnapGlobalMult { get; set; } [JsonPropertyName("RecoilXIntensityByPose")] public XYZ RecoilXIntensityByPose { get; set; } [JsonPropertyName("RecoilYIntensityByPose")] public XYZ RecoilYIntensityByPose { get; set; } [JsonPropertyName("RecoilZIntensityByPose")] public XYZ RecoilZIntensityByPose { get; set; } [JsonPropertyName("RecoilCrank")] public bool RecoilCrank { get; set; } [JsonPropertyName("RecoilHandDamping")] public double RecoilHandDamping { get; set; } [JsonPropertyName("RecoilConvergenceMult")] public double RecoilConvergenceMult { get; set; } [JsonPropertyName("RecoilVertBonus")] public double RecoilVertBonus { get; set; } [JsonPropertyName("RecoilBackBonus")] public double RecoilBackBonus { get; set; } } public record Malfunction { [JsonPropertyName("AmmoMalfChanceMult")] public double AmmoMalfChanceMult { get; set; } [JsonPropertyName("MagazineMalfChanceMult")] public double MagazineMalfChanceMult { get; set; } [JsonPropertyName("MalfRepairHardSlideMult")] public double MalfRepairHardSlideMult { get; set; } [JsonPropertyName("MalfRepairOneHandBrokenMult")] public double MalfRepairOneHandBrokenMult { get; set; } [JsonPropertyName("MalfRepairTwoHandsBrokenMult")] public double MalfRepairTwoHandsBrokenMult { get; set; } [JsonPropertyName("AllowMalfForBots")] public bool AllowMalfForBots { get; set; } [JsonPropertyName("ShowGlowAttemptsCount")] public double ShowGlowAttemptsCount { get; set; } [JsonPropertyName("OutToIdleSpeedMultForPistol")] public double OutToIdleSpeedMultForPistol { get; set; } [JsonPropertyName("IdleToOutSpeedMultOnMalf")] public double IdleToOutSpeedMultOnMalf { get; set; } [JsonPropertyName("TimeToQuickdrawPistol")] public double TimeToQuickdrawPistol { get; set; } [JsonPropertyName("DurRangeToIgnoreMalfs")] public XYZ DurRangeToIgnoreMalfs { get; set; } [JsonPropertyName("DurFeedWt")] public double DurFeedWt { get; set; } [JsonPropertyName("DurMisfireWt")] public double DurMisfireWt { get; set; } [JsonPropertyName("DurJamWt")] public double DurJamWt { get; set; } [JsonPropertyName("DurSoftSlideWt")] public double DurSoftSlideWt { get; set; } [JsonPropertyName("DurHardSlideMinWt")] public double DurHardSlideMinWt { get; set; } [JsonPropertyName("DurHardSlideMaxWt")] public double DurHardSlideMaxWt { get; set; } [JsonPropertyName("AmmoMisfireWt")] public double AmmoMisfireWt { get; set; } [JsonPropertyName("AmmoFeedWt")] public double AmmoFeedWt { get; set; } [JsonPropertyName("AmmoJamWt")] public double AmmoJamWt { get; set; } [JsonPropertyName("OverheatFeedWt")] public double OverheatFeedWt { get; set; } [JsonPropertyName("OverheatJamWt")] public double OverheatJamWt { get; set; } [JsonPropertyName("OverheatSoftSlideWt")] public double OverheatSoftSlideWt { get; set; } [JsonPropertyName("OverheatHardSlideMinWt")] public double OverheatHardSlideMinWt { get; set; } [JsonPropertyName("OverheatHardSlideMaxWt")] public double OverheatHardSlideMaxWt { get; set; } } public record Overheat { [JsonPropertyName("MinOverheat")] public double MinimumOverheat { get; set; } [JsonPropertyName("MaxOverheat")] public double MaximumOverheat { get; set; } [JsonPropertyName("OverheatProblemsStart")] public double OverheatProblemsStart { get; set; } [JsonPropertyName("ModHeatFactor")] public double ModificationHeatFactor { get; set; } [JsonPropertyName("ModCoolFactor")] public double ModificationCoolFactor { get; set; } [JsonPropertyName("MinWearOnOverheat")] public double MinimumWearOnOverheat { get; set; } [JsonPropertyName("MaxWearOnOverheat")] public double MaximumWearOnOverheat { get; set; } [JsonPropertyName("MinWearOnMaxOverheat")] public double MinimumWearOnMaximumOverheat { get; set; } [JsonPropertyName("MaxWearOnMaxOverheat")] public double MaximumWearOnMaximumOverheat { get; set; } [JsonPropertyName("OverheatWearLimit")] public double OverheatWearLimit { get; set; } [JsonPropertyName("MaxCOIIncreaseMult")] public double MaximumCOIIncreaseMultiplier { get; set; } [JsonPropertyName("MinMalfChance")] public double MinimumMalfunctionChance { get; set; } [JsonPropertyName("MaxMalfChance")] public double MaximumMalfunctionChance { get; set; } [JsonPropertyName("DurReduceMinMult")] public double DurabilityReductionMinimumMultiplier { get; set; } [JsonPropertyName("DurReduceMaxMult")] public double DurabilityReductionMaximumMultiplier { get; set; } [JsonPropertyName("BarrelMoveRndDuration")] public double BarrelMovementRandomDuration { get; set; } [JsonPropertyName("BarrelMoveMaxMult")] public double BarrelMovementMaximumMultiplier { get; set; } [JsonPropertyName("FireratePitchMult")] public double FireRatePitchMultiplier { get; set; } [JsonPropertyName("FirerateReduceMinMult")] public double FireRateReductionMinimumMultiplier { get; set; } [JsonPropertyName("FirerateReduceMaxMult")] public double FireRateReductionMaximumMultiplier { get; set; } [JsonPropertyName("FirerateOverheatBorder")] public double FireRateOverheatBorder { get; set; } [JsonPropertyName("EnableSlideOnMaxOverheat")] public bool IsSlideEnabledOnMaximumOverheat { get; set; } [JsonPropertyName("StartSlideOverheat")] public double StartSlideOverheat { get; set; } [JsonPropertyName("FixSlideOverheat")] public double FixSlideOverheat { get; set; } [JsonPropertyName("AutoshotMinOverheat")] public double AutoshotMinimumOverheat { get; set; } [JsonPropertyName("AutoshotChance")] public double AutoshotChance { get; set; } [JsonPropertyName("AutoshotPossibilityDuration")] public double AutoshotPossibilityDuration { get; set; } [JsonPropertyName("MaxOverheatCoolCoef")] public double MaximumOverheatCoolCoefficient { get; set; } } public record FenceSettings { // MongoId [JsonPropertyName("FenceId")] public string FenceIdentifier { get; set; } [JsonPropertyName("Levels")] public Dictionary Levels { get; set; } [JsonPropertyName("paidExitStandingNumerator")] public double PaidExitStandingNumerator { get; set; } public double PmcBotKillStandingMultiplier { get; set; } public double ScavEquipmentChancePercentThreshold { get; set; } } public record FenceLevel { [JsonPropertyName("ReachOnMarkOnUnknowns")] public bool CanReachOnMarkOnUnknowns { get; set; } [JsonPropertyName("SavageCooldownModifier")] public double SavageCooldownModifier { get; set; } [JsonPropertyName("ScavCaseTimeModifier")] public double ScavCaseTimeModifier { get; set; } [JsonPropertyName("PaidExitCostModifier")] public double PaidExitCostModifier { get; set; } [JsonPropertyName("BotFollowChance")] public double BotFollowChance { get; set; } [JsonPropertyName("ScavEquipmentSpawnChanceModifier")] public double ScavEquipmentSpawnChanceModifier { get; set; } [JsonPropertyName("TransitGridSize")] public XYZ TransitGridSize { get; set; } [JsonPropertyName("PriceModifier")] public double PriceModifier { get; set; } [JsonPropertyName("HostileBosses")] public bool AreHostileBossesPresent { get; set; } [JsonPropertyName("HostileScavs")] public bool AreHostileScavsPresent { get; set; } [JsonPropertyName("ScavAttackSupport")] public bool IsScavAttackSupported { get; set; } [JsonPropertyName("ExfiltrationPriceModifier")] public double ExfiltrationPriceModifier { get; set; } [JsonPropertyName("AvailableExits")] public double AvailableExits { get; set; } [JsonPropertyName("BotApplySilenceChance")] public double BotApplySilenceChance { get; set; } [JsonPropertyName("BotGetInCoverChance")] public double BotGetInCoverChance { get; set; } [JsonPropertyName("BotHelpChance")] public double BotHelpChance { get; set; } [JsonPropertyName("BotSpreadoutChance")] public double BotSpreadoutChance { get; set; } [JsonPropertyName("BotStopChance")] public double BotStopChance { get; set; } [JsonPropertyName("PriceModTaxi")] public double PriceModifierTaxi { get; set; } [JsonPropertyName("PriceModDelivery")] public double PriceModifierDelivery { get; set; } [JsonPropertyName("PriceModCleanUp")] public double PriceModifierCleanUp { get; set; } [JsonPropertyName("ReactOnMarkOnUnknowns")] public bool ReactOnMarkOnUnknowns { get; set; } [JsonPropertyName("ReactOnMarkOnUnknownsPVE")] public bool ReactOnMarkOnUnknownsPVE { get; set; } [JsonPropertyName("DeliveryGridSize")] public XYZ DeliveryGridSize { get; set; } [JsonPropertyName("CanInteractWithBtr")] public bool CanInteractWithBtr { get; set; } [JsonPropertyName("CircleOfCultistsBonusPercent")] public double CircleOfCultistsBonusPercentage { get; set; } } public record Inertia { [JsonPropertyName("InertiaLimits")] public XYZ InertiaLimits { get; set; } [JsonPropertyName("InertiaLimitsStep")] public double InertiaLimitsStep { get; set; } [JsonPropertyName("ExitMovementStateSpeedThreshold")] public XYZ ExitMovementStateSpeedThreshold { get; set; } [JsonPropertyName("WalkInertia")] public XYZ WalkInertia { get; set; } [JsonPropertyName("FallThreshold")] public double FallThreshold { get; set; } [JsonPropertyName("SpeedLimitAfterFallMin")] public XYZ SpeedLimitAfterFallMin { get; set; } [JsonPropertyName("SpeedLimitAfterFallMax")] public XYZ SpeedLimitAfterFallMax { get; set; } [JsonPropertyName("SpeedLimitDurationMin")] public XYZ SpeedLimitDurationMin { get; set; } [JsonPropertyName("SpeedLimitDurationMax")] public XYZ SpeedLimitDurationMax { get; set; } [JsonPropertyName("SpeedInertiaAfterJump")] public XYZ SpeedInertiaAfterJump { get; set; } [JsonPropertyName("BaseJumpPenaltyDuration")] public double BaseJumpPenaltyDuration { get; set; } [JsonPropertyName("DurationPower")] public double DurationPower { get; set; } [JsonPropertyName("BaseJumpPenalty")] public double BaseJumpPenalty { get; set; } [JsonPropertyName("PenaltyPower")] public double PenaltyPower { get; set; } [JsonPropertyName("InertiaTiltCurveMin")] public XYZ InertiaTiltCurveMin { get; set; } [JsonPropertyName("InertiaTiltCurveMax")] public XYZ InertiaTiltCurveMax { get; set; } [JsonPropertyName("InertiaBackwardCoef")] public XYZ InertiaBackwardCoef { get; set; } [JsonPropertyName("TiltInertiaMaxSpeed")] public XYZ TiltInertiaMaxSpeed { get; set; } [JsonPropertyName("TiltStartSideBackSpeed")] public XYZ TiltStartSideBackSpeed { get; set; } [JsonPropertyName("TiltMaxSideBackSpeed")] public XYZ TiltMaxSideBackSpeed { get; set; } [JsonPropertyName("TiltAcceleration")] public XYZ TiltAcceleration { get; set; } [JsonPropertyName("AverageRotationFrameSpan")] public double AverageRotationFrameSpan { get; set; } [JsonPropertyName("SprintSpeedInertiaCurveMin")] public XYZ SprintSpeedInertiaCurveMin { get; set; } [JsonPropertyName("SprintSpeedInertiaCurveMax")] public XYZ SprintSpeedInertiaCurveMax { get; set; } [JsonPropertyName("SprintBrakeInertia")] public XYZ SprintBrakeInertia { get; set; } [JsonPropertyName("SprintTransitionMotionPreservation")] public XYZ SprintTransitionMotionPreservation { get; set; } [JsonPropertyName("WeaponFlipSpeed")] public XYZ WeaponFlipSpeed { get; set; } [JsonPropertyName("PreSprintAccelerationLimits")] public XYZ PreSprintAccelerationLimits { get; set; } [JsonPropertyName("SprintAccelerationLimits")] public XYZ SprintAccelerationLimits { get; set; } [JsonPropertyName("SideTime")] public XYZ SideTime { get; set; } [JsonPropertyName("DiagonalTime")] public XYZ DiagonalTime { get; set; } [JsonPropertyName("MaxTimeWithoutInput")] public XYZ MaxTimeWithoutInput { get; set; } [JsonPropertyName("MinDirectionBlendTime")] public double MinDirectionBlendTime { get; set; } [JsonPropertyName("MoveTimeRange")] public XYZ MoveTimeRange { get; set; } [JsonPropertyName("ProneDirectionAccelerationRange")] public XYZ ProneDirectionAccelerationRange { get; set; } [JsonPropertyName("ProneSpeedAccelerationRange")] public XYZ ProneSpeedAccelerationRange { get; set; } [JsonPropertyName("MinMovementAccelerationRangeRight")] public XYZ MinMovementAccelerationRangeRight { get; set; } [JsonPropertyName("MaxMovementAccelerationRangeRight")] public XYZ MaxMovementAccelerationRangeRight { get; set; } public XYZ CrouchSpeedAccelerationRange { get; set; } } public record Ballistic { [JsonPropertyName("GlobalDamageDegradationCoefficient")] public double GlobalDamageDegradationCoefficient { get; set; } } public record RepairSettings { [JsonPropertyName("ItemEnhancementSettings")] public ItemEnhancementSettings ItemEnhancementSettings { get; set; } [JsonPropertyName("MinimumLevelToApplyBuff")] public double MinimumLevelToApplyBuff { get; set; } [JsonPropertyName("RepairStrategies")] public RepairStrategies RepairStrategies { get; set; } [JsonPropertyName("armorClassDivisor")] public double ArmorClassDivisor { get; set; } [JsonPropertyName("durabilityPointCostArmor")] public double DurabilityPointCostArmor { get; set; } [JsonPropertyName("durabilityPointCostGuns")] public double DurabilityPointCostGuns { get; set; } } public record ItemEnhancementSettings { [JsonPropertyName("DamageReduction")] public PriceModifier DamageReduction { get; set; } [JsonPropertyName("MalfunctionProtections")] public PriceModifier MalfunctionProtections { get; set; } [JsonPropertyName("WeaponSpread")] public PriceModifier WeaponSpread { get; set; } } public record PriceModifier { [JsonPropertyName("PriceModifier")] public double PriceModifierValue { get; set; } } public record RepairStrategies { [JsonPropertyName("Armor")] public RepairStrategy Armor { get; set; } [JsonPropertyName("Firearms")] public RepairStrategy Firearms { get; set; } } public record RepairStrategy { [JsonPropertyName("BuffTypes")] public IEnumerable BuffTypes { get; set; } [JsonPropertyName("Filter")] public IEnumerable Filter { get; set; } } public record BotPreset { [JsonPropertyName("UseThis")] public bool UseThis { get; set; } [JsonPropertyName("VISIBILITY_CHANGE_SPEED")] public float VisibilityChangeSpeed { get; set; } [JsonPropertyName("Role")] public string Role { get; set; } [JsonPropertyName("BotDifficulty")] public string BotDifficulty { get; set; } [JsonPropertyName("VisibleAngle")] public double VisibleAngle { get; set; } [JsonPropertyName("VisibleDistance")] public double VisibleDistance { get; set; } [JsonPropertyName("ScatteringPerMeter")] public double ScatteringPerMeter { get; set; } [JsonPropertyName("HearingSense")] public double HearingSense { get; set; } [JsonPropertyName("SCATTERING_DIST_MODIF")] public double ScatteringDistModif { get; set; } [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] public double MaxAimingUpgradeByTime { get; set; } [JsonPropertyName("FIRST_CONTACT_ADD_SEC")] public double FirstContactAddSec { get; set; } [JsonPropertyName("COEF_IF_MOVE")] public double CoefIfMove { get; set; } } public record BotWeaponScattering { [JsonPropertyName("Name")] public string Name { get; set; } [JsonPropertyName("PriorityScatter1meter")] public double PriorityScatter1Meter { get; set; } [JsonPropertyName("PriorityScatter10meter")] public double PriorityScatter10Meter { get; set; } [JsonPropertyName("PriorityScatter100meter")] public double PriorityScatter100Meter { get; set; } } public record Preset { [JsonPropertyName("_id")] public MongoId Id { get; set; } [JsonPropertyName("_type")] public string Type { get; set; } [JsonPropertyName("_changeWeaponName")] public bool ChangeWeaponName { get; set; } [JsonPropertyName("_name")] public string Name { get; set; } [JsonPropertyName("_parent")] public MongoId Parent { get; set; } [JsonPropertyName("_items")] public List Items { get; set; } /// /// Default presets have this property /// [JsonPropertyName("_encyclopedia")] public MongoId? Encyclopedia { get; set; } } public record QuestSettings { [JsonPropertyName("GlobalRewardRepModifierDailyQuestPvE")] public double GlobalRewardRepModifierDailyQuestPvE { get; set; } [JsonPropertyName("GlobalRewardRepModifierQuestPvE")] public double GlobalRewardRepModifierQuestPvE { get; set; } }