public void addTalkTree(TalkTree talkTree) { if(m_talkTrees == null) { m_talkTrees = new List<TalkTree>(); } m_talkTrees.Add(talkTree); }
public void addTalkTree(TalkTree talkTree) { if (m_talkTrees == null) { m_talkTrees = new List <TalkTree>(); } m_talkTrees.Add(talkTree); }
/// <summary> /// Parse the XML nodes /// </summary> /// <param name="xmlNode">The <Stage></Stage> nodes</param> public void fromXml(XmlNode xmlNode) { String value; Xml.getAttribute(xmlNode, XmlAttributes.ID, true, out value); setId(value); foreach (XmlNode stageChildNode in xmlNode.ChildNodes) { if (stageChildNode.Name.Equals(XmlTag.DESCRIPTION)) { Xml.getValue(stageChildNode, !getId().Equals("0"), out value); // Optional for stage 0, required for others setDescription(value); } else if (stageChildNode.Name.Equals(XmlTag.COMPLETION)) { Completion completion = new Completion(); completion.fromXml(stageChildNode); addCompletion(completion); } else if (stageChildNode.Name.Equals(XmlTag.REWARD)) { Reward reward = new Reward(); reward.fromXml(stageChildNode); addReward(reward); } else if (stageChildNode.Name.Equals(XmlTag.TALKTREE)) { TalkTree talkTree = new TalkTree(); talkTree.fromXML(stageChildNode); addTalkTree(talkTree); } else { MessageBox.Show("Unexpected node: " + stageChildNode.Name + " in the" + XmlTag.STAGE + " tag"); } } addValidations(ValidationType.Complete); /*if (!valid(ValidationType.Complete, out value)) * { * throw (new Exception(value + "\n\n" + xmlNode.InnerXml)); * }*/ }
/// <summary> /// Parse the XML nodes /// </summary> /// <param name="xmlNode">The <Stage></Stage> nodes</param> public void fromXml(XmlNode xmlNode) { String value; Xml.getAttribute(xmlNode, XmlAttributes.ID, true, out value); setId(value); foreach (XmlNode stageChildNode in xmlNode.ChildNodes) { if (stageChildNode.Name.Equals(XmlTag.DESCRIPTION)) { Xml.getValue(stageChildNode, !getId().Equals("0"), out value); // Optional for stage 0, required for others setDescription(value); } else if (stageChildNode.Name.Equals(XmlTag.COMPLETION)) { Completion completion = new Completion(); completion.fromXml(stageChildNode); addCompletion(completion); } else if (stageChildNode.Name.Equals(XmlTag.REWARD)) { Reward reward = new Reward(); reward.fromXml(stageChildNode); addReward(reward); } else if (stageChildNode.Name.Equals(XmlTag.TALKTREE)) { TalkTree talkTree = new TalkTree(); talkTree.fromXML(stageChildNode); addTalkTree(talkTree); } else { MessageBox.Show("Unexpected node: " + stageChildNode.Name + " in the" + XmlTag.STAGE + " tag"); } } addValidations(ValidationType.Complete); /*if (!valid(ValidationType.Complete, out value)) { throw (new Exception(value + "\n\n" + xmlNode.InnerXml)); }*/ }
private void onTalkTree(object sender, EventArgs e) { String conversation = null; if (m_stage.hasTalkTrees()) { // Edit the talk tree StringWriter stringWriter = new StringWriter(); m_stage.getTalkTreesXML(stringWriter); conversation = stringWriter.ToString(); } m_frmTalkTree.setConversation(conversation); // Specify the valid stages (for the goto_stage flag) List<CodeValue> stages = new List<CodeValue>(); Int32 stageId; foreach(Stage stage in m_mission.getStages()) { stageId = Int32.Parse(stage.getId()); stages.Add(CodeValue.FormattedLeft(stageId, stage.getDescription())); } m_frmTalkTree.setStages(stages); m_frmTalkTree.ShowDialog(); if (m_frmTalkTree.getConversation(out conversation)) { m_parent.onChanged(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(new StringReader("<Chat>" + conversation + "</Chat>")); m_stage.clearTalkTrees(); TalkTree talkTree; foreach (XmlNode nodeTree in xmlDocument.DocumentElement.ChildNodes) { talkTree = new TalkTree(); talkTree.fromXML(nodeTree); m_stage.addTalkTree(talkTree); } } }