예제 #1
0
        public void GoToLevelSelectionScreen()
        {
            var node = MapNodesManager.GetMapNode(PlayerManager.NodeIndexInMap);

            node.MarkAsSolved();

            MapNodesManager.Instance.gameObject.SetActive(true);

            SceneManager.LoadScene("LevelSelection");
        }
예제 #2
0
        private void SetPositionInMap(int nodeIndex)
        {
            var currentNode = MapNodesManager.GetMapNode(nodeIndex);

            currentNode.DisableRenderer();
            var currentNodePosition = currentNode.transform.position;

            _playerTransform.position     = currentNodePosition;
            _mainCameraTransform.position = new Vector3(currentNodePosition.x, currentNodePosition.y, _mainCameraTransform.position.z);
            _targetPosition = currentNodePosition;
        }
예제 #3
0
        private void Update()
        {
            if (!_arrivedToTarget)
            {
                var position  = _playerTransform.position;
                var direction = (_targetPosition - position);

                if (direction.magnitude >= 0.1f)
                {
                    direction = direction.normalized;

                    var velocity = position + (direction * (Time.deltaTime * Speed));

                    _playerTransform.position     = velocity;
                    _mainCameraTransform.position = new Vector3(velocity.x, velocity.y, _mainCameraTransform.position.z);
                }
                else
                {
                    _playerTransform.position     = _targetPosition;
                    _mainCameraTransform.position = new Vector3(_targetPosition.x, _targetPosition.y, _mainCameraTransform.position.z);
                    _arrivedToTarget = true;

                    var currentNode = MapNodesManager.GetMapNode(PlayerManager.NodeIndexInMap);
                    currentNode.DisableRenderer();

                    if (currentNode.Status != MapNodeStatus.Solved)
                    {
                        currentNode.Activate();
                    }
                }
            }
            else
            {
                if (Input.GetKeyUp(KeyCode.Space))
                {
                    GoToNextPositionInMap();

                    if (_pressedSpaceCounter < 2)
                    {
                        _pressedSpaceCounter++;

                        if (_pressedSpaceCounter >= 2)
                        {
                            PressSpaceText.SetActive(false);
                        }
                    }
                }
            }
        }
예제 #4
0
        private void GoToNextPositionInMap()
        {
            var previousNode = MapNodesManager.GetMapNode(PlayerManager.NodeIndexInMap);

            previousNode.MarkAsSolved();
            previousNode.EnableRenderer();

            PlayerManager.NodeIndexInMap++;
            var currentNode         = MapNodesManager.GetMapNode(PlayerManager.NodeIndexInMap);
            var currentNodePosition = currentNode.transform.position;

            _targetPosition = currentNodePosition;

            _arrivedToTarget = false;
        }
예제 #5
0
        private void Update()
        {
            if (Input.GetKeyUp(KeyCode.D) || Input.GetKeyUp(KeyCode.RightArrow) ||
                Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.LeftArrow))
            {
                MoveSelection();
            }

            if (Input.GetKeyUp(KeyCode.Space) || Input.GetKeyUp(KeyCode.Return))
            {
                Buy();
            }

            if (Input.GetKeyDown(KeyCode.Escape))
            {
                var node = MapNodesManager.GetMapNode(PlayerManager.NodeIndexInMap);
                node.MarkAsSolved();

                MapNodesManager.Instance.gameObject.SetActive(true);

                SceneManager.LoadScene("LevelSelection");
            }
        }