Introduces RunFinishOutcome — a semantic record that wraps the wire FinishResponseDto with the controller-side WasFullClear signal used to fire the challenge_full_clear mission event. The wire response isn't affected (controller unwraps the .Response field before returning to the client); RetireAsync stays returning FinishResponseDto because retire cannot full-clear. Full-clear detection compares run.WinCount against ResolveMaxBattleCountAsync rather than hard-coding 5, so a future TK2 rules-config change tracks automatically. New test covers the full-clear signal explicitly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
10 lines
493 B
C#
10 lines
493 B
C#
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.ArenaTwoPick;
|
|
|
|
/// <summary>
|
|
/// What <see cref="Services.IArenaTwoPickService.FinishAsync(long)"/> returns to
|
|
/// <c>ArenaTwoPickController.Finish</c>. The wire response is <see cref="Response"/>;
|
|
/// <see cref="WasFullClear"/> is a controller-side signal for the
|
|
/// <c>challenge_full_clear</c> mission emit and is never serialized.
|
|
/// </summary>
|
|
public sealed record RunFinishOutcome(FinishResponseDto Response, bool WasFullClear);
|