# P10 — 법사 클래스 설계 날짜: 2026-06-12 (사용자 승인 — P9/P10/P11 중 2단계) 브랜치: `feature/p10-magician` 선행: P9 (클래스 모델·전직 흐름·CardPool 필터) ## 범위 1. **캐릭터 선택 오픈** — 시작 화면 전사/법사 2택 (법사 시작 HP 70, 전용 시작 덱) 2. **법사 1차 카드 5종** + **2차 3계열 9종** (위자드(불·독)/위자드(썬·콜)/클레릭 — 실제 메이플 직업) 3. **신규 메커니즘 4종**: 독(DoT)·전체 공격(AoE)·회복 카드·드로 카드 (Lua + 시뮬 동기화) 4. 전직 선택 화면을 **클래스별 동적 구성**으로 리팩터 (P9의 고정 3패널 → 슬롯 3개 + 런타임 채움) ## 데이터 - `cards.json`: `starterDeck` → **`starterDecks`** `{ warrior: [...], magician: [에너지 볼트×5, 매직 가드×4, 매직 클로×1] }` - 신규 카드 필드: `draw`(드로 N)·`heal`(HP 회복)·`poison`(적에게 독 N)·`aoe`(true=전체 공격) - 클래스 상수(생성기): warrior HP 80 / magician HP 70 법사 카드 14종 (메이플 스킬명): | id | 직업 | 이름 | 코 | 효과 | |----|------|------|----|------| | EnergyBolt | magician | 에너지 볼트 | 1 | 피해 6 | | MagicGuard | magician | 매직 가드 | 1 | 방어 5 | | MagicClaw | magician | 매직 클로 | 1 | 피해 3 × 2회 | | Teleport | magician | 텔레포트 | 1 | 방어 3, 드로 1 | | Slow | magician | 슬로우 | 1 | 약화 2 부여 | | FireArrow | firepoison | 파이어 애로우 | 1 | 피해 8 | | PoisonBreath | firepoison | 포이즌 브레스 | 1 | **독 4** 부여 | | ElementAmp | firepoison | 엘레멘트 앰플 | 1 | Power: 매턴 힘 +1 | | ThunderBolt | icelightning | 썬더 볼트 | 2 | **전체 적** 피해 6 | | ColdBeam | icelightning | 콜드 빔 | 2 | 피해 7, 약화 2 | | ChillingStep | icelightning | 칠링 스텝 | 1 | 방어 8 | | Heal | cleric | 힐 | 1 | **HP 10 회복** | | Bless | cleric | 블레스 | 1 | 힘 +1, 방어 5 | | HolyArrow | cleric | 홀리 애로우 | 1 | 피해 8 | (설계 초안 대비 수치 미세 조정: 힐 12→10·블레스 방어 6→5·홀리 애로우 9→8 — 1코 효율 정렬) ## 신규 메커니즘 규칙 - **독**: 적 디버프. 해당 적 행동 시작 시 `hp -= poison` 후 `poison -= 1` (StS 동일). 방어 무시. 독 사망 시 행동 생략·체인 계속. 버프 라인에 `독N` 표시. - **AoE**(`aoe: true`): 생존 적 전원에게 각자 취약/방어 적용해 피해. 중앙 이펙트 1회(`PlayAoeFx`), 슬롯별 팝업. - **회복**(`heal`): `PlayerHp = min(+N, Max)`. - **드로**(`draw`): 사용 시 N장 드로 (손패 상한 5 초과분은 기존 DrawCards 동작 따름). ## 전직 화면 동적화 - `JobSelectHud`의 패널을 `Job_slot1..3`(범용)으로 변경, `ShowJobSelect`가 `SelectedClass`별 옵션 테이블(JOBS 상수 주입)로 이름/설명/대표 카드 텍스트를 채움. 클릭 → `SetJob(JobOpts[i].id)`. - JOBS: warrior=[fighter/page/spearman], magician=[firepoison(위자드 불·독)/icelightning(위자드 썬·콜)/cleric(클레릭)] - 대표 카드: firepoison→파이어 애로우, icelightning→썬더 볼트, cleric→힐 - `JobLabel` 확장: 마법사/위자드(불·독)/위자드(썬·콜)/클레릭 ## 캐릭터 선택 - 기존 `MageButton`(잠금) → 활성: key Mage, `SelectClass("magician")`, 하이라이트·상태 텍스트 클래스 공용화, `StartNewGame` 가드 warrior|magician 허용 - `StartRun`: 클래스별 MaxHp·RunDeck 분기 ## 검증 1. 시뮬: poison/aoe/heal/draw 재현 + 테스트 4건 이상 (전체 40건+) 2. 메이커: 법사 선택→시작 덱 확인→전직(클레릭 등)→전용 카드 풀·독/AoE/힐 실동작, 빌드·런타임 0에러