public static void LoadData() { PlayerSerializableData data = PlayerStaticDataHandler.LoadData(); if (data != null) { playerTruckData.truckType = (GameEnums.Truck)data.truckType; playerTruckData.firePointType = (GameEnums.FirePointType)data.firePointType; for (int i = 0; i < playerTruckData.firePointData.gunsConfigurations.Length; i++) { var config = playerTruckData.firePointData.gunsConfigurations[i]; config.gunType = (GameEnums.Gun)data.gunTypes[i]; config.battleType = (GameEnums.BattleType)data.battleTypes[i]; config.locationPath = (GameEnums.GunLocation)data.locationPaths[i]; config.trackingGroup = (GameEnums.TrackingGroup)data.trackingGroups[i]; config.gunDataType = (GameEnums.GunDataType)data.gunDataTypes[i]; } maxTraveledDistancePerSession = data.maxTraveledDistancePerSession; totalTraveledDistance = data.totalTraveledDistance; maxDefeatedEnemiesPerSession = data.maxDefeatedEnemiesPerSession; totalDefeatedEnemies = data.totalDefeatedEnemies; totalTraveledTime = data.totalTraveledTime; maxTraveledTimePerSession = data.maxTraveledTimePerSession; maxTraveledDistance_1Minute = data.maxTraveledDistance_1Minute; maxTraveledDistance_3Minutes = data.maxTraveledDistance_3Minutes; maxTraveledDistance_5Minutes = data.maxTraveledDistance_5Minutes; coins = data.coins; experience = data.experience; } }
public static PlayerSerializableData LoadData() { string path = Application.persistentDataPath + "/player.data"; if (File.Exists(path)) { BinaryFormatter formatter = new BinaryFormatter(); FileStream stream = new FileStream(path, FileMode.Open); PlayerSerializableData data = formatter.Deserialize(stream) as PlayerSerializableData; stream.Close(); return(data); } else { Debug.Log("saved data not found in" + path); return(null); } }
private PlayerSerializableData GetPlayerSerializableData(Player sourcePlayer) { PlayerSerializableData player = new PlayerSerializableData(); player = new PlayerSerializableData() { ArcherImageUri = sourcePlayer.ArcherImageUri, PeasantImageUri = sourcePlayer.PeasantImageUri, SwordsmanImageUri = sourcePlayer.SwordsmanImageUri, }; player.UnitStacksSerializableData = new List <UnitStackSerializableData>(); foreach (var item in sourcePlayer.UnitStacks) { var unitStackSerializableData = new UnitStackSerializableData { UnitsCapacity = item.UnitsCapacity, Units = item.Units, UnitType = item.UnitType, CellIndex = item.CellIndex }; var gameFieldCellSerializableData = new GameFieldCellSerializableData { CurrentUnitNumber = item.Cell.CurrentUnitNumber, IsSelected = item.Cell.IsSelected, MaxUnitNumber = item.Cell.MaxUnitNumber, }; unitStackSerializableData.Cell = gameFieldCellSerializableData; player.UnitStacksSerializableData.Add(unitStackSerializableData); } return(player); }
public static void SaveData(TruckData truckData, PlayerSessionData playerSessionData) { BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + "/player.data"; FileStream stream = new FileStream(path, FileMode.Create); PlayerSerializableData data = new PlayerSerializableData(); data.firePointType = (int)truckData.firePointType; data.truckType = (int)truckData.truckType; data.gunTypes = new int[12]; data.battleTypes = new int[12]; data.locationPaths = new int[12]; data.trackingGroups = new int[12]; data.gunDataTypes = new int[12]; for (int i = 0; i < truckData.firePointData.gunsConfigurations.Length; i++) { var config = truckData.firePointData.gunsConfigurations[i]; data.gunTypes[i] = (int)config.gunType; data.battleTypes[i] = (int)config.battleType; data.locationPaths[i] = (int)config.locationPath; data.trackingGroups[i] = (int)config.trackingGroup; data.gunDataTypes[i] = (int)config.gunDataType; } if (playerSessionData.traveledDistance > PlayerStaticRunTimeData.maxTraveledDistancePerSession) { data.maxTraveledDistancePerSession = playerSessionData.traveledDistance; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceInOneSession_ID); } else { data.maxTraveledDistancePerSession = PlayerStaticRunTimeData.maxTraveledDistancePerSession; } if (playerSessionData.defeatedEnemies > PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession) { data.maxDefeatedEnemiesPerSession = playerSessionData.defeatedEnemies; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.defeatedEnemies, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxDefeatedEnemiesInOneSession_ID); } else { data.maxDefeatedEnemiesPerSession = PlayerStaticRunTimeData.maxDefeatedEnemiesPerSession; } if (playerSessionData.traveledTime > PlayerStaticRunTimeData.maxTraveledTimePerSession) { data.maxTraveledTimePerSession = playerSessionData.traveledTime; } else { data.maxTraveledTimePerSession = PlayerStaticRunTimeData.maxTraveledTimePerSession; } if (playerSessionData.traveledDistance_1Minute > PlayerStaticRunTimeData.maxTraveledDistance_1Minute) { data.maxTraveledDistance_1Minute = playerSessionData.traveledDistance_1Minute; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_1Minute, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_1_Minute_ID); } else { data.maxTraveledDistance_1Minute = PlayerStaticRunTimeData.maxTraveledDistance_1Minute; } if (playerSessionData.traveledDistance_3Minutes > PlayerStaticRunTimeData.maxTraveledDistance_3Minutes) { data.maxTraveledDistance_3Minutes = playerSessionData.traveledDistance_3Minutes; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_3Minutes, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_3_Minute_ID); } else { data.maxTraveledDistance_5Minutes = PlayerStaticRunTimeData.maxTraveledDistance_5Minutes; } if (playerSessionData.traveledDistance_5Minutes > PlayerStaticRunTimeData.maxTraveledDistance_5Minutes) { data.maxTraveledDistance_5Minutes = playerSessionData.traveledDistance_5Minutes; GooglePlayServicesHandler.Instance.SaveProgressToLeaderboard(playerSessionData.traveledDistance_5Minutes, GoogleDataHolder.PlayServicesData.LeaderBoards.MaxTraveledDistanceIn_5_Minute_ID); } else { data.maxTraveledDistance_5Minutes = PlayerStaticRunTimeData.maxTraveledDistance_5Minutes; } data.totalTraveledDistance = PlayerStaticRunTimeData.totalTraveledDistance + playerSessionData.traveledDistance; data.totalTraveledTime = PlayerStaticRunTimeData.totalTraveledTime + playerSessionData.traveledTime; data.totalDefeatedEnemies = PlayerStaticRunTimeData.totalDefeatedEnemies + playerSessionData.defeatedEnemies; data.experience = PlayerStaticRunTimeData.experience + RewardCoinsForSession(playerSessionData.defeatedEnemies, playerSessionData.traveledDistance); data.coins = PlayerStaticRunTimeData.coins + RewardCoinsForSession(playerSessionData.defeatedEnemies, playerSessionData.traveledDistance); formatter.Serialize(stream, data); stream.Close(); }