public Node NPCBehavior_CasualConversation(NPCBehavior agentA, NPCBehavior agentB) { return(new Sequence( agentB.NPCBehavior_GoToAtDistance(agentA.transform, 1.5f, false), agentB.NPCBehavior_OrientTowards(agentA.transform), agentB.NPCBehavior_LookAt(agentA.transform, true), agentB.NPCBehavior_DoGesture(GESTURE_CODE.WAVE_HELLO), agentA.NPCBehavior_OrientTowards(agentB.transform), agentA.NPCBehavior_LookAt(agentB.transform, true), new DecoratorLoop( new SelectorParallel( new SequenceShuffle( agentA.NPCBehavior_DoGesture(GESTURE_CODE.TALK_SHORT), agentB.NPCBehavior_DoGesture(GESTURE_CODE.TALK_LONG), agentA.NPCBehavior_DoGesture(GESTURE_CODE.ACKNOWLEDGE), agentA.NPCBehavior_DoGesture(GESTURE_CODE.HURRAY), agentA.NPCBehavior_DoGesture(GESTURE_CODE.DRUNK) ), new SequenceShuffle( agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_A), agentB.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_E), agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_O), agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_U), agentA.NPCBehavior_DoGesture(GESTURE_CODE.PHONEME_P) ) ) ), agentB.NPCBehavior_LookAt(null, false), agentA.NPCBehavior_LookAt(null, false), agentB.NPCBehavior_DoGesture(GESTURE_CODE.WAVE_HELLO) )); }