Files
SPT-Server-Build/Core/Models/Eft/Common/Tables/TemplateItem.cs
T
2025-01-16 15:35:26 +00:00

1727 lines
50 KiB
C#

using System.Text.Json.Serialization;
using Core.Utils.Json.Converters;
namespace Core.Models.Eft.Common.Tables;
public class TemplateItem
{
[JsonPropertyName("_id")]
public string? Id { get; set; }
[JsonPropertyName("_name")]
public string? Name { get; set; }
[JsonPropertyName("_parent")]
public string? Parent { get; set; }
[JsonPropertyName("_type")]
public string? Type { get; set; }
[JsonPropertyName("_props")]
public Props? Properties { get; set; }
[JsonPropertyName("_proto")]
public string? Prototype { get; set; }
}
public class Props
{
[JsonPropertyName("AllowSpawnOnLocations")]
public List<string>? AllowSpawnOnLocations { get; set; }
[JsonPropertyName("BeltMagazineRefreshCount")]
public double? BeltMagazineRefreshCount { get; set; }
[JsonPropertyName("ChangePriceCoef")]
public double? ChangePriceCoef { get; set; }
[JsonPropertyName("FixedPrice")]
public bool? FixedPrice { get; set; }
[JsonPropertyName("SendToClient")]
public bool? SendToClient { get; set; }
[JsonPropertyName("Name")]
public string? Name { get; set; }
[JsonPropertyName("ShortName")]
public string? ShortName { get; set; }
[JsonPropertyName("Description")]
public string? Description { get; set; }
[JsonPropertyName("Weight")]
public double? Weight { get; set; }
[JsonPropertyName("BackgroundColor")]
public string? BackgroundColor { get; set; }
[JsonPropertyName("Width")]
public double? Width { get; set; }
[JsonPropertyName("Height")]
public double? Height { get; set; }
[JsonPropertyName("StackMaxSize")]
public double? StackMaxSize { get; set; }
[JsonPropertyName("Rarity")]
public string? Rarity { get; set; }
[JsonPropertyName("SpawnChance")]
public double? SpawnChance { get; set; }
[JsonPropertyName("CreditsPrice")]
public double? CreditsPrice { get; set; }
[JsonPropertyName("ItemSound")]
public string? ItemSound { get; set; }
[JsonPropertyName("Prefab")] // TODO: TYPE FUCKERY: can be a Prefab object or empty string or a string
public object? Prefab { get; set; }
[JsonPropertyName("UsePrefab")]
public Prefab? UsePrefab { get; set; }
[JsonPropertyName("airDropTemplateId")]
public string? AirDropTemplateId { get; set; }
[JsonPropertyName("StackObjectsCount")]
public double? StackObjectsCount { get; set; }
[JsonPropertyName("NotShownInSlot")]
public bool? NotShownInSlot { get; set; }
[JsonPropertyName("ExaminedByDefault")]
public bool? ExaminedByDefault { get; set; }
[JsonPropertyName("ExamineTime")]
public double? ExamineTime { get; set; }
[JsonPropertyName("IsUndiscardable")]
public bool? IsUndiscardable { get; set; }
[JsonPropertyName("IsUnsaleable")]
public bool? IsUnsaleable { get; set; }
[JsonPropertyName("IsUnbuyable")]
public bool? IsUnbuyable { get; set; }
[JsonPropertyName("IsUngivable")]
public bool? IsUngivable { get; set; }
[JsonPropertyName("IsUnremovable")]
public bool? IsUnRemovable { get; set; }
[JsonPropertyName("IsLockedafterEquip")]
public bool? IsLockedAfterEquip { get; set; }
[JsonPropertyName("IsSecretExitRequirement")]
public bool? IsSecretExitRequirement { get; set; }
[JsonPropertyName("IsRagfairCurrency")]
public bool? IsRagfairCurrency { get; set; }
[JsonPropertyName("IsSpecialSlotOnly")]
public bool? IsSpecialSlotOnly { get; set; }
[JsonPropertyName("IsStationaryWeapon")]
public bool? IsStationaryWeapon { get; set; }
[JsonPropertyName("QuestItem")]
public bool? QuestItem { get; set; }
[JsonPropertyName("QuestStashMaxCount")]
public double? QuestStashMaxCount { get; set; }
[JsonPropertyName("LootExperience")]
public double? LootExperience { get; set; }
[JsonPropertyName("ExamineExperience")]
public double? ExamineExperience { get; set; }
[JsonPropertyName("HideEntrails")]
public bool? HideEntrails { get; set; }
[JsonPropertyName("InsuranceDisabled")]
public bool? InsuranceDisabled { get; set; }
[JsonPropertyName("RepairCost")]
public double? RepairCost { get; set; }
[JsonPropertyName("RepairSpeed")]
public double? RepairSpeed { get; set; }
[JsonPropertyName("ExtraSizeLeft")]
public double? ExtraSizeLeft { get; set; }
[JsonPropertyName("ExtraSizeRight")]
public double? ExtraSizeRight { get; set; }
[JsonPropertyName("ExtraSizeUp")]
public double? ExtraSizeUp { get; set; }
[JsonPropertyName("FlareTypes")]
public List<string>? FlareTypes { get; set; }
[JsonPropertyName("ExtraSizeDown")]
public double? ExtraSizeDown { get; set; }
[JsonPropertyName("ExtraSizeForceAdd")]
public bool? ExtraSizeForceAdd { get; set; }
[JsonPropertyName("MergesWithChildren")]
public bool? MergesWithChildren { get; set; }
[JsonPropertyName("MetascoreGroup")]
public string? MetaScoreGroup { get; set; }
[JsonPropertyName("CanSellOnRagfair")]
public bool? CanSellOnRagfair { get; set; }
[JsonPropertyName("CanRequireOnRagfair")]
public bool? CanRequireOnRagfair { get; set; }
[JsonPropertyName("ConflictingItems")]
public List<string>? ConflictingItems { get; set; }
[JsonPropertyName("Unlootable")]
public bool? Unlootable { get; set; }
[JsonPropertyName("UnlootableFromSlot")]
public string? UnlootableFromSlot { get; set; }
[JsonPropertyName("UnlootableFromSide")]
public List<string>? UnlootableFromSide { get; set; }
[JsonPropertyName("AnimationVariantsNumber")]
public double? AnimationVariantsNumber { get; set; }
[JsonPropertyName("DiscardingBlock")]
public bool? DiscardingBlock { get; set; }
[JsonPropertyName("DropSoundType")]
public string? DropSoundType { get; set; }
[JsonPropertyName("RagFairCommissionModifier")]
public double? RagFairCommissionModifier { get; set; }
[JsonPropertyName("RarityPvE")]
public string? RarityPvE { get; set; }
[JsonPropertyName("IsAlwaysAvailableForInsurance")]
public bool? IsAlwaysAvailableForInsurance { get; set; }
[JsonPropertyName("DiscardLimit")]
public double? DiscardLimit { get; set; }
[JsonPropertyName("MaxResource")]
public double? MaxResource { get; set; }
[JsonPropertyName("Resource")]
public double? Resource { get; set; }
[JsonPropertyName("DogTagQualities")]
public bool? DogTagQualities { get; set; }
[JsonPropertyName("Grids")]
public List<Grid>? Grids { get; set; }
[JsonPropertyName("Slots")]
public List<Slot>? Slots { get; set; }
[JsonPropertyName("CanPutIntoDuringTheRaid")]
public bool? CanPutIntoDuringTheRaid { get; set; }
[JsonPropertyName("CantRemoveFromSlotsDuringRaid")]
public List<string>? CantRemoveFromSlotsDuringRaid { get; set; }
[JsonPropertyName("KeyIds")]
public List<string>? KeyIds { get; set; }
[JsonPropertyName("TagColor")]
public double? TagColor { get; set; }
[JsonPropertyName("TagName")]
public string? TagName { get; set; }
[JsonPropertyName("Durability")]
public double? Durability { get; set; }
[JsonPropertyName("Accuracy")]
public double? Accuracy { get; set; }
[JsonPropertyName("Recoil")]
public double? Recoil { get; set; }
[JsonPropertyName("Loudness")]
public double? Loudness { get; set; }
[JsonPropertyName("EffectiveDistance")]
public double? EffectiveDistance { get; set; }
[JsonPropertyName("Ergonomics")]
public double? Ergonomics { get; set; }
[JsonPropertyName("Velocity")]
public double? Velocity { get; set; }
[JsonPropertyName("WeaponRecoilSettings")]
public WeaponRecoilSettings? WeaponRecoilSettings { get; set; }
[JsonPropertyName("WithAnimatorAiming")]
public bool? WithAnimatorAiming { get; set; }
[JsonPropertyName("RaidModdable")]
public bool? RaidModdable { get; set; }
[JsonPropertyName("ToolModdable")]
public bool? ToolModdable { get; set; }
[JsonPropertyName("UniqueAnimationModID")]
public double? UniqueAnimationModID { get; set; }
[JsonPropertyName("BlocksFolding")]
public bool? BlocksFolding { get; set; }
[JsonPropertyName("BlocksCollapsible")]
public bool? BlocksCollapsible { get; set; }
[JsonPropertyName("IsAnimated")]
public bool? IsAnimated { get; set; }
[JsonPropertyName("HasShoulderContact")]
public bool? HasShoulderContact { get; set; }
[JsonPropertyName("SightingRange")]
public double? SightingRange { get; set; }
[JsonPropertyName("ZoomSensitivity")]
public double? ZoomSensitivity { get; set; }
[JsonPropertyName("DoubleActionAccuracyPenaltyMult")]
public double? DoubleActionAccuracyPenaltyMult { get; set; }
[JsonPropertyName("ModesCount")]
public object? ModesCount { get; set; } // TODO: object here
[JsonPropertyName("DurabilityBurnModificator")]
public double? DurabilityBurnModificator { get; set; }
[JsonPropertyName("HeatFactor")]
public double? HeatFactor { get; set; }
[JsonPropertyName("CoolFactor")]
public double? CoolFactor { get; set; }
[JsonPropertyName("muzzleModType")]
public string? MuzzleModType { get; set; }
[JsonPropertyName("CustomAimPlane")]
public string? CustomAimPlane { get; set; }
[JsonPropertyName("IsAdjustableOptic")]
public bool? IsAdjustableOptic { get; set; }
[JsonPropertyName("MinMaxFov")]
public XYZ? MinMaxFov { get; set; }
[JsonPropertyName("sightModType")]
public string? SightModType { get; set; }
[JsonPropertyName("aimingSensitivity")]
public double? AimingSensitivity { get; set; }
[JsonPropertyName("SightModesCount")]
public double? SightModesCount { get; set; }
[JsonPropertyName("OpticCalibrationDistances")]
public List<double>? OpticCalibrationDistances { get; set; }
[JsonPropertyName("ScopesCount")]
public double? ScopesCount { get; set; }
[JsonPropertyName("AimSensitivity")]
public object? AimSensitivity { get; set; } // TODO: object here
[JsonPropertyName("Zooms")]
public List<List<double>>? Zooms { get; set; }
[JsonPropertyName("CalibrationDistances")]
public List<List<double>>? CalibrationDistances { get; set; }
[JsonPropertyName("Intensity")]
public double? Intensity { get; set; }
[JsonPropertyName("Mask")]
public string? Mask { get; set; }
[JsonPropertyName("MaskSize")]
public double? MaskSize { get; set; }
[JsonPropertyName("IsMagazineForStationaryWeapon")]
public bool? IsMagazineForStationaryWeapon { get; set; }
[JsonPropertyName("NoiseIntensity")]
public double? NoiseIntensity { get; set; }
[JsonPropertyName("NoiseScale")]
public double? NoiseScale { get; set; }
[JsonPropertyName("Color")]
public Color? Color { get; set; }
[JsonPropertyName("DiffuseIntensity")]
public double? DiffuseIntensity { get; set; }
[JsonPropertyName("MagazineWithBelt")]
public bool? MagazineWithBelt { get; set; }
[JsonPropertyName("HasHinge")]
public bool? HasHinge { get; set; }
[JsonPropertyName("RampPalette")]
public string? RampPalette { get; set; }
[JsonPropertyName("DepthFade")]
public double? DepthFade { get; set; }
[JsonPropertyName("RoughnessCoef")]
public double? RoughnessCoef { get; set; }
[JsonPropertyName("SpecularCoef")]
public double? SpecularCoef { get; set; }
[JsonPropertyName("MainTexColorCoef")]
public double? MainTexColorCoef { get; set; }
[JsonPropertyName("MinimumTemperatureValue")]
public double? MinimumTemperatureValue { get; set; }
[JsonPropertyName("RampShift")]
public double? RampShift { get; set; }
[JsonPropertyName("HeatMin")]
public double? HeatMin { get; set; }
[JsonPropertyName("ColdMax")]
public double? ColdMax { get; set; }
[JsonPropertyName("IsNoisy")]
public bool? IsNoisy { get; set; }
[JsonPropertyName("IsFpsStuck")]
public bool? IsFpsStuck { get; set; }
[JsonPropertyName("IsGlitch")]
public bool? IsGlitch { get; set; }
[JsonPropertyName("IsMotionBlurred")]
public bool? IsMotionBlurred { get; set; }
[JsonPropertyName("IsPixelated")]
public bool? IsPixelated { get; set; }
[JsonPropertyName("PixelationBlockCount")]
public double? PixelationBlockCount { get; set; }
[JsonPropertyName("ShiftsAimCamera")]
public double? ShiftsAimCamera { get; set; }
[JsonPropertyName("magAnimationIndex")]
public double? MagAnimationIndex { get; set; }
[JsonPropertyName("Cartridges")]
public List<Slot>? Cartridges { get; set; }
[JsonPropertyName("CanFast")]
public bool? CanFast { get; set; }
[JsonPropertyName("CanHit")]
public bool? CanHit { get; set; }
[JsonPropertyName("canAdmin")]
public bool? CanAdmin { get; set; }
[JsonPropertyName("loadUnloadModifier")]
public double? LoadUnloadModifier { get; set; }
[JsonPropertyName("checkTimeModifier")]
public double? CheckTimeModifier { get; set; }
[JsonPropertyName("checkOverride")]
public double? CheckOverride { get; set; }
[JsonPropertyName("reloadMagType")]
public string? ReloadMagType { get; set; }
[JsonPropertyName("visibleAmmoRangesString")]
public string? VisibleAmmoRangesString { get; set; }
[JsonPropertyName("malfunctionChance")]
public double? MalfunctionChance { get; set; }
[JsonPropertyName("isShoulderContact")]
public bool? IsShoulderContact { get; set; }
[JsonPropertyName("foldable")]
public bool? Foldable { get; set; }
[JsonPropertyName("retractable")]
public bool? Retractable { get; set; }
[JsonPropertyName("sizeReduceRight")]
public double? SizeReduceRight { get; set; }
[JsonPropertyName("centerOfImpact")]
public double? CenterOfImpact { get; set; }
[JsonPropertyName("isSilencer")]
public bool? IsSilencer { get; set; }
[JsonPropertyName("deviationCurve")]
public double? DeviationCurve { get; set; }
[JsonPropertyName("deviationMax")]
public double? DeviationMax { get; set; }
[JsonPropertyName("searchSound")]
public string? SearchSound { get; set; }
[JsonPropertyName("blocksArmorVest")]
public bool? BlocksArmorVest { get; set; }
[JsonPropertyName("speedPenaltyPercent")]
public double? SpeedPenaltyPercent { get; set; }
[JsonPropertyName("gridLayoutName")]
public string? GridLayoutName { get; set; }
[JsonPropertyName("containerSpawnChanceModifier")]
public double? ContainerSpawnChanceModifier { get; set; }
[JsonPropertyName("spawnExcludedFilter")]
public List<string>? SpawnExcludedFilter { get; set; }
[JsonPropertyName("spawnFilter")]
public List<object>? SpawnFilter { get; set; } // TODO: object here
[JsonPropertyName("containType")]
public List<object>? ContainType { get; set; } // TODO: object here
[JsonPropertyName("sizeWidth")]
public double? SizeWidth { get; set; }
[JsonPropertyName("sizeHeight")]
public double? SizeHeight { get; set; }
[JsonPropertyName("isSecured")]
public bool? IsSecured { get; set; }
[JsonPropertyName("spawnTypes")]
public string? SpawnTypes { get; set; }
[JsonPropertyName("lootFilter")]
public List<object>? LootFilter { get; set; } // TODO: object here
[JsonPropertyName("spawnRarity")]
public string? SpawnRarity { get; set; }
[JsonPropertyName("minCountSpawn")]
public double? MinCountSpawn { get; set; }
[JsonPropertyName("maxCountSpawn")]
public double? MaxCountSpawn { get; set; }
[JsonPropertyName("openedByKeyID")]
public List<string>? OpenedByKeyID { get; set; }
[JsonPropertyName("rigLayoutName")]
public string? RigLayoutName { get; set; }
[JsonPropertyName("maxDurability")]
public double? MaxDurability { get; set; }
[JsonPropertyName("armorZone")]
public List<string>? ArmorZone { get; set; }
[JsonPropertyName("armorClass")]
[JsonConverter(typeof(StringToNumberFactoryConverter))]
public double? ArmorClass { get; set; } // TODO: object here
[JsonPropertyName("armorColliders")]
public List<string>? ArmorColliders { get; set; }
[JsonPropertyName("armorPlateColliders")]
public List<string>? ArmorPlateColliders { get; set; }
[JsonPropertyName("bluntDamageReduceFromSoftArmor")]
public bool? BluntDamageReduceFromSoftArmor { get; set; }
[JsonPropertyName("mousePenalty")]
public double? MousePenalty { get; set; }
[JsonPropertyName("weaponErgonomicPenalty")]
public double? WeaponErgonomicPenalty { get; set; }
[JsonPropertyName("bluntThroughput")]
public double? BluntThroughput { get; set; }
[JsonPropertyName("armorMaterial")]
public string? ArmorMaterial { get; set; }
[JsonPropertyName("armorType")]
public string? ArmorType { get; set; }
[JsonPropertyName("weapClass")]
public string? WeapClass { get; set; }
[JsonPropertyName("weapUseType")]
public string? WeapUseType { get; set; }
[JsonPropertyName("ammoCaliber")]
public string? AmmoCaliber { get; set; }
[JsonPropertyName("operatingResource")]
public double? OperatingResource { get; set; }
[JsonPropertyName("postRecoilHorizontalRangeHandRotation")]
public XYZ? PostRecoilHorizontalRangeHandRotation { get; set; }
[JsonPropertyName("postRecoilVerticalRangeHandRotation")]
public XYZ? PostRecoilVerticalRangeHandRotation { get; set; }
[JsonPropertyName("progressRecoilAngleOnStable")]
public XYZ? ProgressRecoilAngleOnStable { get; set; }
[JsonPropertyName("repairComplexity")]
public double? RepairComplexity { get; set; }
[JsonPropertyName("durabSpawnMin")]
public double? DurabSpawnMin { get; set; }
[JsonPropertyName("durabSpawnMax")]
public double? DurabSpawnMax { get; set; }
[JsonPropertyName("isFastReload")]
public bool? IsFastReload { get; set; }
[JsonPropertyName("recoilForceUp")]
public double? RecoilForceUp { get; set; }
[JsonPropertyName("recoilForceBack")]
public double? RecoilForceBack { get; set; }
[JsonPropertyName("recoilAngle")]
public double? RecoilAngle { get; set; }
[JsonPropertyName("recoilCamera")]
public double? RecoilCamera { get; set; }
[JsonPropertyName("recoilCategoryMultiplierHandRotation")]
public double? RecoilCategoryMultiplierHandRotation { get; set; }
[JsonPropertyName("weapFireType")]
public List<string>? WeapFireType { get; set; }
[JsonPropertyName("recolDispersion")]
public double? RecolDispersion { get; set; }
[JsonPropertyName("singleFireRate")]
public double? SingleFireRate { get; set; }
[JsonPropertyName("canQueueSecondShot")]
public bool? CanQueueSecondShot { get; set; }
[JsonPropertyName("bFirerate")]
public double? BFirerate { get; set; }
[JsonPropertyName("bEffDist")]
public double? BEffDist { get; set; }
[JsonPropertyName("bHearDist")]
public double? BHearDist { get; set; }
[JsonPropertyName("blockLeftStance")]
public bool? BlockLeftStance { get; set; }
[JsonPropertyName("isChamberLoad")]
public bool? IsChamberLoad { get; set; }
[JsonPropertyName("chamberAmmoCount")]
public double? ChamberAmmoCount { get; set; }
[JsonPropertyName("isBoltCatch")]
public bool? IsBoltCatch { get; set; }
[JsonPropertyName("defMagType")]
public string? DefMagType { get; set; }
[JsonPropertyName("defAmmo")]
public string? DefAmmo { get; set; }
[JsonPropertyName("adjustCollimatorsToTrajectory")]
public bool? AdjustCollimatorsToTrajectory { get; set; }
[JsonPropertyName("shotgunDispersion")]
public double? ShotgunDispersion { get; set; }
[JsonPropertyName("chambers")]
public List<Slot>? Chambers { get; set; }
[JsonPropertyName("cameraSnap")]
public double? CameraSnap { get; set; }
[JsonPropertyName("cameraToWeaponAngleSpeedRange")]
public XYZ? CameraToWeaponAngleSpeedRange { get; set; }
[JsonPropertyName("cameraToWeaponAngleStep")]
public double? CameraToWeaponAngleStep { get; set; }
[JsonPropertyName("reloadMode")]
public string? ReloadMode { get; set; }
[JsonPropertyName("aimPlane")]
public double? AimPlane { get; set; }
[JsonPropertyName("tacticalReloadStiffnes")]
public XYZ? TacticalReloadStiffnes { get; set; }
[JsonPropertyName("tacticalReloadFixation")]
public double? TacticalReloadFixation { get; set; }
[JsonPropertyName("recoilCenter")]
public XYZ? RecoilCenter { get; set; }
[JsonPropertyName("rotationCenter")]
public XYZ? RotationCenter { get; set; }
[JsonPropertyName("rotationCenterNoStock")]
public XYZ? RotationCenterNoStock { get; set; }
[JsonPropertyName("shotsGroupSettings")]
public List<ShotsGroupSettings>? ShotsGroupSettings { get; set; }
[JsonPropertyName("foldedSlot")]
public string? FoldedSlot { get; set; }
[JsonPropertyName("forbidMissingVitalParts")]
public bool? ForbidMissingVitalParts { get; set; }
[JsonPropertyName("forbidNonEmptyContainers")]
public bool? ForbidNonEmptyContainers { get; set; }
[JsonPropertyName("compactHandling")]
public bool? CompactHandling { get; set; }
[JsonPropertyName("minRepairDegradation")]
public double? MinRepairDegradation { get; set; }
[JsonPropertyName("maxRepairDegradation")]
public double? MaxRepairDegradation { get; set; }
[JsonPropertyName("ironSightRange")]
public double? IronSightRange { get; set; }
[JsonPropertyName("isBeltMachineGun")]
public bool? IsBeltMachineGun { get; set; }
[JsonPropertyName("isFlareGun")]
public bool? IsFlareGun { get; set; }
[JsonPropertyName("isGrenadeLauncher")]
public bool? IsGrenadeLauncher { get; set; }
[JsonPropertyName("isOneoff")]
public bool? IsOneoff { get; set; }
[JsonPropertyName("mustBoltBeOpennedForExternalReload")]
public bool? MustBoltBeOpennedForExternalReload { get; set; }
[JsonPropertyName("mustBoltBeOpennedForInternalReload")]
public bool? MustBoltBeOpennedForInternalReload { get; set; }
[JsonPropertyName("noFiremodeOnBoltcatch")]
public bool? NoFiremodeOnBoltcatch { get; set; }
[JsonPropertyName("boltAction")]
public bool? BoltAction { get; set; }
[JsonPropertyName("hipAccuracyRestorationDelay")]
public double? HipAccuracyRestorationDelay { get; set; }
[JsonPropertyName("hipAccuracyRestorationSpeed")]
public double? HipAccuracyRestorationSpeed { get; set; }
[JsonPropertyName("hipInnaccuracyGain")]
public double? HipInnaccuracyGain { get; set; }
[JsonPropertyName("manualBoltCatch")]
public bool? ManualBoltCatch { get; set; }
[JsonPropertyName("burstShotsCount")]
public double? BurstShotsCount { get; set; }
[JsonPropertyName("baseMalfunctionChance")]
public double? BaseMalfunctionChance { get; set; }
[JsonPropertyName("allowJam")]
public bool? AllowJam { get; set; }
[JsonPropertyName("allowFeed")]
public bool? AllowFeed { get; set; }
[JsonPropertyName("allowMisfire")]
public bool? AllowMisfire { get; set; }
[JsonPropertyName("allowSlide")]
public bool? AllowSlide { get; set; }
[JsonPropertyName("durabilityBurnRatio")]
public double? DurabilityBurnRatio { get; set; }
[JsonPropertyName("heatFactorGun")]
public double? HeatFactorGun { get; set; }
[JsonPropertyName("coolFactorGun")]
public double? CoolFactorGun { get; set; }
[JsonPropertyName("coolFactorGunMods")]
public double? CoolFactorGunMods { get; set; }
[JsonPropertyName("heatFactorByShot")]
public double? HeatFactorByShot { get; set; }
[JsonPropertyName("allowOverheat")]
public bool? AllowOverheat { get; set; }
[JsonPropertyName("doubleActionAccuracyPenalty")]
public double? DoubleActionAccuracyPenalty { get; set; }
[JsonPropertyName("recoilPosZMult")]
public double? RecoilPosZMult { get; set; }
[JsonPropertyName("recoilReturnPathDampingHandRotation")]
public double? RecoilReturnPathDampingHandRotation { get; set; }
[JsonPropertyName("recoilReturnPathOffsetHandRotation")]
public double? RecoilReturnPathOffsetHandRotation { get; set; }
[JsonPropertyName("recoilReturnSpeedHandRotation")]
public double? RecoilReturnSpeedHandRotation { get; set; }
[JsonPropertyName("recoilStableAngleIncreaseStep")]
public double? RecoilStableAngleIncreaseStep { get; set; }
[JsonPropertyName("recoilStableIndexShot")]
public double? RecoilStableIndexShot { get; set; }
[JsonPropertyName("minRepairKitDegradation")]
public double? MinRepairKitDegradation { get; set; }
[JsonPropertyName("maxRepairKitDegradation")]
public double? MaxRepairKitDegradation { get; set; }
[JsonPropertyName("mountCameraSnapMultiplier")]
public double? MountCameraSnapMultiplier { get; set; }
[JsonPropertyName("mountHorizontalRecoilMultiplier")]
public double? MountHorizontalRecoilMultiplier { get; set; }
[JsonPropertyName("mountReturnSpeedHandMultiplier")]
public double? MountReturnSpeedHandMultiplier { get; set; }
[JsonPropertyName("mountVerticalRecoilMultiplier")]
public double? MountVerticalRecoilMultiplier { get; set; }
[JsonPropertyName("mountingHorizontalOutOfBreathMultiplier")]
public double? MountingHorizontalOutOfBreathMultiplier { get; set; }
[JsonPropertyName("mountingPosition")]
public XYZ? MountingPosition { get; set; }
[JsonPropertyName("mountingVerticalOutOfBreathMultiplier")]
public XYZ? MountingVerticalOutOfBreathMultiplier { get; set; }
[JsonPropertyName("blocksEarpiece")]
public bool? BlocksEarpiece { get; set; }
[JsonPropertyName("blocksEyewear")]
public bool? BlocksEyewear { get; set; }
[JsonPropertyName("blocksHeadwear")]
public bool? BlocksHeadwear { get; set; }
[JsonPropertyName("blocksFaceCover")]
public bool? BlocksFaceCover { get; set; }
[JsonPropertyName("indestructibility")]
public double? Indestructibility { get; set; }
[JsonPropertyName("headSegments")]
public List<string>? HeadSegments { get; set; }
[JsonPropertyName("faceShieldComponent")]
public bool? FaceShieldComponent { get; set; }
[JsonPropertyName("faceShieldMask")]
public string? FaceShieldMask { get; set; }
[JsonPropertyName("materialType")]
public string? MaterialType { get; set; }
[JsonPropertyName("ricochetParams")]
public XYZ? RicochetParams { get; set; }
[JsonPropertyName("deafStrength")]
public string? DeafStrength { get; set; }
[JsonPropertyName("blindnessProtection")]
public double? BlindnessProtection { get; set; }
[JsonPropertyName("distortion")]
public double? Distortion { get; set; }
[JsonPropertyName("compressorTreshold")]
public double? CompressorTreshold { get; set; }
[JsonPropertyName("compressorAttack")]
public double? CompressorAttack { get; set; }
[JsonPropertyName("compressorRelease")]
public double? CompressorRelease { get; set; }
[JsonPropertyName("compressorGain")]
public double? CompressorGain { get; set; }
[JsonPropertyName("cutoffFreq")]
public double? CutoffFreq { get; set; }
[JsonPropertyName("resonance")]
public double? Resonance { get; set; }
[JsonPropertyName("rolloffMultiplier")]
public double? RolloffMultiplier { get; set; }
[JsonPropertyName("reverbVolume")]
public double? ReverbVolume { get; set; }
[JsonPropertyName("compressorVolume")]
public double? CompressorVolume { get; set; }
[JsonPropertyName("ambientVolume")]
public double? AmbientVolume { get; set; }
[JsonPropertyName("dryVolume")]
public double? DryVolume { get; set; }
[JsonPropertyName("highFrequenciesGain")]
public double? HighFrequenciesGain { get; set; }
[JsonPropertyName("foodUseTime")]
public double? FoodUseTime { get; set; }
[JsonPropertyName("foodEffectType")]
public string? FoodEffectType { get; set; }
[JsonPropertyName("stimulatorBuffs")]
public string? StimulatorBuffs { get; set; }
[JsonPropertyName("effects_health")]
public object? EffectsHealth { get; set; } // TODO: object here
[JsonPropertyName("effects_damage")]
[JsonConverter(typeof(ArrayToObjectFactoryConverter))]
[JsonIgnore(Condition = JsonIgnoreCondition.Never)]
public Dictionary<string, EffectDamageProps>? EffectsDamage { get; set; }
[JsonPropertyName("maximumNumberOfUsage")]
public double? MaximumNumberOfUsage { get; set; }
[JsonPropertyName("knifeHitDelay")]
public double? KnifeHitDelay { get; set; }
[JsonPropertyName("knifeHitSlashRate")]
public double? KnifeHitSlashRate { get; set; }
[JsonPropertyName("knifeHitStabRate")]
public double? KnifeHitStabRate { get; set; }
[JsonPropertyName("knifeHitRadius")]
public double? KnifeHitRadius { get; set; }
[JsonPropertyName("knifeHitSlashDam")]
public double? KnifeHitSlashDam { get; set; }
[JsonPropertyName("knifeHitStabDam")]
public double? KnifeHitStabDam { get; set; }
[JsonPropertyName("knifeDurab")]
public double? KnifeDurab { get; set; }
[JsonPropertyName("primaryDistance")]
public double? PrimaryDistance { get; set; }
[JsonPropertyName("secondryDistance")]
public double? SecondryDistance { get; set; }
[JsonPropertyName("slashPenetration")]
public double? SlashPenetration { get; set; }
[JsonPropertyName("stabPenetration")]
public double? StabPenetration { get; set; }
[JsonPropertyName("primaryConsumption")]
public double? PrimaryConsumption { get; set; }
[JsonPropertyName("secondryConsumption")]
public double? SecondryConsumption { get; set; }
[JsonPropertyName("deflectionConsumption")]
public double? DeflectionConsumption { get; set; }
[JsonPropertyName("appliedTrunkRotation")]
public XYZ? AppliedTrunkRotation { get; set; }
[JsonPropertyName("appliedHeadRotation")]
public XYZ? AppliedHeadRotation { get; set; }
[JsonPropertyName("displayOnModel")]
public bool? DisplayOnModel { get; set; }
[JsonPropertyName("additionalAnimationLayer")]
public double? AdditionalAnimationLayer { get; set; }
[JsonPropertyName("staminaBurnRate")]
public double? StaminaBurnRate { get; set; }
[JsonPropertyName("colliderScaleMultiplier")]
public XYZ? ColliderScaleMultiplier { get; set; }
[JsonPropertyName("configPathStr")]
public string? ConfigPathStr { get; set; }
[JsonPropertyName("maxMarkersCount")]
public double? MaxMarkersCount { get; set; }
[JsonPropertyName("scaleMin")]
public double? ScaleMin { get; set; }
[JsonPropertyName("scaleMax")]
public double? ScaleMax { get; set; }
[JsonPropertyName("medUseTime")]
public double? MedUseTime { get; set; }
[JsonPropertyName("medEffectType")]
public string? MedEffectType { get; set; }
[JsonPropertyName("maxHpResource")]
public double? MaxHpResource { get; set; }
[JsonPropertyName("hpResourceRate")]
public double? HpResourceRate { get; set; }
[JsonPropertyName("apResource")]
public double? ApResource { get; set; }
[JsonPropertyName("krResource")]
public double? KrResource { get; set; }
[JsonPropertyName("maxOpticZoom")]
public double? MaxOpticZoom { get; set; }
[JsonPropertyName("maxRepairResource")]
public double? MaxRepairResource { get; set; }
[JsonPropertyName("targetItemFilter")]
public List<string>? TargetItemFilter { get; set; }
[JsonPropertyName("repairQuality")]
public double? RepairQuality { get; set; }
[JsonPropertyName("repairType")]
public string? RepairType { get; set; }
[JsonPropertyName("stackMinRandom")]
public double? StackMinRandom { get; set; }
[JsonPropertyName("stackMaxRandom")]
public double? StackMaxRandom { get; set; }
[JsonPropertyName("ammoType")]
public string? AmmoType { get; set; }
[JsonPropertyName("initialSpeed")]
public double? InitialSpeed { get; set; }
[JsonPropertyName("ballisticCoefficient")]
public double? BallisticCoefficient { get; set; }
[JsonPropertyName("bulletMassGram")]
public double? BulletMassGram { get; set; }
[JsonPropertyName("bulletDiameterMillimeters")]
public double? BulletDiameterMillimeters { get; set; }
[JsonPropertyName("damage")]
public double? Damage { get; set; }
[JsonPropertyName("ammoAccr")]
public double? AmmoAccr { get; set; }
[JsonPropertyName("ammoRec")]
public double? AmmoRec { get; set; }
[JsonPropertyName("ammoDist")]
public double? AmmoDist { get; set; }
[JsonPropertyName("buckshotBullets")]
public double? BuckshotBullets { get; set; }
[JsonPropertyName("penetrationPower")]
public double? PenetrationPower { get; set; }
[JsonPropertyName("penetrationPowerDeviation")]
public double? PenetrationPowerDeviation { get; set; }
[JsonPropertyName("ammoHear")]
public double? AmmoHear { get; set; }
[JsonPropertyName("ammoSfx")]
public string? AmmoSfx { get; set; }
[JsonPropertyName("misfireChance")]
public double? MisfireChance { get; set; }
[JsonPropertyName("minFragmentsCount")]
public double? MinFragmentsCount { get; set; }
[JsonPropertyName("maxFragmentsCount")]
public double? MaxFragmentsCount { get; set; }
[JsonPropertyName("ammoShiftChance")]
public double? AmmoShiftChance { get; set; }
[JsonPropertyName("casingName")]
public string? CasingName { get; set; }
[JsonPropertyName("casingEjectPower")]
public double? CasingEjectPower { get; set; }
[JsonPropertyName("casingMass")]
public double? CasingMass { get; set; }
[JsonPropertyName("casingSounds")]
public string? CasingSounds { get; set; }
[JsonPropertyName("projectileCount")]
public double? ProjectileCount { get; set; }
[JsonPropertyName("penetrationChanceObstacle")]
public double? PenetrationChanceObstacle { get; set; }
[JsonPropertyName("penetrationDamageMod")]
public double? PenetrationDamageMod { get; set; }
[JsonPropertyName("ricochetChance")]
public double? RicochetChance { get; set; }
[JsonPropertyName("fragmentationChance")]
public double? FragmentationChance { get; set; }
[JsonPropertyName("deterioration")]
public double? Deterioration { get; set; }
[JsonPropertyName("speedRetardation")]
public double? SpeedRetardation { get; set; }
[JsonPropertyName("tracer")]
public bool? Tracer { get; set; }
[JsonPropertyName("tracerColor")]
public string? TracerColor { get; set; }
[JsonPropertyName("tracerDistance")]
public double? TracerDistance { get; set; }
[JsonPropertyName("armorDamage")]
public double? ArmorDamage { get; set; }
[JsonPropertyName("caliber")]
public string? Caliber { get; set; }
[JsonPropertyName("staminaBurnPerDamage")]
public double? StaminaBurnPerDamage { get; set; }
[JsonPropertyName("heavyBleedingDelta")]
public double? HeavyBleedingDelta { get; set; }
[JsonPropertyName("lightBleedingDelta")]
public double? LightBleedingDelta { get; set; }
[JsonPropertyName("showBullet")]
public bool? ShowBullet { get; set; }
[JsonPropertyName("hasGrenaderComponent")]
public bool? HasGrenaderComponent { get; set; }
[JsonPropertyName("fuzeArmTimeSec")]
public double? FuzeArmTimeSec { get; set; }
[JsonPropertyName("explosionStrength")]
public double? ExplosionStrength { get; set; }
[JsonPropertyName("minExplosionDistance")]
public double? MinExplosionDistance { get; set; }
[JsonPropertyName("maxExplosionDistance")]
public double? MaxExplosionDistance { get; set; }
[JsonPropertyName("fragmentsCount")]
public double? FragmentsCount { get; set; }
[JsonPropertyName("fragmentType")]
public string? FragmentType { get; set; }
[JsonPropertyName("showHitEffectOnExplode")]
public bool? ShowHitEffectOnExplode { get; set; }
[JsonPropertyName("explosionType")]
public string? ExplosionType { get; set; }
[JsonPropertyName("ammoLifeTimeSec")]
public double? AmmoLifeTimeSec { get; set; }
[JsonPropertyName("ammoTooltipClass")]
public string? AmmoTooltipClass { get; set; }
[JsonPropertyName("contusion")]
public XYZ? Contusion { get; set; }
[JsonPropertyName("armorDistanceDistanceDamage")]
public XYZ? ArmorDistanceDistanceDamage { get; set; }
[JsonPropertyName("blindness")]
public XYZ? Blindness { get; set; }
[JsonPropertyName("isLightAndSoundShot")]
public bool? IsLightAndSoundShot { get; set; }
[JsonPropertyName("lightAndSoundShotAngle")]
public double? LightAndSoundShotAngle { get; set; }
[JsonPropertyName("lightAndSoundShotSelfContusionTime")]
public double? LightAndSoundShotSelfContusionTime { get; set; }
[JsonPropertyName("lightAndSoundShotSelfContusionStrength")]
public double? LightAndSoundShotSelfContusionStrength { get; set; }
[JsonPropertyName("malfMisfireChance")]
public double? MalfMisfireChance { get; set; }
[JsonPropertyName("malfFeedChance")]
public double? MalfFeedChance { get; set; }
[JsonPropertyName("stackSlots")]
public List<StackSlot>? StackSlots { get; set; }
[JsonPropertyName("type")]
public string? Type { get; set; }
[JsonPropertyName("eqMin")]
public double? EqMin { get; set; }
[JsonPropertyName("eqMax")]
public double? EqMax { get; set; }
[JsonPropertyName("rate")]
public double? Rate { get; set; }
[JsonPropertyName("throwType")]
public string? ThrowType { get; set; }
[JsonPropertyName("explDelay")]
public double? ExplDelay { get; set; }
[JsonPropertyName("strength")]
public double? Strength { get; set; }
[JsonPropertyName("contusionDistance")]
public double? ContusionDistance { get; set; }
[JsonPropertyName("throwDamMax")]
public double? ThrowDamMax { get; set; }
[JsonPropertyName("emitTime")]
public double? EmitTime { get; set; }
[JsonPropertyName("canBeHiddenDuringThrow")]
public bool? CanBeHiddenDuringThrow { get; set; }
[JsonPropertyName("canPlantOnGround")]
public bool? CanPlantOnGround { get; set; }
[JsonPropertyName("minTimeToContactExplode")]
public double? MinTimeToContactExplode { get; set; }
[JsonPropertyName("explosionEffectType")]
public string? ExplosionEffectType { get; set; }
[JsonPropertyName("linkedWeapon")]
public string? LinkedWeapon { get; set; }
[JsonPropertyName("useAmmoWithoutShell")]
public bool? UseAmmoWithoutShell { get; set; }
[JsonPropertyName("randomLootSettings")]
public RandomLootSettings? RandomLootSettings { get; set; }
[JsonPropertyName("recoilDampingHandRotation")]
public double? RecoilDampingHandRotation { get; set; }
[JsonPropertyName("leanWeaponAgainstBody")]
public bool? LeanWeaponAgainstBody { get; set; }
[JsonPropertyName("removeShellAfterFire")]
public bool? RemoveShellAfterFire { get; set; }
[JsonPropertyName("repairStrategyTypes")]
public List<string>? RepairStrategyTypes { get; set; }
[JsonPropertyName("isEncoded")]
public bool? IsEncoded { get; set; }
[JsonPropertyName("layoutName")]
public string? LayoutName { get; set; }
[JsonPropertyName("lower75Prefab")]
public Prefab? Lower75Prefab { get; set; }
[JsonPropertyName("maxUsages")]
public double? MaxUsages { get; set; }
[JsonPropertyName("scavKillExpPenalty")]
public double? ScavKillExpPenalty { get; set; }
[JsonPropertyName("scavKillExpPenaltyPVE")]
public double? ScavKillExpPenaltyPVE { get; set; }
[JsonPropertyName("scavKillStandingPenalty")]
public double? ScavKillStandingPenalty { get; set; }
[JsonPropertyName("scavKillStandingPenaltyPVE")]
public double? ScavKillStandingPenaltyPVE { get; set; }
[JsonPropertyName("tradersDiscount")]
public double? TradersDiscount { get; set; }
[JsonPropertyName("tradersDiscountPVE")]
public double? TradersDiscountPVE { get; set; }
[JsonPropertyName("AvailableAsDefault")]
public bool? AvailableAsDefault { get; set; }
[JsonPropertyName("ProfileVersions")]
public List<string>? ProfileVersions { get; set; }
[JsonPropertyName("Side")]
public List<string>? Side { get; set; }
[JsonPropertyName("BodyPart")]
public string? BodyPart { get; set; }
[JsonPropertyName("IntegratedArmorVest")]
public bool? IntegratedArmorVest { get; set; }
[JsonPropertyName("WatchPosition")]
public XYZ? WatchPosition { get; set; }
[JsonPropertyName("WatchPrefab")]
public Prefab? WatchPrefab { get; set; }
[JsonPropertyName("WatchRotation")]
public XYZ? WatchRotation { get; set; }
[JsonPropertyName("Game")]
public List<string>? Game { get; set; }
[JsonPropertyName("Body")]
public string? Body { get; set; }
[JsonPropertyName("Hands")]
public string? Hands { get; set; }
[JsonPropertyName("Feet")]
public string? Feet { get; set; }
[JsonExtensionData]
public Dictionary<string, object> OtherProperties { get; set; }
}
public class WeaponRecoilSettings
{
[JsonPropertyName("Enable")]
public bool? Enable { get; set; }
[JsonPropertyName("Values")]
public List<WeaponRecoilSettingValues>? Values { get; set; }
}
public class WeaponRecoilSettingValues
{
[JsonPropertyName("Enable")]
public bool? Enable { get; set; }
[JsonPropertyName("Process")]
public WeaponRecoilProcess? Process { get; set; }
[JsonPropertyName("Target")]
public string? Target { get; set; }
}
public class WeaponRecoilProcess
{
[JsonPropertyName("ComponentType")]
public string? ComponentType { get; set; }
[JsonPropertyName("CurveAimingValueMultiply")]
public double? CurveAimingValueMultiply { get; set; }
[JsonPropertyName("CurveTimeMultiply")]
public double? CurveTimeMultiply { get; set; }
[JsonPropertyName("CurveValueMultiply")]
public double? CurveValueMultiply { get; set; }
[JsonPropertyName("TransformationCurve")]
public WeaponRecoilTransformationCurve? TransformationCurve { get; set; }
}
public class WeaponRecoilTransformationCurve
{
[JsonPropertyName("Keys")]
public List<WeaponRecoilTransformationCurveKey>? Keys { get; set; }
}
public class WeaponRecoilTransformationCurveKey
{
[JsonPropertyName("inTangent")]
public double? InTangent { get; set; }
[JsonPropertyName("outTangent")]
public double? OutTangent { get; set; }
[JsonPropertyName("time")]
public double? Time { get; set; }
[JsonPropertyName("value")]
public double? Value { get; set; }
}
public class HealthEffect
{
[JsonPropertyName("type")]
public string? Type { get; set; }
[JsonPropertyName("value")]
public double? Value { get; set; }
}
public class Prefab
{
[JsonPropertyName("path")]
public string? Path { get; set; }
[JsonPropertyName("rcid")]
public string? Rcid { get; set; }
}
public class Grid
{
[JsonPropertyName("_name")]
public string? Name { get; set; }
[JsonPropertyName("_id")]
public string? Id { get; set; }
[JsonPropertyName("_parent")]
public string? Parent { get; set; }
[JsonPropertyName("_props")]
public GridProps? Props { get; set; }
[JsonPropertyName("_proto")]
public string? Proto { get; set; }
}
public class GridProps
{
[JsonPropertyName("filters")]
public List<GridFilter>? Filters { get; set; }
[JsonPropertyName("cellsH")]
public double? CellsH { get; set; }
[JsonPropertyName("cellsV")]
public double? CellsV { get; set; }
[JsonPropertyName("minCount")]
public double? MinCount { get; set; }
[JsonPropertyName("maxCount")]
public double? MaxCount { get; set; }
[JsonPropertyName("maxWeight")]
public double? MaxWeight { get; set; }
[JsonPropertyName("isSortingTable")]
public bool? IsSortingTable { get; set; }
}
public class GridFilter
{
[JsonPropertyName("Filter")]
public List<string>? Filter { get; set; }
[JsonPropertyName("ExcludedFilter")]
public List<string>? ExcludedFilter { get; set; }
[JsonPropertyName("locked")]
public bool? Locked { get; set; }
}
public class Slot
{
[JsonPropertyName("_name")]
public string? Name { get; set; }
[JsonPropertyName("_id")]
public string? Id { get; set; }
[JsonPropertyName("_parent")]
public string? Parent { get; set; }
[JsonPropertyName("_props")]
public SlotProps? Props { get; set; }
[JsonPropertyName("_max_count")]
public double? MaxCount { get; set; }
[JsonPropertyName("_required")]
public bool? Required { get; set; }
[JsonPropertyName("_mergeSlotWithChildren")]
public bool? MergeSlotWithChildren { get; set; }
[JsonPropertyName("_proto")]
public string? Proto { get; set; }
}
public class SlotProps
{
[JsonPropertyName("filters")]
public List<SlotFilter>? Filters { get; set; }
[JsonPropertyName("MaxStackCount")]
public double? MaxStackCount { get; set; }
}
public class SlotFilter
{
[JsonPropertyName("Shift")]
public double? Shift { get; set; }
[JsonPropertyName("locked")]
public bool? Locked { get; set; }
[JsonPropertyName("Plate")]
public string? Plate { get; set; }
[JsonPropertyName("armorColliders")]
public List<string>? ArmorColliders { get; set; }
[JsonPropertyName("armorPlateColliders")]
public List<string>? ArmorPlateColliders { get; set; }
[JsonPropertyName("Filter")]
public List<string>? Filter { get; set; }
[JsonPropertyName("AnimationIndex")]
public double? AnimationIndex { get; set; }
[JsonPropertyName("MaxStackCount")]
public double? MaxStackCount { get; set; }
[JsonPropertyName("bluntDamageReduceFromSoftArmor")]
public bool? BluntDamageReduceFromSoftArmor { get; set; }
}
public class StackSlot
{
[JsonPropertyName("_name")]
public string? Name { get; set; }
[JsonPropertyName("_id")]
public string? Id { get; set; }
[JsonPropertyName("_parent")]
public string? Parent { get; set; }
[JsonPropertyName("_max_count")]
public double? MaxCount { get; set; }
[JsonPropertyName("_props")]
public StackSlotProps? Props { get; set; }
[JsonPropertyName("_proto")]
public string? Proto { get; set; }
[JsonPropertyName("upd")]
public object? Upd { get; set; } // TODO: object here
}
public class StackSlotProps
{
[JsonPropertyName("filters")]
public List<SlotFilter>? Filters { get; set; }
}
public class RandomLootSettings
{
[JsonPropertyName("allowToSpawnIdenticalItems")]
public bool? AllowToSpawnIdenticalItems { get; set; }
[JsonPropertyName("allowToSpawnQuestItems")]
public bool? AllowToSpawnQuestItems { get; set; }
[JsonPropertyName("countByRarity")]
public List<object>? CountByRarity { get; set; } // TODO: object here
[JsonPropertyName("excluded")]
public RandomLootExcluded? Excluded { get; set; }
[JsonPropertyName("filters")]
public List<object>? Filters { get; set; } // TODO: object here
[JsonPropertyName("findInRaid")]
public bool? FindInRaid { get; set; }
[JsonPropertyName("maxCount")]
public double? MaxCount { get; set; }
[JsonPropertyName("minCount")]
public double? MinCount { get; set; }
}
public class RandomLootExcluded
{
[JsonPropertyName("categoryTemplates")]
public List<object>? CategoryTemplates { get; set; } // TODO: object here
[JsonPropertyName("rarity")]
public List<string>? Rarity { get; set; }
[JsonPropertyName("templates")]
public List<object>? Templates { get; set; } // TODO: object here
}
public class EffectsHealth
{
[JsonPropertyName("Energy")]
public EffectsHealthProps? Energy { get; set; }
[JsonPropertyName("Hydration")]
public EffectsHealthProps? Hydration { get; set; }
}
public class EffectsHealthProps
{
[JsonPropertyName("value")]
public double? Value { get; set; }
}
public class EffectsDamage
{
[JsonPropertyName("Pain")]
public EffectDamageProps? Pain { get; set; }
[JsonPropertyName("LightBleeding")]
public EffectDamageProps? LightBleeding { get; set; }
[JsonPropertyName("HeavyBleeding")]
public EffectDamageProps? HeavyBleeding { get; set; }
[JsonPropertyName("Contusion")]
public EffectDamageProps? Contusion { get; set; }
[JsonPropertyName("RadExposure")]
public EffectDamageProps? RadExposure { get; set; }
[JsonPropertyName("Fracture")]
public EffectDamageProps? Fracture { get; set; }
[JsonPropertyName("DestroyedPart")]
public EffectDamageProps? DestroyedPart { get; set; }
}
public class EffectDamageProps
{
[JsonPropertyName("delay")]
public double? Delay { get; set; }
[JsonPropertyName("duration")]
public double? Duration { get; set; }
[JsonPropertyName("fadeOut")]
public double? FadeOut { get; set; }
[JsonPropertyName("cost")]
public double? Cost { get; set; }
[JsonPropertyName("healthPenaltyMin")]
public double? HealthPenaltyMin { get; set; }
[JsonPropertyName("healthPenaltyMax")]
public double? HealthPenaltyMax { get; set; }
}
public class Color
{
[JsonPropertyName("r")]
public double? R { get; set; }
[JsonPropertyName("g")]
public double? G { get; set; }
[JsonPropertyName("b")]
public double? B { get; set; }
[JsonPropertyName("a")]
public double? A { get; set; }
}
public class ShotsGroupSettings
{
[JsonPropertyName("EndShotIndex")]
public double? EndShotIndex { get; set; }
[JsonPropertyName("ShotRecoilPositionStrength")]
public XYZ? ShotRecoilPositionStrength { get; set; }
[JsonPropertyName("ShotRecoilRadianRange")]
public XYZ? ShotRecoilRadianRange { get; set; }
[JsonPropertyName("ShotRecoilRotationStrength")]
public XYZ? ShotRecoilRotationStrength { get; set; }
[JsonPropertyName("StartShotIndex")]
public double? StartShotIndex { get; set; }
}
public enum ItemType
{
NODE = 1,
ITEM = 2
}