private void AddDialogLine(CampaignGameStarter starter, DialogueData d, string in_token)
        {
            if (d.InjectedToTaleworlds)
            {
                return;
            }

            d.InjectedToTaleworlds = true;

            ConversationSentence.OnConditionDelegate cond = null;

            if (d.Condition != null)
            {
                cond = delegate
                {
                    return(EvalulateDialogueCondition(d.Condition));
                };
            }

            ConversationSentence.OnConsequenceDelegate conseq = null;

            if (d.Consequence != null)
            {
                conseq = delegate
                {
                    ExecuteDialogueConsequence(d.Consequence);
                };
            }

            if (d.IsPlayerDialogue)
            {
                starter.AddPlayerLine(d.Dialogue_ID,
                                      in_token,
                                      d.Children.Count == 0? "close_window" : d.Dialogue_ID,
                                      d.DialogueText,
                                      cond,
                                      conseq,
                                      int.MaxValue
                                      );
            }
            else
            {
                starter.AddDialogLine(d.Dialogue_ID,
                                      in_token,
                                      d.Children.Count == 0 ? "close_window" : d.Dialogue_ID,
                                      d.DialogueText,
                                      cond,
                                      conseq,
                                      int.MaxValue
                                      );
            }

            foreach (DialogueData child in d.Children)
            {
                AddDialogLine(starter, child, d.Dialogue_ID);
            }
        }
Exemplo n.º 2
0
 public IPlayerDialogToken SetConsequence(ConversationSentence.OnConsequenceDelegate consequence)
 {
     Consequence = consequence;
     return(this);
 }