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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }