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;
}
///
/// 보스 패턴 데이터. 순서대로 실행할 스텝(스킬 또는 대기) 목록과 쿨타임을 정의합니다.
///
[CreateAssetMenu(fileName = "NewBossPattern", menuName = "Colosseum/Boss Pattern")]
public class BossPatternData : ScriptableObject
{
[Header("패턴 정보")]
[SerializeField] private string patternName;
[Header("스텝 순서")]
[SerializeField] private List steps = new List();
[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 Steps => steps;
public float Cooldown => cooldown;
public int MinPhase => minPhase;
}
}