Example #1
0
        public override void OnAddition(BuffManager bm, BuffInstance bi, bool travelReaddition)
        {
            BuffInstanceAbductedEx instance = bi as BuffInstanceAbductedEx;

            List <SimDescription> aliens = AlienUtilsEx.GetAliens(true);

            if (aliens == null)
            {
                return;
            }

            instance.Abductee     = bm.Actor;
            instance.Alien        = RandomUtil.GetRandomObjectFromList <SimDescription>(aliens);
            instance.IsAutonomous = false;

            if (CommonPregnancy.IsSuccess(instance.Abductee, instance.Alien))
            {
                Pregnancy pregnancy = CommonPregnancy.CreatePregnancy(instance.Abductee, instance.Alien, !CommonPregnancy.AllowPlantSimPregnancy());

                if (pregnancy != null)
                {
                    instance.IsAlienPregnancy = true;
                    instance.Abductee.SimDescription.Pregnancy = pregnancy;
                    EventTracker.SendEvent(EventTypeId.kGotPregnant, instance.Abductee);
                }
            }
        }
Example #2
0
        public override void OnAddition(BuffManager bm, BuffInstance bi, bool travelReaddition)
        {
            SimDescription         description  = bm.Actor.SimDescription;
            BuffInstanceAbductedEx buffInstance = bi as BuffInstanceAbductedEx;

            buffInstance.Abductee = bm.Actor;
            List <SimDescription> list = new List <SimDescription>();

            foreach (SimDescription current in Household.AlienHousehold.SimDescriptions)
            {
                if (current.TeenOrAbove)
                {
                    list.Add(current);
                }
            }

            if (list.Count > 0)
            {
                buffInstance.Alien = RandomUtil.GetRandomObjectFromList(list);

                if (AlienPregnancyProxy.ShouldImpregnate(buffInstance.Abductee, buffInstance.Alien))
                {
                    AlienPregnancyProxy.Start(buffInstance.Abductee, buffInstance.Alien);
                    buffInstance.IsAlienPregnant = true;
                    return;
                }
            }

            buffInstance.IsAlienPregnant = false;
        }
Example #3
0
            public override BuffInstance Clone()
            {
                BuffInstanceAbductedEx bi = new BuffInstanceAbductedEx(mBuff, mBuffGuid, mEffectValue, mTimeoutCount);

                bi.mAbductee         = mAbductee;
                bi.mAlien            = mAlien;
                bi.mIsAlienPregnancy = mIsAlienPregnancy;

                return(bi);
            }
Example #4
0
        public override void OnTimeout(BuffManager bm, BuffInstance bi, OnTimeoutReasons reason)
        {
            BuffInstanceAbductedEx instance = bi as BuffInstanceAbductedEx;

            if (instance.IsAlienPregnancy)
            {
                InteractionInstance interaction = ShowAlienPregnancy.Singleton.CreateInstance(instance.Abductee,
                                                                                              instance.Abductee, new InteractionPriority(InteractionPriorityLevel.ESRB), false, false);
                interaction.Hidden = true;
                instance.Abductee.InteractionQueue.AddNext(interaction);
            }
        }
Example #5
0
        public override void OnAddition(BuffManager bm, BuffInstance bi, bool travelReaddition)
        {
            Sim abductee = bm.Actor;

            if (abductee.TraitManager.HasElement(AlienUtilsEx.sAlienPregnancy))
            {
                BuffInstanceAbductedEx instance = bi as BuffInstanceAbductedEx;
                instance.Abductee         = abductee;
                instance.Alien            = SimDescription.Find(abductee.SimDescription.Pregnancy.DadDescriptionId);
                instance.IsAlienPregnancy = true;
                EventTracker.SendEvent(EventTypeId.kGotPregnant, abductee);
                abductee.TraitManager.RemoveElement(AlienUtilsEx.sAlienPregnancy);
            }
        }