fix(ModularBot): ram loop prevention, dead-target guards, cleaner logging

- 30-tick cooldown after ghost-stuck/timeout ram exit prevents re-entry loop
- enemy_tracker.update() skips dead bots to prevent same-tick scan resurrection
- TFIL graphics cleared when ramming is active movement
- [config] logs: white base with green-highlighted changes only
- [ram:enter] logs trigger reason and key values on false→true transition
- [death] and [target-invalid] logs retained for diagnostics
This commit is contained in:
2026-09-20 20:44:45 +02:00
parent 1f8574db1d
commit 2cc2a3bd87
30 changed files with 927 additions and 161 deletions
+6 -5
View File
@@ -6,11 +6,12 @@ import std/math
import gun_harness/gun_interface
type CircularGun* = object
prevHeading: float ## enemy heading from the tick before current
prevTick: int ## tick of prevHeading observation
hasPrev: bool
cachedOmega: float ## omega (rad/tick) computed on first call this tick
cachedTick: int ## tick for which cachedOmega was computed
prevHeading: float ## enemy heading from the tick before current
prevTick: int ## tick of prevHeading observation
hasPrev: bool
cachedOmega: float ## omega (rad/tick) computed on first call this tick
cachedTick: int ## tick for which cachedOmega was computed
debugGraphics*: bool
proc predict*(g: var CircularGun, state: WorldState, bulletSpeed: float): GunPrediction =
if bulletSpeed <= 0.0: