Exemplo n.º 1
0
 public static DialogueSequence BuildDialogue(string key, bool isTest, params Element[] elements)
 {
     var b = new DialogueSequenceBuilder(key);
     b.IsTest = isTest;
     AddElements(b, elements);
     return b.Build();
 }
Exemplo n.º 2
0
 static void AddActors(DialogueSequenceBuilder builder, Element element)
 {
     while (builder.dialogue.Actors.Count < element.actor) {
         builder.AddActor("Actor" + (builder.dialogue.Actors.Count + 1));
     }
 }
Exemplo n.º 3
0
 static void AddElements(DialogueSequenceBuilder builder, IEnumerable<Element> elements)
 {
     foreach (var e in elements) {
         AddActors(builder, e);
         if (e is LineElement) {
             var le = (LineElement)e;
             builder.AddLine(le.phraseKey, le.actor);
         } else if (e is EnglishLineElement) {
             var ele = (EnglishLineElement)e;
             builder.AddEnglishLine(ele.line);
         }
         //else if (e is AnimationElement) {
         //    var ae = (AnimationElement)e;
         //    builder.AddAnimation(ae.animation, ae.actor);
         //}
         else if (e is EventElement) {
             var ee = (EventElement)e;
             builder.AddEvent(ee.Event);
         }
         //else if (e is MessageElement) {
         //    var me = (MessageElement)e;
         //    builder.AddMessage(me.message);
         //}
         else if (e is ExitDialogueElement) {
             builder.Break();
         } else if (e is BranchElement) {
             var be = (BranchElement)e;
             int index = 0;
             BranchRef[] branchRefs = new BranchRef[0];
             if (be.isEnglish) {
                 branchRefs = be.branches.Select(b => new BranchRef(new PhraseSequence(b.promptKey))).ToArray();
                 builder.AddEnglishBranch(branchRefs);
             } else {
                 branchRefs = be.branches.Select(
                     b => b.isEnglish ? new BranchRef(new PhraseSequence(b.promptKey)) : new BranchRef(builder.GetPhrase(b.promptKey))
                     ).ToArray();
                 builder.AddJapaneseBranch(branchRefs);
             }
             foreach (var b in be.branches) {
                 builder.SetOpenLink(branchRefs[index]);
                 index++;
                 AddElements(builder, b.responseElements);
                 builder.OpenBranch();
             }
             builder.CloseBranches();
         }
     }
 }
 public DialogueSequenceBuilder GetDialogueBuilder()
 {
     var builder = new DialogueSequenceBuilder(SetKey);
     builder.IsTest = IsTest;
     return builder;
 }