public void Select(DialogueOption dialogueOption) { if (dialogueOption.SubsequentOptions.Count > 0) { DisplayedOptions = dialogueOption.SubsequentOptions; } else { Initialize(); } }
public DialogueButton(DialogueOption dialogueOption) { DialogueOption = dialogueOption; FlatStyle = FlatStyle.Flat; FlatAppearance.BorderSize = 0; BackColor = Color.FromArgb(100, 0, 0); ForeColor = Color.White; TextAlign = ContentAlignment.TopLeft; Width = 647; Text = DialogueOption.Text; }
static private Dialogue readDialogue(XmlReader reader) { var dialogue = new Dialogue(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "name": dialogue.Name = reader["text"]; break; case "greeting": dialogue.Greeting = reader["text"]; break; case "options": var dialogueOptions = new Dictionary <string, DialogueOption>(); var subsequentIdList = new List <string[]>(); while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { var dialogueOption = new DialogueOption() { Category = (Category)int.Parse(reader["category"]), Visible = (reader["visible"] == null) ? true : bool.Parse(reader["visible"]), Text = reader["text"], Reply = reader["reply"] }; if (reader["leadsTo"] != null) { subsequentIdList.Add(reader["leadsTo"].Split(';')); } else { subsequentIdList.Add(new string[] { }); } dialogueOptions.Add(reader["id"], dialogueOption); } } var index = 0; dialogue.DialogueOptions = new List <DialogueOption>(); foreach (var option in dialogueOptions) { foreach (var id in subsequentIdList[index]) { var subsequentOption = dialogueOptions[id]; option.Value.SubsequentOptions.Add(subsequentOption); } dialogue.DialogueOptions.Add(option.Value); ++index; } dialogue.Initialize(); break; } } } return(dialogue); }