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

30 lines
1.3 KiB
C#

namespace Invector.vCharacterController.AI.FSMBehaviour
{
#if UNITY_EDITOR
[vFSMHelpbox("Go to the last damage sender position", UnityEditor.MessageType.Info)]
#endif
public class vGoToDamageSender : vStateAction
{
public override string categoryName
{
get { return "Movement/"; }
}
public override string defaultName
{
get { return "Go To Damage Sender"; }
}
public bool goInStrafe = false;
public vAIMovementSpeed speed = vAIMovementSpeed.Walking;
public override void DoAction(vIFSMBehaviourController fsmBehaviour, vFSMComponentExecutionType executionType = vFSMComponentExecutionType.OnStateUpdate)
{
if (fsmBehaviour.aiController == null || fsmBehaviour.aiController.receivedDamage.lastSender==null) return;
if (executionType == vFSMComponentExecutionType.OnStateEnter) fsmBehaviour.aiController.ForceUpdatePath(2f);
if (goInStrafe)
fsmBehaviour.aiController.StrafeMoveTo(fsmBehaviour.aiController.receivedDamage.lastSender.position, fsmBehaviour.aiController.receivedDamage.lastSender.position - fsmBehaviour.transform.position,speed);
else fsmBehaviour.aiController.MoveTo(fsmBehaviour.aiController.receivedDamage.lastSender.position,speed);
}
}
}