update
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
4. **반응형 레이아웃 (Responsive UI):**
|
||||
- `ResponsiveContainer` 위젯을 통해 최대 너비(600px) 및 높이(1000px) 제한.
|
||||
- 웹/태블릿 환경에서도 모바일 앱처럼 중앙 정렬된 화면 제공.
|
||||
- **Battle UI Layout:** 플레이어(좌측 하단) vs 적(우측 상단) 대각선 구도 배치 및 캐릭터 임시 아이콘 적용.
|
||||
|
||||
### B. 전투 시스템 (`BattleProvider`)
|
||||
|
||||
@@ -28,8 +29,11 @@
|
||||
- **적 인공지능 (Enemy AI & Intent):**
|
||||
- **Intent UI:** 적의 다음 행동(공격/방어, 리스크)을 미리 표시.
|
||||
- **선제 방어 (Pre-emptive Defense):** 적이 방어를 선택하면 턴 시작 전에 즉시 방어도가 적용됨.
|
||||
- **Defense Restriction:** `DefenseForbidden` 상태 시 방어 행동 선택 불가.
|
||||
- **Variance Removed:** 적의 공격/방어 수치 계산 시 랜덤 분산(Variance) 제거 (고정 수치).
|
||||
- **시각 효과 (Visual Effects):**
|
||||
- **Floating Text:** 데미지 발생 시 캐릭터 위에 데미지 수치가 떠오름 (일반: 빨강, 출혈: 보라, 취약: 주황).
|
||||
- **Action Feedback:** 공격 빗나감(MISS - 적 위치/회색) 및 방어 실패(FAILED - 내 위치/빨강) 텍스트 오버레이.
|
||||
- **Effect Icons:** 공격/방어 및 리스크 레벨에 따른 아이콘 애니메이션 출력.
|
||||
- **상태이상:** `Stun`, `Bleed`, `Vulnerable`, `DefenseForbidden`.
|
||||
|
||||
@@ -83,6 +87,13 @@
|
||||
|
||||
## 6. 장기 목표 (Future Roadmap / TODO)
|
||||
|
||||
- [ ] **출혈 상태 이상 조건 변경:** 공격 시 상대방의 방어도에 의해 공격이 완전히 막힐 경우, 출혈 상태 이상이 적용되지 않도록 로직 변경.
|
||||
- [ ] **장비 분해 시스템 (적 장비):** 플레이어 장비의 옵션으로 상대방의 장비를 분해하여 '언암드' 상태로 만들 수 있는 시스템 구현.
|
||||
- [ ] **플레이어 공격 데미지 분산(Variance) 적용 여부 검토:** 현재 적에게만 적용된 +/- 20% 데미지 분산을 플레이어에게도 적용할지 결정.
|
||||
- [ ] **애니메이션 및 타격감 고도화:**
|
||||
- 캐릭터별 이미지 추가 및 하스스톤 스타일의 공격 모션(대상에게 돌진 후 타격) 구현.
|
||||
- **Risky 공격:** 하스스톤의 7데미지 이상 타격감(화면 흔들림, 강렬한 파티클 및 임팩트) 재현.
|
||||
- [ ] **체력 조건부 특수 능력:** 캐릭터의 체력이 30% 미만일 때 발동 가능한 특수 능력 시스템 구현.
|
||||
- [ ] **Google OAuth 로그인 및 계정 연동:**
|
||||
- Firebase Auth 등을 활용한 구글 로그인 구현.
|
||||
- Firestore 또는 Realtime Database에 유저 계정 정보(진행 상황, 재화 등) 저장 및 불러오기 기능 추가.
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
# 33. 32번 프롬프트 이후 작업 요약 (Summary of work after prompt 32)
|
||||
|
||||
이 프롬프트는 32번 프롬프트 이후 진행된 주요 작업 내용을 요약하여 기록합니다.
|
||||
|
||||
## 1. 행동 실패 시 이펙트 추가 (Visual Effects for Failed Actions)
|
||||
|
||||
- **`lib/game/enums.dart`:** `BattleFeedbackType` enum에 `miss`와 `failed` (방어 실패)를 추가했습니다.
|
||||
- **`lib/game/model/effect_event.dart`:** `EffectEvent` 클래스에 `feedbackType` 필드를 추가하여 전투 피드백 타입을 전달할 수 있도록 했습니다.
|
||||
- **`lib/screens/battle_screen.dart`:**
|
||||
- `_FloatingFeedbackText` 위젯과 관련 데이터 클래스 (`_FeedbackTextData`)를 새로 추가하여 "MISS" 또는 "FAILED" 텍스트를 화면에 오버레이로 표시하도록 했습니다.
|
||||
- `_addFloatingEffect` 함수를 수정하여 `feedbackType`이 존재할 경우 해당 텍스트 이펙트를 발생시키고, 기존의 아이콘 이펙트는 건너뛰도록 처리했습니다.
|
||||
- **`lib/providers/battle_provider.dart`:**
|
||||
- `playerAction` 함수에서 플레이어의 공격 실패 시 `BattleFeedbackType.miss` 이벤트를 적 위치에, 방어 실패 시 `BattleFeedbackType.failed` 이벤트를 플레이어 위치에 발생시키도록 로직을 추가했습니다.
|
||||
- `_enemyTurn` 함수에서 적의 공격 실패 시 `BattleFeedbackType.miss` 이벤트를 플레이어 위치에 발생시키도록 수정했습니다.
|
||||
- 모든 `EffectEvent` 생성자 호출에 `feedbackType: null` 인자를 추가하여 생성자 변경 사항을 반영했습니다.
|
||||
|
||||
## 2. 적 `DefenseForbidden` 상태 로직 수정 (Enemy DefenseForbidden Logic)
|
||||
|
||||
- **`lib/providers/battle_provider.dart`:** `_generateEnemyIntent` 함수에서 적이 `StatusEffectType.defenseForbidden` 상태일 때 방어 행동을 의도하지 않도록 `canDefend` 플래그를 수정했습니다.
|
||||
|
||||
## 3. 배틀 스크린 UI 개선 (캐릭터 배치 및 임시 아이콘) (Battle Screen UI Improvement)
|
||||
|
||||
- **`lib/screens/battle_screen.dart`:**
|
||||
- `_buildCharacterStatus` 위젯 내에 플레이어와 적 캐릭터를 위한 임시 아이콘(Container+Icon)을 추가했습니다.
|
||||
- 플레이어는 좌측 하단, 적은 우측 상단으로 배치되도록 배틀 영역의 레이아웃 (`Expanded` 내 `Row` -> `Column` 내 `Expanded` + `Align`)을 수정하여 포켓몬 배틀과 유사한 대각선 구도를 구현했습니다.
|
||||
|
||||
## 4. TODO 목록 업데이트 (TODO List Updates)
|
||||
|
||||
- **`d:\project\project_flutter\game\prompt\00_project_context_restore.md`:**
|
||||
- 새로운 TODO 항목을 추가했습니다:
|
||||
- `[ ] **출혈 상태 이상 조건 변경:** 공격 시 상대방의 방어도에 의해 공격이 완전히 막힐 경우, 출혈 상태 이상이 적용되지 않도록 로직 변경.`
|
||||
- `[ ] **플레이어 공격 데미지 분산(Variance) 적용 여부 검토:** 현재 적에게만 적용된 +/- 20% 데미지 분산을 플레이어에게도 적용할지 결정.`
|
||||
- `장비 분해 시스템` TODO의 내용을 "플레이어 장비의 옵션으로 상대방의 장비를 분해하여 '언암드' 상태로 만들 수 있는 시스템 구현"으로 수정했습니다.
|
||||
|
||||
## 5. 적 공격 계산식에서 분산(Variance) 제거 (Enemy Attack Variance Removal)
|
||||
|
||||
- **`lib/providers/battle_provider.dart`:** `_generateEnemyIntent` 함수에서 적의 공격 및 방어 수치 계산 시 사용되던 분산(variance) 로직(`double variance = 0.8 + random.nextDouble() * 0.4;`)을 제거하여, 적의 행동 수치가 기본 스탯과 리스크 효율(Efficiency)에 의해서만 결정되도록 수정했습니다.
|
||||
Reference in New Issue
Block a user