"""Close a visibly won warmup at HUD disappearance, without advancing story.""" import argparse,json,re,subprocess,sys from pathlib import Path from play import ROOT,snap,act from hypno_turn import name_matches p=argparse.ArgumentParser();p.add_argument('journal',type=Path);p.add_argument('session',type=int);a=p.parse_args() j=json.loads(a.journal.read_text());w=j['warmup'];assert w['session']==a.session and 'result' not in w m=json.loads((ROOT/'work/active-trainer-music.json').read_text());assert m['class']=='NWOrderly' and m['name']=='Howaya & Christina' rows=[json.loads(l) for l in (ROOT/'recordings/screens.jsonl').read_text().splitlines()] wins=[s for s in rows if s['epoch']>=w['battle_start_epoch'] and re.search(r'de.?feated|for winning',' '.join(s['text']),re.I)] assert wins,'Actual recorded warmup victory required; no input sent' names=[x.get('name') or x['species'] for x in j['before']['party']] def own_hud(rows): text=' '.join(s['text'] for s in rows if s['x']>.5 and .35