Example #1
0
 public void addTalkTree(TalkTree talkTree)
 {
     if(m_talkTrees == null)
     {
         m_talkTrees = new List<TalkTree>();
     }
     m_talkTrees.Add(talkTree);
 }
Example #2
0
 public void addTalkTree(TalkTree talkTree)
 {
     if (m_talkTrees == null)
     {
         m_talkTrees = new List <TalkTree>();
     }
     m_talkTrees.Add(talkTree);
 }
Example #3
0
        /// <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));
             * }*/
        }
Example #4
0
        /// <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);
                }
            }
        }