diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs index 0a26626b..18100ca2 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalAimingSettings.cs @@ -13,6 +13,9 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// public record BotGlobalAimingSettings { + /// + /// Time for Maximum shooting improvement depending on how long the bot aims + /// [JsonPropertyName("MAX_AIM_PRECICING")] public float? MaxAimPrecicing { get; set; } @@ -28,6 +31,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("RECALC_SQR_DIST")] public float? RecalcSqrDist { get; set; } + /// + /// increased aiming when peeking out from behind cover + /// [JsonPropertyName("COEF_FROM_COVER")] public float? CoefFromCover { get; set; } @@ -37,12 +43,21 @@ public record BotGlobalAimingSettings [JsonPropertyName("PANIC_ACCURATY_COEF")] public float? PanicAccuratyCoef { get; set; } + /// + /// Improved Aiming Factor + /// [JsonPropertyName("HARD_AIM")] public float? HardAim { get; set; } + /// + /// aim chance while shooting [0;100] + /// [JsonPropertyName("HARD_AIM_CHANCE_100")] public int? HardAimChance100 { get; set; } + /// + /// Panic time is normal + /// [JsonPropertyName("PANIC_TIME")] public float? PanicTime { get; set; } @@ -64,6 +79,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("DANGER_UP_POINT")] public float? DangerUpPoint { get; set; } + /// + /// how much better can shooting be from zeroing in - 0.15 == 85%. 0.5 == 50% . 1 == 0% + /// [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] public float? MaxAimingUpgradeByTime { get; set; } @@ -97,6 +115,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("BOTTOM_COEF")] public float? BottomCoef { get; set; } + /// + /// Added to the first time a bot aims at a player + /// [JsonPropertyName("FIRST_CONTACT_ADD_SEC")] public float? FirstContactAddSec { get; set; } @@ -163,6 +184,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("NEXT_SHOT_MISS_Y_OFFSET")] public float? NextShotMissYOffset { get; set; } + /// + /// Chance that the bot will turn on the flashlight when aiming + /// [JsonPropertyName("ANYTIME_LIGHT_WHEN_AIM_100")] public float? AnytimeLightWhenAim100 { get; set; } @@ -179,6 +203,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("MIN_DAMAGE_TO_GET_HIT_AFFETS")] public float? MinDamageToGetHitAffets { get; set; } + /// + /// Maximum aiming time + /// [JsonPropertyName("MAX_AIM_TIME")] public float? MaxAimTime { get; set; } @@ -194,6 +221,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("STATIONARY_LEAVE_HALF_DEGREE")] public float? StationaryLeaveHalfDegree { get; set; } + /// + /// Base number of hits past MIN + /// [JsonPropertyName("BAD_SHOOTS_MIN")] public int? BadShootsMin { get; set; } @@ -212,6 +242,9 @@ public record BotGlobalAimingSettings [JsonPropertyName("AIMING_ON_WAY")] public float? AimingOnWay { get; set; } + /// + /// The distance to the target, if exceeded, the bot misses on first contact if visibility is obstructed + /// [JsonPropertyName("FIRST_CONTACT_HARD_TO_SEE_MISS_SHOOTS_DISTANCE")] public float? FirstContactHardToSeeMissShootsDistance { get; set; } @@ -266,9 +299,16 @@ public record BotUnderbarrelLauncherAimingSettings [JsonPropertyName("MAX_AIMING_UPGRADE_BY_TIME")] public float? MaxAimingUpgradeByTime { get; set; } + /// + /// The bot is considered to be moving if it has passed more than X frame + /// [JsonPropertyName("BOT_MOVE_IF_DELTA")] public float? BotMoveIfDelta { get; set; } + /// + /// Panic time is normal + /// default 6 + /// [JsonPropertyName("PANIC_TIME")] public float? PanicTime { get; set; } @@ -329,6 +369,9 @@ public record BotUnderbarrelLauncherAimingSettings [JsonPropertyName("BAD_SHOOTS_OFFSET")] public float? BadShootsOffset { get; set; } + /// + /// Base coefficient from the formula == Y*ln(x/5+1.2) + /// [JsonPropertyName("BAD_SHOOTS_MAIN_COEF")] public float? BadShootsMainCoef { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs index 462827d3..337fd7f7 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLayData.cs @@ -13,6 +13,9 @@ namespace SPTarkov.Server.Core.Models.Eft.Common.Tables; /// public record BotGlobalLayData { + /// + /// When lying down, checks whether it is possible to shoot from this position at the last known position of the enemy. (If not, then it can lie down around the corner, etc.) + /// [JsonPropertyName("CHECK_SHOOT_WHEN_LAYING")] public bool? CheckShootWhenLaying { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs index f070c0af..177b24cb 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalLookData.cs @@ -13,6 +13,9 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// public record BotGlobalLookData { + /// + /// The lifetime of the point up to which the bot will pay attention to it with the standard inspection algorithm + /// [JsonPropertyName("OLD_TIME_POINT")] public float? OldTimePoint { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs index a3b6d32e..c5ce8c6e 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalShootData.cs @@ -280,12 +280,21 @@ public record BotGlobalShootData [JsonPropertyName("MISS_AFTER_SPRINT")] public bool? MissAfterSprint { get; set; } + /// + /// The bot misses the head + /// [JsonPropertyName("MISS_TO_HEAD")] public bool? MissToHead { get; set; } + /// + /// The bot misses while moving + /// [JsonPropertyName("MISS_ON_MOVE")] public bool? MissOnMove { get; set; } + /// + /// Bot misses during transition animations + /// [JsonPropertyName("MISS_ON_TRANSITION")] public bool? MissOnTransition { get; set; } } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs index 2e7db469..cac72884 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsBossSettings.cs @@ -236,6 +236,9 @@ public record BotGlobalsBossSettings [JsonPropertyName("KOJANIY_DIST_WHEN_READY")] public float? KojaniyDistWhenReady { get; set; } + /// + /// to calculate the number of enemies, this radius is taken into account + /// [JsonPropertyName("KOJANIY_DIST_TO_BE_ENEMY")] public float? KojaniyDistToBeEnemy { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs index 80eb6013..47cb59b1 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsMindSettings.cs @@ -14,18 +14,33 @@ namespace SPTarkov.Server.Core.Models.Eft.Bot.GlobalSettings; /// public record BotGlobalsMindSettings { + /// + /// Should the bot ignore damage from grenades + /// [JsonPropertyName("GRENADE_DAMAGE_IGNORE")] public bool? GrenadeDamageIgnore { get; set; } + /// + /// Min. number of shots fired at random at the position from which fire was conducted at close range + /// [JsonPropertyName("MIN_SHOOTS_TIME")] public int? MinShootsTime { get; set; } + /// + /// Max number of shots fired at random at the position from which the fire was conducted at close range + /// [JsonPropertyName("MAX_SHOOTS_TIME")] public int? MaxShootsTime { get; set; } + /// + /// The bot can only punish after this amount of time has passed since the last enemy it saw disappeared from the field. + /// [JsonPropertyName("TIME_TO_RUN_TO_COVER_CAUSE_SHOOT_SEC")] public float? TimeToRunToCoverCauseShootSec { get; set; } + /// + /// The time after which the bot will restore its characteristics after receiving damage + /// [JsonPropertyName("DAMAGE_REDUCTION_TIME_SEC")] public float? DamageReductionTimeSec { get; set; } @@ -36,24 +51,42 @@ public record BotGlobalsMindSettings [JsonPropertyName("MIN_DAMAGE_SCARE")] public float? MinDamageScare { get; set; } + /// + /// The probability that a bot will run if it is hit while it is in cover and cannot/cannot see to shoot at the enemy + /// [JsonPropertyName("CHANCE_TO_RUN_CAUSE_DAMAGE_0_100")] public float? ChanceToRunCauseDamage0100 { get; set; } + /// + /// After X seconds, the enemy stops being given out by the task distributor to bots + /// [JsonPropertyName("TIME_TO_FORGOR_ABOUT_ENEMY_SEC")] public float? TimeToForgorAboutEnemySec { get; set; } + /// + /// After X seconds the bot will search for the enemy by coming to the place of his last vision! must be less than TIME_TO_FORGOR_ABOUT_ENEMY_SEC + /// [JsonPropertyName("TIME_TO_FIND_ENEMY")] public float? TimeToFindEnemy { get; set; } [JsonPropertyName("MAX_AGGRO_BOT_DIST")] public float? MaxAggroBotDist { get; set; } + /// + /// The coefficient of accuracy of perception of the position from which the player was hit is higher - more accurate + /// [JsonPropertyName("HIT_POINT_DETECTION")] public float? HitPointDetection { get; set; } + /// + /// Danger point coefficient when seeking shelter. Danger point + /// [JsonPropertyName("DANGER_POINT_CHOOSE_COEF")] public float? DangerPointChooseCoef { get; set; } + /// + /// Danger point coefficient when seeking shelter. Simple point + /// [JsonPropertyName("SIMPLE_POINT_CHOOSE_COEF")] public float? SimplePointChooseCoef { get; set; } @@ -66,15 +99,27 @@ public record BotGlobalsMindSettings [JsonPropertyName("DIST_TO_FOUND_SQRT")] public float? DistToFoundSqrt { get; set; } + /// + /// Does the player search for the opponent when there is a GoalTarget? + /// [JsonPropertyName("SEARCH_TARGET")] public bool? SearchTarget { get; set; } + /// + /// if the flag is set on at least one bot in a bot group, then the entire group becomes hostile, in which there is one hostile PMC player + /// [JsonPropertyName("ENEMY_BY_GROUPS_PMC_PLAYERS")] public bool? EnemyByGroupsPmcPlayers { get; set; } + /// + /// if the flag is set on at least one bot in a bot group, then the entire group becomes hostile, which contains one hostile wild player + /// [JsonPropertyName("ENEMY_BY_GROUPS_SAVAGE_PLAYERS")] public bool? EnemyByGroupsSavagePlayers { get; set; } + /// + /// If true then bosses do not change their behavior for a player with a high reputation as a fencer + /// [JsonPropertyName("BOSS_IGNORE_LOYALTY")] public bool? BossIgnoreLoyalty { get; set; } @@ -132,6 +177,9 @@ public record BotGlobalsMindSettings [JsonPropertyName("DIST_TO_STOP_RUN_ENEMY")] public float? DistToStopRunEnemy { get; set; } + /// + /// The angle at which the bot understands that the enemy is looking at it + /// [JsonPropertyName("ENEMY_LOOK_AT_ME_ANG")] public float? EnemyLookAtMeAng { get; set; } @@ -141,18 +189,31 @@ public record BotGlobalsMindSettings [JsonPropertyName("MAX_START_AGGRESION_COEF")] public float? MaxStartAggresionCoef { get; set; } + /// + /// Distance from which a bot can "feel" a bullet + /// [JsonPropertyName("BULLET_FEEL_DIST")] public float? BulletFeelDist { get; set; } [JsonPropertyName("BULLET_FEEL_CLOSE_SDIST")] public float? BulletFeelCloseSdist { get; set; } + /// + /// Chance that after losing sight of an enemy and not having a new one, the bot will immediately go looking for an enemy. + /// Only applicable for attack tactics. (Then there is a check for your own strength and the strength of the enemy.) + /// [JsonPropertyName("ATTACK_IMMEDIATLY_CHANCE_0_100")] public float? AttackImmediatlyChance0100 { get; set; } + /// + /// Chance to show a faq when the bot sees the player + /// [JsonPropertyName("CHANCE_FUCK_YOU_ON_CONTACT_100")] public float? ChanceFuckYouOnContact100 { get; set; } + /// + /// How much does a bot's aggression drop if someone in its group is killed? + /// [JsonPropertyName("FRIEND_DEAD_AGR_LOW")] public float? FriendDeadAgrLow { get; set; } @@ -307,6 +368,9 @@ public record BotGlobalsMindSettings [JsonPropertyName("PANIC_SIT_WEIGHT_PEACE")] public float? PanicSitWeightPeace { get; set; } + /// + /// Can a bot execute requests? + /// [JsonPropertyName("CAN_EXECUTE_REQUESTS")] public bool? CanExecuteRequests { get; set; } @@ -343,6 +407,9 @@ public record BotGlobalsMindSettings [JsonPropertyName("MAX_DIST_TO_PERSUE_AXEMAN")] public float? MaxDistToPersueAxeman { get; set; } + /// + /// Use surgeon kit only from safe container + /// [JsonPropertyName("SURGE_KIT_ONLY_SAFE_CONTAINER")] public bool? SurgeKitOnlySafeContainer { get; set; } @@ -355,6 +422,9 @@ public record BotGlobalsMindSettings [JsonPropertyName("FOOD_DRINK_DELAY_SEC")] public float? FoodDrinkDelaySec { get; set; } + /// + /// What exactly to do when you come to a corpse 1 - use a medicine kit 2 - loot. Default - watch. public bool CAN_TALK = true; + /// [JsonPropertyName("HOW_WORK_OVER_DEAD_BODY")] public int? HowWorkOverDeadBody { get; set; } @@ -403,9 +473,15 @@ public record BotGlobalsMindSettings [JsonPropertyName("SNIPER_FIRE_IMMUNE")] public bool? SniperFireImmune { get; set; } + /// + /// If the flag is set, then enemies are added only for reasons from the VALID_REASONS_TO_ADD_ENEMY list. + /// [JsonPropertyName("USE_ADD_TO_ENEMY_VALIDATION")] public bool? UseAddToEnemyValidation { get; set; } + /// + /// List of valid reasons for adding enemies, provided that the USE_ADD_TO_ENEMY_VALIDATION flag is set + /// [JsonPropertyName("VALID_REASONS_TO_ADD_ENEMY")] public List? ValidReasonsToAddEnemy { get; set; } @@ -442,6 +518,9 @@ public record BotGlobalsMindSettings [JsonPropertyName("PUSH_AND_SUPPRESS_HIDE")] public float? PushAndSuppressHide { get; set; } + /// + /// For the PushAndSuppressLayer layer, the distance from which the bot will push HARD + /// [JsonPropertyName("PUSH_AND_SUPPRESS_PUSH")] public float? PushAndSuppressPush { get; set; } diff --git a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs index ea2e73e0..63dfe6ff 100644 --- a/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs +++ b/Libraries/SPTarkov.Server.Core/Models/Eft/Bot/GlobalSettings/BotGlobalsScatteringSettings.cs @@ -49,6 +49,9 @@ public record BotGlobalsScatteringSettings [JsonPropertyName("ToStopBotAngularSpeed")] public float? ToStopBotAngularSpeed { get; set; } + /// + /// Degrees\How much the bot's spread angle diverges when it is hit, multiplied by the damage + /// [JsonPropertyName("FromShot")] public float? FromShot { get; set; } @@ -61,6 +64,9 @@ public record BotGlobalsScatteringSettings [JsonPropertyName("HandDamageAccuracySpeed")] public float? HandDamageAccuracySpeed { get; set; } + /// + /// Float\to Coefficient of change in working circle of accuracy during bleeding + /// [JsonPropertyName("BloodFall")] public float? BloodFall { get; set; } @@ -94,6 +100,9 @@ public record BotGlobalsScatteringSettings [JsonPropertyName("PoseChnageCoef")] public float? PoseChangeCoef { get; set; } + /// + /// At the moment of changing the position to prone/non-prone, the current circle of convergence will increase by X + /// [JsonPropertyName("LayFactor")] public float? LayFactor { get; set; }