// ---- public void ReloadEvents(bool reset) { if (Events.Children.Count == 1 && Events.Children[0] is NoPropertyView) { return; } if (reset) { foreach (UIElement uiElement in Events.Children) { PropertySelectingView view = uiElement as PropertySelectingView; if (view.Selected) { view.Selected = false; view.Refresh(); } } } else { foreach (UIElement uiElement in Events.Children) { PropertySelectingView view = uiElement as PropertySelectingView; view.Selected = statement.Events.Contains(view.Property); view.Refresh(); } } }
public void LoadNextStatements() { NextStatements.Children.Clear(); Console.WriteLine("Loading next statements connections..."); List <Statement> statements; if (npc) { statements = conversation.PlayerStatements; } else { statements = conversation.NPCStatements; } if (statements.Count == 0) { NextStatements.Children.Add(new NoPropertyView("None")); } else { foreach (Statement statement in statements) { PropertySelectingView view = new PropertySelectingView(statement, this.statement.NextStatements.Contains(statement)); NextStatements.Children.Add(view); } } }
private void DoneButton_Click(object sender, RoutedEventArgs e) { if (!editing) { if (npc && conversation.GetNPCStatement(ID.Text) != null) { EditorHub.HubInstance.Alert("An NPC statement with such name already exists!", AlertType.Error); return; } else if (!npc && conversation.GetPlayerStatement(ID.Text) != null) { EditorHub.HubInstance.Alert("A Player statement with such name already exists!", AlertType.Error); return; } } else { if (npc && conversation.GetNPCStatement(ID.Text, new string[] { statement.ID }) != null) { EditorHub.HubInstance.Alert("An NPC statement with such name already exists!", AlertType.Error); return; } else if (!npc && conversation.GetPlayerStatement(ID.Text, new string[] { statement.ID }) != null) { EditorHub.HubInstance.Alert("A Player statement with such name already exists!", AlertType.Error); return; } } statement.ID = ID.Text; statement.Content = new TextRange(Content.Document.ContentStart, Content.Document.ContentEnd).Text.Replace(Environment.NewLine, string.Empty); statement.Events.Clear(); foreach (Control control in Events.Children) { if (!(control is PropertySelectingView)) { continue; } PropertySelectingView view = control as PropertySelectingView; if (view.Selected) { statement.Events.Add(view.Property); } } statement.Conditions.Clear(); statement.NegatedConditions.Clear(); foreach (Control control in Conditions.Children) { if (!(control is PropertyNegableSelectingView)) { continue; } PropertyNegableSelectingView view = control as PropertyNegableSelectingView; if (view.Selected) { statement.Conditions.Add(view.Property); } if (view.Negated) { statement.NegatedConditions.Add(view.Property.ID); } } statement.NextStatements.Clear(); foreach (Control control in NextStatements.Children) { if (!(control is PropertySelectingView)) { continue; } PropertySelectingView view = control as PropertySelectingView; if (view.Selected) { statement.NextStatements.Add(view.Property as Statement); } } if (npc) { if (!conversation.NPCStatements.Contains(statement)) { conversation.NPCStatements.Add(statement); } if (start && !conversation.StartStatements.Contains(statement)) { conversation.StartStatements.Add(statement); } else if (!start && conversation.StartStatements.Contains(statement)) { conversation.StartStatements.Remove(statement); } ConversationEditor.Instance.RefreshNPCStatements(); ConversationEditor.Instance.RefreshStartStatements(); } else { if (!conversation.PlayerStatements.Contains(statement)) { conversation.PlayerStatements.Add(statement); } ConversationEditor.Instance.RefreshPlayerStatements(); } Tools.Animations.BackgroundColorAnimation(Panel, Colors.ForestGreen, .25d, true); EditorHub.HubInstance.CallOffPriorityAlert(); }