#!/usr/bin/env bash # #52 SKATE PROVOCATION 3 -- the LEG-GIMP transition family (#82 history: # where replicant legs break). A walks on autodrive; B CHASES (goto stop 60) # and servo-shoots A's SIX LEG ZONES (zone-walk, leg filter) until the gimp # engages -- master gait swaps normal->gimp (and back on respawn), the # transitions the light bench never exercised. [skate] watches on both; # BT_GIMPFEED on B prints the replicant's gimp level + demand 1 Hz. # NOVICE egg: crits off -- sustained leg-zone damage without subsystem kills. set -x . /c/git/bt411/scratchpad/night6/bench_common.sh cd /c/git/bt411/content || exit 1 taskkill //F //IM btl4.exe > /dev/null 2>&1 sleep 2 rm -f sg_a.log sg_b.log bt_novice_egg MP.EGG SG.EGG sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SG.EGG # A = wandering victim (walks, gets leg-shot, gimps, keeps walking) BT_AUTODRIVE=0.6 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \ bt_launch sg_a.log SG.EGG 0x0C -net 1601 sleep 2 # B = chasing leg-shooter + observer of A's replicant BT_GOTO=enemy BT_GOTO_STOP=60 BT_ZONE_WALK=5 BT_WALK_ZONES="uleg,dleg,foot" \ BT_GIMPFEED=1 BT_PICK_LOG=1 BT_KEY_NOFOCUS=1 \ BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \ bt_launch sg_b.log SG.EGG 0x03 -net 1501 sleep 5 python ../tools/btconsole.py SG.EGG 127.0.0.1:1501 127.0.0.1:1601 > sg_relay.log 2>&1 & RELAY=$! sleep 360 kill $RELAY 2>/dev/null taskkill //F //IM btl4.exe > /dev/null 2>&1 sleep 3 echo "=== A leg damage (its own master view):" grep -a "dmghit" sg_a.log | grep -coE "zone=(2|3|7|9|10|18)" ; true echo "=== A gimp state changes:" grep -aiE "gimp" sg_a.log | grep -va gimpfeed | head -8 echo "=== B replicant gimp feed (last 6):" grep -a "replgimp" sg_b.log | tail -6 echo "=== SKATE hits (B watching A):" grep -a "\[skate\]" sg_b.log | head -10 echo "=== SKATE count A-side:" grep -ac "\[skate\]" sg_a.log