From c1dc6827fd5c350359a68a132a9aa1bfa029a3d9 Mon Sep 17 00:00:00 2001 From: lutepickle <28810-lutepickle@users.noreply.gitgud.io> Date: Tue, 23 Aug 2022 08:30:54 -0700 Subject: [PATCH] Replace parent.pawn with Pawn everywhere --- 1.3/Assemblies/RJW_Menstruation.dll | Bin 164352 -> 163840 bytes .../Assemblies/SexperienceModule.dll | Bin 14848 -> 14848 bytes .../HediffComps/HediffComp_Breast.cs | 40 ++-- .../HediffComps/HediffComp_InducedOvulator.cs | 2 +- .../HediffComps/HediffComp_Menstruation.cs | 219 +++++++++--------- 5 files changed, 130 insertions(+), 131 deletions(-) diff --git a/1.3/Assemblies/RJW_Menstruation.dll b/1.3/Assemblies/RJW_Menstruation.dll index 8477c8f7e5cefd37485dd5ae2ef8c5e699b9da03..07cae080e012785e70c6c36c27ffee6e6126247b 100644 GIT binary patch delta 52016 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 delta 596 zcmZoDX(*Y{!BTMNz?F$TGK{+>t_){Poy^Fn&RP+`z+f?1kx6HAB%?axfys@G^@1}4 z8Nk2;NHQ_7GHlo^$du2*=ry^K&4^uwDL;vUfot+XHmS{b*miK$Ur_-mp2l#9ErLam z!Acdxn<(*)ONB+4AqRz50p_(yyx?ME5N2oq^O_kP7?Xi2ry$9RFwB9c&P<@WO#0C_D?xpJ;NpvvP=-fk`zpxk*d58`Z5hU;KnGea2z$c85x^$@r1 z2D(&~;Xhas;(JjBZcUIJOrtQE*9_E_475TCNluJG3o5r1Xo?s^7MKSyMU0^gMP(gS zB^S^XF^1`y44Vao+r 0f) return babyHalfAge; - List ages = parent.pawn.def.race.lifeStageAges; + List ages = Pawn.def.race.lifeStageAges; if (ages?.Count > 1) babyHalfAge = ages[1].minAge / 2; @@ -165,8 +165,8 @@ namespace RJW_Menstruation try { if ( - !parent.pawn.IsHashIntervalTick(tickInterval) || - !parent.pawn.Spawned // TODO: Add option to simulate off-map pawns + !Pawn.IsHashIntervalTick(tickInterval) || + !Pawn.Spawned // TODO: Add option to simulate off-map pawns ) { return; @@ -177,7 +177,7 @@ namespace RJW_Menstruation } catch (Exception ex) { - Log.Error($"Error processing breasts of {parent.pawn}: {ex}"); + Log.Error($"Error processing breasts of {Pawn}: {ex}"); } } @@ -185,14 +185,14 @@ namespace RJW_Menstruation public override void CompPostPostAdd(DamageInfo? dinfo) { if (!loaded) Initialize(); - if (ageOfLastBirth > parent.pawn.ageTracker.AgeChronologicalTicks) ageOfLastBirth = CalculateLastBirth(); // catch transplant issues + if (ageOfLastBirth > Pawn.ageTracker.AgeChronologicalTicks) ageOfLastBirth = CalculateLastBirth(); // catch transplant issues } public override void CompPostPostRemoved() { - if (parent.pawn.health.hediffSet.hediffs.Contains(parent)) + if (Pawn.health.hediffSet.hediffs.Contains(parent)) { - Log.Warning($"Attempted to remove breast comp from wrong pawn ({parent.pawn})."); + Log.Warning($"Attempted to remove breast comp from wrong pawn ({Pawn})."); return; } base.CompPostPostRemoved(); @@ -201,23 +201,23 @@ namespace RJW_Menstruation protected long CalculateLastBirth() { long youngestAge = (long)(BabyHalfAge * GenDate.TicksPerYear) * -2; // So a newborn isn't considered a new mother, either - if ((parent.pawn.relations?.ChildrenCount ?? 0) > 0) + if ((Pawn.relations?.ChildrenCount ?? 0) > 0) { - foreach (Pawn child in parent.pawn.relations.Children) + foreach (Pawn child in Pawn.relations.Children) { bool isFetus = false; - if (parent.pawn.health.hediffSet.GetHediffs().Any(preg => preg.babies.Contains(child))) + if (Pawn.health.hediffSet.GetHediffs().Any(preg => preg.babies.Contains(child))) { isFetus = true; break; } if ( - parent.pawn.ageTracker.BirthAbsTicks - child.ageTracker.BirthAbsTicks > ageOfLastBirth && + Pawn.ageTracker.BirthAbsTicks - child.ageTracker.BirthAbsTicks > ageOfLastBirth && !isFetus && - child.GetMother() == parent.pawn // Don't do Dad's boobs + child.GetMother() == Pawn // Don't do Dad's boobs ) - youngestAge = parent.pawn.ageTracker.BirthAbsTicks - child.ageTracker.BirthAbsTicks; + youngestAge = Pawn.ageTracker.BirthAbsTicks - child.ageTracker.BirthAbsTicks; } } return youngestAge; @@ -254,7 +254,7 @@ namespace RJW_Menstruation protected void CalculateBreastSize() { // Scenario A: the youngest child is less than halfway into babyhood: Full size - if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > parent.pawn.ageTracker.AgeBiologicalTicks) + if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) { debugGrowthStatus = "Full size due to young child"; if (breastSizeIncreased < MaxBreastIncrement) @@ -264,9 +264,9 @@ namespace RJW_Menstruation } } // Scenario B: Pregnant, grow in the second half of first trimester - else if (parent.pawn.IsRJWPregnant()) + else if (Pawn.IsRJWPregnant()) { - float pregnancySize = Mathf.InverseLerp(breastGrowthStart, breastGrowthEnd, parent.pawn.GetFarthestPregnancyProgress()) * MaxBreastIncrement; + float pregnancySize = Mathf.InverseLerp(breastGrowthStart, breastGrowthEnd, Pawn.GetFarthestPregnancyProgress()) * MaxBreastIncrement; if (breastSizeIncreased > pregnancySize) { debugGrowthStatus = "Shrinking due to being oversize for pregnancy"; @@ -298,10 +298,10 @@ namespace RJW_Menstruation protected void CalculateNipples() { float newNippleProgress; - if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > parent.pawn.ageTracker.AgeBiologicalTicks) + if (ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks) newNippleProgress = 1f; - else if (parent.pawn.IsRJWPregnant()) - newNippleProgress = nippleTransitions.Evaluate(parent.pawn.GetFarthestPregnancyProgress()); + else if (Pawn.IsRJWPregnant()) + newNippleProgress = nippleTransitions.Evaluate(Pawn.GetFarthestPregnancyProgress()); else newNippleProgress = 0f; @@ -353,7 +353,7 @@ namespace RJW_Menstruation cachedNipple = baseNipple + nippleProgress * nippleChange; // For some reason, Props can go null when RJW relocates the chest (e.g. some animals), so catch that - cachedColor = Colors.CMYKLerp(parent.pawn.story?.SkinColor ?? Color.white, (Props?.BlackNippleColor ?? CompProperties_Breast.DefaultBlacknippleColor.ToColor), Alpha); + cachedColor = Colors.CMYKLerp(Pawn.story?.SkinColor ?? Color.white, (Props?.BlackNippleColor ?? CompProperties_Breast.DefaultBlacknippleColor.ToColor), Alpha); } public void CopyBreastProperties(HediffComp_Breast original) diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs index 91be3e1..9019340 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs @@ -75,7 +75,7 @@ namespace RJW_Menstruation { get { - if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) return false; + if (Pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) return false; switch (curStage) { diff --git a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs index 186c044..4de9e36 100644 --- a/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs +++ b/1.3/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs @@ -124,7 +124,7 @@ namespace RJW_Menstruation get { if (pregnancy == null) return null; - else if (!parent.pawn.health.hediffSet.hediffs.Contains(pregnancy)) + else if (!Pawn.health.hediffSet.hediffs.Contains(pregnancy)) { pregnancy = null; return null; @@ -143,7 +143,7 @@ namespace RJW_Menstruation float avglittersize; try { - avglittersize = Mathf.Max(Rand.ByCurveAverage(parent.pawn.def.race.litterSizeCurve), 1.0f); + avglittersize = Mathf.Max(Rand.ByCurveAverage(Pawn.def.race.litterSizeCurve), 1.0f); } catch { @@ -153,7 +153,7 @@ namespace RJW_Menstruation opcache = (int)(RaceCyclesPerYear() * avglittersize * 6f * - (parent.pawn.def.race.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy)); + (Pawn.def.race.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy)); return opcache; } } @@ -186,7 +186,7 @@ namespace RJW_Menstruation { get { - float res = Props.maxCumCapacity * parent.pawn.BodySize; + float res = Props.maxCumCapacity * Pawn.BodySize; if (curStage != Stage.Pregnant || (pregnancy?.Severity ?? 0f) < 0.175f) res *= 500f; return res; } @@ -196,7 +196,7 @@ namespace RJW_Menstruation { get { - if (xxx.has_quirk(parent.pawn, "Breeder")) return 0.5f; + if (xxx.has_quirk(Pawn, "Breeder")) return 0.5f; return 1.0f; } @@ -207,8 +207,8 @@ namespace RJW_Menstruation get { float factor = 1.0f; - if (parent.pawn.Has(Quirk.Breeder)) factor = 10.0f; - return parent.pawn.health.capacities.GetLevel(xxx.reproduction) * Props.baseImplantationChanceFactor * factor; + if (Pawn.Has(Quirk.Breeder)) factor = 10.0f; + return Pawn.health.capacities.GetLevel(xxx.reproduction) * Props.baseImplantationChanceFactor * factor; } } public IEnumerable GetCumsInfo @@ -420,7 +420,7 @@ namespace RJW_Menstruation { get { - if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) return false; + if (Pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) return false; switch (curStage) { @@ -451,7 +451,7 @@ namespace RJW_Menstruation { try { - Color c = parent.pawn.def.race.BloodDef.graphicData.color; + Color c = Pawn.def.race.BloodDef.graphicData.color; return c; } catch @@ -467,7 +467,7 @@ namespace RJW_Menstruation { if (breastcache == null) { - breastcache = parent.pawn.GetBreastComp(); + breastcache = Pawn.GetBreastComp(); } return breastcache; } @@ -506,8 +506,8 @@ namespace RJW_Menstruation // Luteal will appear to progress, hitting the end of the phase when the pregnancy is discovered float discoveryTime = 0.5f; - if (parent.pawn.story?.bodyType == BodyTypeDefOf.Thin) discoveryTime = 0.25f; - else if (parent.pawn.story?.bodyType == BodyTypeDefOf.Female) discoveryTime = 0.35f; + if (Pawn.story?.bodyType == BodyTypeDefOf.Thin) discoveryTime = 0.25f; + else if (Pawn.story?.bodyType == BodyTypeDefOf.Female) discoveryTime = 0.35f; // Estimated; there's no way to get the exact value after the fact without writing it into the save float lutealProgressWhenImplanted = Math.Min(0.5f, maxImplantDelayHours / (Props.lutealIntervalDays * 24)); @@ -559,16 +559,16 @@ namespace RJW_Menstruation try { if ( - !parent.pawn.IsHashIntervalTick(tickInterval) || - !parent.pawn.Spawned || // TODO: Add option to simulate off-map pawns - (parent.pawn.IsAnimal() && !Configurations.EnableAnimalCycle) + !Pawn.IsHashIntervalTick(tickInterval) || + !Pawn.Spawned || // TODO: Add option to simulate off-map pawns + (Pawn.IsAnimal() && !Configurations.EnableAnimalCycle) ) { return; } CumOut(); - if (pregnancy == null && parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young; + if (pregnancy == null && Pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young; switch (curStage) { case Stage.Follicular: @@ -614,7 +614,7 @@ namespace RJW_Menstruation } catch (Exception ex) { - Log.Error($"Error processing womb of {parent.pawn}: {ex}"); + Log.Error($"Error processing womb of {Pawn}: {ex}"); } } @@ -622,9 +622,9 @@ namespace RJW_Menstruation { // If a hediff is removed from a pawn that does not have it, CompPostPostRemoved is still called on the pawn that does. // If it was a legitimate removal, then it won't be in this pawn's hediff list anymore, as that removal occurs first - if (parent.pawn.health.hediffSet.hediffs.Contains(parent)) + if (Pawn.health.hediffSet.hediffs.Contains(parent)) { - Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({parent.pawn})."); + Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({Pawn})."); return; } if (!(pregnancy is Hediff_MechanoidPregnancy)) @@ -667,7 +667,7 @@ namespace RJW_Menstruation public void CumIn(Pawn pawn, float volume, float fertility = 1.0f, ThingDef filthdef = null) { if (volume <= 0) return; - if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) fertility /= 100f; + if (Pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) fertility /= 100f; float cumd = TotalCumPercent; float tmp = TotalCum + volume; if (tmp > CumCapacity) @@ -701,7 +701,7 @@ namespace RJW_Menstruation } cumd = TotalCumPercent - cumd; - parent.pawn.records.AddTo(VariousDefOf.AmountofCreampied, volume); + Pawn.records.AddTo(VariousDefOf.AmountofCreampied, volume); AfterCumIn(pawn); AfterFluidIn(cumd); } @@ -777,13 +777,13 @@ namespace RJW_Menstruation protected void BeforeCumOut(out Absorber absorber) { - Hediff asa = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_ASA); + Hediff asa = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_ASA); float asafactor = asa?.Severity ?? 0f; - if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) antisperm = 0.70f + asafactor; + if (Pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) antisperm = 0.70f + asafactor; else antisperm = 0.0f + asafactor; - absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x is Absorber); + absorber = (Absorber)Pawn.apparel?.WornApparel?.Find(x => x is Absorber); if (absorber != null) { absorber.WearEffect(); @@ -796,7 +796,7 @@ namespace RJW_Menstruation /// protected virtual void AfterCumOut() { - parent.pawn.needs?.mood?.thoughts?.memories?.TryGainMemory(VariousDefOf.LeakingFluids); + Pawn.needs?.mood?.thoughts?.memories?.TryGainMemory(VariousDefOf.LeakingFluids); } ///

@@ -822,13 +822,13 @@ namespace RJW_Menstruation List filthlabels = new List(); BeforeCumOut(out Absorber absorber); if (cums.NullOrEmpty()) return; - if (TotalCum > Props.maxCumCapacity * parent.pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * parent.pawn.BodySize) / 10, 2f); + if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f); if (absorber != null && absorber.dirty && !absorber.LeakAfterDirty) leakfactor = 0f; - if (parent.pawn.jobs?.curJob?.def == xxx.knotted) leakfactor = 0f; + if (Pawn.jobs?.curJob?.def == xxx.knotted) leakfactor = 0f; List removecums = new List(); foreach (Cum cum in cums) { - cum.CumEffects(parent.pawn); + cum.CumEffects(Pawn); float vd = cum.DismishNatural(leakfactor, antisperm); cum.MakeThinner(Configurations.CycleAcceleration); totalleak += AbsorbCum(vd, absorber); @@ -913,7 +913,7 @@ namespace RJW_Menstruation cums.Remove(cum); } removecums.Clear(); - return new CumMixture(parent.pawn, totalleak, cumlabels, color, mixtureDef, pure); + return new CumMixture(Pawn, totalleak, cumlabels, color, mixtureDef, pure); } /// @@ -959,7 +959,7 @@ namespace RJW_Menstruation if (cycleVariability < 0f) cycleVariability = MenstruationUtility.RandomVariabilityPercent(); if (currentIntervalHours < 0) { - if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young; + if (Pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) curStage = Stage.Young; else if (!IsBreedingSeason()) curStage = Stage.Anestrus; else curStage = RandomStage(); if (curStage == Stage.Follicular) @@ -979,7 +979,7 @@ namespace RJW_Menstruation if (pregnancy == null) { // If this womb isn't marked pregnant, search for pregnancies that have no womb and claim one - foreach (Hediff_BasePregnancy preg in parent.pawn.health.hediffSet.GetHediffs()) + foreach (Hediff_BasePregnancy preg in Pawn.health.hediffSet.GetHediffs()) { if (preg.GetMenstruationComp() == null) { @@ -991,7 +991,7 @@ namespace RJW_Menstruation } } - //Log.Message(parent.pawn.Label + " - Initialized menstruation comp"); + //Log.Message(Pawn.Label + " - Initialized menstruation comp"); loaded = true; } @@ -1017,19 +1017,18 @@ namespace RJW_Menstruation public int GetOvaryPowerByAge() { - Pawn pawn = parent.pawn; float avglittersize; try { - avglittersize = Mathf.Max(Rand.ByCurveAverage(pawn.def.race.litterSizeCurve), 1.0f); + avglittersize = Mathf.Max(Rand.ByCurveAverage(Pawn.def.race.litterSizeCurve), 1.0f); } catch (NullReferenceException) { avglittersize = 1.0f; } - float fertStartAge = pawn.RaceProps.lifeStageAges?.Find(stage => stage.def.reproductive)?.minAge ?? 0.0f; - float fertEndAge = pawn.RaceProps.lifeExpectancy * (pawn.IsAnimal() ? RJWPregnancySettings.fertility_endage_female_animal : RJWPregnancySettings.fertility_endage_female_humanlike); + float fertStartAge = Pawn.RaceProps.lifeStageAges?.Find(stage => stage.def.reproductive)?.minAge ?? 0.0f; + float fertEndAge = Pawn.RaceProps.lifeExpectancy * (Pawn.IsAnimal() ? RJWPregnancySettings.fertility_endage_female_animal : RJWPregnancySettings.fertility_endage_female_humanlike); if (fertEndAge < fertStartAge) fertEndAge = fertStartAge; float raceCyclesPerYear = RaceCyclesPerYear(); @@ -1037,7 +1036,7 @@ namespace RJW_Menstruation int lifetimeEggs = (int)(lifetimeCycles * avglittersize * Utility.RandGaussianLike(0.70f, 1.30f, 5)); float pawnCyclesPerYear = raceCyclesPerYear * cycleSpeed; - float pawnCyclesElapsed = Mathf.Max((pawn.ageTracker.AgeBiologicalYearsFloat - fertStartAge) * pawnCyclesPerYear, 0.0f); + float pawnCyclesElapsed = Mathf.Max((Pawn.ageTracker.AgeBiologicalYearsFloat - fertStartAge) * pawnCyclesPerYear, 0.0f); int pawnEggsUsed = PawnEggsUsed(pawnCyclesElapsed, avglittersize); return Math.Max(lifetimeEggs - pawnEggsUsed, 0); @@ -1054,16 +1053,16 @@ namespace RJW_Menstruation ovarypower = GetOvaryPowerByAge(); if (ovarypower < 1) { - Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, parent.pawn); + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, Pawn); hediff.Severity = 0.2f; - parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + Pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(Pawn)); curStage = Stage.Young; } else if (ovarypower < OvaryPowerThreshold) { - Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn); + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, Pawn); hediff.Severity = Mathf.InverseLerp(OvaryPowerThreshold, 0, ovarypower); - parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + Pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(Pawn)); } } } @@ -1082,7 +1081,7 @@ namespace RJW_Menstruation { if (Configurations.EnableMenopause && ovarypower < OvaryPowerThreshold) { - if (sexNeed == null) sexNeed = parent.pawn.needs.TryGetNeed(VariousDefOf.SexNeed); + if (sexNeed == null) sexNeed = Pawn.needs.TryGetNeed(VariousDefOf.SexNeed); else { if (sexNeed.CurLevel < 0.5) sexNeed.CurLevel += 0.01f; @@ -1093,16 +1092,16 @@ namespace RJW_Menstruation public void SetEstrus(int days) { HediffDef estrusdef = Props.concealedEstrus ? VariousDefOf.Hediff_Estrus_Concealed : VariousDefOf.Hediff_Estrus; - Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(estrusdef); + Hediff hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(estrusdef); if (Props.concealedEstrus) { - if (parent.pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Estrus)) return; + if (Pawn.health.hediffSet.HasHediff(VariousDefOf.Hediff_Estrus)) return; } else { - Hediff concealedHediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Estrus_Concealed); - if (concealedHediff != null) parent.pawn.health.RemoveHediff(concealedHediff); + Hediff concealedHediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Estrus_Concealed); + if (concealedHediff != null) Pawn.health.RemoveHediff(concealedHediff); } if (hediff != null) @@ -1111,9 +1110,9 @@ namespace RJW_Menstruation } else { - hediff = HediffMaker.MakeHediff(estrusdef, parent.pawn); + hediff = HediffMaker.MakeHediff(estrusdef, Pawn); hediff.Severity = (float)days / Configurations.CycleAcceleration + 0.2f; - parent.pawn.health.AddHediff(hediff); + Pawn.health.AddHediff(hediff); } } @@ -1121,7 +1120,7 @@ namespace RJW_Menstruation { if (Props.breedingSeason == SeasonalBreed.Always) return true; - int tile = parent.pawn.Tile; + int tile = Pawn.Tile; if (tile < 0) tile = Find.AnyPlayerHomeMap?.Tile ?? -1; if (tile < 0) return true; switch (GenLocalDate.Season(tile)) @@ -1144,7 +1143,7 @@ namespace RJW_Menstruation protected Pawn Fertilize() { if (cums.NullOrEmpty()) return null; - List eligibleCum = cums.FindAll(cum => !cum.notcum && cum.FertVolume > 0 && cum.pawn != null && (RJWPregnancySettings.bestial_pregnancy_enabled || xxx.is_animal(parent.pawn) == xxx.is_animal(cum.pawn))); + List eligibleCum = cums.FindAll(cum => !cum.notcum && cum.FertVolume > 0 && cum.pawn != null && (RJWPregnancySettings.bestial_pregnancy_enabled || xxx.is_animal(Pawn) == xxx.is_animal(cum.pawn))); if (eligibleCum.Count == 0) return null; float totalFertPower = eligibleCum.Sum(cum => cum.FertVolume); @@ -1152,7 +1151,7 @@ namespace RJW_Menstruation if (Rand.Range(0.0f, 1.0f) > 1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor)) return null; - parent.pawn.records.AddTo(VariousDefOf.AmountofFertilizedEggs, 1); + Pawn.records.AddTo(VariousDefOf.AmountofFertilizedEggs, 1); float selection = Rand.Range(0.0f, totalFertPower); foreach (Cum cum in eligibleCum) @@ -1183,7 +1182,7 @@ namespace RJW_Menstruation deadeggs.Add(egg); continue; } - else if (parent.pawn.health.hediffSet.GetHediffs().Any() || pregnancy is Hediff_MechanoidPregnancy) + else if (Pawn.health.hediffSet.GetHediffs().Any() || pregnancy is Hediff_MechanoidPregnancy) { deadeggs.Add(egg); continue; @@ -1196,7 +1195,7 @@ namespace RJW_Menstruation { if (pregnancy is Hediff_MultiplePregnancy h) { - h.AddNewBaby(parent.pawn, egg.fertilizer); + h.AddNewBaby(Pawn, egg.fertilizer); } pregnant = true; deadeggs.Add(egg); @@ -1211,15 +1210,15 @@ namespace RJW_Menstruation { if (!Configurations.UseMultiplePregnancy) { - PregnancyHelper.PregnancyDecider(parent.pawn, egg.fertilizer); + PregnancyHelper.PregnancyDecider(Pawn, egg.fertilizer); // I hate having to do this, but it gets the newest pregnancy - pregnancy = parent.pawn.health.hediffSet.GetHediffs().MaxBy(hediff => hediff.loadID); + pregnancy = Pawn.health.hediffSet.GetHediffs().MaxBy(hediff => hediff.loadID); pregnant = true; break; } else { - pregnancy = Hediff_BasePregnancy.Create(parent.pawn, egg.fertilizer); + pregnancy = Hediff_BasePregnancy.Create(Pawn, egg.fertilizer); pregnant = true; deadeggs.Add(egg); } @@ -1248,7 +1247,7 @@ namespace RJW_Menstruation protected void BleedOut() { - CumIn(parent.pawn, Rand.Range(0.02f * Configurations.BleedingAmount, 0.04f * Configurations.BleedingAmount), Translations.Menstrual_Blood, -5.0f, parent.pawn.def.race?.BloodDef ?? ThingDefOf.Filth_Blood); + CumIn(Pawn, Rand.Range(0.02f * Configurations.BleedingAmount, 0.04f * Configurations.BleedingAmount), Translations.Menstrual_Blood, -5.0f, Pawn.def.race?.BloodDef ?? ThingDefOf.Filth_Blood); Cum blood = GetNotCum(Translations.Menstrual_Blood); if (blood != null) blood.Color = BloodColor; } @@ -1260,8 +1259,8 @@ namespace RJW_Menstruation /// protected void MakeCumFilth(Cum cum, float amount) { - if (parent.pawn.Map == null) return; - if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn?.LabelShort ?? "Unknown"); + if (Pawn.Map == null) return; + if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(Pawn.Position, Pawn.Map, cum.FilthDef, cum.pawn?.LabelShort ?? "Unknown"); } /// @@ -1276,7 +1275,7 @@ namespace RJW_Menstruation if (absorber == null) { - //if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + //if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(Pawn.Position, Pawn.Map, cum.FilthDef, cum.pawn.LabelShort); return amount; } @@ -1284,11 +1283,11 @@ namespace RJW_Menstruation absorber.SetColor(Colors.CMYKLerp(GetCumMixtureColor, absorber.DrawColor, 1f - amount / absorbable)); if (absorber.dirty) { - //if (absorber.LeakAfterDirty) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + //if (absorber.LeakAfterDirty) FilthMaker.TryMakeFilth(Pawn.Position, Pawn.Map, cum.FilthDef, cum.pawn.LabelShort); return amount; } absorber.absorbedfluids += amount; - if (absorber.absorbedfluids > absorbable && !parent.pawn.apparel.IsLocked(absorber)) + if (absorber.absorbedfluids > absorbable && !Pawn.apparel.IsLocked(absorber)) { absorber.def = absorber.DirtyDef; //absorber.fluidColor = GetCumMixtureColor; @@ -1299,10 +1298,10 @@ namespace RJW_Menstruation protected float MakeCumFilthMixture(float amount, List cumlabels) { - if (parent.pawn.Map == null) return 0; + if (Pawn.Map == null) return 0; if (amount >= minmakefilthvalue) { - FilthMaker_Colored.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, VariousDefOf.FilthMixture, cumlabels, GetCumMixtureColor, false); + FilthMaker_Colored.TryMakeFilth(Pawn.Position, Pawn.Map, VariousDefOf.FilthMixture, cumlabels, GetCumMixtureColor, false); } return amount; } @@ -1335,11 +1334,11 @@ namespace RJW_Menstruation protected void AddCrampPain() { - Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_MenstrualCramp, parent.pawn); + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_MenstrualCramp, Pawn); hediff.Severity = crampPain * Rand.Range(0.9f, 1.1f); HediffCompProperties_SeverityPerDay Prop = (HediffCompProperties_SeverityPerDay)hediff.TryGetComp().props; Prop.severityPerDay = -hediff.Severity / (currentIntervalHours / 24) * Configurations.CycleAcceleration; - parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + Pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(Pawn)); } protected virtual void FollicularAction(bool climacteric) @@ -1383,7 +1382,7 @@ namespace RJW_Menstruation float eggnum; try { - eggnum = Rand.ByCurve(parent.pawn.def.race.litterSizeCurve); + eggnum = Rand.ByCurve(Pawn.def.race.litterSizeCurve); } catch (NullReferenceException) { @@ -1391,7 +1390,7 @@ namespace RJW_Menstruation } catch (ArgumentException e) { - Log.Warning($"Invalid litterSizeCurve for {parent.pawn.def}: {e}"); + Log.Warning($"Invalid litterSizeCurve for {Pawn.def}: {e}"); eggnum = 1; } eggnum += eggstack; @@ -1406,19 +1405,19 @@ namespace RJW_Menstruation if (Configurations.EnableMenopause && ovarypower < 1) { eggs.Clear(); - Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); - if (hediff != null) parent.pawn.health.RemoveHediff(hediff); - hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, parent.pawn); + Hediff hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); + if (hediff != null) Pawn.health.RemoveHediff(hediff); + hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Menopause, Pawn); hediff.Severity = 0.2f; - parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + Pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(Pawn)); ovarypower = 0; GoNextStage(Stage.Young); } else if (Configurations.EnableMenopause && ovarypower < OvaryPowerThreshold) { - Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, parent.pawn); + Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_Climacteric, Pawn); hediff.Severity = Mathf.InverseLerp(OvaryPowerThreshold, 0, ovarypower); - parent.pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(parent.pawn)); + Pawn.health.AddHediff(hediff, Genital_Helper.get_genitalsBPR(Pawn)); GoNextStage(Stage.ClimactericLuteal); } else @@ -1485,8 +1484,8 @@ namespace RJW_Menstruation } else if (curStageHrs >= currentIntervalHours) { - Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_MenstrualCramp); - if (hediff != null) parent.pawn.health.RemoveHediff(hediff); + Hediff hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_MenstrualCramp); + if (hediff != null) Pawn.health.RemoveHediff(hediff); int totalFollicularHours = PeriodRandomizer(climacteric ? Stage.ClimactericFollicular : Stage.Follicular, climacteric ? 6.0f : 1.0f); // The total amount of time for both bleeding and follicular if (totalFollicularHours <= currentIntervalHours) // We've bled for so long that we completely missed the follicular phase GoOvulatoryStage(climacteric); @@ -1513,7 +1512,7 @@ namespace RJW_Menstruation Implant(); } - if (parent.pawn.health.hediffSet.hediffs.Contains(pregnancy)) + if (Pawn.health.hediffSet.hediffs.Contains(pregnancy)) { curStageHrs += 1; StayCurrentStageConst(Stage.Pregnant); @@ -1533,7 +1532,7 @@ namespace RJW_Menstruation { GoNextStage(Stage.ClimactericFollicular); } - else if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) == 0) + else if (Pawn.health.capacities.GetLevel(xxx.reproduction) == 0) { GoNextStage(Stage.Young); } @@ -1555,7 +1554,7 @@ namespace RJW_Menstruation { RemoveClimactericEffect(); } - if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) + if (Pawn.health.capacities.GetLevel(xxx.reproduction) <= 0) { StayCurrentStageConst(Stage.Young); } @@ -1580,54 +1579,54 @@ namespace RJW_Menstruation protected virtual void ThoughtCumInside(Pawn cummer) { - if (!xxx.is_human(parent.pawn) || !xxx.is_human(cummer)) return; + if (!xxx.is_human(Pawn) || !xxx.is_human(cummer)) return; - if ((cummer.Has(Quirk.Teratophile) != (parent.pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)) || + if ((cummer.Has(Quirk.Teratophile) != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)) || cummer.Has(Quirk.ImpregnationFetish) || cummer.Has(Quirk.Breeder)) { - if (cummer.relations.OpinionOf(parent.pawn) <= -25) + if (cummer.relations.OpinionOf(Pawn) <= -25) { - cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideM, parent.pawn); + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn); } else { - cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideM, parent.pawn); + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideM, Pawn); } } if (IsDangerDay) { - if (parent.pawn.Has(Quirk.Breeder) || parent.pawn.Has(Quirk.ImpregnationFetish)) + if (Pawn.Has(Quirk.Breeder) || Pawn.Has(Quirk.ImpregnationFetish)) { - parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer); } - else if (parent.pawn.relations.OpinionOf(cummer) <= -5) + else if (Pawn.relations.OpinionOf(cummer) <= -5) { - parent.pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); - parent.pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.HaterCameInsideFEstrus, cummer); - parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer); + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.HaterCameInsideFEstrus, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer); } - else if (parent.pawn.IsInEstrus() && parent.pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup) + else if (Pawn.IsInEstrus() && Pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup) { - parent.pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); - parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer); + Pawn.needs.mood.thoughts.memories.RemoveMemoriesOfDefWhereOtherPawnIs(VariousDefOf.CameInsideF, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer); } - else if (!parent.pawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, cummer) && !parent.pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, cummer)) + else if (!Pawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, cummer) && !Pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, cummer)) { - if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer); - else parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideF, cummer); + if (Pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer); + else Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideF, cummer); } } else { - if (parent.pawn.Has(Quirk.Breeder) || parent.pawn.Has(Quirk.ImpregnationFetish)) + if (Pawn.Has(Quirk.Breeder) || Pawn.Has(Quirk.ImpregnationFetish)) { - parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer); } - else if (parent.pawn.relations.OpinionOf(cummer) <= -5) + else if (Pawn.relations.OpinionOf(cummer) <= -5) { - parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer); + Pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer); } } } @@ -1635,11 +1634,11 @@ namespace RJW_Menstruation protected virtual void TaleCumInside(Pawn cummer) { // Only make the tale for human-on-human, consentual sex. Otherwise the art just gets too hard to phrase properly - if (!xxx.is_human(parent.pawn) || !xxx.is_human(cummer) || parent.pawn == cummer) return; - if (parent.pawn.CurJobDef != xxx.casual_sex && parent.pawn.CurJobDef != xxx.gettin_loved) return; - if (!(parent.pawn.IsColonist || parent.pawn.IsPrisonerOfColony) && !(cummer.IsColonist || cummer.IsPrisonerOfColony)) return; + if (!xxx.is_human(Pawn) || !xxx.is_human(cummer) || Pawn == cummer) return; + if (Pawn.CurJobDef != xxx.casual_sex && Pawn.CurJobDef != xxx.gettin_loved) return; + if (!(Pawn.IsColonist || Pawn.IsPrisonerOfColony) && !(cummer.IsColonist || cummer.IsPrisonerOfColony)) return; if (!IsDangerDay) return; - TaleRecorder.RecordTale(VariousDefOf.TaleCameInside, new object[] { cummer, parent.pawn }); + TaleRecorder.RecordTale(VariousDefOf.TaleCameInside, new object[] { cummer, Pawn }); } protected void GoNextStage(Stage nextstage, bool calculateHours = true) @@ -1680,10 +1679,10 @@ namespace RJW_Menstruation protected void RemoveClimactericEffect() { - Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); - if (hediff != null) parent.pawn.health.RemoveHediff(hediff); - hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Menopause); - if (hediff != null) parent.pawn.health.RemoveHediff(hediff); + Hediff hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Climacteric); + if (hediff != null) Pawn.health.RemoveHediff(hediff); + hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_Menopause); + if (hediff != null) Pawn.health.RemoveHediff(hediff); if (curStage == Stage.ClimactericBleeding) curStage = Stage.Bleeding; else if (curStage == Stage.ClimactericFollicular) curStage = Stage.Follicular; else if (curStage == Stage.ClimactericLuteal) curStage = Stage.Luteal; @@ -1714,10 +1713,10 @@ namespace RJW_Menstruation protected float InterspeciesImplantFactor(Pawn fertilizer) { - if (fertilizer.def.defName == parent.pawn.def.defName) return 1.0f; + if (fertilizer.def.defName == Pawn.def.defName) return 1.0f; else { - if (RJWPregnancySettings.complex_interspecies) return SexUtility.BodySimilarity(parent.pawn, fertilizer); + if (RJWPregnancySettings.complex_interspecies) return SexUtility.BodySimilarity(Pawn, fertilizer); else return RJWPregnancySettings.interspecies_impregnation_modifier; } }