Exemple #1
0
 protected Node ST_Take(SmartCharacter user, StateName holdingState, Node afterTake)
 {
     return new Sequence(
         user.Node_Require(StateName.RoleActor, StateName.IsStanding, ~StateName.HoldingBall, ~StateName.HoldingWallet, ~StateName.IsIncapacitated),
         this.Node_Require(StateName.RoleTable, holdingState),
         user.Node_GoTo(this.StandPoint.position),
         new SequenceParallel(
             user.Node_HeadLook(this.PropPickup.transform.position),
             user.Node_OrientTowards(this.PropPickup.transform.position)),
         new DecoratorCatch(
             () => { user.Character.StopInteraction(FullBodyBipedEffector.RightHand); user.Character.HeadLookStop(); },
             new Sequence(
                user.Node_StartInteraction(FullBodyBipedEffector.RightHand, this.PropPickup),
                user.Node_WaitForTrigger(FullBodyBipedEffector.RightHand),
                new LeafInvoke(() => user.HoldPropRightHand.Attach(this.PropHolder.Release())),
                user.Node_HeadLookStop())),
         this.Node_Set(~holdingState),
         afterTake,
         user.Node_Set(holdingState),
         user.Node_StartInteraction(FullBodyBipedEffector.RightHand, user.InteractionHoldRight),
         user.Node_WaitForTrigger(FullBodyBipedEffector.RightHand),
         new LeafWait(300));
 }
Exemple #2
0
 /// <summary>
 /// ABAS
 /// </summary>
 /// <param name="userA"></param>
 /// <param name="userB"></param>
 /// <param name="myAnims"></param>
 /// <param name="userAnims"></param>
 /// <returns></returns>
 public Node ST_DistractAndSteal(
     SmartCharacter userA,
     SmartCharacter userB) {
         Vector3 origPosition = userB.transform.position;
     return new Sequence(
         userA.Node_WaveTo(this),
         this.Node_OrientTowards(Val.V(() => userA.transform.position)),
         this.Node_GoToUpToRadius(Val.V(() => userA.transform.position), 1.2f),
         new SequenceParallel(
             userB.Node_HeadLook(Val.V(() => this.MarkerHead.position)),
         new SequenceParallel(
                 userA.ST_JustTalk(this),
                 new Sequence(
                     userB.Node_OrientTowards(Val.V(() => this.transform.position)),
                     new LeafWait(2000),
                     this.Steal(userB),
                     new LeafWait(1800),
                     userB.Node_GoTo(Val.V(() => origPosition)),
                     userB.Node_WaveTo(userA),
                     userA.Node_GoToUpToRadius(Val.V(() => userB.transform.position), 1.2f),
                     userB.ST_TalkHappily(userA))))
     
     );
 }
Exemple #3
0
 /// <summary>
 /// ABAS
 /// </summary>
 /// <param name="userA"></param>
 /// <param name="userB"></param>
 /// <param name="myAnims"></param>
 /// <param name="userAnims"></param>
 /// <returns></returns>
 public Node ST_ConverseThree(
     SmartCharacter userA,
     SmartCharacter userB) {
     return new Sequence(
         new SequenceParallel(
             Node_CallForAttention(userA),
             userA.Node_GoToUpToRadius(Val.V(() => this.transform.position), 1.2f),
             userB.Node_GoToUpToRadius(Val.V(() => this.transform.position), 1.2f)),
             userB.Node_HeadLook(Val.V(() => this.MarkerHead.position)),
             userB.Node_PlayHandGesture(Val<string>.V(() => "Dismiss"), Val<long>.V(() => 2000L)),
         new Sequence(
                 ST_TalkHappily(userA)),
                 new SequenceParallel(
                     userA.Node_OrientTowards(Val.V(() => userB.transform.position)),
                     userB.ST_TalkHappily(this),
                     ST_TalkHappily(userA))
     );
 }
Exemple #4
0
 protected Node ST_ApproachConverse(
     SmartCharacter user,
     AnimationDescription[] myAnims,
     AnimationDescription[] userAnims) {
     return new Sequence(
             Node_GoToUpToRadius(Val.V(() => user.transform.position), 1.3f),
             Node_HeadLook(Val.V(() => user.MarkerHead.position)),
             user.Node_HeadLook(Val.V(() => this.MarkerHead.position)),
             user.Node_HeadLook(Val.V(() => this.MarkerHead.position)),
         ST_PlayConversationAnims(user, myAnims, userAnims),
         Node_HeadLookStop(),
         user.Node_HeadLookStop()
     );
 }
Exemple #5
0
 protected Node ST_PlainConverse(
     SmartCharacter user,
     AnimationDescription[] myAnims,
     AnimationDescription[] userAnims) {
     return new Sequence(
             Node_HeadLook(Val.V(() => user.MarkerHead.position)),
             user.Node_HeadLook(Val.V(() => this.MarkerHead.position)),
         ST_PlayConversationAnims(user, myAnims, userAnims),
         Node_HeadLookStop(),
         user.Node_HeadLookStop()
     );
 }