예제 #1
0
    new public void Start()
    {
        if (started)
        {
            return;
        }
        started = true;

        GameObject hud = GameObject.FindGameObjectWithTag("HUD");

        if (hud != null)
        {
            dialogueController = hud.GetComponentInChildren <DialogueObject> ();
            alertController    = hud.GetComponentInChildren <alertImageController> ();
            fader = hud.GetComponentInChildren <UIFaderScript> ();
            SetFaderColor();
            vignette = hud.GetComponentInChildren <VignetteScript> ();
        }

        Application.targetFrameRate = 30;

        mcRef.changeLocation(locationName);

        if (locationName.StartsWith("Level"))
        {
            Debug.Log("<color=purple>Storing CurrentLevel : " + locationName.Substring(0, 6) + "</color>");
            ds.storeStringValue("CurrentLevel", locationName.Substring(0, 6));
        }

        if (locationName.StartsWith("Level"))
        {
            string lvl = locationName.Substring(5, 1);
            mcRef.getStorage().storeBoolValue("HasVisitedWorld" + lvl, true);
        }

        plyr = GameObject.Find("Player");
        //GameObject hud = null;
        if (plyr != null)
        {
            hud = plyr.GetComponent <PlayerScript>().currentHUD;           //GameObject.FindGameObjectWithTag ("HUD");
        }

        if (hud != null)
        {
            dialogueController = hud.GetComponentInChildren <DialogueObject> ();
            alertController    = hud.GetComponentInChildren <alertImageController> ();
            fader    = hud.GetComponentInChildren <UIFaderScript> ();
            vignette = hud.GetComponentInChildren <VignetteScript> ();
            SetFaderColor();
        }

        string objectToDestroy;


        // take care of flame re-spawning into the level
        int    flameCount;
        string lvlname = SceneManager.GetActiveScene().name;

        for (int k = 0; k < MaxFlames; ++k)
        {
            flameCount = mcRef.getStorage().retrieveIntValue("Flame" + k + "Resurrect" + lvlname);
            if (flameCount > 0)
            {
                --flameCount;
                if (flameCount == 0)
                {
                    string flamename = mcRef.getStorage().retrieveStringValue("Flame" + k + "Resurrect" + lvlname);
                    mcRef.unPickUpObject(flamename);
                }

                mcRef.getStorage().storeIntValue("Flame" + k + "Resurrect" + lvlname, flameCount);
            }
        }

        /* destroy all objects that have already been picked up
         * on this location
         */
        objectToDestroy = mcRef.nextPickedUpObject();
        while (!objectToDestroy.Equals(""))
        {
            Debug.Log("<color=red>  -> Pick up destroying " + objectToDestroy + "</color>");
            Destroy(GameObject.Find(objectToDestroy));
            objectToDestroy = mcRef.nextPickedUpObject();
        }

        if (mcRef.hasCurrentLocationBeenVisited())
        {
            //plyr.transform.position = mcRef.getPlayerSpawnLocation ();
        }

        if (openVignette)
        {
            //vignette.setVignetteScale (0.0f);
            if (vignette != null)
            {
                bool inhibit = retrieveBoolValue("InhibitVignette");
                if (!inhibit)
                {
                    vignette._wm_open();
                }
                else
                {
                    if (ds.retrieveBoolValue("FadeWhite"))
                    {
                        ds.storeBoolValue("FadeWhite", false);
                        foreach (UIFaderScript fullScreenFader in fullScreenFaders)
                        {
                            fullScreenFader.setFadeColor(1.0f, 1.0f, 1.0f);
                            fullScreenFader.autoFadeIn = true;
                            fullScreenFader.setFadeValue(0.0f);
                            fullScreenFader.fadeIn();
                        }
                    }
                    else
                    {
                        fader.autoFadeIn = false;
                        fader.preventAutoFader();
                        fader.setFadeValue(1.0f);
                        foreach (UIFaderScript fullScreenFader in fullScreenFaders)
                        {
                            fullScreenFader.setFadeValue(1.0f);
                            fullScreenFader.autoFadeIn = false;
                        }
                    }
                }
                storeBoolValue("InhibitVignette", false);
            }
        }

        if (alertController != null)
        {
            alertController._wm_reset();
        }

        if (!BGMusic.Equals(""))
        {
            mcRef.playMusic(BGMusic);
        }
    }