public void Load()
    {
        string filename = Path.Combine(Application.persistentDataPath, "save.dat");

        if (File.Exists(filename))
        {
            BinaryFormatter bf   = new BinaryFormatter();
            FileStream      file = File.Open(filename, FileMode.Open, FileAccess.Read);

            SerializableGameData tmpGameData = (SerializableGameData)bf.Deserialize(file);

            gameData = tmpGameData;

            file.Close();
            print("Load at:" + filename);
        }
        else
        {
            ClearRecord();
            print("Did you find saved data");
        }
    }
 void Awake()
 {
     if (!Application.isPlaying)
     {
         return;
     }
     Debug.Log(gameObject.transform.name);
     if (Instance == null)
     {
         Debug.Log("Save Manager doesn't exist yet");
         DontDestroyOnLoad(gameObject);
         Instance = this;
         gameData = new SerializableGameData();
         if (loadOnAwake)
         {
             Load();
         }
     }
     else if (Instance != this)
     {
         Debug.Log("There is more than one game control");
         Destroy(gameObject);
     }
 }
 public void ClearRecord()
 {
     print("Clear game data");
     gameData = new SerializableGameData();
     Save();
 }
Esempio n. 4
0
    public static string Serialize(GameData gamedata)
    {
        if (cardCollection == null)
        {
            Initialize();
        }
        SerializableGameData serializableGD = new SerializableGameData();

        serializableGD.player1Name       = gamedata.player1Name;
        serializableGD.player2Name       = gamedata.player2Name;
        serializableGD.player1AvatarIndx = gamedata.player1AvatarIndx;
        serializableGD.player2AvatarIndx = gamedata.player2AvatarIndx;
        serializableGD.florIsActive      = gamedata.florIsActive;

        serializableGD.matchOnCourse = gamedata.matchOnCourse;
        serializableGD.gameOnCourse  = gamedata.gameOnCourse;
        serializableGD.player1Score  = gamedata.player1Score;
        serializableGD.player2Score  = gamedata.player2Score;
        serializableGD.maxScore      = gamedata.maxScore;
        serializableGD.maxTimeToPlay = gamedata.maxTimeToPlay;

        serializableGD.playerFirst      = gamedata.playerFirst;
        serializableGD.playerPlay       = gamedata.playerPlay;
        serializableGD.playerMustAnswer = gamedata.playerMustAnswer;

        //[Header("My live Hand values for play mode")]
        serializableGD.player1Cards = new string[gamedata.player1Cards.Count];
        for (int i = 0; i < serializableGD.player1Cards.Length; i++)
        {
            try
            {
                serializableGD.player1Cards[i] = gamedata.player1Cards[i].name;
            }
            catch (Exception ex)
            {
                serializableGD.player1Cards[i] = String.Empty;
            }
        }

        serializableGD.player1PlayedCards = new string[gamedata.player1PlayedCards.Count];
        for (int i = 0; i < serializableGD.player1PlayedCards.Length; i++)
        {
            try
            {
                serializableGD.player1PlayedCards[i] = gamedata.player1PlayedCards[i].name;
            }
            catch (Exception ex)
            {
                serializableGD.player1PlayedCards[i] = String.Empty;
            }
        }
        serializableGD.player1EnvidoPoints = gamedata.player1EnvidoPoints;
        serializableGD.player1Flor         = gamedata.player1Flor;
        serializableGD.player1FlorPoints   = gamedata.player1FlorPoints;

        serializableGD.player2Cards = new string[gamedata.player2Cards.Count];
        for (int i = 0; i < serializableGD.player2Cards.Length; i++)
        {
            try
            {
                serializableGD.player2Cards[i] = gamedata.player2Cards[i].name;
            }
            catch (Exception ex)
            {
                serializableGD.player2Cards[i] = String.Empty;
            }
        }
        serializableGD.player2PlayedCards = new string[gamedata.player2PlayedCards.Count];
        for (int i = 0; i < serializableGD.player2PlayedCards.Length; i++)
        {
            try
            {
                serializableGD.player2PlayedCards[i] = gamedata.player2PlayedCards[i].name;
            }
            catch (Exception ex)
            {
                serializableGD.player2PlayedCards[i] = String.Empty;
            }
        }
        serializableGD.player2EnvidoPoints = gamedata.player2EnvidoPoints;
        serializableGD.player2Flor         = gamedata.player2Flor;
        serializableGD.player2FlorPoints   = gamedata.player2FlorPoints;


        //[Header("Live Hand common values for play mode")]
        serializableGD.round               = gamedata.round;
        serializableGD.trucoState          = gamedata.trucoState;
        serializableGD.whoCalledLastTruco  = gamedata.whoCalledLastTruco;
        serializableGD.envidoState         = gamedata.envidoState;
        serializableGD.whoCalledLastEnvido = gamedata.whoCalledLastEnvido;
        serializableGD.envidoWinner        = gamedata.envidoWinner;
        serializableGD.envidoWinnedPoints  = gamedata.envidoWinnedPoints;
        serializableGD.florState           = gamedata.florState;
        serializableGD.whoCalledLastFlor   = gamedata.whoCalledLastFlor;
        serializableGD.florWinner          = gamedata.florWinner;
        serializableGD.florWinnedPoints    = gamedata.florWinnedPoints;
        serializableGD.handWinner          = gamedata.handWinner;

        return(JsonUtility.ToJson(serializableGD));
    }
Esempio n. 5
0
    public static GameData DeSerialize(string gamedata)
    {
        if (cardCollection == null)
        {
            Initialize();
        }

        SerializableGameData serializableGD = JsonUtility.FromJson <SerializableGameData>(gamedata);
        GameData             gd             = ScriptableObject.CreateInstance <GameData>();

        gd.player1Name       = serializableGD.player1Name;
        gd.player2Name       = serializableGD.player2Name;
        gd.player1AvatarIndx = serializableGD.player1AvatarIndx;
        gd.player2AvatarIndx = serializableGD.player2AvatarIndx;
        gd.florIsActive      = serializableGD.florIsActive;

        gd.matchOnCourse = serializableGD.matchOnCourse;
        gd.gameOnCourse  = serializableGD.gameOnCourse;
        gd.player1Score  = serializableGD.player1Score;
        gd.player2Score  = serializableGD.player2Score;
        gd.maxScore      = serializableGD.maxScore;
        gd.maxTimeToPlay = serializableGD.maxTimeToPlay;

        gd.playerFirst      = serializableGD.playerFirst;
        gd.playerPlay       = serializableGD.playerPlay;
        gd.playerMustAnswer = serializableGD.playerMustAnswer;

        gd.player1EnvidoPoints = serializableGD.player1EnvidoPoints;
        gd.player1Flor         = serializableGD.player1Flor;
        gd.player1FlorPoints   = serializableGD.player1FlorPoints;

        gd.player2EnvidoPoints = serializableGD.player2EnvidoPoints;
        gd.player2Flor         = serializableGD.player2Flor;
        gd.player2FlorPoints   = serializableGD.player2FlorPoints;

        gd.player1Cards = new List <Card>();
        for (int i = 0; i < serializableGD.player1Cards.Length; i++)
        {
            if (String.Empty.Equals(serializableGD.player1Cards[i]) == false)
            {
                gd.player1Cards.Add(cardCollection[serializableGD.player1Cards[i]]);
            }
            else
            {
                gd.player1Cards.Add(null);
            }
        }

        gd.player1PlayedCards = new List <Card>();
        for (int i = 0; i < serializableGD.player1PlayedCards.Length; i++)
        {
            if (String.Empty.Equals(serializableGD.player1PlayedCards[i]) == false)
            {
                gd.player1PlayedCards.Add(cardCollection[serializableGD.player1PlayedCards[i]]);
            }
            else
            {
                gd.player1PlayedCards.Add(null);
            }
        }

        gd.player2Cards = new List <Card>();
        for (int i = 0; i < serializableGD.player2Cards.Length; i++)
        {
            if (String.Empty.Equals(serializableGD.player2Cards[i]) == false)
            {
                gd.player2Cards.Add(cardCollection[serializableGD.player2Cards[i]]);
            }
            else
            {
                gd.player2Cards.Add(null);
            }
        }

        gd.player2PlayedCards = new List <Card>();
        for (int i = 0; i < serializableGD.player2PlayedCards.Length; i++)
        {
            if (String.Empty.Equals(serializableGD.player2PlayedCards[i]) == false)
            {
                gd.player2PlayedCards.Add(cardCollection[serializableGD.player2PlayedCards[i]]);
            }
            else
            {
                gd.player2PlayedCards.Add(null);
            }
        }

        return(gd);
    }