#!/usr/bin/env bash # #52/#130 SKATE PROVOCATION -- transition-heavy 2-node run under the new # ungated [skate] detector. A walks CONTINUOUSLY (autodrive) and gets killed # every ~40s by B (force-dmg) -> respawn-while-moving cycles, the field's # suspected trigger (skating clustered in the deaths-heavy final drop). # B is the OBSERVER: its log carries [skate] lines for A's replicant. # Negative control: sustained clean walking between kills must NOT trip it. 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 sk_a.log sk_b.log bt_expert_egg MP.EGG SK.EGG sed -i "s/^map=.*/map=grass/; s/^time=.*/time=day/; s/^vehicle=.*/vehicle=madcat/" SK.EGG # B = observer + killer (back window) BT_MP_FORCE_DMG=1 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \ bt_launch sk_b.log SK.EGG 0x0C -net 1601 sleep 2 # A = walking victim: autodrive persists across respawns BT_AUTODRIVE=0.8 BT_DEATH_LOG=1 BT_MP_LOG=1 BT_MATCHLOG=1 \ bt_launch sk_a.log SK.EGG 0x03 -net 1501 sleep 5 python ../tools/btconsole.py SK.EGG 127.0.0.1:1501 127.0.0.1:1601 > sk_relay.log 2>&1 & RELAY=$! sleep 260 kill $RELAY 2>/dev/null taskkill //F //IM btl4.exe > /dev/null 2>&1 sleep 3 echo "=== deaths/respawns on A:" grep -cE "death cycle START" sk_a.log echo "=== SKATE hits on B (A's replicant):" grep -a "\[skate\]" sk_b.log | head -12 echo "=== SKATE hits on A (B's replicant -- should be none, B stands still):" grep -ac "\[skate\]" sk_a.log