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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user