# 호문쿨루스 — 작업 노트

이리듐192 · 시스템 설계 · Unity 코드 구현

육성 결과가 전투와 다음 세대에 남는 로그라이크 RPG입니다. 실제 파츠 원본과 데이터 규칙을 함께 공개합니다.

## 자료 기준

Unity C# 소스 · v6 데이터 · 실제 파츠 초안

## 구조와 결과

### 태어나고 육성하기

24턴 안에서 훈련과 피로도를 관리합니다. 데이터는 안정·피로·과열 구간을 나누고 훈련 효율을 달리 정의합니다.

근거: DT_GameConstants · 피로 구간 0–29 / 30–69 / 70–89

### 1대1 합 전투

육성한 유효 스탯을 Combatant로 전달합니다. 행동 우선권, SP, 보호막과 적 의도를 전투 규칙에서 계산합니다.

근거: BattleRules.cs / Combatant / EnemyAi

### 파츠를 바꾸기

머리·몸통·팔·다리를 나누어 부위별 교체를 구성합니다. 아래 이미지들은 실제 저장소의 조립 검증 전 초안입니다.

근거: Resources/Sprites/Parts · Base / Wolf

### 다음 세대로 잇기

인자 계승과 공명으로 런 이후에도 선택이 남도록 설계했습니다. 난수 상태를 포함한 세이브 구조로 재현성을 다룹니다.

근거: 계승 규칙 / 12턴 공명 / 세이브 난수 상태

## 개발 기록

- GDD v6 · 육성·전투·계승의 규칙: 서로 다른 시스템이 같은 상태와 ID를 참조하도록 정리했습니다.
- DATA v6 · 16개 시트로 수치 분리: 파츠·스킬·적·턴 카드·인자와 밸런스 상수를 코드 밖의 테이블로 관리합니다.
- Unity · 규칙과 UI의 경계: GameSession 명령과 이벤트를 중심으로 Presenter/View를 연결한 코드가 있습니다.
- ART · 8개 파츠의 형태 실험: 기본·늑대 부위를 따로 만들었습니다. 아래 전시는 조립된 완성 캐릭터가 아닙니다.

## 실제 코드 발췌

BattleRules.cs · 137–146

```
        private static double InitiativeOf(Combatant c, IRandom rng, IGameData data)
        {
            double value = StatRules.Initiative(c.Stat(StatType.Agi), rng, data);
            var haste = c.GetStatus(Haste);
            if (haste != null) value += haste.Value * haste.Stacks;
            value += c.Stacks(Freeze) * data.GetNumber(ConstantKeys.StatusFreezeInitiativeMod);
            var slow = c.GetStatus(Slow);
            if (slow != null) value *= Math.Max(0, 1 - slow.Value * slow.Stacks / 100.0);
            return value;
        }
```

실제 C#의 행동 우선권 계산 함수입니다. 기본 민첩 계산에 가속·빙결·감속 상태를 반영합니다.

## 현재 단계

기획서·데이터와 Unity 구현 코드가 존재하는 개발 프로젝트입니다. 이 포트폴리오에서 Unity 빌드·전체 플레이를 다시 검증하지 않았으므로 출시작이나 완성 게임으로 표시하지 않습니다.

## 사용한 자료

- 호문쿨루스 통합 게임 기획서 v6
- 호문쿨루스 데이터 테이블 v6 · 16개 시트
- GameSession.cs / BattleRules.cs / EditMode·PlayMode 테스트 코드

이 노트는 공개 소개용으로 정리한 요약본입니다. 비공개 원본·개인정보·인증 정보는 포함하지 않습니다.
