gamer147
dc19289818
fix(tk2): honor consume_item_type (ticket/crystal/rupy/free) + correct entry ticket id
...
- ArenaTwoPickConfig: add TicketItemId=1, TicketCost=1, CrystalCost=150, RupyCost=150 scalars
- ArenaTwoPickService.EntryAsync: switch on eARENA_PAY (1/3/4/5); crystal/rupy go through
ICurrencySpendService.TrySpendAsync; ticket uses item id 1 (challenge ticket, not 80001);
free entry returns empty reward_list; invalid type throws
- Tests: fix ticket id 80001→1 in entry/e2e; add 4 new path tests; update ctor (10th arg)
across all 4 service test files; fix e2e retire assertion (reward ticket 80001 post-state=1)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-31 12:26:57 -04:00
gamer147
98fb3c5fcd
fix(svc): default MaxBattleCount=7 with warn-log on empty reward catalog
2026-05-31 11:41:57 -04:00
gamer147
e245d5b158
feat(svc): Retire + Finish + RecordBattleResult
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-31 11:10:41 -04:00
gamer147
cc40e2d2e8
feat(svc): ChooseClassAsync + ChooseCardAsync (draft state machine)
...
Implements the class-selection and card-pick turns for the Take Two arena draft:
- ChooseClassAsync validates class is offered, locks ClassId, generates first pick set via pool
- ChooseCardAsync appends the two picked cards, advances SelectTurn 1–15, completes draft at turn 15
- 6 new tests covering happy paths and all error codes (class_not_offered, invalid_state, invalid_selection)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-31 11:03:50 -04:00
gamer147
d550f66481
feat(svc): EntryAsync (ticket debit + run insert + candidate classes)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-31 10:59:05 -04:00
gamer147
ba49852c42
feat(svc): IArenaTwoPickService + response DTOs + GetTopAsync
...
6 response DTOs, IArenaTwoPickService interface + ArenaTwoPickException,
ArenaTwoPickService skeleton with GetTopAsync implemented and stubs for
Tasks 13-15. 3 NUnit tests for GetTopAsync all pass. DI: AddScoped.
2026-05-31 10:51:41 -04:00