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

@@ -1,5 +1,31 @@
// ============================================================================
// ASCII NEVER DIE 한국어 번역 데이터
// 게임 데이터의 한국어 번역을 제공합니다.
// ============================================================================
//
// 이 파일은 게임의 모든 한국어 번역을 포함합니다.
// 영문 원본은 pq_config_data.dart에 정의되어 있습니다.
//
// ## 세계관 (World Setting)
// 아스키나라(ASCII-Nara): 코드의 신이 창조한 디지털 판타지 세계
// - 널(Null) 왕국: 모험자들이 시작하는 중앙 도시 (64비트 왕 통치)
// - 코어의 심연: 전설적 장비가 발견되는 고대 던전
// - 글리치 영역: 버그와 오류로 현실이 뒤틀린 지역
// - 바이너리 신전: 코드의 신을 숭배하는 신성한 장소
//
// ## 번역 구조
// - 기본 번역 Maps: raceTranslationsKo, klassTranslationsKo, monsterTranslationsKo 등
// - 추가 번역 Maps: advancedMonsterTranslationsKo, additionalDropTranslationsKo 등
// - 스토리 번역 Maps: actTitleTranslationsKo, cinematicTranslationsKo 등
// - 세계관 번역 Maps: locationTranslationsKo, factionTranslationsKo
//
// ## 번역 함수 사용 (game_text_l10n.dart)
// - translateMonster(name): 몬스터 이름 번역
// - translateRace(name): 종족 이름 번역
// - translateItemAttrib(name): 아이템 속성 번역
// - translateCinematic(text): 시네마틱 텍스트 번역
// - 등등...
//
// ============================================================================
/// 종족 이름 한국어 번역
const Map<String, String> raceTranslationsKo = {
@@ -1101,3 +1127,415 @@ const Map<String, String> dropItemTranslationsKo = {
'privilege escape': '권한 탈출',
'heap overflow': '힙 오버플로우',
};
// ============================================================================
// 스토리/시네마틱 한국어 번역 (Story/Cinematic Translations)
// ============================================================================
/// Act 제목 한국어 번역
const Map<String, String> actTitleTranslationsKo = {
'Prologue': '프롤로그',
'Act I: Awakening': '제1막: 각성',
'Act II: Growth': '제2막: 성장',
'Act III: Trials': '제3막: 시련',
'Act IV: Confrontation': '제4막: 결전',
'Act V: Endgame': '제5막: 종말',
'The End': '완결',
};
/// Act별 보스 몬스터 이름 한국어 번역
const Map<String, String> actBossTranslationsKo = {
'BOSS: Stack Overflow Dragon': '보스: 스택 오버플로우 드래곤',
'BOSS: Heap Corruption Hydra': '보스: 힙 손상 히드라',
'BOSS: Kernel Panic Titan': '보스: 커널 패닉 타이탄',
'BOSS: Zero Day Leviathan': '보스: 제로데이 리바이어던',
'BOSS: The Primordial Glitch': '보스: 태초의 글리치',
};
/// Act별 시작 퀘스트 한국어 번역
const Map<String, String> actQuestTranslationsKo = {
'Exterminate the Bug Infestation': '버그 침입 소탕',
'Purge the Bug Nest': '버그 둥지 정화',
'Cleanse the Corrupted Network': '손상된 네트워크 정화',
'Pass the Trials of the Ancient Compiler': '고대 컴파일러의 시련 통과',
"Infiltrate the Glitch God's Citadel": '글리치 신의 성채 침투',
'Defeat the Glitch God': '글리치 신 처치',
};
/// 시네마틱 텍스트 한국어 번역
const Map<String, String> cinematicTranslationsKo = {
// 프롤로그
'In the beginning, there was only the Void...':
'태초에, 오직 공허(Void)만이 존재했다...',
'Then came the First Commit, and Light filled the Codebase.':
'그리고 첫 번째 커밋이 도래하여, 빛이 코드베이스를 가득 채웠다.',
'The Code God spoke: "Let there be Functions."':
'코드의 신이 말씀하셨다: "함수가 있으라."',
'And so the Digital Realm was born...': '그리하여 디지털 세계가 탄생하였다...',
'But from the shadows emerged the Glitch.': '그러나 어둠 속에서 글리치가 출현했다.',
'Now, a new hero awakens to defend the Code.':
'이제, 코드를 수호할 새로운 영웅이 깨어난다.',
'Your journey begins...': '당신의 여정이 시작된다...',
// Act I: 각성
'=== ACT I: AWAKENING ===': '=== 제1막: 각성 ===',
'You have proven yourself against the lesser bugs.':
'당신은 하급 버그들을 상대로 실력을 증명했다.',
'The Debugger Knights take notice of your potential.':
'디버거 기사단이 당신의 잠재력을 주목한다.',
'But a greater threat lurks in the Bug Nest...':
'하지만 더 큰 위협이 버그 둥지에 도사리고 있다...',
'The Syntax Error Dragon awaits.': '문법 오류 드래곤이 기다린다.',
// Act II: 성장
'=== ACT II: GROWTH ===': '=== 제2막: 성장 ===',
'With the Dragon slain, you join the Debugger Knights.':
'드래곤을 처치하고, 당신은 디버거 기사단에 입단한다.',
'The Corrupted Network spreads its infection...':
'손상된 네트워크가 감염을 퍼뜨리고 있다...',
'A traitor among the Knights is revealed!': '기사단 내 배신자가 드러났다!',
'The Memory Leak Hydra threatens all data.':
'메모리 누수 히드라가 모든 데이터를 위협한다.',
'You must stop the corruption before it consumes everything.':
'모든 것을 삼키기 전에 손상을 멈춰야 한다.',
// Act III: 시련
'=== ACT III: TRIALS ===': '=== 제3막: 시련 ===',
'The path leads to the Null Kingdom...': '길은 널(Null) 왕국으로 이어진다...',
'The Ancient Compiler challenges you to its trials.':
'고대 컴파일러가 당신에게 시련을 건넨다.',
'A companion falls... their sacrifice not in vain.':
'동료가 쓰러진다... 그들의 희생은 헛되지 않으리.',
'The Buffer Overflow Titan guards the gate.':
'버퍼 오버플로우 타이탄이 문을 지키고 있다.',
'Only through great sacrifice can you proceed.':
'오직 큰 희생을 통해서만 앞으로 나아갈 수 있다.',
// Act IV: 결전
'=== ACT IV: CONFRONTATION ===': '=== 제4막: 결전 ===',
"The Glitch God's Citadel looms before you.":
'글리치 신의 성채가 눈앞에 어렴풋이 보인다.',
'Former enemies unite against the common threat.':
'이전의 적들이 공동의 위협에 맞서 연합한다.',
'The Final Alliance is forged.': '최후의 동맹이 결성되었다.',
'The Kernel Panic Archon blocks your path.':
'커널 패닉 아르콘이 당신의 길을 막는다.',
'One final battle before the end...': '종말 전의 마지막 전투...',
// Act V: 종말
'=== ACT V: ENDGAME ===': '=== 제5막: 종말 ===',
'The Glitch God reveals its true form.': '글리치 신이 진정한 모습을 드러낸다.',
'Reality itself begins to corrupt.': '현실 그 자체가 손상되기 시작한다.',
'All hope rests upon your shoulders.': '모든 희망이 당신의 어깨에 달려 있다.',
'The final battle for the Codebase begins!':
'코드베이스를 위한 최후의 전투가 시작된다!',
// 엔딩
'=== THE END ===': '=== 완결 ===',
'The Glitch God falls. The corruption fades.':
'글리치 신이 쓰러진다. 손상이 사라진다.',
'System Reboot initiated...': '시스템 재부팅 시작...',
'Peace returns to the Digital Realm.': '디지털 세계에 평화가 돌아온다.',
'Your legend will be compiled into the eternal logs.':
'당신의 전설은 영원한 로그에 컴파일될 것이다.',
'THE END': '',
'...or is it?': '...정말 그럴까?',
};
// ============================================================================
// 세계관 관련 용어 번역 (World-Building Terms)
// ============================================================================
/// 주요 지역 한국어 번역
const Map<String, String> locationTranslationsKo = {
'Null Kingdom': '널(Null) 왕국',
'Core Abyss': '코어의 심연',
'Glitch Zone': '글리치 영역',
'Binary Temple': '바이너리 신전',
'Debug Zone': '디버그 존',
'Data Market': '데이터 마켓',
'Tech Shop': '테크 샵',
'Cache Zone': '캐시 존',
'Bug Nest': '버그 둥지',
'Corrupted Network': '손상된 네트워크',
"Glitch God's Citadel": '글리치 신의 성채',
'Safe Mode': '안전 모드',
};
/// 조직/세력 한국어 번역
const Map<String, String> factionTranslationsKo = {
'Debugger Knights': '디버거 기사단',
'Code God': '코드의 신',
'Glitch God': '글리치 신',
'Bug God': '버그 신',
'Ancient Compiler': '고대 컴파일러',
'Final Alliance': '최후의 동맹',
'64-bit King': '64비트 왕',
'Compiler Sage': '컴파일러 현자',
'Debugger Saint': '디버거 성인',
};
// ============================================================================
// 추가 몬스터 번역 (레벨 54-100)
// ============================================================================
/// 고급/엔드게임 몬스터 한국어 번역
const Map<String, String> advancedMonsterTranslationsKo = {
// 고급 시스템 위협 (레벨 54-65)
'Kernel Exploiter': '커널 익스플로이터',
'Ring -1 Phantom': '링 -1 팬텀',
'TPM Bypasser': 'TPM 우회자',
'Secure Boot Breaker': '시큐어 부트 파괴자',
'IOMMU Escape': 'IOMMU 탈출',
'SGX Enclave Bug': 'SGX 엔클레이브 버그',
'TrustZone Breach': '트러스트존 침해',
'Platform Security Bug': '플랫폼 보안 버그',
'Hardware Backdoor': '하드웨어 백도어',
'Supply Chain Implant': '공급망 임플란트',
'BMC Rootkit': 'BMC 루트킷',
'IPMI Ghost': 'IPMI 유령',
// 엔터프라이즈급 위협 (레벨 66-80)
'Active Directory Worm': '액티브 디렉토리 웜',
'Kerberos Golden': '케르베로스 골든',
'NTLM Relay Beast': 'NTLM 릴레이 야수',
'DCSync Phantom': 'DCSync 팬텀',
'Exchange Exploit': '익스체인지 익스플로잇',
'SharePoint Bug': '셰어포인트 버그',
'Teams Vulnerability': '팀즈 취약점',
'Azure AD Breach': '애저 AD 침해',
'AWS IAM Bug': 'AWS IAM 버그',
'GCP Exploit': 'GCP 익스플로잇',
'Kubernetes Escape': '쿠버네티스 탈출',
'Docker Breakout': '도커 브레이크아웃',
'Service Mesh Bug': '서비스 메시 버그',
'Terraform State Bug': '테라폼 상태 버그',
'CI/CD Pipeline Poison': 'CI/CD 파이프라인 오염',
// 엔드게임 몬스터 (레벨 81-90)
'Quantum Decoherence': '양자 결어긋남',
'Neural Network Poison': '신경망 오염',
'AI Hallucination': 'AI 환각',
'Deep Fake Engine': '딥페이크 엔진',
'Adversarial Noise': '적대적 노이즈',
'Model Extraction': '모델 추출',
'Prompt Injection': '프롬프트 인젝션',
'Training Data Poison': '학습 데이터 오염',
'Federated Learning Bug': '연합 학습 버그',
'Differential Privacy Leak': '차등 프라이버시 누출',
// 최종 엔드게임 (레벨 91-100)
'Post-Quantum Threat': '포스트 양자 위협',
'Homomorphic Crack': '동형 암호 균열',
'Zero Knowledge Flaw': '영지식 결함',
'Blockchain Fork': '블록체인 포크',
'Smart Contract Bug': '스마트 컨트랙트 버그',
'MEV Extractor': 'MEV 추출자',
'Cross-Chain Bridge Bug': '크로스체인 브릿지 버그',
'Oracle Manipulation': '오라클 조작',
'Flash Loan Attack': '플래시 론 공격',
'The Final Bug': '최후의 버그',
// 미니보스
'Elite Syntax Overlord': '엘리트 문법 군주',
'Champion Buffer Crusher': '챔피언 버퍼 파괴자',
'Veteran Memory Lord': '베테랑 메모리 군주',
'Master Race Conductor': '마스터 레이스 지휘자',
'Arch Kernel Breaker': '대 커널 파괴자',
'High Protocol Corruptor': '상위 프로토콜 오염자',
'Grand Firmware Defiler': '대 펌웨어 훼손자',
'Supreme Cloud Invader': '최고 클라우드 침략자',
'Legendary Container Escapist': '전설의 컨테이너 탈출자',
'Ancient Pipeline Poisoner': '고대 파이프라인 오염자',
// 보스 몬스터
'BOSS: APT Colossus': '보스: APT 거신',
'BOSS: Ransomware Emperor': '보스: 랜섬웨어 황제',
'BOSS: AI Singularity': '보스: AI 싱귤래리티',
};
/// 추가 드롭 아이템 번역
const Map<String, String> additionalDropTranslationsKo = {
// 레벨 54-65 드롭
'privilege token': '권한 토큰',
'hypervisor breach': '하이퍼바이저 침해',
'trusted module': '신뢰 모듈',
'boot chain': '부트 체인',
'memory isolation': '메모리 격리',
'secure enclave': '보안 엔클레이브',
'arm security': 'ARM 보안',
'firmware key': '펌웨어 키',
'silicon implant': '실리콘 임플란트',
'factory malware': '공장 악성코드',
'baseboard mgmt': '베이스보드 관리',
'remote mgmt': '원격 관리',
// 레벨 66-80 드롭
'domain token': '도메인 토큰',
'ticket forgery': '티켓 위조',
'auth bypass': '인증 우회',
'replication attack': '복제 공격',
'mail server': '메일 서버',
'collab breach': '협업 침해',
'comm exploit': '통신 익스플로잇',
'cloud identity': '클라우드 ID',
'cloud permission': '클라우드 권한',
'google cloud': '구글 클라우드',
'container breach': '컨테이너 침해',
'namespace escape': '네임스페이스 탈출',
'istio envoy': 'Istio 엔보이',
'infra code': '인프라 코드',
'build compromise': '빌드 침해',
// 레벨 81-90 드롭
'qubit collapse': '큐비트 붕괴',
'model corrupt': '모델 손상',
'false output': '거짓 출력',
'synthetic media': '합성 미디어',
'ml attack': 'ML 공격',
'stolen weights': '탈취된 가중치',
'llm exploit': 'LLM 익스플로잇',
'dataset corrupt': '데이터셋 손상',
'distributed ml': '분산 ML',
'anonymity breach': '익명성 침해',
// 레벨 91-100 드롭
'lattice attack': '격자 공격',
'encrypted compute': '암호화 연산',
'proof bypass': '증명 우회',
'consensus break': '합의 파괴',
'solidity exploit': '솔리디티 익스플로잇',
'transaction reorder': '트랜잭션 재정렬',
'bridge exploit': '브릿지 익스플로잇',
'price feed': '가격 피드',
'defi exploit': 'DeFi 익스플로잇',
'ultimate error': '궁극의 오류',
// 미니보스/보스 드롭
'syntax crown': '문법의 왕관',
'overflow gem': '오버플로우 보석',
'leak artifact': '누수 유물',
'thread scepter': '스레드 홀',
'ring zero': '링 제로',
'packet throne': '패킷 왕좌',
'boot artifact': '부트 유물',
'cloud crown': '클라우드 왕관',
'namespace key': '네임스페이스 열쇠',
'build shard': '빌드 파편',
'legendary stack': '전설의 스택',
'multi-head leak': '다중 머리 누수',
'system crash': '시스템 붕괴',
'unknown vuln': '미지의 취약점',
'state actor': '국가급 행위자',
'encrypted realm': '암호화된 영역',
'machine god': '기계 신',
'genesis bug': '시초 버그',
};
/// 추가 방패 번역
const Map<String, String> additionalShieldTranslationsKo = {
'Neural Defense Grid': '신경 방어 그리드',
'Singularity Absorber': '특이점 흡수기',
'Time Dilation Field': '시간 확장 필드',
'Reality Anchor': '현실 닻',
'Multiverse Barrier': '다중우주 장벽',
'Cosmic Dampener': '우주 완충기',
'Entropy Shield': '엔트로피 실드',
};
/// 추가 갑옷 번역
const Map<String, String> additionalArmorTranslationsKo = {
'Blockchain Platemail': '블록체인 판금갑옷',
'Neural Network Mesh': '신경망 메시',
'AI Firewall': 'AI 방화벽',
'Quantum Shield Matrix': '양자 실드 매트릭스',
'Singularity Barrier': '특이점 장벽',
'Multiverse Armor': '다중우주 갑옷',
};
/// 추가 아이템 속성 번역
const Map<String, String> additionalItemAttribTranslationsKo = {
'Containerized': '컨테이너화된',
'Orchestrated': '오케스트레이션된',
'Scalable': '확장 가능한',
'Resilient': '복원력 있는',
'Fault-Tolerant': '장애 허용',
'Self-Healing': '자가 치유',
'Auto-Scaling': '자동 확장',
'Load-Balanced': '로드 밸런싱된',
'Cached': '캐시된',
'Indexed': '인덱싱된',
'Sharded': '샤딩된',
'Partitioned': '파티션된',
'Compressed': '압축된',
'Tokenized': '토큰화된',
'Anonymized': '익명화된',
'Sanitized': '새니타이즈된',
'Validated': '검증된',
};
/// 추가 ItemOfs 번역
const Map<String, String> additionalItemOfsTranslationsKo = {
'Microservices': '마이크로서비스',
'Serverless': '서버리스',
'Edge Computing': '엣지 컴퓨팅',
'Fog Computing': '포그 컴퓨팅',
'Cloud Native': '클라우드 네이티브',
'DevOps': '데브옵스',
'Site Reliability': '사이트 신뢰성',
'Platform Engineering': '플랫폼 엔지니어링',
'Infrastructure': '인프라스트럭처',
'Observability': '관측 가능성',
'Telemetry': '텔레메트리',
'Tracing': '트레이싱',
'Metrics': '메트릭',
'Alerting': '알림',
'Incident Response': '인시던트 대응',
'Chaos Engineering': '카오스 엔지니어링',
'Resilience': '복원력',
'Availability': '가용성',
'Durability': '내구성',
'Consistency': '일관성',
'Partition Tolerance': '분할 허용',
};
// ============================================================================
// 통합 번역 Getter (Unified Translation Getters)
// ============================================================================
/// 모든 몬스터 번역을 통합하여 반환
Map<String, String> get allMonsterTranslationsKo => {
...monsterTranslationsKo,
...advancedMonsterTranslationsKo,
};
/// 모든 아이템 속성 번역을 통합하여 반환
Map<String, String> get allItemAttribTranslationsKo => {
...itemAttribTranslationsKo,
...additionalItemAttribTranslationsKo,
};
/// 모든 아이템 접미사("~의") 번역을 통합하여 반환
Map<String, String> get allItemOfsTranslationsKo => {
...itemOfsTranslationsKo,
...additionalItemOfsTranslationsKo,
};
/// 모든 드롭 아이템 번역을 통합하여 반환
Map<String, String> get allDropTranslationsKo => {
...boringItemTranslationsKo,
...dropItemTranslationsKo,
...additionalDropTranslationsKo,
};
/// 모든 갑옷 번역을 통합하여 반환
Map<String, String> get allArmorTranslationsKo => {
...armorTranslationsKo,
...additionalArmorTranslationsKo,
};
/// 모든 방패 번역을 통합하여 반환
Map<String, String> get allShieldTranslationsKo => {
...shieldTranslationsKo,
...additionalShieldTranslationsKo,
};