Пример #1
0
    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;
        }
    }
Пример #2
0
    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);
        }
    }
Пример #3
0
        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);
        }
Пример #4
0
    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();
    }