/// <summary> /// Starting load method /// </summary> /// <param name="filename"></param> /// <param name="_owner"></param> /// <returns></returns> public static Conversation loadConversation(String filename, AIBase _owner, String nextConvo) { Conversation newConvo = new Conversation(_owner) { next = nextConvo }; XmlTextReader xmlReader = new XmlTextReader(filename); xmlReader.ReadToFollowing("Conversation"); newConvo.Question = xmlReader.GetAttribute("value"); xmlReader.ReadToDescendant("Response"); do { String responseText = xmlReader.GetAttribute("value"); String type = xmlReader.GetAttribute("type"); if (type.Equals("Event")) { xmlReader.ReadToDescendant("Events"); xmlReader.ReadToDescendant("Event"); Stack <Event> events = new Stack <Event>(); do { String eventName = xmlReader.GetAttribute("eventName"); String eventValue = xmlReader.GetAttribute("eventValue"); events.Push(new Event(eventName, eventValue)); } while (xmlReader.ReadToNextSibling("Event")); ConversationResponse cr = new ConversationResponse(responseText, events, _owner); newConvo.responses.Add(cr); xmlReader.Read(); xmlReader.Read(); } else if (type.Equals("Convo")) { ConversationResponse cr = new ConversationResponse(responseText, loadConversation(_owner, xmlReader), _owner); newConvo.responses.Add(cr); xmlReader.Read(); xmlReader.Read(); xmlReader.Read(); xmlReader.Read(); } else { throw new Exception("Bad Convo"); } } while (xmlReader.ReadToNextSibling("Response")); xmlReader.Close(); return(newConvo); }
/// <summary> /// Next is event constructor /// </summary> /// <param name="_text"></param> /// <param name="_events"></param> /// <param name="owner"></param> public ConversationResponse(String _text, Stack <Event> _events, AIBase owner) { ai = owner; text = _text; eventsToSend = _events; }
/// <summary> /// Next is convo constructor /// </summary> /// <param name="_text"></param> /// <param name="_conversation"></param> /// <param name="owner"></param> public ConversationResponse(String _text, Conversation _conversation, AIBase owner) { ai = owner; text = _text; convo = _conversation; }
/// <summary> /// Constructor /// </summary> /// <param name="_owner"></param> public Conversation(AIBase _owner) { owner = _owner; responses = new List <ConversationResponse>(); }