public static Player CreatePlayerFromXML(string xmlPlayerData) { try { XmlDocument playerData = new XmlDocument(); playerData.LoadXml(xmlPlayerData); int currentHP = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/CurrentHP").InnerText); int maxHP = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/MaxHP").InnerText); int gold = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/Gold").InnerText); int EXP = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/EXP").InnerText); Player player = new Player(currentHP, maxHP, gold, EXP); int currentLocationID = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/CurrentLocation").InnerText); player.CurrentLocation = World.LocationById(currentLocationID); if (playerData.SelectSingleNode("/Player/Stats/CurrentWeapon") != null) { int currentWeaponID = Convert.ToInt32(playerData.SelectSingleNode("/Player/Stats/CurrentWeapon").InnerText); player.CurrentWeapon = (Weapon)World.ItemByID(currentWeaponID); } foreach (XmlNode node in playerData.SelectNodes("/Player/Inventory/Item")) { int id = Convert.ToInt32(node.Attributes["ID"].Value); int quantity = Convert.ToInt32(node.Attributes["Quantity"].Value); for (int i = 0; i < quantity; i++) { player.AddItemToInventory(World.ItemByID(id)); } } foreach (XmlNode node in playerData.SelectNodes("/Player/PlayerQuests/Quest")) { int id = Convert.ToInt32(node.Attributes["ID"].Value); bool isCompleted = Convert.ToBoolean(node.Attributes["IsCompleted"].Value); PlayerQuest playerQuest = new PlayerQuest(World.QuestById(id)); playerQuest.IsCompleted = isCompleted; player.Quests.Add(playerQuest); } return(player); } catch { //if error with XML data, return default player return(Player.CreateDefaultPlayer()); } }
public bool IsWinner() { return(IsQuestCompleted(World.QuestById(World.QUEST_KILL_THIEF_KING))); }