j128 learned movement: state-conditional counted-SBC wave danger (TR_MOVEMENT=learned, default-off), offline gate + pre-registered panel arms
This commit is contained in:
@@ -37,6 +37,7 @@ import movements/the_floor_is_lava
|
||||
import movements/the_floor_is_lava_ring
|
||||
import movements/strafe
|
||||
import movements/wave_surfer
|
||||
import movements/learned_surfer
|
||||
import movement_harness/virtual_bodies as mvb
|
||||
import movement_harness/bullet_shadows
|
||||
import targeting/enemy_tracker
|
||||
@@ -211,6 +212,7 @@ type
|
||||
ringMover: TFILRingModule
|
||||
strafeMover: StrafeModule
|
||||
surfMover: WaveSurferModule
|
||||
learnedMover: LearnedSurferModule
|
||||
rammer: RammerModule
|
||||
isRamming: bool
|
||||
ramDurationTicks: int
|
||||
@@ -353,6 +355,8 @@ proc printConfig(bot: ModularBot, forceAll: bool = false) =
|
||||
if bot.isRamming: "tfil_ring(ram)" else: "tfil_ring"
|
||||
elif MovementName == "surf":
|
||||
if bot.isRamming: "surf(ram)" else: "surf"
|
||||
elif MovementName == "learned":
|
||||
if bot.isRamming: "learned(ram)" else: "learned"
|
||||
elif bot.isRamming: "rammer"
|
||||
else: "tfil"
|
||||
var line = "[config] "
|
||||
@@ -603,6 +607,7 @@ method onBulletHitWall*(bot: ModularBot, e: BulletHitWallEvent) =
|
||||
bot.ringMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.strafeMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.surfMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.learnedMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
|
||||
method onBulletHitBullet*(bot: ModularBot, e: BulletHitBulletEvent) =
|
||||
discard bot.resolveOwnBullet(e.bullet.bulletId) # bullet-vs-bullet: free the slot
|
||||
@@ -612,6 +617,7 @@ method onBulletHitBullet*(bot: ModularBot, e: BulletHitBulletEvent) =
|
||||
bot.ringMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.strafeMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.surfMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
bot.learnedMover.removeBulletNear(e.bullet.x, e.bullet.y)
|
||||
|
||||
method onHitByBullet*(bot: ModularBot, e: HitByBulletEvent) =
|
||||
# Feeds the ram bullet-rain abort window. Accumulate REAL ENERGY (the server's
|
||||
@@ -840,6 +846,7 @@ method onRoundStarted*(bot: ModularBot, e: RoundStartedEvent) =
|
||||
bot.ringMover.resetRound()
|
||||
bot.strafeMover.resetRound()
|
||||
bot.surfMover.resetRound()
|
||||
bot.learnedMover.resetRound()
|
||||
bot.enemyTracker.resetRound()
|
||||
# The TM pattern gun is cold every round (no cross-battle persistence): wipe
|
||||
# its clause teams and motion history explicitly, so a same-id opponent in the
|
||||
@@ -1120,6 +1127,8 @@ method run*(bot: ModularBot) =
|
||||
(spd, tr) = bot.strafeMover.computeMove(ws)
|
||||
elif MovementName == "surf" and not shouldRam:
|
||||
(spd, tr) = bot.surfMover.computeMove(ws)
|
||||
elif MovementName == "learned" and not shouldRam:
|
||||
(spd, tr) = bot.learnedMover.computeMove(ws)
|
||||
elif MovementName == "tfil_ring":
|
||||
bot.ringMover.band =
|
||||
if shouldRam: (lo: 0.0, hi: 50.0)
|
||||
@@ -1426,6 +1435,7 @@ when isMainModule:
|
||||
ringMover: TFILRingModule(debugGraphics: true),
|
||||
strafeMover: StrafeModule(debugGraphics: true),
|
||||
surfMover: initWaveSurfer(),
|
||||
learnedMover: initLearnedSurfer(),
|
||||
rammer: initRammer(),
|
||||
moveTracker: mvb.initVirtualBodyTracker(1),
|
||||
currentGun: -1,
|
||||
|
||||
Reference in New Issue
Block a user