fix(tk2): match original SV (5-battle cap, no loss limit)
User clarified: the 0..7 win reward tiers came from Shadowverse Worlds Beyond (sequel), not the original game we're emulating. Original SV's Take Two caps at 5 total battles played and has no loss limit (verified on prod: queueing continues with 2+ losses). - arena-two-pick-rewards.json: drop 6w + 7w tiers (12 rows remain). - ArenaTwoPickConfig: remove MaxLosses property. - ArenaTwoPickService: termination is now battlesPlayed >= maxBattles (5 from MAX(reward.WinCount)). RecordBattleResult no longer flips IsSelectCompleted on the 2nd loss. - ResolveMaxBattleCountAsync empty-catalog default 7 → 5. - Tests updated for the new counts (16 → 12 rows, max 7 → 5). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -87,7 +87,7 @@ public class ArenaTwoPickServiceEntryTests
|
||||
var dto = await svc.EntryAsync(viewerId, consumeItemType: 3);
|
||||
|
||||
Assert.That(dto.EntryInfo.Id, Is.GreaterThan(0));
|
||||
Assert.That(dto.EntryInfo.MaxBattleCount, Is.EqualTo(7));
|
||||
Assert.That(dto.EntryInfo.MaxBattleCount, Is.EqualTo(5));
|
||||
Assert.That(dto.CandidateClassIds.Count, Is.EqualTo(3));
|
||||
Assert.That(dto.RewardList.Count, Is.EqualTo(1));
|
||||
Assert.That(dto.RewardList[0].RewardType, Is.EqualTo(4));
|
||||
@@ -96,7 +96,7 @@ public class ArenaTwoPickServiceEntryTests
|
||||
|
||||
var run = await db.ViewerArenaTwoPickRuns.FirstAsync(r => r.ViewerId == viewerId);
|
||||
Assert.That(run.ClassId, Is.EqualTo(0));
|
||||
Assert.That(run.MaxBattleCount, Is.EqualTo(7));
|
||||
Assert.That(run.MaxBattleCount, Is.EqualTo(5));
|
||||
|
||||
// Re-read viewer to verify ticket was debited.
|
||||
var updated = await db.Viewers.Include(v => v.Items).ThenInclude(i => i.Item).FirstAsync(v => v.Id == viewerId);
|
||||
|
||||
Reference in New Issue
Block a user