Esempio n. 1
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "Player" && active)
        {
            levelCompletePS.Fire(transform.position);

            active = false;
            gameObject.SetActive(false);
        }
    }
Esempio n. 2
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (Application.loadedLevelName == "LevelTesting" || Application.loadedLevelName == "GraphicsTesting" || Application.loadedLevelName == "Aesthetics")
        {
            if (other.gameObject.tag == "Wall" || other.gameObject.tag == "Frame")
            {
                Application.LoadLevel(Application.loadedLevel);
            }

            if (other.gameObject.tag == "End")
            {
                Application.LoadLevel(Application.loadedLevel);
                Debug.Log("Did It!");
            }
        }
        else
        {
            if (other.gameObject.tag == "Wall" || other.gameObject.tag == "Frame")
            {
                // LoadLevel.StopTimer();

                Messenger.Broadcast("LevelOver");
                Messenger.Broadcast("Failure");
                GameStates.ChangeState("Transition", "Bad");

                // modify intensity and shake duration based on playerSpeed

                MinMax playerSpeedValues = new MinMax(1, 16);
                MinMax intensityValues   = new MinMax(0.05f, 0.16f);
                MinMax durationValues    = new MinMax(0.05f, 0.12f);

                float l = Mathf.InverseLerp(playerSpeedValues.min, playerSpeedValues.max, speedL);
                float shakeIntensity = Mathf.Lerp(intensityValues.min, intensityValues.max, l);
                float shakeDuration  = Mathf.Lerp(durationValues.min, durationValues.max, l);

                Messenger <float, float> .Broadcast("screenshake", shakeIntensity, shakeDuration);

                // Messenger<float, float>.Broadcast("screenshake", 0.08f, 0.03f);


                Messenger <PlayerControl> .Broadcast("SetPlayer", this);               // Testing new thing - trying to make it recognise which player hit a wall

                Messenger <TransitionReason> .Broadcast("Transition", TransitionReason.levelFailure);


                Transform endPoint          = GameObject.Find("EndPoint").transform;
                float     distance          = Vector2.Distance(transform.position, endPoint.position);
                float     convertedDistance = distance - (transform.localScale.x / 2) - (endPoint.localScale.x / 2);

                // Debug.Log("Distance " + distance + " Converted Distance " + convertedDistance);
                Messenger <bool> .Broadcast("CloseCall", convertedDistance < 0.4f);

                // TRYING NEW THINGS
                // gameObject.SetActive(false);

                // graphicsGO.SetActive(false);
                // gameObject.GetComponent<Collider2D>().enabled = false;
            }

            if (other.gameObject.tag == "End")
            {
                // LoadLevel.StopTimer();

                Messenger.Broadcast("LevelOver");
                Messenger.Broadcast("Success");
                GameStates.ChangeState("Transition", "Good");

                // Messenger<float, float>.Broadcast("screenshake", 0.04f, 0.75f);
                Messenger <float> .Broadcast("StartConstantShake", 0.04f);

                Messenger <TransitionReason> .Broadcast("Transition", TransitionReason.levelSuccess);

                Vector2 collisionPoint = other.gameObject.GetComponent <Collider2D>().bounds.ClosestPoint(transform.position);

                if (GameObject.Find("LevelCamera") != null)
                {
                    Camera cam = GameObject.Find("LevelCamera").GetComponent <Camera>();

                    collisionPoint = cam.WorldToViewportPoint(collisionPoint);

                    collisionPoint = Camera.main.ViewportToWorldPoint(collisionPoint);
                }

                levelCompletePS.Fire(collisionPoint);

                // TRYING NEW THINGS
                // gameObject.SetActive(false);

                // graphicsGO.SetActive(false);
                // gameObject.GetComponent<Collider2D>().enabled = false;
            }
        }
    }