Example #1
0
    public static void Save()
    {
        if (TimeManager.instance.CurrentDay > 5)
        {
            return;
        }

        //Populate DayData
        SaveData.DayData day = new SaveData.DayData();
        day.CurrentDay          = TimeManager.instance.CurrentDay;
        day.Detergent           = DetergentManager.instance.CurrentAmount;
        day.Money               = MoneyManager.instance.CurrentAmount;
        day.ReputationHighScore = ReputationManager.instance.HighScore;
        day.narrativeData       = new List <SaveData.EventData>();
        day.OllieSafetyPoints   = EventManager.instance.ollieEventManager.SafetyPoints;
        for (int i = 0; i < EventManager.instance.EventTrees.Length; i++)
        {
            for (int j = 0; j < EventManager.instance.EventTrees[i].tree.Length; j++)
            {
                SaveData.EventData eventData = new SaveData.EventData();
                eventData.Completed = EventManager.instance.EventTrees[i].tree[j].Completed;
                eventData.TreeIndex = i;
                eventData.Index     = j;
                eventData.NextIndex = EventManager.instance.EventTrees[i].tree[j].NextEventIndex;
                day.narrativeData.Add(eventData);
            }
        }

        //Add new DayData to existing SaveData
        //Erase pre-existing DayData corresponding to current or future days, if applicable
        for (int i = 0; i < Data.Days.Count; i++)
        {
            if (Data.Days[i].CurrentDay >= day.CurrentDay)
            {
                Data.Days.RemoveAt(i--);
            }
        }

        //If past days are missing, create saves for them using current data
        for (int i = 0; i < day.CurrentDay; i++)
        {
            if (i >= Data.Days.Count)
            {
                SaveData.DayData pastDay = SaveData.CloneDayData(day);
                pastDay.CurrentDay = i;
                Data.Days.Insert(i, pastDay);
            }
        }

        Data.Days.Add(day);

        if (FileManager.WriteToFile("SaveData.dat", Data.ToJson()))
        {
            //Debug.Log("Save successful");
        }
        else
        {
            Debug.LogError("Failed to save!");
        }
    }
Example #2
0
 public static void LoadDay(int dayToLoad)
 {
     PrepareSaveFileForLoad(dayToLoad - 1);
     SaveData.DayData dayData = Data.Days[0];
     //Find the latest DayData preceding the day to load
     for (int i = 1; i < Data.Days.Count; i++)
     {
         if (Data.Days[i].CurrentDay < dayToLoad && Data.Days[i].CurrentDay >= dayData.CurrentDay)
         {
             dayData = Data.Days[i];
         }
     }
     TimeManager.instance.CurrentDay         = dayToLoad;
     DetergentManager.instance.CurrentAmount = dayData.Detergent;
     MoneyManager.instance.SetCurrentAmount(dayData.Money);
     ReputationManager.instance.HighScore = dayData.ReputationHighScore;
     EventManager.instance.ollieEventManager.SafetyPoints = dayData.OllieSafetyPoints;
     for (int j = 0; j < dayData.narrativeData.Count; j++)
     {
         SaveData.EventData eventData = dayData.narrativeData[j];
         EventManager.instance.EventTrees[eventData.TreeIndex].tree[eventData.Index].Completed      = eventData.Completed;
         EventManager.instance.EventTrees[eventData.TreeIndex].tree[eventData.Index].NextEventIndex = eventData.NextIndex;
     }
     if (LoadingComplete != null)
     {
         LoadingComplete();
     }
 }
Example #3
0
    private void OnEventsReset()
    {
        Data = new SaveData();
        SaveData.DayData day = new SaveData.DayData();
        day.CurrentDay          = -1;
        day.Money               = 0;
        day.ReputationHighScore = 0;
        day.Detergent           = DetergentManager.instance.MaxAmount;
        day.narrativeData       = new List <SaveData.EventData>();
        day.OllieSafetyPoints   = 0;

        Data.Days = new List <SaveData.DayData>();
        Data.Days.Add(day);

        for (int i = 0; i < EventManager.instance.EventTrees.Length; i++)
        {
            for (int j = 0; j < EventManager.instance.EventTrees[i].tree.Length; j++)
            {
                SaveData.EventData eventData = new SaveData.EventData();
                eventData.Completed = false;
                eventData.TreeIndex = i;
                eventData.Index     = j;
                eventData.NextIndex = EventManager.instance.EventTrees[i].tree[j].NextEventIndex;
                day.narrativeData.Add(eventData);
            }
        }

        if (FileManager.WriteToFile("SaveData.dat", Data.ToJson()))
        {
            //Debug.Log("New save file created successfully");
        }
        else
        {
            Debug.LogError("Failed to save!");
        }
    }