Example #1
0
        public static IEnumerable <InteractionObjectPair> GetAllInteractionsForSim(SocialComponent ths, Sim actor, bool isAutonomous)
        {
            if ((ths.mSim.IsPerformingAService && !VisitSituation.IsSocializing(ths.mSim)) && !(ths.mSim.Service is Butler))
            {
                sMsg += Common.NewLine + "Service";

                return(ths.GetAllServiceInteractions(actor));
            }
            List <InteractionObjectPair> list = new List <InteractionObjectPair>();

            if (isAutonomous)
            {
                sMsg += Common.NewLine + "Autonomous";

                list.AddRange(ths.GetAllInteractionsForAutonomy(actor));
                return(list);
            }
            if ((ths.mSim.Posture is ISeatedSocialPosture) && (actor.Posture is ISeatedSocialPosture))
            {
                Relationship relationship = Relationship.Get(ths.mSim, actor, false);
                if ((relationship == null) || (relationship.LTR.CurrentLTR == LongTermRelationshipTypes.Stranger))
                {
                    sMsg += Common.NewLine + "New Conversation";

                    list.AddRange(SocialsForNewConversation(ths, actor, ths.mSim, false));
                    return(list);
                }
                if (ths.mSim.NeedsToBeGreeted(actor))
                {
                    sMsg += Common.NewLine + "Greeting";

                    list.AddRange(ths.SocialsForGreeting(actor, ths.mSim));
                    return(list);
                }

                sMsg += Common.NewLine + "Empty";

                return(new List <InteractionObjectPair>());
            }

            sMsg += Common.NewLine + "PieMenu";

            list.AddRange(GetAllInteractionsForPieMenu(ths, actor));
            return(list);
        }