Go to file
깃 관리자 85aed38ce5 스킬 시스템(PD #1093 세션 B) — skills.csv effect_key 51종 처리기 · 액티브(예약/즉시)·패시브 · HUD 스킬 버튼 · 적 무장 패시브 · 스킬 레벨업·스킬서
- 데이터: SkillInfoDb(= 스킬 DB) 에 effect_key·p1~p3(pMask)·lv_scale·needs_impl 추가 · 임포터 검증(trigger · 키 51종 · p 칸 · skill_levels 연속 · lv_max) · skill_levels = levels(비용 표)
- 처리기 Runtime/Skills: SkillKeys(51종 · 레벨 계수 = 값×계수 / 배율은 1 넘는 몫 / 횟수 반올림 / 켜기·치환 고정 · 팀 키) · SkillDef·SkillCatalog · SkillSystem(유닛별 쿨·예약 · 즉시형 시한 효과 이번 아군 턴/이번 적 턴 · 행동 훅 · 호위 분담 · HUD 한 줄) · SkillMods(전투 코드 수치 질의) · SkillRules(상한 = 등급 + ★3 액티브 +1 · ★5 패시브 ×1.5 = evolve.csv · 레벨업 · 스킬서 판매)
- 전투 연결: ActionResolver(밀기·튕김·추가 이동 n·추가 이동 공격·충돌 추가 피해·밀며 전진 ×·삼첨도·관통 피해/넉백/반격 없음/빗나가도 복귀/한 번 더 관통·사거리·사선 통과·크리·광역 반경/비율/아군 0·백기습영 이동 후 사격·군령/대장군 공격 횟수) · Combat(상성 하한·공 %·주는/받는 피해·근접 패널티 해제·반격 배율/받는 반격·견제 배율) · BattleManager(편성·적 무장 부착 · 견제 반경/횟수/무제한/회복 · 교전 반응 정지 · 교전 범위 · 즉시형 실행) · EnemyAI·RangeIndicator(슬링·사거리 스킬 반영)
- UI: HUD 스킬 버튼(이름·Lv·쿨·사용 가능/불가·패시브) · 탭 = 예약/취소/즉시 · 조준 중 2손가락 탭 · 발동 = 이름 글자 + 플래시 · 스킬 한 줄 · 예약 배지 · 변진 반경 원 · 영웅 상세 스킬 레벨업 팝업 · 거래 상점 스킬서 칸(임시)
- 표: economy.csv start_skill_books 10 · skill_book_shop_daily 3 · skill_book_price 300(임시 · PD 확인)
- 테스트 73/73(기존 56 + SkillTests 17 · 51종 전부) · console error 0 · 캡처 = DataImporter.CaptureSkills

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 23:31:27 +09:00
.claude/skills/unity-cli P38-7 적용 — com.unity.pipeline 0.10.0-exp.1 설치(unity pipeline install) · 프로젝트 CLAUDE.md(Unity 공식 CLI 워크플로 · 배치 실행 · 코드 규칙) · README CLI 절 안내 1줄 · Unity CLI 에이전트 스킬 .claude/skills/unity-cli(unity skill install claude-code --local) · 실측 = 배치 테스트 14/14 · error CS 0 · unity status ready(7800) · recompile 오류 0 · console error 0 · close graceful 2026-11-04 08:52:42 +09:00
Assets 스킬 시스템(PD #1093 세션 B) — skills.csv effect_key 51종 처리기 · 액티브(예약/즉시)·패시브 · HUD 스킬 버튼 · 적 무장 패시브 · 스킬 레벨업·스킬서 2026-11-05 23:31:27 +09:00
Packages P38-7 적용 — com.unity.pipeline 0.10.0-exp.1 설치(unity pipeline install) · 프로젝트 CLAUDE.md(Unity 공식 CLI 워크플로 · 배치 실행 · 코드 규칙) · README CLI 절 안내 1줄 · Unity CLI 에이전트 스킬 .claude/skills/unity-cli(unity skill install claude-code --local) · 실측 = 배치 테스트 14/14 · error CS 0 · unity status ready(7800) · recompile 오류 0 · console error 0 · close graceful 2026-11-04 08:52:42 +09:00
ProjectSettings 궁병 — 조준 방향에 적이 없으면 목표점까지 이동(PD 2026-11-04 2차 지시 · 「행동 취소」 폐기) · 에디터 그래픽 API D3D11 우선(oCam 훅 D3D12 크래시 우회) · 테스트 17/17 2026-11-04 15:16:15 +09:00
Tools 챕터 1~10 기획 확정판 월드맵 반영(PD #1091 ③) — 챕터맵 보강 세션 납품 worldmap 10장(QA PASS · md5 20/20) → Resources/ChapterMap/Maps·Data/ch01~ch10(파일 번호 = 기획 장 · 가안 맵 대체) · world.json 길·장소 갱신 · Tools/apply_delivery.py worldmap kind(md5 검증·복사·world.json 항목 교체 · 같은 맵 뒤 납품이 있으면 앞 것 .superseded.json · --kind 필터 · QA 「PASS(…)」 허용) · chapters.csv map = 1:1(3·7장 임시 맵 1 해소) · 노드 = Data/<맵>.json stages[].at(번호로 맞춤 · 없으면 slots_N → 길 균등) · 테스트 41/41(신규: 10장 노드 수·보스 = 5의 배수·지명·길 위·깃발 겹침 없음) · console error 0 2026-11-05 18:56:15 +09:00
.gitignore 삼국지 슬링샷 프로토타입 초기 구현 — 턴제 슬링샷 전투(보병·기병·궁병·창병 규칙 · 상성·반격 · 창병 대기 · 적 AI · HUD · 4 스테이지) · 도형 플레이스홀더 · 설정 자산 SOT · 플레이모드 테스트 12종 · CLI 셋업/테스트/자동 플레이 캡처 2026-11-04 04:10:10 +09:00
CLAUDE.md 스킬 시스템(PD #1093 세션 B) — skills.csv effect_key 51종 처리기 · 액티브(예약/즉시)·패시브 · HUD 스킬 버튼 · 적 무장 패시브 · 스킬 레벨업·스킬서 2026-11-05 23:31:27 +09:00
README.md 충돌 연출 #1081 — 보병 알까기 양쪽 동시 튕김(자신 = 반대 방향 × collisionSelfBounceRatio 0.5) · 부딪힌 순간 즉시 피해 교환·밀기(등속 접근 · 돌진 연출 대기 폐기) · 체력바 머리 위 · 전장 배경 2판(VSClone 일러 풍 · 삼국지 전장) · 테스트 22/22 2026-11-04 17:32:07 +09:00

README.md

삼국지 슬링샷 (가제) — 턴제 슬링샷 전투 프로토타입

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/ — 병종 규칙·턴 흐름·승리 판정 테스트