A high-octane super fast real Slay the Spire 2 deck damage simulator
gaming

Fix Run Sim crashes on real-deck cards (Armaments, Offering, et al.) master

Two issues surfaced when running against a live mid-act Ironclad deck: 1. Armaments threw NRE because CardSelectCmd had no selector registered. The game's BlockingPlayerChoiceContext doesn't include one — that's the UI's job. Added AutoCardSelector (always picks the first option) and registered it during Harness.Bootstrap via CardSelectCmd.UseSelector. 2. Offering -> CardPileCmd.Draw -> ShuffleIfNecessary -> Shuffle reached `((SceneTree)Engine.GetMainLoop()).Root.GetProcessDeltaTime()` for inter-card animation pacing, fatal-crashing the process. Replaced Shuffle with a sync Fisher-Yates using player.RunState.Rng.Shuffle. Also added stack trace to the WS "error" event so future crashes are diagnosable from the UI without server console access. Verified end-to-end: 23-card live deck, 30 seeds × 10 K = 300 runs in ~2s, avgOfBest 152.9 ± 11.5 (30.6/turn). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>