콘텐츠로 이동
GameDesign

막기 작성완료구현밸런싱미완료

flowchart LR
IN([막기 버튼 누름]) --> PREP

subgraph GUARD [막는 상태]
  PREP[방패 올림<br/>전방 120도 방어]
  ATK{피격}
  STAM[스태미너 소모<br/>안정도로 경감]
end

PREP -->|버튼 유지| ATK
ATK -->|스태미너 여유| STAM --> PREP
ATK -->|스태미너 0| BREAK[가드 붕괴<br/>행동 불능 · 피해 ×1.5]

IN -->|버튼 뗌| IDLE([Idle])
BREAK --> RECOVER[회복 대기] --> IDLE

classDef guard fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a
classDef bad fill:#fecaca,stroke:#dc2626,stroke-width:2.5px,color:#7f1d1d
classDef node fill:#f1f5f9,stroke:#64748b,stroke-width:2px,color:#0f172a
class PREP,ATK,STAM guard
class BREAK,RECOVER bad
class IN,IDLE node
단계동작
막기 준비막기 버튼 누름 → 방패 올림. 이 구간 피격 시 일반 피해.
막는 상태버튼을 누르고 있는 동안 유지. 전방 120도 각도 내 공격에 피해 감소.
행동 불능스태미너 0 도달 시 진입. 회복 전까지 다음 행동 불가.
원피해 D
→ 방패 막기 (방어율 r): D × (1 − r) = D_after_block
→ 방어구 방어력 감산: D_after_block − defense = D_after_armor
→ 흡수율 적용:
물리 피해 → × (1 − physicsAbsorption)
속성 피해 → × (1 − elementAbsorption)
= D_final
→ HP에 D_final 적용
단계출처
방어율 r방패 아이템 (ShieldStats.blockRate)
방어력 (감산)방어구 아이템 (ArmorTableData.defense / 종류별 slashDefense/strikeDefense/pierceDefense)
흡수율 (곱적용)방어구 아이템 (ArmorTableData.physicsAbsorption/elementAbsorption)

코드(StabilityModel.ComputeStaminaDrain) 기준:

p(s) = min(P_max, s / (s + K))
S = max(S_min, S_base × (1 − p(s)))
의미
s방패의 안정도 스코어
p(s)안정도가 만드는 스태미너 경감률
P_max경감률 상한 (코드 기본값 0.70)
K체감 절반점 (코드 기본값 40)
S_base몬스터 공격의 기본 스태미너 데미지
S_min최소 소모량 (코드 기본값 5)
  • 막기 중 이동속도 −20% (절대 감산).
  • 스태미너가 0 이하가 되면 가드가 풀리고 잠시 행동 불능.
    • 행동 불능 동안 피해 ×1.5배.
    • 행동 불능 동안 스태미너 회복 중지.
  • 가드 붕괴 (가드 실패) 시: D_fail = k_break × D 적용 후 즉시 HP 반영.