示例#1
0
 protected override void Display(DialogueContext context)
 {
     if (options.Count == 0)
     {
         throw new System.Exception("Error while displaying DialogActiveChoice : options can't be empty.");
     }
     context.ShowChoice(options);
 }
示例#2
0
 protected virtual void BeginInteractiveRoutine(DialogueContext context)
 {
     this.context = context;
     // trigger the effects of the node once
     // BEWARE! if there are waits in those, behaviour isn't defined!
     DoEffects(context);
     // node takes over!
     context.VisitNode(null);
 }
示例#3
0
 public virtual bool DoEffect(DialogueContext context)
 {
     if (currentEffectIndex == handlers.Count)
     {
         currentEffectIndex = 0;
         return(false);
     }
     handlers[currentEffectIndex++].Handle(context);
     return(true);
 }
示例#4
0
 public override DialogueNode Next(DialogueContext context)
 {
     currentNodeIndex++;
     if (currentNodeIndex == nodes.Count)
     {
         currentNodeIndex = 0;
         return(context.GetDialogueNode(nextNodeId));
     }
     return(this);
 }
示例#5
0
 public override void Visit(DialogueContext context)
 {
     if (currentNodeIndex == 0)
     {
         DoEffects(context);
     }
     if (currentNodeIndex < nodes.Count)
     {
         currentNode.Visit(context);
     }
 }
示例#6
0
 public bool AreConditionsVerified(DialogueContext context)
 {
     foreach (string condition in conditions)
     {
         if (!context.GetCondition(condition))
         {
             return(false);
         }
     }
     return(true);
 }
示例#7
0
 public override bool DoEffect(DialogueContext context)
 {
     if (currentEffectIndex == 0)
     {
         if (AreConditionsVerified(context))
         {
             return(base.DoEffect(context));
         }
     }
     else
     {
         return(base.DoEffect(context));
     }
     return(false);
 }
示例#8
0
 public override void Visit(DialogueContext context)
 {
     if (options.Count == 0)
     {
         throw new System.Exception("Error while visiting DialoguePassiveChoice : options can't be empty.");
     }
     foreach (DialoguePassiveOption option in options)
     {
         if (option.AreConditionsVerified(context))
         {
             nextNodeId = option.nextNodeId;
             break;
         }
     }
     if (nextNodeId == -1)
     {
         throw new System.Exception("Error while checking DialogPassiveChoice : no outcome.");
     }
     DoEffects(context);
 }
示例#9
0
 public override void Handle(DialogueContext context)
 {
     context.SnapSpriteToPosition(objectId, position, snapPosition);
 }
示例#10
0
 public override void Handle(DialogueContext context)
 {
     context.SetSpritePosition(objectId, position);
 }
示例#11
0
 public override void Handle(DialogueContext context)
 {
     context.SetContextObject(objectId, o);
 }
示例#12
0
 public override void Handle(DialogueContext context)
 {
     context.FreeCondition(condition);
 }
示例#13
0
 public override void Handle(DialogueContext context)
 {
     context.ScaleSprite(objectId, scaleDuration, targetSize);
 }
示例#14
0
 public override void Visit(DialogueContext context)
 {
     BeginInteractiveRoutine(context);
 }
示例#15
0
 public virtual DialogueNode Next(DialogueContext context)
 {
     return(null);
 }
示例#16
0
 protected virtual void Display(DialogueContext context)
 {
 }
示例#17
0
 public override DialogueNode Next(DialogueContext context)
 {
     return(context.GetDialogueNode(nextNodeId));
 }
示例#18
0
 public override void Handle(DialogueContext context)
 {
     context.Wait(duration);
 }
示例#19
0
 public override void Handle(DialogueContext context)
 {
     context.FlipSprite(objectId, flipX, flipY);
 }
示例#20
0
 public override void Handle(DialogueContext context)
 {
     context.SetAudioSource(objectId, assetPath);
 }
示例#21
0
 public override void Handle(DialogueContext context)
 {
     context.MoveSprite(objectId, moveDuration, targetPosition, targetSnapPosition);
 }
示例#22
0
 public override void Handle(DialogueContext context)
 {
     context.StopAudio();
 }
示例#23
0
 public override void Handle(DialogueContext context)
 {
     context.PlayMusic(objectId);
 }
示例#24
0
 public virtual void Visit(DialogueContext context)
 {
     DoEffects(context);
     Display(context);
 }
示例#25
0
 public override void Handle(DialogueContext context)
 {
     context.StopMusic();
 }
示例#26
0
 protected override void Display(DialogueContext context)
 {
     context.SetName(name);
     context.SetText(text);
 }
示例#27
0
 public abstract void Handle(DialogueContext context);
示例#28
0
 public override void Handle(DialogueContext context)
 {
     context.SetSpriteVisible(objectId, visible);
 }
示例#29
0
 public override void Handle(DialogueContext context)
 {
     context.FreeContextObject(objectId);
 }
示例#30
0
 public override void Handle(DialogueContext context)
 {
     context.SetSpriteSize(objectId, size);
 }