Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/IsTargetAttacking.cs
2025-08-13 09:26:42 +08:00

39 lines
1.0 KiB
C#

using BehaviorDesigner.Runtime.Tasks;
namespace MoleMole
{
public class IsTargetAttacking : Conditional
{
private BaseMonoAbilityEntity _entity;
public override void OnAwake()
{
_entity = GetComponent<BaseMonoAbilityEntity>();
}
public override TaskStatus OnUpdate()
{
BaseMonoEntity attackTarget = _entity.GetAttackTarget();
if (attackTarget == null || !attackTarget.IsActive())
{
return TaskStatus.Failure;
}
if (attackTarget is BaseMonoAvatar)
{
BaseMonoAvatar baseMonoAvatar = (BaseMonoAvatar)attackTarget;
if (baseMonoAvatar.IsAnimatorInTag(AvatarData.AvatarTagGroup.AttackOrSkill) && !baseMonoAvatar.IsAnimatorInTag(AvatarData.AvatarTagGroup.AttackWithNoTarget))
{
return TaskStatus.Success;
}
return TaskStatus.Failure;
}
if (attackTarget is BaseMonoMonster)
{
BaseMonoMonster baseMonoMonster = (BaseMonoMonster)attackTarget;
return (!baseMonoMonster.isGoingToAttack(0.5f)) ? TaskStatus.Failure : TaskStatus.Success;
}
return TaskStatus.Failure;
}
}
}