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;
                        }
                    }
                }
            }
        }
    }
Beispiel #2
0
    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);
    }