static void Run_RuntimeNode(XmlNode runtimeNode, Player player) { string nodeTag = runtimeNode.Name; switch (nodeTag) { case "text": Console.WriteLine(runtimeNode.InnerText); break; case "dialogueBox": Console.WriteLine("======================="); foreach (XmlNode dialogueNode in runtimeNode) { Run_RuntimeNode(dialogueNode, player); } Console.WriteLine("======================="); break; case "choice": options.Clear(); results.Clear(); foreach (XmlNode choiceNode in runtimeNode) { Run_RuntimeNode(choiceNode, player); } string chosen = Make_Choice(options); XmlNode resultMatch = results[chosen]; foreach (XmlNode resultNode in resultMatch) { Run_RuntimeNode(resultNode, player); } break; case "option": options.Add(runtimeNode.InnerText); break; case "result": Console.WriteLine(runtimeNode.Attributes["id"]?.InnerText); results.Add(runtimeNode.Attributes["id"]?.InnerText, runtimeNode); break; case "exp": player.exp += Convert.ToInt32(runtimeNode.InnerText); Console.WriteLine("You gained [" + runtimeNode.InnerText + "] exp. You now have [" + player.exp + "]."); break; case "gold": player.gold += Convert.ToInt32(runtimeNode.InnerText); Console.WriteLine("You gained [" + runtimeNode.InnerText + "] gold. You now have [" + player.gold + "]."); break; case "item": Item gained_item = ItemDriver.Get_Item(runtimeNode.InnerText); player.inventory.Add(gained_item); break; } }
public Item Get_Item(string name) { return(ItemDriver.Get_Item(name)); }
public Dictionary <string, Item> Get_Items() { return(ItemDriver.Get_Items()); }