P5-01 캐릭터 선택·패시브·투입 가격¶
작전 브리핑의 요원 버튼을 누르면 선봉대·질주자·방벽병을 순환합니다. 버튼에는 캐릭터 이름과 추가 투입 비용, 바로 아래에는 패시브 이름과 실제 효과가 표시됩니다. 작전 투입 시 총비용은 맵·지역·난이도 비용에 캐릭터 가격을 한 번만 더하며, 선택 패시브는 작전 중 플레이어 능력치에 적용됩니다.
현재 3종은 기획 데이터가 확정되기 전의 임시 비교값입니다.
| 캐릭터 | 추가 비용 | 패시브 | 런타임 효과 |
|---|---|---|---|
| 선봉대 | 0 C | 표준 프레임 | 추가 능력 보정 없음 |
| 질주자 | 120 C | 과충전 보폭 | 이동 속도 +10% |
| 방벽병 | 160 C | 강화 프레임 | 최대 체력 +35, 방어력 +2, 이동 속도 -8% |
데이터와 공급자¶
- Google Sheet
Character: 1행 변수명, 2행 설명, 3행 이후 개별 캐릭터입니다. - 확정 배포:
character_catalog.csv와 Web 내장 payload를 사용합니다. - 실시간 시험: 작전 준비의 실시간 모드가 공개 Sheet CSV를 3초 주기로 읽습니다.
- 잘못된 열, 중복 ID, 음수 비용, 0 이하 속도 배율은 카탈로그 교체 전에 거부합니다.
source_status=temporary|confirmed로 기획 확정 여부를 데이터 자체에 남깁니다.
모듈 경계¶
CharacterDefinition은 한 캐릭터의 데이터와 유효성만, CharacterTable은 CSV 파싱만, CharacterSelectionService는 목록 공급·선택·작전 투자 context만 소유합니다. 기존 OperationContractService는 캐릭터 종류를 모르며 전달받은 additional_entry_cost만 총비용에 합칩니다. 플레이어는 캐릭터 ID를 모르고 selected_character 런타임 수정자만 받습니다. 브리핑 Presenter는 스냅샷을 표시할 뿐 비용이나 패시브를 계산하지 않습니다.
FeatureManifest에서 character_selection_enabled=false로 끄면 기존 맵·난이도·페널티 계약과 무료 기본 작전은 유지됩니다. 캐릭터 모듈은 작전 계약과 준비 UI가 활성일 때만 허용됩니다.
플레이어 인식 E2E¶
캐릭터 변경 → 버튼의 이름·추가 비용 확인 → 총 견적 +120 C 확인 → 작전 투입 → 이동 속도 300→330 확인을 한 테스트가 검증합니다. 소·중·대형×3난이도 9조합 회귀도 별도로 유지합니다. 후속 P5-02 주·보조무기·스킬 투자와 비용이 같은 작전 견적에 한 번씩 합산됩니다.
기획자는 위키 홈의 DATA-P5-01-01 요청에 Notion 근거를 남기고 Sheet의 임시 행을 교체합니다. 캐릭터 수, 가격, 패시브 수치가 바뀌어도 서비스·계약·브리핑 코드는 수정하지 않는 것이 목표입니다.