Beispiel #1
0
    private void CalculatePositionToMoveTo()
    {
        moveChecker.ClearFree();
        moveChecker.CheckAvaliable(currentPlayerPosition, 1);

        if (moveChecker.IsOccupied(enemys[0].enemyObject.transform.position.x, enemys[0].enemyObject.transform.position.y))
        {
            proposedPos = new Vector2(currentPlayer.transform.position.x, currentPlayer.transform.position.y);
        }
        else if (((int)currentPlayerPosition.x + currentPlayer.moves) + currentPlayer.GetComponent <CharacterAtributes>().range >= enemys[0].enemyObject.transform.position.x)
        {
            moveChecker.ClearFree();
            moveChecker.CheckAvaliable(currentPlayerPosition, currentPlayer.moves);

            int b = ((int)enemys[0].enemyObject.transform.position.x - (int)currentPlayerPosition.x) - currentPlayer.GetComponent <CharacterAtributes>().range;
            proposedPos = new Vector2(currentPlayerPosition.x + b, enemys[0].enemyObject.transform.position.y);
            //if((proposedPos.x == currentPlayerPosition.x)&& enemys[0].enemyObject.transform.position.y == currentPlayerPosition.y)
            //{
            //   proposedPos = new Vector2(currentPlayerPosition.x, currentPlayerPosition.y);
            // }
        }
        else
        {
            moveChecker.ClearFree();
            moveChecker.CheckAvaliable(currentPlayerPosition, currentPlayer.moves);
            proposedPos = new Vector2(currentPlayerPosition.x + currentPlayer.moves, enemys[0].enemyObject.transform.position.y);
            // print(currentPlayer.name + " " + enemys[0].enemyName);
        }
        MoveToNewPosition();
    }
Beispiel #2
0
    public void Attack()
    {
        menu.value = -1;
        moveChecker.ClearFree();
        moveChecker.CheckAvaliable(this.transform.position, 1);

        int R = CheckRange();

        if (gather.selectedTargetPos.x < this.transform.position.x)
        {
            gameObject.transform.localScale = new Vector3(-1, transform.localScale.y);
        }
        if (gather.selectedTargetPos.x > this.transform.position.x)
        {
            gameObject.transform.localScale = new Vector3(1, transform.localScale.y);
        }

        if (moveChecker.IsOccupied(gather.selectedTargetPos.x, gather.selectedTargetPos.y))
        {
            anim.SetTrigger("attackTrigger");
        }
        else if (atri.shooting > 0 && atri.range >= R)
        {
            anim.SetTrigger("rangedAttackTrigger");
        }
        else
        {
            turnover.SetMessage(("Target out of range"), 0.75f);
            done = true;
        }
    }