단일 경로 자동 진행을 분기 맵 네비게이션으로 확장. - data/map.json: 분기 DAG(start + nodes: type/enemy/row/col/next). A,B→C,D,E→BOSS - data/enemies.json: slime_elite(HP70)·slime_boss(HP120) 추가 - SlayDeckController: Enemies(전체 적)·MapNodes·MapStart·CurrentNodeId·CurrentEnemyId 속성 - StartRun→맵 빌드·ShowMap, PickNode(도달성 검증)→StartCombat(적은 self.Enemies에서) - ShowMap/IsReachable(boolean)/RenderMap(도달 가능 노드만 활성·강조)/PickNode - 승리→보상→ShowMap 복귀, 보스 노드 승리 시 '런 클리어!' - MapHud UI: 노드 버튼(행=y/col=x), 타입+적 라벨, 모달 배경 - 생성기: method() returnType 파라미터, 다중 적/맵 Lua 직렬화 헬퍼 - 메이커 Play 검증: 맵→A→보상→C(엘리트)→보스→런 클리어, 도달불가 노드 무시 - 범위 밖(후속): 상점/휴식(E4)·유물(E5)·저장(E6)·절차적 맵·연결선 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
12 lines
576 B
JSON
12 lines
576 B
JSON
{
|
|
"start": ["A", "B"],
|
|
"nodes": {
|
|
"A": { "type": "combat", "enemy": "slime", "row": 1, "col": -1, "next": ["C", "D"] },
|
|
"B": { "type": "combat", "enemy": "slime", "row": 1, "col": 1, "next": ["D", "E"] },
|
|
"C": { "type": "elite", "enemy": "slime_elite", "row": 2, "col": -2, "next": ["BOSS"] },
|
|
"D": { "type": "combat", "enemy": "slime", "row": 2, "col": 0, "next": ["BOSS"] },
|
|
"E": { "type": "combat", "enemy": "slime", "row": 2, "col": 2, "next": ["BOSS"] },
|
|
"BOSS": { "type": "boss", "enemy": "slime_boss", "row": 3, "col": 0, "next": [] }
|
|
}
|
|
}
|