lang/MISC/ENGINE, lu par le jeu comme misc\engine, règle les mods de gameplay du moteur AF (HS2Engine et la Game_Dll.dll de CustomGameDLL) : couverture, survie des équipages, marche arrière, mouvement des véhicules, parachutages, infirmiers, dégâts en solo, ricochets, aviateurs abattus. Le jeu lit ce fichier une fois, au démarrage, après misc\misc.
Changer une valeur ne demande pas de nouvelle DLL. Modifiez le fichier, puis recompilez lang.aps.
Une ligne clé valeur par réglage. Un tiret en première position fait de la ligne un commentaire.
Clé absente : la valeur AF s’applique. Sans le fichier, le jeu se joue comme avant.
Valeur hors plage : le moteur la ramène à la limite la plus proche.
Paire incohérente : les deux clés reprennent leur valeur AF. Les paires sont cover_trees_moderate ≤ cover_trees_dense, cover_small_radius ≤ cover_massive_radius, cover_reach_cells ≤ cover_forest_reach_cells, crew_shot_wait_first_percent ≤ crew_shot_wait_max_percent, ricochet_bounce_near ≤ ricochet_bounce_far et ricochet_bounce_min_degrees ≤ ricochet_bounce_max_degrees. paradrop_scatter doit être une puissance de 2.
Le journal de HS2Engine note chaque valeur changée et chaque correction. La DLL de CustomGameDLL n’écrit pas de journal.
Multijoueur : tous les joueurs d’une partie doivent avoir le même fichier, comme pour les fiches d’unités.
Le fichier est en ASCII avec des fins de ligne CRLF. Avant de committer, lancez python3 tests/check_tuning_data.py depuis HS2Engine : il refuse les clés inconnues ou en double, les valeurs hors plage et les lignes mal formées.
Table de couverture
cover_share <unité> <zone> <dégâts %> <silhouette %> règle une case de la table, chaque % de 0 à 100. cover_prone <dégâts %> <silhouette %> s’ajoute pour un fantassin couché, n’importe où. Les zones ne s’additionnent pas : la meilleure réduction de dégâts et la meilleure réduction de silhouette comptent.
Unité
isolated
moderate
dense
narrow
massive
horizontal
building
infantry
10 20
20 50
30 75
0 20
20 40
10 30
20 50
weapon
10 10
10 30
15 50
0 0
10 15
15 30
20 20
vehicle
0 0
0 10
0 20
0 0
0 10
0 0
0 10
Zones : végétation isolée, forêt moyenne, forêt dense, décor étroit, décor massif ou colline, décor couché et cratères, maison. Unités : fantassins, armes fixes (canons, mitrailleuses), véhicules. Valeur AF de cover_prone : 30 60.
Les clés
Un tour dure 40 ms à la vitesse habituelle. Une case fait 32 px. « stock » donne la valeur du jeu d’origine quand le réglage en remplace une.
Couverture (HS2_MOD_COVER)
Clé
Rôle
Plage
Valeur AF
cover_trees_moderate
Forêt : arbres intacts sur la case de l’unité et les 8 voisines. Forêt moyenne à partir de ce nombre (1 ou 2 : végétation isolée). Au plus cover_trees_dense.
1..9
3
cover_trees_dense
Forêt dense à partir de ce nombre d’arbres.
1..9
8
cover_small_radius
Décor debout : rayon de collision (px) sous lequel il ne couvre pas. Au plus cover_massive_radius.
0..255
8
cover_massive_radius
Rayon (px) sous lequel un décor debout est étroit, au-dessus massif.
0..255
16
cover_massive_width
Largeur mineure (px) de l’empreinte bloquée sous laquelle un décor est étroit.
16..224
32
cover_reach
Distance (px) de l’unité à un décor (debout, couché, falaise) qui la couvre.
0..32
32
cover_wall_reach
Distance (px) à un quart d’empreinte bloquée d’une maison qui couvre.
0..31
16
cover_vehicle_reach
Distance (px) au-delà du rayon d’un véhicule (ou d’une épave) qui couvre.
0..32
16
cover_reach_cells
Mise à couvert : cases où chercher toute couverture (stock 3). Au plus cover_forest_reach_cells.
1..8
3
cover_forest_reach_cells
Mise à couvert : cases où chercher une forêt moyenne ou dense.
1..8
5
cover_enough_percent
Mise à couvert : % de silhouette réduite (fantassin debout) dès lequel toute couverture se vaut et la plus proche gagne (100 : toujours la meilleure).
1..100
50
cover_danger_reach
Mise à couvert : distance (px) à un danger (citerne, munitions…) sans destination.
0..160
64
cover_burst_shots
Un effet est un danger s’il crée au moins ce nombre de tirs qui blessent.
1..64
2
cover_fragile_armor
Une maison est un danger jusqu’à cette armure EXPLOSIVE.
0..255
2
cover_score_per_mille
Protection affichée (P) : (dégâts + silhouette réduits, en %) x cette valeur / 100, plafond 1000.
0..1000
709
cover_cursor_strong
Curseur de déplacement : bouclier plein à partir de cet ancien P sur 100.
1..100
49
Équipages des véhicules détruits (HS2_MOD_CREW)
Clé
Rôle
Plage
Valeur AF
crew_novice_percent
Chance (%) qu’un membre d’équipage sorte, blessé, à l’expérience 0.
0..100
25
crew_veteran_percent
Chance (%) à l’expérience maximale ; linéaire entre les deux.
0..100
30
crew_wound_percent
Blessure la plus forte (% de la santé du type), tirée uniformément depuis 0.
0..100
90
Passagers des véhicules détruits (HS2_MOD_PASSENGERS)
Clé
Rôle
Plage
Valeur AF
passenger_novice_percent
Chance (%) qu’un passager sorte, blessé comme un équipage, à l’expérience 0.
0..100
25
passenger_veteran_percent
Chance (%) à l’expérience maximale ; linéaire entre les deux.
0..100
30
Marche arrière (HS2_MOD_REVERSE_MOVE)
Clé
Rôle
Plage
Valeur AF
reverse_range_cells
Distance (cases) de la destination la plus lointaine en marche arrière (stock 4).
1..126
12
reverse_angle
Marche arrière quand le pas suivant s’écarte plus de la caisse (1/32 de tour ; stock au hasard 8..15 ; 16 : jamais).
0..16
11
Canons poussés (HS2_MOD_GUN_REVERSE)
Clé
Rôle
Plage
Valeur AF
gun_push_percent
Vitesse (%) d’un canon poussé canon devant (affût devant : 100) : canons, DCA, obusiers, roquettes.
10..100
70
gun_push_light_percent
Idem pour les mitrailleuses (hmg) et les mortiers (boxer, hmortar).
10..100
100
Mouvement des véhicules (HS2_MOD_VEHICLE_MOTION)
Clé
Rôle
Plage
Valeur AF
vehicle_start_percent
Vitesse (%) au départ, après un arrêt ou un pivot (stock 100 : pas de rampe).
10..100
25
vehicle_accel_turns
Tours pour passer de la vitesse de départ à la pleine vitesse.
1..250
6
vehicle_brake_turns
Tours pour revenir de la pleine vitesse à la vitesse de départ au freinage.
1..250
2
vehicle_brake_px
Distance (px) avant la fin du chemin où le freinage commence (0 : pas de freinage).
0..64
8
vehicle_roll_bins
Un virage plus petit (1/32 de tour) se fait en roulant, un plus grand sur place (stock 0).
0..8
2
vehicle_turn_percent_1
Vitesse (%) à 1/32 de tour du cap.
10..100
80
vehicle_turn_percent_2
Vitesse (%) à 2/32 de tour ou plus (jusqu’à vehicle_roll_bins).
10..100
60
Parachutages (HS2_MOD_PARADROP_SPREAD)
Clé
Rôle
Plage
Valeur AF
paradrop_scatter
Dispersion (px) sur chaque axe autour de l’avion (stock 32). Une puissance de 2.
2..128
64
paradrop_extra_ticks
Tops ajoutés au reloadtime entre deux sauts réussis.
0..25
3
Équipages des chars (HS2_MOD_CREW_CYCLE)
Chars : tank, tank2, samo, apc, mzenit.
Clé
Rôle
Plage
Valeur AF
crew_exit_turns
Tours entre deux occupants qui quittent un char (stock 0 ; 0 : arrêt).
0..250
0
crew_attack_crew
Équipage qu’il faut à un char pour tirer en roulant, ouvrir la trappe ou prendre les jumelles, quel que soit l’attackcrew de la fiche. Moins : tir à l’arrêt seulement (1 : arrêt).
1..10
2
crew_switch_turns
Tours d’un équipage réduit pour passer du poste de pilote au canon, et inversement (stock 0).
0..250
50
crew_missing_percent
Temps de rechargement et de recherche de cible : % ajouté par membre manquant (stock 0).
0..100
25
crew_max_percent
Le plus que cela atteint, en % des temps d’un équipage complet.
100..1000
200
crew_lone_percent
Temps d’un membre seul, en % de ceux d’un équipage complet.
100..1000
200
crew_shot_wait_first_percent
Attente de la tourelle après un tir du canon (gunshotwait), % de la fiche, avec un membre manquant.
100..1000
400
crew_shot_wait_step_percent
% ajouté par membre manquant en plus.
0..1000
200
crew_shot_wait_max_percent
Le plus que cela atteint (l’attente s’arrête à 254 tours). Au moins crew_shot_wait_first_percent.
100..2500
1000
Infirmiers (HS2_MOD_MEDIC_PACE)
Clé
Rôle
Plage
Valeur AF
medic_container_factor
Fois moins de soins d’un infirmier dans une maison ou un véhicule (stock 1).
1..64
3
Dégâts en solo (HS2_MOD_SOLO_DAMAGE)
Dégâts (% après armure) que prennent les unités du joueur en solo, par niveau. Les dégâts infligés restent ceux du multijoueur.
Clé
Rôle
Plage
Valeur AF
solo_taken_0
TRÈS FACILE (stock 50, équipages 25, et dégâts infligés x2 avant et après armure).
0..400
50
solo_taken_1
FACILE (stock comme TRÈS FACILE).
0..400
75
solo_taken_2
MOYEN, la formule du multijoueur (stock 100).
0..400
100
solo_taken_3
NORMAL (stock 200, équipages environ 400).
0..400
200
Ricochets (HS2_MOD_RICOCHET)
Les chances et la formule de calibre restent dans misc\misc (shot_ricochet, shot_calibre).
Clé
Rôle
Plage
Valeur AF
ricochet_bounce_near
Vol le plus court (px) après le rebond. Au plus ricochet_bounce_far.
32..1024
160
ricochet_bounce_far
Vol le plus long (px) après le rebond.
32..1024
640
ricochet_bounce_min_degrees
Déviation (degrés) depuis la ligne d’arrivée, à gauche ou à droite. Au plus ricochet_bounce_max_degrees.
0..90
15
ricochet_bounce_max_degrees
Déviation la plus grande (degrés).
0..90
45
ricochet_bounce_speed_percent
Vitesse (%) de l’obus après le rebond.
10..200
85
Équipages des avions abattus (HS2_MOD_AIRCREW)
Clé
Rôle
Plage
Valeur AF
aircrew_novice_percent
Chance (%) qu’un membre d’équipage saute en parachute, blessé, à l’expérience 0.
0..100
20
aircrew_veteran_percent
Chance (%) à l’expérience maximale ; linéaire entre les deux.
0..100
40
aircrew_corner_range
Tous les 64 tours, un aviateur posé avec un ennemi à cette distance (px) et sans ami peut se rendre.
0..320
192
aircrew_surrender_brave_percent
Chance (%) de se rendre au moral maximal.
0..100
10
aircrew_surrender_broken_percent
Chance (%) au moral le plus bas ; linéaire entre les deux.