protected override void OnEndH(BaseLoader proc, HFlag hFlag, bool vr) { InsideHScene = false; Destroy(proc.GetComponent <LactationController>()); // Figure out if conception happened at end of h scene // bug Don't know which character is which if (hFlag.mode == HFlag.EMode.houshi3P || hFlag.mode == HFlag.EMode.sonyu3P) { return; } var heroine = hFlag.lstHeroine.First(x => x != null); var isDangerousDay = HFlag.GetMenstruation(heroine.MenstruationDay) == HFlag.MenstruationType.危険日; if (!isDangerousDay) { return; } var cameInside = PregnancyPlugin.ConceptionEnabled.Value && hFlag.count.sonyuInside > 0; var cameInsideAnal = PregnancyPlugin.AnalConceptionEnabled.Value && hFlag.count.sonyuAnalInside > 0; if (cameInside || cameInsideAnal) { var controller = heroine.chaCtrl.GetComponent <PregnancyCharaController>(); if (controller == null) { throw new ArgumentNullException(nameof(controller)); } //Allow pregnancy if enabled, or overridden, and is not currently pregnant if (!controller.Data.GameplayEnabled || controller.Data.IsPregnant) { return; } var fertility = Mathf.Max(PregnancyPlugin.FertilityOverride.Value, controller.Data.Fertility); var winThreshold = Mathf.RoundToInt(fertility * 100); var childLottery = Random.Range(1, 100); //Logger.Log(LogLevel.Debug, $"Preg - OnEndH calc pregnancy chance {childLottery} to {winThreshold}"); var wonAChild = winThreshold >= childLottery; if (wonAChild) { //Logger.Log(LogLevel.Debug, "Preg - child lottery won, pregnancy will start"); StartPregnancy(heroine); } } }