feat(animation): 아레나 전투 애니메이션 지원
- CanvasBattleComposer: 아레나 모드 지원 추가 - AsciiAnimationCard: 아레나 전투 애니메이션 렌더링
This commit is contained in:
@@ -50,6 +50,8 @@ class AsciiAnimationCard extends StatefulWidget {
|
||||
this.latestCombatEvent,
|
||||
this.raceId,
|
||||
this.weaponRarity,
|
||||
this.opponentRaceId,
|
||||
this.opponentHasShield = false,
|
||||
});
|
||||
|
||||
final TaskType taskType;
|
||||
@@ -89,6 +91,12 @@ class AsciiAnimationCard extends StatefulWidget {
|
||||
/// 무기 희귀도 (Phase 9: 무기 등급별 이펙트 색상)
|
||||
final ItemRarity? weaponRarity;
|
||||
|
||||
/// 상대 종족 ID (PvP 모드: 설정 시 몬스터 대신 캐릭터 표시)
|
||||
final String? opponentRaceId;
|
||||
|
||||
/// 상대 방패 장착 여부 (PvP 모드)
|
||||
final bool opponentHasShield;
|
||||
|
||||
@override
|
||||
State<AsciiAnimationCard> createState() => _AsciiAnimationCardState();
|
||||
}
|
||||
@@ -208,7 +216,9 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
oldWidget.shieldName != widget.shieldName ||
|
||||
oldWidget.monsterLevel != widget.monsterLevel ||
|
||||
oldWidget.raceId != widget.raceId ||
|
||||
oldWidget.weaponRarity != widget.weaponRarity) {
|
||||
oldWidget.weaponRarity != widget.weaponRarity ||
|
||||
oldWidget.opponentRaceId != widget.opponentRaceId ||
|
||||
oldWidget.opponentHasShield != widget.opponentHasShield) {
|
||||
_updateAnimation();
|
||||
}
|
||||
}
|
||||
@@ -445,6 +455,8 @@ class _AsciiAnimationCardState extends State<AsciiAnimationCard> {
|
||||
monsterSize: monsterSize,
|
||||
raceId: widget.raceId,
|
||||
weaponRarity: widget.weaponRarity,
|
||||
opponentRaceId: widget.opponentRaceId,
|
||||
opponentHasShield: widget.opponentHasShield,
|
||||
);
|
||||
|
||||
// 환경 타입 추론
|
||||
|
||||
Reference in New Issue
Block a user