Files
beyond/Assets/ThirdParty/Invector-AIController/FSM/Scripts/Decisions/AICheckTargetIsInCombatRange.cs
2024-11-20 15:21:28 +01:00

32 lines
1.0 KiB
C#

namespace Invector.vCharacterController.AI.FSMBehaviour
{
#if UNITY_EDITOR
[vFSMHelpbox("Check if the target is within the CombatRange of the AI Controller", UnityEditor.MessageType.Info)]
#endif
public class AICheckTargetIsInCombatRange : vStateDecision
{
public override string categoryName
{
get { return ""; }
}
public override string defaultName
{
get { return "Check Target Combat Range"; }
}
public override bool Decide(vIFSMBehaviourController fsmBehaviour)
{
return TargetIsInCombatRange(fsmBehaviour.aiController as vIControlAICombat);
}
protected virtual bool TargetIsInCombatRange(vIControlAICombat ctrlCombat)
{
if (ctrlCombat == null) return false;
if (ctrlCombat.currentTarget.transform == null) return false;
if (!ctrlCombat.currentTarget.transform.gameObject.activeSelf) return false;
return ctrlCombat.targetDistance <= ctrlCombat.combatRange;
}
}
}