Exemple #1
0
        IEnumerator CheckLinksCor()
        {
            yield return(new WaitForSeconds(0.1f));

            if (!LastNodeController.CheckAllLinksStateUntouchedActive())
            {
                PuzzleManager.Instance.ScarabGameManager.DisableNodes();
                IsClickBlocked = true;
                ActivateFirstPersonController(false);
                PuzzleManager.Instance.ScarabGameManager.SetText(true);
                StartCoroutine(ResetPuzzleCor());
            }
            else
            {
                PuzzleManager.Instance.ScarabGameManager.GetNeighborsOnly(LastNodeController);
            }
        }
Exemple #2
0
        void Update()
        {
            if (!IsClickBlocked)
            {
                if (Input.GetMouseButtonDown(0))
                {
                    if (Physics.Raycast(this.transform.position, this.transform.forward, out _hit, distance))
                    {
                        if (_hit.collider.gameObject)
                        {
                            if ((_hit.collider.gameObject.CompareTag("Node") || _hit.collider.gameObject.CompareTag("Neighbor")))
                            {
                                if (resetNodes != null)
                                {
                                    resetNodes();
                                }
                                NodeController freshNodeController = _hit.collider.gameObject.GetComponent <NodeController>();
                                if (LastNodeController)
                                {
                                    if (!GameObject.ReferenceEquals(freshNodeController, LastNodeController))
                                    {
                                        foreach (LinkController link1 in freshNodeController.links)
                                        {
                                            foreach (LinkController link2 in LastNodeController.links)
                                            {
                                                if (link1 == link2)
                                                {
                                                    if (link1.LinkState == LinkState.Untouched)
                                                    {
                                                        LastNodeController = freshNodeController;
                                                        LastNodeController.SuccessNodeSound();
                                                        LastNodeController.PlayActiveNodeParticles();
                                                    }
                                                    else
                                                    {
                                                        LastNodeController.ForbiddenNodeSound();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    LastNodeController = freshNodeController;
                                    LastNodeController.SuccessNodeSound();
                                    LastNodeController.PlayActiveNodeParticles();
                                }
                                LastNodeController.NodeActive();

                                LastNodeController.IsNodeClicked = true;
                                PuzzleManager.Instance.ScarabGameManager.HighlightLink();
                                StartCoroutine(CheckLinksCor());
                            }
                            else if (_hit.collider.gameObject.CompareTag("Untagged"))
                            {
                                NodeController lastNodeControllerUntagged = _hit.collider.gameObject.GetComponent <NodeController>();
                                if (lastNodeControllerUntagged)
                                {
                                    lastNodeControllerUntagged.ForbiddenNodeSound();
                                }
                            }
                        }
                    }
                }
            }
        }