- BossPatternData에 minPhase 필드 추가 (기본값 1, Inspector 설정 가능) - BossCombatBehaviorContext의 signatureMinPhase를 minPhase로 대체 - IsPatternReady와 CheckPatternReadyActionBase에 Phase 체크 통합 - BT 경로와 Update 경로 모두 일관되게 Phase 제한 적용 - 집행개시 패턴 minPhase=3, 점프 패턴 minPhase=2 설정
45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using UnityEngine;
|
|
using System.Collections.Generic;
|
|
using Colosseum.Skills;
|
|
|
|
namespace Colosseum.AI
|
|
{
|
|
public enum PatternStepType { Skill, Wait }
|
|
|
|
[System.Serializable]
|
|
public class PatternStep
|
|
{
|
|
public PatternStepType Type = PatternStepType.Skill;
|
|
public SkillData Skill;
|
|
[Min(0f)] public float Duration = 0.5f;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 보스 패턴 데이터. 순서대로 실행할 스텝(스킬 또는 대기) 목록과 쿨타임을 정의합니다.
|
|
/// </summary>
|
|
[CreateAssetMenu(fileName = "NewBossPattern", menuName = "Colosseum/Boss Pattern")]
|
|
public class BossPatternData : ScriptableObject
|
|
{
|
|
[Header("패턴 정보")]
|
|
[SerializeField] private string patternName;
|
|
|
|
[Header("스텝 순서")]
|
|
[SerializeField] private List<PatternStep> steps = new List<PatternStep>();
|
|
|
|
[Header("쿨타임")]
|
|
[Min(0f)]
|
|
[Tooltip("패턴 완료 후 다시 사용 가능해지기까지의 시간")]
|
|
[SerializeField] private float cooldown = 5f;
|
|
|
|
[Header("페이즈 제한")]
|
|
[Min(1)]
|
|
[Tooltip("이 패턴을 사용하기 시작하는 최소 페이즈 (1=Phase 1부터)")]
|
|
[SerializeField] private int minPhase = 1;
|
|
|
|
public string PatternName => patternName;
|
|
public IReadOnlyList<PatternStep> Steps => steps;
|
|
public float Cooldown => cooldown;
|
|
public int MinPhase => minPhase;
|
|
}
|
|
}
|