feat: 드로그 보스 AI 및 런타임 상태 구조 재구성

- 드로그 전투 컨텍스트를 BossBehaviorRuntimeState 중심 구조로 정리하고 BossEnemy, 패턴 액션, 조건 노드가 마지막 실행 결과와 phase 상태를 직접 사용하도록 갱신
- BT_Drog와 재빌드 에디터 스크립트를 확장해 phase 전환, 집행 결과 분기, 거리/쿨타임 기반 패턴 선택을 드로그 전용 자산과 노드 파라미터로 재구성
- 드로그 패턴/스킬/이펙트/애니메이션 플레이스홀더 자산을 재생성하고 보스 프리팹이 새 런타임 상태 및 등록 클립 구성을 참조하도록 정리
This commit is contained in:
2026-04-06 13:56:47 +09:00
parent 60275c6cd9
commit 904bc88d36
172 changed files with 98477 additions and 3490 deletions

View File

@@ -50,6 +50,16 @@ namespace Colosseum.Skills
All = Instant | Buff,
}
/// <summary>
/// 시전 중 대상 추적 방식입니다.
/// </summary>
public enum SkillCastTargetTrackingMode
{
None,
FaceTarget,
MoveTowardTarget,
}
/// <summary>
/// 스킬 데이터. 스킬의 기본 정보와 효과 목록을 관리합니다.
/// </summary>
@@ -180,6 +190,14 @@ namespace Colosseum.Skills
[Tooltip("시전 중 다른 스킬 입력 차단 여부")]
[SerializeField] private bool blockOtherSkillsWhileCasting = true;
[Header("시전 중 대상 추적")]
[Tooltip("시전 중 대상에게 얼마나 추종할지 결정합니다.")]
[SerializeField] private SkillCastTargetTrackingMode castTargetTrackingMode = SkillCastTargetTrackingMode.None;
[Tooltip("대상을 바라볼 때 사용하는 회전 속도입니다.")]
[Min(0f)] [SerializeField] private float castTargetRotationSpeed = 12f;
[Tooltip("대상을 추격할 때 멈추는 거리입니다.")]
[Min(0f)] [SerializeField] private float castTargetStopDistance = 0f;
[Header("무기 조건")]
[Tooltip("이 스킬 사용에 필요한 무기 특성. None이면 제약 없음.")]
[SerializeField] private WeaponTrait allowedWeaponTraits = WeaponTrait.None;
@@ -246,6 +264,9 @@ namespace Colosseum.Skills
public bool BlockMovementWhileCasting => blockMovementWhileCasting;
public bool BlockJumpWhileCasting => blockJumpWhileCasting;
public bool BlockOtherSkillsWhileCasting => blockOtherSkillsWhileCasting;
public SkillCastTargetTrackingMode CastTargetTrackingMode => castTargetTrackingMode;
public float CastTargetRotationSpeed => castTargetRotationSpeed;
public float CastTargetStopDistance => castTargetStopDistance;
public IReadOnlyList<SkillEffect> CastStartEffects => castStartEffects;
public IReadOnlyList<SkillTriggeredEffectEntry> TriggeredEffects => triggeredEffects;
public WeaponTrait AllowedWeaponTraits => allowedWeaponTraits;