refactor(movement): extract ram to harness — phantom meteor dodge-only, rammer module via harness decision

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-20 12:36:09 +02:00
parent ae9a5fec6d
commit c90874affd
2 changed files with 29 additions and 18 deletions
-16
View File
@@ -218,22 +218,6 @@ proc computeMove*(m: var PhantomMeteorModule, ws: WorldState): MoveCommand =
else:
enemyVecs.add enemyPos
# ── Ram override ─────────────────────────────────────────────────────────────
let ramDist = dist(botPos, enemyPos)
let ramFinisher = ramDist < 300.0 and ws.enemyEnergy < 20.0 and ws.selfEnergy > ws.enemyEnergy
let ramOpportunity = ramDist < 80.0 and ws.selfEnergy > ws.enemyEnergy + 10.0
let ramDesperation = ws.selfEnergy < 5.0 and ws.enemyEnergy < 5.0 and ramDist < 150.0
if ramFinisher or ramOpportunity or ramDesperation:
let tag = if ramDesperation: "desperation" elif ramFinisher: "finisher" else: "opportunity"
echo CLR_CYAN & "[ram:" & tag & "] dist=" & $int(ramDist) &
" selfE=" & $int(ws.selfEnergy) & " enemyE=" & $int(ws.enemyEnergy) & CLR_RST
let headingRad = arctan2(enemyPos.y - botPos.y, enemyPos.x - botPos.x)
let desiredDeg = radToDeg(headingRad)
var delta = desiredDeg - ws.selfHeading
while delta > 180.0: delta -= 360.0
while delta < -180.0: delta += 360.0
return (speed: 8.0, turnRate: delta.clamp(-10.0, 10.0))
# Advance simulation
m.engine.tickPhantoms()
m.engine.tickWaves(botPos)