Example #1
0
        public override bool Run()
        {
            RabbitHole            closestHospital  = RabbitHole.GetClosestRabbitHoleOfType(RabbitHoleType.Hospital, Target.Position);
            HaveAlienBabyHospital haveBabyHospital = HaveAlienBabyHospital.Singleton.CreateInstance(closestHospital, Target,
                                                                                                    new InteractionPriority(InteractionPriorityLevel.Pregnancy), false, false) as HaveAlienBabyHospital;

            if (Actor != Target)
            {
                haveBabyHospital.AddFollower(Actor);
            }

            Target.InteractionQueue.Add(haveBabyHospital);
            return(true);
        }
        public override bool Run()
        {
            Hospital hospital = RabbitHole.GetClosestRabbitHoleOfType(RabbitHoleType.Hospital,
                                                                      Target.Position) as Hospital;

            if (hospital != null)
            {
                Actor.RouteTurnToFace(Target.Position);
                EWGoToVet interactionInstance = EWGoToVet.Singleton.CreateInstance(hospital, Actor,
                                                                                   new InteractionPriority(InteractionPriorityLevel.High), isAutonomous: false,
                                                                                   cancellableByPlayer: true) as EWGoToVet;
                interactionInstance.mPet = Target;

                if ((Target.IsCat || Target.IsLittleDog))
                {
                    ChildUtils.SetPosturePrecondition(interactionInstance, CommodityKind.CarryingPet, new CommodityKind[0]);
                    PickUpPet pickUp = PickUpPet.Singleton.CreateInstance(Target, Actor, new InteractionPriority(InteractionPriorityLevel.High),
                                                                          false, true) as PickUpPet;
                    Actor.InteractionQueue.TryPushAsContinuation(this, pickUp);
                    Actor.InteractionQueue.TryPushAsContinuation(pickUp, interactionInstance);
                }
                else
                {
                    SocialInteractionA greetPet = new SocialInteractionA.Definition("Let Sniff Hand", new string[0],
                                                                                    null, false).CreateInstance(Target, Actor, new InteractionPriority(InteractionPriorityLevel.High),
                                                                                                                false, true) as SocialInteractionA;
                    Actor.InteractionQueue.TryPushAsContinuation(this, greetPet);
                    Actor.InteractionQueue.TryPushAsContinuation(greetPet, interactionInstance);
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }