예제 #1
0
        public static Player CreateDefaultPlayer()
        {
            Player player = new Player(100, 100, 20);

            player.CurrentTile = World.GetTile(player.HomeTileID);

            return(player);
        }
예제 #2
0
 private void MoveHome()
 {
     MoveTo(World.GetTile(Player.HomeTileID));
 }
예제 #3
0
        public static Player CreatePlayerFromXmlString(string xmlSaveData)
        {
            try
            {
                XmlDocument saveData = new XmlDocument();

                saveData.LoadXml(xmlSaveData);

                int currentHitPoints = Convert.ToInt32(saveData.SelectSingleNode("/Player/Stats/CurrentHitPoints").InnerText);
                int maximumHitPoints = Convert.ToInt32(saveData.SelectSingleNode("/Player/Stats/MaximumHitPoints").InnerText);
                int gold             = Convert.ToInt32(saveData.SelectSingleNode("/Player/Stats/Gold").InnerText);

                Player player = new Player(currentHitPoints, maximumHitPoints, gold);
                player.HomeTileID = Convert.ToInt32(saveData.SelectSingleNode("/Player/Stats/HomeTile").InnerText);

                int currentTileID = Convert.ToInt32(saveData.SelectSingleNode("/Player/Stats/CurrentTile").InnerText);
                player.CurrentTile = World.GetTile(currentTileID);

                foreach (XmlNode node in saveData.SelectNodes("/Player/PlayerSkills/PlayerSkill"))
                {
                    int type       = Convert.ToInt32(node.Attributes["Type"].Value);
                    int level      = Convert.ToInt32(node.Attributes["Level"].Value);
                    int experience = Convert.ToInt32(node.Attributes["Experience"].Value);
                    player.UpdateSkill(type, level, experience);
                }

                foreach (XmlNode node in saveData.SelectNodes("/Player/InventoryItems/InventoryItem"))
                {
                    int id       = Convert.ToInt32(node.Attributes["ID"].Value);
                    int quantity = Convert.ToInt32(node.Attributes["Quantity"].Value);

                    if (quantity > 0)
                    {
                        player.AddItemToInventory(id, quantity);
                    }
                }

                foreach (XmlNode node in saveData.SelectNodes("/Player/PlayerQuests/PlayerQuest"))
                {
                    int  id         = Convert.ToInt32(node.Attributes["ID"].Value);
                    int  state      = Convert.ToInt32(node.Attributes["State"].Value);
                    bool isComplete = Convert.ToBoolean(node.Attributes["IsComplete"].Value);

                    player.Quests.Add(new PlayerQuest(World.GetQuest(id), state, isComplete));
                }

                foreach (XmlNode node in saveData.SelectNodes("/Player/ItemEquipments/ItemEquipment"))
                {
                    int id = Convert.ToInt32(node.Attributes["ID"].Value);

                    player.Equipment.Add((ItemEquipment)World.GetItem(id));
                }

                return(player);
            }
            catch
            {
                // If there was an error with the XML data, return a default player object
                return(Player.CreateDefaultPlayer());
            }
        }