public GameSaveData(GameManager.GeneralGameData generalGameData, Building.BuildingData[] buildingsData, SpaceshipManager.SpaceshipData[] spaceshipsData, Level.LevelData reachedLevelData, ResourcesManager.ResourceData[] resourcesData, BuildingManager.UnlockedBuildingData[] unlockedBuildingsData, TechTreeManager.TechnologyData[] technologiesData, MegaStructureManager.MegaStructuresData megaStructuresData, PopulationManager.PopulationData populationData) { this.generalGameData = generalGameData; this.buildingsData = buildingsData; this.spaceshipsData = spaceshipsData; this.reachedLevelData = reachedLevelData; this.resourcesData = resourcesData; this.unlockedBuildingsData = unlockedBuildingsData; this.technologiesData = technologiesData; this.megaStructuresData = megaStructuresData; this.populationData = populationData; }
public void SetupSavedData() { Debug.Log("SetupSavedData"); Building.BuildingData[] buildingsData = gameSetupParameters.gameSaveData.buildingsData; GameManager.GeneralGameData generalGameData = gameSetupParameters.gameSaveData.generalGameData; SpaceshipManager.SpaceshipData[] spaceshipsData = gameSetupParameters.gameSaveData.spaceshipsData; Level.LevelData reachedLevelData = gameSetupParameters.gameSaveData.reachedLevelData; ResourcesManager.ResourceData[] resourcesData = gameSetupParameters.gameSaveData.resourcesData; BuildingManager.UnlockedBuildingData[] unlockedBuildingsData = gameSetupParameters.gameSaveData.unlockedBuildingsData; TechTreeManager.TechnologyData[] technologiesData = gameSetupParameters.gameSaveData.technologiesData; MegaStructureManager.MegaStructuresData megaStructuresData = gameSetupParameters.gameSaveData.megaStructuresData; PopulationManager.PopulationData populationData = gameSetupParameters.gameSaveData.populationData; if (buildingsData != null) { SetupSavedBuildings(buildingsData); } if (generalGameData != null) { SetupGeneralParameters(generalGameData); } if (reachedLevelData != null) { SetupReachedLevelParameters(reachedLevelData); } if (resourcesData != null) { SetupResourcesData(resourcesData); } if (technologiesData != null) { SetupTechnologies(technologiesData); } if (spaceshipsData != null) { SetupSpaceships(spaceshipsData); } if (megaStructuresData != null) { SetupMegaStructures(megaStructuresData); } if (populationData != null) { SetupPopulationData(populationData); } }
public GameManager.GeneralGameData GatherGeneralGameData() { int levelReached = LevelManager.instance.currentLevelNumber; int unlockedDisksNb = SurroundingAreasManager.instance.unlockedDisksNb; int score = ScoreManager.instance.score; int hits = InfoManager.instance.nbMeteorCollisions; int planetLife = (int)ScoreManager.instance.planetLife; int experiencePoints = ScoreManager.instance.experiencePoints; int artifactsNb = ScoreManager.instance.artifactsNb; bool timerOptionEnabled = TimeManager.instance.isTimerEnabled; bool hasGameOverOccured = ScoreManager.instance.gameOverHappened; bool infiniteModeEnabled = GameManager.instance.IsInfiniteModeEnabled(); //Debug.Log("Saving game variables | LevelReached [" + levelReached + "] | UnlockedDisksNb [" + unlockedDisksNb + "]"); GameManager.GeneralGameData gameSavedVariables = new GameManager.GeneralGameData(levelReached, unlockedDisksNb, score, hits, planetLife, experiencePoints, artifactsNb, timerOptionEnabled, hasGameOverOccured, infiniteModeEnabled); return(gameSavedVariables); }
public void SaveGameStateIntoSlot(int saveGameSlotIndex) { Debug.Log("Saving game state..."); string saveTime = DateTime.Now.ToString("yyyy-MM-dd h:mm:ss tt"); GameManager.GeneralGameData generalData = GatherGeneralGameData(); Building.BuildingData[] buildingDatas = GatherBuildingsData(); SpaceshipManager.SpaceshipData[] spaceshipsData = GatherSpaceshipsData(); Level.LevelData reachedLevelData = GatherReachedLevelData(); ResourcesManager.ResourceData[] resourcesData = GatherResourcesData(); BuildingManager.UnlockedBuildingData[] unlockedBuildingsData = GatherUnlockedBuildingsData(); TechTreeManager.TechnologyData[] technologiesData = GatherTechnologiesData(); MegaStructureManager.MegaStructuresData megaStructuresData = GatherMegaStructuresData(); PopulationManager.PopulationData populationData = GatherPopulationData(); // Build Game Save Data GameSaveData gameSaveData = new GameSaveData(generalData, buildingDatas, spaceshipsData, reachedLevelData, resourcesData, unlockedBuildingsData, technologiesData, megaStructuresData, populationData); int currentLevelReached = LevelManager.instance.currentLevelNumber; // Binary Formatter + Stream BinaryFormatter bf = new BinaryFormatter(); string fileName = (gameSaveFileName + saveGameSlotIndex + gameSaveFileExtension); Debug.Log("File Name: " + fileName); FileStream stream = new FileStream(Application.persistentDataPath + "/" + fileName, FileMode.Create); // Write chosen save file bf.Serialize(stream, gameSaveData); stream.Close(); // Update SaveFilesInfo general object SavedGameFilesInfoData.SaveFileInfo saveFileInfo = new SavedGameFilesInfoData.SaveFileInfo(saveGameSlotIndex, true, saveTime); Debug.Log("Created new SaveFileInfo | SlotIndex [" + saveGameSlotIndex + "] | IsUsed [" + true + "] | SaveTime [" + saveTime + "]"); globalSavedGameInfoData.UpdateSavedGameFilesInfoForIndex(saveFileInfo); // Update indicator in save panel SaveGamePanel.instance.UpdateSaveSlotInfo(saveFileInfo); // Write game saves info file WriteSaveFilesInfo(); }
public void SetupGeneralParameters(GameManager.GeneralGameData generalGameData) { int score = generalGameData.score; int hits = generalGameData.hits; int planetLife = generalGameData.planetLife; int unlockedDisksNb = generalGameData.unlockedDisks; int experiencePoints = generalGameData.experiencePoints; int artifactsNb = generalGameData.artifactsNb; bool timerEnabled = generalGameData.timerEnabled; bool gameOverOccured = generalGameData.hasGameOverOccured; bool infiniteModeEnabled = generalGameData.infiniteModeEnabled; //Debug.Log("SetupGeneralParameters | Score [" + score + "] | Hits [" + hits + "] | UnlockedDisks [" + unlockedDisksNb + "]"); ScoreManager.instance.SetScore(score); ScoreManager.instance.SetExperiencePointsAndArtifactsNb(experiencePoints, artifactsNb); ScoreManager.instance.SetPlanetLife(planetLife); InfoManager.instance.SetMeteorCollisionsValue(hits); SurroundingAreasManager.instance.SetUnlockedDisksNb(unlockedDisksNb); TimeManager.instance.SetTimerEnabled(timerEnabled); GameManager.instance.SetInfiniteMode(infiniteModeEnabled); ScoreManager.instance.SetGameOverHappened(gameOverOccured); }