← 문서 묶음 · 기획서 · 경제 · 캐릭터 · 적·보스 · 장비·아이템
01 전투 구조와 상수 · 02 틱 판정 순서 · 03 행동·필살기·행동 불가 · 04 타깃 표기 전체 · 04 옛 표기 대응과 동시 발생 · 05 데미지·회복 공식 · 06 속성 상성표와 색 전환 · 07 버프 전체 목록 · 08 디버프 전체 목록 · 08 상태 id 통일 (1) — 정의 충돌·characters · 08 상태 id 통일 (2) — enemies·bosses · 09 중첩 규칙·즉시 효과·제어 · 10 능력치 계산 순서와 전투력 · 11 전투 시뮬레이션 검증 · 11 판별 추천 전투력과 검사 · 12 적 곡선 결정과 진행 속도 검증 · 12 곡선을 고른 까닭과 경제 대조 · 13 동료 레벨 비용 (Lv1~51) · 13 동료 레벨 비용 (Lv51~100) · 14 브루니 레벨 경험치 (Lv1~150) · 15 승급 (★) 비용 · 16 각성·스킬 강화 비용 · 17 장비 강화 비용 (+0~+20) · 17 끝없는 지출처 — 색 다듬기·방울 교환 · 18 물감 항아리 레벨 비용 (Lv1~30) · 19 유물 레벨·인연 경험치 · 19 유물 숫돌 공급 계산 · 20 바이블 추가 제안과 구현 기준
bruni · 게임전투·성장 명세서
Combat / Growth Specification
브루니 키우기: 바랜 섬
전투·성장 명세서
만든 날 2026-10-13 · 고친 날 2026-10-15 — 깃 이력에서 자동으로 박혀요
자동 전투 판정 · 데미지 공식 · 상태 효과 · 성장 비용 표 전체
| 항목 | 내용 |
| 문서 번호 | 2 / 15 (systems) |
| 기준 | 설계 바이블 2026-10-13 초판 — 이름·id·수치는 바이블과 같음. 단 적 판 배율 m(s) 는 12장에서 결정한 곡선(바이블 6-4 갱신 대상) |
| 적 곡선 | m(s) = 1 + 0.125 × (s − 1) + 0.00005 × (s − 1)² — game-design/gen/curve.py 한 줄이 원본. enemies·stages·economy 가 같은 함수를 읽는다 |
| 데이터 | game-design/data/combat.json · game-design/data/growth.json (게임에 그대로 들어가는 파일) |
| 생성 | game-design/gen/systems_data.py → systems.py. 표의 숫자는 모두 스크립트가 계산한 값 |
| 참조 구현 | game-design/gen/combat_sim.py — 02~05장 틱 판정을 파이썬으로 옮긴 것. Godot battle.gd 는 같은 시드에서 같은 로그를 내야 함 |
| 어휘 원본 | game-design/gen/vocab.py → combat.json statuses·instant·targeting. characters·enemies·bosses JSON 의 효과 id·타깃 표기는 이 원본 id 로 생성됨 (04·08장 대응표) |
| 엔진 | Godot 4.7.2 · GDScript · 고정 틱 100ms |
이 문서가 정하는 것 / 넘기는 것
| 범위 | 이 문서 | 다른 문서 |
| 전투 | 틱 순서, 행동·게이지, 타깃, 동시 발생, 데미지·회복·보호막 공식, 상성, 상태 효과 전체 | 동료별 스킬 수치 → 캐릭터 명세서 · 적·보스 패턴 → 적·보스 명세서 |
| 성장 | 브루니·동료 레벨, 승급, 각성, 스킬 강화, 장비 강화, 물감 항아리, 유물 레벨, 인연, 색 전환 — 1~최대 비용 표 | 장비 84종 기본 능력치·유물 효과 → 장비·아이템 명세서 · 항아리 확률 → 뽑기·상점 명세서 |
| 수치 점검 | 전투 시뮬레이션으로 필요 배율·진행 속도 검증 | 재화 수입·지출 시뮬레이션 → 재화·성장 속도 명세서 · 판별 추천 전투력 → 스테이지 명세서 |
bruni01
bruni · 게임전투·성장 명세서
01 / Overview
전투 구조와 상수
전투는 자동 실시간입니다. 화면은 매 프레임 그리지만 판정은 100ms 고정 틱에서만 일어납니다. 프레임 속도가 달라도(30·60·120fps) 결과가 같고, 같은 시드를 넣으면 같은 전투가 재현됩니다. 2배속은 실제 100ms 마다 틱을 2번 돌리는 방식이라 판정은 1배속과 똑같습니다.
| 상수 | 값 | 비고 |
| 틱 | 100ms | _physics_process 가 아니라 누적 시간 → 틱 횟수로 돌림 (배속·프레임 독립) |
| 배속 | 1배 · 2배 | 2배는 무료. 판정 동일 |
| 행동 간격 | round(100000 ÷ 속도) ms | 속도 100 → 1,000ms · 110 → 909ms · 90 → 1,111ms |
| 첫 행동 | 행동 간격 × 0.5 | 웨이브 시작 순간 모두가 동시에 치지 않게 |
| 필살기 게이지 | 0~100 · S1 +20 · 피격 +5 | 바이블 6-3. 웨이브가 바뀌어도 유지 |
| 치명 | 기본 5% · 피해 ×1.5 | 치명률 상한 100% |
| 피해 난수 | ×0.95~1.05 균등 | 전투 시드로 뽑음 |
| 시간 제한 | 일반 판 60초 · 보스 판 90초 | 넘기면 패배 |
| 판 구성 | 일반 = 웨이브 3 · 보스 판 = 웨이브 2 + 보스 웨이브 | 적 수·배치는 stages 문서 |
| 웨이브 전환 | 1000ms (시간 정지) | 아군 상태 그대로 이어짐 |
| 파티 | 5칸 = 전열 1·2 + 후열 3·4·5. 브루니 필수 | 적도 같은 칸 번호 (1·2 전열) |
스킬 3개의 판정 자리
| 스킬 | 언제 | 게이지 | 판정 단계 |
| S1 기본기 | 행동 타이머가 0 이 될 때마다 | +20 (광역도 1회분) | ⑧-2 |
| S2 필살기 | 게이지 100 — 자동이면 즉시, 수동이면 초상 터치 | 0 으로 | ⑧-1 (행동 타이머를 쓰지 않는 끼어들기) |
| S3 패시브 | 상시 능력치 / 조건 반응(피격·처치·체력 %) | — | 상시는 능력치 계산(10장), 반응은 ⑧-3 |
방치 화면의 전투는 연출입니다방치 사냥 화면은 같은 엔진으로 최고 판을 되풀이해 보여 주지만
보상은 전투 결과가 아니라 시간 공식으로 계산합니다(바이블 8장 ·
재화·성장 속도 명세서). 그래서 방치 전투는 결과를 저장하지 않고, 꺼 둔 동안 시뮬레이션하지도 않습니다.
bruni02
bruni · 게임전투·성장 명세서
02 / Tick Order
틱 판정 순서
한 틱 안의 순서는 아래 열두 단계로 고정합니다. 순서가 바뀌면 같은 편성에서 결과가 달라지므로, 구현은 이 순서를 함수 단위로 그대로 옮깁니다(오른쪽 열이 battle.gd 함수 이름).
①~②입력 · 시간
100ms
③~⑤지속 효과 · 만료 · 쓰러짐
그다음
⑥~⑦타이머 · 정렬
⑧-1필살기 끼어들기
그다음
⑧-2 · ⑧-3기본기 · 맞을 때마다 반응
끝에
⑨ → ⑩웨이브(승리 먼저) · 시간 제한
| 단계 | 이름 | 판정 | 함수 |
| ① | 입력 | 수동 필살기 요청을 큐에 넣음 (게이지 100 인 동료 초상 터치). 배속 전환·일시정지 반영 | battle.gd _poll_input() |
| ② | 시간 | 전투 시각 += 100ms. 웨이브 전환 중(1.0초)이면 ②~⑩ 을 건너뜀 | _advance_clock() |
| ③ | 지속 효과 | 부여 시점부터 1000ms 마다 발동하는 효과 처리. 순서: 아군 칸 1→5, 적 칸 1→5. 한 유닛 안에서는 피해(화상→중독) 다음 회복(재생) | _tick_periodic() |
| ④ | 지속시간 | 모든 상태의 남은 시간 −100ms, 0 이하 제거. 행동 불가가 끝난 유닛에 「버팀」 2초 부여 | _tick_durations() |
| ⑤ | 쓰러짐 1 | ③ 으로 체력 0 이 된 유닛 처리 (부활 → 아니면 퇴장). 퇴장한 유닛은 이번 틱 행동하지 않음 | _resolve_deaths() |
| ⑥ | 행동 타이머 | 살아 있는 유닛 타이머 −100ms. 0 이하가 된 유닛을 「차례 목록」에 넣고 타이머 += 행동 간격 | _tick_timers() |
| ⑦ | 정렬 | 차례 목록 정렬: 속도 높은 순 → 아군 먼저 → 칸 번호 작은 순 | _sort_ready() |
| ⑧-1 | 필살기 | 게이지 100 + 행동 가능 + 침묵 아님인 유닛이 S2 를 씀 (자동: 해당자 전원 / 수동: 큐에 든 동료만, 적은 항상 자동). 같은 정렬 규칙. 행동 타이머를 쓰지 않음 | _cast_ultimates() |
| ⑧-2 | 기본기 | 정렬된 차례 목록 순서로 S1. 행동 직전에 생존·행동 불가·타깃을 다시 확인 (타깃은 이 순간에 고름) | _run_actions() |
| ⑧-3 | 반응 | 각 피해·회복 직후 그 자리에서: 보호막 흡수 → 체력 감소 → 게이지(+5) → S3 반응 패시브 → 반사·흡색 → 쓰러짐 2 | _apply_hit() |
| ⑨ | 웨이브 판정 | 적 전멸을 먼저 봄 → 다음 웨이브(1.0초 전환) 또는 승리. 그다음 아군 전멸 → 패배 | _check_wave() |
| ⑩ | 시간 제한 | 전투 시각 ≥ 제한(일반 60초·보스 90초)이면 패배(시간 초과). ⑨ 에서 승리했으면 보지 않음 | _check_timeout() |
왜 지속 효과가 행동보다 먼저인가화상·재생이 같은 틱의 행동보다 먼저 들어가야 「화상으로 쓰러진 적이 마지막 한 대를 치는」 일이 없습니다. 반대로 행동으로 쓰러진 유닛은 ⑧-3 에서 바로 빠지므로 같은 틱 뒷순서 유닛이 그 유닛을 겨누지 않습니다.
bruni03
bruni · 게임전투·성장 명세서
03 / Actions
행동·필살기·행동 불가
행동 타이머
유닛마다 타이머(ms)를 하나 둡니다. 웨이브 시작 때 행동 간격 × 0.5로 놓고, 틱마다 100 을 뺍니다. 0 이하가 되면 그 틱의 차례 목록에 들어가고 타이머에 간격을 더합니다(0 으로 되돌리지 않음 — 남은 ms 가 다음 차례로 넘어가 속도 차이가 정확히 반영됩니다). 속도 버프로 간격이 바뀌면 다음에 더할 때부터 적용합니다.
필살기
게이지가 100 이 된 동료는 ⑧-1 에서 S2 를 씁니다. 자동 모드는 조건이 되는 즉시, 수동 모드는 초상을 누른 다음 틱에 씁니다. 적은 늘 자동입니다. S2 를 쓰면 게이지가 0 이 되고, S2 자체는 게이지를 올리지 않습니다. 침묵 중에는 게이지가 100 에 머물렀다가 풀리는 틱에 바로 씁니다. 각성 3 단계는 웨이브 1 을 게이지 20 에서 시작합니다(16장).
행동 불가
기절·빙결 중에는 S1·S2 모두 못 씁니다. 타이머는 계속 흐르고, 그 사이 돌아온 차례는 사라집니다(밀리지 않음). 행동 불가가 끝나면 「버팀」 2초가 자동으로 걸려 연속 기절을 막습니다.
로그 예시 — 참조 구현 실제 출력
참조 파티(돌격 R · 브루니 SSR · 사격 SR · 술사 SSR · 치유 SR, 모두 Lv1 기준 능력치) 대 s001 첫 웨이브, 시드 7, 첫 2.6초입니다. 이 전투는 16.5초에 승리했습니다. Godot 구현은 같은 입력에서 같은 줄을 내야 합니다.
| 시각(ms) | 사건 |
| 0 | 웨이브 1 시작 (적 4) |
| 500 | 브루니→적1 91 (남은 509) |
| 500 | 사격→적1 77 (남은 432) |
| 500 | 치유→적1 27 (남은 405) |
| 600 | 술사→적1 52 (남은 353) |
| 600 | 술사→적2 77 치명 (남은 523) |
| 600 | 술사→적3 49 (남은 551) |
| 600 | 술사→적4 53 (남은 547) |
| 600 | 적1→돌격 27 (남은 1125) |
| 600 | 적2→돌격 29 (남은 1096) |
| 600 | 적3→돌격 27 (남은 1069) |
| 600 | 적4→돌격 26 (남은 1043) |
| 600 | 돌격→적1 22 (남은 331) |
| 1,500 | 브루니→적1 91 (남은 240) |
| 1,500 | 사격→적1 83 (남은 157) |
| 1,600 | 술사→적1 52 (남은 105) |
| 1,600 | 술사→적2 51 (남은 472) |
| 1,600 | 술사→적3 49 (남은 502) |
| 1,600 | 술사→적4 50 (남은 497) |
| 1,600 | 적1→돌격 27 (남은 1079) |
| 1,600 | 적2→돌격 28 (남은 1051) |
| 1,600 | 적3→돌격 27 (남은 1024) |
| 1,600 | 적4→돌격 28 (남은 996) |
| 1,700 | 돌격→적1 22 (남은 83) |
| 2,400 | 브루니→적1 98 (남은 0) |
| 2,400 | 적1 쓰러짐 |
bruni04
bruni · 게임전투·성장 명세서
04 / Targeting
타깃 표기 전체
타깃 표기 — 데이터에 쓰이는 21개 전부
스킬·적 기술 데이터의 target 칸(동료는 효과 튜플의 둘째 칸)에 아래 id 중 하나를 적습니다. characters·enemies·bosses JSON 은 이 id 로만 생성되고, 표에 없는 표기는 생성기(vocab.canon_target)가 오류로 멈춥니다. 모든 표기는 시전자 기준입니다 — 적이 쓰면 「상대」가 우리 편, 「아군」이 적 편입니다. 타깃은 행동하는 순간에 고릅니다. 무작위 표기(rand2·3·4)는 전투 시드의 난수로 뽑으므로 같은 시드면 같은 대상이 나옵니다(재현성 유지).
| 표기 | 대상 집합 | 고르는 규칙 | 같을 때 | 도발 | 숨음 |
| front | 상대 1 | 상대 전열(칸 1·2) 생존자 중 칸 번호가 가장 작은 유닛. 전열 전멸이면 후열에서 같은 규칙 | 칸 번호 작은 쪽 | ○ | ○ |
| back | 상대 1 | 상대 후열(칸 3·4·5) 생존자 중 칸 번호가 가장 작은 유닛. 후열 전멸이면 전열에서 같은 규칙 | 칸 번호 작은 쪽 | ○ | ○ |
| lowest | 상대 1 | 상대 생존자 중 현재 체력 ÷ 최대 체력이 가장 낮은 유닛 | 칸 번호 작은 쪽 | ○ | ○ |
| high_atk | 상대 1 | 상대 생존자 중 현재 전투 공격력이 가장 높은 유닛 | 칸 번호 작은 쪽 | ○ | ○ |
| mark | 상대 1 | 상대 중 표식(d_dmg_taken_up) 걸린 유닛 가운데 체력 비율 최저. 없으면 lowest | 칸 번호 작은 쪽 | ○ | ○ |
| pierce | 상대 2 | front 규칙으로 고른 유닛 1 + 그 유닛보다 칸 번호가 큰 생존자 중 가장 작은 유닛 1 (뒤가 없으면 1명) | 칸 번호 작은 쪽 | ○ (첫 대상) | ○ |
| rand2 | 상대 2회 | 2번 뽑음. 매번 상대 생존자 중 균등 무작위 1명(같은 유닛이 또 뽑힐 수 있음). 앞 뽑기로 쓰러진 유닛은 다음 뽑기에서 빠짐 | — | × | ○ |
| rand3 | 상대 3회 | rand2 와 같은 규칙으로 3번 | — | × | ○ |
| rand4 | 상대 4회 | rand2 와 같은 규칙으로 4번 | — | × | ○ |
| row | 상대 전열 전원 | 상대 전열 생존자 전원. 전열 전멸이면 후열 전원 | 칸 번호 순으로 하나씩 판정 | × | × |
| back_all | 상대 후열 전원 | 상대 후열 생존자 전원. 후열 전멸이면 전열 전원 | 칸 번호 순 | × | × |
| all | 상대 전원 | 상대 생존자 전원 | 칸 번호 순 | × | × |
| attacker | 상대 1 | 이 패시브를 일으킨 공격을 한 유닛 (on_hit 계열 발동 조건 전용). 이미 쓰러졌으면 효과 없음 | — | × | × |
| target | 앞 효과와 같음 | 같은 스킬의 바로 앞 효과가 고른 대상 중 아직 살아 있는 유닛 전부. 스킬 첫 효과에 쓰면 발동 조건의 주체(쓰러진·체력 낮은·약화 걸린 아군 등) | 앞 효과 순서 그대로 | — | — |
| self | 자신 | 시전자 자신 | — | — | — |
| a_all | 아군 전원 | 시전자 편 생존자 전원 (자신 포함) | 칸 번호 순 | — | — |
| a_others | 아군 (자신 외) | 자신을 뺀 시전자 편 생존자 전원 | 칸 번호 순 | — | — |
| a_low | 아군 1 | 시전자 편 생존자 중 체력 비율이 가장 낮은 유닛 (자신 포함) | 칸 번호 작은 쪽 | — | — |
| a_low2 | 아군 2 | 시전자 편 생존자를 체력 비율 낮은 순으로 2명 (자신 포함) | 칸 번호 작은 쪽 | — | — |
| a_atk | 아군 1 | 자신을 뺀 시전자 편 생존자 중 현재 공격력이 가장 높은 유닛. 그 버프가 이미 걸려 있으면 다음 순위 | 칸 번호 작은 쪽 | — | — |
| a_attr | 아군 (같은 속성) | 시전자와 같은 속성인 시전자 편 생존자 전원 (자신 포함) | 칸 번호 순 | — | — |
도발 ○ = 상대 편에 도발(b_taunt) 유닛이 있으면 이 규칙 대신 그 유닛(여럿이면 칸 번호 작은 쪽). 숨음 ○ = 숨음(b_stealth) 유닛을 후보에서 빼고, 후보가 모두 숨었으면 숨음을 무시. 광역(row·back_all·all)은 둘 다 무시합니다.
bruni05
bruni · 게임전투·성장 명세서
04 / Targeting
옛 표기 대응과 동시 발생
옛 표기 → 원본 id
문서마다 따로 쓰던 표기를 아래처럼 합쳤습니다. 같은 이름이 뜻이 달랐던 front1(enemies: 전열 중 체력 비율 낮은 쪽 / combat enemy_front: 칸 번호 작은 쪽)은 칸 번호 작은 쪽 하나로 정하고 front 로 이름을 바꿨습니다 — 우리 편 전열 2칸 중 늘 1번 칸(돌격)이 먼저 맞아야 돌격 역할이 성립합니다. 체력 낮은 쪽을 노리는 기술은 lowest 를 씁니다.
| 옛 표기 | 원본 id | 쓰던 곳 |
| front1 | front | enemies·bosses |
| enemy_front | front | combat |
| back1 | back | enemies·bosses |
| low_hp | lowest | combat |
| front_all | row | enemies·bosses |
| e_back | back_all | characters |
| ally_all | a_all | enemies·bosses·combat |
| ally_lowest | a_low | enemies·bosses |
| ally_low_hp | a_low | combat |
| ally_high_atk | a_atk | combat |
target 은 한 가지 뜻target = 같은 스킬의 바로 앞 효과가 고른 대상 중 살아 있는 유닛 전부입니다. 예: 「dmg front 0.70 → debuff target 둔함」은 방금 맞은 앞 적에게 둔함을 겁니다. 스킬의 첫 효과에 쓰이면(조건 발동 패시브) 발동 조건의 주체 — 쓰러진 아군·체력이 낮아진 아군·약화가 걸린 아군·나를 친 적 — 입니다. 구현은 효과 목록을 돌며 직전 결과를 ctx.last_targets 에 넣고, 패시브 발동 때 이 값을 조건 주체로 미리 채웁니다.
동시 발생 처리
| 상황 | 처리 |
| 같은 틱에 여러 유닛 차례 | 속도 높은 순 → 아군 먼저 → 칸 번호 작은 순. 속도는 버프·디버프 반영한 현재 값 |
| 같은 틱에 필살기와 기본기 | 필살기(⑧-1) 전원이 먼저, 그다음 기본기(⑧-2) |
| 차례가 오기 전에 타깃이 쓰러짐 | 타깃은 행동 순간에 고름 — 미리 고른 타깃이 없음. 상대가 전멸했으면 행동을 건너뛰고 게이지도 오르지 않음 |
| 행동 순서가 온 유닛이 같은 틱 앞 행동으로 쓰러짐 | 행동하지 않음. 타이머는 이미 넘어갔으므로 부활해도 다음 간격을 기다림 |
| 광역 도중 대상이 쓰러짐 | 칸 순서대로 하나씩 판정. 이미 쓰러진 대상은 건너뜀. 광역 1회는 시전자 게이지를 한 번만 올린다(+20) |
| 마지막 적과 마지막 아군이 같은 틱에 쓰러짐 | 승리. ⑨ 에서 적 전멸을 먼저 봄 |
| 시간 제한 틱에 마지막 적 처치 | 승리. ⑨ 가 ⑩ 보다 먼저 |
| 지속 피해로 쓰러진 유닛 | ③ 에서 쓰러지고 ⑤ 에서 퇴장 → 그 틱 행동·필살기 없음 |
| 보호막 두 개 | 큰 값 하나만 남음 (규칙 max) |
| 같은 능력치 버프와 디버프 | %를 더한 뒤 한 번에 곱한다: 공격·방어 배율 0.30~3.00, 속도 배율 0.50~2.00 으로 자름 |
| 반사 피해가 또 반사됨 | 없음. 반사 피해는 반사·흡색·게이지·치명을 일으키지 않음 |
| 회복이 최대 체력을 넘음 | 넘는 양은 버림. 쓰러진 유닛은 회복 대상이 아니다(부활 효과만 예외) |
| 웨이브 사이 | 아군 체력·게이지·상태는 그대로 이어짐. 전환 1.0초 동안 상태 지속시간·시간 제한도 멈춤. 수동 필살기 큐는 비움 |
| 난수 | 전투마다 시드 = hash(판 id, 도전 횟수). 뽑는 순서 고정: 대상마다 치명 → 피해 난수 → 상태 부여 확률. 같은 시드·같은 편성이면 같은 결과(재현 가능) |
bruni06
bruni · 게임전투·성장 명세서
05 / Damage
데미지·회복 공식
피해 공식 (바이블 6-3 + 상태 효과 자리)
피해 = max(1, ⌊ A × K × E × Cr × A ÷ (A + D) × R × (1 + 주는 피해%) × (1 + 받는 피해%) ⌋)
A = 공격자 전투 공격력 · K = 스킬 계수 × (1 + 0.06 × (스킬 Lv − 1)) · E = 상성 배율(06장) · Cr = 치명이면 1.5 + 치명 피해 버프, 아니면 1 ·
D = 대상 전투 방어력 · R = 0.95~1.05 · 주는 피해% = 「기세」 등 합 · 받는 피해% = 「표식」·「빙결」 − 「단단함」 합 (「무른 급소」는 Cr 의 0.5 를 줄임) (곱 0.5~2.0 으로 자름)
방어 보정 A ÷ (A + D)는 공격과 방어의 비율만 봅니다. 그래서 양쪽이 같은 배율로 커지면 판정이 같습니다 — s001 과 s300 에서 필요한 배율이 거의 같게 나온 11장의 검증이 이 성질을 확인한 것입니다. 반올림은 마지막에 한 번 내림합니다.
회복·보호막·지속 피해
| 종류 | 공식 | 규칙 |
| 회복 | ⌊ 시전자 공격 × 치유 계수(스킬 Lv 반영) × (1 + 받는 회복%) × (1 − 메마름%) ⌋ | 방어·상성·치명 없음. 최대 체력 초과분 버림 |
| 보호막 | 시전자 공격 × 계수 또는 대상 최대 체력 × % | 피해를 체력보다 먼저 받음. 규칙 max (09장) |
| 화상 | 부여 순간 시전자 공격 × 0.25 / 초 | 방어 무시 · 치명 없음 · 시전자마다 따로 (최대 3) |
| 중독 | 부여 순간 시전자 공격 × 계수(기본 0.10) × 중첩 / 초 | 방어 무시 · 최대 5중첩 · 회복 감소 없음 |
| 얼룩·감전 | 부여 순간 시전자 공격 × 계수 / 초 (감전은 게이지 −5/초 추가) | 방어 무시 · 치명 없음 · 시전자마다 따로 (최대 3). 화상과 따로 셈 |
| 반사 (가시) | 받은 피해(보호막 흡수 전) × 스킬 %(기본 20%) | 공격자에게. 반사 피해는 연쇄·게이지·치명 없음 |
| 재생 | 동료: 시전자 공격 × 계수 / 초 · 적: 대상 최대 체력 % / 초 | 방어·상성 무관. 편으로 값의 뜻이 갈림(08장 통일 표) |
| 흡색 | 준 피해(보호막 흡수분 포함) × 15% | 회복으로 처리 → 메마름 영향 받음 |
계산 예시 — 파이썬 실행값
| 경우 | A | D | 방어 보정 | K | E | 피해 (R=0.95~1.05) | 대상 체력 · 필요 타수 |
| 브루니 Lv1 ★3 S1(계수 1.0) → s001 적, 같은 속성 | 150 | 40 | 0.79 | 1 | 1 | 112 ~ 124 (중간 118) | 600 · 6타 |
| 같은 공격, 상성 유리 (녹 → 청) | 150 | 40 | 0.79 | 1 | 1.3 | 146 ~ 161 (중간 153) | 600 · 4타 |
| 같은 공격, 상성 불리 + 치명 (녹 → 홍) | 150 | 40 | 0.79 | 1 | 0.8 | 135 ~ 149 (중간 142) | 600 · 5타 |
| SSR 타격 Lv60 ★4 S2(계수 3.0, 스킬 Lv5 ×1.24) → s150 적 | 1,025 | 829.4 | 0.55 | 3.72 | 1 | 2,003 ~ 2,214 (중간 2,108) | 12,441 · 6타 |
| 위 + 대상 「갈라짐」(방어 −30%) | 1,025 | 580.6 | 0.64 | 3.72 | 1 | 2,313 ~ 2,557 (중간 2,435) | 12,441 · 6타 |
| 위 + 「표식」 +15% (받는 피해) | 1,025 | 580.6 | 0.64 | 3.72 | 1 | 2,660 ~ 2,940 (중간 2,800) | 12,441 · 5타 |
브루니 Lv1 ★3 공격 150 = 100 × 1.00(SSR) × 1.25(타격) × 1.20(★3). s150 적 = 바이블 6-4 기준 공 60·체 600·방 40 × m(150) = 1 + 0.125 × (150 − 1) + 0.00005 × (150 − 1)² = ×20.74 (12장 결정 곡선). SSR 타격 Lv60 ★4 공격 = 125 × 6.31 × 1.3.
bruni07
bruni · 게임전투·성장 명세서
06 / Elements
속성 상성표와 색 전환
바이블 4-2 그대로입니다. 순환 홍 → 녹 → 청 → 홍, 맞물림 황 ↔ 묵(서로 유리). 유리 ×1.30, 불리 ×0.80. 무속성은 없습니다. 행은 공격하는 쪽, 열은 맞는 쪽입니다.
| 공격 \ 방어 | 홍 방어 | 녹 방어 | 청 방어 | 황 방어 | 묵 방어 |
| 홍 공격 | ×1.00 | ×1.30 | ×0.80 | ×1.00 | ×1.00 |
| 녹 공격 | ×0.80 | ×1.00 | ×1.30 | ×1.00 | ×1.00 |
| 청 공격 | ×1.30 | ×0.80 | ×1.00 | ×1.00 | ×1.00 |
| 황 공격 | ×1.00 | ×1.00 | ×1.00 | ×1.00 | ×1.30 |
| 묵 공격 | ×1.00 | ×1.00 | ×1.00 | ×1.30 | ×1.00 |
황·묵만 서로 유리한 이유순환 3속성은 늘 「이기는 상대 하나, 지는 상대 하나」가 있지만 황·묵은 서로에게만 강하고 지는 상대가 없습니다. 대신 서로 만나면 양쪽 다 ×1.30 이라 판이 빨리 끝납니다 — 5장(황)·6장(묵) 보스전이 짧고 날카로워지도록 일부러 둔 대칭입니다.
속성이 쓰이는 곳
| 자리 | 규칙 |
| 피해 | 공격자 속성 → 대상 속성 배율 E. 광역은 대상마다 따로 |
| 회복·보호막·버프 | 속성 영향 없음 |
| 지속 피해 | 부여할 때의 E 를 곱해 둠 (화상: 홍 시전자 → 녹 대상이면 ×1.30 고정) |
| 보스 b008 잿빛 왕관 | 페이즈마다 속성 전환 — 전환 틱의 ⑧-1 이전에 바뀜 (패턴은 enemies 문서) |
브루니 색 전환 (바이블 6 · color)
브루니만 속성을 바꿀 수 있습니다. 전투 밖(편성 화면)에서 비용 없이 고르고, 전투 중에는 못 바꿉니다. 바뀌는 것은 브루니의 속성(S1·S2 의 E 와 맞을 때의 E)과 전투 그림 팔레트뿐이고 능력치·스킬 계수는 그대로입니다. 방치 사냥에는 영향이 없습니다(보상은 시간 공식).
| 색 | 해금 | 그림 (art 문서가 확정) |
| 녹 | 시작 | char/c001_battle_green.png (팔레트 bruni_green) |
| 홍 | s030 클리어 (1장 10화) | char/c001_battle_red.png (팔레트 bruni_red) |
| 청 | s060 클리어 (2장 10화) | char/c001_battle_blue.png (팔레트 bruni_blue) |
| 황 | s170 클리어 (5장 10화) | char/c001_battle_yellow.png (팔레트 bruni_yellow) |
| 묵 | s210 클리어 (6장 10화) | char/c001_battle_ink.png (팔레트 bruni_ink) |
bruni08
bruni · 게임전투·성장 명세서
07 / Buffs
버프 전체 목록
상태 효과는 이 표(combat.json statuses)가 유일한 원본입니다. 동료·적·보스 데이터는 여기 id 만 쓰고, 정의 문구를 따로 두지 않습니다(enemies.json 의 status 사전은 이름과 참조만 남김). 스킬은 id 와 수치·지속·확률만 바꿔 씁니다(예: 「공격 강화 +30% 10초」). 표에 없는 효과가 필요하면 game-design/gen/vocab.py 에 행을 먼저 더합니다. 「기본 수치」는 스킬이 값을 따로 적지 않았을 때 쓰는 값입니다.
버프 (22종)
| id | 이름 | 구분 | 효과 | 스킬이 적는 값 | 기본 수치 | 지속 | 중첩 | 최대 | 제거 |
| b_atk_up | 공격 강화 | 버프 | 공격력 증가 | % (20 = +20%) | +20% | 8초 | refresh | 1 | 해제 가능 |
| b_def_up | 방어 강화 | 버프 | 방어력 증가 | % | +30% | 8초 | refresh | 1 | 해제 가능 |
| b_spd_up | 가속 | 버프 | 속도 증가 (행동 간격 단축) | % | +20% | 8초 | refresh | 1 | 해제 가능 |
| b_crit_up | 날카로움 | 버프 | 치명률 증가 | %p | +20%p | 8초 | refresh | 1 | 해제 가능 |
| b_critdmg_up | 급소 노림 | 버프 | 치명 피해 증가 (기본 150% 에 더함) | %p | +30%p | 8초 | refresh | 1 | 해제 가능 |
| b_dmg_up | 기세 | 버프 | 주는 피해 증가 | % / 중첩 | +5% / 중첩 | 10초 | stack | 3 | 해제 가능 |
| b_dmg_reduce | 단단함 | 버프 | 받는 피해 감소 | % | −20% | 8초 | refresh | 1 | 해제 가능 |
| b_crit_taken_down | 무른 급소 | 버프 | 치명으로 받을 때 치명 배율의 추가분(×1.5 의 0.5)을 줄임 | % | −30% | 8초 | refresh | 1 | 해제 가능 |
| b_heal_up | 생기 | 버프 | 받는 회복량 증가 | % | +25% | 8초 | refresh | 1 | 해제 가능 |
| b_heal_power_up | 따뜻한 손 | 버프 | 자신이 주는 회복·재생·보호막 양 증가 | % | +20% | 8초 | refresh | 1 | 해제 가능 |
| b_hp_up | 튼튼함 | 버프 (상시) | 최대 체력 증가. 걸리는 순간 현재 체력도 같은 양만큼 늘고, 풀리면 넘는 체력만 잘림 | % | +10% | 즉시 | refresh | 1 | 해제 불가 (상시 패시브 전용) |
| b_shield | 보호막 | 버프 | 피해를 체력보다 먼저 흡수 | 시전자 최대 체력 % (동료) · 대상 최대 체력 % (적) | 15% | 10초 | max | 1 | 해제 불가 |
| b_regen | 재생 | 버프 | 1초마다 회복 (방어·상성 무관) | 동료: 시전자 공격 × 계수 / 적·보스: 대상 최대 체력 % | 공격 × 0.30 | 6초 | per_src | 3 | 해제 가능 |
| b_taunt | 도발 | 버프 | 상대 편 단일 지정 타깃(04장 「도발 적용」 ○)이 이 유닛으로 바뀜 | — | — | 5초 | refresh | 1 | 해제 불가 |
| b_stealth | 숨음 | 버프 | 상대 편 단일 지정·무작위 타깃 후보에서 빠짐 (광역은 맞음). 후보가 모두 숨음이면 숨음을 무시. 숨은 유닛이 공격하면 그 행동 뒤 풀림 | — | — | 4초 | refresh | 1 | 해제 가능 |
| b_reflect | 가시 | 버프 | 받은 피해(보호막 흡수 전)의 일부를 공격자에게 되돌림. 지속 피해·반사 피해는 되돌리지 않음 | % | 20% | 6초 | refresh | 1 | 해제 가능 |
| b_lifesteal | 흡색 | 버프 | 준 피해 일부만큼 회복 | % | 15% | 8초 | refresh | 1 | 해제 가능 |
| b_cc_resist | 꿋꿋함 | 버프 | 자신에게 걸리는 기절·빙결·침묵 지속 시간 감소 | % | −30% | 8초 | refresh | 1 | 해제 가능 |
| b_debuff_dur_down | 털어내기 | 버프 | 자신에게 걸리는 모든 디버프 지속 시간 감소 (기절·빙결·침묵 포함, 꿋꿋함과 곱함) | % | −20% | 8초 | refresh | 1 | 해제 가능 |
| b_immune | 맑은 마음 | 버프 | 다음 디버프 1개 무효 | 횟수 | 1회 | 15초 | count | 2 | 해제 불가 |
| b_revive | 다시 피는 색 | 버프 | 쓰러질 때 최대 체력 n% 로 1회 일어남 | % | 30% | 전투 끝까지 | unique | 1 | 해제 불가 · 전투 끝까지 |
| b_endure | 버팀 | 버프 (자동) | 행동 불가(기절·빙결) 면역 — 행동 불가가 끝나면 자동 부여 | — | — | 2초 | refresh | 1 | 해제 불가 |
bruni09
bruni · 게임전투·성장 명세서
08 / Debuffs
디버프 전체 목록
디버프 (15종)
| id | 이름 | 구분 | 효과 | 스킬이 적는 값 | 기본 수치 | 지속 | 중첩 | 최대 | 제거 |
| d_atk_down | 무딘 손 | 디버프 | 공격력 감소 | % | −20% | 8초 | refresh | 1 | 정화 가능 |
| d_def_down | 갈라짐 | 디버프 | 방어력 감소 | % | −30% | 8초 | refresh | 1 | 정화 가능 |
| d_spd_down | 둔함 | 디버프 | 속도 감소 (행동 간격이 늘어남) | % | −20% | 6초 | refresh | 1 | 정화 가능 |
| d_dmg_taken_up | 표식 | 디버프 | 받는 피해 증가. 타깃 표기 mark 가 이 상태를 찾음 | % | +10% | 6초 | refresh | 1 | 정화 가능 |
| d_heal_down | 메마름 | 디버프 | 받는 회복량 감소 | % | −50% | 8초 | refresh | 1 | 정화 가능 |
| d_burn | 화상 | 디버프 (지속 피해) | 1초마다 피해 (방어 무시, 치명 없음) | 부여 시점 시전자 공격 × 계수 | 공격 × 0.25 | 6초 | per_src | 3 | 정화 가능 |
| d_stain | 얼룩 | 디버프 (지속 피해) | 1초마다 피해 (방어 무시, 치명 없음). 화상과 따로 셈(둘 다 걸릴 수 있음). 「얼룩 상태」 조건(vs_stained)이 이 id 를 봄 | 부여 시점 시전자 공격 × 계수 | 공격 × 0.25 | 6초 | per_src | 3 | 정화 가능 |
| d_poison | 중독 | 디버프 (지속 피해) | 1초마다 피해 (방어 무시, 치명 없음) × 중첩. 회복 감소 없음 — 회복을 줄이려면 메마름을 따로 건다 | 부여 시점 시전자 공격 × 계수 | 공격 × 0.10 | 8초 | stack | 5 | 정화 가능 |
| d_shock | 감전 | 디버프 (지속 피해) | 1초마다 피해 (방어 무시, 치명 없음) + 필살기 게이지 −5 | 부여 시점 시전자 공격 × 계수 | 공격 × 0.15 | 4초 | per_src | 3 | 정화 가능 |
| d_stun | 기절 | 디버프 (행동 불가) | S1·S2·특수기 사용 불가. 행동 타이머는 흐르고 그 사이 차례는 사라짐(그래서 S1 게이지 +20 도 없음). 피격 게이지 +5 는 받음. 적의 특수기 쿨타임도 흐름 | — | — | 2초 | refresh | 1 | 정화 가능 |
| d_freeze | 빙결 | 디버프 (행동 불가) | 기절과 같음 + 받는 피해 +10% | % | +10% | 2초 | refresh | 1 | 정화 가능 |
| d_silence | 침묵 | 디버프 | S2(필살기)·적 특수기 사용 불가. 게이지는 계속 참(100 에 머묾), 적 특수기 쿨타임도 계속 흐름 → 풀리는 틱에 바로 씀. S1·기본 공격은 함 | — | — | 5초 | refresh | 1 | 정화 가능 |
| d_blind | 눈부심 | 디버프 | S1 이 빗나감 (피해 0, 게이지 +20 은 받음) | 확률 % | 30% | 5초 | refresh | 1 | 정화 가능 |
| d_fade | 바램 | 디버프 | 색을 잃음 — 이 유닛이 주는 피해의 상성 유리 배율 ×1.30 이 ×1.00 이 됨 (불리 ×0.80 은 그대로). 브루니 면역 | — | — | 5초 | refresh | 1 | 정화 가능 |
| d_stagger | 휘청 | 디버프 (보스 대체) | 보스가 기절·빙결·침묵 재적용 면역(6초) 중에 또 걸리면 대신 행동 타이머 +0.5초 | ms | +500ms | 즉시 | instant | 1 | — |
「바램」은 바랜것(적·보스)이 우리 편에 거는 디버프이고 브루니는 면역입니다 — 세계관(2-4) 「브루니만 색을 잃지 않는다」를 전투로 옮긴 것입니다. 아이콘은 ui/status/<id>.png (크기는 art 문서).
bruni10
bruni · 게임전투·성장 명세서
08 / Status IDs
상태 id 통일 (1) — 정의 충돌·characters
정의가 서로 달랐던 것 — 하나로 통일
| 상태 | 전에는 | 이렇게 정함 |
| 기절 d_stun | combat: 타이머는 흐르고 차례가 사라짐 / enemies: 행동·게이지 정지 | combat 쪽. 타이머·적 특수기 쿨타임은 흐르고, 그 사이 차례는 사라짐. 게이지는 S1(+20)을 못 하니 그만큼 안 오르고 피격 +5 는 받음 |
| 침묵 d_silence | combat: S2 불가·게이지 계속 참 / enemies: 게이지 충전 정지 | combat 쪽. 게이지·적 특수기 쿨타임은 계속 차고, 풀리는 틱에 바로 씀 |
| 바램 d_fade | combat: 공·체·방 −6% 중첩 / enemies: 상성 유리 ×1.30 → ×1.00 | enemies 쪽. 적·보스 기술 9곳과 보스 공략(b003·b020 등)이 「상성이 사라진다」를 전제로 짜여 있다. 능력치 감소는 무딘 손·갈라짐으로 따로 건다 |
| 중독 d_poison | combat: 지속 피해 × 중첩 / enemies: 지속 피해 + 받는 회복 −30% | combat 쪽. 중독은 지속 피해만. 회복 감소가 필요한 기술은 메마름(d_heal_down)을 같이 적는다 |
| 보스 제어 | combat: 기절·빙결·침묵 면역 → 휘청 / enemies: 지속 50% + 6초 재적용 면역 | 둘을 합침. 보스는 지속 50% 로 걸리고, 그 뒤 6초 안에 다시 걸리면 휘청(타이머 +0.5초)으로 바뀜. 보스 공략(b002 「황 공격에 1.5초 기절」)이 기절을 전제로 함 |
| 재생 b_regen | combat: 시전자 공격 × 0.30 / enemies: 최대 체력 % | 값의 뜻을 편으로 나눔: 동료가 걸면 시전자 공격 × 계수, 적·보스가 걸면 대상 최대 체력 % |
| 표식 d_dmg_taken_up | combat: +5%/중첩 3 / characters: 받는 피해 +v% (10·15) | characters 쪽. 스킬이 적은 % 하나, refresh(큰 값). 중첩하지 않음 |
옛 키 → 원본 id (characters.json)
characters.json 의 buff/debuff 효과 키는 아래 원본 id 로 다시 생성했습니다. 「(연산자)」 줄은 효과 튜플의 첫 칸(DSL 연산자) 이름이 어느 상태를 거는지 적은 것입니다 — 연산자 이름은 그대로 두고, 판정은 오른쪽 id 의 정의를 씁니다.
| 옛 키 | 원본 id | 이름 |
| atk_up | b_atk_up | 공격 강화 |
| def_up | b_def_up | 방어 강화 |
| spd_up | b_spd_up | 가속 |
| crit_up | b_crit_up | 날카로움 |
| critdmg_up | b_critdmg_up | 급소 노림 |
| dmg_taken_down | b_dmg_reduce | 단단함 |
| crit_taken_down | b_crit_taken_down | 무른 급소 |
| heal_recv_up | b_heal_up | 생기 |
| heal_power_up | b_heal_power_up | 따뜻한 손 |
| hp_up | b_hp_up | 튼튼함 |
| thorns | b_reflect | 가시 |
| cc_resist | b_cc_resist | 꿋꿋함 |
| debuff_dur_down | b_debuff_dur_down | 털어내기 |
| atk_down | d_atk_down | 무딘 손 |
| def_down | d_def_down | 갈라짐 |
| spd_down | d_spd_down | 둔함 |
| mark | d_dmg_taken_up | 표식 |
| stun | d_stun | 기절 |
| silence | d_silence | 침묵 |
| heal_down | d_heal_down | 메마름 |
| stain (연산자) | d_stain | 얼룩 |
| shield (연산자) | b_shield | 보호막 |
| regen (연산자) | b_regen | 재생 |
| taunt (연산자) | b_taunt | 도발 |
| revive (연산자) | b_revive | 다시 피는 색 |
| gauge (연산자) | x_gauge_up | 게이지 충전 |
| heal (연산자) | x_heal | 즉시 회복 |
| cleanse (연산자) | x_cleanse | 정화 |
| dispel (연산자) | x_dispel | 해제 |
bruni11
bruni · 게임전투·성장 명세서
08 / Status IDs
상태 id 통일 (2) — enemies·bosses
옛 키 → 원본 id (enemies.json · bosses.json)
적·보스 기술의 effects 첫 칸은 아래 원본 id 로 다시 생성했습니다. 값의 뜻(%, 계수, 최대 체력 %)은 07~08장 「스킬이 적는 값」 열을 따릅니다.
| 옛 키 | 원본 id | 이름 |
| atk_down | d_atk_down | 무딘 손 |
| def_down | d_def_down | 갈라짐 |
| slow | d_spd_down | 둔함 |
| stun | d_stun | 기절 |
| silence | d_silence | 침묵 |
| burn | d_burn | 화상 |
| poison | d_poison | 중독 |
| shock | d_shock | 감전 |
| fade | d_fade | 바램 |
| gauge_down | x_gauge_down | 게이지 감소 |
| taunt | b_taunt | 도발 |
| shield | b_shield | 보호막 |
| atk_up | b_atk_up | 공격 강화 |
| def_up | b_def_up | 방어 강화 |
| spd_up | b_spd_up | 가속 |
| regen | b_regen | 재생 |
| stealth | b_stealth | 숨음 |
| reflect | b_reflect | 가시 |
| cleanse | x_cleanse | 정화 |
| heal | x_heal | 즉시 회복 |
| dispel | x_dispel | 해제 |
bruni12
bruni · 게임전투·성장 명세서
09 / Stacking
중첩 규칙·즉시 효과·제어
중첩 규칙 7가지
| 규칙 | 처리 |
| refresh | 같은 id 가 다시 걸리면 수치는 큰 쪽, 지속은 새 값으로 갱신. 1개만 유지 |
| stack | 같은 id 가 걸릴 때마다 중첩 +1 (최대까지). 지속은 마지막 부여 기준으로 전체 갱신. 최대에서 또 걸리면 지속만 갱신 |
| per_src | 시전자마다 따로 1개. 같은 시전자가 다시 걸면 그 1개를 갱신. 대상 1명당 최대 개수 초과 시 가장 먼저 걸린 것을 지움 |
| max | 1개만. 새 값이 남은 값보다 크면 교체(지속도 교체), 작으면 무시 |
| count | 횟수형. 중첩 = 남은 횟수. 지속이 끝나거나 횟수를 다 쓰면 사라짐 |
| unique | 전투당 1번. 발동하면 사라지고 같은 전투에서 다시 걸리지 않음 |
| instant | 지속 없는 즉시 효과. 상태 칸에 남지 않음 |
즉시 효과 (상태 칸에 남지 않음)
| id | 이름 | 효과 | 한계 |
| x_gauge_up | 게이지 충전 | 대상 필살기 게이지 +N (스킬별, 보통 +5~+50) | 최대 100 |
| x_gauge_down | 게이지 감소 | 대상 필살기 게이지 −N (적 대상이면 특수기 쿨타임 진행을 N÷10 초 되돌림) | 최소 0 |
| x_cleanse | 정화 | 대상 디버프 N개 제거 — 가장 최근에 걸린 것부터 | 「정화 가능」만 |
| x_dispel | 해제 | 대상 버프 N개 제거 — 가장 최근에 걸린 것부터 (적 기술은 N = 전부) | 「해제 가능」만 |
| x_heal | 즉시 회복 | 시전자 공격 × 계수 만큼 회복 | 최대 체력 초과분 버림 |
| x_timer_push | 밀어내기 | 대상 행동 타이머 + N ms | 보스는 절반 |
제어 효과와 보스·정예
| 대상 | 규칙 |
| 보스 | 기절·빙결·침묵 지속 ×0.5. 걸린 뒤 6초 동안 같은 3종 재적용 면역 — 그 사이 또 걸리면 대신 「휘청」(행동 타이머 +500ms) |
| 정예 | 행동 불가 지속 ×0.5 |
| 모두 | 행동 불가가 끝나면 「버팀」 2초 — 그동안 기절·빙결 무효 |
능력치 변화의 합산
같은 능력치에 걸린 버프·디버프·패시브의 %는 모두 더한 뒤 한 번 곱합니다(곱하기를 겹치지 않음). 그다음 범위로 자릅니다: 공격 ×0.3~3.0, 방어 ×0.0~3.0, 속도 ×0.5~2.0, 받는 피해 ×0.5~2.0. 예: 공격 강화 +20% 와 무딘 손 −20% 가 같이 걸리면 ×1.00 입니다.
상태 부여 확률
스킬이 「확률 n%」를 적으면 대상마다 그 확률로 굴립니다(저항 능력치는 없음). 「맑은 마음」이 있으면 굴림 전에 1회를 써서 막습니다. 이미 쓰러진 대상에는 걸지 않습니다.
bruni13
bruni · 게임전투·성장 명세서
10 / Stats & Power
능력치 계산 순서와 전투력
능력치 계산 순서
| 순서 | 계산 |
| 1 | 기초 = 기준(공100·체1000·방60) × 등급 배율 × 역할 배율 × 개성(±10%, characters) |
| 2 | × 레벨 배율 (동료 1+0.09(Lv−1) / 브루니 1+0.06(Lv−1)) |
| 3 | × ★ 배율 (1+0.10(★−1)) × 각성 배율 (1+0.05×각성) |
| 4 | + 장비 고정치 (브루니만, 장비 기본값 × (1+0.10×칸 강화)) |
| 5 | × (1 + 유물 %합 + 인연 % + 상시 패시브 %합) |
| 6 | 내림 → 표시 능력치 (전투력 계산에 씀) |
| 7 | 전투 중: × 버프·디버프 배율(잘라냄) → 전투 능력치 |
속도는 역할 값(90~110)을 그대로 쓰고 레벨·★·각성으로 오르지 않습니다. 속도를 바꾸는 것은 버프·디버프와 패시브뿐입니다. 레벨 배율은 바이블 6-2(동료 Lv100 ×9.91 · 브루니 Lv150 ×9.94), ★ 은 단계당 +10%, 각성은 단계당 +5%, 인연은 Lv 당 공격·체력 +1%(이 문서가 정함)입니다.
전투력개인 = round((공격 × 5 + 체력 × 0.5 + 방어 × 3) × (1 + 스킬 레벨 합 × 0.01)) — 바이블 6-2. 파티 = 출전 5명의 합.
바이블의 「+ 유물 보정」은 유물 능력치 효과가 순서 5에서 개인 능력치에 이미 들어가므로 따로 더하지 않습니다(두 번 세지 않기 위해). 능력치가 아닌 유물 효과(방치 보상 증가 등)는 전투력에 넣지 않습니다.
예시 — 파이썬 실행값 (개성 ±10%·장비·유물 없음)
| 유닛 | 등급 | 역할 | Lv | ★ | 각성 | 스킬 합 | 인연 | 공격 | 체력 | 방어 | 속도 | 전투력 |
| 브루니 (시작) | SSR | 타격 | 1 | 3 | 0 | 3 | 1 | 150 | 1,140 | 64 | 105 | 1,557 |
| R 돌격 (시작) | R | 돌격 | 1 | 1 | 0 | 3 | 1 | 50 | 1,152 | 69 | 90 | 1,064 |
| SR 치유 Lv40 ★2 | SR | 치유 | 40 | 2 | 0 | 9 | 3 | 322 | 3,871 | 227 | 100 | 4,607 |
| SSR 술사 Lv70 ★3 | SSR | 술사 | 70 | 3 | 0 | 15 | 5 | 1,214 | 6,298 | 337 | 95 | 11,764 |
| SSR 사격 Lv100 ★5 각성5 | SSR | 사격 | 100 | 5 | 5 | 30 | 10 | 2,457 | 14,177 | 728 | 100 | 28,025 |
| 브루니 Lv150 ★5 각성5 (장비 제외) | SSR | 타격 | 150 | 5 | 5 | 30 | 10 | 2,370 | 18,012 | 939 | 105 | 30,775 |
bruni14
bruni · 게임전투·성장 명세서
11 / Verification
전투 시뮬레이션 검증
참조 구현(combat_sim.py)으로 「이 판을 95% 확률로 넘으려면 아군 능력치가 적의 몇 배여야 하는가」를 이분 탐색했습니다. 아군은 표준 편성(돌격 R · 브루니 SSR · 사격 SR · 술사 SSR · 치유 SR, 시뮬레이션용 표준 스킬 — 실제 스킬은 characters 문서, 상성 ×1.00), 배율 1.0 = 각자 Lv1 ★1 기준 능력치입니다. 아래 첫 표는 바이블 6-4 기준값 적으로 잰 일반화 값, 둘째 표는 stages.json 의 실제 판 구성(enemies.json·bosses.json 능력치·특수기·보스 페이즈)으로 잰 값입니다.
| 판 종류 (기준값 적) | 필요 배율 c (s001) | s300 에서 잰 c | 스킬 Lv10 일 때 c |
| 일반 판 (웨이브 3) | 0.64 | 0.65 | 0.51 |
| 보스 판 (웨이브 2 + 보스) | 0.74 | 0.73 | 0.58 |
s001 과 s300 의 c 가 같게 나옵니다 — 방어 보정이 비율이라 판정이 크기에 무관하다는 05장 성질이 실제로 성립합니다. 그래서 어려움 난이도(공·체·방 ×3)의 추천 전투력은 정확히 보통의 3배입니다.
판 시간 (시드 30개, 기준값 적)
| 아군 배율 | 판 | 승률 | 평균 시간 | 최대 시간 |
| 0.8 | 일반 | 100% | 19.7초 | 20.5초 |
| 0.8 | 보스 | 100% | 30.0초 | 31.2초 |
| 1 | 일반 | 100% | 16.5초 | 16.7초 |
| 1 | 보스 | 100% | 24.5초 | 24.6초 |
| 1.5 | 일반 | 100% | 10.2초 | 10.5초 |
| 1.5 | 보스 | 100% | 14.7초 | 15.0초 |
| 2 | 일반 | 100% | 8.5초 | 8.5초 |
| 2 | 보스 | 100% | 11.3초 | 11.9초 |
bruni15
bruni · 게임전투·성장 명세서
11 / Verification
판별 추천 전투력과 검사
추천 전투력 — 실제 판 구성, m(s) = 1 + 0.125 × (s − 1) + 0.00005 × (s − 1)²
stages.json 의 req_cp(추천 전투력)는 손으로 맞춘 식이 아니라 표준 편성이 그 판을 시드 20개 중 95% 이상 이기는 최소 파티 전투력입니다(curve.stage_req). 같은 방법의 승률 50% 값이 clear_cp 로, 경제 시뮬레이션의 돌파 판정에 씁니다. 아래 표의 추천 전투력 열은 growth.json 이 stages.json 에서 그대로 옮긴 값이고, systems_data.py 가 두 파일이 같은지 검사합니다.
| 판 | m(s) | c = 배율 ÷ m | 필요 배율 95% | 필요 배율 50% | 추천 전투력 (95%) | 돌파 전투력 (50%) | 곡선 B였다면 m · 추천 |
| s001 | 1 | 0.58 | 0.58 | 0.56 | 3,134 | 3,057 | 1.0 · 3,134 |
| s010 보스 | 2.13 | 0.59 | 1.25 | 1.22 | 6,748 | 6,613 | 1.63 · 5,169 |
| s030 보스 | 4.67 | 0.67 | 3.11 | 3.05 | 16,816 | 16,491 | 3.03 · 10,918 |
| s060 보스 | 8.55 | 0.61 | 5.25 | 5.16 | 28,452 | 27,931 | 5.13 · 17,074 |
| s090 보스 | 12.52 | 0.68 | 8.46 | 8.28 | 45,790 | 44,844 | 7.23 · 26,441 |
| s130 보스 | 17.96 | 0.6 | 10.72 | 10.42 | 58,027 | 56,434 | 10.03 · 32,411 |
| s150 보스 | 20.74 | 0.66 | 13.67 | 13.51 | 74,026 | 73,155 | 11.43 · 40,805 |
| s170 보스 | 23.55 | 0.63 | 14.83 | 14.14 | 80,282 | 76,587 | 12.83 · 43,733 |
| s210 보스 | 29.31 | 0.63 | 18.54 | 17.96 | 100,366 | 97,220 | 15.63 · 53,524 |
| s250 보스 | 35.23 | 0.67 | 23.41 | 23.17 | 126,748 | 125,441 | 18.43 · 66,314 |
| s300 보스 | 42.85 | 0.63 | 26.86 | 25.9 | 145,402 | 140,225 | 21.93 · 74,423 |
| 검사 (systems_data.py 가 매번 돌림) | stages.json | 지금 다시 계산 | 같음 |
| s001 추천 / 돌파 | 3,134 / 3,057 | 3,134 / 3,057 | ○ |
| s150 추천 / 돌파 | 74,026 / 73,155 | 74,026 / 73,155 | ○ |
| s300 추천 / 돌파 | 145,402 / 140,225 | 145,402 / 140,225 | ○ |
판마다 적 종류·정예 수가 달라 이웃한 판끼리 추천 전투력이 오르내릴 수 있습니다(c 열 0.5~0.7). 「곡선 B」 열은 같은 구성에서 적 배율만 바꿨을 때의 값으로, 판정이 크기에 무관하므로 배율 비로 환산했습니다. 아군 끝 배율은 레벨 ×9.91 · ★5 ×1.4 · 각성5 ×1.25 · 인연10 ×1.09 = ×18.9, 여기에 스킬 Lv10 계수 ×1.54 입니다 — s300 필요 배율 ×26.86 은 장비·유물 없이 전원 최대 육성으로 넘는 크기입니다.
bruni16
bruni · 게임전투·성장 명세서
12 / Pacing Check
적 곡선 결정과 진행 속도 검증
결정 — 적 판 배율 m(s) = 1 + 0.125 × (s − 1) + 0.00005 × (s − 1)²적 능력치·추천 전투력·경제 돌파 판정이 모두 이 곡선 하나에서 나옵니다. 원본은 game-design/gen/curve.py 의 CURVE 한 줄이고, enemies_data.py(적 80·보스 24 능력치, 토벌 단계) → stages_data.py(본판 300·어려움·시련의 탑 추천 전투력) → economy_sim.py → systems_data.py 가 같은 함수를 읽습니다. s300 배율 ×42.85 (이전 곡선 1 + 0.07 × (s − 1) 은 ×21.93). 바이블 6-4 에 반영했습니다(2026-10-14).
무과금 이용자의 수입을 추정하고(아래 가정), 그 수입으로 13~14장 비용 표를 따라 살 수 있는 레벨을 구한 뒤, 그 파티로 stages.json 의 실제 보스 판을 시드 12개(11승 이상 = 통과)로 돌려 몇 판까지 넘는지 쟀습니다. 재화 수입의 확정 시뮬레이션은 재화·성장 속도 명세서가 하고, 여기서는 비용 곡선과 적 곡선이 서로 맞는지만 봅니다.
| 일차 | 도달 판 가정 | 누적 물감 방울 | 누적 골드 | 누적 브루니 경험치 |
| 1일차 | s020 | 3,610 | 21,700 | 14,100 |
| 7일차 | s060 | 43,500 | 261,000 | 170,000 |
| 30일차 | s150 | 658,000 | 3,950,000 | 2,570,000 |
| 90일차 | s300 | 22,100,000 | 132,000,000 | 86,100,000 |
가정 (추정 — 설계 가정이며 실측 아님): 방치 하루 30시간분(24시간 + 빠른 방치 무료 1·광고 2회 × 2시간), 수입은 그 시각 최고 판의 바이블 8장 공식, 1일차 s020 은 이 문서의 가정. 물감 방울의 16% 를 주력 1명이 받음(5명 80%). 브루니 경험치는 방치분 + 판 클리어·장비 판매 30%. 장비·유물·각성은 넣지 않음(보수적).
결정 곡선 C — m(s) = 1 + 0.125 × (s − 1) + 0.00005 × (s − 1)²
| 일차 | 목표 (바이블 6-4) | 동료 Lv (브루니) | ★ / 스킬 / 인연 | 넘는 보스 판 | 목표 대비 | 목표 보스에 필요한 배율 |
| 1일차 | s020 | 8 (브루니 17) | +0 / 1 / 1 | s010 | -10판 | ×1.27 |
| 7일차 | s060 | 26 (브루니 48) | +0 / 3 / 3 | s030 | -30판 | ×1.4 |
| 30일차 | s150 | 55 (브루니 86) | +1 / 5 / 5 | s080 | -70판 | ×1.75 |
| 90일차 | s300 | 88 (브루니 137) | +2 / 7 / 7 | s140 | -160판 | ×1.97 |
비교: 곡선 B — m(s) = 1 + 0.07 × (s − 1)
| 일차 | 목표 (바이블 6-4) | 동료 Lv (브루니) | ★ / 스킬 / 인연 | 넘는 보스 판 | 목표 대비 | 목표 보스에 필요한 배율 |
| 1일차 | s020 | 8 (브루니 17) | +0 / 1 / 1 | s020 | +0판 | ×0.87 |
| 7일차 | s060 | 26 (브루니 48) | +0 / 3 / 3 | s070 | +10판 | ×0.83 |
| 30일차 | s150 | 55 (브루니 86) | +1 / 5 / 5 | s150 | +0판 | ×0.97 |
| 90일차 | s300 | 88 (브루니 137) | +2 / 7 / 7 | s270 | -30판 | ×1.01 |
bruni17
bruni · 게임전투·성장 명세서
12 / Pacing Check
곡선을 고른 까닭과 경제 대조
왜 이 곡선인가 (2026-10-14 밸런스 수정)
이전 결정 곡선 B(1 + 0.07 × (s − 1))은 위 표처럼 장비·유물·각성·모집을 뺀 계산에서는 목표와 맞았습니다(s070 · s150 · s270). 그런데 그것들을 모두 넣은 경제 시뮬레이션에서는 무과금이 5일 만에 s300에 닿았습니다. 원인은 브루니 장비였습니다 — 장비 1부위 기준값이 등급마다 ×2.8(태초 38,550)이라 6부위 +20 이면 약 70만으로, 동료 5명 끝 전투력 합의 몇 배였고, 추천 전투력(장비 없는 표준 편성 기준)을 한참 앞질렀습니다.
그래서 두 가지를 한 쌍으로 바꿨습니다. ① 장비 기준값을 등급마다 ×1.7(80 → 태초 1,931)로 줄여 최대 파티 중 장비 몫을 약 23% 로 낮췄습니다(장비·아이템 명세서 02장). ② 적 곡선을 C(1 + 0.125 × (s − 1) + 0.00005 × (s − 1)²)로 바꿔, 유물·각성·SSR 모집·장비가 모두 들어간 경제 시뮬레이션의 무과금 중앙값이 7일 s060 · 30일 s150 · 90일 s300 에 닿게 계수를 격자 탐색으로 골랐습니다. 직선 항이 초반을, 작은 제곱 항이 유물·각성으로 성장이 가팔라지는 후반을 맞춥니다.
위 「결정 곡선」 표가 목표보다 뒤처지는 것(s030 · s080 · s140, 90일차 ×1.97 부족)은 의도한 것입니다 — 이 표는 레벨·스킬·★·인연만 넣은 하한이고, 빠진 몫(유물 Lv10 전원 대상 공격·체력 +22% · 각성 5 ×1.25 · SSR 비중 · 장비 약 23%)을 경제 시뮬레이션이 채웁니다. 진도 판정의 원본은 재화·성장 속도 명세서 10장입니다.
곡선을 바꿀 때
| 순서 | 할 일 | 결과물 |
| 1 | gen/curve.py 의 CURVE 를 바꾼다 (또는 새 곡선을 CURVES 에 더함) | — |
| 2 | python3 game-design/gen/enemies_data.py | enemies.json stat_first·stat_last · bosses.json appear.stats·raid_tiers·event_levels |
| 3 | python3 game-design/gen/stages_data.py (약 4분 — 판 300 + 탑 100 을 전투 시뮬레이션, 어려움 최대 파티 검증 포함) | stages.json m·req_cp·clear_cp·hard·tower |
| 4 | python3 game-design/gen/items_data.py | items.json 장비 능력치 (economy.json assume.gear.piece_cp — 곡선과 한 쌍) |
| 5 | python3 game-design/gen/economy_sim.py (약 1분) → items_data.py 한 번 더(장비 몫 표가 시뮬레이션 결과를 읽음) | economy_sim.json (stages.json req_cp 를 읽음) |
| 6 | python3 game-design/gen/systems_data.py → systems.py · economy.py · stages.py · enemies.py · items.py | growth.json checks · 문서 HTML |
bruni18
bruni · 게임전투·성장 명세서
13 / Companion Level
동료 레벨 비용 (Lv1~51)
동료 59명 공통입니다(등급·역할 무관). 공식: 물감 방울 = r3(28 × 1.115^(Lv−1) + 10 × Lv), 골드 = r3(물감 방울 × 2.5) — r3 는 유효숫자 3자리 반올림. 레벨 상한은 ★ 으로 정해집니다(★1 40 · ★2 55 · ★3 70 · ★4 85 · ★5 100, 바이블 6). 상한에 닿은 동료는 승급 전까지 레벨업 버튼이 「승급 필요」로 바뀝니다. 레벨업은 1회·5회·최대(가진 재화로 가능한 만큼) 세 버튼입니다.
| 레벨 | 물감 방울 | 골드 | 누적 방울 | 누적 골드 | 능력치 배율 | 상한 |
| 1 → 2 | 38 | 95 | 38 | 95 | 1.09 | |
| 2 → 3 | 51 | 128 | 89 | 223 | 1.18 | |
| 3 → 4 | 65 | 162 | 154 | 385 | 1.27 | |
| 4 → 5 | 79 | 198 | 233 | 583 | 1.36 | |
| 5 → 6 | 93 | 232 | 326 | 815 | 1.45 | |
| 6 → 7 | 108 | 270 | 434 | 1,085 | 1.54 | |
| 7 → 8 | 124 | 310 | 558 | 1,395 | 1.63 | |
| 8 → 9 | 140 | 350 | 698 | 1,745 | 1.72 | |
| 9 → 10 | 157 | 392 | 855 | 2,137 | 1.81 | |
| 10 → 11 | 175 | 438 | 1,030 | 2,575 | 1.90 | |
| 11 → 12 | 193 | 482 | 1,223 | 3,057 | 1.99 | |
| 12 → 13 | 213 | 532 | 1,436 | 3,589 | 2.08 | |
| 13 → 14 | 233 | 582 | 1,669 | 4,171 | 2.17 | |
| 14 → 15 | 255 | 638 | 1,924 | 4,809 | 2.26 | |
| 15 → 16 | 279 | 698 | 2,203 | 5,507 | 2.35 | |
| 16 → 17 | 303 | 758 | 2,506 | 6,265 | 2.44 | |
| 17 → 18 | 330 | 825 | 2,836 | 7,090 | 2.53 | |
| 18 → 19 | 358 | 895 | 3,194 | 7,985 | 2.62 | |
| 19 → 20 | 389 | 972 | 3,583 | 8,957 | 2.71 | |
| 20 → 21 | 422 | 1,060 | 4,005 | 10,017 | 2.80 | |
| 21 → 22 | 457 | 1,140 | 4,462 | 11,157 | 2.89 | |
| 22 → 23 | 495 | 1,240 | 4,957 | 12,397 | 2.98 | |
| 23 → 24 | 537 | 1,340 | 5,494 | 13,737 | 3.07 | |
| 24 → 25 | 582 | 1,460 | 6,076 | 15,197 | 3.16 | |
| 25 → 26 | 632 | 1,580 | 6,708 | 16,777 | 3.25 | |
| 26 → 27 | 686 | 1,720 | 7,394 | 18,497 | 3.34 | |
| 27 → 28 | 745 | 1,860 | 8,139 | 20,357 | 3.43 | |
| 28 → 29 | 809 | 2,020 | 8,948 | 22,377 | 3.52 | |
| 29 → 30 | 880 | 2,200 | 9,828 | 24,577 | 3.61 | |
| 30 → 31 | 958 | 2,400 | 10,786 | 26,977 | 3.70 | |
| 31 → 32 | 1,040 | 2,600 | 11,826 | 29,577 | 3.79 | |
| 32 → 33 | 1,140 | 2,850 | 12,966 | 32,427 | 3.88 | |
| 33 → 34 | 1,240 | 3,100 | 14,206 | 35,527 | 3.97 | |
| 34 → 35 | 1,360 | 3,400 | 15,566 | 38,927 | 4.06 | |
| 35 → 36 | 1,480 | 3,700 | 17,046 | 42,627 | 4.15 | |
| 36 → 37 | 1,620 | 4,050 | 18,666 | 46,677 | 4.24 | |
| 37 → 38 | 1,780 | 4,450 | 20,446 | 51,127 | 4.33 | |
| 38 → 39 | 1,950 | 4,880 | 22,396 | 56,007 | 4.42 | |
| 39 → 40 | 2,140 | 5,350 | 24,536 | 61,357 | 4.51 | ★1 상한 |
| 40 → 41 | 2,350 | 5,880 | 26,886 | 67,237 | 4.60 | |
| 41 → 42 | 2,590 | 6,480 | 29,476 | 73,717 | 4.69 | |
| 42 → 43 | 2,850 | 7,120 | 32,326 | 80,837 | 4.78 | |
| 43 → 44 | 3,140 | 7,850 | 35,466 | 88,687 | 4.87 | |
| 44 → 45 | 3,460 | 8,650 | 38,926 | 97,337 | 4.96 | |
| 45 → 46 | 3,820 | 9,550 | 42,746 | 106,887 | 5.05 | |
| 46 → 47 | 4,210 | 10,500 | 46,956 | 117,387 | 5.14 | |
| 47 → 48 | 4,660 | 11,600 | 51,616 | 128,987 | 5.23 | |
| 48 → 49 | 5,150 | 12,900 | 56,766 | 141,887 | 5.32 | |
| 49 → 50 | 5,690 | 14,200 | 62,456 | 156,087 | 5.41 | |
| 50 → 51 | 6,300 | 15,800 | 68,756 | 171,887 | 5.50 | |
bruni19
bruni · 게임전투·성장 명세서
13 / Companion Level
동료 레벨 비용 (Lv51~100)
| 레벨 | 물감 방울 | 골드 | 누적 방울 | 누적 골드 | 능력치 배율 | 상한 |
| 51 → 52 | 6,980 | 17,400 | 75,736 | 189,287 | 5.59 | |
| 52 → 53 | 7,730 | 19,300 | 83,466 | 208,587 | 5.68 | |
| 53 → 54 | 8,570 | 21,400 | 92,036 | 229,987 | 5.77 | |
| 54 → 55 | 9,510 | 23,800 | 101,546 | 253,787 | 5.86 | ★2 상한 |
| 55 → 56 | 10,600 | 26,500 | 112,146 | 280,287 | 5.95 | |
| 56 → 57 | 11,700 | 29,200 | 123,846 | 309,487 | 6.04 | |
| 57 → 58 | 13,000 | 32,500 | 136,846 | 341,987 | 6.13 | |
| 58 → 59 | 14,400 | 36,000 | 151,246 | 377,987 | 6.22 | |
| 59 → 60 | 16,000 | 40,000 | 167,246 | 417,987 | 6.31 | |
| 60 → 61 | 17,800 | 44,500 | 185,046 | 462,487 | 6.40 | |
| 61 → 62 | 19,800 | 49,500 | 204,846 | 511,987 | 6.49 | |
| 62 → 63 | 22,000 | 55,000 | 226,846 | 566,987 | 6.58 | |
| 63 → 64 | 24,500 | 61,200 | 251,346 | 628,187 | 6.67 | |
| 64 → 65 | 27,300 | 68,200 | 278,646 | 696,387 | 6.76 | |
| 65 → 66 | 30,300 | 75,800 | 308,946 | 772,187 | 6.85 | |
| 66 → 67 | 33,800 | 84,500 | 342,746 | 856,687 | 6.94 | |
| 67 → 68 | 37,600 | 94,000 | 380,346 | 950,687 | 7.03 | |
| 68 → 69 | 41,800 | 104,000 | 422,146 | 1,054,687 | 7.12 | |
| 69 → 70 | 46,600 | 116,000 | 468,746 | 1,170,687 | 7.21 | ★3 상한 |
| 70 → 71 | 51,900 | 130,000 | 520,646 | 1,300,687 | 7.30 | |
| 71 → 72 | 57,800 | 144,000 | 578,446 | 1,444,687 | 7.39 | |
| 72 → 73 | 64,400 | 161,000 | 642,846 | 1,605,687 | 7.48 | |
| 73 → 74 | 71,700 | 179,000 | 714,546 | 1,784,687 | 7.57 | |
| 74 → 75 | 79,800 | 200,000 | 794,346 | 1,984,687 | 7.66 | |
| 75 → 76 | 89,000 | 222,000 | 883,346 | 2,206,687 | 7.75 | |
| 76 → 77 | 99,100 | 248,000 | 982,446 | 2,454,687 | 7.84 | |
| 77 → 78 | 110,000 | 275,000 | 1,092,446 | 2,729,687 | 7.93 | |
| 78 → 79 | 123,000 | 308,000 | 1,215,446 | 3,037,687 | 8.02 | |
| 79 → 80 | 137,000 | 342,000 | 1,352,446 | 3,379,687 | 8.11 | |
| 80 → 81 | 153,000 | 382,000 | 1,505,446 | 3,761,687 | 8.20 | |
| 81 → 82 | 170,000 | 425,000 | 1,675,446 | 4,186,687 | 8.29 | |
| 82 → 83 | 190,000 | 475,000 | 1,865,446 | 4,661,687 | 8.38 | |
| 83 → 84 | 212,000 | 530,000 | 2,077,446 | 5,191,687 | 8.47 | |
| 84 → 85 | 236,000 | 590,000 | 2,313,446 | 5,781,687 | 8.56 | ★4 상한 |
| 85 → 86 | 263,000 | 658,000 | 2,576,446 | 6,439,687 | 8.65 | |
| 86 → 87 | 293,000 | 732,000 | 2,869,446 | 7,171,687 | 8.74 | |
| 87 → 88 | 327,000 | 818,000 | 3,196,446 | 7,989,687 | 8.83 | |
| 88 → 89 | 364,000 | 910,000 | 3,560,446 | 8,899,687 | 8.92 | |
| 89 → 90 | 406,000 | 1,020,000 | 3,966,446 | 9,919,687 | 9.01 | |
| 90 → 91 | 452,000 | 1,130,000 | 4,418,446 | 11,049,687 | 9.10 | |
| 91 → 92 | 504,000 | 1,260,000 | 4,922,446 | 12,309,687 | 9.19 | |
| 92 → 93 | 562,000 | 1,400,000 | 5,484,446 | 13,709,687 | 9.28 | |
| 93 → 94 | 627,000 | 1,570,000 | 6,111,446 | 15,279,687 | 9.37 | |
| 94 → 95 | 699,000 | 1,750,000 | 6,810,446 | 17,029,687 | 9.46 | |
| 95 → 96 | 779,000 | 1,950,000 | 7,589,446 | 18,979,687 | 9.55 | |
| 96 → 97 | 868,000 | 2,170,000 | 8,457,446 | 21,149,687 | 9.64 | |
| 97 → 98 | 968,000 | 2,420,000 | 9,425,446 | 23,569,687 | 9.73 | |
| 98 → 99 | 1,080,000 | 2,700,000 | 10,505,446 | 26,269,687 | 9.82 | |
| 99 → 100 | 1,200,000 | 3,000,000 | 11,705,446 | 29,269,687 | 9.91 | ★5 상한 |
레벨 초기화동료 레벨을 되돌리는 기능은 1차판에 넣지 않습니다. 넣는다면 쓴 물감 방울·골드 100% 반환을 원칙으로 합니다(손해 없는 되돌리기는 키우기 장르에서 결제 압박을 줄이는 장치) — 바이블 추가 제안 ⑨.
bruni20
bruni · 게임전투·성장 명세서
14 / Bruni Level
브루니 레벨 경험치 (Lv1~150)
브루니는 물감 방울을 쓰지 않고 브루니 경험치로 자동으로 오릅니다(방치·판 클리어·장비 판매, 바이블 6). 공식 = r3(480 × 1.072^(Lv−1)). 능력치 배율 = 1 + 0.06 × (Lv − 1) → Lv150 ×9.94. 브루니 레벨은 장비 강화 상한(17장)도 정합니다.
| Lv | 필요 | 누적 | Lv | 필요 | 누적 | Lv | 필요 | 누적 |
| 1→2 | 480 | 480 | 51→52 | 15,500 | 224,517 | 101→102 | 502,000 | 7,470,417 |
| 2→3 | 515 | 995 | 52→53 | 16,600 | 241,117 | 102→103 | 538,000 | 8,008,417 |
| 3→4 | 552 | 1,547 | 53→54 | 17,800 | 258,917 | 103→104 | 577,000 | 8,585,417 |
| 4→5 | 591 | 2,138 | 54→55 | 19,100 | 278,017 | 104→105 | 618,000 | 9,203,417 |
| 5→6 | 634 | 2,772 | 55→56 | 20,500 | 298,517 | 105→106 | 663,000 | 9,866,417 |
| 6→7 | 680 | 3,452 | 56→57 | 22,000 | 320,517 | 106→107 | 711,000 | 10,577,417 |
| 7→8 | 728 | 4,180 | 57→58 | 23,600 | 344,117 | 107→108 | 762,000 | 11,339,417 |
| 8→9 | 781 | 4,961 | 58→59 | 25,300 | 369,417 | 108→109 | 817,000 | 12,156,417 |
| 9→10 | 837 | 5,798 | 59→60 | 27,100 | 396,517 | 109→110 | 876,000 | 13,032,417 |
| 10→11 | 897 | 6,695 | 60→61 | 29,000 | 425,517 | 110→111 | 939,000 | 13,971,417 |
| 11→12 | 962 | 7,657 | 61→62 | 31,100 | 456,617 | 111→112 | 1,010,000 | 14,981,417 |
| 12→13 | 1,030 | 8,687 | 62→63 | 33,400 | 490,017 | 112→113 | 1,080,000 | 16,061,417 |
| 13→14 | 1,110 | 9,797 | 63→64 | 35,800 | 525,817 | 113→114 | 1,160,000 | 17,221,417 |
| 14→15 | 1,190 | 10,987 | 64→65 | 38,300 | 564,117 | 114→115 | 1,240,000 | 18,461,417 |
| 15→16 | 1,270 | 12,257 | 65→66 | 41,100 | 605,217 | 115→116 | 1,330,000 | 19,791,417 |
| 16→17 | 1,360 | 13,617 | 66→67 | 44,000 | 649,217 | 116→117 | 1,420,000 | 21,211,417 |
| 17→18 | 1,460 | 15,077 | 67→68 | 47,200 | 696,417 | 117→118 | 1,530,000 | 22,741,417 |
| 18→19 | 1,570 | 16,647 | 68→69 | 50,600 | 747,017 | 118→119 | 1,640,000 | 24,381,417 |
| 19→20 | 1,680 | 18,327 | 69→70 | 54,300 | 801,317 | 119→120 | 1,750,000 | 26,131,417 |
| 20→21 | 1,800 | 20,127 | 70→71 | 58,200 | 859,517 | 120→121 | 1,880,000 | 28,011,417 |
| 21→22 | 1,930 | 22,057 | 71→72 | 62,400 | 921,917 | 121→122 | 2,020,000 | 30,031,417 |
| 22→23 | 2,070 | 24,127 | 72→73 | 66,800 | 988,717 | 122→123 | 2,160,000 | 32,191,417 |
| 23→24 | 2,220 | 26,347 | 73→74 | 71,700 | 1,060,417 | 123→124 | 2,320,000 | 34,511,417 |
| 24→25 | 2,380 | 28,727 | 74→75 | 76,800 | 1,137,217 | 124→125 | 2,480,000 | 36,991,417 |
| 25→26 | 2,550 | 31,277 | 75→76 | 82,300 | 1,219,517 | 125→126 | 2,660,000 | 39,651,417 |
| 26→27 | 2,730 | 34,007 | 76→77 | 88,300 | 1,307,817 | 126→127 | 2,850,000 | 42,501,417 |
| 27→28 | 2,930 | 36,937 | 77→78 | 94,600 | 1,402,417 | 127→128 | 3,060,000 | 45,561,417 |
| 28→29 | 3,140 | 40,077 | 78→79 | 101,000 | 1,503,417 | 128→129 | 3,280,000 | 48,841,417 |
| 29→30 | 3,360 | 43,437 | 79→80 | 109,000 | 1,612,417 | 129→130 | 3,520,000 | 52,361,417 |
| 30→31 | 3,600 | 47,037 | 80→81 | 117,000 | 1,729,417 | 130→131 | 3,770,000 | 56,131,417 |
| 31→32 | 3,860 | 50,897 | 81→82 | 125,000 | 1,854,417 | 131→132 | 4,040,000 | 60,171,417 |
| 32→33 | 4,140 | 55,037 | 82→83 | 134,000 | 1,988,417 | 132→133 | 4,330,000 | 64,501,417 |
| 33→34 | 4,440 | 59,477 | 83→84 | 144,000 | 2,132,417 | 133→134 | 4,640,000 | 69,141,417 |
| 34→35 | 4,760 | 64,237 | 84→85 | 154,000 | 2,286,417 | 134→135 | 4,980,000 | 74,121,417 |
| 35→36 | 5,100 | 69,337 | 85→86 | 165,000 | 2,451,417 | 135→136 | 5,340,000 | 79,461,417 |
| 36→37 | 5,470 | 74,807 | 86→87 | 177,000 | 2,628,417 | 136→137 | 5,720,000 | 85,181,417 |
| 37→38 | 5,860 | 80,667 | 87→88 | 190,000 | 2,818,417 | 137→138 | 6,130,000 | 91,311,417 |
| 38→39 | 6,290 | 86,957 | 88→89 | 203,000 | 3,021,417 | 138→139 | 6,580,000 | 97,891,417 |
| 39→40 | 6,740 | 93,697 | 89→90 | 218,000 | 3,239,417 | 139→140 | 7,050,000 | 104,941,417 |
| 40→41 | 7,230 | 100,927 | 90→91 | 234,000 | 3,473,417 | 140→141 | 7,560,000 | 112,501,417 |
| 41→42 | 7,750 | 108,677 | 91→92 | 250,000 | 3,723,417 | 141→142 | 8,100,000 | 120,601,417 |
| 42→43 | 8,300 | 116,977 | 92→93 | 269,000 | 3,992,417 | 142→143 | 8,680,000 | 129,281,417 |
| 43→44 | 8,900 | 125,877 | 93→94 | 288,000 | 4,280,417 | 143→144 | 9,310,000 | 138,591,417 |
| 44→45 | 9,540 | 135,417 | 94→95 | 309,000 | 4,589,417 | 144→145 | 9,980,000 | 148,571,417 |
| 45→46 | 10,200 | 145,617 | 95→96 | 331,000 | 4,920,417 | 145→146 | 10,700,000 | 159,271,417 |
| 46→47 | 11,000 | 156,617 | 96→97 | 355,000 | 5,275,417 | 146→147 | 11,500,000 | 170,771,417 |
| 47→48 | 11,800 | 168,417 | 97→98 | 380,000 | 5,655,417 | 147→148 | 12,300,000 | 183,071,417 |
| 48→49 | 12,600 | 181,017 | 98→99 | 408,000 | 6,063,417 | 148→149 | 13,200,000 | 196,271,417 |
| 49→50 | 13,500 | 194,517 | 99→100 | 437,000 | 6,500,417 | 149→150 | 14,100,000 | 210,371,417 |
| 50→51 | 14,500 | 209,017 | 100→101 | 468,000 | 6,968,417 | | | |
bruni21
bruni · 게임전투·성장 명세서
15 / Promotion
승급 (★) 비용
승급은 기억 조각(동료별) + 골드로 ★ 을 하나씩 올립니다. 모든 등급이 ★5 까지 오릅니다(바이블 4-1). 기억 조각이 모자라면 무지개 조각을 1:1 로 대신 쓸 수 있습니다. 브루니는 기억 조각이 없어 무지개 조각만 씁니다. 조각을 얻는 길은 중복 모집(아래 표)과 stages·events 문서의 보상입니다.
| 태생 | ★ | 기억 조각 | 중복 환산 | 골드 | 누적 조각 | 누적 골드 | 승급 후 레벨 상한 | ★ 배율 |
| R | ★1 → ★2 | 10 | 2장 | 5,000 | 10 | 5,000 | 55 | ×1.1 |
| R | ★2 → ★3 | 20 | 4장 | 20,000 | 30 | 25,000 | 70 | ×1.2 |
| R | ★3 → ★4 | 40 | 8장 | 80,000 | 70 | 105,000 | 85 | ×1.3 |
| R | ★4 → ★5 | 60 | 12장 | 250,000 | 130 | 355,000 | 100 | ×1.4 |
| SR | ★2 → ★3 | 30 | 2장 | 20,000 | 30 | 20,000 | 70 | ×1.2 |
| SR | ★3 → ★4 | 60 | 4장 | 80,000 | 90 | 100,000 | 85 | ×1.3 |
| SR | ★4 → ★5 | 90 | 6장 | 250,000 | 180 | 350,000 | 100 | ×1.4 |
| SSR | ★3 → ★4 | 80 | 2장 | 80,000 | 80 | 80,000 | 85 | ×1.3 |
| SSR | ★4 → ★5 | 120 | 3장 | 250,000 | 200 | 330,000 | 100 | ×1.4 |
| 브루니 | ★3 → ★4 | 무지개 100 | — | 80,000 | — | — | 150 (브루니) | ×1.3 |
| 브루니 | ★4 → ★5 | 무지개 200 | — | 250,000 | — | — | 150 (브루니) | ×1.4 |
중복 모집 환원 (바이블 9-2)
| 등급 | 기억 조각 | 무지개 조각 | ★5 까지 필요한 중복 (조각만) |
| R | 5 | 1 | 26장 |
| SR | 15 | 5 | 12장 |
| SSR | 50 | 20 | 4장 |
등급별 길이★5 까지 중복이 R 26장 · SR 12장 · SSR 4장입니다. R 은 길지만 확률이 높고(상시 80%), 무지개 조각으로 메울 수 있습니다 — 「R 도 끝까지 쓸 수 있게, 대신 길이 길게」(바이블 4-1). 골드는 등급과 무관하게 ★ 단계로만 정해집니다.
바이블 추가 제안 ②: 브루니 승급에도 같은 ★ 단계 골드를 받습니다(바이블은 「무지개 조각만」이라고만 적음 — 조각 종류를 말한 것으로 읽었습니다).
bruni22
bruni · 게임전투·성장 명세서
16 / Awaken & Skill
각성·스킬 강화 비용
각성 (★5 동료·브루니, 0 → 5)
깨움돌 + 속성 정수(상) + 골드. 단계마다 능력치 +5%(바이블). 2·3·4 단계에는 능력치 밖의 효과를 하나씩 붙여 단계마다 체감이 있게 했습니다. 표의 「정수(상)」은 동료 속성의 정수(상) 아이템을 뺍니다 — 홍 i111, 녹 i114, 청 i117, 황 i120, 묵 i123 (growth.json awaken_essence). 브루니는 색 전환과 상관없이 녹(i114)을 씁니다. 이벤트 상점의 정수(상)는 「속성 선택 정수(상) 1」로, 살 때 속성을 고릅니다(원정 상점과 같은 규칙, events.json shop).
| 단계 | 깨움돌 | 정수(상) | 골드 | 누적 깨움돌 | 누적 정수 | 누적 골드 | 배율 | 효과 |
| 0 → 1 | 20 | 10 | 300,000 | 20 | 10 | 300,000 | ×1.05 | 능력치 +5% |
| 1 → 2 | 40 | 20 | 600,000 | 60 | 30 | 900,000 | ×1.1 | 능력치 +5% · S3 패시브 수치 +10% |
| 2 → 3 | 60 | 30 | 1,000,000 | 120 | 60 | 1,900,000 | ×1.15 | 능력치 +5% · 필살기 시작 게이지 +20 |
| 3 → 4 | 90 | 45 | 1,500,000 | 210 | 105 | 3,400,000 | ×1.2 | 능력치 +5% · S3 패시브 수치 +10% (누적 +20%) |
| 4 → 5 | 120 | 60 | 2,500,000 | 330 | 165 | 5,900,000 | ×1.25 | 능력치 +5% · 각성 테두리·전투 그림 색 강조 |
스킬 강화 (스킬 3개 각각, Lv1 → 10)
비결서(하·중·상) + 골드. 강화하면 그 스킬의 계수(피해·회복·보호막·패시브 수치)가 × (1 + 0.06 × (Lv − 1)) 로 커집니다 — Lv10 ×1.54. 지속시간·확률·게이지 값은 레벨로 바뀌지 않습니다. 동료 레벨 조건이 있어 레벨을 앞질러 스킬만 올릴 수 없습니다.
| 스킬 Lv | 비결서 | 수량 | 골드 | 필요 동료 Lv | 누적 골드 | 계수 배율 |
| 1 → 2 | 하 | 2 | 2,000 | 10 | 2,000 | ×1.06 |
| 2 → 3 | 하 | 4 | 5,000 | 20 | 7,000 | ×1.12 |
| 3 → 4 | 하 | 6 | 10,000 | 30 | 17,000 | ×1.18 |
| 4 → 5 | 하 | 10 | 20,000 | 40 | 37,000 | ×1.24 |
| 5 → 6 | 중 | 4 | 40,000 | 50 | 77,000 | ×1.3 |
| 6 → 7 | 중 | 6 | 70,000 | 60 | 147,000 | ×1.36 |
| 7 → 8 | 중 | 10 | 120,000 | 70 | 267,000 | ×1.42 |
| 8 → 9 | 상 | 4 | 200,000 | 80 | 467,000 | ×1.48 |
| 9 → 10 | 상 | 8 | 350,000 | 90 | 817,000 | ×1.54 |
한 스킬 Lv10 까지: 비결서 하 22 · 중 20 · 상 12, 골드 817,000. 동료 1명 3스킬이면 그 3배(골드 2,451,000). 스킬 레벨 합은 전투력에 +1%씩 들어갑니다(최대 30 → ×1.30).
bruni23
bruni · 게임전투·성장 명세서
17 / Gear Enhance
장비 강화 비용 (+0~+20)
장비는 브루니만 씁니다(6부위 × 7등급 × 2계열 = 84종, 목록·기본 능력치는 장비·아이템 명세서). 강화는 장비가 아니라 부위 칸에 붙습니다. 물감 항아리에서 더 좋은 장비가 나와 갈아 끼워도 그 칸의 강화 단계가 그대로 남습니다 — 장비를 자주 바꾸는 키우기 구조에서 강화가 헛돌지 않게 하려는 결정입니다(바이블 추가 제안 ③).
| 항목 | 규칙 |
| 능력치 | 장비 기본 능력치 × (1 + 0.10 × 칸 강화) → +20 = ×3.00 |
| 성공 확률 | 100%. 실패·파괴·하락 없음 (확률형 요소를 강화에 두지 않음) |
| 상한 | 칸 강화 ≤ 브루니 Lv ÷ 7 (내림), 최대 +20 → 브루니 Lv140 에서 +20 |
| 강화석 | +1~+8 하 · +9~+15 중 · +16~+20 상 |
| 일괄 | 「6부위 모두 +1」 버튼 — 낮은 칸부터, 재화가 떨어지면 거기서 멈춤 |
| 강화 | 강화석 | 수량 | 골드 | 필요 브루니 Lv | 누적 골드 (1칸) | 누적 하/중/상 | 배율 |
| +0 → +1 | 하 | 2 | 2,000 | 7 | 2,000 | 2/0/0 | ×1.1 |
| +1 → +2 | 하 | 3 | 2,700 | 14 | 4,700 | 5/0/0 | ×1.2 |
| +2 → +3 | 하 | 4 | 3,650 | 21 | 8,350 | 9/0/0 | ×1.3 |
| +3 → +4 | 하 | 5 | 4,920 | 28 | 13,270 | 14/0/0 | ×1.4 |
| +4 → +5 | 하 | 6 | 6,640 | 35 | 19,910 | 20/0/0 | ×1.5 |
| +5 → +6 | 하 | 7 | 8,970 | 42 | 28,880 | 27/0/0 | ×1.6 |
| +6 → +7 | 하 | 8 | 12,100 | 49 | 40,980 | 35/0/0 | ×1.7 |
| +7 → +8 | 하 | 9 | 16,300 | 56 | 57,280 | 44/0/0 | ×1.8 |
| +8 → +9 | 중 | 4 | 22,100 | 63 | 79,380 | 44/4/0 | ×1.9 |
| +9 → +10 | 중 | 6 | 29,800 | 70 | 109,180 | 44/10/0 | ×2.0 |
| +10 → +11 | 중 | 8 | 40,200 | 77 | 149,380 | 44/18/0 | ×2.1 |
| +11 → +12 | 중 | 10 | 54,300 | 84 | 203,680 | 44/28/0 | ×2.2 |
| +12 → +13 | 중 | 12 | 73,300 | 91 | 276,980 | 44/40/0 | ×2.3 |
| +13 → +14 | 중 | 14 | 98,900 | 98 | 375,880 | 44/54/0 | ×2.4 |
| +14 → +15 | 중 | 16 | 134,000 | 105 | 509,880 | 44/70/0 | ×2.5 |
| +15 → +16 | 상 | 6 | 180,000 | 112 | 689,880 | 44/70/6 | ×2.6 |
| +16 → +17 | 상 | 9 | 243,000 | 119 | 932,880 | 44/70/15 | ×2.7 |
| +17 → +18 | 상 | 12 | 329,000 | 126 | 1,261,880 | 44/70/27 | ×2.8 |
| +18 → +19 | 상 | 15 | 444,000 | 133 | 1,705,880 | 44/70/42 | ×2.9 |
| +19 → +20 | 상 | 18 | 599,000 | 140 | 2,304,880 | 44/70/60 | ×3.0 |
6칸 모두 +20: 골드 13,829,280, 강화석 하 264 · 중 420 · 상 360.
bruni24
bruni · 게임전투·성장 명세서
17 / Endless Sinks
끝없는 지출처 — 색 다듬기·방울 교환
+20 이 끝난 뒤에도 골드가 갈 곳이 있어야 합니다. 경제 검토에서 무과금 90일째 골드 약 10억·물감 방울 7,400만이 남는다고 나왔고, s300 하루 골드 수입은 방치만으로 10,736,033(시간당 223,667 × 24시간 × 광고 2배)입니다. 그래서 상한 없는 지출처 둘을 둡니다.
색 다듬기 — 장비 칸마다, 골드만
| 항목 | 규칙 |
| 해금 | 칸 강화 +20 |
| 규칙 | 장비 칸 강화 +20 이 된 칸부터. n단계 비용 = r3(2,500,000 × 1.15^(n−1)) 골드, 재료 없음. 단계마다 그 칸 장비 기본 능력치 +1% (강화 배율 ×3.00 에 더함 → (3.00 + 0.01n)). 상한 없음 |
| 일괄 | 「6칸 모두 +1단계」 버튼 — 낮은 칸부터, 골드가 떨어지면 멈춤 |
| 단계 | 골드 | 1칸 누적 | 6칸 누적 | 칸 능력치 배율 (강화 ×3.00 에 더함) |
| 1 | 2,500,000 | 2,500,000 | 15,000,000 | ×3.01 |
| 2 | 2,880,000 | 5,380,000 | 32,280,000 | ×3.02 |
| 3 | 3,310,000 | 8,690,000 | 52,140,000 | ×3.03 |
| 4 | 3,800,000 | 12,490,000 | 74,940,000 | ×3.04 |
| 5 | 4,370,000 | 16,860,000 | 101,160,000 | ×3.05 |
| 6 | 5,030,000 | 21,890,000 | 131,340,000 | ×3.06 |
| 7 | 5,780,000 | 27,670,000 | 166,020,000 | ×3.07 |
| 8 | 6,650,000 | 34,320,000 | 205,920,000 | ×3.08 |
| 9 | 7,650,000 | 41,970,000 | 251,820,000 | ×3.09 |
| 10 | 8,790,000 | 50,760,000 | 304,560,000 | ×3.10 |
| 15 | 17,700,000 | 118,960,000 | 713,760,000 | ×3.15 |
| 20 | 35,600,000 | 256,060,000 | 1,536,360,000 | ×3.20 |
| 25 | 71,600,000 | 531,960,000 | 3,191,760,000 | ×3.25 |
| 30 | 144,000,000 | 1,086,860,000 | 6,521,160,000 | ×3.30 |
| 35 | 290,000,000 | 2,203,860,000 | 13,223,160,000 | ×3.35 |
| 40 | 582,000,000 | 4,447,860,000 | 26,687,160,000 | ×3.40 |
| 45 | 1,170,000,000 | 8,963,860,000 | 53,783,160,000 | ×3.45 |
| 50 | 2,360,000,000 | 18,053,860,000 | 108,323,160,000 | ×3.50 |
| 55 | 4,740,000,000 | 36,323,860,000 | 217,943,160,000 | ×3.55 |
| 60 | 9,530,000,000 | 73,073,860,000 | 438,443,160,000 | ×3.60 |
| 6칸 모두 n단계 | 필요 골드 | s300 하루 수입으로 며칠 |
| 10단계 | 304,560,000 | 28.4일 |
| 20단계 | 1,536,360,000 | 143.1일 |
| 30단계 | 6,521,160,000 | 607.4일 |
| 40단계 | 26,687,160,000 | 2485.8일 |
| 50단계 | 108,323,160,000 | 10089.7일 |
| 60단계 | 438,443,160,000 | 40838.5일 |
물감 방울 → 무지개 조각 (원정 상점 한 줄)
| 항목 | 값 |
| 교환 | 물감 방울 → 무지개 조각 1개 |
| 값 | 이번 주 n번째 교환 = 물감 방울 100,000 × 2^(n−1) → 100,000 · 200,000 · 400,000 · 800,000 · 1,600,000 · 3,200,000 · 6,400,000 · 12,800,000 · 25,600,000 · 51,200,000 |
| 한도 | 주 10회 (매주 월요일 04:00) · 10회 합계 방울 102,300,000 |
| 해금 | 동료 1명 이상 Lv100 (방울을 더 쓸 곳이 없어진 뒤) |
| 까닭 | s300 하루 방울 수입(방치 24시간 × 광고 2배)의 약 일주일치를 10번째 교환이 혼자 받음 — 남는 방울이 쌓이지 않게 하면서 무지개 조각은 주 10개로 묶는다 |
s300 하루 방울 수입 1,789,339 기준. 이 줄은 뽑기·상점 문서의 원정 상점 표에 들어가야 합니다(바이블 추가 제안 ⑯ — gacha 문서 반영 필요). 색 다듬기는 경제 시뮬레이터의 지출 규칙에도 들어가야 남는 골드가 줄어듭니다(economy 문서 반영 필요).
bruni25
bruni · 게임전투·성장 명세서
18 / Paint Pot
물감 항아리 레벨 비용 (Lv1~30)
물감 항아리는 계정 하나에 하나이고 Lv1~30 입니다. 레벨을 올리면 높은 등급 장비가 나올 확률이 오릅니다 — 레벨별 확률표는 뽑기·상점 명세서가 공개 형식으로 싣습니다. 여기서는 올리는 비용만 정합니다. 골드를 내면 대기가 시작되고, 대기가 끝나야 레벨이 오릅니다. 대기 중에도 항아리는 쓸 수 있습니다.
| Lv | 골드 | 대기 | 빛구슬 즉시 완료 | 누적 골드 | 누적 대기 |
| 1 → 2 | 2,000 | 5분 | 1 | 2,000 | 0.0일 |
| 2 → 3 | 2,840 | 7분 | 2 | 4,840 | 0.0일 |
| 3 → 4 | 4,030 | 9분 | 2 | 8,870 | 0.0일 |
| 4 → 5 | 5,730 | 12분 | 2 | 14,600 | 0.0일 |
| 5 → 6 | 8,130 | 16분 | 3 | 22,730 | 0.0일 |
| 6 → 7 | 11,500 | 21분 | 4 | 34,230 | 0.0일 |
| 7 → 8 | 16,400 | 28분 | 5 | 50,630 | 0.1일 |
| 8 → 9 | 23,300 | 37분 | 7 | 73,930 | 0.1일 |
| 9 → 10 | 33,100 | 49분 | 9 | 107,030 | 0.1일 |
| 10 → 11 | 46,900 | 1시간 5분 | 11 | 153,930 | 0.2일 |
| 11 → 12 | 66,700 | 1시간 27분 | 15 | 220,630 | 0.2일 |
| 12 → 13 | 94,700 | 1시간 55분 | 20 | 315,330 | 0.3일 |
| 13 → 14 | 134,000 | 2시간 33분 | 26 | 449,330 | 0.4일 |
| 14 → 15 | 191,000 | 3시간 24분 | 34 | 640,330 | 0.6일 |
| 15 → 16 | 271,000 | 4시간 31분 | 46 | 911,330 | 0.7일 |
| 16 → 17 | 385,000 | 6시간 0분 | 60 | 1,296,330 | 1.0일 |
| 17 → 18 | 547,000 | 7시간 59분 | 80 | 1,843,330 | 1.3일 |
| 18 → 19 | 776,000 | 10시간 37분 | 107 | 2,619,330 | 1.8일 |
| 19 → 20 | 1,100,000 | 14시간 8분 | 142 | 3,719,330 | 2.4일 |
| 20 → 21 | 1,560,000 | 18시간 48분 | 188 | 5,279,330 | 3.1일 |
| 21 → 22 | 2,220,000 | 25시간 0분 | 250 | 7,499,330 | 4.2일 |
| 22 → 23 | 3,160,000 | 33시간 15분 | 333 | 10,659,330 | 5.6일 |
| 23 → 24 | 4,480,000 | 44시간 13분 | 443 | 15,139,330 | 7.4일 |
| 24 → 25 | 6,360,000 | 58시간 48분 | 588 | 21,499,330 | 9.9일 |
| 25 → 26 | 9,040,000 | 72시간 0분 | 720 | 30,539,330 | 12.9일 |
| 26 → 27 | 12,800,000 | 72시간 0분 | 720 | 43,339,330 | 15.9일 |
| 27 → 28 | 18,200,000 | 72시간 0분 | 720 | 61,539,330 | 18.9일 |
| 28 → 29 | 25,900,000 | 72시간 0분 | 720 | 87,439,330 | 21.9일 |
| 29 → 30 | 36,700,000 | 72시간 0분 | 720 | 124,139,330 | 24.9일 |
공식: 골드 = r3(2000 × 1.42^(Lv−1)), 대기 = min(4320, round(5 × 1.33^(Lv−1))) 분(최대 72시간). 즉시 완료 = 남은 분 ÷ 6 올림 개의 빛구슬 — 바이블 추가 제안 ④(바이블 9-4 광고 자리 16개에는 대기 단축 광고가 없어 광고 단축은 두지 않았습니다. 빛구슬 단가는 economy·gacha 문서가 최종 확인).
bruni26
bruni · 게임전투·성장 명세서
19 / Relic & Bond
유물 레벨·인연 경험치
유물 레벨 (24종 공통, Lv1 → 10)
유물은 장착 없이 가지고만 있어도 효과가 납니다. 효과 수치는 장비·아이템 명세서의 Lv1 값에 아래 배율을 곱합니다. 재료는 「필요 중복 n」 또는 「숫돌 n×10」 중 하나만 냅니다(둘 다 내지 않습니다). 섞어 낼 수도 있고, 그때는 중복 1개를 숫돌 10개로 셉니다. 예: 필요 중복 2 → 중복 2 / 중복 1 + 숫돌 10 / 숫돌 20 중 하나. 골드는 따로 늘 냅니다.
| Lv | 필요 중복 n (또는 숫돌 n×10) | 골드 | 누적 중복 (또는 숫돌) | 누적 골드 | 효과 배율 |
| 1 → 2 | 1 (또는 숫돌 10) | 5,000 | 1 (또는 10) | 5,000 | ×1.2 |
| 2 → 3 | 1 (또는 숫돌 10) | 20,000 | 2 (또는 20) | 25,000 | ×1.4 |
| 3 → 4 | 2 (또는 숫돌 20) | 45,000 | 4 (또는 40) | 70,000 | ×1.6 |
| 4 → 5 | 2 (또는 숫돌 20) | 80,000 | 6 (또는 60) | 150,000 | ×1.8 |
| 5 → 6 | 3 (또는 숫돌 30) | 125,000 | 9 (또는 90) | 275,000 | ×2.0 |
| 6 → 7 | 3 (또는 숫돌 30) | 180,000 | 12 (또는 120) | 455,000 | ×2.2 |
| 7 → 8 | 4 (또는 숫돌 40) | 245,000 | 16 (또는 160) | 700,000 | ×2.4 |
| 8 → 9 | 4 (또는 숫돌 40) | 320,000 | 20 (또는 200) | 1,020,000 | ×2.6 |
| 9 → 10 | 5 (또는 숫돌 50) | 405,000 | 25 (또는 250) | 1,425,000 | ×2.8 |
바이블 6 표는 유물 비용 담당을 items 로 적었습니다. 이 표는 성장 비용을 한곳에서 보도록 둔 것이고, items 문서와 값이 다르면 items 쪽을 고치지 말고 메인이 하나로 정합니다(바이블 추가 제안 ⑤ — 유물 효과 배율 Lv 당 +20%).
인연 (동료 59명, Lv1 → 10)
| Lv | 필요 경험치 | 누적 | 능력치 보너스 (공격·체력) | 해금 |
| 1 → 2 | 20 | 20 | +1% | 개인 이야기 1화 |
| 2 → 3 | 40 | 60 | +2% | |
| 3 → 4 | 60 | 120 | +3% | |
| 4 → 5 | 90 | 210 | +4% | 개인 이야기 2화 |
| 5 → 6 | 120 | 330 | +5% | |
| 6 → 7 | 160 | 490 | +6% | |
| 7 → 8 | 200 | 690 | +7% | 개인 이야기 3화 |
| 8 → 9 | 250 | 940 | +8% | |
| 9 → 10 | 300 | 1,240 | +9% | 초상 테두리 「단짝」 |
| 인연 경험치 얻는 곳 | 경험치 | 한도 |
| 선물 (보통) | 10 | — |
| 선물 (좋아함 — 동료마다 2종) | 20 | — |
| 선물 (아주 좋아함 — 동료마다 1종) | 40 | — |
| 메인·이벤트 판 클리어에 출전 (방치 사냥 제외) | 2 | — |
| 방치 사냥 출전 1시간 | 1 | 하루 12 |
| 본편 선택지 「인연 +1」 | 10 | — |
개인 이야기 해금 Lv 2·5·8 은 바이블 6 그대로입니다(내용은 캐릭터 개인 이야기). 바이블 2-7 의 「선택지 인연 +1」은 인연 경험치 +10으로 구현합니다 — 레벨 +1 로 읽으면 본편 선택만으로 개인 이야기가 다 열려 버립니다(바이블 추가 제안 ⑥). 선물 10종의 좋아함·아주 좋아함 지정은 characters 문서.
bruni27
bruni · 게임전투·성장 명세서
19 / Relic & Bond
유물 숫돌 공급 계산
유물 숫돌 공급 — 핵심 유물 6종 Lv10 을 90일 안에
숫돌만으로 유물 1종 Lv1→10 은 250개, 출전 핵심 6종이면 1,500개입니다. 예전 공급(토벌 회당 1~2 + 원정 상점 주 10)으로는 수백 주가 걸려, 아래처럼 공급처를 늘렸습니다. 각 값의 원본은 bosses.json(보스 첫 처치·토벌)과 stages.json(탑·어려움)입니다.
| 공급처 | 양 |
| 메인 보스 판 첫 클리어 | 장 보스 40 · 중간 보스 20 · 강화판(+) 20 — bosses.json reward_first(_plus) |
| 주간 토벌 100% 구간 | 단계 k 1~4: 3 · 5~9: 4 · 10 이상: 5 — bosses.json raid_reward.whetstone (주 3회) |
| 주간 토벌 단계 첫 100% | 단계마다 1번 20 (20단계) |
| 시련의 탑 10층마다 | 30 (10·20·…·100층) — stages.json tower reward |
| 어려움 보스 판 첫 클리어 | 20 (W6 완성판부터 — 90일 계산에는 넣지 않음) |
| 원정 상점 | 증표 200 → 1, 주 10 (gacha 문서 — 90일 계산에는 넣지 않음) |
바이블 6-4 목표 진도(7일 s060 · 30일 s150 · 90일 s300)로 걸었을 때의 누적입니다. 중복·원정 상점·어려움은 넣지 않은 하한입니다.
| 일차 | 판 | 보스 첫 처치 | 토벌 100% | 토벌 단계 첫 처치 | 탑 10층마다 | 누적 |
| 7일 | s060 | 160 | 0 | 0 | 0 | 160 |
| 14일 | s087 | 200 | 9 | 40 | 0 | 249 |
| 30일 | s150 | 380 | 34 | 160 | 60 | 634 |
| 45일 | s188 | 460 | 66 | 220 | 120 | 866 |
| 60일 | s225 | 560 | 96 | 280 | 180 | 1,116 |
| 75일 | s262 | 660 | 131 | 340 | 240 | 1,371 |
| 90일 | s300 | 760 | 161 | 400 | 300 | 1,621 |
90일차 누적 1,621 ≥ 필요 1,500 → 충족. 경제 시뮬레이터(economy_sim.py)의 토벌 숫돌 규칙은 아직 옛 값(100% 구간 1~2)이라 bosses.json raid_reward.whetstone 을 읽게 고쳐야 합니다(economy 문서 반영 필요).
bruni28
bruni · 게임전투·성장 명세서
20 / Proposals
바이블 추가 제안과 구현 기준
바이블과 다르게 정했거나 새로 정한 것
| No | 내용 | 영향 문서 | 성격 |
| ① | 적 판 배율 m(s) = 1 + 0.125 × (s − 1) + 0.00005 × (s − 1)² (12장) — 데이터 반영 끝, 바이블 6-4 문구 갱신은 메인 | 바이블 6-4 · enemies · stages · economy | 결정됨 |
| ② | 브루니 승급에도 ★ 단계 골드 (15장) | 바이블 6 star | 해석 |
| ③ | 장비 강화는 부위 칸에 붙음 · 상한 브루니 Lv ÷ 7 · 성공 100% (17장) | items · screens | 새로 정함 |
| ④ | 항아리 대기 즉시 완료 = 빛구슬 1개당 6분 (18장) | economy · gacha | 새로 정함 |
| ⑤ | 유물 효과 배율 Lv 당 +20% 와 유물 레벨 비용 표 (19장) | items (바이블상 유물 비용 담당) | 겹침 — 하나로 |
| ⑥ | 선택지 「인연 +1」 = 인연 경험치 +10 (19장) | story · script-ch1 | 해석 |
| ⑦ | 스킬 Lv 계수 +6%/Lv, 스킬 Lv 에 동료 Lv 조건 (16장) | characters | 새로 정함 |
| ⑧ | 인연 Lv 당 공격·체력 +1%, 각성 2~5 단계 부가 효과 (10·16장) | characters · screens | 새로 정함 |
| ⑨ | 동료 레벨 초기화는 1차판 제외, 넣으면 100% 반환 (13장) | screens | 새로 정함 |
| ⑩ | 파티 전투력의 「+ 유물 보정」을 따로 더하지 않음 (10장) | 바이블 6-2 | 해석 |
| ⑪ | 디버프 「바램」 = 상성 유리 ×1.30 → ×1.00 (enemies 정의로 통일), 적이 걸고 브루니 면역 (08장) | enemies | 통일 |
| ⑫ | 필살기는 행동 타이머를 쓰지 않는 끼어들기 · 첫 행동 = 간격 × 0.5 · 웨이브 전환 1초 정지 (01·03장) | tech | 세부 확정 |
| ⑬ | 상태 효과 id 는 combat.json 하나 — characters·enemies·bosses 효과 키를 원본 id 로 다시 생성, 새 id 8개(b_crit_taken_down·b_heal_power_up·b_hp_up·b_stealth·b_cc_resist·b_debuff_dur_down·d_stain·d_shock) (07·08장) | characters · enemies · tech | 통일 |
| ⑭ | 타깃 표기 21개로 통일, front1 = 칸 번호 작은 쪽 (04장) | characters · enemies · tech | 통일 |
| ⑮ | 보스 제어: 지속 ×0.5 + 6초 재적용 면역 중 또 걸리면 휘청 (09장) | enemies | 통일 |
| ⑯ | 끝없는 지출처: 색 다듬기(골드) · 방울 → 무지개 조각 교환(주 10회) (17장) | economy · gacha · screens | 새로 정함 |
| ⑰ | 유물 재료는 중복 또는 숫돌 중 하나 · 숫돌 공급 확대(보스 첫 처치·토벌·탑·어려움) (19장) | enemies · stages · economy · items | 새로 정함 |
| ⑱ | 추천 전투력 = 표준 편성 승률 95% 파티 전투력 · 돌파 판정 = 50% (11장) | stages · economy | 새로 정함 |
구현 체크리스트 (tech 문서로 넘기는 것)
| 항목 | 기준 |
| 재현성 | 같은 시드 + 같은 편성 → combat_sim.py 와 같은 로그. CI 에서 시드 10개 로그 비교 |
| 정수화 | 타이머·시각은 int ms, 피해·회복은 마지막에 한 번 내림. float 누적 금지 |
| 데이터 | res://data/combat.json (상태·타깃·상성) · growth.json (비용 표) 를 DB 오토로드에 상주 |
| 치트 방지 연결 | 성장 비용은 클라이언트 표 그대로 서버도 가짐 → 저장 파일의 레벨·재화가 누적 비용과 맞는지 대조 (기술 명세서) |
근거: 설계 바이블(game-design/bible.md, 2026-10-13) 4·5·6·7·8·9 장 고정값 · 바이블이 인용한 game-design/research/competitors.md(2026-10-13 조회) 의 성장 구조 —
버섯커 키우기 램프 최대 28~30레벨(나무위키·krasia 역기획서), 블루 아카이브 신비 해방 1→5★ 엘레프 30·80·100·120(나무위키), 쿠키런: 킹덤 승급 영혼석 20~100(나무위키) 은 단계 수·구조만 참고했고 이 문서의 수치는 그 값을 옮기지 않았습니다.
이 문서의 비용·확률 외 수치는 모두 설계값이며 game-design/gen/systems_data.py(전투 시뮬레이션은 combat_sim.py · curve.py)를 돌린 결과입니다. 12장 수입 모델은 추정(설계 가정)이고 실측이 아닙니다. 12장의 경제 대조 값은 game-design/gen/economy_sim.py 를 2026-10-13 에 이 문서 담당이 읽기 전용으로 돌린 결과(무과금 시드 7개 중앙값)이며, 경제 문서가 고쳐지면 바뀝니다.
29