private void OnNodeDataChanged(object sender, RoutedEventArgs e) { DialogueDataLine oldData = sourceData; DialogueDataLine newData = ToDialogueDataLine(); History.History.Do(new History.Actions.Action_NodeDataChanged(this, oldData, newData)); }
public Node(DialogueDataLine sourceData) { InitializeComponent(); Width = grid.Width; Height = grid.Height; this.sourceData = sourceData; LoadDataFromSource(); RecalculatePromptAreaVisibility(); }
public DialogueDataLine ToDialogueDataLine() { DialogueDataLine d = new DialogueDataLine(); d.rowName = nodeNameField.Text; d.prompt = PromptTextBox.Text; d.boundToActor = PromptActorsCombobox.Text; Point p = GetPosition(); d.SetPosition(p.X, p.Y); switch (outputType.Text) { case "End dialogue": d.command = "leave"; d.commandArguments = string.Empty; break; case "Shortcut target": d.command = "go-to-target"; d.commandArguments = string.Empty; break; case "Shortcut": d.command = "go-to"; d.commandArguments = string.Empty; d.nextRowName = TargetDialogueID.Text; break; case "Multiple choices": d.command = "options"; d.commandArguments = string.Empty; break; case "If player has item": d.command = "has-item"; d.commandArguments = itemName.Text + " " + itemCount.Text; break; case "Call actor event": d.command = "actor-message"; d.commandArguments = eventActorName.Text + " " + eventActorEventName.Text; break; case "Call level event": d.command = "level-message"; d.commandArguments = levelEventName.Text; break; case "Normal dialogue": d.command = "dialogue"; d.commandArguments = actorName.Text + ": " + dialogueText.Text; break; case "Check bool": d.command = "get-bool"; d.commandArguments = CheckBoolID.Text; break; case "Set bool": d.command = "set-bool"; d.commandArguments = SetBoolID.Text + " " + (SetBoolValue.IsChecked == true ? "true" : "false"); break; case "Counter": d.command = "counter"; d.commandArguments = CounterNo.Text + " " + (CounterScopeLocal.IsChecked == true ? "local" : "global"); break; default: break; } return(d); }