본문으로 건너뛰기

드롭 아이템 시스템

v1.0 | 2026-04-02 | 초기 설계

수치 SSOT: game/data/pickups.json — 문서 내 수치는 참고용이며 JSON이 항상 우선


1. 개요

VS 스타일 필드 드롭 아이템 시스템. 적 처치 시 다양한 아이템이 드롭되며, 플레이어 근접 시 자석 효과로 흡수.

설계 원칙

원칙설명
주울 맛화면 가득한 아이템을 쓸어 담는 쾌감 (VS 핵심 경험)
보상 가시성아이템 종류를 색상/크기/이펙트로 즉시 구분
경제 통제드롭률로 인런 밸런스 + 메타 경제 조절
기존 통합xp_gem, equipment_drop 기존 시스템과 공존

2. 아이템 목록 (8종)

2-1. 경험치 구슬 (기존 확장)

등급XP 값색상적용 조건
소형1시안 #5EE9E9xp_value 1~4
중형5청색 #4A90D9xp_value 5~14
대형20골드 #ECAB11xp_value 15+

기존 xp_gem.gd를 확장하여 3등급 비주얼 분기.

2-2. 음식 (3종)

HP 회복 아이템. 상세는 docs/game/system/hp-recovery.md 참조.

아이템이름회복비주얼
food_small10 HP주황 사각 7px
food_medium삼계탕25 HP적색 사각 9px, 글로우
food_large산삼탕50 HP적색 사각 11px, 글로우+펄스

2-3. 엽전 (3등급)

인런 화폐 + 메타 화폐. 사당 coin_gain 업그레이드 배율 적용.

등급색상
동전1동색 #CD7F32
은전5은색 #C0C0C0
금전10골드 #ECAB11

2-4. 자석 부적

획득 즉시 화면 내 모든 아이템을 플레이어에게 흡수. VS의 Vacuum과 동일.

  • 비주얼: 시안 다이아몬드, 글로우+펄스
  • 흡수 반경: 9999 (사실상 무한)

2-5. 뇌화부 (폭탄)

획득 즉시 화면 내 모든 적에게 100 고정 데미지. VS의 Rosary와 동일한 역할.

  • 비주얼: 핫핑크 원형 #F94E6D, 글로우+펄스
  • 초반 적(HP 10~30)은 즉사, 후반 적은 체력 깎기

2-6. 보물상자

직접 접촉해야 획득 (자석 흡수 불가). 무기 진화 트리거 역할.

보상확률조건
무기 진화30%Lv.8 무기 + 대응 패시브 보유 시
장비 드롭50%스테이지 iLv 기준
산삼탕10%
엽전 50개10%

보스 처치 시 100% 드롭. 기존 combat.md의 진화 조건("무기 Lv.8 + 패시브 + 보물상자")과 연동.


3. 드롭 테이블

3-1. 적 분류

분류기준예시
일반 (normal)type 없음 + xp_value < 15잡귀, 도깨비불, 처녀귀신, 해골
엘리트 (elite)xp_value ≥ 15 또는 elite_override저승사자, 구미호, 대귀
보스 (boss)type = "boss"귀왕, 천년구미호, 저승문지기

3-2. 드롭 확률 요약

아이템일반엘리트보스
경험치 구슬100%100%100%
3%10%
삼계탕5%
산삼탕100%
엽전 (동/은/금)5% (동)15% (은)100% (금 5~10개)
자석 부적0.5%2%50%
뇌화부0.1%0.5%30%
보물상자100%
장비 드롭2% (기존)12% (기존 ×6)100% (기존)

3-3. 도깨비 특성 연동

도깨비 캐릭터의 dokkaebi_prank 특성: 모든 드롭 확률 2배 (대신 적 이동속도 2배). pickups.jsondokkaebi_drop_multiplier: 2.0 적용.


4. 타이머 스폰

시간 경과에 따라 필드에 자동 생성되는 중립 아이템 (VS 스타일).

아이템첫 스폰간격위치
삼계탕1분2분마다플레이어 근처 반경 150px
자석 부적2분3분마다화면 랜덤

5. 기존 시스템 통합

5-1. xp_gem.gd

  • 변경: 3등급 비주얼 분기 (소/중/대)
  • setup(pos, value) 시 value 기준으로 등급 결정
  • 기존 로직(scatter → magnet → collect) 그대로 유지

5-2. equipment_drop.gd

  • 변경 없음: 기존 장비 드롭 시스템 유지
  • 보물상자 내 equipment_drop 보상은 기존 EquipmentManager.collect() 사용

5-3. EventBus 시그널 추가 필요

시그널매개변수용도
food_collectedheal_amount: float음식 획득 → HP 회복
coin_collectedvalue: int엽전 획득 → 경제
magnet_collected자석 → 전체 흡수
bomb_collecteddamage: float뇌화부 → 화면 데미지
chest_openedreward: Dictionary보물상자 → 보상 처리

6. Engineer 구현 체크리스트

  1. game/src/pickups/ 신규 스크립트 — food.gd, coin.gd, magnet.gd, bomb.gd, treasure_chest.gd
  2. 각 픽업은 기존 XPGem 패턴 따르기: setup() → scatter → magnet → collect → pool return
  3. PoolManager 풀 등록 (food_small, food_medium, food_large, coin, magnet, bomb, treasure_chest)
  4. enemy_base.gd — 처치 시 pickups.json drop_tables 참조하여 랜덤 드롭
  5. EventBus — 신규 시그널 5개 추가
  6. 타이머 스폰 매니저 — game_world.gd에서 timed_spawns 처리
  7. DataManagerpickups.json 로드 추가 (_file_map에 "pickups" 등록)
  8. xp_gem.gd — 3등급 비주얼 분기 (size/color)

변경 이력

날짜버전변경 내용
2026-04-02v1.0초기 설계: 8종 아이템 + 3단계 드롭 테이블 + 타이머 스폰