using Invector.vCharacterController.AI; using Invector.vCharacterController.AI.FSMBehaviour; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Beyond { public class bSimpleCombatAction : vSimpleCombatAction { protected override void EngageTarget(vIControlAICombat controller) { if (controller.currentTarget.transform == null) return; var summoner = controller.gameObject.GetComponent(); if (summoner != null && !summoner.ShouldEngageMelee()) { controller.Stop(); return; } if (controller.targetDistance <= controller.attackDistance && !controller.isBlocking) { controller.Stop(); if (summoner != null) { summoner.NotifyMeleeAttack(); } controller.Attack(); } else if (!controller.animatorStateInfos.HasAnyTag("Attack", "LockMovement", "CustomAction")) { if (engageInStrafe) controller.StrafeMoveTo(controller.currentTarget.transform.position, (controller.currentTarget.transform.position - controller.transform.position).normalized, engageSpeed); else controller.MoveTo(controller.currentTarget.transform.position, engageSpeed); } else controller.Stop(); } } }