feat(arena): 아레나 서비스 및 아이템 서비스 개선

- ArenaService 로직 확장
- ArenaMatch 모델 업데이트
- ItemService 아레나 지원 추가
This commit is contained in:
JiWoong Sul
2026-01-07 20:21:50 +09:00
parent c3a8bc305a
commit 699ae3b7f3
3 changed files with 132 additions and 15 deletions

View File

@@ -3,12 +3,13 @@ import 'package:asciineverdie/src/core/model/hall_of_fame.dart';
/// 아레나 대전 정보
///
/// 도전자와 상대의 정보, 베팅 슬롯을 포함
/// 도전자와 상대의 정보, 양방향 베팅 슬롯을 포함
class ArenaMatch {
const ArenaMatch({
required this.challenger,
required this.opponent,
required this.bettingSlot,
required this.challengerBettingSlot,
required this.opponentBettingSlot,
});
/// 도전자 (내 캐릭터)
@@ -17,14 +18,21 @@ class ArenaMatch {
/// 상대 캐릭터
final HallOfFameEntry opponent;
/// 베팅 슬롯 (같은 슬롯 교환)
final EquipmentSlot bettingSlot;
/// 도전자 베팅 슬롯 (승리 시 상대에게서 빼앗을 슬롯)
final EquipmentSlot challengerBettingSlot;
/// 상대 베팅 슬롯 (상대 승리 시 도전자에게서 빼앗을 슬롯)
final EquipmentSlot opponentBettingSlot;
/// 도전자 순위
int get challengerRank => 0; // ArenaService에서 계산
/// 상대 순위
int get opponentRank => 0; // ArenaService에서 계산
/// 기존 bettingSlot 호환용 (deprecated)
@Deprecated('Use challengerBettingSlot instead')
EquipmentSlot get bettingSlot => challengerBettingSlot;
}
/// 아레나 대전 결과