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);
        }
Beispiel #5
0
        private void OnSceneGui(SceneView sv)
        {
            DrawControls();

            tileMap = FindObjectOfType <QuadTileMap>();

            _selectionTile.gameObject.SetActive(editMode != LevelEditMode.None);

            Event e = Event.current;
            // Convert mouse position to world position by finding point where y = 0.
            Ray     ray             = HandleUtility.GUIPointToWorldRay(e.mousePosition);
            Vector3 pos             = ray.origin - (ray.origin.y / ray.direction.y) * ray.direction;
            Vector3 snappedPosition = QuadTileMap.GetPositionClosestTo(pos);

            _selectionTile.transform.position = snappedPosition;

            _selectionTile.UpdateHeight(height);
            ModeChanged();

            int controlId = GUIUtility.GetControlID(FocusType.Passive);

            if (e.GetTypeForControl(controlId) == EventType.ScrollWheel && e.control)
            {
                if (e.delta.y > 0)
                {
                    DecreaseHeight();
                }
                else if (e.delta.y < 0)
                {
                    IncreaseHeight();
                }
                e.Use();
            }

            if (e.GetTypeForControl(controlId) == EventType.KeyDown && e.control)
            {
                switch (e.keyCode)
                {
                case NON_KEY:
                    editMode = LevelEditMode.None;
                    break;

                case ADD_KEY:
                    editMode = LevelEditMode.Add;
                    break;

                case REM_KEY:
                    editMode = LevelEditMode.Delete;
                    break;
                }

                e.Use();
                Repaint();
            }

            if (e.GetTypeForControl(controlId) == EventType.MouseDown)
            {
                if (e.button == 0)
                {
                    switch (editMode)
                    {
                    case LevelEditMode.Add:
                        tileMap.AddTile(snappedPosition, brush, height);
                        break;

                    case LevelEditMode.Delete:
                        tileMap.DeleteTile(snappedPosition);
                        break;

                    case LevelEditMode.None:
                        return;
                    }
                }
            }

            lastSnappedPosition = snappedPosition;
        }
Beispiel #6
0
 void Start()
 {
     Arrow = Instantiate(ArrowPrefab);
     Arrow.gameObject.SetActive(false);
     tileMap = FindObjectOfType <QuadTileMap>();
 }
Beispiel #7
0
 private void Start()
 {
     tileMap = FindObjectOfType <QuadTileMap>();
 }