Beispiel #1
0
 // Start is called before the first frame update
 void Start()
 {
     _singleton = this;
     filesButton.onClick.AddListener(delegate { OpenFiles(); });
     fileInfo.onClick.AddListener(delegate { GetInfo(); });
     exitButton.onClick.AddListener(delegate { CloseMissionPanel(); });
 }
Beispiel #2
0
    public void RaycastInteractiveElement()
    {
        int layerMask = 1 << 8;


        layerMask = ~layerMask;

        if (!canClick)
        {
            return;
        }

        Ray ray;

#if UNITY_STANDALONE
        ray = cam.ScreenPointToRay(Input.mousePosition);
#else
        ray = cam.ScreenPointToRay(middleScreen);
#endif
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, 200f, layerMask))
        {
            switch (hit.transform.gameObject.tag)
            {
            case "ToKillAgent":
                if (hit.transform.gameObject.tag.Contains("ToKillAgent"))
                {
                    if (hit.distance < 2.0f)
                    {
                        if (IsSomeoneWatching())
                        {
                            if (gameManager.IsTutorial())
                            {
                                gameManager.ReplacePlayerOnStartPosition();
                            }
                            else
                            {
                                gameManager.CinematicPlayerDie();
                            }
                        }
                        else
                        {
                            if (ProgressionManager.GetWealthValue() > 0.99f)
                            {
                                gameManager.CinematicWinGame();
                            }
                            else
                            {
                                NavMeshAgentManager.Instance().CopsGoOnCrimeScene();
                                gameManager.KillTarget();
                                if (gameManager.IsTutorial())
                                {
                                    TutorialManager.Instance().NextStep();
                                }
                            }
                        }
                    }
                }
                break;

            case "Orb":
                if (hit.transform.parent.CompareTag("Orb"))
                {
                    Destroy(hit.transform.parent.gameObject);
                }
                else
                {
                    Destroy(hit.transform.gameObject);
                }

                OrbManager.IncrementOrb(UnityEngine.Random.Range(0f, 1f) < .5f);
                break;

            case "InteractiveElement":
                Vector3 origin = hit.transform.position;
                Destroy(hit.transform.gameObject);
                break;

            case "TargetRoomDoor":
                if (!gameManager.IsTargetAlive())
                {
                    CodeMission.Instance().OpenMissionPanel();
                }
                break;

            case "LaptopInfo":
                PCMission.Instance().OpenMissionPanel();

                break;

            case "ElevatorDoor":
                if (!gameManager.IsDataRetrieve())
                {
                    return;
                }
                if (gameManager.IsTutorial())
                {
                    if (TutorialManager.Instance().GetStep() == 6)
                    {
                        gameManager.EndTutorial();
                        return;
                    }
                }
                gameManager.GoToNextFloor(hit.transform.parent.gameObject);
                break;
            }
        }
    }