5.2 KiB
Skybound Skill Slot Limit Weapon 5 Passive 5
작성일: 2026-04-26 13:29 KST
요청 요약
- 사용자가 획득할 수 있는 스킬 수량에 제한을 둔다.
- 총 10개 스킬을 보유할 수 있게 한다.
- 10개 중 5개는 무기, 5개는 패시브로 분리한다.
- 슬롯이 부족한 상태에서 새 스킬을 선택하려 하면
슬롯이 부족합니다에 해당하는 노티가 필요하다. - 슬롯 제한 때문에 사용하지 못하는 스킬이 목록에 나올 수 있으므로
Skip Upgrade선택지도 계속 필요하다. - 5/5 구조가 적절한지 검토한다.
판단
현재 Skybound에는 무기와 패시브 풀이 이미 넓고, 8스테이지까지 성장해야 한다.
따라서 지금 시점에서는 무기 5개 + 패시브 5개가 적절하다.
더 줄이는 선택지도 가능하지만, 아직은 권장하지 않는다.
- 4/4는 빌드 정체성이 더 강해지는 대신 초반 선택 운 영향이 커진다.
- 5/5는 Survivor.io/Vampire Survivors류의 성장 폭과 전략성을 적당히 유지한다.
- 6/6 이상은 사용자가 거의 모든 것을 들고 가는 느낌이 강해져 빌드 선택 의미가 약해진다.
그래서 이번 패스에서는 5/5를 기본값으로 적용했다.
적용한 변경
Skill Slot Limit 추가
skills.ts에 슬롯 제한 상수를 추가했다.
export const SKILL_SLOT_LIMITS = {
WEAPON: 5,
PASSIVE: 5,
}
이제 시스템 전반에서 동일한 기준을 사용한다.
후보 생성 필터링
ProgressionSystem.generateSkillCards()와 generateMiniBossRewardCards()에서 슬롯 제한을 반영했다.
규칙:
- 이미 보유한 스킬은 계속 레벨업 가능하다.
- 새 무기 획득은 무기 슬롯이 5개 미만일 때만 가능하다.
- 새 패시브 획득은 패시브 슬롯이 5개 미만일 때만 가능하다.
- 슬롯이 꽉 찬 타입의 새 스킬은 정상 후보 생성에서 제외한다.
선택 시 슬롯 부족 방어
혹시 예외 경로로 선택 불가 카드가 들어오거나, UI/엔진 동기화 타이밍 문제로 새 스킬 선택이 들어올 수 있다.
그래서 ProgressionSystem.applySkillSelection()에도 최종 방어를 추가했다.
슬롯이 부족하면:
- 스킬을 추가하지 않는다.
- 게임을 재개한다.
- 전투 화면에
WEAPON SLOTS FULL또는PASSIVE SLOTS FULL텍스트를 띄운다. - 보조 텍스트로
Choose another module or skip을 띄운다.
Store 레벨 방어
useGameStore.addSkill()에도 동일한 슬롯 제한 방어를 추가했다.
이유:
- UI나 엔진 외부에서
addSkill()이 호출되더라도 잘못된 스킬이 저장되지 않게 하기 위함이다. __skip__도 기존처럼 저장되지 않는다.
Level Up UI 슬롯 상태 표시
LevelUpModal 상단에 현재 슬롯 상태를 표시한다.
표시:
Weapons 0/5Passives 0/5
슬롯이 가득 차면 해당 배지가 붉은 톤으로 바뀐다.
SLOT FULL 카드 표시
정상 후보 생성에서는 사용 불가 카드가 거의 나오지 않지만, 예외적으로 pre-generated cards나 fallback 상태에서 들어올 수 있다.
이 경우 카드에 다음 표시를 추가했다.
SLOT FULL태그No empty weapon/passive slot설명WEAPON slots are full또는PASSIVE slots are full
사용자는 이때 새로 추가된 Skip Upgrade를 선택해 넘길 수 있다.
설계 의도
슬롯 제한의 핵심은 빌드 선택을 더 전략적으로 만드는 것이다.
제한이 없으면 사용자는 결국 대부분의 무기와 패시브를 다 들고 가게 되고, 선택의 의미가 약해진다.
5/5 구조에서는 다음 판단이 생긴다.
- 무기 슬롯 하나를 새 무기에 쓸 것인가?
- 기존 무기 레벨업을 기다릴 것인가?
- 패시브 슬롯을 EVO 재료에 쓸 것인가?
- 생존 패시브를 포기하고 공격 패시브를 가져갈 것인가?
- 지금 후보가 별로면 스킵할 것인가?
이번 변경은 Skip Upgrade의 존재 이유도 더 명확하게 만든다.
수정 파일
/Volumes/Data/project/Antigravity/Skybound/src/features/game/config/skills.ts/Volumes/Data/project/Antigravity/Skybound/src/features/game/store/useGameStore.ts/Volumes/Data/project/Antigravity/Skybound/src/features/game/systems/ProgressionSystem.ts/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/LevelUpModal.tsx/Volumes/Data/project/Antigravity/Skybound/src/features/game/ui/LevelUpModal.css
검증
npm run build성공/sprites/player.png경고 없음- 출력 디렉터리:
dist/28
후속 플레이테스트 체크 포인트
- 무기 5개를 보유한 상태에서 새 무기 후보가 정상 레벨업 목록에서 제외되는지 확인한다.
- 패시브 5개를 보유한 상태에서 새 패시브 후보가 정상 레벨업 목록에서 제외되는지 확인한다.
- 이미 보유한 무기/패시브는 슬롯이 가득 차도 레벨업 가능한지 확인한다.
- 예외적으로
SLOT FULL카드가 보일 때 선택하면 슬롯 부족 노티가 뜨는지 확인한다. Skip Upgrade가 슬롯 제한 상황에서 자연스러운 탈출구로 작동하는지 확인한다.- 5/5가 너무 넉넉하거나 너무 답답하지 않은지 확인한다.