Ejemplo n.º 1
0
 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;
        }
Ejemplo n.º 3
0
        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);
        }