Exemplo n.º 1
0
    public void BackupSave(PlayerSave save)
    {
        string path = System.IO.Path.Combine(Application.persistentDataPath, "Saves", save.name + " - Backup ");
        int    i    = 1;

        while (File.Exists(path + i))
        {
            i++;
        }

        path = path + i;
        File.WriteAllText(path, JsonUtility.ToJson(save));

        saves.Add(save);
        paths.Add(path);

        SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>();

        icon.save    = save;
        icon.path    = path;
        icon.index   = icons.Count;
        icon.handler = this;
        icons.Add(icon);
        icon.transform.SetSiblingIndex(icon.transform.parent.childCount - 2);
    }
Exemplo n.º 2
0
    public void AddSave()
    {
        string name = inputField.text.Trim();
        string path = System.IO.Path.Combine(Application.persistentDataPath, "Saves", name);

        inputField.transform.parent.GetComponentInChildren <GUIWindowScripts>().ToggleActive();
        if (name == "" || name == "TestSave" ||
            paths.Contains(path) || name.IndexOfAny(System.IO.Path.GetInvalidFileNameChars()) > -1)
        {
            return;
        }

        var save = CreateSave(name, null, this.resourcePath);

        if (save.resourcePath == "")
        {
            save.resourcePath = "main";
        }

        saves.Add(save);
        paths.Add(path);

        SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>();

        icon.save    = save;
        icon.path    = path;
        icon.index   = icons.Count;
        icon.handler = this;
        icons.Add(icon);
        icon.transform.SetAsFirstSibling();
    }
Exemplo n.º 3
0
    public void Migrate()
    {
        var save = saves[indexToMigrate];

        switch (save.version)
        {
        case "Beta 0.0.0":
            var mission = save.missions.Find(m => m.name == "Truthful Revelation?");
            if (mission != null)
            {
                mission.name = "Truthful Revelation";
            }
            File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save));
            SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true);
            break;

        case "Alpha 4.0.0":
        case "Alpha 4.1.0":
        case "Alpha 4.1.1":
        case "Alpha 4.2.0":
        case "Alpha 4.3.0":
            // attempt to add Sukrat to the party list
            if (!save.unlockedPartyIDs.Contains("sukrat"))
            {
                save.unlockedPartyIDs.Add("sukrat");
            }

            save.version = VersionNumberScript.version;
            for (int i = 0; i < save.characters.Length; i++)
            {
                if (save.characters[i].ID == "sukrat")
                {
                    var party = save.characters[i].partyData = new WorldData.PartyData();
                    party.attackDialogue  = "DESTRUCTION!";
                    party.defendDialogue  = "Falling back!";
                    party.collectDialogue = "I'm on it.";
                    party.buildDialogue   = "Building!";
                    party.followDialogue  = "Following!";
                }
            }

            File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save));
            SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true);
            break;

        case "Alpha 1.0.0":
        case "Alpha 2.0.0":
        case "Alpha 2.1.0":
            save.version       = VersionNumberScript.version;
            save.reputation    = 0;
            migratedTimePlayed = save.timePlayed;
            save.timePlayed    = 0;
            File.WriteAllText(paths[indexToMigrate], JsonUtility.ToJson(save));
            SaveMenuIcon.LoadSaveByPath(paths[indexToMigrate], true);
            break;
        }
    }
Exemplo n.º 4
0
    void LoadTestSave()
    {
        var path     = Application.streamingAssetsPath + "\\Sectors\\TestWorld";
        var savePath = Application.persistentDataPath + "\\Saves\\TestSave";

        if (File.Exists(savePath))
        {
            File.Delete(savePath);
        }
        SaveMenuHandler.CreateSave("TestSave");
        SectorManager.testJsonPath     = path;
        SectorManager.testResourcePath = originalReadPath;
        SaveMenuIcon.LoadSaveByPath(savePath, false);
    }
Exemplo n.º 5
0
    void InitializeSaves()
    {
        saveView.SetActive(true);
        selectIndicatorText.text = "SELECT SAVE";
        string curpath = null;

        var CurrentSavePath = System.IO.Path.Combine(Application.persistentDataPath, "CurrentSavePath");

        if (File.Exists(CurrentSavePath))
        {
            curpath = File.ReadAllText(CurrentSavePath);
        }

        for (int i = 0; i < saves.Count; i++)
        {
            if (saves[i] == null)
            {
                continue;
            }

            SaveMenuIcon icon = Instantiate(saveIconPrefab, contents).GetComponent <SaveMenuIcon>();
            icon.GetComponent <Image>().sprite = episodeSprites[Mathf.Min(Mathf.Max(1, saves[i].episode), episodeSprites.Length) - 1];
            icon.save    = saves[i];
            icon.index   = i;
            icon.handler = this;
            icon.path    = paths[i];
            icons.Add(icon);
            if (resourcePath == "")
            {
                if (icon.path == curpath || i == 0)
                {
                    icon.transform.SetAsFirstSibling();
                }
                else
                {
                    icon.transform.SetSiblingIndex(1);
                }
            }
            else
            {
                icon.transform.SetSiblingIndex(0);
            }

            if ((resourcePath == "" && saves[i].resourcePath != null && !saves[i].resourcePath.Contains("main") && saves[i].resourcePath != "") ||
                (resourcePath != "" && saves[i].resourcePath != resourcePath))
            {
                icon.gameObject.SetActive(false);
            }
        }
    }