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); } } }
List<TalkNode> GetAllNodes(TalkTree tree, int previousElement) { List<TalkNode> newNodes= new List<TalkNode>(); foreach (TalkNode node in tree.talkTree) { if (node.previousElement==previousElement) { newNodes.Add(node); } } return newNodes; }
List<TalkNode> GetAllNodes(TalkTree tree, List<int> elements) { if (elements.Count==0) { showGrid=false; Debug.Log("stoped talking"); } List<TalkNode> newNodes= new List<TalkNode>(); foreach (int element in elements) { newNodes.Add(tree.talkTree[element]); } return newNodes; }