refactor: 집행개시 시그니처 전용 경로를 BT 일반 패턴 스텝으로 통합
- PatternStepType.ChargeWait 및 ChargeStepData 도입으로 충전/차단 판정을 일반 패턴 스텝으로 표현 - UsePatternByRoleAction에서 IsSignature 분기 완전 제거, 일반 패턴 경로로 통합 - BossCombatBehaviorContext에서 시그니처 전용 메서드 10개 이상 제거 - BossStaggerAction(신규): 충전 차단 성공 시 보스 경직 처리 - SignatureFailureEffectsAction(신규): 차단 실패 시 범위 피해/넉백/다운 적용 - RebuildDrogBehaviorAuthoringGraph에 시그니처 Sequence + outcomeBranch 구조 추가 - 집행개시 에셋 스텝 구성을 ChargeWait(3초) → Skill으로 변경 - BossHealthBarUI 시그니처 UI 비활성화, PlayerSkillDebugMenu 디버그 메서드 제거
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using Colosseum.Abnormalities;
|
||||
using Colosseum.Skills;
|
||||
|
||||
namespace Colosseum.AI
|
||||
@@ -32,7 +34,33 @@ namespace Colosseum.AI
|
||||
Utility,
|
||||
}
|
||||
|
||||
public enum PatternStepType { Skill, Wait }
|
||||
public enum PatternStepType { Skill, Wait, ChargeWait }
|
||||
|
||||
/// <summary>
|
||||
/// ChargeWait 스텝의 차단 관련 설정 데이터입니다.
|
||||
/// 충전 대기 중 플레이어가 누적 피해를 충족하면 차단 성공으로 처리됩니다.
|
||||
/// </summary>
|
||||
[System.Serializable]
|
||||
public class ChargeStepData
|
||||
{
|
||||
[Header("차단 조건")]
|
||||
[Tooltip("차단에 필요한 누적 피해 비율 (보스 최대 체력 기준)")]
|
||||
[Range(0f, 1f)]
|
||||
[SerializeField] private float requiredDamageRatio = 0.1f;
|
||||
|
||||
[Header("전조 효과")]
|
||||
[Tooltip("충전 중 부여할 전조 이상상태 (루핑 VFX 등)")]
|
||||
[SerializeField] private AbnormalityData telegraphAbnormality;
|
||||
|
||||
[Header("차단 성공 효과")]
|
||||
[Tooltip("차단 성공 시 보스 경직 시간")]
|
||||
[Min(0f)]
|
||||
[SerializeField] private float staggerDuration = 2f;
|
||||
|
||||
public float RequiredDamageRatio => requiredDamageRatio;
|
||||
public AbnormalityData TelegraphAbnormality => telegraphAbnormality;
|
||||
public float StaggerDuration => staggerDuration;
|
||||
}
|
||||
|
||||
[System.Serializable]
|
||||
public class PatternStep
|
||||
@@ -40,6 +68,9 @@ namespace Colosseum.AI
|
||||
public PatternStepType Type = PatternStepType.Skill;
|
||||
public SkillData Skill;
|
||||
[Min(0f)] public float Duration = 0.5f;
|
||||
|
||||
[Tooltip("ChargeWait 타입 전용 차단 설정")]
|
||||
public ChargeStepData ChargeData;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -54,7 +85,7 @@ namespace Colosseum.AI
|
||||
[Header("패턴 특성")]
|
||||
[Tooltip("패턴 분류 — grace period 판단에 사용")]
|
||||
[SerializeField] private PatternCategory category = PatternCategory.Basic;
|
||||
[Tooltip("시그니처 패턴 여부 — 전용 실행 경로 사용")]
|
||||
[Tooltip("시그니처 패턴 여부 — 현재 사용되지 않음 (ChargeWait 스텝으로 대체)")]
|
||||
[SerializeField] private bool isSignature;
|
||||
[Tooltip("근접 패턴 여부 — meleePatternCounter 갱신")]
|
||||
[SerializeField] private bool isMelee;
|
||||
|
||||
Reference in New Issue
Block a user