enum으로 구현하지 않고, 각각을 추상 SO 클래스 ItemRarity의 구현체로 만들었다. 추후 등급 체계를 수정할 가능성을 고려한 방식이다. (enum은 중간에 단계를 추가하거나 빼면, 기존 아이템들의 등급 설정을 다시 검토해야 한다.)| Name | Rarity | Price | Score | Health | Resettable | Comment |
|---|---|---|---|---|---|---|
| BasicPin | Common | 0 | 1 | 1 | TRUE | 기본 핀. 상점에 등장하지 않음. 아무 것도 없는 칸은 항상 기본 핀이고, 아래의 모든 특수 핀들은 기본 핀이 있는 자리에 갈아 낄 수 있다. |
| ResetPin | Epic | 7 | 1 | 1 | TRUE | 충돌 시 다른 모든 핀을 재활성화 |
| BetterPin | Rare | 2 | 10 | 1 | TRUE | |
| GlassPin | Rare | 5 | 30 | 1 | TRUE | 충돌 시 5% 확률로 영구 파괴 |
| ReplicaPin | Legendary | 9 | 1 | 1 | TRUE | 충돌 시 대상 공의 복제본 1개 생성. 복제본은 핀 기준 y축 대칭으로 튀어나간다. |
| ChipPin | Rare | 5 | 5 | 1 | TRUE | 충돌 시 칩 1개 획득 |
| MagnetPin | Rare | 5 | 10 | 1 | TRUE | 활성화 상태일 때, 범위 내의 공을 끌어당김 |
| BlackholePin | Epic | 6 | 1 | 1 | TRUE | 직접 충돌 시에만 발동. 공을 보드 최상단 랜덤한 위치로 순간 이동 |
| LightningPin | Epic | 7 | 10 | 1 | TRUE | 충돌 시 주변 활성화 된 핀에 연쇄 번개 충격 |
| Name | Rarity | Score | Damage | Mass | Elasticity | Radius | Comment |
|---|---|---|---|---|---|---|---|
| BasicBall | Common | 1 | 1 | 1 | 1 | 0.15 | 기본 공 |
| BouncyBall | Rare | 1 | 1 | 1 | 2 | 0.15 | 아주 잘 튕김 |
| PingPongBall | Common | 1 | 1 | 0.8 | 1.2 | 0.12 | 작고, 가볍고, 잘 튕김 |
| BasketBall | Epic | 1 | 1 | 1 | 1.5 | 0.2 | 활성화된 두 핀 사이로 떨어지면 보너스 점수 |
| BowlingBall | Rare | 2 | 1 | 2 | 0.8 | 0.2 | 크고, 무겁고, 덜 튕김 |
| RugbyBall | Rare | 2 | 1 | 1 | 1 | 0.15 | 럭비공 모양 전용 콜라이더 |
| GlassBall | Rare | 5 | 1 | 1 | 1 | 0.15 | 충돌 시 1% 확률로 영구 파괴 |
| TimeBombBall | Rare | 5 | 1 | 1 | 1.6 | 0.15 | 발사 후 9초 뒤 폭발. 폭발 시 이번 발사 점수가 절반으로 감소 |
| GhostBall | Epic | 5 | 1 | 0.1 | 2 | 0.25 | 핀과 충돌 없이 통과함. 벽과 낙하 구역 칸막이와는 정상적으로 충돌. |
| MatryoshkaBall | Legendary | 1 | 1 | 1 | 1 | 0.15 | 충돌 시 공 두 개로 분열. (최대 3번, 즉 최대 8개까지 분열) |
| DiceBall | Epic | 1~6 | 1 | 1 | 1 | 0.15 | 매 충돌 시 1~6 중 랜덤으로 점수가 선택됨 |
PinView라는 컴포넌트를 가져야 한다)PinShapeValidator에서 페그가 서로 겹치지 않도록, 충돌체 크기를 검사한다.| BasicPin의 경우 | 페그의 크기를 키웠을 때 |
|---|---|
![]() | ![]() |
PinHitContext에 담기는 정보 중 하나이다.BallAbility를 두었다.OnScoring)OnScoring인 이유이다. 공의 점수를 확정짓는 지점.OnHit)OnTick)OnGapPassed)PinAbility를 두었다.OnHit)PinHitContext가 알려준다.PinView 프리팹 아래에 별도 물리 모듈을 두었다. (충돌 시 발동하는 효과가 아니고, 인력 효과 정도는 PointEffector2D라는 유니티 컴포넌트를 그대로 쓸 수 있다.)