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); } } }
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; }
public override BuffInstance Clone() { BuffInstanceAbductedEx bi = new BuffInstanceAbductedEx(mBuff, mBuffGuid, mEffectValue, mTimeoutCount); bi.mAbductee = mAbductee; bi.mAlien = mAlien; bi.mIsAlienPregnancy = mIsAlienPregnancy; return(bi); }
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); } }
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); } }