ThreeKingdomsSlingshot/README.md

57 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 삼국지 슬링샷 (가제) — 턴제 슬링샷 전투 프로토타입
Unity 6000.3.23f1 · 2D · 도형 플레이스홀더(아트 리소스는 별도 세션에서 제작 중).
## 열기·실행
1. Unity Hub 로 이 폴더를 연다 (6000.3.x 권장 · 6000.0 이상이면 열림).
2. `Assets/Scenes/Battle.unity` 를 열고 Play. Game 뷰는 세로(9:16) 비율 권장 — 다른 비율도 전장 전체가 보이도록 카메라가 맞춘다.
3. 씬이 없으면 메뉴 **TKS → Setup Project** 를 실행하면 설정 자산과 씬을 다시 만든다.
## 조작 (버튼 없음)
- 아군 유닛을 누른 채 **뒤로 당겼다 놓으면** 반대 방향으로 날아간다(슬링샷). 하얀 선 = 날아갈 경로, 끝의 링 = 최종 목표점. 링이 주황색이면 목표점이 적 위에 있다(명중).
- 이동과 공격은 하나의 조작이다. 경로 위에 적이 있으면 병종 규칙대로 공격한다. 주황 링이 켜진 적 = 이번 조작으로 공격하게 될 적.
- 전장(20×32)은 화면보다 넓다. **빈 곳을 드래그하면 스크롤**, 마우스 휠 = 줌, 오른쪽 위 **미니맵을 탭하면 그 지점으로 이동**. 행동 중인 유닛은 카메라가 따라간다.
- 적은 교전 범위(스테이지별 11~12) 안에 아군이 들어와야 움직인다. 멀리 있는 부대는 자리를 지키므로 부대 단위로 각개격파할 수 있다.
- 아군 전원이 행동하면 자동으로 적군 턴이 진행된다. 보병 추가 이동만 남았을 때 빈 곳을 탭하면 건너뛴다.
- 승리/패배 화면은 탭으로 다음 전투·재도전.
- 스킬 아이콘은 자리만(초기 단계 미구현).
## 병종 규칙 (초안 기획 반영)
| 병종 | 경로 위 적 | 최종 목표점 명중 시 |
|---|---|---|
| 보병 | 첫 유닛(아군·적군)에 부딪히면 알까기처럼 양쪽이 즉시 튕김(상대 = 남은 힘 · 자신 = 반대로 절반) · 적이면 부딪힌 순간 공격(반격 받음) | 추가 이동 1회(이동만) |
| 기병 | 유닛을 무시하고 관통 · 경로 위 적은 모두 피해 · 아군은 지나칠 거리가 안 나오면 직전에 멈춤 | 제자리로 복귀 |
| 창병 | 첫 유닛을 튕기지 않고 밀며 함께 전진 · 적이면 피해(반격 받음) · 아군은 밀기만 | 대기 — 적군 턴에 반경 안에서 움직이는 적에게 피해 |
| 궁병 | 사거리(= 슬링샷 범위) 안의 적은 제자리 사격 · 사거리 밖 +20 % 안의 적은 들어올 만큼만 다가가 사격(반격 없음) · 더 멀면 목표점까지 이동 | 무조건 크리티컬 |
밀린 아군이 적과 닿으면 그 자리에서 공격 1회(조작마다 · 자기 행동 소모 없음). 상성: 보병 > 창병 > 기병 > 보병. 궁병은 모두에게 약함(받는 피해 1.5배) · 근접 유닛과 근접 전투하면 주는 피해 50 % · 받는 피해 +50 %(원거리 사격은 패널티 없음).
## 데이터(SOT)
모든 수치·영웅·스테이지는 `Assets/Resources/BalanceConfig.asset` 하나에 있다(Inspector 에서 조정). 코드에는 수치가 없다.
초기값 재시드: 메뉴 **TKS → Reset Balance Defaults**.
## CLI
에이전트 작업 워크플로(열린 에디터 제어 = Unity 공식 CLI + `com.unity.pipeline`)는 `CLAUDE.md` 에 있다. 아래는 에디터가 닫혀 있을 때의 배치 실행.
```
# 컴파일 + 설정 자산·씬 생성 (BuildFresh = 기본값 재시드까지)
Unity.exe -batchmode -nographics -projectPath <proj> -executeMethod TKS.EditorTools.ProjectSetup.Build -quit -logFile <log>
# 플레이모드 테스트
Unity.exe -batchmode -nographics -projectPath <proj> -runTests -testPlatform PlayMode -testResults <xml> -logFile <log>
# 자동 플레이 스크린샷 실측 (GUI 에디터 · 스스로 종료)
Unity.exe -projectPath <proj> -executeMethod TKS.EditorTools.ProjectSetup.AutoPlayCapture -autoplayDir <dir> -autoplayTurns 3 -logFile <log>
```
## 구조
- `Assets/Scripts/Runtime/` — `GameBootstrap`(씬 구성) · `BattleManager`(턴·승패) · `ActionResolver`(병종 규칙) · `Combat`(피해 공식·기하 질의) · `SlingshotInput`(조작·스크롤·줌) · `CameraController`(넓은 전장 카메라) · `EnemyAI`(교전 범위) · `BattleHUD`(HUD·미니맵) · `Unit`/`UnitView` · `Board`
- `Assets/Scripts/Editor/` — `ProjectSetup`(자동 구성) · `BalanceDefaults`(최초 시드)
- `Assets/Tests/PlayMode/` — 병종 규칙·턴 흐름·승리 판정 테스트