Commit Graph

125 Commits

Author SHA1 Message Date
JiWoong Sul
eb71d2a199 fix(ui): 몬스터 HP 바 공간 제약 대응
- 아이콘/이름 제거하고 HP 바 + 퍼센트만 표시
- 좁은 공간에서도 오버플로우 발생하지 않음
2025-12-21 11:54:06 +09:00
JiWoong Sul
4e7db1d58a fix(ui): HP/MP 바 숫자 영역 오버플로우 수정
- _buildBar Row의 HP/MP 숫자를 Flexible로 변경
- 좁은 화면에서도 오버플로우 방지
2025-12-21 10:54:39 +09:00
JiWoong Sul
c07f77a02f feat(canvas): Canvas 기반 ASCII 애니메이션 렌더러 구현
- JetBrains Mono 폰트 번들링 (Android/iOS 호환성)
- Paragraph 캐싱으로 GC 압박 최소화 (최대 256개 캐시)
- shouldRepaint layerVersion 기반 최적화
- willChange 동적 설정으로 메모리 절약
- 레이어 기반 합성 구조 (배경/캐릭터/몬스터/이펙트)
- hp_mp_bar 몬스터 HP 숫자 오버플로우 수정
2025-12-20 07:49:11 +09:00
JiWoong Sul
cf8fdaecde feat(ui): HP/MP 바 개선 및 전투 시스템 UI 업데이트
- HP/MP 변화 시 플래시 효과 및 변화량 표시 추가
- 전투 중 몬스터 HP 바 표시 기능 추가
- 몬스터 HP 바 Row 오버플로우 버그 수정 (Flexible 적용)
- 전투 상태 및 이벤트 모델 개선
- 캐릭터 애니메이션 및 전투 컴포저 업데이트
2025-12-18 18:10:22 +09:00
JiWoong Sul
45147da5ec fix(notification): Act 완료 토스트 메시지 인덱싱 버그 수정
- plotStageCount 인덱싱 오류 수정 (plotStageCount - 1 → -2)
- 프롤로그 완료 시 "PROLOGUE COMPLETE!" 표시되도록 수정
- showActComplete(0)이 프롤로그 완료를 올바르게 처리
2025-12-17 19:31:21 +09:00
JiWoong Sul
27e21bb064 fix(cinematic): 시네마틱/클리어 다이얼로그 표시 타이밍 수정
- 리스너 콜백 중 showDialog 호출로 인한 게임 멈춤 현상 수정
- addPostFrameCallback으로 다음 프레임에서 다이얼로그 표시
- 위젯 트리가 안정된 상태에서 showDialog 실행
2025-12-17 19:23:27 +09:00
JiWoong Sul
810bf6867d fix(game): 액트 종료 시 게임 멈춤 버그 수정
- 엔딩 Act에서 시네마틱과 클리어 처리가 동시에 호출되던 문제 수정
- 엔딩 도달 시 클리어 다이얼로그만 표시하도록 로직 분리
- 일반 Act 전환 시에만 시네마틱 표시
2025-12-17 19:17:47 +09:00
JiWoong Sul
9af5c4dc13 feat(hall): Phase 10 명예의 전당 시스템 구현
- HallOfFameEntry 모델 및 HallOfFame 컬렉션 추가
- HallOfFameStorage 저장소 (JSON 파일 기반)
- HallOfFameScreen UI (순위별 색상/아이콘)
- 게임 클리어 시 명예의 전당 등록 처리
- FrontScreen에 명예의 전당 버튼 추가
- 클리어 축하 다이얼로그 구현
2025-12-17 18:57:26 +09:00
JiWoong Sul
7c7f3b0d9e feat(ui): Phase 8 UI/UX 개선 완료
- CombatLog 위젯 게임 화면에 통합
- HP/MP 바 추가 (HP < 20% 깜빡임 효과)
- SkillPanel 추가 (쿨타임 완료 시 glow 효과)
- combatLog 로컬라이제이션 (4개 언어)
- 테스트 수정 (skipOffstage 처리)
2025-12-17 18:52:24 +09:00
JiWoong Sul
abcb89d334 feat(story): Phase 9 스토리/엔딩 시스템 구현
- story_data.dart: 5개 Act 스토리 텍스트 및 ASCII 아트
- story_service.dart: Act 전환/보스 조우/엔딩 이벤트 관리
- cinematic_view.dart: 풀스크린 시네마틱 UI (페이드, 스킵)
- game_play_screen.dart: 레벨 기반 Act 전환 시 시네마틱 재생
2025-12-17 18:38:08 +09:00
JiWoong Sul
8cbef3475b feat(ui): Phase 8 실시간 피드백 시스템 구현
- StatsPanel: 스탯 변화 애니메이션 (증감 표시)
- CombatLog: 전투 이벤트 로그 위젯
- NotificationService: 큐 기반 알림 관리
- NotificationOverlay: 레벨업/퀘스트 완료 팝업 알림
- GamePlayScreen: 새 위젯 통합
2025-12-17 18:33:21 +09:00
JiWoong Sul
a6ba3d5d2e feat(phase7): 고정 4색 팔레트 시스템 적용
- ascii_colors.dart 생성
  - 흰색(object): 캐릭터, 몬스터, 아이템
  - 시안(positive): 힐, 버프, 레벨업, 획득
  - 마젠타(negative): 데미지, 디버프, 사망, 손실
  - 검정(background): 배경

- 테마 선택 기능 제거
  - AsciiAnimationCard: colorTheme 파라미터 제거, 고정 색상 사용
  - TaskProgressPanel: 테마 버튼 제거
  - GamePlayScreen: 테마 관련 상태/메서드 제거

- 이펙트 색상 시스템 업데이트
  - '*' (히트) → 마젠타
  - '!' '+' (강조/버프) → 시안
  - '~' (디버프) → 마젠타
2025-12-17 17:54:07 +09:00
JiWoong Sul
ec27389e9b feat(phase5): 종족/클래스 시스템 균형 및 UI 통합
- 21개 종족 균형 재설계 (스탯 합계 = 0)
- 18개 클래스 균형 재설계 (스탯 합계 = +3)
- Traits에 raceId, classId 필드 추가
- 저장/불러오기에 종족/클래스 ID 추가
- 캐릭터 생성 UI에서 RaceData/ClassData 사용
- 선택 시 스탯 보정 및 패시브 정보 표시
2025-12-17 17:42:27 +09:00
JiWoong Sul
21bf057cfc feat(death): Phase 4 사망/부활 시스템 구현
- DeathInfo, DeathCause 클래스 정의 (game_state.dart)
  - 사망 원인, 상실 장비 수, 사망 시점 정보 기록
- ShopService 구현 (shop_service.dart)
  - 장비 가격 계산 (레벨 * 50 * 희귀도 배율)
  - 슬롯별 장비 생성 (프로그래밍 테마)
  - 자동 구매 (빈 슬롯에 Common 장비)
- ResurrectionService 구현 (resurrection_service.dart)
  - 사망 처리: 모든 장비 상실, 기본 무기만 유지
  - 부활 처리: HP/MP 회복, 자동 장비 구매
- progress_service.dart 사망 판정 로직 추가
  - 전투 중 HP <= 0 시 사망 처리
  - ProgressTickResult에 playerDied 플래그 추가
- progress_loop.dart 사망 시 루프 정지
  - onPlayerDied 콜백 추가
  - 사망 상태에서 틱 진행 방지
- DeathOverlay 위젯 구현 (death_overlay.dart)
  - ASCII 스컬 아트, 사망 원인, 상실 정보 표시
  - 부활 버튼
- GameSessionController 사망/부활 상태 관리
  - GameSessionStatus.dead 상태 추가
  - resurrect() 메서드로 부활 처리
2025-12-17 17:15:22 +09:00
JiWoong Sul
3fdca904a2 refactor(l10n): 동정 유발 표현을 위협적 표현으로 변경
- 몬스터 수식어 수정 (영어/한국어 모두)
  - dead→fallen, crippled→twisted, sick→tainted
  - undernourished→ravenous, baby→fledgling 등
- 고아/기아 관련 표현 개선
  - orphan→이탈, starvation→고갈, hungry→탐욕스러운
  - parentless→떠도는, Exploited→침해당한
- 일시정지 시 ASCII 애니메이션도 함께 정지하도록 수정
2025-12-15 19:24:32 +09:00
JiWoong Sul
e7fb8a4adb feat(ui): 일시 정지 버튼 추가 및 배속 버그 수정
- 게임 중 일시 정지/재개 버튼 추가 (테마 버튼 옆)
- 5x 배속이 2x와 동일하게 작동하던 버그 수정
  - progress_service.dart clamp 제한을 100ms에서 500ms로 확장
- ASCII 애니메이션 40x8 규격 통일
  - townAnimation, walkingAnimation, levelUpAnimation 등 8줄로 통일
  - 레거시 애니메이션 TextAlign.left로 정렬 문제 수정
- 캐릭터 프레임 구조 통일 (머리/몸통/다리 3줄)
- 몬스터 크기 enum 실제 프레임 줄 수와 일치하도록 수정
2025-12-15 17:07:00 +09:00
JiWoong Sul
598c25e4c9 fix(animation): ASCII 애니메이션 높낮이/공백 문제 수정
- walkingAnimation, townAnimation 4줄 → 3줄 통일
- character_frames.dart 모든 프레임 폭 6자로 통일
- _compose() 이펙트 Y 위치 동적 계산 (하드코딩 제거)
- withShield() 3줄 캐릭터용으로 수정 (index 3 → index 1)
- BattleComposer 캔버스 시스템 및 배경 합성 추가
- 무기 카테고리별 이펙트, 몬스터 크기/색상 시스템 구현
2025-12-13 18:22:50 +09:00
JiWoong Sul
8314aea578 fix(ui): 퀘스트 리스트를 원본처럼 히스토리 형태로 수정
- _buildQuestList에서 questHistory를 리스트로 표시
- 완료된 퀘스트: 체크 표시 + 취소선
- 현재 퀘스트: 화살표 아이콘
- 원본 PQ의 Quests TListView와 동일한 동작
2025-12-12 15:35:46 +09:00
JiWoong Sul
fac7c7e6fc feat(l10n): 캐릭터 생성 화면 하드코딩 텍스트 l10n 적용
- newCharacterTitle, soldButton 키 추가 (app_en.arb, app_ko.arb)
- new_character_screen.dart 하드코딩 텍스트를 L10n 함수로 변경
- 관련 테스트 업데이트 (widget_test.dart, new_character_screen_test.dart)

변경 내역:
- "Progress Quest - New Character" → L10n.newCharacterTitle
- "Sold!" → L10n.soldButton
2025-12-11 18:52:24 +09:00
JiWoong Sul
d4acd3503b feat(l10n): 장비/아이템 동적 이름 한국어 번역 지원
- pq_logic.dart: 구조화된 결과 타입 (EquipResult, ItemResult) 추가
- pq_logic.dart: 구조화된 생성 함수 (winEquipStructured, winItemStructured 등) 추가
- GameDataL10n: 구조화된 결과 렌더링 함수 추가 (renderEquipResult, renderItemResult)
- GameDataL10n: 문자열 파싱 기반 번역 함수 추가 (translateEquipString, translateItemString)
- game_play_screen.dart: 장비/아이템 목록에 번역 함수 적용
2025-12-11 18:36:51 +09:00
JiWoong Sul
17aa7f8f91 feat(ui): GameDataL10n 번역 UI 적용
new_character_screen.dart:
- 종족 목록에 GameDataL10n.getRaceName() 적용
- 직업 목록에 GameDataL10n.getKlassName() 적용

game_play_screen.dart:
- 캐릭터 정보의 종족/직업 번역 적용
- 주문 목록에 GameDataL10n.getSpellName() 적용
2025-12-11 18:26:57 +09:00
JiWoong Sul
35e3d92316 feat(l10n): 국제화(L10n) 시스템 도입 및 하드코딩 텍스트 변환
- flutter_localizations 및 intl 패키지 추가
- l10n.yaml 설정 파일 및 app_ko.arb 메시지 파일 생성
- 모든 화면(app, front, game_play, new_character, save_picker)의 하드코딩 텍스트를 L10n 키로 변환
- 테스트 파일에 localizationsDelegates 추가하여 L10n 지원
2025-12-11 17:50:34 +09:00
JiWoong Sul
2b10deba5d feat(animation): ASCII 애니메이션 시스템 구현
- TaskType별 애니메이션 (전투, 마을, 걷기)
- 몬스터 카테고리별 전투 애니메이션 (7종)
- 특수 애니메이션 (레벨업, 퀘스트 완료, Act 완료)
- 색상 테마 옵션 (green, amber, white, system)
- 테마 설정 SharedPreferences 저장
- 프로그레스 바를 상단으로 이동
2025-12-11 16:49:02 +09:00
JiWoong Sul
b450bf2600 feat(core): 장비 시스템 및 게임 상태 모델 확장
- Equipment 클래스를 11개 슬롯으로 확장 (원본 Main.dfm 충실)
- TaskInfo에 몬스터 정보(baseName, part) 추가
- Stats에 현재 HP/MP 필드 추가
- 히스토리 기능 구현 (plotHistory, questHistory)
- pq_logic winEquip/winStatIndex 원본 로직 개선
- 퀘스트 몬스터 처리 로직 구현
- SaveData 직렬화 확장
2025-12-09 22:30:37 +09:00
JiWoong Sul
08054d97c1 feat: 초기 커밋
- Progress Quest 6.4 Flutter 포팅 프로젝트
- 게임 루프, 상태 관리, UI 구현
- 캐릭터 생성, 인벤토리, 장비, 주문 시스템
- 시장/판매/구매 메커니즘
2025-12-09 17:24:04 +09:00