- 드로그 시그니처 패턴 역할과 집행 개시 패턴 데이터를 추가하고 BT 브랜치에 연결 - 시그니처 차단 성공과 실패 흐름을 BossCombatBehaviorContext에 구현하고 authoring 그래프를 재구성 - 집행자의 낙인 이상상태를 추가하고 받는 피해 배율 증가가 플레이어 대미지 계산에 반영되도록 정리 - 집행 실패 시 광역 피해, 넉백, 다운, 낙인 부여 설정을 드로그 프리팹에 연결 - 성공 경로 검증 중 확인된 보스 Hit 트리거 오류를 방어 로직으로 수정 - Unity 플레이 검증으로 집행 개시 실패와 성공 분기를 모두 확인하고 설계값은 원복
55 lines
1.4 KiB
C#
55 lines
1.4 KiB
C#
using System;
|
|
|
|
using Colosseum.Enemy;
|
|
|
|
using Unity.Behavior;
|
|
using Unity.Properties;
|
|
using UnityEngine;
|
|
|
|
using Action = Unity.Behavior.Action;
|
|
|
|
/// <summary>
|
|
/// 보스 공통 시그니처 패턴을 실행하는 액션입니다.
|
|
/// </summary>
|
|
[Serializable, GeneratePropertyBag]
|
|
[NodeDescription(
|
|
name: "Use Signature Pattern",
|
|
story: "시그니처 패턴 실행",
|
|
category: "Action",
|
|
id: "178f8888d56042c6a75b4d6ee8a7a7d4")]
|
|
public partial class UseSignaturePatternAction : Action
|
|
{
|
|
[SerializeReference]
|
|
public BlackboardVariable<GameObject> Target;
|
|
|
|
private BossCombatBehaviorContext combatBehaviorContext;
|
|
private bool started;
|
|
|
|
protected override Status OnStart()
|
|
{
|
|
combatBehaviorContext = GameObject.GetComponent<BossCombatBehaviorContext>();
|
|
if (combatBehaviorContext == null)
|
|
return Status.Failure;
|
|
|
|
GameObject target = Target != null ? Target.Value : null;
|
|
started = combatBehaviorContext.TryStartSignaturePattern(target);
|
|
return started ? Status.Running : Status.Failure;
|
|
}
|
|
|
|
protected override Status OnUpdate()
|
|
{
|
|
if (!started || combatBehaviorContext == null)
|
|
return Status.Failure;
|
|
|
|
return combatBehaviorContext.IsSignaturePatternActive
|
|
? Status.Running
|
|
: Status.Success;
|
|
}
|
|
|
|
protected override void OnEnd()
|
|
{
|
|
started = false;
|
|
combatBehaviorContext = null;
|
|
}
|
|
}
|