Beispiel #1
0
    /// <summary>
    /// Takes a <see cref="Player"/> and converts it to a <see cref="SaveData.PlayerSaveData"/> format for serialization.
    /// </summary>
    /// <param name="player">A player instance to serialize.</param>
    /// <returns> Serializable player, or null if player is null. </returns>
    public SaveData.PlayerSaveData PlayerToSerializable(Player player)
    {
        if (player != null)
        {
            SaveData.PlayerSaveData playerToSave = new SaveData.PlayerSaveData();

            // Assign attributes of player to those of player to be serialized.
            playerToSave.name         = player.Name;
            playerToSave.level        = player.Level;
            playerToSave.health       = player.Health;
            playerToSave.attack       = player.Attack;
            playerToSave.defence      = player.Defence;
            playerToSave.maximumMagic = player.MaximumMagic;
            playerToSave.magic        = player.Magic;
            playerToSave.luck         = player.Luck;
            playerToSave.speed        = player.Speed;
            playerToSave.special1     = SpecialMoveToSerializable(player.Special1);
            playerToSave.special2     = SpecialMoveToSerializable(player.Special2);
            playerToSave.image        = Texture2DToSerializable(player.Image);
            playerToSave.exp          = player.Exp;

            if (player.Item != null)
            {
                playerToSave.item = ItemToSerializable(player.Item);
            }

            return(playerToSave);
        }
        else
        {
            return(null);
        }
    }
Beispiel #2
0
    /// <summary>
    ///  Takes a <see cref="SaveData.PlayerSaveData"/> and converts it to an actual <see cref="Player"/> for use in game.
    /// </summary>
    /// <param name="serializedPlayer"> The serializable <see cref="SaveData.PlayerSaveData"/> player. </param>
    /// <returns> A real Player instance, or null if passed null.</returns>
    public Player SerializableToPLayer(SaveData.PlayerSaveData serializedPlayer)
    {
        if (serializedPlayer != null)
        {
            Player playerToLoad = new Player(serializedPlayer.name,
                                             serializedPlayer.level,
                                             serializedPlayer.health,
                                             serializedPlayer.attack,
                                             serializedPlayer.defence,
                                             serializedPlayer.maximumMagic,
                                             serializedPlayer.magic,
                                             serializedPlayer.luck,
                                             serializedPlayer.speed,
                                             serializedPlayer.exp,
                                             SerializableToItem(serializedPlayer.item),
                                             SerializableToSpecialMove(serializedPlayer.special1),
                                             SerializableToSpecialMove(serializedPlayer.special2),
                                             SerializableToTexture2D(serializedPlayer.image));

            if (serializedPlayer.isGorilla)
            {
                playerToLoad.IsGorilla = true;
            }

            return(playerToLoad);
        }
        return(null);
    }
Beispiel #3
0
    public void SaveLoadPlayer()
    {
        Player testPlayer = new Player("George", 1, 100, 5, 5, 5, 5, 5, 5, 0, new Hammer(),
                                       new MagicAttack("hi-jump kicked", "Kick with power 15", 3, 15),
                                       new RaiseDefence("buffed up against", "Increase your defence by 10%", 2, 0.1f),
                                       (Texture2D)Resources.Load("Character1", typeof(Texture2D)));

        SaveData.PlayerSaveData savedPlayer = PlayerData.instance.data.PlayerToSerializable(testPlayer);
        Player restoredPlayer = PlayerData.instance.data.SerializableToPLayer(savedPlayer);

        Assert.AreEqual(restoredPlayer.Name, testPlayer.Name);
        Assert.AreEqual(restoredPlayer.Level, testPlayer.Level);
        Assert.AreEqual(restoredPlayer.Health, testPlayer.Health);
        Assert.AreEqual(restoredPlayer.Attack, testPlayer.Attack);
        Assert.AreEqual(restoredPlayer.Defence, testPlayer.Defence);
        Assert.AreEqual(restoredPlayer.MaximumMagic, testPlayer.MaximumMagic);
        Assert.AreEqual(restoredPlayer.Magic, testPlayer.Magic);
        Assert.AreEqual(restoredPlayer.Luck, testPlayer.Luck);
        Assert.AreEqual(restoredPlayer.Speed, testPlayer.Speed);
        Assert.AreEqual(restoredPlayer.Exp, testPlayer.Exp);

        // Other non-primitive data types are tested below.
    }