The DiceRoll.roll() method was counting successes from `this.result` (the stale/empty list from before rolling) instead of the newly rolled values. Fixed by capturing the new roll in a local variable before passing it to copy(). Added 6 unit tests covering the fix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>