Example #1
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                paragraph.Options.Add(OptionParse(xmlOption));
            }

            if (Game.Xml.BoolParse(xmlParagraph["IntuitiveSolution"]))
            {
                paragraph.Options.Add(GetOption(destination: id + 20, text: "Интуитивное решение", onlyIf: "selectOnly"));
            }

            foreach (XmlNode xmlAction in xmlParagraph.SelectNodes("Actions/Action"))
            {
                paragraph.Actions.Add(ActionParse(xmlAction));
            }

            foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
            {
                paragraph.Modification.Add(ModificationParse(xmlModification));
            }

            return(paragraph);
        }
Example #2
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            Constants.RandomColor();

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                Option option = OptionsTemplateWithoutDestination(xmlOption);

                if (xmlOption.Attributes["Destination"].Value == "Gate")
                {
                    if (Character.Protagonist.GateCode <= 0)
                    {
                        continue;
                    }
                    else
                    {
                        foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
                        {
                            if (xmlModification.Attributes["Name"].Value == "GateCode")
                            {
                                Character.Protagonist.GateCode += Game.Xml.IntParse(xmlModification.Attributes["Value"]);
                            }
                        }

                        option.Destination = Character.Protagonist.GateCode;
                    }
                }
                else if (int.TryParse(xmlOption.Attributes["Destination"].Value, out int _))
                {
                    option.Destination = Game.Xml.IntParse(xmlOption.Attributes["Destination"]);
                }
                else
                {
                    List <string> destinations = xmlOption.Attributes["Destination"].Value.Split(',').ToList <string>();
                    option.Destination = int.Parse(destinations[random.Next(destinations.Count())]);
                }

                paragraph.Options.Add(option);
            }

            foreach (XmlNode xmlAction in xmlParagraph.SelectNodes("Actions/Action"))
            {
                paragraph.Actions.Add(ActionParse(xmlAction));
            }

            foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
            {
                paragraph.Modification.Add(Game.Xml.ModificationParse(xmlModification, new Modification()));
            }

            return(paragraph);
        }
Example #3
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                paragraph.Options.Add(OptionParseWithDo(xmlOption, new Modification()));
            }

            return(paragraph);
        }
Example #4
0
        public virtual Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = new Game.Paragraph {
                Options = new List <Option>()
            };

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                Option option = new Option
                {
                    Destination = Game.Xml.IntParse(xmlOption.Attributes["Destination"]),
                    Text        = Game.Xml.StringParse(xmlOption.Attributes["Text"]),
                };

                paragraph.Options.Add(option);
            }

            return(paragraph);
        }
Example #5
0
        public Game.Paragraph GetTemplate(XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                paragraph.Options.Add(OptionParse(xmlOption));
            }

            foreach (XmlNode xmlAction in xmlParagraph.SelectNodes("Actions/Action"))
            {
                paragraph.Actions.Add(ActionParse(xmlAction));
            }

            foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
            {
                paragraph.Modification.Add(ModificationParse(xmlModification));
            }

            return(paragraph);
        }
Example #6
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                Option option = OptionsTemplate(xmlOption);

                if (int.TryParse(xmlOption.Attributes["Destination"].Value, out int _))
                {
                    option.Destination = Game.Xml.IntParse(xmlOption.Attributes["Destination"]);
                }
                else
                {
                    List <string> destinations = xmlOption.Attributes["Destination"].Value.Split(',').ToList <string>();
                    option.Destination = int.Parse(destinations[random.Next(destinations.Count())]);
                }

                if (xmlOption.Attributes["Do"] != null)
                {
                    option.Do = Game.Xml.ModificationParse(xmlOption, new Modification(), name: "Do");
                }

                paragraph.Options.Add(option);
            }

            foreach (XmlNode xmlAction in xmlParagraph.SelectNodes("Actions/Action"))
            {
                paragraph.Actions.Add(ActionParse(xmlAction));
            }

            foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
            {
                paragraph.Modification.Add(ModificationParse(xmlModification));
            }

            return(paragraph);
        }
Example #7
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                Option option = OptionsTemplateWithoutDestination(xmlOption);

                if (int.TryParse(xmlOption.Attributes["Destination"].Value, out int _))
                {
                    option.Destination = Game.Xml.IntParse(xmlOption.Attributes["Destination"]);
                }
                else
                {
                    List <string> destinations = xmlOption.Attributes["Destination"].Value.Split(',').ToList <string>();
                    option.Destination = int.Parse(destinations[random.Next(destinations.Count())]);
                }

                paragraph.Options.Add(option);
            }

            return(paragraph);
        }
Example #8
0
        public override Game.Paragraph Get(int id, XmlNode xmlParagraph)
        {
            Game.Paragraph paragraph = ParagraphTemplate(xmlParagraph);

            foreach (XmlNode xmlOption in xmlParagraph.SelectNodes("Options/Option"))
            {
                Option option = OptionsTemplateWithoutDestination(xmlOption);

                if (xmlOption.Attributes["Destination"].Value == "Back")
                {
                    option.Destination = Character.Protagonist.WayBack;
                }
                else
                {
                    option.Destination = Game.Xml.IntParse(xmlOption.Attributes["Destination"]);
                }

                if (xmlOption.Attributes["Do"] != null)
                {
                    option.Do = Game.Xml.ModificationParse(xmlOption, new Modification(), name: "Do");
                }

                paragraph.Options.Add(option);
            }

            foreach (XmlNode xmlAction in xmlParagraph.SelectNodes("Actions/Action"))
            {
                paragraph.Actions.Add(ActionParse(xmlAction));
            }

            foreach (XmlNode xmlModification in xmlParagraph.SelectNodes("Modifications/Modification"))
            {
                paragraph.Modification.Add(Game.Xml.ModificationParse(xmlModification, new Modification()));
            }

            return(paragraph);
        }