- 드로그 BT를 페이즈 전환, 부활 트리거, 가중치 근접 패턴 중심으로 재구성 - 땅 울리기 및 콤보-기본기1_3 패턴/스킬/이펙트를 추가하고 기존 평타 파생 자산을 정리 - 드로그 행동 검증용 PlayMode/Editor 테스트와 관련 런타임 상태 추적을 추가
52 lines
1.6 KiB
C#
52 lines
1.6 KiB
C#
using UnityEngine;
|
|
|
|
using Colosseum.Enemy;
|
|
using Colosseum.Player;
|
|
|
|
namespace Colosseum.Skills.Effects
|
|
{
|
|
/// <summary>
|
|
/// 빈사 상태인 아군을 부활시키는 스킬 효과입니다.
|
|
/// </summary>
|
|
[CreateAssetMenu(fileName = "ReviveEffect", menuName = "Colosseum/Skills/Effects/Revive")]
|
|
public class ReviveEffect : SkillEffect
|
|
{
|
|
[Header("Revive Settings")]
|
|
[Tooltip("부활 시 복구할 체력 비율 (0~1)")]
|
|
[Range(0f, 1f)] [SerializeField] private float healthPercent = 0.3f;
|
|
|
|
/// <summary>
|
|
/// 부활 체력 비율
|
|
/// </summary>
|
|
public float HealthPercent => healthPercent;
|
|
|
|
/// <summary>
|
|
/// 부활 효과를 적용합니다.
|
|
/// </summary>
|
|
protected override void ApplyEffect(GameObject caster, GameObject target)
|
|
{
|
|
if (target == null)
|
|
{
|
|
Debug.LogWarning("[ReviveEffect] Target is null.");
|
|
return;
|
|
}
|
|
|
|
PlayerNetworkController networkController = target.GetComponent<PlayerNetworkController>();
|
|
if (networkController == null)
|
|
{
|
|
Debug.LogWarning($"[ReviveEffect] PlayerNetworkController not found on target: {target.name}");
|
|
return;
|
|
}
|
|
|
|
if (!networkController.IsDead)
|
|
{
|
|
Debug.LogWarning($"[ReviveEffect] Target is not dead: {target.name}");
|
|
return;
|
|
}
|
|
|
|
networkController.Revive(healthPercent);
|
|
BossBehaviorRuntimeState.ReportPlayerRevivedBySkill(caster, target);
|
|
}
|
|
}
|
|
}
|