diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs index 65e0ed1f..73dff202 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs @@ -3,204 +3,210 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalAimingSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalAimingSettings { [JsonPropertyName("MAX_AIM_PRECICING")] - public float MaxAimPrecicing { get; set; } + public float? MaxAimPrecicing { get; set; } [JsonPropertyName("BETTER_PRECICING_COEF")] - public float BetterPrecicingCoef { get; set; } + public float? BetterPrecicingCoef { get; set; } [JsonPropertyName("RECLC_Y_DIST")] - public float ReclcYDist { get; set; } + public float? ReclcYDist { get; set; } [JsonPropertyName("RECALC_DIST")] - public float RecalcDist { get; set; } + public float? RecalcDist { get; set; } [JsonPropertyName("RECALC_SQR_DIST")] - public float RecalcSqrDist { get; set; } + public float? RecalcSqrDist { get; set; } [JsonPropertyName("COEF_FROM_COVER")] - public float CoefFromCover { get; set; } + public float? CoefFromCover { get; set; } [JsonPropertyName("PANIC_COEF")] - public float PanicCoef { get; set; } + public float? PanicCoef { get; set; } [JsonPropertyName("PANIC_ACCURATY_COEF")] - public float PanicAccuratyCoef { get; set; } + public float? PanicAccuratyCoef { get; set; } [JsonPropertyName("HARD_AIM")] - public float HardAim { get; set; } + public float? HardAim { get; set; } [JsonPropertyName("HARD_AIM_CHANCE_100")] - public int HardAimChance100 { get; set; } + public int? HardAimChance100 { get; set; } [JsonPropertyName("PANIC_TIME")] - public float PanicTime { get; set; } + public float? PanicTime { get; set; } [JsonPropertyName("RECALC_MUST_TIME")] - public int RecalcMustTime { get; set; } + public int? RecalcMustTime { get; set; } [JsonPropertyName("RECALC_MUST_TIME_MIN")] - public int RecalcMustTimeMin { get; set; } + public int? RecalcMustTimeMin { get; set; } [JsonPropertyName("RECALC_MUST_TIME_MAX")] - public int RecalcMustTimeMax { get; set; } + public int? RecalcMustTimeMax { get; set; } [JsonPropertyName("DAMAGE_PANIC_TIME")] - public float DamagePanicTime { get; set; } + public float? DamagePanicTime { get; set; } [JsonPropertyName("DANGER_UP_POINT")] - public float DangerUpPoint { get; set; } + public float? DangerUpPoint { get; set; } [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] - public float MaxAimingUpgradeByTime { get; set; } + public float? MaxAimingUpgradeByTime { get; set; } [JsonPropertyName("DAMAGE_TO_DISCARD_AIM_0_100")] - public float DamageToDiscardAim0100 { get; set; } + public float? DamageToDiscardAim0100 { get; set; } [JsonPropertyName("MIN_TIME_DISCARD_AIM_SEC")] - public float MinTimeDiscardAimSec { get; set; } + public float? MinTimeDiscardAimSec { get; set; } [JsonPropertyName("MAX_TIME_DISCARD_AIM_SEC")] - public float MaxTimeDiscardAimSec { get; set; } + public float? MaxTimeDiscardAimSec { get; set; } [JsonPropertyName("XZ_COEF")] - public float XzCoef { get; set; } + public float? XzCoef { get; set; } [JsonPropertyName("XZ_COEF_STATIONARY_BULLET")] - public float XzCoefStationaryBullet { get; set; } + public float? XzCoefStationaryBullet { get; set; } [JsonPropertyName("XZ_COEF_STATIONARY_GRENADE")] - public float XzCoefStationaryGrenade { get; set; } + public float? XzCoefStationaryGrenade { get; set; } [JsonPropertyName("SHOOT_TO_CHANGE_PRIORITY")] - public int ShootToChangePriority { get; set; } + public int? ShootToChangePriority { get; set; } [JsonPropertyName("BOTTOM_COEF")] - public float BottomCoef { get; set; } + public float? BottomCoef { get; set; } [JsonPropertyName("FIRST_CONTACT_ADD_SEC")] - public float FirstContactAddSec { get; set; } + public float? FirstContactAddSec { get; set; } [JsonPropertyName("FIRST_CONTACT_ADD_CHANCE_100")] - public float FirstContactAddChance100 { get; set; } + public float? FirstContactAddChance100 { get; set; } [JsonPropertyName("BASE_HIT_AFFECTION_DELAY_SEC")] - public float BaseHitAffectionDelaySec { get; set; } + public float? BaseHitAffectionDelaySec { get; set; } [JsonPropertyName("BASE_HIT_AFFECTION_MIN_ANG")] - public float BaseHitAffectionMinAng { get; set; } + public float? BaseHitAffectionMinAng { get; set; } [JsonPropertyName("BASE_HIT_AFFECTION_MAX_ANG")] - public float BaseHitAffectionMaxAng { get; set; } + public float? BaseHitAffectionMaxAng { get; set; } [JsonPropertyName("BASE_SHIEF")] - public float BaseShief { get; set; } + public float? BaseShief { get; set; } [JsonPropertyName("BASE_SHIEF_STATIONARY_BULLET")] - public float BaseShiefStationaryBullet { get; set; } + public float? BaseShiefStationaryBullet { get; set; } [JsonPropertyName("BASE_SHIEF_STATIONARY_GRENADE")] - public float BaseShiefStationaryGrenade { get; set; } + public float? BaseShiefStationaryGrenade { get; set; } [JsonPropertyName("SCATTERING_HAVE_DAMAGE_COEF")] - public float ScatteringHaveDamageCoef { get; set; } + public float? ScatteringHaveDamageCoef { get; set; } [JsonPropertyName("SCATTERING_DIST_MODIF")] - public float ScatteringDistModif { get; set; } + public float? ScatteringDistModif { get; set; } [JsonPropertyName("SCATTERING_DIST_MODIF_CLOSE")] - public float ScatteringDistModifClose { get; set; } + public float? ScatteringDistModifClose { get; set; } [JsonPropertyName("AIMING_TYPE")] - public int AimingType { get; set; } + public int? AimingType { get; set; } [JsonPropertyName("DIST_TO_SHOOT_TO_CENTER")] - public float DistToShootToCenter { get; set; } + public float? DistToShootToCenter { get; set; } [JsonPropertyName("DIST_TO_SHOOT_NO_OFFSET")] - public float DistToShootNoOffset { get; set; } + public float? DistToShootNoOffset { get; set; } [JsonPropertyName("SHPERE_FRIENDY_FIRE_SIZE")] - public float ShpereFriendyFireSize { get; set; } + public float? ShpereFriendyFireSize { get; set; } [JsonPropertyName("COEF_IF_MOVE")] - public float CoefIfMove { get; set; } + public float? CoefIfMove { get; set; } [JsonPropertyName("TIME_COEF_IF_MOVE")] - public float TimeCoefIfMove { get; set; } + public float? TimeCoefIfMove { get; set; } [JsonPropertyName("BOT_MOVE_IF_DELTA")] - public float BotMoveIfDelta { get; set; } + public float? BotMoveIfDelta { get; set; } [JsonPropertyName("NEXT_SHOT_MISS_CHANCE_100")] - public float NextShotMissChance100 { get; set; } + public float? NextShotMissChance100 { get; set; } [JsonPropertyName("NEXT_SHOT_MISS_Y_OFFSET")] - public float NextShotMissYOffset { get; set; } + public float? NextShotMissYOffset { get; set; } [JsonPropertyName("ANYTIME_LIGHT_WHEN_AIM_100")] - public float AnytimeLightWhenAim100 { get; set; } + public float? AnytimeLightWhenAim100 { get; set; } [JsonPropertyName("ANY_PART_SHOOT_TIME")] - public float AnyPartShootTime { get; set; } + public float? AnyPartShootTime { get; set; } [JsonPropertyName("WEAPON_ROOT_OFFSET")] - public float WeaponRootOffset { get; set; } + public float? WeaponRootOffset { get; set; } [JsonPropertyName("MIN_DAMAGE_TO_GET_HIT_AFFETS")] - public float MinDamageToGetHitAffets { get; set; } + public float? MinDamageToGetHitAffets { get; set; } [JsonPropertyName("MAX_AIM_TIME")] - public float MaxAimTime { get; set; } + public float? MaxAimTime { get; set; } [JsonPropertyName("OFFSET_RECAL_ANYWAY_TIME")] - public float OffsetRecalAnywayTime { get; set; } + public float? OffsetRecalAnywayTime { get; set; } [JsonPropertyName("Y_TOP_OFFSET_COEF")] - public float YTopOffsetCoef { get; set; } + public float? YTopOffsetCoef { get; set; } [JsonPropertyName("Y_BOTTOM_OFFSET_COEF")] - public float YBottomOffsetCoef { get; set; } + public float? YBottomOffsetCoef { get; set; } [JsonPropertyName("STATIONARY_LEAVE_HALF_DEGREE")] - public float StationaryLeaveHalfDegree { get; set; } + public float? StationaryLeaveHalfDegree { get; set; } [JsonPropertyName("BAD_SHOOTS_MIN")] - public int BadShootsMin { get; set; } + public int? BadShootsMin { get; set; } [JsonPropertyName("BAD_SHOOTS_MAX")] - public int BadShootsMax { get; set; } + public int? BadShootsMax { get; set; } [JsonPropertyName("BAD_SHOOTS_OFFSET")] - public float BadShootsOffset { get; set; } + public float? BadShootsOffset { get; set; } [JsonPropertyName("BAD_SHOOTS_MAIN_COEF")] - public float BadShootsMainCoef { get; set; } + public float? BadShootsMainCoef { get; set; } [JsonPropertyName("START_TIME_COEF")] - public float StartTimeCoef { get; set; } + public float? StartTimeCoef { get; set; } [JsonPropertyName("AIMING_ON_WAY")] - public float AimingOnWay { get; set; } + public float? AimingOnWay { get; set; } [JsonPropertyName("FIRST_CONTACT_HARD_TO_SEE_MISS_SHOOTS_DISTANCE")] - public float FirstContactHardToSeeMissShootsDistance { get; set; } + public float? FirstContactHardToSeeMissShootsDistance { get; set; } [JsonPropertyName("FIRST_CONTACT_HARD_TO_SEE_MISS_SHOOTS_COUNT")] - public int FirstContactHardToSeeMissShootsCount { get; set; } + public int? FirstContactHardToSeeMissShootsCount { get; set; } [JsonPropertyName("MISS_FIRST_SOOTS")] - public int MissFirstSoots { get; set; } + public int? MissFirstSoots { get; set; } [JsonPropertyName("MISS_ON_START")] - public int MissOnStart { get; set; } + public int? MissOnStart { get; set; } [JsonPropertyName("MISS_DIST")] - public float MissDist { get; set; } + public float? MissDist { get; set; } [JsonPropertyName("UnderbarrelLauncherAiming")] public BotUnderbarrelLauncherAimingSettings UnderbarrelLauncherAiming { get; set; } @@ -212,101 +218,101 @@ public record BotGlobalAimingSettings public record BotUnderbarrelLauncherAimingSettings { [JsonPropertyName("AIMING_ON_WAY")] - public float AimingOnWay { get; set; } + public float? AimingOnWay { get; set; } [JsonPropertyName("ANYTIME_LIGHT_WHEN_AIM_100")] - public float AnytimeLightWhenAim100 { get; set; } + public float? AnytimeLightWhenAim100 { get; set; } [JsonPropertyName("BAD_SHOOTS_MIN")] - public int BadShootsMin { get; set; } + public int? BadShootsMin { get; set; } [JsonPropertyName("BAD_SHOOTS_MAX")] - public int BadShootsMax { get; set; } + public int? BadShootsMax { get; set; } [JsonPropertyName("START_TIME_COEF")] - public float StartTimeCoef { get; set; } + public float? StartTimeCoef { get; set; } [JsonPropertyName("DAMAGE_TO_DISCARD_AIM_0_100")] - public float DamageToDiscardAim0100 { get; set; } + public float? DamageToDiscardAim0100 { get; set; } [JsonPropertyName("MIN_TIME_DISCARD_AIM_SEC")] - public float MinTimeDiscardAimSec { get; set; } + public float? MinTimeDiscardAimSec { get; set; } [JsonPropertyName("MAX_TIME_DISCARD_AIM_SEC")] - public float MaxTimeDiscardAimSec { get; set; } + public float? MaxTimeDiscardAimSec { get; set; } [JsonPropertyName("MAX_AIM_PRECICING")] - public float MaxAimPrecicing { get; set; } + public float? MaxAimPrecicing { get; set; } [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] - public float MaxAimingUpgradeByTime { get; set; } + public float? MaxAimingUpgradeByTime { get; set; } [JsonPropertyName("BOT_MOVE_IF_DELTA")] - public float BotMoveIfDelta { get; set; } + public float? BotMoveIfDelta { get; set; } [JsonPropertyName("PANIC_TIME")] - public float PanicTime { get; set; } + public float? PanicTime { get; set; } [JsonPropertyName("RECALC_MUST_TIME_MIN")] - public int RecalcMustTimeMin { get; set; } + public int? RecalcMustTimeMin { get; set; } [JsonPropertyName("RECALC_MUST_TIME_MAX")] - public int RecalcMustTimeMax { get; set; } + public int? RecalcMustTimeMax { get; set; } [JsonPropertyName("RECLC_Y_DIST")] - public float ReclcYDist { get; set; } + public float? ReclcYDist { get; set; } [JsonPropertyName("RECALC_SQR_DIST")] - public float RecalcSqrDist { get; set; } + public float? RecalcSqrDist { get; set; } [JsonPropertyName("TIME_COEF_IF_MOVE")] - public float TimeCoefIfMove { get; set; } + public float? TimeCoefIfMove { get; set; } [JsonPropertyName("PANIC_COEF")] - public float PanicCoef { get; set; } + public float? PanicCoef { get; set; } [JsonPropertyName("COEF_FROM_COVER")] - public float CoefFromCover { get; set; } + public float? CoefFromCover { get; set; } [JsonPropertyName("BOTTOM_COEF")] - public float BottomCoef { get; set; } + public float? BottomCoef { get; set; } [JsonPropertyName("MAX_AIM_TIME")] - public float MaxAimTime { get; set; } + public float? MaxAimTime { get; set; } [JsonPropertyName("SCATTERING_DIST_MODIF")] - public float ScatteringDistModif { get; set; } + public float? ScatteringDistModif { get; set; } [JsonPropertyName("SCATTERING_DIST_MODIF_CLOSE")] - public float ScatteringDistModifClose { get; set; } + public float? ScatteringDistModifClose { get; set; } [JsonPropertyName("DIST_TO_SHOOT_NO_OFFSET")] - public float DistToShootNoOffset { get; set; } + public float? DistToShootNoOffset { get; set; } [JsonPropertyName("PANIC_ACCURATY_COEF")] - public float PanicAccuratyCoef { get; set; } + public float? PanicAccuratyCoef { get; set; } [JsonPropertyName("HARD_AIM")] - public float HardAim { get; set; } + public float? HardAim { get; set; } [JsonPropertyName("COEF_IF_MOVE")] - public float CoefIfMove { get; set; } + public float? CoefIfMove { get; set; } [JsonPropertyName("Y_TOP_OFFSET_COEF")] - public float YTopOffsetCoef { get; set; } + public float? YTopOffsetCoef { get; set; } [JsonPropertyName("Y_BOTTOM_OFFSET_COEF")] - public float YBottomOffsetCoef { get; set; } + public float? YBottomOffsetCoef { get; set; } [JsonPropertyName("NEXT_SHOT_MISS_Y_OFFSET")] - public float NextShotMissYOffset { get; set; } + public float? NextShotMissYOffset { get; set; } [JsonPropertyName("BAD_SHOOTS_OFFSET")] - public float BadShootsOffset { get; set; } + public float? BadShootsOffset { get; set; } [JsonPropertyName("BAD_SHOOTS_MAIN_COEF")] - public float BadShootsMainCoef { get; set; } + public float? BadShootsMainCoef { get; set; } [JsonPropertyName("OFFSET_RECAL_ANYWAY_TIME")] - public float OffsetRecalAnywayTime { get; set; } + public float? OffsetRecalAnywayTime { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalCoreSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalCoreSettings.cs index 3b8bca6e..25a88d32 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalCoreSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalCoreSettings.cs @@ -3,54 +3,60 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See GClass611 (To be remapped to BotGlobalsCoreSettingsClass) in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalCoreSettings { [JsonPropertyName("VisibleAngle")] - public float VisibleAngle { get; set; } + public float? VisibleAngle { get; set; } [JsonPropertyName("VisibleDistance")] - public float VisibleDistance { get; set; } + public float? VisibleDistance { get; set; } [JsonPropertyName("GainSightCoef")] - public float GainSightCoef { get; set; } + public float? GainSightCoef { get; set; } [JsonPropertyName("ScatteringPerMeter")] - public float ScatteringPerMeter { get; set; } + public float? ScatteringPerMeter { get; set; } [JsonPropertyName("ScatteringClosePerMeter")] - public float ScatteringClosePerMeter { get; set; } + public float? ScatteringClosePerMeter { get; set; } [JsonPropertyName("DamageCoeff")] - public float DamageCoeff { get; set; } + public float? DamageCoeff { get; set; } [JsonPropertyName("HearingSense")] - public float HearingSense { get; set; } + public float? HearingSense { get; set; } [JsonPropertyName("CanRun")] - public bool CanRun { get; set; } + public bool? CanRun { get; set; } [JsonPropertyName("CanGrenade")] - public bool CanGrenade { get; set; } + public bool? CanGrenade { get; set; } [JsonPropertyName("AimingType")] public EAimingType AimingType { get; set; } [JsonPropertyName("PistolFireDistancePref")] - public float PistolFireDistancePref { get; set; } + public float? PistolFireDistancePref { get; set; } [JsonPropertyName("ShotgunFireDistancePref")] - public float ShotgunFireDistancePref { get; set; } + public float? ShotgunFireDistancePref { get; set; } [JsonPropertyName("RifleFireDistancePref")] - public float RifleFireDistancePref { get; set; } + public float? RifleFireDistancePref { get; set; } [JsonPropertyName("AccuratySpeed")] - public float AccuratySpeed { get; set; } + public float? AccuratySpeed { get; set; } [JsonPropertyName("WaitInCoverBetweenShotsSec")] - public float WaitInCoverBetweenShotsSec { get; set; } + public float? WaitInCoverBetweenShotsSec { get; set; } public enum EAimingType { diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs index 73503802..072e6141 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs @@ -3,91 +3,97 @@ namespace SPTarkov.Server.Core.Models.Eft.Common.Tables; /// +/// /// See BotGlobalLayData in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalLayData { [JsonPropertyName("CHECK_SHOOT_WHEN_LAYING")] - public bool CheckShootWhenLaying { get; set; } + public bool? CheckShootWhenLaying { get; set; } [JsonPropertyName("DELTA_LAY_CHECK")] - public float DeltaLayCheck { get; set; } + public float? DeltaLayCheck { get; set; } [JsonPropertyName("DELTA_GETUP")] - public float DeltaGetup { get; set; } + public float? DeltaGetup { get; set; } [JsonPropertyName("DELTA_AFTER_GETUP")] - public float DeltaAfterGetup { get; set; } + public float? DeltaAfterGetup { get; set; } [JsonPropertyName("CLEAR_POINTS_OF_SCARE_SEC")] - public float ClearPointsOfScareSec { get; set; } + public float? ClearPointsOfScareSec { get; set; } [JsonPropertyName("MAX_LAY_TIME")] - public float MaxLayTime { get; set; } + public float? MaxLayTime { get; set; } [JsonPropertyName("DELTA_WANT_LAY_CHECL_SEC")] - public float DeltaWantLayCheckSec { get; set; } + public float? DeltaWantLayCheckSec { get; set; } [JsonPropertyName("ATTACK_LAY_CHANCE")] - public float AttackLayChance { get; set; } + public float? AttackLayChance { get; set; } [JsonPropertyName("DIST_TO_COVER_TO_LAY")] - public float DistToCoverToLay { get; set; } + public float? DistToCoverToLay { get; set; } [JsonPropertyName("DIST_TO_COVER_TO_LAY_SQRT")] - public float DistToCoverToLaySqrt { get; set; } + public float? DistToCoverToLaySqrt { get; set; } [JsonPropertyName("DIST_GRASS_TERRAIN_SQRT")] - public float DistGrassTerrainSqrt { get; set; } + public float? DistGrassTerrainSqrt { get; set; } [JsonPropertyName("DIST_ENEMY_NULL_DANGER_LAY")] - public float DistEnemyNullDangerLay { get; set; } + public float? DistEnemyNullDangerLay { get; set; } [JsonPropertyName("DIST_ENEMY_NULL_DANGER_LAY_SQRT")] - public float DistEnemyNullDangerLaySqrt { get; set; } + public float? DistEnemyNullDangerLaySqrt { get; set; } [JsonPropertyName("DIST_ENEMY_GETUP_LAY")] - public float DistEnemyGetupLay { get; set; } + public float? DistEnemyGetupLay { get; set; } [JsonPropertyName("DIST_ENEMY_GETUP_LAY_SQRT")] - public float DistEnemyGetupLaySqrt { get; set; } + public float? DistEnemyGetupLaySqrt { get; set; } [JsonPropertyName("DIST_ENEMY_CAN_LAY")] - public float DistEnemyCanLay { get; set; } + public float? DistEnemyCanLay { get; set; } [JsonPropertyName("DIST_ENEMY_CAN_LAY_SQRT")] - public float DistEnemyCanLaySqrt { get; set; } + public float? DistEnemyCanLaySqrt { get; set; } [JsonPropertyName("LAY_AIM")] - public float LayAim { get; set; } + public float? LayAim { get; set; } [JsonPropertyName("MIN_CAN_LAY_DIST_SQRT")] - public float MinCanLayDistSqrt { get; set; } + public float? MinCanLayDistSqrt { get; set; } [JsonPropertyName("MIN_CAN_LAY_DIST")] - public float MinCanLayDist { get; set; } + public float? MinCanLayDist { get; set; } [JsonPropertyName("MAX_CAN_LAY_DIST_SQRT")] - public float MaxCanLayDistSqrt { get; set; } + public float? MaxCanLayDistSqrt { get; set; } [JsonPropertyName("MAX_CAN_LAY_DIST")] - public float MaxCanLayDist { get; set; } + public float? MaxCanLayDist { get; set; } [JsonPropertyName("LAY_CHANCE_DANGER")] - public float LayChanceDanger { get; set; } + public float? LayChanceDanger { get; set; } [JsonPropertyName("DAMAGE_TIME_TO_GETUP")] - public int DamageTimeToGetup { get; set; } + public int? DamageTimeToGetup { get; set; } [JsonPropertyName("SHALL_GETUP_ON_ROTATE")] - public bool ShallGetupOnRotate { get; set; } + public bool? ShallGetupOnRotate { get; set; } [JsonPropertyName("SHALL_LAY_WITHOUT_CHECK")] - public bool ShallLayWithoutCheck { get; set; } + public bool? ShallLayWithoutCheck { get; set; } [JsonPropertyName("IF_NO_ENEMY")] - public bool IfNoEnemy { get; set; } + public bool? IfNoEnemy { get; set; } [JsonPropertyName("SHALL_LAY_PROBABILTY_WHEN_ARTILLERY")] - public int ShallLayProbabilityWhenArtillery { get; set; } + public int? ShallLayProbabilityWhenArtillery { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs index 361ac5fb..e7f62f4a 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs @@ -3,199 +3,205 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalLookData in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalLookData { [JsonPropertyName("OLD_TIME_POINT")] - public float OldTimePoint { get; set; } + public float? OldTimePoint { get; set; } [JsonPropertyName("WAIT_NEW_SENSOR")] - public float WaitNewSensor { get; set; } + public float? WaitNewSensor { get; set; } [JsonPropertyName("WAIT_NEW__LOOK_SENSOR")] - public float WaitNewLookSensor { get; set; } + public float? WaitNewLookSensor { get; set; } [JsonPropertyName("LOOK_AROUND_DELTA")] - public float LookAroundDelta { get; set; } + public float? LookAroundDelta { get; set; } [JsonPropertyName("MAX_VISION_GRASS_METERS")] - public float MaxVisionGrassMeters { get; set; } + public float? MaxVisionGrassMeters { get; set; } [JsonPropertyName("MAX_VISION_GRASS_METERS_FLARE")] - public float MaxVisionGrassMetersFlare { get; set; } + public float? MaxVisionGrassMetersFlare { get; set; } [JsonPropertyName("MAX_VISION_GRASS_METERS_OPT")] - public float MaxVisionGrassMetersOpt { get; set; } + public float? MaxVisionGrassMetersOpt { get; set; } [JsonPropertyName("MAX_VISION_GRASS_METERS_FLARE_OPT")] - public float MaxVisionGrassMetersFlareOpt { get; set; } + public float? MaxVisionGrassMetersFlareOpt { get; set; } [JsonPropertyName("LightOnVisionDistance")] - public float LightOnVisionDistance { get; set; } + public float? LightOnVisionDistance { get; set; } [JsonPropertyName("FAR_DISTANCE")] - public float FarDistance { get; set; } + public float? FarDistance { get; set; } [JsonPropertyName("FarDeltaTimeSec")] - public float FarDeltaTimeSec { get; set; } + public float? FarDeltaTimeSec { get; set; } [JsonPropertyName("MIDDLE_DIST")] - public float MiddleDist { get; set; } + public float? MiddleDist { get; set; } [JsonPropertyName("MiddleDeltaTimeSec")] - public float MiddleDeltaTimeSec { get; set; } + public float? MiddleDeltaTimeSec { get; set; } [JsonPropertyName("CloseDeltaTimeSec")] - public float CloseDeltaTimeSec { get; set; } + public float? CloseDeltaTimeSec { get; set; } [JsonPropertyName("POSIBLE_VISION_SPACE")] - public float PosibleVisionSpace { get; set; } + public float? PosibleVisionSpace { get; set; } [JsonPropertyName("VISIBILITY_CHANGE_SPEED")] - public float VisibilityChangeSpeed { get; set; } + public float? VisibilityChangeSpeed { get; set; } [JsonPropertyName("MIN_DISTANCE_VISIBILITY_CHANGE_SPEED_K")] - public float MinDistanceVisibilityChangeSpeedK { get; set; } + public float? MinDistanceVisibilityChangeSpeedK { get; set; } [JsonPropertyName("MAX_DISTANCE_VISIBILITY_CHANGE_SPEED_K")] - public float MaxDistanceVisibilityChangeSpeedK { get; set; } + public float? MaxDistanceVisibilityChangeSpeedK { get; set; } [JsonPropertyName("GOAL_TO_FULL_DISSAPEAR")] - public float GoalToFullDissapear { get; set; } + public float? GoalToFullDissapear { get; set; } [JsonPropertyName("GOAL_TO_FULL_DISSAPEAR_GREEN")] - public float GoalToFullDissapearGreen { get; set; } + public float? GoalToFullDissapearGreen { get; set; } [JsonPropertyName("GOAL_TO_FULL_DISSAPEAR_SHOOT")] - public float GoalToFullDissapearShoot { get; set; } + public float? GoalToFullDissapearShoot { get; set; } [JsonPropertyName("BODY_DELTA_TIME_SEARCH_SEC")] - public float BodyDeltaTimeSearchSec { get; set; } + public float? BodyDeltaTimeSearchSec { get; set; } [JsonPropertyName("COME_TO_BODY_DIST")] - public float ComeToBodyDist { get; set; } + public float? ComeToBodyDist { get; set; } [JsonPropertyName("MARKSMAN_VISIBLE_DIST_COEF")] - public float MarksmanVisibleDistCoef { get; set; } + public float? MarksmanVisibleDistCoef { get; set; } [JsonPropertyName("VISIBLE_DISNACE_WITH_LIGHT")] - public float VisibleDisnaceWithLight { get; set; } + public float? VisibleDisnaceWithLight { get; set; } [JsonPropertyName("ENEMY_LIGHT_ADD")] - public float EnemyLightAdd { get; set; } + public float? EnemyLightAdd { get; set; } [JsonPropertyName("ENEMY_LIGHT_START_DIST")] - public float EnemyLightStartDist { get; set; } + public float? EnemyLightStartDist { get; set; } [JsonPropertyName("DIST_NOT_TO_IGNORE_WALL")] - public float DistNotToIgnoreWall { get; set; } + public float? DistNotToIgnoreWall { get; set; } [JsonPropertyName("DIST_CHECK_WALL")] - public float DistCheckWall { get; set; } + public float? DistCheckWall { get; set; } [JsonPropertyName("LOOK_LAST_POSENEMY_IF_NO_DANGER_SEC")] - public float LookLastPosenemyIfNoDangerSec { get; set; } + public float? LookLastPosenemyIfNoDangerSec { get; set; } [JsonPropertyName("MIN_LOOK_AROUD_TIME")] - public float MinLookAroudTime { get; set; } + public float? MinLookAroudTime { get; set; } [JsonPropertyName("LOOK_THROUGH_GRASS")] - public bool LookThroughGrass { get; set; } + public bool? LookThroughGrass { get; set; } [JsonPropertyName("LOOK_THROUGH_GRASS_DIST_METERS")] - public float LookThroughGrassDistMeters { get; set; } + public float? LookThroughGrassDistMeters { get; set; } [JsonPropertyName("SEC_REPEATED_SEEN")] - public float SecRepeatedSeen { get; set; } + public float? SecRepeatedSeen { get; set; } [JsonPropertyName("DIST_SQRT_REPEATED_SEEN")] - public double DistSqrtRepeatedSeen { get; set; } + public double? DistSqrtRepeatedSeen { get; set; } [JsonPropertyName("DIST_REPEATED_SEEN")] - public double DistRepeatedSeen { get; set; } + public double? DistRepeatedSeen { get; set; } [JsonPropertyName("COEF_REPEATED_SEEN")] - public float CoefRepeatedSeen { get; set; } + public float? CoefRepeatedSeen { get; set; } [JsonPropertyName("MAX_DIST_CLAMP_TO_SEEN_SPEED")] - public float MaxDistClampToSeenSpeed { get; set; } + public float? MaxDistClampToSeenSpeed { get; set; } [JsonPropertyName("NIGHT_VISION_ON")] - public float NightVisionOn { get; set; } + public float? NightVisionOn { get; set; } [JsonPropertyName("NIGHT_VISION_OFF")] - public float NightVisionOff { get; set; } + public float? NightVisionOff { get; set; } [JsonPropertyName("NIGHT_VISION_DIST")] - public float NightVisionDist { get; set; } + public float? NightVisionDist { get; set; } [JsonPropertyName("VISIBLE_ANG_LIGHT")] - public float VisibleAngLight { get; set; } + public float? VisibleAngLight { get; set; } [JsonPropertyName("VISIBLE_ANG_NIGHTVISION")] - public float VisibleAngNightvision { get; set; } + public float? VisibleAngNightvision { get; set; } [JsonPropertyName("NO_GREEN_DIST")] - public float NoGreenDist { get; set; } + public float? NoGreenDist { get; set; } [JsonPropertyName("NO_GRASS_DIST")] - public float NoGrassDist { get; set; } + public float? NoGrassDist { get; set; } [JsonPropertyName("INSIDE_BUSH_COEF")] - public float InsideBushCoef { get; set; } + public float? InsideBushCoef { get; set; } [JsonPropertyName("SELF_NIGHTVISION")] - public bool SelfNightvision { get; set; } + public bool? SelfNightvision { get; set; } [JsonPropertyName("FULL_SECTOR_VIEW")] - public bool FullSectorView { get; set; } + public bool? FullSectorView { get; set; } [JsonPropertyName("LOOK_THROUGH_PERIOD_BY_HIT")] - public float LookThroughPeriodByHit { get; set; } + public float? LookThroughPeriodByHit { get; set; } [JsonPropertyName("CHECK_HEAD_ANY_DIST")] - public bool CheckHeadAnyDist { get; set; } + public bool? CheckHeadAnyDist { get; set; } [JsonPropertyName("MIDDLE_DIST_CAN_SHOOT_HEAD")] - public bool MiddleDistCanShootHead { get; set; } + public bool? MiddleDistCanShootHead { get; set; } [JsonPropertyName("CAN_USE_LIGHT")] - public bool CanUseLight { get; set; } + public bool? CanUseLight { get; set; } [JsonPropertyName("RAIN_DEBUFF_MAXVISIBILITY_MULTIPLYER")] - public float RainDebuffMaxvisibilityMultiplyer { get; set; } + public float? RainDebuffMaxvisibilityMultiplyer { get; set; } [JsonPropertyName("FOG_DEBUFF_MAXVISIBILITY_MULTIPLYER")] - public float FogDebuffMaxvisibilityMultiplyer { get; set; } + public float? FogDebuffMaxvisibilityMultiplyer { get; set; } [JsonPropertyName("RAIN_DEBUFF_SEENCOEFF_MULTIPLYER")] - public float RainDebuffSeencoeffMultiplyer { get; set; } + public float? RainDebuffSeencoeffMultiplyer { get; set; } [JsonPropertyName("FOG_DEBUFF_SEENCOEFF_MULTIPLYER")] - public float FogDebuffSeencoeffMultiplyer { get; set; } + public float? FogDebuffSeencoeffMultiplyer { get; set; } [JsonPropertyName("SHOOT_FROM_EYES")] - public bool ShootFromEyes { get; set; } + public bool? ShootFromEyes { get; set; } [JsonPropertyName("ANGLE_FOR_GETUP")] - public float AngleForGetup { get; set; } + public float? AngleForGetup { get; set; } [JsonPropertyName("MINIMUM_VISIBLE_DIST")] - public float MinimumVisibleDist { get; set; } + public float? MinimumVisibleDist { get; set; } [JsonPropertyName("CAN_USE_STRIBOSCOPE")] - public float CanUseStriboscope { get; set; } + public float? CanUseStriboscope { get; set; } [JsonPropertyName("LOOK_TO_ENEMY_TIME")] - public float LookToEnemyTime { get; set; } + public float? LookToEnemyTime { get; set; } [JsonPropertyName("ANGLE_VISION_COEF_FILTER")] - public float AngleVisionCoefFilter { get; set; } + public float? AngleVisionCoefFilter { get; set; } [JsonPropertyName("HEAD_ROTATE_SPEED")] - public float HeadRotateSpeed { get; set; } + public float? HeadRotateSpeed { get; set; } [JsonPropertyName("VISIBILITY_LEVEL_TO_TURN_HEAD")] - public float VisibilityLevelToTurnHead { get; set; } + public float? VisibilityLevelToTurnHead { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalPatrolSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalPatrolSettings.cs index 7c6a824f..2b24ef55 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalPatrolSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalPatrolSettings.cs @@ -3,199 +3,205 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalPatrolSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public class BotGlobalPatrolSettings { [JsonPropertyName("LOOK_TIME_BASE")] - public float LookTimeBase { get; set; } + public float? LookTimeBase { get; set; } [JsonPropertyName("RESERVE_TIME_STAY")] - public float ReserveTimeStay { get; set; } + public float? ReserveTimeStay { get; set; } [JsonPropertyName("RESERVE_LOOT_TIME_STAY")] - public float ReserveLootTimeStay { get; set; } + public float? ReserveLootTimeStay { get; set; } [JsonPropertyName("FRIEND_SEARCH_SEC")] - public float FriendSearchSeconds { get; set; } + public float? FriendSearchSeconds { get; set; } [JsonPropertyName("TALK_DELAY")] - public float TalkDelay { get; set; } + public float? TalkDelay { get; set; } [JsonPropertyName("MIN_TALK_DELAY")] - public float MinTalkDelay { get; set; } + public float? MinTalkDelay { get; set; } [JsonPropertyName("TALK_DELAY_BIG")] - public float TalkDelayBig { get; set; } + public float? TalkDelayBig { get; set; } [JsonPropertyName("CHANGE_WAY_TIME")] - public float ChangeWayTime { get; set; } + public float? ChangeWayTime { get; set; } [JsonPropertyName("MIN_DIST_TO_CLOSE_TALK")] - public float MinDistToCloseTalk { get; set; } + public float? MinDistToCloseTalk { get; set; } [JsonPropertyName("VISION_DIST_COEF_PEACE")] - public float VisionDistanceCoefPeace { get; set; } + public float? VisionDistanceCoefPeace { get; set; } [JsonPropertyName("MIN_DIST_TO_CLOSE_TALK_SQR")] - public float MinDistToCloseTalkSqr { get; set; } + public float? MinDistToCloseTalkSqr { get; set; } [JsonPropertyName("CHANCE_TO_CUT_WAY_0_100")] - public float ChanceToCutWay { get; set; } + public float? ChanceToCutWay { get; set; } [JsonPropertyName("CUT_WAY_MIN_0_1")] - public float CutWayMin { get; set; } + public float? CutWayMin { get; set; } [JsonPropertyName("CUT_WAY_MAX_0_1")] - public float CutWayMax { get; set; } + public float? CutWayMax { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_WAY_0_100")] - public float ChanceToChangeWay { get; set; } + public float? ChanceToChangeWay { get; set; } [JsonPropertyName("CHANCE_TO_SHOOT_DEADBODY")] - public int ChanceToShootDeadBody { get; set; } + public int? ChanceToShootDeadBody { get; set; } [JsonPropertyName("SUSPETION_PLACE_LIFETIME")] - public float SuspicionPlaceLifetime { get; set; } + public float? SuspicionPlaceLifetime { get; set; } [JsonPropertyName("RESERVE_OUT_TIME")] - public float ReserveOutTime { get; set; } + public float? ReserveOutTime { get; set; } [JsonPropertyName("CLOSE_TO_SELECT_RESERV_WAY")] - public float CloseToSelectReserveWay { get; set; } + public float? CloseToSelectReserveWay { get; set; } [JsonPropertyName("MAX_YDIST_TO_START_WARN_REQUEST_TO_REQUESTER")] - public float MaxYDistToStartWarnRequest { get; set; } + public float? MaxYDistToStartWarnRequest { get; set; } [JsonPropertyName("MAX_YDIST_TO_START_WARN_REQUEST_TO_REQUESTER_ALLY")] - public float MaxYDistToStartWarnRequestAlly { get; set; } + public float? MaxYDistToStartWarnRequestAlly { get; set; } [JsonPropertyName("CAN_CHOOSE_RESERV")] - public bool CanChooseReserve { get; set; } + public bool? CanChooseReserve { get; set; } [JsonPropertyName("USE_ONLY_RESERV")] - public bool UseOnlyReserve { get; set; } + public bool? UseOnlyReserve { get; set; } [JsonPropertyName("HEAD_TURN_PERIOD_TIME")] - public float HeadTurnPeriodTime { get; set; } + public float? HeadTurnPeriodTime { get; set; } [JsonPropertyName("HEAD_FRONT_PERIOD_TIME")] - public float HeadFrontPeriodTime { get; set; } + public float? HeadFrontPeriodTime { get; set; } [JsonPropertyName("CHANCE_TO_PLAY_GESTURE_WHEN_CLOSE")] - public float ChanceToPlayGestureWhenClose { get; set; } + public float? ChanceToPlayGestureWhenClose { get; set; } [JsonPropertyName("HEAD_TURN_SPEED")] - public float HeadTurnSpeed { get; set; } + public float? HeadTurnSpeed { get; set; } [JsonPropertyName("HEAD_ANG_ROTATE")] - public float HeadAngleRotate { get; set; } + public float? HeadAngleRotate { get; set; } [JsonPropertyName("LOOT_PATROL_POTENTIAL_CLUSTERS_AMOUNT")] - public int LootPatrolPotentialClustersAmount { get; set; } + public int? LootPatrolPotentialClustersAmount { get; set; } [JsonPropertyName("CHANCE_TO_PLAY_VOICE_WHEN_CLOSE")] - public float ChanceToPlayVoiceWhenClose { get; set; } + public float? ChanceToPlayVoiceWhenClose { get; set; } [JsonPropertyName("GO_TO_NEXT_POINT_DELTA")] - public float GoToNextPointDelta { get; set; } + public float? GoToNextPointDelta { get; set; } [JsonPropertyName("GO_TO_NEXT_POINT_DELTA_RESERV_WAY")] - public float GoToNextPointDeltaReserveWay { get; set; } + public float? GoToNextPointDeltaReserveWay { get; set; } [JsonPropertyName("DEAD_BODY_SEE_DIST")] - public float DeadBodySeeDistance { get; set; } + public float? DeadBodySeeDistance { get; set; } [JsonPropertyName("DEAD_BODY_LEAVE_DIST")] - public float DeadBodyLeaveDistance { get; set; } + public float? DeadBodyLeaveDistance { get; set; } [JsonPropertyName("CAN_LOOK_TO_DEADBODIES")] - public bool CanLookToDeadBodies { get; set; } + public bool? CanLookToDeadBodies { get; set; } [JsonPropertyName("GESTURE_LENGTH")] - public float GestureLength { get; set; } + public float? GestureLength { get; set; } [JsonPropertyName("SHALL_STOP_IN_PEACEFUL_ACTION")] - public bool ShallStopInPeacefulAction { get; set; } + public bool? ShallStopInPeacefulAction { get; set; } [JsonPropertyName("FORCE_OPPONENT_TO_PEAEFUL")] - public bool ForceOpponentToPeaceful { get; set; } + public bool? ForceOpponentToPeaceful { get; set; } [JsonPropertyName("RESERVE_USE_SURGE_TIME_STAY")] - public float ReserveUseSurgeTimeStay { get; set; } + public float? ReserveUseSurgeTimeStay { get; set; } [JsonPropertyName("RESERV_CAN_USE_MEDS")] - public bool ReserveCanUseMeds { get; set; } + public bool? ReserveCanUseMeds { get; set; } [JsonPropertyName("USE_PATROL_POINT_ACTION_MOVE_BY_RESERVE_WAY")] - public bool UsePatrolPointActionMoveByReserveWay { get; set; } + public bool? UsePatrolPointActionMoveByReserveWay { get; set; } [JsonPropertyName("USE_SURGIAL_KIT_OVER_THE_BODY_CAHNCE_100")] - public float UseSurgicalKitChance { get; set; } + public float? UseSurgicalKitChance { get; set; } [JsonPropertyName("USE_SURGIAL_KIT_OVER_THE_BODY_SECOND_CAHNCE_100")] - public float UseSurgicalKitSecondChance { get; set; } + public float? UseSurgicalKitSecondChance { get; set; } [JsonPropertyName("FOLLOWER_START_MOVE_DELAY")] - public float FollowerStartMoveDelay { get; set; } + public float? FollowerStartMoveDelay { get; set; } [JsonPropertyName("USE_CHACHE_WAYS")] - public bool UseCachedWays { get; set; } + public bool? UseCachedWays { get; set; } [JsonPropertyName("ITEMS_TO_DROP")] - public string ItemsToDrop { get; set; } + public string? ItemsToDrop { get; set; } [JsonPropertyName("SPRINT_BETWEEN_CACHED_POINTS")] - public float SprintBetweenCachedPoints { get; set; } + public float? SprintBetweenCachedPoints { get; set; } [JsonPropertyName("CHECK_MAGAZIN_PERIOD")] - public float CheckMagazinePeriod { get; set; } + public float? CheckMagazinePeriod { get; set; } [JsonPropertyName("EAT_DRINK_PERIOD")] - public float EatDrinkPeriod { get; set; } + public float? EatDrinkPeriod { get; set; } [JsonPropertyName("WATCH_SECOND_WEAPON_PERIOD")] - public float WatchSecondWeaponPeriod { get; set; } + public float? WatchSecondWeaponPeriod { get; set; } [JsonPropertyName("CAN_WATCH_SECOND_WEAPON")] - public bool CanWatchSecondWeapon { get; set; } + public bool? CanWatchSecondWeapon { get; set; } [JsonPropertyName("DEAD_BODY_LOOK_PERIOD")] - public float DeadBodyLookPeriod { get; set; } + public float? DeadBodyLookPeriod { get; set; } [JsonPropertyName("CAN_HARD_AIM")] - public bool CanHardAim { get; set; } + public bool? CanHardAim { get; set; } [JsonPropertyName("CAN_PEACEFUL_LOOK")] - public bool CanPeacefulLook { get; set; } + public bool? CanPeacefulLook { get; set; } [JsonPropertyName("CAN_FRIENDLY_TILT")] - public bool CanFriendlyTilt { get; set; } + public bool? CanFriendlyTilt { get; set; } [JsonPropertyName("CAN_GESTUS")] - public bool CanGestus { get; set; } + public bool? CanGestus { get; set; } [JsonPropertyName("TRY_CHOOSE_RESERV_WAY_ON_START")] - public bool TryChooseReserveWayOnStart { get; set; } + public bool? TryChooseReserveWayOnStart { get; set; } [JsonPropertyName("CAN_CHECK_MAGAZINE")] - public bool CanCheckMagazine { get; set; } + public bool? CanCheckMagazine { get; set; } [JsonPropertyName("PICKUP_ITEMS_TO_BACKPACK_OR_CONTAINER")] - public bool PickupItemsToBackpackOrContainer { get; set; } + public bool? PickupItemsToBackpackOrContainer { get; set; } [JsonPropertyName("DO_RANDOM_DROP_ITEM")] - public bool DoRandomDropItem { get; set; } + public bool? DoRandomDropItem { get; set; } [JsonPropertyName("STAY_AFTER_LOOT_TIME_MIN")] - public float StayAfterLootTimeMin { get; set; } + public float? StayAfterLootTimeMin { get; set; } [JsonPropertyName("STAY_AFTER_LOOT_TIME_MAX")] - public float StayAfterLootTimeMax { get; set; } + public float? StayAfterLootTimeMax { get; set; } [JsonPropertyName("USE_REAL_LOOTING")] - public bool UseRealLooting { get; set; } + public bool? UseRealLooting { get; set; } [JsonPropertyName("DEAD_BODY_DROP_ITEM_PROBABILITY")] - public float DeadBodyDropItemProbability { get; set; } + public float? DeadBodyDropItemProbability { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs index dac8712a..770bb2cb 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs @@ -3,283 +3,289 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalShootData in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalShootData { [JsonPropertyName("SWITCH_TO_UNDERBARREL_WEAPON_COOLDOWN")] - public float SwitchToUnderbarrelWeaponCooldown { get; set; } + public float? SwitchToUnderbarrelWeaponCooldown { get; set; } [JsonPropertyName("MIN_TIME_TO_CHECK_FORCE_SWITCH_TO_GRENADE_LAUNCHER")] - public float MinTimeToCheckForceSwitchToGrenadeLauncher { get; set; } + public float? MinTimeToCheckForceSwitchToGrenadeLauncher { get; set; } [JsonPropertyName("MAX_TIME_TO_CHECK_FORCE_SWITCH_TO_GRENADE_LAUNCHER")] - public float MaxTimeToCheckForceSwitchToGrenadeLauncher { get; set; } + public float? MaxTimeToCheckForceSwitchToGrenadeLauncher { get; set; } [JsonPropertyName("MAX_TIME_SEEN_TO_SWITCH_TO_GRENADE_LAUNCHER")] - public float MaxTimeSeenToSwitchToGrenadeLauncher { get; set; } + public float? MaxTimeSeenToSwitchToGrenadeLauncher { get; set; } [JsonPropertyName("MAX_SUCCESS_GRENADE_LAUNCHER_SHOOT_ATTEMPTS")] public uint MaxSuccessGrenadeLauncherShootAttempts { get; set; } [JsonPropertyName("SHOOT_PROBABILITY_GRENADE_LAUNCHER")] - public float ShootProbabilityGrenadeLauncher { get; set; } + public float? ShootProbabilityGrenadeLauncher { get; set; } [JsonPropertyName("LOW_DIST_K_FOR_GRENADE_LAUNCHER")] - public float LowDistKForGrenadeLauncher { get; set; } + public float? LowDistKForGrenadeLauncher { get; set; } [JsonPropertyName("DEFAULT_LOW_DIST_TO_USE_GRENADE_LAUNCHER")] - public float DefaultLowDistToUseGrenadeLauncher { get; set; } + public float? DefaultLowDistToUseGrenadeLauncher { get; set; } [JsonPropertyName("DISTANCE_TO_TARGET_NEAR_ENEMY_TRESHOLD")] - public float DistanceToTargetNearEnemyTreshold { get; set; } + public float? DistanceToTargetNearEnemyTreshold { get; set; } [JsonPropertyName("DISTANCE_TO_TARGET_NEAR_ENEMY_DEVIATION")] - public float DistanceToTargetNearEnemyDeviation { get; set; } + public float? DistanceToTargetNearEnemyDeviation { get; set; } [JsonPropertyName("RECOIL_TIME_NORMALIZE")] - public float RecoilTimeNormalize { get; set; } + public float? RecoilTimeNormalize { get; set; } [JsonPropertyName("RECOIL_PER_METER")] - public float RecoilPerMeter { get; set; } + public float? RecoilPerMeter { get; set; } [JsonPropertyName("MAX_RECOIL_PER_METER")] - public float MaxRecoilPerMeter { get; set; } + public float? MaxRecoilPerMeter { get; set; } [JsonPropertyName("HORIZONT_RECOIL_COEF")] - public float HorizontRecoilCoef { get; set; } + public float? HorizontRecoilCoef { get; set; } [JsonPropertyName("WAIT_NEXT_SINGLE_SHOT")] - public float WaitNextSingleShot { get; set; } + public float? WaitNextSingleShot { get; set; } [JsonPropertyName("WAIT_NEXT_STATIONARY_BULLET")] - public float WaitNextStationaryBullet { get; set; } + public float? WaitNextStationaryBullet { get; set; } [JsonPropertyName("WAIT_NEXT_STATIONARY_GRENADE")] - public float WaitNextStationaryGrenade { get; set; } + public float? WaitNextStationaryGrenade { get; set; } [JsonPropertyName("WAIT_NEXT_SINGLE_SHOT_LONG_MAX")] - public float WaitNextSingleShotLongMax { get; set; } + public float? WaitNextSingleShotLongMax { get; set; } [JsonPropertyName("WAIT_NEXT_SINGLE_SHOT_LONG_MIN")] - public float WaitNextSingleShotLongMin { get; set; } + public float? WaitNextSingleShotLongMin { get; set; } [JsonPropertyName("NEXT_SINGLE_SHOT_PAUSE")] - public float NextSingleShotPause { get; set; } + public float? NextSingleShotPause { get; set; } [JsonPropertyName("SINGLE_SHOT_SERIES_TIME_MIN")] - public float SingleShotSeriesTimeMin { get; set; } + public float? SingleShotSeriesTimeMin { get; set; } [JsonPropertyName("SINGLE_SHOT_SERIES_TIME_MAX")] - public float SingleShotSeriesTimeMax { get; set; } + public float? SingleShotSeriesTimeMax { get; set; } [JsonPropertyName("USE_SINGLE_SHOT_SERIES")] - public bool UseSingleShotSeries { get; set; } + public bool? UseSingleShotSeries { get; set; } [JsonPropertyName("MARKSMAN_DIST_SEK_COEF")] - public float MarksmanDistSekCoef { get; set; } + public float? MarksmanDistSekCoef { get; set; } [JsonPropertyName("FINGER_HOLD_SINGLE_SHOT")] - public float FingerHoldSingleShot { get; set; } + public float? FingerHoldSingleShot { get; set; } [JsonPropertyName("FINGER_HOLD_STATIONARY_BULLET")] - public float FingerHoldStationaryBullet { get; set; } + public float? FingerHoldStationaryBullet { get; set; } [JsonPropertyName("FINGER_HOLD_STATIONARY_GRENADE")] - public float FingerHoldStationaryGrenade { get; set; } + public float? FingerHoldStationaryGrenade { get; set; } [JsonPropertyName("BASE_AUTOMATIC_TIME")] - public float BaseAutomaticTime { get; set; } + public float? BaseAutomaticTime { get; set; } [JsonPropertyName("AUTOMATIC_FIRE_SCATTERING_COEF")] - public float AutomaticFireScatteringCoef { get; set; } + public float? AutomaticFireScatteringCoef { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_TO_AUTOMATIC_FIRE_100")] - public float ChanceToChangeToAutomaticFire100 { get; set; } + public float? ChanceToChangeToAutomaticFire100 { get; set; } [JsonPropertyName("FAR_DIST_ENEMY")] - public float FarDistEnemy { get; set; } + public float? FarDistEnemy { get; set; } [JsonPropertyName("SHOOT_FROM_COVER")] - public int ShootFromCover { get; set; } + public int? ShootFromCover { get; set; } [JsonPropertyName("FAR_DIST_ENEMY_SQR")] - public float FarDistEnemySqr { get; set; } + public float? FarDistEnemySqr { get; set; } [JsonPropertyName("MAX_DIST_COEF")] - public float MaxDistCoef { get; set; } + public float? MaxDistCoef { get; set; } [JsonPropertyName("RECOIL_DELTA_PRESS")] - public float RecoilDeltaPress { get; set; } + public float? RecoilDeltaPress { get; set; } [JsonPropertyName("RUN_DIST_NO_AMMO")] - public float RunDistNoAmmo { get; set; } + public float? RunDistNoAmmo { get; set; } [JsonPropertyName("RUN_DIST_NO_AMMO_SQRT")] - public float RunDistNoAmmoSqrt { get; set; } + public float? RunDistNoAmmoSqrt { get; set; } [JsonPropertyName("CAN_SHOOTS_TIME_TO_AMBUSH")] - public int CanShootsTimeToAmbush { get; set; } + public int? CanShootsTimeToAmbush { get; set; } [JsonPropertyName("NOT_TO_SEE_ENEMY_TO_WANT_RELOAD_PERCENT")] - public float NotToSeeEnemyToWantReloadPercent { get; set; } + public float? NotToSeeEnemyToWantReloadPercent { get; set; } [JsonPropertyName("NOT_TO_SEE_ENEMY_TO_WANT_RELOAD_SEC")] - public float NotToSeeEnemyToWantReloadSec { get; set; } + public float? NotToSeeEnemyToWantReloadSec { get; set; } [JsonPropertyName("RELOAD_PECNET_NO_ENEMY")] - public float ReloadPecnetNoEnemy { get; set; } + public float? ReloadPecnetNoEnemy { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_WEAPON")] - public float ChanceToChangeWeapon { get; set; } + public float? ChanceToChangeWeapon { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_WEAPON_WITH_HELMET")] - public float ChanceToChangeWeaponWithHelmet { get; set; } + public float? ChanceToChangeWeaponWithHelmet { get; set; } [JsonPropertyName("LOW_DIST_TO_CHANGE_WEAPON")] - public float LowDistToChangeWeapon { get; set; } + public float? LowDistToChangeWeapon { get; set; } [JsonPropertyName("FAR_DIST_TO_CHANGE_WEAPON")] - public float FarDistToChangeWeapon { get; set; } + public float? FarDistToChangeWeapon { get; set; } [JsonPropertyName("SUPPRESS_BY_SHOOT_TIME")] - public float SuppressByShootTime { get; set; } + public float? SuppressByShootTime { get; set; } [JsonPropertyName("SUPPRESS_TRIGGERS_DOWN")] - public int SuppressTriggersDown { get; set; } + public int? SuppressTriggersDown { get; set; } [JsonPropertyName("SUPPRESS_TRIGGERS_DOWN_AS_LIST")] - public int SuppressTriggersDownAsList { get; set; } + public int? SuppressTriggersDownAsList { get; set; } [JsonPropertyName("DIST_TO_CHANGE_TO_MAIN")] - public float DistToChangeToMain { get; set; } + public float? DistToChangeToMain { get; set; } [JsonPropertyName("AGS_17_DIST_TO_LEAVE")] - public float Ags17DistToLeave { get; set; } + public float? Ags17DistToLeave { get; set; } [JsonPropertyName("DIST_TO_HIT_MELEE")] - public float DistToHitMelee { get; set; } + public float? DistToHitMelee { get; set; } [JsonPropertyName("DIST_TO_HIT_MELEE_CONTINUE_COMBO")] - public float DistToHitMeleeContinueCombo { get; set; } + public float? DistToHitMeleeContinueCombo { get; set; } [JsonPropertyName("DIST_TO_STOP_SPRINT_MELEE")] - public float DistToStopSprintMelee { get; set; } + public float? DistToStopSprintMelee { get; set; } [JsonPropertyName("TRY_HIT_PERIOD_MELEE")] - public float TryHitPeriodMelee { get; set; } + public float? TryHitPeriodMelee { get; set; } [JsonPropertyName("BLOCK_PERIOD_WHEN_LAY")] - public float BlockPeriodWhenLay { get; set; } + public float? BlockPeriodWhenLay { get; set; } [JsonPropertyName("CHANGE_WEAPON_PERIOD")] - public float ChangeWeaponPeriod { get; set; } + public float? ChangeWeaponPeriod { get; set; } [JsonPropertyName("USE_MELEE_COMBOS")] - public bool UseMeleeCombos { get; set; } + public bool? UseMeleeCombos { get; set; } [JsonPropertyName("MELEE_RESET_HIT_TIME")] - public float MeleeResetHitTime { get; set; } + public float? MeleeResetHitTime { get; set; } [JsonPropertyName("MELEE_STOP_MOVE_DISTANCE")] - public float MeleeStopMoveDistance { get; set; } + public float? MeleeStopMoveDistance { get; set; } [JsonPropertyName("VALIDATE_MALFUNCTION_CHANCE")] - public int ValidateMalfunctionChance { get; set; } + public int? ValidateMalfunctionChance { get; set; } [JsonPropertyName("REPAIR_MALFUNCTION_IMMEDIATE_CHANCE")] - public int RepairMalfunctionImmediateChance { get; set; } + public int? RepairMalfunctionImmediateChance { get; set; } [JsonPropertyName("DELAY_BEFORE_EXAMINE_MALFUNCTION")] - public float DelayBeforeExamineMalfunction { get; set; } + public float? DelayBeforeExamineMalfunction { get; set; } [JsonPropertyName("DELAY_BEFORE_FIX_MALFUNCTION")] - public float DelayBeforeFixMalfunction { get; set; } + public float? DelayBeforeFixMalfunction { get; set; } [JsonPropertyName("TRY_CHANGE_WEAPON_INSTEAD_RELOAD")] - public bool TryChangeWeaponInsteadReload { get; set; } + public bool? TryChangeWeaponInsteadReload { get; set; } [JsonPropertyName("MELEE_ATTACK_ZIG_ZAG")] - public bool MeleeAttackZigZag { get; set; } + public bool? MeleeAttackZigZag { get; set; } [JsonPropertyName("MIN_DIST_TO_ENEMY_TO_CHANGE_WEAPON_INSTEAD_RELOAD")] - public float MinDistToEnemyToChangeWeaponInsteadReload { get; set; } + public float? MinDistToEnemyToChangeWeaponInsteadReload { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_WEAPON_INSTEAD_RELOAD")] - public float ChanceToChangeWeaponInsteadReload { get; set; } + public float? ChanceToChangeWeaponInsteadReload { get; set; } [JsonPropertyName("CHANCE_TO_CHANGE_WEAPON_INSTEAD_RELOAD_ENEMY_WITHOUT_HELM")] - public float ChanceToChangeWeaponInsteadReloadEnemyWithoutHelm { get; set; } + public float? ChanceToChangeWeaponInsteadReloadEnemyWithoutHelm { get; set; } [JsonPropertyName("MELEE_STOP_DIST")] - public float MeleeStopDist { get; set; } + public float? MeleeStopDist { get; set; } [JsonPropertyName("BLOCK_STEERING")] - public bool BlockSteering { get; set; } + public bool? BlockSteering { get; set; } [JsonPropertyName("USE_BTR_CANSHOOT")] - public bool UseBtrCanshoot { get; set; } + public bool? UseBtrCanshoot { get; set; } [JsonPropertyName("FAR_DISTANCE_ALL_WEAPONS")] - public float FarDistanceAllWeapons { get; set; } + public float? FarDistanceAllWeapons { get; set; } [JsonPropertyName("FAR_DISTANCE_PISTOLS")] - public float FarDistancePistols { get; set; } + public float? FarDistancePistols { get; set; } [JsonPropertyName("FAR_DISTANCE_SHOTGUNS")] - public float FarDistanceShotguns { get; set; } + public float? FarDistanceShotguns { get; set; } [JsonPropertyName("FAR_DIST_EYE_CONTACT_TIME_TO_CHANGE_COVER")] - public float FarDistEyeContactTimeToChangeCover { get; set; } + public float? FarDistEyeContactTimeToChangeCover { get; set; } [JsonPropertyName("CHANGE_TO_MAIN_WEAPON_WHEN_PATROL")] - public bool ChangeToMainWeaponWhenPatrol { get; set; } + public bool? ChangeToMainWeaponWhenPatrol { get; set; } [JsonPropertyName("SHOOT_IMMEDIATELY_DIST")] - public float ShootImmediatelyDist { get; set; } + public float? ShootImmediatelyDist { get; set; } [JsonPropertyName("CAN_STOP_SHOOT_CAUSE_ANIMATOR")] - public bool CanStopShootCauseAnimator { get; set; } + public bool? CanStopShootCauseAnimator { get; set; } [JsonPropertyName("TRY_CHANGE_WEAPON_WHEN_RELOAD")] - public bool TryChangeWeaponWhenReload { get; set; } + public bool? TryChangeWeaponWhenReload { get; set; } [JsonPropertyName("CHANGE_TO_MAIN_WHEN_SUPPORT_NO_AMMO")] - public bool ChangeToMainWhenSupportNoAmmo { get; set; } + public bool? ChangeToMainWhenSupportNoAmmo { get; set; } [JsonPropertyName("LAST_SEEN_TIME_TO_START_SUPPRESS_STATIONARY_AGS")] - public float LastSeenTimeToStartSuppressStationaryAgs { get; set; } + public float? LastSeenTimeToStartSuppressStationaryAgs { get; set; } [JsonPropertyName("STATIONARY_GRENADE_MIN_DIST_TO_TAKE")] - public float StationaryGrenadeMinDistToTake { get; set; } + public float? StationaryGrenadeMinDistToTake { get; set; } [JsonPropertyName("STATIONARY_SIMPLE_MIN_DIST_TO_TAKE")] - public double StationarySimpleMinDistToTake { get; set; } + public double? StationarySimpleMinDistToTake { get; set; } [JsonPropertyName("NO_OFFSET_SHOOTING_FROM_PLAYER")] - public bool NoOffsetShootingFromPlayer { get; set; } + public bool? NoOffsetShootingFromPlayer { get; set; } [JsonPropertyName("ALTERNATIVE_KNIFE_KICK")] - public bool AlternativeKnifeKick { get; set; } + public bool? AlternativeKnifeKick { get; set; } [JsonPropertyName("DITANCE_TO_OFF_AUTO_FIRE")] - public float DistanceToOffAutoFire { get; set; } + public float? DistanceToOffAutoFire { get; set; } [JsonPropertyName("DITANCE_TO_ON_AUTO_FIRE")] - public float DistanceToOnAutoFire { get; set; } + public float? DistanceToOnAutoFire { get; set; } [JsonPropertyName("MISS_ON_CRITICAL_DIST")] - public float MissOnCriticalDist { get; set; } + public float? MissOnCriticalDist { get; set; } [JsonPropertyName("MISS_AFTER_SPRINT")] - public bool MissAfterSprint { get; set; } + public bool? MissAfterSprint { get; set; } [JsonPropertyName("MISS_TO_HEAD")] - public bool MissToHead { get; set; } + public bool? MissToHead { get; set; } [JsonPropertyName("MISS_ON_MOVE")] - public bool MissOnMove { get; set; } + public bool? MissOnMove { get; set; } [JsonPropertyName("MISS_ON_TRANSITION")] - public bool MissOnTransition { get; set; } + public bool? MissOnTransition { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs index 8907c94a..0e1ad818 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs @@ -4,396 +4,400 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// /// See BotGlobalsBossSettings in the client, this record should match that +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalsBossSettings { [JsonPropertyName("BOSS_DIST_TO_WARNING")] - public float BossDistToWarning { get; set; } + public float? BossDistToWarning { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_ALLY")] - public float BossDistToWarningAlly { get; set; } + public float? BossDistToWarningAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT")] - public float BossDistToWarningSqrt { get; set; } + public float? BossDistToWarningSqrt { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT_ALLY")] - public float BossDistToWarningSqrtAlly { get; set; } + public float? BossDistToWarningSqrtAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_USEC")] - public float BossDistToWarningUsec { get; set; } + public float? BossDistToWarningUsec { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_USEC_ALLY")] - public float BossDistToWarningUsecAlly { get; set; } + public float? BossDistToWarningUsecAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT_USEC")] - public float BossDistToWarningSqrtUsec { get; set; } + public float? BossDistToWarningSqrtUsec { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT_USEC_ALLY")] - public float BossDistToWarningSqrtUsecAlly { get; set; } + public float? BossDistToWarningSqrtUsecAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_BEAR")] - public float BossDistToWarningBear { get; set; } + public float? BossDistToWarningBear { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_BEAR_ALLY")] - public float BossDistToWarningBearAlly { get; set; } + public float? BossDistToWarningBearAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT_BEAR")] - public float BossDistToWarningSqrtBear { get; set; } + public float? BossDistToWarningSqrtBear { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_SQRT_BEAR_ALLY")] - public float BossDistToWarningSqrtBearAlly { get; set; } + public float? BossDistToWarningSqrtBearAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT")] - public float BossDistToWarningOut { get; set; } + public float? BossDistToWarningOut { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT_ALLY")] - public float BossDistToWarningOutAlly { get; set; } + public float? BossDistToWarningOutAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT_SQRT")] - public float BossDistToWarningOutSqrt { get; set; } + public float? BossDistToWarningOutSqrt { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT_SQRT_ALLY")] - public float BossDistToWarningOutSqrtAlly { get; set; } + public float? BossDistToWarningOutSqrtAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_SHOOT")] - public float BossDistToShoot { get; set; } + public float? BossDistToShoot { get; set; } [JsonPropertyName("BOSS_DIST_TO_SHOOT_ALLY")] - public float BossDistToShootAlly { get; set; } + public float? BossDistToShootAlly { get; set; } [JsonPropertyName("BOSS_DIST_TO_SHOOT_SQRT")] - public float BossDistToShootSqrt { get; set; } + public float? BossDistToShootSqrt { get; set; } [JsonPropertyName("BOSS_DIST_TO_SHOOT_SQRT_ALLY")] - public float BossDistToShootSqrtAlly { get; set; } + public float? BossDistToShootSqrtAlly { get; set; } [JsonPropertyName("CHANCE_TO_SEND_GRENADE_100")] - public float ChanceToSendGrenade100 { get; set; } + public float? ChanceToSendGrenade100 { get; set; } [JsonPropertyName("MAX_DIST_COVER_BOSS")] - public float MaxDistCoverBoss { get; set; } + public float? MaxDistCoverBoss { get; set; } [JsonPropertyName("MAX_DIST_COVER_BOSS_SQRT")] - public float MaxDistCoverBossSqrt { get; set; } + public float? MaxDistCoverBossSqrt { get; set; } [JsonPropertyName("MAX_DIST_DECIDER_TO_SEND")] - public float MaxDistDeciderToSend { get; set; } + public float? MaxDistDeciderToSend { get; set; } [JsonPropertyName("MAX_DIST_DECIDER_TO_SEND_SQRT")] - public float MaxDistDeciderToSendSqrt { get; set; } + public float? MaxDistDeciderToSendSqrt { get; set; } [JsonPropertyName("TIME_AFTER_LOSE")] - public float TimeAfterLose { get; set; } + public float? TimeAfterLose { get; set; } [JsonPropertyName("TIME_AFTER_LOSE_DELTA")] - public float TimeAfterLoseDelta { get; set; } + public float? TimeAfterLoseDelta { get; set; } [JsonPropertyName("PERSONS_SEND")] - public int PersonsSend { get; set; } + public int? PersonsSend { get; set; } [JsonPropertyName("DELTA_SEARCH_TIME")] - public float DeltaSearchTime { get; set; } + public float? DeltaSearchTime { get; set; } [JsonPropertyName("COVER_TO_SEND")] - public bool CoverToSend { get; set; } + public bool? CoverToSend { get; set; } [JsonPropertyName("WAIT_NO_ATTACK_SAVAGE")] - public float WaitNoAttackSavage { get; set; } + public float? WaitNoAttackSavage { get; set; } [JsonPropertyName("CHANCE_USE_RESERVE_PATROL_100")] - public float ChanceUseReservePatrol100 { get; set; } + public float? ChanceUseReservePatrol100 { get; set; } [JsonPropertyName("WARN_PLAYER_PERIOD")] - public float WarnPlayerPeriod { get; set; } + public float? WarnPlayerPeriod { get; set; } [JsonPropertyName("EFFECT_REGENERATION_PER_MIN")] - public float EffectRegenerationPerMin { get; set; } + public float? EffectRegenerationPerMin { get; set; } [JsonPropertyName("EFFECT_PAINKILLER")] - public bool EffectPainkiller { get; set; } + public bool? EffectPainkiller { get; set; } [JsonPropertyName("DISABLE_METABOLISM")] - public bool DisableMetabolism { get; set; } + public bool? DisableMetabolism { get; set; } [JsonPropertyName("KILLA_Y_DELTA_TO_BE_ENEMY_BOSS")] - public float KillaYDeltaToBeEnemyBoss { get; set; } + public float? KillaYDeltaToBeEnemyBoss { get; set; } [JsonPropertyName("KILLA_DITANCE_TO_BE_ENEMY_BOSS")] - public float KillaDitanceToBeEnemyBoss { get; set; } + public float? KillaDitanceToBeEnemyBoss { get; set; } [JsonPropertyName("KILLA_START_SEARCH_SEC")] - public float KillaStartSearchSec { get; set; } + public float? KillaStartSearchSec { get; set; } [JsonPropertyName("KILLA_CONTUTION_TIME")] - public float KillaContutionTime { get; set; } + public float? KillaContutionTime { get; set; } [JsonPropertyName("KILLA_CLOSE_ATTACK_DIST")] - public float KillaCloseAttackDist { get; set; } + public float? KillaCloseAttackDist { get; set; } [JsonPropertyName("KILLA_MIDDLE_ATTACK_DIST")] - public float KillaMiddleAttackDist { get; set; } + public float? KillaMiddleAttackDist { get; set; } [JsonPropertyName("KILLA_LARGE_ATTACK_DIST")] - public float KillaLargeAttackDist { get; set; } + public float? KillaLargeAttackDist { get; set; } [JsonPropertyName("KILLA_SEARCH_METERS")] - public float KillaSearchMeters { get; set; } + public float? KillaSearchMeters { get; set; } [JsonPropertyName("KILLA_DEF_DIST_SQRT")] - public float KillaDefDistSqrt { get; set; } + public float? KillaDefDistSqrt { get; set; } [JsonPropertyName("KILLA_SEARCH_SEC_STOP_AFTER_COMING")] - public float KillaSearchSecStopAfterComing { get; set; } + public float? KillaSearchSecStopAfterComing { get; set; } [JsonPropertyName("KILLA_DIST_TO_GO_TO_SUPPRESS")] - public float KillaDistToGoToSuppress { get; set; } + public float? KillaDistToGoToSuppress { get; set; } [JsonPropertyName("KILLA_AFTER_GRENADE_SUPPRESS_DELAY")] - public float KillaAfterGrenadeSuppressDelay { get; set; } + public float? KillaAfterGrenadeSuppressDelay { get; set; } [JsonPropertyName("KILLA_CLOSEATTACK_TIMES")] - public int KillaCloseattackTimes { get; set; } + public int? KillaCloseattackTimes { get; set; } [JsonPropertyName("KILLA_CLOSEATTACK_DELAY")] - public float KillaCloseattackDelay { get; set; } + public float? KillaCloseattackDelay { get; set; } [JsonPropertyName("KILLA_HOLD_DELAY")] - public float KillaHoldDelay { get; set; } + public float? KillaHoldDelay { get; set; } [JsonPropertyName("KILLA_BULLET_TO_RELOAD")] - public int KillaBulletToReload { get; set; } + public int? KillaBulletToReload { get; set; } [JsonPropertyName("PERCENT_BULLET_TO_RELOAD")] - public float PercentBulletToReload { get; set; } + public float? PercentBulletToReload { get; set; } [JsonPropertyName("SHALL_WARN")] - public bool ShallWarn { get; set; } + public bool? ShallWarn { get; set; } [JsonPropertyName("KILLA_ENEMIES_TO_ATTACK")] - public int KillaEnemiesToAttack { get; set; } + public int? KillaEnemiesToAttack { get; set; } [JsonPropertyName("KILLA_ONE_IS_CLOSE")] - public float KillaOneIsClose { get; set; } + public float? KillaOneIsClose { get; set; } [JsonPropertyName("KILLA_TRIGGER_DOWN_DELAY")] - public float KillaTriggerDownDelay { get; set; } + public float? KillaTriggerDownDelay { get; set; } [JsonPropertyName("KILLA_WAIT_IN_COVER_COEF")] - public float KillaWaitInCoverCoef { get; set; } + public float? KillaWaitInCoverCoef { get; set; } [JsonPropertyName("TAGILLA_Y_DELTA_TO_BE_ENEMY_BOSS")] - public float TagillaYDeltaToBeEnemyBoss { get; set; } + public float? TagillaYDeltaToBeEnemyBoss { get; set; } [JsonPropertyName("TAGILLA_SAVAGE_HELP_SQR_DIST")] - public float TagillaSavageHelpSqrDist { get; set; } + public float? TagillaSavageHelpSqrDist { get; set; } [JsonPropertyName("TAGILLA_FORCED_CLOSE_ATTACK_DIST")] - public float TagillaForcedCloseAttackDist { get; set; } + public float? TagillaForcedCloseAttackDist { get; set; } [JsonPropertyName("TAGILLA_FIRST_ASSAULT_RADIUS")] - public float TagillaFirstAssaultRadius { get; set; } + public float? TagillaFirstAssaultRadius { get; set; } [JsonPropertyName("TAGILLA_FIRST_ASSAULT_CHANCE")] - public float TagillaFirstAssaultChance { get; set; } + public float? TagillaFirstAssaultChance { get; set; } [JsonPropertyName("TAGILLA_SECOND_ASSAULT_RADIUS")] - public float TagillaSecondAssaultRadius { get; set; } + public float? TagillaSecondAssaultRadius { get; set; } [JsonPropertyName("TAGILLA_SECOND_ASSAULT_CHANCE")] - public float TagillaSecondAssaultChance { get; set; } + public float? TagillaSecondAssaultChance { get; set; } [JsonPropertyName("TAGILLA_FEEL_ENEMY_DIST_SQR")] - public float TagillaFeelEnemyDistSqr { get; set; } + public float? TagillaFeelEnemyDistSqr { get; set; } [JsonPropertyName("TAGILLA_TIME_TO_PURSUIT_WITHOUT_HITS")] - public float TagillaTimeToPursuitWithoutHits { get; set; } + public float? TagillaTimeToPursuitWithoutHits { get; set; } [JsonPropertyName("TAGILLA_MELEE_ATTACK_NEXT_DECISION_PERIOD")] - public float TagillaMeleeAttackNextDecisionPeriod { get; set; } + public float? TagillaMeleeAttackNextDecisionPeriod { get; set; } [JsonPropertyName("TAGILLA_MELEE_CHANCE_RELOAD")] - public float TagillaMeleeChanceReload { get; set; } + public float? TagillaMeleeChanceReload { get; set; } [JsonPropertyName("TAGILLA_MELEE_CHANCE_INTERACTION")] - public float TagillaMeleeChanceInteraction { get; set; } + public float? TagillaMeleeChanceInteraction { get; set; } [JsonPropertyName("TAGILLA_MELEE_CHANCE_INVENTORY")] - public float TagillaMeleeChanceInventory { get; set; } + public float? TagillaMeleeChanceInventory { get; set; } [JsonPropertyName("TAGILLA_MELEE_CHANCE_MEDS")] - public float TagillaMeleeChanceMeds { get; set; } + public float? TagillaMeleeChanceMeds { get; set; } [JsonPropertyName("TAGILLA_MELEE_CHANCE_FORCED")] - public float TagillaMeleeChanceForced { get; set; } + public float? TagillaMeleeChanceForced { get; set; } [JsonPropertyName("TAGILLA_MIN_TIME_TO_REPEAT_MELEE_ASSAULT")] - public float TagillaMinTimeToRepeatMeleeAssault { get; set; } + public float? TagillaMinTimeToRepeatMeleeAssault { get; set; } [JsonPropertyName("KOJANIY_DIST_WHEN_READY")] - public float KojaniyDistWhenReady { get; set; } + public float? KojaniyDistWhenReady { get; set; } [JsonPropertyName("KOJANIY_DIST_TO_BE_ENEMY")] - public float KojaniyDistToBeEnemy { get; set; } + public float? KojaniyDistToBeEnemy { get; set; } [JsonPropertyName("KOJANIY_MIN_DIST_TO_LOOT")] - public float KojaniyMinDistToLoot { get; set; } + public float? KojaniyMinDistToLoot { get; set; } [JsonPropertyName("KOJANIY_MIN_DIST_TO_LOOT_SQRT")] - public float KojaniyMinDistToLootSqrt { get; set; } + public float? KojaniyMinDistToLootSqrt { get; set; } [JsonPropertyName("KOJANIY_DIST_ENEMY_TOO_CLOSE")] - public float KojaniyDistEnemyTooClose { get; set; } + public float? KojaniyDistEnemyTooClose { get; set; } [JsonPropertyName("KOJANIY_MANY_ENEMIES_COEF")] - public float KojaniyManyEnemiesCoef { get; set; } + public float? KojaniyManyEnemiesCoef { get; set; } [JsonPropertyName("KOJANIY_FIGHT_CENTER_POS_ME")] - public bool KojaniyFightCenterPosMe { get; set; } + public bool? KojaniyFightCenterPosMe { get; set; } [JsonPropertyName("KOJANIY_DIST_CORE_SPOS_RECALC")] - public float KojaniyDistCoreSposRecalc { get; set; } + public float? KojaniyDistCoreSposRecalc { get; set; } [JsonPropertyName("KOJANIY_DIST_CORE_SPOS_RECALC_SQRT")] - public float KojaniyDistCoreSposRecalcSqrt { get; set; } + public float? KojaniyDistCoreSposRecalcSqrt { get; set; } [JsonPropertyName("KOJANIY_START_SUPPERS_SHOOTS_SEC")] - public float KojaniyStartSuppersShootsSec { get; set; } + public float? KojaniyStartSuppersShootsSec { get; set; } [JsonPropertyName("KOJANIY_START_NEXT_SUPPERS_SHOOTS_SEC")] - public float KojaniyStartNextSuppersShootsSec { get; set; } + public float? KojaniyStartNextSuppersShootsSec { get; set; } [JsonPropertyName("KOJANIY_SAFE_ENEMIES")] - public int KojaniySafeEnemies { get; set; } + public int? KojaniySafeEnemies { get; set; } [JsonPropertyName("KOJANIY_TAKE_CARE_ABOULT_ENEMY_DELTA")] - public float KojaniyTakeCareAboultEnemyDelta { get; set; } + public float? KojaniyTakeCareAboultEnemyDelta { get; set; } [JsonPropertyName("KOJANIY_WANNA_GO_TO_CLOSEST_COVER")] - public float KojaniyWannaGoToClosestCover { get; set; } + public float? KojaniyWannaGoToClosestCover { get; set; } [JsonPropertyName("GLUHAR_FOLLOWER_PATH_NAME")] - public string GluharFollowerPathName { get; set; } + public string? GluharFollowerPathName { get; set; } [JsonPropertyName("GLUHAR_FOLLOWER_SCOUT_DIST_START_ATTACK")] - public float GluharFollowerScoutDistStartAttack { get; set; } + public float? GluharFollowerScoutDistStartAttack { get; set; } [JsonPropertyName("GLUHAR_FOLLOWER_SCOUT_DIST_END_ATTACK")] - public float GluharFollowerScoutDistEndAttack { get; set; } + public float? GluharFollowerScoutDistEndAttack { get; set; } [JsonPropertyName("GLUHAR_BOSS_WANNA_ATTACK_CHANCE_0_100")] - public float GluharBossWannaAttackChance0100 { get; set; } + public float? GluharBossWannaAttackChance0100 { get; set; } [JsonPropertyName("GLUHAR_ASSAULT_ATTACK_DIST")] - public float GluharAssaultAttackDist { get; set; } + public float? GluharAssaultAttackDist { get; set; } [JsonPropertyName("GLUHAR_STOP_ASSAULT_ATTACK_DIST")] - public float GluharStopAssaultAttackDist { get; set; } + public float? GluharStopAssaultAttackDist { get; set; } [JsonPropertyName("GLUHAR_TIME_TO_ASSAULT")] - public float GluharTimeToAssault { get; set; } + public float? GluharTimeToAssault { get; set; } [JsonPropertyName("DIST_TO_PROTECT_BOSS")] - public float DistToProtectBoss { get; set; } + public float? DistToProtectBoss { get; set; } [JsonPropertyName("GLUHAR_SEC_TO_REINFORSMENTS")] - public float GluharSecToReinforsments { get; set; } + public float? GluharSecToReinforsments { get; set; } [JsonPropertyName("GLUHAR_REINFORSMENTS_BY_EXIT")] - public bool GluharReinforsmentsByExit { get; set; } + public bool? GluharReinforsmentsByExit { get; set; } [JsonPropertyName("GLUHAR_REINFORSMENTS_BY_EVENT")] - public bool GluharReinforsmentsByEvent { get; set; } + public bool? GluharReinforsmentsByEvent { get; set; } [JsonPropertyName("GLUHAR_REINFORSMENTS_BY_PLAYER_COME_TO_ZONE")] - public bool GluharReinforsmentsByPlayerComeToZone { get; set; } + public bool? GluharReinforsmentsByPlayerComeToZone { get; set; } [JsonPropertyName("GLUHAR_FOLLOWERS_TO_REINFORSMENTS")] - public int GluharFollowersToReinforsments { get; set; } + public int? GluharFollowersToReinforsments { get; set; } [JsonPropertyName("GLUHAR_FOLLOWERS_SECURITY")] - public int GluharFollowersSecurity { get; set; } + public int? GluharFollowersSecurity { get; set; } [JsonPropertyName("GLUHAR_FOLLOWERS_ASSAULT")] - public int GluharFollowersAssault { get; set; } + public int? GluharFollowersAssault { get; set; } [JsonPropertyName("GLUHAR_FOLLOWERS_SCOUT")] - public int GluharFollowersScout { get; set; } + public int? GluharFollowersScout { get; set; } [JsonPropertyName("GLUHAR_FOLLOWERS_SNIPE")] - public int GluharFollowersSnipe { get; set; } + public int? GluharFollowersSnipe { get; set; } [JsonPropertyName("GLUHAR_BOSS_DIST_TO_ENEMY_WANT_KILL")] - public float GluharBossDistToEnemyWantKill { get; set; } + public float? GluharBossDistToEnemyWantKill { get; set; } [JsonPropertyName("IF_I_HITTED_GO_AWAY_SEC_HIT")] - public float IfIHittedGoAwaySecHit { get; set; } + public float? IfIHittedGoAwaySecHit { get; set; } [JsonPropertyName("DIST_TO_START_RUN_FOR_COVER_WITH_STOP")] - public float DistToStartRunForCoverWithStop { get; set; } + public float? DistToStartRunForCoverWithStop { get; set; } [JsonPropertyName("DELTA_DIST_DEST_BOSS_START_RUN_FOR_COVER_WITH_STOP")] - public float DeltaDistDestBossStartRunForCoverWithStop { get; set; } + public float? DeltaDistDestBossStartRunForCoverWithStop { get; set; } [JsonPropertyName("SANITAR_ONLY_FIGHT_COVERS")] - public bool SanitarOnlyFightCovers { get; set; } + public bool? SanitarOnlyFightCovers { get; set; } [JsonPropertyName("SANITAR_TWO_COVER_TACTIC")] - public bool SanitarTwoCoverTactic { get; set; } + public bool? SanitarTwoCoverTactic { get; set; } [JsonPropertyName("COUNT_FOLLOWERS_TO_WARN")] - public int CountFollowersToWarn { get; set; } + public int? CountFollowersToWarn { get; set; } [JsonPropertyName("RUN_HIDE_CAN_USE_TREE_COVRES")] - public bool RunHideCanUseTreeCovres { get; set; } + public bool? RunHideCanUseTreeCovres { get; set; } [JsonPropertyName("SECTANT_INDOOR_DIST_NOT_TO_ATTACK")] - public float SectantIndoorDistNotToAttack { get; set; } + public float? SectantIndoorDistNotToAttack { get; set; } [JsonPropertyName("SET_CHEAT_VISIBLE_WHEN_ADD_TO_ENEMY")] - public bool SetCheatVisibleWhenAddToEnemy { get; set; } + public bool? SetCheatVisibleWhenAddToEnemy { get; set; } [JsonPropertyName("TOTAL_TIME_KILL")] - public float TotalTimeKill { get; set; } + public float? TotalTimeKill { get; set; } [JsonPropertyName("TOTAL_TIME_KILL_AFTER_WARN")] - public float TotalTimeKillAfterWarn { get; set; } + public float? TotalTimeKillAfterWarn { get; set; } [JsonPropertyName("COME_INSIDE_TIMES")] - public int ComeInsideTimes { get; set; } + public int? ComeInsideTimes { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT_DELTA")] - public float BossDistToWarningOutDelta { get; set; } + public float? BossDistToWarningOutDelta { get; set; } [JsonPropertyName("BOSS_DIST_TO_WARNING_OUT_DELTA_ALLY")] - public float BossDistToWarningOutDeltaAlly { get; set; } + public float? BossDistToWarningOutDeltaAlly { get; set; } [JsonPropertyName("TOTAL_TIME_KILL_AFTER_START_WARN")] - public float TotalTimeKillAfterStartWarn { get; set; } + public float? TotalTimeKillAfterStartWarn { get; set; } [JsonPropertyName("BIG_PIPE_ARTILLERY_COUNT")] - public int BigPipeArtilleryCount { get; set; } + public int? BigPipeArtilleryCount { get; set; } [JsonPropertyName("BOSS_ZRYACHIY_TELEPORT_CHANCE")] - public float BossZryachiyTeleportChance { get; set; } + public float? BossZryachiyTeleportChance { get; set; } [JsonPropertyName("BOSS_ZRYACHIY_MIN_DIST_TO_TELEPORT")] - public float BossZryachiyMinDistToTeleport { get; set; } + public float? BossZryachiyMinDistToTeleport { get; set; } [JsonPropertyName("BOSS_ZRYACHIY_TELEPORT_CAN_SECONDS_FROM_START")] - public float BossZryachiyTeleportCanSecondsFromStart { get; set; } + public float? BossZryachiyTeleportCanSecondsFromStart { get; set; } [JsonPropertyName("BOSS_ZRYACHIY_MIN_DIST_TO_NEXT_COVER")] - public float BossZryachiyMinDistToNextCover { get; set; } + public float? BossZryachiyMinDistToNextCover { get; set; } [JsonPropertyName("BOSS_ZRYACHIY_POSSIBLE_FOG")] - public float BossZryachiyPossibleFog { get; set; } + public float? BossZryachiyPossibleFog { get; set; } [JsonPropertyName("NOT_ADD_TO_ENEMY_ON_KILLS")] - public bool NotAddToEnemyOnKills { get; set; } + public bool? NotAddToEnemyOnKills { get; set; } [JsonPropertyName("ALLOW_REQUEST_SELF")] - public bool AllowRequestSelf { get; set; } + public bool? AllowRequestSelf { get; set; } [JsonPropertyName("TAGILLA_MELEE_ATTACK_IF_NO_SHOOT")] - public float TagillaMeleeAttackIfNoShoot { get; set; } + public float? TagillaMeleeAttackIfNoShoot { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsChangeSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsChangeSettings.cs index 3ed4c854..14df761c 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsChangeSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsChangeSettings.cs @@ -3,55 +3,61 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalsChangeSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalsChangeSettings { [JsonPropertyName("SMOKE_VISION_DIST")] - public float SmokeVisionDist { get; set; } + public float? SmokeVisionDist { get; set; } [JsonPropertyName("SMOKE_GAIN_SIGHT")] - public float SmokeGainSight { get; set; } + public float? SmokeGainSight { get; set; } [JsonPropertyName("SMOKE_SCATTERING")] - public float SmokeScattering { get; set; } + public float? SmokeScattering { get; set; } [JsonPropertyName("SMOKE_PRECICING")] - public float SmokePrecicing { get; set; } + public float? SmokePrecicing { get; set; } [JsonPropertyName("SMOKE_HEARING")] - public float SmokeHearing { get; set; } + public float? SmokeHearing { get; set; } [JsonPropertyName("SMOKE_ACCURATY")] - public float SmokeAccuraty { get; set; } + public float? SmokeAccuraty { get; set; } [JsonPropertyName("SMOKE_LAY_CHANCE")] - public float SmokeLayChance { get; set; } + public float? SmokeLayChance { get; set; } [JsonPropertyName("FLASH_VISION_DIST")] - public float FlashVisionDist { get; set; } + public float? FlashVisionDist { get; set; } [JsonPropertyName("FLASH_GAIN_SIGHT")] - public float FlashGainSight { get; set; } + public float? FlashGainSight { get; set; } [JsonPropertyName("FLASH_SCATTERING")] - public float FlashScattering { get; set; } + public float? FlashScattering { get; set; } [JsonPropertyName("FLASH_PRECICING")] - public float FlashPrecicing { get; set; } + public float? FlashPrecicing { get; set; } [JsonPropertyName("FLASH_HEARING")] - public float FlashHearing { get; set; } + public float? FlashHearing { get; set; } [JsonPropertyName("FLASH_ACCURATY")] - public float FlashAccuraty { get; set; } + public float? FlashAccuraty { get; set; } [JsonPropertyName("FLASH_LAY_CHANCE")] - public float FlashLayChance { get; set; } + public float? FlashLayChance { get; set; } [JsonPropertyName("STUN_HEARING")] - public float StunHearing { get; set; } + public float? StunHearing { get; set; } [JsonPropertyName("INVISIBLE_ON_CLIENT")] - public bool InvisibleOnClient { get; set; } + public bool? InvisibleOnClient { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsCoverSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsCoverSettings.cs index 57df54d6..d0f8f28b 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsCoverSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsCoverSettings.cs @@ -3,208 +3,214 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalsCoverSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalsCoverSettings { [JsonPropertyName("RETURN_TO_ATTACK_AFTER_AMBUSH_MIN")] - public float ReturnToAttackAfterAmbushMin { get; set; } + public float? ReturnToAttackAfterAmbushMin { get; set; } [JsonPropertyName("RETURN_TO_ATTACK_AFTER_AMBUSH_MAX")] - public float ReturnToAttackAfterAmbushMax { get; set; } + public float? ReturnToAttackAfterAmbushMax { get; set; } [JsonPropertyName("SOUND_TO_GET_SPOTTED")] - public float SoundToGetSpotted { get; set; } + public float? SoundToGetSpotted { get; set; } [JsonPropertyName("TIME_TO_MOVE_TO_COVER")] - public float TimeToMoveToCover { get; set; } + public float? TimeToMoveToCover { get; set; } [JsonPropertyName("MAX_DIST_OF_COVER")] - public float MaxDistOfCover { get; set; } + public float? MaxDistOfCover { get; set; } [JsonPropertyName("CHANGE_RUN_TO_COVER_SEC")] - public float ChangeRunToCoverSec { get; set; } + public float? ChangeRunToCoverSec { get; set; } [JsonPropertyName("CHANGE_RUN_TO_COVER_SEC_GREANDE")] - public float ChangeRunToCoverSecGreande { get; set; } + public float? ChangeRunToCoverSecGreande { get; set; } [JsonPropertyName("MIN_DIST_TO_ENEMY")] - public float MinDistToEnemy { get; set; } + public float? MinDistToEnemy { get; set; } [JsonPropertyName("DIST_CANT_CHANGE_WAY")] - public float DistCantChangeWay { get; set; } + public float? DistCantChangeWay { get; set; } [JsonPropertyName("DIST_CHECK_SFETY")] - public float DistCheckSfety { get; set; } + public float? DistCheckSfety { get; set; } [JsonPropertyName("TIME_CHECK_SAFE")] - public float TimeCheckSafe { get; set; } + public float? TimeCheckSafe { get; set; } [JsonPropertyName("HIDE_TO_COVER_TIME")] - public float HideToCoverTime { get; set; } + public float? HideToCoverTime { get; set; } [JsonPropertyName("MAX_DIST_OF_COVER_SQR")] - public float MaxDistOfCoverSqr { get; set; } + public float? MaxDistOfCoverSqr { get; set; } [JsonPropertyName("DIST_CANT_CHANGE_WAY_SQR")] - public float DistCantChangeWaySqr { get; set; } + public float? DistCantChangeWaySqr { get; set; } [JsonPropertyName("SPOTTED_COVERS_RADIUS")] - public float SpottedCoversRadius { get; set; } + public float? SpottedCoversRadius { get; set; } [JsonPropertyName("LOOK_LAST_ENEMY_POS_MOVING")] - public float LookLastEnemyPosMoving { get; set; } + public float? LookLastEnemyPosMoving { get; set; } [JsonPropertyName("LOOK_LAST_ENEMY_POS_LONG")] - public float LookLastEnemyPosLong { get; set; } + public float? LookLastEnemyPosLong { get; set; } [JsonPropertyName("LOOK_LAST_ENEMY_POS_DIST")] - public float LookLastEnemyPosDist { get; set; } + public float? LookLastEnemyPosDist { get; set; } [JsonPropertyName("LOOK_TO_HIT_POINT_IF_LAST_ENEMY")] - public float LookToHitPointIfLastEnemy { get; set; } + public float? LookToHitPointIfLastEnemy { get; set; } [JsonPropertyName("LOOK_LAST_ENEMY_POS_LOOKAROUND")] - public float LookLastEnemyPosLookaround { get; set; } + public float? LookLastEnemyPosLookaround { get; set; } [JsonPropertyName("OFFSET_LOOK_ALONG_WALL_ANG")] - public int OffsetLookAlongWallAng { get; set; } + public int? OffsetLookAlongWallAng { get; set; } [JsonPropertyName("SPOTTED_GRENADE_RADIUS")] - public float SpottedGrenadeRadius { get; set; } + public float? SpottedGrenadeRadius { get; set; } [JsonPropertyName("MAX_SPOTTED_TIME_SEC")] - public float MaxSpottedTimeSec { get; set; } + public float? MaxSpottedTimeSec { get; set; } [JsonPropertyName("WAIT_INT_COVER_FINDING_ENEMY")] - public float WaitIntCoverFindingEnemy { get; set; } + public float? WaitIntCoverFindingEnemy { get; set; } [JsonPropertyName("CLOSE_DIST_POINT_SQRT")] - public float CloseDistPointSqrt { get; set; } + public float? CloseDistPointSqrt { get; set; } [JsonPropertyName("DELTA_SEEN_FROM_COVE_LAST_POS")] - public float DeltaSeenFromCoveLastPos { get; set; } + public float? DeltaSeenFromCoveLastPos { get; set; } [JsonPropertyName("MOVE_TO_COVER_WHEN_TARGET")] - public bool MoveToCoverWhenTarget { get; set; } + public bool? MoveToCoverWhenTarget { get; set; } [JsonPropertyName("RUN_COVER_IF_CAN_AND_NO_ENEMIES")] - public bool RunCoverIfCanAndNoEnemies { get; set; } + public bool? RunCoverIfCanAndNoEnemies { get; set; } [JsonPropertyName("SPOTTED_GRENADE_TIME")] - public float SpottedGrenadeTime { get; set; } + public float? SpottedGrenadeTime { get; set; } [JsonPropertyName("DEPENDS_Y_DIST_TO_BOT")] - public bool DependsYDistToBot { get; set; } + public bool? DependsYDistToBot { get; set; } [JsonPropertyName("RUN_IF_FAR")] - public float RunIfFar { get; set; } + public float? RunIfFar { get; set; } [JsonPropertyName("RUN_IF_FAR_SQRT")] - public float RunIfFarSqrt { get; set; } + public float? RunIfFarSqrt { get; set; } [JsonPropertyName("STAY_IF_FAR")] - public float StayIfFar { get; set; } + public float? StayIfFar { get; set; } [JsonPropertyName("STAY_IF_FAR_SQRT")] - public float StayIfFarSqrt { get; set; } + public float? StayIfFarSqrt { get; set; } [JsonPropertyName("CHECK_COVER_ENEMY_LOOK")] - public bool CheckCoverEnemyLook { get; set; } + public bool? CheckCoverEnemyLook { get; set; } [JsonPropertyName("SHOOT_NEAR_TO_LEAVE")] - public int ShootNearToLeave { get; set; } + public int? ShootNearToLeave { get; set; } [JsonPropertyName("SHOOT_NEAR_SEC_PERIOD")] - public float ShootNearSecPeriod { get; set; } + public float? ShootNearSecPeriod { get; set; } [JsonPropertyName("HITS_TO_LEAVE_COVER")] - public int HitsToLeaveCover { get; set; } + public int? HitsToLeaveCover { get; set; } [JsonPropertyName("HITS_TO_LEAVE_COVER_UNKNOWN")] - public int HitsToLeaveCoverUnknown { get; set; } + public int? HitsToLeaveCoverUnknown { get; set; } [JsonPropertyName("DOG_FIGHT_AFTER_LEAVE")] - public float DogFightAfterLeave { get; set; } + public float? DogFightAfterLeave { get; set; } [JsonPropertyName("NOT_LOOK_AT_WALL_IS_DANGER")] - public bool NotLookAtWallIsDanger { get; set; } + public bool? NotLookAtWallIsDanger { get; set; } [JsonPropertyName("MIN_DEFENCE_LEVEL")] - public float MinDefenceLevel { get; set; } + public float? MinDefenceLevel { get; set; } [JsonPropertyName("REWORK_NOT_TO_SHOOT")] - public bool ReworkNotToShoot { get; set; } + public bool? ReworkNotToShoot { get; set; } [JsonPropertyName("DELETE_POINTS_BEHIND_ENEMIES")] - public bool DeletePointsBehindEnemies { get; set; } + public bool? DeletePointsBehindEnemies { get; set; } [JsonPropertyName("GOOD_DIST_TO_POINT_COEF")] - public float GoodDistToPointCoef { get; set; } + public float? GoodDistToPointCoef { get; set; } [JsonPropertyName("ENEMY_DIST_TO_GO_OUT")] - public float EnemyDistToGoOut { get; set; } + public float? EnemyDistToGoOut { get; set; } [JsonPropertyName("CHECK_CLOSEST_FRIEND")] - public bool CheckClosestFriend { get; set; } + public bool? CheckClosestFriend { get; set; } [JsonPropertyName("MIN_TO_ENEMY_TO_BE_NOT_SAFE_SQRT")] - public float MinToEnemyToBeNotSafeSqrt { get; set; } + public float? MinToEnemyToBeNotSafeSqrt { get; set; } [JsonPropertyName("MIN_TO_ENEMY_TO_BE_NOT_SAFE")] - public float MinToEnemyToBeNotSafe { get; set; } + public float? MinToEnemyToBeNotSafe { get; set; } [JsonPropertyName("SIT_DOWN_WHEN_HOLDING")] - public bool SitDownWhenHolding { get; set; } + public bool? SitDownWhenHolding { get; set; } [JsonPropertyName("STATIONARY_WEAPON_NO_ENEMY_GETUP")] - public float StationaryWeaponNoEnemyGetup { get; set; } + public float? StationaryWeaponNoEnemyGetup { get; set; } [JsonPropertyName("STATIONARY_WEAPON_MAX_DIST_TO_USE")] - public float StationaryWeaponMaxDistToUse { get; set; } + public float? StationaryWeaponMaxDistToUse { get; set; } [JsonPropertyName("STATIONARY_SPOTTED_TIMES_TO_LEAVE")] - public int StationarySpottedTimesToLeave { get; set; } + public int? StationarySpottedTimesToLeave { get; set; } [JsonPropertyName("STATIONARY_CAN_USE")] - public bool StationaryCanUse { get; set; } + public bool? StationaryCanUse { get; set; } [JsonPropertyName("CAN_END_SHOOT_FROM_COVER_CAUSE_STATIONARY")] - public bool CanEndShootFromCoverCauseStationary { get; set; } + public bool? CanEndShootFromCoverCauseStationary { get; set; } [JsonPropertyName("CAN_END_SHOOT_FROM_COVER_CAUSE_STATIONARY_DELTA")] - public float CanEndShootFromCoverCauseStationaryDelta { get; set; } + public float? CanEndShootFromCoverCauseStationaryDelta { get; set; } [JsonPropertyName("CAN_END_SHOOT_FROM_COVER_CAUSE_STATIONARY_RADIUS")] - public float CanEndShootFromCoverCauseStationaryRadius { get; set; } + public float? CanEndShootFromCoverCauseStationaryRadius { get; set; } [JsonPropertyName("END_HOLD_IF_ENEMY_CLOSE_AND_VISIBLE")] - public float EndHoldIfEnemyCloseAndVisible { get; set; } + public float? EndHoldIfEnemyCloseAndVisible { get; set; } [JsonPropertyName("DIST_MAX_REWORK_NOT_TO_SHOOT")] - public float DistMaxReworkNotToShoot { get; set; } + public float? DistMaxReworkNotToShoot { get; set; } [JsonPropertyName("SDIST_MAX_REWORK_NOT_TO_SHOOT")] - public float SdistMaxReworkNotToShoot { get; set; } + public float? SdistMaxReworkNotToShoot { get; set; } [JsonPropertyName("USE_DANGER_AREAS")] - public bool UseDangerAreas { get; set; } + public bool? UseDangerAreas { get; set; } [JsonPropertyName("MAX_ITERATIONS")] - public int MaxIterations { get; set; } + public int? MaxIterations { get; set; } [JsonPropertyName("CHANGE_COVER_IF_CANT_SHOOT_SEC")] - public float ChangeCoverIfCantShootSec { get; set; } + public float? ChangeCoverIfCantShootSec { get; set; } [JsonPropertyName("SHALL_CHANGE_COVER_IF_CAN_SHOOT")] - public bool ShallChangeCoverIfCanShoot { get; set; } + public bool? ShallChangeCoverIfCanShoot { get; set; } [JsonPropertyName("CHECK_CLOSEST_FRIEND_DIST")] - public float CheckClosestFriendDist { get; set; } + public float? CheckClosestFriendDist { get; set; } [JsonPropertyName("CAN_LAY_TO_COVER_DIST_LOOK_TO_ENEMY")] - public float CanLayToCoverDistLookToEnemy { get; set; } + public float? CanLayToCoverDistLookToEnemy { get; set; } [JsonPropertyName("CAN_LAY_TO_COVER")] - public bool CanLayToCover { get; set; } + public bool? CanLayToCover { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsGrenadeSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsGrenadeSettings.cs index 321fced1..68b8a200 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsGrenadeSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsGrenadeSettings.cs @@ -3,160 +3,166 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobalsGrenadeSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalsGrenadeSettings { [JsonPropertyName("DELTA_NEXT_ATTEMPT_FROM_COVER")] - public float DeltaNextAttemptFromCover { get; set; } + public float? DeltaNextAttemptFromCover { get; set; } [JsonPropertyName("DELTA_NEXT_ATTEMPT")] - public float DeltaNextAttempt { get; set; } + public float? DeltaNextAttempt { get; set; } [JsonPropertyName("MIN_DIST_NOT_TO_THROW")] - public float MinDistNotToThrow { get; set; } + public float? MinDistNotToThrow { get; set; } [JsonPropertyName("NEAR_DELTA_THROW_TIME_SEC")] - public float NearDeltaThrowTimeSec { get; set; } + public float? NearDeltaThrowTimeSec { get; set; } [JsonPropertyName("MIN_THROW_GRENADE_DIST")] - public float MinThrowGrenadeDist { get; set; } + public float? MinThrowGrenadeDist { get; set; } [JsonPropertyName("MIN_THROW_GRENADE_DIST_SQRT")] - public float MinThrowGrenadeDistSqrt { get; set; } + public float? MinThrowGrenadeDistSqrt { get; set; } [JsonPropertyName("MIN_DIST_NOT_TO_THROW_SQR")] - public float MinDistNotToThrowSqr { get; set; } + public float? MinDistNotToThrowSqr { get; set; } [JsonPropertyName("RUN_AWAY")] - public float RunAway { get; set; } + public float? RunAway { get; set; } [JsonPropertyName("RUN_AWAY_SQR")] - public float RunAwaySqr { get; set; } + public float? RunAwaySqr { get; set; } [JsonPropertyName("ADD_GRENADE_AS_DANGER")] - public float AddGrenadeAsDanger { get; set; } + public float? AddGrenadeAsDanger { get; set; } [JsonPropertyName("ADD_GRENADE_AS_DANGER_SQR")] - public float AddGrenadeAsDangerSqr { get; set; } + public float? AddGrenadeAsDangerSqr { get; set; } [JsonPropertyName("CHANCE_TO_NOTIFY_ENEMY_GR_100")] - public float ChanceToNotifyEnemyGr100 { get; set; } + public float? ChanceToNotifyEnemyGr100 { get; set; } [JsonPropertyName("GrenadePerMeter")] - public float GrenadePerMeter { get; set; } + public float? GrenadePerMeter { get; set; } [JsonPropertyName("REQUEST_DIST_MUST_THROW_SQRT")] - public float RequestDistMustThrowSqrt { get; set; } + public float? RequestDistMustThrowSqrt { get; set; } [JsonPropertyName("REQUEST_DIST_MUST_THROW")] - public float RequestDistMustThrow { get; set; } + public float? RequestDistMustThrow { get; set; } [JsonPropertyName("BEWARE_TYPE")] - public int BewareType { get; set; } + public int? BewareType { get; set; } [JsonPropertyName("SHOOT_TO_SMOKE_CHANCE_100")] - public float ShootToSmokeChance100 { get; set; } + public float? ShootToSmokeChance100 { get; set; } [JsonPropertyName("CHANCE_RUN_FLASHED_100")] - public float ChanceRunFlashed100 { get; set; } + public float? ChanceRunFlashed100 { get; set; } [JsonPropertyName("MAX_FLASHED_DIST_TO_SHOOT")] - public float MaxFlashedDistToShoot { get; set; } + public float? MaxFlashedDistToShoot { get; set; } [JsonPropertyName("MAX_FLASHED_DIST_TO_SHOOT_SQRT")] - public float MaxFlashedDistToShootSqrt { get; set; } + public float? MaxFlashedDistToShootSqrt { get; set; } [JsonPropertyName("FLASH_GRENADE_TIME_COEF")] - public float FlashGrenadeTimeCoef { get; set; } + public float? FlashGrenadeTimeCoef { get; set; } [JsonPropertyName("SIZE_SPOTTED_COEF")] - public float SizeSpottedCoef { get; set; } + public float? SizeSpottedCoef { get; set; } [JsonPropertyName("BE_ATTENTION_COEF")] - public float BeAttentionCoef { get; set; } + public float? BeAttentionCoef { get; set; } [JsonPropertyName("TIME_SHOOT_TO_FLASH")] - public float TimeShootToFlash { get; set; } + public float? TimeShootToFlash { get; set; } [JsonPropertyName("CLOSE_TO_SMOKE_TO_SHOOT")] - public float CloseToSmokeToShoot { get; set; } + public float? CloseToSmokeToShoot { get; set; } [JsonPropertyName("CLOSE_TO_SMOKE_TO_SHOOT_SQRT")] - public float CloseToSmokeToShootSqrt { get; set; } + public float? CloseToSmokeToShootSqrt { get; set; } [JsonPropertyName("CLOSE_TO_SMOKE_TIME_DELTA")] - public float CloseToSmokeTimeDelta { get; set; } + public float? CloseToSmokeTimeDelta { get; set; } [JsonPropertyName("SMOKE_CHECK_DELTA")] - public float SmokeCheckDelta { get; set; } + public float? SmokeCheckDelta { get; set; } [JsonPropertyName("DELTA_GRENADE_START_TIME")] - public float DeltaGrenadeStartTime { get; set; } + public float? DeltaGrenadeStartTime { get; set; } [JsonPropertyName("AMBUSH_IF_SMOKE_IN_ZONE_100")] - public float AmbushIfSmokeInZone100 { get; set; } + public float? AmbushIfSmokeInZone100 { get; set; } [JsonPropertyName("AMBUSH_IF_SMOKE_RETURN_TO_ATTACK_SEC")] - public float AmbushIfSmokeReturnToAttackSec { get; set; } + public float? AmbushIfSmokeReturnToAttackSec { get; set; } [JsonPropertyName("NO_RUN_FROM_AI_GRENADES")] - public bool NoRunFromAiGrenades { get; set; } + public bool? NoRunFromAiGrenades { get; set; } [JsonPropertyName("MAX_THROW_POWER")] - public float MaxThrowPower { get; set; } + public float? MaxThrowPower { get; set; } [JsonPropertyName("GrenadePrecision")] - public float GrenadePrecision { get; set; } + public float? GrenadePrecision { get; set; } [JsonPropertyName("GRENADE_PRECISION_PORTALS")] - public float GrenadePrecisionPortals { get; set; } + public float? GrenadePrecisionPortals { get; set; } [JsonPropertyName("STOP_WHEN_THROW_GRENADE")] - public bool StopWhenThrowGrenade { get; set; } + public bool? StopWhenThrowGrenade { get; set; } [JsonPropertyName("WAIT_TIME_TURN_AWAY")] - public float WaitTimeTurnAway { get; set; } + public float? WaitTimeTurnAway { get; set; } [JsonPropertyName("SMOKE_SUPPRESS_DELTA")] - public float SmokeSuppressDelta { get; set; } + public float? SmokeSuppressDelta { get; set; } [JsonPropertyName("DAMAGE_GRENADE_SUPPRESS_DELTA")] - public float DamageGrenadeSuppressDelta { get; set; } + public float? DamageGrenadeSuppressDelta { get; set; } [JsonPropertyName("STUN_SUPPRESS_DELTA")] - public float StunSuppressDelta { get; set; } + public float? StunSuppressDelta { get; set; } [JsonPropertyName("CHEAT_START_GRENADE_PLACE")] - public bool CheatStartGrenadePlace { get; set; } + public bool? CheatStartGrenadePlace { get; set; } [JsonPropertyName("CAN_THROW_STRAIGHT_CONTACT")] - public bool CanThrowStraightContact { get; set; } + public bool? CanThrowStraightContact { get; set; } [JsonPropertyName("STRAIGHT_CONTACT_DELTA_SEC")] - public float StraightContactDeltaSec { get; set; } + public float? StraightContactDeltaSec { get; set; } [JsonPropertyName("ANG_TYPE")] - public int AngType { get; set; } + public int? AngType { get; set; } [JsonPropertyName("MIN_THROW_DIST_PERCENT_0_1")] - public float MinThrowDistPercent01 { get; set; } + public float? MinThrowDistPercent01 { get; set; } [JsonPropertyName("FLASH_MODIF_IS_NIGHTVISION")] - public float FlashModifIsNightvision { get; set; } + public float? FlashModifIsNightvision { get; set; } [JsonPropertyName("FIRST_TIME_SEEN_DELTA_CAN_THROW")] - public float FirstTimeSeenDeltaCanThrow { get; set; } + public float? FirstTimeSeenDeltaCanThrow { get; set; } [JsonPropertyName("SHALL_GETUP")] - public bool ShallGetup { get; set; } + public bool? ShallGetup { get; set; } [JsonPropertyName("CAN_LAY")] - public bool CanLay { get; set; } + public bool? CanLay { get; set; } [JsonPropertyName("IGNORE_SMOKE_GRENADE")] - public bool IgnoreSmokeGrenade { get; set; } + public bool? IgnoreSmokeGrenade { get; set; } [JsonPropertyName("CAN_THROW_FROM_ANY_PLACE")] - public bool CanThrowFromAnyPlace { get; set; } + public bool? CanThrowFromAnyPlace { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsHearingSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsHearingSettings.cs index c511a8a4..d06b6491 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsHearingSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsHearingSettings.cs @@ -3,52 +3,58 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// +/// /// See BotGlobasHearingSettings in the client (Yes, with the typo), this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// /// public record BotGlobalsHearingSettings { [JsonPropertyName("BOT_CLOSE_PANIC_DIST")] - public float BotClosePanicDist { get; set; } + public float? BotClosePanicDist { get; set; } [JsonPropertyName("CHANCE_TO_HEAR_SIMPLE_SOUND_0_1")] - public float ChanceToHearSimpleSound01 { get; set; } + public float? ChanceToHearSimpleSound01 { get; set; } [JsonPropertyName("DISPERSION_COEF")] - public float DispersionCoef { get; set; } + public float? DispersionCoef { get; set; } [JsonPropertyName("DISPERSION_COEF_GUN")] - public float DispersionCoefGun { get; set; } + public float? DispersionCoefGun { get; set; } [JsonPropertyName("CLOSE_DIST")] - public float CloseDist { get; set; } + public float? CloseDist { get; set; } [JsonPropertyName("FAR_DIST")] - public float FarDist { get; set; } + public float? FarDist { get; set; } [JsonPropertyName("SOUND_DIR_DEEFREE")] - public float SoundDirDeefree { get; set; } + public float? SoundDirDeefree { get; set; } [JsonPropertyName("DIST_PLACE_TO_FIND_POINT")] - public float DistPlaceToFindPoint { get; set; } + public float? DistPlaceToFindPoint { get; set; } [JsonPropertyName("DEAD_BODY_SOUND_RAD")] - public float DeadBodySoundRad { get; set; } + public float? DeadBodySoundRad { get; set; } [JsonPropertyName("LOOK_ONLY_DANGER")] - public bool LookOnlyDanger { get; set; } + public bool? LookOnlyDanger { get; set; } [JsonPropertyName("RESET_TIMER_DIST")] - public float ResetTimerDist { get; set; } + public float? ResetTimerDist { get; set; } [JsonPropertyName("HEAR_DELAY_WHEN_PEACE")] - public float HearDelayWhenPeace { get; set; } + public float? HearDelayWhenPeace { get; set; } [JsonPropertyName("HEAR_DELAY_WHEN_HAVE_SMT")] - public float HearDelayWhenHaveSmt { get; set; } + public float? HearDelayWhenHaveSmt { get; set; } [JsonPropertyName("LOOK_ONLY_DANGER_DELTA")] - public float LookOnlyDangerDelta { get; set; } + public float? LookOnlyDangerDelta { get; set; } [JsonPropertyName("ENEMY_SNIPER_SHOOT_DIST")] - public float EnemySniperShootDist { get; set; } + public float? EnemySniperShootDist { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs index 1909b325..4bc1c39e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs @@ -1,81 +1,87 @@ using System.Text.Json.Serialization; using SPTarkov.Server.Core.Models.Eft.Common; -/// -/// See BotGlobalsMindSettings in the client, this record should match that -/// namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; +/// +/// +/// See BotGlobalsMindSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// +/// public record BotGlobalsMindSettings { [JsonPropertyName("GRENADE_DAMAGE_IGNORE")] - public bool GrenadeDamageIgnore { get; set; } + public bool? GrenadeDamageIgnore { get; set; } [JsonPropertyName("MIN_SHOOTS_TIME")] - public int MinShootsTime { get; set; } + public int? MinShootsTime { get; set; } [JsonPropertyName("MAX_SHOOTS_TIME")] - public int MaxShootsTime { get; set; } + public int? MaxShootsTime { get; set; } [JsonPropertyName("TIME_TO_RUN_TO_COVER_CAUSE_SHOOT_SEC")] - public float TimeToRunToCoverCauseShootSec { get; set; } + public float? TimeToRunToCoverCauseShootSec { get; set; } [JsonPropertyName("DAMAGE_REDUCTION_TIME_SEC")] - public float DamageReductionTimeSec { get; set; } + public float? DamageReductionTimeSec { get; set; } [JsonPropertyName("MIN_DAMAGE_SCARE")] - public float MinDamageScare { get; set; } + public float? MinDamageScare { get; set; } [JsonPropertyName("CHANCE_TO_RUN_CAUSE_DAMAGE_0_100")] - public float ChanceToRunCauseDamage0100 { get; set; } + public float? ChanceToRunCauseDamage0100 { get; set; } [JsonPropertyName("TIME_TO_FORGOR_ABOUT_ENEMY_SEC")] - public float TimeToForgorAboutEnemySec { get; set; } + public float? TimeToForgorAboutEnemySec { get; set; } [JsonPropertyName("TIME_TO_FIND_ENEMY")] - public float TimeToFindEnemy { get; set; } + public float? TimeToFindEnemy { get; set; } [JsonPropertyName("MAX_AGGRO_BOT_DIST")] - public float MaxAggroBotDist { get; set; } + public float? MaxAggroBotDist { get; set; } [JsonPropertyName("HIT_POINT_DETECTION")] - public float HitPointDetection { get; set; } + public float? HitPointDetection { get; set; } [JsonPropertyName("DANGER_POINT_CHOOSE_COEF")] - public float DangerPointChooseCoef { get; set; } + public float? DangerPointChooseCoef { get; set; } [JsonPropertyName("SIMPLE_POINT_CHOOSE_COEF")] - public float SimplePointChooseCoef { get; set; } + public float? SimplePointChooseCoef { get; set; } [JsonPropertyName("LASTSEEN_POINT_CHOOSE_COEF")] - public float LastseenPointChooseCoef { get; set; } + public float? LastseenPointChooseCoef { get; set; } [JsonPropertyName("COVER_DIST_COEF")] - public float CoverDistCoef { get; set; } + public float? CoverDistCoef { get; set; } [JsonPropertyName("DIST_TO_FOUND_SQRT")] - public float DistToFoundSqrt { get; set; } + public float? DistToFoundSqrt { get; set; } [JsonPropertyName("SEARCH_TARGET")] - public bool SearchTarget { get; set; } + public bool? SearchTarget { get; set; } [JsonPropertyName("ENEMY_BY_GROUPS_PMC_PLAYERS")] - public bool EnemyByGroupsPmcPlayers { get; set; } + public bool? EnemyByGroupsPmcPlayers { get; set; } [JsonPropertyName("ENEMY_BY_GROUPS_SAVAGE_PLAYERS")] - public bool EnemyByGroupsSavagePlayers { get; set; } + public bool? EnemyByGroupsSavagePlayers { get; set; } [JsonPropertyName("BOSS_IGNORE_LOYALTY")] - public bool BossIgnoreLoyalty { get; set; } + public bool? BossIgnoreLoyalty { get; set; } [JsonPropertyName("DEFAULT_BEAR_BEHAVIOUR")] - public EWarnBehaviour DefaultBearBehaviour { get; set; } + public EWarnBehaviour? DefaultBearBehaviour { get; set; } [JsonPropertyName("DEFAULT_USEC_BEHAVIOUR")] - public EWarnBehaviour DefaultUsecBehaviour { get; set; } + public EWarnBehaviour? DefaultUsecBehaviour { get; set; } [JsonPropertyName("DEFAULT_SAVAGE_BEHAVIOUR")] - public EWarnBehaviour DefaultSavageBehaviour { get; set; } + public EWarnBehaviour? DefaultSavageBehaviour { get; set; } [JsonPropertyName("FRIENDLY_BOT_TYPES")] public WildSpawnType[]? FriendlyBotTypes { get; set; } @@ -90,328 +96,328 @@ public record BotGlobalsMindSettings public WildSpawnType[]? RevengeBotTypes { get; set; } [JsonPropertyName("FOLLOWER_AND_BOSS_WARN_EQUAL_PRIORITY")] - public bool FollowerAndBossWarnEqualPriority { get; set; } + public bool? FollowerAndBossWarnEqualPriority { get; set; } [JsonPropertyName("MUTUAL_IGNORE_FRIENDLY_FIRE")] - public bool MutualIgnoreFriendlyFire { get; set; } + public bool? MutualIgnoreFriendlyFire { get; set; } [JsonPropertyName("MAX_AGGRO_BOT_DIST_UPPER_LIMIT")] - public float MaxAggroBotDistUpperLimit { get; set; } + public float? MaxAggroBotDistUpperLimit { get; set; } [JsonPropertyName("MAX_AGGRO_BOT_DIST_SQR_UPPER_LIMIT")] - public float MaxAggroBotDistSqrUpperLimit { get; set; } + public float? MaxAggroBotDistSqrUpperLimit { get; set; } [JsonPropertyName("MAX_AGGRO_BOT_DIST_SQR")] - public float MaxAggroBotDistSqr { get; set; } + public float? MaxAggroBotDistSqr { get; set; } [JsonPropertyName("DIST_TO_STOP_RUN_ENEMY")] - public float DistToStopRunEnemy { get; set; } + public float? DistToStopRunEnemy { get; set; } [JsonPropertyName("ENEMY_LOOK_AT_ME_ANG")] - public float EnemyLookAtMeAng { get; set; } + public float? EnemyLookAtMeAng { get; set; } [JsonPropertyName("MIN_START_AGGRESION_COEF")] - public float MinStartAggresionCoef { get; set; } + public float? MinStartAggresionCoef { get; set; } [JsonPropertyName("MAX_START_AGGRESION_COEF")] - public float MaxStartAggresionCoef { get; set; } + public float? MaxStartAggresionCoef { get; set; } [JsonPropertyName("BULLET_FEEL_DIST")] - public float BulletFeelDist { get; set; } + public float? BulletFeelDist { get; set; } [JsonPropertyName("BULLET_FEEL_CLOSE_SDIST")] - public float BulletFeelCloseSdist { get; set; } + public float? BulletFeelCloseSdist { get; set; } [JsonPropertyName("ATTACK_IMMEDIATLY_CHANCE_0_100")] - public float AttackImmediatlyChance0100 { get; set; } + public float? AttackImmediatlyChance0100 { get; set; } [JsonPropertyName("CHANCE_FUCK_YOU_ON_CONTACT_100")] - public float ChanceFuckYouOnContact100 { get; set; } + public float? ChanceFuckYouOnContact100 { get; set; } [JsonPropertyName("FRIEND_DEAD_AGR_LOW")] - public float FriendDeadAgrLow { get; set; } + public float? FriendDeadAgrLow { get; set; } [JsonPropertyName("FRIEND_AGR_KILL")] - public float FriendAgrKill { get; set; } + public float? FriendAgrKill { get; set; } [JsonPropertyName("LAST_ENEMY_LOOK_TO")] - public float LastEnemyLookTo { get; set; } + public float? LastEnemyLookTo { get; set; } [JsonPropertyName("CAN_RECEIVE_PLAYER_REQUESTS_BEAR")] - public bool CanReceivePlayerRequestsBear { get; set; } + public bool? CanReceivePlayerRequestsBear { get; set; } [JsonPropertyName("CAN_RECEIVE_PLAYER_REQUESTS_USEC")] - public bool CanReceivePlayerRequestsUsec { get; set; } + public bool? CanReceivePlayerRequestsUsec { get; set; } [JsonPropertyName("CAN_RECEIVE_PLAYER_REQUESTS_SAVAGE")] - public bool CanReceivePlayerRequestsSavage { get; set; } + public bool? CanReceivePlayerRequestsSavage { get; set; } [JsonPropertyName("REVENGE_TO_GROUP")] - public bool RevengeToGroup { get; set; } + public bool? RevengeToGroup { get; set; } [JsonPropertyName("REVENGE_FOR_SAVAGE_PLAYERS")] - public bool RevengeForSavagePlayers { get; set; } + public bool? RevengeForSavagePlayers { get; set; } [JsonPropertyName("CAN_USE_MEDS")] - public bool CanUseMeds { get; set; } + public bool? CanUseMeds { get; set; } [JsonPropertyName("SUSPETION_POINT_CHANCE_ADD100")] - public float SuspetionPointChanceAdd100 { get; set; } + public float? SuspetionPointChanceAdd100 { get; set; } [JsonPropertyName("AMBUSH_WHEN_UNDER_FIRE")] - public bool AmbushWhenUnderFire { get; set; } + public bool? AmbushWhenUnderFire { get; set; } [JsonPropertyName("AMBUSH_WHEN_UNDER_FIRE_TIME_RESIST")] - public float AmbushWhenUnderFireTimeResist { get; set; } + public float? AmbushWhenUnderFireTimeResist { get; set; } [JsonPropertyName("CAN_LOOT_BOSS_CLUSTER")] - public bool CanLootBossCluster { get; set; } + public bool? CanLootBossCluster { get; set; } [JsonPropertyName("ATTACK_ENEMY_IF_PROTECT_DELTA_LAST_TIME_SEEN")] - public float AttackEnemyIfProtectDeltaLastTimeSeen { get; set; } + public float? AttackEnemyIfProtectDeltaLastTimeSeen { get; set; } [JsonPropertyName("HOLD_IF_PROTECT_DELTA_LAST_TIME_SEEN")] - public float HoldIfProtectDeltaLastTimeSeen { get; set; } + public float? HoldIfProtectDeltaLastTimeSeen { get; set; } [JsonPropertyName("FIND_COVER_TO_GET_POSITION_WITH_SHOOT")] - public float FindCoverToGetPositionWithShoot { get; set; } + public float? FindCoverToGetPositionWithShoot { get; set; } [JsonPropertyName("PROTECT_TIME_REAL")] - public bool ProtectTimeReal { get; set; } + public bool? ProtectTimeReal { get; set; } [JsonPropertyName("CHANCE_SHOOT_WHEN_WARN_PLAYER_100")] - public float ChanceShootWhenWarnPlayer100 { get; set; } + public float? ChanceShootWhenWarnPlayer100 { get; set; } [JsonPropertyName("CAN_PANIC_IS_PROTECT")] - public bool CanPanicIsProtect { get; set; } + public bool? CanPanicIsProtect { get; set; } [JsonPropertyName("NO_RUN_AWAY_FOR_SAFE")] - public bool NoRunAwayForSafe { get; set; } + public bool? NoRunAwayForSafe { get; set; } [JsonPropertyName("PART_PERCENT_TO_HEAL")] - public float PartPercentToHeal { get; set; } + public float? PartPercentToHeal { get; set; } [JsonPropertyName("PROTECT_DELTA_HEAL_SEC")] - public float ProtectDeltaHealSec { get; set; } + public float? ProtectDeltaHealSec { get; set; } [JsonPropertyName("CAN_STAND_BY")] - public bool CanStandBy { get; set; } + public bool? CanStandBy { get; set; } [JsonPropertyName("CAN_THROW_REQUESTS")] - public bool CanThrowRequests { get; set; } + public bool? CanThrowRequests { get; set; } [JsonPropertyName("GROUP_ANY_PHRASE_DELAY")] - public float GroupAnyPhraseDelay { get; set; } + public float? GroupAnyPhraseDelay { get; set; } [JsonPropertyName("GROUP_EXACTLY_PHRASE_DELAY")] - public float GroupExactlyPhraseDelay { get; set; } + public float? GroupExactlyPhraseDelay { get; set; } [JsonPropertyName("GROUP_EXACTLY_PHRASE_DELAY_MAX")] - public float GroupExactlyPhraseDelayMax { get; set; } + public float? GroupExactlyPhraseDelayMax { get; set; } [JsonPropertyName("DIST_TO_ENEMY_YO_CAN_HEAL")] - public float DistToEnemyYoCanHeal { get; set; } + public float? DistToEnemyYoCanHeal { get; set; } [JsonPropertyName("CHANCE_TO_STAY_WHEN_WARN_PLAYER_100")] - public float ChanceToStayWhenWarnPlayer100 { get; set; } + public float? ChanceToStayWhenWarnPlayer100 { get; set; } [JsonPropertyName("DOG_FIGHT_OUT")] - public float DogFightOut { get; set; } + public float? DogFightOut { get; set; } [JsonPropertyName("DOG_FIGHT_IN")] - public float DogFightIn { get; set; } + public float? DogFightIn { get; set; } [JsonPropertyName("SHOOT_INSTEAD_DOG_FIGHT")] - public float ShootInsteadDogFight { get; set; } + public float? ShootInsteadDogFight { get; set; } [JsonPropertyName("PISTOL_SHOTGUN_AMBUSH_DIST")] - public float PistolShotgunAmbushDist { get; set; } + public float? PistolShotgunAmbushDist { get; set; } [JsonPropertyName("STANDART_AMBUSH_DIST")] - public float StandartAmbushDist { get; set; } + public float? StandartAmbushDist { get; set; } [JsonPropertyName("AI_POWER_COEF")] - public float AiPowerCoef { get; set; } + public float? AiPowerCoef { get; set; } [JsonPropertyName("COVER_SECONDS_AFTER_LOSE_VISION")] - public float CoverSecondsAfterLoseVision { get; set; } + public float? CoverSecondsAfterLoseVision { get; set; } [JsonPropertyName("COVER_SELF_ALWAYS_IF_DAMAGED")] - public bool CoverSelfAlwaysIfDamaged { get; set; } + public bool? CoverSelfAlwaysIfDamaged { get; set; } [JsonPropertyName("SEC_TO_MORE_DIST_TO_RUN")] - public float SecToMoreDistToRun { get; set; } + public float? SecToMoreDistToRun { get; set; } [JsonPropertyName("HEAL_DELAY_SEC")] - public float HealDelaySec { get; set; } + public float? HealDelaySec { get; set; } [JsonPropertyName("HIT_DELAY_WHEN_HAVE_SMT")] - public float HitDelayWhenHaveSmt { get; set; } + public float? HitDelayWhenHaveSmt { get; set; } [JsonPropertyName("HIT_DELAY_WHEN_PEACE")] - public float HitDelayWhenPeace { get; set; } + public float? HitDelayWhenPeace { get; set; } [JsonPropertyName("TALK_WITH_QUERY")] - public bool TalkWithQuery { get; set; } + public bool? TalkWithQuery { get; set; } [JsonPropertyName("DANGER_EXPIRE_TIME_MIN")] - public float DangerExpireTimeMin { get; set; } + public float? DangerExpireTimeMin { get; set; } [JsonPropertyName("DANGER_EXPIRE_TIME_MAX")] - public float DangerExpireTimeMax { get; set; } + public float? DangerExpireTimeMax { get; set; } [JsonPropertyName("PANIC_RUN_WEIGHT")] - public float PanicRunWeight { get; set; } + public float? PanicRunWeight { get; set; } [JsonPropertyName("PANIC_SIT_WEIGHT")] - public float PanicSitWeight { get; set; } + public float? PanicSitWeight { get; set; } [JsonPropertyName("PANIC_LAY_WEIGHT")] - public float PanicLayWeight { get; set; } + public float? PanicLayWeight { get; set; } [JsonPropertyName("PANIC_NONE_WEIGHT")] - public float PanicNoneWeight { get; set; } + public float? PanicNoneWeight { get; set; } [JsonPropertyName("PANIC_SIT_WEIGHT_PEACE")] - public float PanicSitWeightPeace { get; set; } + public float? PanicSitWeightPeace { get; set; } [JsonPropertyName("CAN_EXECUTE_REQUESTS")] - public bool CanExecuteRequests { get; set; } + public bool? CanExecuteRequests { get; set; } [JsonPropertyName("CAN_WARN_SELF")] - public bool CanWarnSelf { get; set; } + public bool? CanWarnSelf { get; set; } [JsonPropertyName("DIST_TO_ENEMY_SPOTTED_ON_HIT")] - public float DistToEnemySpottedOnHit { get; set; } + public float? DistToEnemySpottedOnHit { get; set; } [JsonPropertyName("UNDER_FIRE_PERIOD")] - public float UnderFirePeriod { get; set; } + public float? UnderFirePeriod { get; set; } [JsonPropertyName("MEDS_ONLY_SAFE_CONTAINER")] - public bool MedsOnlySafeContainer { get; set; } + public bool? MedsOnlySafeContainer { get; set; } [JsonPropertyName("CAN_DROP_ITEMS")] - public bool CanDropItems { get; set; } + public bool? CanDropItems { get; set; } [JsonPropertyName("CAN_TAKE_ITEMS")] - public bool CanTakeItems { get; set; } + public bool? CanTakeItems { get; set; } [JsonPropertyName("THROW_DIST_TO_SEE")] - public float ThrowDistToSee { get; set; } + public float? ThrowDistToSee { get; set; } [JsonPropertyName("CAN_TAKE_ANY_ITEM")] - public bool CanTakeAnyItem { get; set; } + public bool? CanTakeAnyItem { get; set; } [JsonPropertyName("WILL_PERSUE_AXEMAN")] - public bool WillPersueAxeman { get; set; } + public bool? WillPersueAxeman { get; set; } [JsonPropertyName("MAX_DIST_TO_RUN_PERSUE_AXEMAN")] - public float MaxDistToRunPersueAxeman { get; set; } + public float? MaxDistToRunPersueAxeman { get; set; } [JsonPropertyName("MAX_DIST_TO_PERSUE_AXEMAN")] - public float MaxDistToPersueAxeman { get; set; } + public float? MaxDistToPersueAxeman { get; set; } [JsonPropertyName("SURGE_KIT_ONLY_SAFE_CONTAINER")] - public bool SurgeKitOnlySafeContainer { get; set; } + public bool? SurgeKitOnlySafeContainer { get; set; } [JsonPropertyName("CAN_USE_LONG_COVER_POINTS")] - public bool CanUseLongCoverPoints { get; set; } + public bool? CanUseLongCoverPoints { get; set; } [JsonPropertyName("CAN_USE_FOOD_DRINK")] - public bool CanUseFoodDrink { get; set; } + public bool? CanUseFoodDrink { get; set; } [JsonPropertyName("FOOD_DRINK_DELAY_SEC")] - public float FoodDrinkDelaySec { get; set; } + public float? FoodDrinkDelaySec { get; set; } [JsonPropertyName("HOW_WORK_OVER_DEAD_BODY")] - public int HowWorkOverDeadBody { get; set; } + public int? HowWorkOverDeadBody { get; set; } [JsonPropertyName("DEADBODYWORK_INITIAL_DELAY")] - public float DeadbodyworkInitialDelay { get; set; } + public float? DeadbodyworkInitialDelay { get; set; } [JsonPropertyName("DEADBODYWORK_CHECK_ITEMS_DELAY")] - public float DeadbodyworkCheckItemsDelay { get; set; } + public float? DeadbodyworkCheckItemsDelay { get; set; } [JsonPropertyName("DEADBODYWORK_MOVE_ITEMS_DELAY")] - public float DeadbodyworkMoveItemsDelay { get; set; } + public float? DeadbodyworkMoveItemsDelay { get; set; } [JsonPropertyName("DEADBODYWORK_DROP_ITEMS_DELAY")] - public float DeadbodyworkDropItemsDelay { get; set; } + public float? DeadbodyworkDropItemsDelay { get; set; } [JsonPropertyName("CAN_TALK")] - public bool CanTalk { get; set; } + public bool? CanTalk { get; set; } [JsonPropertyName("ACTIVE_FORCE_ATTACK_EVENTS")] - public bool ActiveForceAttackEvents { get; set; } + public bool? ActiveForceAttackEvents { get; set; } [JsonPropertyName("ACTIVE_FOLLOW_PLAYER_EVENTS")] - public bool ActiveFollowPlayerEvents { get; set; } + public bool? ActiveFollowPlayerEvents { get; set; } [JsonPropertyName("MAY_BE_CALLED_FOR_HELP")] - public bool MayBeCalledForHelp { get; set; } + public bool? MayBeCalledForHelp { get; set; } [JsonPropertyName("GIFTER_ADDITIONAL_GIFTS")] - public int GifterAdditionalGifts { get; set; } + public int? GifterAdditionalGifts { get; set; } [JsonPropertyName("ANGLE_TO_SHOOT_BTR")] - public float AngleToShootBtr { get; set; } + public float? AngleToShootBtr { get; set; } [JsonPropertyName("ROTATION_SPEED_BTR")] - public float RotationSpeedBtr { get; set; } + public float? RotationSpeedBtr { get; set; } [JsonPropertyName("IGNORE_ANOTHER_BOTS_BEING_HIT")] - public bool IgnoreAnotherBotsBeingHit { get; set; } + public bool? IgnoreAnotherBotsBeingHit { get; set; } [JsonPropertyName("AVOID_BTR_RADIUS_SQR")] - public float AvoidBtrRadiusSqr { get; set; } + public float? AvoidBtrRadiusSqr { get; set; } [JsonPropertyName("SNIPER_FIRE_IMMUNE")] - public bool SniperFireImmune { get; set; } + public bool? SniperFireImmune { get; set; } [JsonPropertyName("USE_ADD_TO_ENEMY_VALIDATION")] - public bool UseAddToEnemyValidation { get; set; } + public bool? UseAddToEnemyValidation { get; set; } [JsonPropertyName("VALID_REASONS_TO_ADD_ENEMY")] public EBotEnemyCause[]? ValidReasonsToAddEnemy { get; set; } [JsonPropertyName("CHECK_MARK_OF_UNKNOWS")] - public bool CheckMarkOfUnknows { get; set; } + public bool? CheckMarkOfUnknows { get; set; } [JsonPropertyName("SDIST_TO_DELIVER_INFO_WHEN_ENEMY")] - public float SdistToDeliverInfoWhenEnemy { get; set; } + public float? SdistToDeliverInfoWhenEnemy { get; set; } [JsonPropertyName("TRIPWIRE_INERT_TIME")] - public int TripwireInertTime { get; set; } + public int? TripwireInertTime { get; set; } [JsonPropertyName("IGNORE_TRAP")] - public bool IgnoreTrap { get; set; } + public bool? IgnoreTrap { get; set; } [JsonPropertyName("CHANCE_TO_IGNORE_TRIPWIRE")] - public float ChanceToIgnoreTripwire { get; set; } + public float? ChanceToIgnoreTripwire { get; set; } [JsonPropertyName("CHACE_TO_DEACTIVATE")] - public float ChaceToDeactivate { get; set; } + public float? ChaceToDeactivate { get; set; } [JsonPropertyName("REACT_ADD_DRUNK_ENEMY")] - public bool ReactAddDrunkEnemy { get; set; } + public bool? ReactAddDrunkEnemy { get; set; } [JsonPropertyName("DIST_TO_HIDE_ASSAULT")] - public float DistToHideAssault { get; set; } + public float? DistToHideAssault { get; set; } [JsonPropertyName("KEEP_ZONE_ON_SPAWN_TIME_SEC")] - public float KeepZoneOnSpawnTimeSec { get; set; } + public float? KeepZoneOnSpawnTimeSec { get; set; } [JsonPropertyName("IGNORE_DANGER_PLACES")] - public bool IgnoreDangerPlaces { get; set; } + public bool? IgnoreDangerPlaces { get; set; } [JsonPropertyName("PUSH_AND_SUPPRESS_HIDE")] - public float PushAndSuppressHide { get; set; } + public float? PushAndSuppressHide { get; set; } [JsonPropertyName("PUSH_AND_SUPPRESS_PUSH")] - public float PushAndSuppressPush { get; set; } + public float? PushAndSuppressPush { get; set; } [JsonPropertyName("AGGRESSOR_LOYALTY_BONUS")] - public float AggressorLoyaltyBonus { get; set; } + public float? AggressorLoyaltyBonus { get; set; } public enum EWarnBehaviour { diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMoveSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMoveSettings.cs index 0cc7f997..ea6a4318 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMoveSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMoveSettings.cs @@ -1,111 +1,119 @@ using System.Text.Json.Serialization; namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; - +/// +/// +/// See BotGlobalsMoveSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// +/// public record BotGlobalsMoveSettings { [JsonPropertyName("BASE_ROTATE_SPEED")] - public float BaseRotateSpeed { get; set; } + public float? BaseRotateSpeed { get; set; } [JsonPropertyName("REACH_DIST")] - public float ReachDistance { get; set; } + public float? ReachDistance { get; set; } [JsonPropertyName("REACH_DIST_RUN")] - public float ReachDistanceRun { get; set; } + public float? ReachDistanceRun { get; set; } [JsonPropertyName("START_SLOW_DIST")] - public float StartSlowDistance { get; set; } + public float? StartSlowDistance { get; set; } [JsonPropertyName("BASESTART_SLOW_DIST")] - public float BaseStartSlowDistance { get; set; } + public float? BaseStartSlowDistance { get; set; } [JsonPropertyName("SLOW_COEF")] - public float SlowCoefficient { get; set; } + public float? SlowCoefficient { get; set; } [JsonPropertyName("DIST_TO_CAN_CHANGE_WAY")] - public float DistanceToCanChangeWay { get; set; } + public float? DistanceToCanChangeWay { get; set; } [JsonPropertyName("DIST_TO_START_RAYCAST")] - public float DistanceToStartRaycast { get; set; } + public float? DistanceToStartRaycast { get; set; } [JsonPropertyName("BASE_START_SERACH")] - public float BaseStartSearch { get; set; } + public float? BaseStartSearch { get; set; } [JsonPropertyName("UPDATE_TIME_RECAL_WAY")] - public float UpdateTimeRecalculateWay { get; set; } + public float? UpdateTimeRecalculateWay { get; set; } [JsonPropertyName("FAR_DIST")] - public float FarDistance { get; set; } + public float? FarDistance { get; set; } [JsonPropertyName("FAR_DIST_SQR")] - public float FarDistanceSqr { get; set; } + public float? FarDistanceSqr { get; set; } [JsonPropertyName("DIST_TO_CAN_CHANGE_WAY_SQR")] - public float DistanceToCanChangeWaySqr { get; set; } + public float? DistanceToCanChangeWaySqr { get; set; } [JsonPropertyName("DIST_TO_START_RAYCAST_SQR")] - public float DistanceToStartRaycastSqr { get; set; } + public float? DistanceToStartRaycastSqr { get; set; } [JsonPropertyName("BASE_SQRT_START_SERACH")] - public float BaseSqrtStartSearch { get; set; } + public float? BaseSqrtStartSearch { get; set; } [JsonPropertyName("Y_APPROXIMATION")] - public float YApproximation { get; set; } + public float? YApproximation { get; set; } [JsonPropertyName("DELTA_LAST_SEEN_ENEMY")] - public float DeltaLastSeenEnemy { get; set; } + public float? DeltaLastSeenEnemy { get; set; } [JsonPropertyName("REACH_DIST_COVER")] - public float ReachDistanceCover { get; set; } + public float? ReachDistanceCover { get; set; } [JsonPropertyName("RUN_TO_COVER_MIN")] - public float RunToCoverMin { get; set; } + public float? RunToCoverMin { get; set; } [JsonPropertyName("CHANCE_TO_RUN_IF_NO_AMMO_0_100")] - public float ChanceToRunIfNoAmmo { get; set; } + public float? ChanceToRunIfNoAmmo { get; set; } [JsonPropertyName("RUN_IF_CANT_SHOOT")] - public bool RunIfCantShoot { get; set; } + public bool? RunIfCantShoot { get; set; } [JsonPropertyName("RUN_IF_GAOL_FAR_THEN")] - public float RunIfGoalFarThen { get; set; } + public float? RunIfGoalFarThen { get; set; } [JsonPropertyName("SEC_TO_CHANGE_TO_RUN")] - public float SecondsToChangeToRun { get; set; } + public float? SecondsToChangeToRun { get; set; } [JsonPropertyName("ETERNITY_STAMINA")] - public bool EternityStamina { get; set; } + public bool? EternityStamina { get; set; } [JsonPropertyName("STOP_SPRINT_AT_TREE")] - public bool StopSprintAtTree { get; set; } + public bool? StopSprintAtTree { get; set; } [JsonPropertyName("WAIT_DOOR_OPEN_SEC")] - public float WaitDoorOpenSeconds { get; set; } + public float? WaitDoorOpenSeconds { get; set; } [JsonPropertyName("BREACH_CHANCE_100")] - public float BreachChance { get; set; } + public float? BreachChance { get; set; } [JsonPropertyName("FIRST_TURN_SPEED")] - public float FirstTurnSpeed { get; set; } + public float? FirstTurnSpeed { get; set; } [JsonPropertyName("FIRST_TURN_BIG_SPEED")] - public float FirstTurnBigSpeed { get; set; } + public float? FirstTurnBigSpeed { get; set; } [JsonPropertyName("TURN_SPEED_ON_SPRINT")] - public float TurnSpeedOnSprint { get; set; } + public float? TurnSpeedOnSprint { get; set; } [JsonPropertyName("NO_ZIG_ZAG")] - public bool NoZigZag { get; set; } + public bool? NoZigZag { get; set; } [JsonPropertyName("CAN_SPRINT_GO_TO_SOME_POINT")] - public bool CanSprintGoToSomePoint { get; set; } + public bool? CanSprintGoToSomePoint { get; set; } [JsonPropertyName("DIST_SPRINT_GO_TO_SOME_POINT")] - public float DistanceSprintGoToSomePoint { get; set; } + public float? DistanceSprintGoToSomePoint { get; set; } [JsonPropertyName("MELEE_ATTACK_ZIG_ZAG")] - public bool MeleeAttackZigZag { get; set; } + public bool? MeleeAttackZigZag { get; set; } [JsonPropertyName("MELEE_ATTACK_OPTIMIZE")] - public bool MeleeAttackOptimize { get; set; } + public bool? MeleeAttackOptimize { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs index a3491a7b..9fb41cff 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs @@ -2,98 +2,107 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; +/// +/// +/// See BotGlobalsScatteringSettings in the client, this record should match that +/// +/// +/// +/// These are all nullable so that only values get written if they are set, we don't want default values to be written to the client +/// +/// public record BotGlobalsScatteringSettings { [JsonPropertyName("MinScatter")] - public float MinScatter { get; set; } + public float? MinScatter { get; set; } [JsonPropertyName("WorkingScatter")] - public float WorkingScatter { get; set; } + public float? WorkingScatter { get; set; } [JsonPropertyName("MaxScatter")] - public float MaxScatter { get; set; } + public float? MaxScatter { get; set; } [JsonPropertyName("SpeedUp")] - public float SpeedUp { get; set; } + public float? SpeedUp { get; set; } [JsonPropertyName("SpeedUpAim")] - public float SpeedUpAim { get; set; } + public float? SpeedUpAim { get; set; } [JsonPropertyName("SpeedDown")] - public float SpeedDown { get; set; } + public float? SpeedDown { get; set; } [JsonPropertyName("ToSlowBotSpeed")] - public float ToSlowBotSpeed { get; set; } + public float? ToSlowBotSpeed { get; set; } [JsonPropertyName("ToLowBotSpeed")] - public float ToLowBotSpeed { get; set; } + public float? ToLowBotSpeed { get; set; } [JsonPropertyName("ToUpBotSpeed")] - public float ToUpBotSpeed { get; set; } + public float? ToUpBotSpeed { get; set; } [JsonPropertyName("MovingSlowCoef")] - public float MovingSlowCoef { get; set; } + public float? MovingSlowCoef { get; set; } [JsonPropertyName("ToLowBotAngularSpeed")] - public float ToLowBotAngularSpeed { get; set; } + public float? ToLowBotAngularSpeed { get; set; } [JsonPropertyName("ToStopBotAngularSpeed")] - public float ToStopBotAngularSpeed { get; set; } + public float? ToStopBotAngularSpeed { get; set; } [JsonPropertyName("FromShot")] - public float FromShot { get; set; } + public float? FromShot { get; set; } [JsonPropertyName("TracerCoef")] - public float TracerCoef { get; set; } + public float? TracerCoef { get; set; } [JsonPropertyName("HandDamageScatteringMinMax")] - public float HandDamageScatteringMinMax { get; set; } + public float? HandDamageScatteringMinMax { get; set; } [JsonPropertyName("HandDamageAccuracySpeed")] - public float HandDamageAccuracySpeed { get; set; } + public float? HandDamageAccuracySpeed { get; set; } [JsonPropertyName("BloodFall")] - public float BloodFall { get; set; } + public float? BloodFall { get; set; } [JsonPropertyName("Caution")] - public float Caution { get; set; } + public float? Caution { get; set; } [JsonPropertyName("ToCaution")] - public float ToCaution { get; set; } + public float? ToCaution { get; set; } [JsonPropertyName("RecoilControlCoefShootDone")] - public float RecoilControlCoefShootDone { get; set; } + public float? RecoilControlCoefShootDone { get; set; } [JsonPropertyName("RecoilControlCoefShootDoneAuto")] - public float RecoilControlCoefShootDoneAuto { get; set; } + public float? RecoilControlCoefShootDoneAuto { get; set; } [JsonPropertyName("AMPLITUDE_FACTOR")] - public float AmplitudeFactor { get; set; } + public float? AmplitudeFactor { get; set; } [JsonPropertyName("AMPLITUDE_SPEED")] - public float AmplitudeSpeed { get; set; } + public float? AmplitudeSpeed { get; set; } [JsonPropertyName("DIST_FROM_OLD_POINT_TO_NOT_AIM")] - public float DistFromOldPointToNotAim { get; set; } + public float? DistFromOldPointToNotAim { get; set; } [JsonPropertyName("DIST_FROM_OLD_POINT_TO_NOT_AIM_SQRT")] - public float DistFromOldPointToNotAimSqrt { get; set; } + public float? DistFromOldPointToNotAimSqrt { get; set; } [JsonPropertyName("DIST_NOT_TO_SHOOT")] - public float DistNotToShoot { get; set; } + public float? DistNotToShoot { get; set; } [JsonPropertyName("PoseChnageCoef")] - public float PoseChangeCoef { get; set; } + public float? PoseChangeCoef { get; set; } [JsonPropertyName("LayFactor")] - public float LayFactor { get; set; } + public float? LayFactor { get; set; } [JsonPropertyName("RecoilYCoef")] - public float RecoilYCoef { get; set; } + public float? RecoilYCoef { get; set; } [JsonPropertyName("RecoilYCoefSppedDown")] - public float RecoilYCoefSpeedDown { get; set; } + public float? RecoilYCoefSpeedDown { get; set; } [JsonPropertyName("RecoilYMax")] - public float RecoilYMax { get; set; } + public float? RecoilYMax { get; set; } }