feat: 젬 장착 제약 시스템 추가

- 기반 스킬 분류를 도입하고 젬별 장착 가능 스킬 타입 조건을 추가함
- 동일 젬 중복 장착, 카테고리 상호 배타, 특정 젬 상호 배타를 로드아웃 검증에 반영함
- 테스트용 젬/스킬 자산과 디버그 생성 메뉴를 새 제약 구조에 맞게 갱신함
- Unity 재컴파일과 콘솔 확인으로 신규 컴파일 에러가 없음을 검증함
This commit is contained in:
2026-03-26 14:49:59 +09:00
parent e4710f9a29
commit 1261d4dc3c
27 changed files with 399 additions and 34 deletions

View File

@@ -5,6 +5,23 @@ using UnityEngine;
namespace Colosseum.Skills
{
/// <summary>
/// 젬 장착 조건에서 사용하는 기반 스킬 분류입니다.
/// 하나의 스킬이 여러 분류를 동시에 가질 수 있습니다.
/// </summary>
[Flags]
public enum SkillBaseType
{
None = 0,
Attack = 1 << 0,
Defense = 1 << 1,
Support = 1 << 2,
Control = 1 << 3,
Mobility = 1 << 4,
Utility = 1 << 5,
All = Attack | Defense | Support | Control | Mobility | Utility,
}
/// <summary>
/// 스킬 데이터. 스킬의 기본 정보와 효과 목록을 관리합니다.
/// </summary>
@@ -17,6 +34,10 @@ namespace Colosseum.Skills
[SerializeField] private string description;
[SerializeField] private Sprite icon;
[Header("기반 스킬 분류")]
[Tooltip("젬 장착 가능 조건에 사용하는 기반 스킬 분류")]
[SerializeField] private SkillBaseType baseTypes = SkillBaseType.None;
[Header("애니메이션")]
[Tooltip("기본 Animator Controller의 'Skill' 상태에 덮어씌워질 클립")]
[SerializeField] private AnimationClip skillClip;
@@ -61,6 +82,7 @@ namespace Colosseum.Skills
public string SkillName => skillName;
public string Description => description;
public Sprite Icon => icon;
public SkillBaseType BaseTypes => baseTypes;
public AnimationClip SkillClip => skillClip;
public AnimationClip EndClip => endClip;
public float AnimationSpeed => animationSpeed;