public void OnAction(InputAction.CallbackContext context) { if (!EventSystem.current.IsPointerOverGameObject(0) && isClickable) { CurrentLocation = transform.position; //Debug.Log(remainingDistance()); //CalculateDistance(); if (context.performed) { if (!characterMotor.isMoving) { if (actionPointSystem.ExecuteAction(tileToMove) || tileToMove.Equals(0)) { switch (currentAction) { case Action.Move: //Debug.Log(remainingDistance(updatedPos)); characterMotor.SetPath(path); break; case Action.Interact: playerController.SetInteraction(currentTarget); //characterMotor.setDestination(currentTarget.InteractionPoint); break; } } } } } }
private bool AttackPlayer() { if (vision.Player != null) { var apRequired = motor.ValidPath(vision.Player.transform.position); if (apRequired >= 0 && actionPoints.CheckValidAction(apRequired)) { // Debug.Log("Attacking player"); actionPoints.ExecuteAction(apRequired); SetInteraction(vision.Player.GetComponent <Interactable>()); isAttacking = true; StartCoroutine(EndAttack()); return(true); // TODO: Set interaction point, (SetInteraction code from player controller). } } return(false); }