Esempio n. 1
0
        // ----

        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();
                }
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }
Esempio n. 3
0
        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();
        }