Esempio n. 1
0
    public void save()
    {
        //定义存档路径
        string dirpath = Application.persistentDataPath + "/Save";

        //创建存档文件夹
        IOHelper.CreateDirectory(dirpath);
        //定义存档文件路径
        filename  = dirpath + "/SaveData0.sav";
        filename1 = dirpath + "/SaveData1.sav";
        filename2 = dirpath + "/SaveData2.sav";
        filename3 = dirpath + "/SaveData3.sav";
        filename4 = dirpath + "/SaveData4.sav";
        filename5 = dirpath + "/SaveData5.sav";

        List <Character> charas = roundController.getAllCharaFromMap();
        SaveData         data   = new SaveData();

        foreach (Character chara in charas)
        {
            saveCharInfo(data, chara);
        }
        foreach (Character chara in roundController.getAllChara())
        {
            data.CharaNames.Add(chara.getName());
        }

        data.StoryInfo.IsStoryStart = storyController.getIsStartStory();
        if (storyController.getIsStartStory())
        {
            data.StoryInfo.StoryCode = storyController.getStory().getStoryCode();
        }
        data.RoundCount = roundController.getRoundCount();
        // Debug.Log("save filename" + filename);

        foreach (ThingInfo ti in thingController.getEmptyThings())
        {
            data.Things.Add(ti);
        }
        foreach (EventInfo ei in eventController.getStayEventList())
        {
            data.EffectedList.Add(ei);
        }
        foreach (TaskInterface ti in this.taskMananger.getRegisitedTasks())
        {
            saveRegisitedTask(data, ti);
        }
        if (taskMananger.getStoryTask() != null)
        {
            saveRegisitedTask(data, taskMananger.getStoryTask());
        }
        data.HistoryTasks = taskMananger.getHistoryTask();
        IOHelper.SetData(filename, data);
        data.CharaNames.Clear();
        //保存地图数据
        Dictionary <int[], RoomInterface> roomsInfo = roomContraller.getAllRoom();

        IOHelper.SetData(filename1, getStringMap(initMapObject.getMapUpInfo()));

        stringMap.Clear();
        IOHelper.SetData(filename2, getStringMap(initMapObject.getMapGroundInfo()));
        stringMap.Clear();
        IOHelper.SetData(filename3, getStringMap(initMapObject.getMapDownInfo()));
        stringMap.Clear();
        IOHelper.SetData(filename4, getStringMap(initMapObject.getMapHiddenInfo()));
        stringMap.Clear();
    }