feat(game): 포션 시스템 및 UI 패널 추가

- 포션 시스템 구현 (PotionService, Potion 모델)
- 포션 인벤토리 패널 위젯
- 활성 버프 패널 위젯
- 장비 스탯 패널 위젯
- 스킬 시스템 확장
- 일본어 번역 추가
- 전투 이벤트/상태 모델 개선
This commit is contained in:
JiWoong Sul
2025-12-21 23:53:27 +09:00
parent eb71d2a199
commit 7cd8be88df
25 changed files with 5174 additions and 261 deletions

View File

@@ -26,6 +26,15 @@ enum CombatEventType {
/// 플레이어 버프
playerBuff,
/// DOT 틱 데미지
dotTick,
/// 물약 사용
playerPotion,
/// 물약 드랍
potionDrop,
}
/// 전투 이벤트 (Combat Event)
@@ -188,4 +197,51 @@ class CombatEvent {
skillName: skillName,
);
}
/// DOT 틱 이벤트 생성
factory CombatEvent.dotTick({
required int timestamp,
required String skillName,
required int damage,
required String targetName,
}) {
return CombatEvent(
type: CombatEventType.dotTick,
timestamp: timestamp,
skillName: skillName,
damage: damage,
targetName: targetName,
);
}
/// 물약 사용 이벤트 생성
factory CombatEvent.playerPotion({
required int timestamp,
required String potionName,
required int healAmount,
required bool isHp,
}) {
return CombatEvent(
type: CombatEventType.playerPotion,
timestamp: timestamp,
skillName: potionName,
healAmount: healAmount,
// isHp를 구분하기 위해 targetName 사용 (HP/MP)
targetName: isHp ? 'HP' : 'MP',
);
}
/// 물약 드랍 이벤트 생성
factory CombatEvent.potionDrop({
required int timestamp,
required String potionName,
required bool isHp,
}) {
return CombatEvent(
type: CombatEventType.potionDrop,
timestamp: timestamp,
skillName: potionName,
targetName: isHp ? 'HP' : 'MP',
);
}
}