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