public override void Act(StateController controller) { WorldObject controlledObject = controller.controlledObject; Vector3 currentPosition = controlledObject.transform.position; WorldObject chaseTarget = controller.chaseTarget; WorldObject mostVulnerableEnemy = WorkManager.FindMostVulnerableObjectInList(controller.nearbyEnemies); if (mostVulnerableEnemy) { controller.chaseTarget = mostVulnerableEnemy; if (!(controlledObject is Unit)) { return; } Unit unit = (Unit)controlledObject; if (!WorkManager.ObjectCanReachTarget(unit, mostVulnerableEnemy)) { unit.StartMove(WorkManager.GetTargetClosestPoint(unit, mostVulnerableEnemy)); } else { unit.StopMove(); } } }