public IEnumerator Move()
        {
            ShowMove();

            ToggleWindow(false, false);

            QuadTile target = null;

            // Wait for click
            while (!target)
            {
                if (Input.GetButtonDown("Fire1"))
                {
                    target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker"));
                }
                yield return(null);
            }

            mover.StopUpdatingPath = true;

            ConfirmationDialog dialog = Instantiate(dialogPrefab, transform.parent);

            // Wait for dialog input
            while (dialog.Result == DialogResult.None)
            {
                yield return(null);
            }

            if (dialog.Result == DialogResult.Yes)
            {
                Destroy(dialog.gameObject);
                CharacterData data       = turnManager.CurrentCharacter.Data;
                MoveParams    moveParams = moved ? data.rushParams : data.moveParams;
                yield return(StartCoroutine(mover.Move(turnManager.CurrentCharacter, target.Path(), moveParams,
                                                       data.jumpParams)));

                turnManager.CurrentCharacter.LoseActionPoints(moveCost);
                moveCost++;

                if (moved)
                {
                    MoveButton.interactable = false;
                }
                moved = true;
            }
            else
            {
                Destroy(dialog.gameObject);
            }

            mover.Clear(PathfindingClear.Both);
            ToggleWindow(true, false);
        }
Beispiel #2
0
        private IEnumerator PickTarget()
        {
            ToggleHideUI();
            while (!Input.GetButtonDown("Fire1"))
            {
                yield return(null);
            }
            QuadTile target = QuadTileMap.GetTarget(LayerMask.GetMask("Default"));

            UpdateTarget(target.PositionVector2Int);
            targetXInput.text = lastSelected.dialogEvent.target.x.ToString();
            targetYInput.text = lastSelected.dialogEvent.target.y.ToString();
            ToggleHideUI();
        }
Beispiel #3
0
    private void Update()
    {
        if (StopUpdatingPath)
        {
            return;
        }

        QuadTile target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker"));

        if (target)
        {
            DrawPath(target);
        }
    }
        public IEnumerator Attack()
        {
            attacker.ShowPossible(turnManager.CurrentCharacter);

            ToggleWindow(false, false);

            QuadTile target = null;

            while (!target)
            {
                if (Input.GetButtonDown("Fire1"))
                {
                    target = QuadTileMap.GetTarget(LayerMask.GetMask("Viable Marker"));
                }
                yield return(null);
            }

            ConfirmationDialog dialog = Instantiate(dialogPrefab, transform.parent);

            // Wait for dialog input
            while (dialog.Result == DialogResult.None)
            {
                yield return(null);
            }

            if (dialog.Result == DialogResult.Yes)
            {
                Destroy(dialog.gameObject);

                CharacterData data = turnManager.CurrentCharacter.Data;
                attacker.Attack(target);
                turnManager.CurrentCharacter.LoseActionPoints(attackCost);
                attackCost++;

                if (moved)
                {
                    MoveButton.interactable = false;
                }
                moved = true;
            }
            else
            {
                Destroy(dialog.gameObject);
            }

            attacker.Clear();
            ToggleWindow(true, false);
        }