예제 #1
0
//	public DialogueMap dialogueMap {
//		get; private set;
//	}

    public void Load(int level)
    {
        if (level >= levels.Count)
        {
            /*GameWorld.success = false;
             * ScreenFader.QueueEvent(BackgroundRenderer.instance.SetSunBackground);
             * ScreenFader.StartFade(Color.clear, Color.black, 1.0f, delegate()
             *                    {
             *      LevelManager.instance.Level--;
             *
             *      //TODO: If something weird happens, this is why
             *      GameWorld.success = false;
             *      GroupManager.main.activeGroup = GroupManager.main.group["Epilogue"];
             *
             *      // Clear resources
             *      LevelManager.instance.Clear();
             *
             *      ScreenFader.StartFade(Color.black, Color.clear, 0.5f, delegate()
             *                            {
             *              GroupManager.main.activeGroup = GroupManager.main.group["Epilogue"];
             *
             *              AudioManager.PlaySFX("Menu Next");
             *      });
             * });*/
            //return;
        }
        level %= levels.Count;
        if (level < 0)
        {
            level += levels.Count;
        }

        Level = level;

        TmxMap      map;
        DialogueMap dialogue;

        if (tileMaps.ContainsKey(level))
        {
            map = tileMaps[level];
        }
        else
        {
            var name  = levels[level];
            var asset = Resources.Load <TextAsset>(name);
            using (var reader = new StringReader(asset.text)) {
                map = TmxMap.Open(reader);
            }
            tileMaps[level] = map;
        }
        if (dialogues.ContainsKey(level))
        {
            dialogue = dialogues[level];
        }
        else
        {
            var name = levels[level];
            var dia  = Resources.Load <TextAsset>("Dialogues/" + name);
            if (dia != null)
            {
                using (var reader = new StringReader(dia.text)) {
                    dialogue = DialogueMap.Open(Object.FindObjectOfType <DialogueManager>(), reader);
                }
            }
            else
            {
                dialogue = new DialogueMap(DialogueManager.instance);
            }
            dialogues[level] = dialogue;
        }

        Width  = map.Width;
        Height = map.Height;
        Camera.main.transform.position = CameraPosition;
        Camera.main.orthographicSize   = OrthographicSize;

        //	dialogueMap = dialogue;
        settings.dialogueMap = dialogue;
        loader.Load(map, settings);

        //Load map settings
        settings.minScore = map.Properties.GetInt("MinScore", 0);
        settings.maxScore = map.Properties.GetInt("MaxScore", 0);
        string nameIntro = map.Properties.GetTag("Intro", null);
        string nameOutro = map.Properties.GetTag("Outro", null);

        if (nameIntro != null)
        {
            settings.intro = settings.dialogueMap[nameIntro];
        }
        else
        {
            settings.intro = null;
        }
        if (nameOutro != null)
        {
            settings.outro = settings.dialogueMap[nameOutro];
        }
        else
        {
            settings.outro = null;
        }

        var hand = Object.FindObjectOfType <HandController>();

        if (hand != null)
        {
            hand.value = map.Properties.GetInt("Health", HandController.DefValue);
        }

        //string dialogueName;
        //if (!map.
    }