package pncdsl type Dialogue struct { Name string Start string Nodes []DialogueNode } func (d Dialogue) GetName() string { return d.Name } func (d Dialogue) TypeLabel() string { return "dialogue" } func (d Dialogue) Node(name string) (DialogueNode, bool) { for _, n := range d.Nodes { if n.Name == name { return n, true } } return DialogueNode{}, false } type DialogueNode struct { Name string Lines []DialogueLine Choices []DialogueChoice } type DialogueLine struct { Speaker string Text string } type DialogueChoice struct { Text string Show Condition // nil = always Once bool Actions []Action }