예제 #1
0
    void Start()
    {
        scrollingCamera = GameObject.FindObjectOfType <ScrollingCamera>();

        instance = this;

        canSpin = true;

        LevelSelectGUI.menuState = MenuState.TITLE;

        AmbientNoise.Play();
        ScreenFade.FadeFrom(new Color(0, 0, 0, 0));
        GUIController.DisableTexts();
        RecordingManager.enableGUI = false;

        // Change skybox based on which world is unlocked
        GetComponent <Skybox>().material = skyboxes[SaveManager.save.worldUnlocked - 1];

        if (worldToShow != "")
        {
            GameObject.Find(worldToShow).SendMessage("OnMouseDown", SendMessageOptions.DontRequireReceiver);
            GameObject.Find(worldToShow).SendMessage("OnMouseUp", SendMessageOptions.DontRequireReceiver);
            Camera.main.GetComponent <ScrollingCamera>().FinishImmediate();
            RotateToLevel(levelToShow);

            if (worldTransition)
            {
                worldTransition = false;
                StartCoroutine("WorldTransition");
            }
        }
    }
예제 #2
0
    void KillPlayer(GameObject player)
    {
        if (TutorialCamera.Enabled())
        {
            GameRecorder.StopPlayback();
            if (explode)
            {
                player.SendMessage("Explode");
                SoundManager.Play("crash");

                player.SendMessage("Reload");
                IncrementCrashCount(true);
            }

            return;
        }

        if (!LevelState.Dead)
        {
            MainGUI.Play("RestartLevel");

            // Disable text
            GUIController.DisableTexts();

            // Update drone count
            if (SaveManager.save != null)
            {
                if (explode)
                {
                    IncrementCrashCount(false);
                }
                SaveManager.save.droneCount++;
                SaveManager.Write();

                // Display drone coun
                if (false)
                {
                    GameObject thingy = Tutorial.ShowText("DroneText", "Drones lost: " + SaveManager.save.droneCount, 0, TextAlignment.Center, TextAnchor.MiddleCenter, 0.5f, 0.5f);
                    Mover      mover  = thingy.AddComponent <Mover>();
                    mover.direction = Vector3.up;
                    mover.speed     = 0.2f;
                    TextFader fader = thingy.AddComponent <TextFader>();
                    fader.fadeRate = 1.0f;
                    fader.FadeOut();
                }
            }

            // Update level state
            GUIController.LevelStarted = false;
            LevelStart.started         = false;
            LevelState.Dead            = true;

            if (explode)
            {
                // Create explosion effect
                player.SendMessage("Explode");

                // Crash sound
                SoundManager.Play("crash");

                // Disable renderers if exploding
                player.GetComponent <Renderer>().enabled = false;
                player.transform.Find("Shield").GetComponent <Renderer>().enabled = false;
            }

            // Disable default camera controller until level restarts
            ThirdPersonCamera cameraController = Camera.main.GetComponent <ThirdPersonCamera>();
            if (cameraController != null)
            {
                cameraController.enabled = false;
            }

            // Detach grappling hook so we don't keep swinging
            grapplingHook.Detach();

            // I don't really remember why
            ControlManager.DisabledFrame = true;

            // Pause and then restart the level
            StartCoroutine(PauseBeforeReset());
        }
    }