런 루프 코어 (TODO E1+E2) — 연속 전투·카드 보상·덱 성장 #13

Merged
gahusb merged 2 commits from feature/run-loop-core into main 2026-06-09 02:43:14 +09:00
Owner

요약

단일 전투를 연속 N전투 "런"으로 확장한다 — 런 상태(HP/골드/덱) 영속 + 승리 후 카드 1택 보상 +
다음 전투 연결 + N전투 후 "런 클리어". 로그라이크 메타(E)의 첫 하위 프로젝트(E1 런 상태 + E2 전투 보상).

변경 사항

모두 단일 소스 tools/gen-slaydeck.mjs에서 생성(생성물: SlayDeckController.codeblock · ui/DefaultGroup.ui).

  • 런 상태: RunDeck(보유 카드)·Gold·Floor·RunLength·RewardChoices·RunActive 속성을 SlayDeckController에 추가(별도 RunState 분리는 후속).
  • StartRun / StartCombat 분리: StartRun이 영속 상태 초기화 + 버튼 1회 바인딩, StartCombat은 전투별 상태만 초기화하고 RunDeck에서 드로·Floor 증가. 플레이어 HP는 전투 간 유지.
  • 보상 흐름: 승리 시 골드 +15 → Floor < RunLengthOfferReward(카드 3택1), 아니면 "런 클리어!". PickReward로 선택 카드를 RunDeck에 추가(건너뛰기 가능), 입력 잠금 가드.
  • UI: CombatHud에 층/골드 표시, RewardHud(보상 카드 3장 + 건너뛰기) 생성.
  • 런 파라미터(RUN_LENGTH=3·GOLD_PER_WIN=15)는 생성기 상수(향후 외부화).
  • 버그 예방: BindButtons를 StartRun 1회 호출로 이동(매 전투 호출 시 카드 핸들러 중첩 방지).

검증 (메이커 Play, MCP)

  • 전투 승리 → 보상 3장 표시·골드 +15 → 1택 시 RunDeck 10→11·다음 전투(HP 유지)·층 증가
  • 건너뛰기 → 덱 변화 없이 다음 전투
  • 3전투째 승리 → "런 클리어!"·골드 45·RunActive=false / 패배 → "패배..."·런 종료
  • 런 클리어 후 PickReward → no-op(입력 잠금 정상)
  • 생성기 결정적·JSON 유효

범위 밖 (후속)

  • E3 맵 노드 · E4 상점/휴식(골드 소비) · E5 유물 · E6 보스/층 전환/저장. 보상 풀 확장(메이플 IP).

🤖 Generated with Claude Code

## 요약 단일 전투를 연속 N전투 "런"으로 확장한다 — 런 상태(HP/골드/덱) 영속 + 승리 후 카드 1택 보상 + 다음 전투 연결 + N전투 후 "런 클리어". 로그라이크 메타(E)의 첫 하위 프로젝트(E1 런 상태 + E2 전투 보상). ## 변경 사항 모두 단일 소스 `tools/gen-slaydeck.mjs`에서 생성(생성물: SlayDeckController.codeblock · ui/DefaultGroup.ui). - **런 상태**: `RunDeck`(보유 카드)·`Gold`·`Floor`·`RunLength`·`RewardChoices`·`RunActive` 속성을 SlayDeckController에 추가(별도 RunState 분리는 후속). - **StartRun / StartCombat 분리**: `StartRun`이 영속 상태 초기화 + 버튼 1회 바인딩, `StartCombat`은 전투별 상태만 초기화하고 RunDeck에서 드로·Floor 증가. 플레이어 HP는 전투 간 유지. - **보상 흐름**: 승리 시 골드 +15 → `Floor < RunLength`면 `OfferReward`(카드 3택1), 아니면 "런 클리어!". `PickReward`로 선택 카드를 RunDeck에 추가(건너뛰기 가능), 입력 잠금 가드. - **UI**: CombatHud에 층/골드 표시, `RewardHud`(보상 카드 3장 + 건너뛰기) 생성. - 런 파라미터(`RUN_LENGTH=3`·`GOLD_PER_WIN=15`)는 생성기 상수(향후 외부화). - 버그 예방: `BindButtons`를 StartRun 1회 호출로 이동(매 전투 호출 시 카드 핸들러 중첩 방지). ## 검증 (메이커 Play, MCP) - 전투 승리 → 보상 3장 표시·골드 +15 → 1택 시 RunDeck 10→11·다음 전투(HP 유지)·층 증가 - 건너뛰기 → 덱 변화 없이 다음 전투 - 3전투째 승리 → "런 클리어!"·골드 45·RunActive=false / 패배 → "패배..."·런 종료 - 런 클리어 후 PickReward → no-op(입력 잠금 정상) - 생성기 결정적·JSON 유효 ## 범위 밖 (후속) - E3 맵 노드 · E4 상점/휴식(골드 소비) · E5 유물 · E6 보스/층 전환/저장. 보상 풀 확장(메이플 IP). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
gahusb added 2 commits 2026-06-09 02:43:08 +09:00
단일 전투를 N전투 런으로 확장(로그라이크 메타 첫 조각).

- 런 상태: RunDeck(보유 카드)·Gold·Floor·RunLength·RewardChoices·RunActive (SlayDeckController 확장)
- StartRun(영속 초기화·버튼 1회 바인딩) vs StartCombat(전투별 초기화·RunDeck에서 드로·Floor++) 분리
- 플레이어 HP 전투 간 유지, BindButtons를 StartRun 1회 호출로 이동(핸들러 중첩 버그 예방)
- 승리: 골드 +15 → Floor<RunLength면 OfferReward(카드 3택1), 아니면 '런 클리어!'
- PickReward: 선택 카드 RunDeck 추가(건너뛰기=추가 안 함)→다음 전투. 입력잠금 가드
- UI: CombatHud 층/골드 표시, RewardHud(보상 카드 3+건너뛰기) 생성
- 런 파라미터(RUN_LENGTH=3·GOLD_PER_WIN=15)는 생성기 상수(향후 외부화)
- 메이커 Play 검증: 전투→보상→덱+1→다음전투→3전투 런 클리어, 패배·입력잠금 정상

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
gahusb merged commit e5960e150b into main 2026-06-09 02:43:14 +09:00
gahusb deleted branch feature/run-loop-core 2026-06-09 02:43:15 +09:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gahusb/maplecontest#13