BurningTimesAi/공유/기획/FirstRising/몬스터보스/tools/unity_eval/verify.sh

47 lines
1.7 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
# 보스 자동 검증 — 보스·페이즈마다 일정 시간 싸우게 두고(플레이어 무적 끔 · 가만히 서 있음) 스킬별 시전·명중을 요약한다.
# 사용: verify.sh "<코드:페이즈수:초> ..." 예) verify.sh "R1:4:75 C5:1:60"
# Play 는 이미 켜져 있어야 한다(감시자도 이 스크립트가 붙인다). 끝나면 보스전에서 나온다(Play 종료는 부르는 쪽이 한다).
source "C:/Users/sw/AppData/Local/Temp/claude/E--BurningTimes/3562a2c1-e88a-4143-b7ec-e74c317778d8/scratchpad/bt.sh"
OUT="$SP/verify"
mkdir -p "$OUT"
NAMES="$P/Assets/DataTables/MonsterSkillTable_BT.json"
now_t() {
ev probe 2>/dev/null | head -1 | grep -o " t=[0-9.]*" | cut -d= -f2
}
ev monitor_install >/dev/null
PILOT="${PILOT:-still}"
TAG="${TAG:-}"
for item in $1; do
code=$(echo "$item" | cut -d: -f1)
phases=$(echo "$item" | cut -d: -f2)
secs=$(echo "$item" | cut -d: -f3)
for ((p = 0; p < phases; p++)); do
ev arena tier 1 >/dev/null
ev arena enter "$code" >/dev/null
sleep 2
if [ "$p" -gt 0 ]; then
ev arena phase "$p" >/dev/null
sleep 3
fi
ev arena inv off >/dev/null
ev pilot_install $PILOT >/dev/null
start=$(now_t)
echo "[$(date +%H:%M:%S)] $code P$((p + 1)) 시작 t=$start (${secs}초)"
sleep "$secs"
{
echo "=== $code P$((p + 1)) · ${secs}초 · 시작 t=$start · 조종 $PILOT ==="
ev probe | sed -n '2p;4p;7p;8p'
python "$SP/summarize.py" "$SP/monitor.log" "$NAMES" 5 "$start" "$P/Assets/BurningTimes/Boss/Data/BossConfig.json"
errs
} > "$OUT/${code}_P$((p + 1))$TAG.txt" 2>&1
done
done
ev pilot_install off >/dev/null
ev arena inv on >/dev/null
ev arena tier 1 >/dev/null
ev arena exit >/dev/null
echo "[$(date +%H:%M:%S)] 검증 끝"