Compare commits

...

3 commits

Author SHA1 Message Date
lutepickle
b5bfec7498 Small refactor of MultiplePregnancy birth code 2024-05-18 22:51:59 -07:00
lutepickle
16d17e01d7 Remove unnecessary "?? null" 2024-05-17 20:20:17 -07:00
lutepickle
514ffdf324 Initialize some hashsets and lists to their expected capacity 2024-05-17 19:16:27 -07:00
4 changed files with 16 additions and 24 deletions

View file

@ -1013,7 +1013,7 @@ namespace RJW_Menstruation
float leakfactor = 1.0f; float leakfactor = 1.0f;
float totalleak = 0f; float totalleak = 0f;
float cumd = TotalCumPercent; float cumd = TotalCumPercent;
List<string> filthlabels = new List<string>(); List<string> filthlabels = new List<string>(cums.Count);
BeforeCumOut(out Absorber absorber); BeforeCumOut(out Absorber absorber);
if (cums.NullOrEmpty()) return; if (cums.NullOrEmpty()) return;
if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f); if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakfactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f);
@ -1045,10 +1045,10 @@ namespace RJW_Menstruation
{ {
if (cums.NullOrEmpty()) return 0; if (cums.NullOrEmpty()) return 0;
float totalleak = 0; float totalleak = 0;
List<string> filthlabels = new List<string>(); List<string> filthlabels = new List<string>(cums.Count);
float outcum = 0; float outcum = 0;
float cumd = TotalCumPercent; float cumd = TotalCumPercent;
HashSet<Cum> removecums = new HashSet<Cum>(); HashSet<Cum> removecums = new HashSet<Cum>(cums.Count);
foreach (Cum cum in cums) foreach (Cum cum in cums)
{ {
float vd = cum.DismishForce(portion); float vd = cum.DismishForce(portion);
@ -1079,8 +1079,8 @@ namespace RJW_Menstruation
if (cums.NullOrEmpty()) return null; if (cums.NullOrEmpty()) return null;
Color color = GetCumMixtureColor; Color color = GetCumMixtureColor;
float totalleak = 0; float totalleak = 0;
List<string> cumlabels = new List<string>(); List<string> cumlabels = new List<string>(cums.Count);
HashSet<Cum> removecums = new HashSet<Cum>(); HashSet<Cum> removecums = new HashSet<Cum>(cums.Count);
bool pure = true; bool pure = true;
foreach (Cum cum in cums) foreach (Cum cum in cums)
{ {
@ -1370,7 +1370,7 @@ namespace RJW_Menstruation
{ {
if (eggs.NullOrEmpty()) return false; if (eggs.NullOrEmpty()) return false;
HashSet<Egg> deadeggs = new HashSet<Egg>(); HashSet<Egg> deadeggs = new HashSet<Egg>(eggs.Count);
bool pregnant = false; bool pregnant = false;
foreach (Egg egg in eggs) foreach (Egg egg in eggs)
{ {
@ -1574,7 +1574,7 @@ namespace RJW_Menstruation
protected void EggDecay() protected void EggDecay()
{ {
HashSet<Egg> deadeggs = new HashSet<Egg>(); HashSet<Egg> deadeggs = new HashSet<Egg>(eggs.Count);
foreach (Egg egg in eggs) foreach (Egg egg in eggs)
{ {
egg.ageTicks += TickInterval * Configurations.CycleAcceleration; egg.ageTicks += TickInterval * Configurations.CycleAcceleration;

View file

@ -87,14 +87,10 @@ namespace RJW_Menstruation
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother); PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
Need_Sex sex_need = mother.needs?.TryGetNeed<Need_Sex>(); Need_Sex sex_need = mother.needs?.TryGetNeed<Need_Sex>();
if (mother.Faction != null && !(mother.Faction?.IsPlayer ?? false) && sex_need != null)
{
sex_need.CurLevel = 1.0f;
}
if (mother.Faction != null) if (mother.Faction != null)
{ {
if (mother.Faction != baby.Faction) if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
baby.SetFaction(mother.Faction); if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
} }
if (mother.IsSlaveOfColony) if (mother.IsSlaveOfColony)
{ {
@ -149,14 +145,10 @@ namespace RJW_Menstruation
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother); PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
Need_Sex sex_need = mother.needs?.TryGetNeed<Need_Sex>(); Need_Sex sex_need = mother.needs?.TryGetNeed<Need_Sex>();
if (mother.Faction != null && !(mother.Faction?.IsPlayer ?? false) && sex_need != null)
{
sex_need.CurLevel = 1.0f;
}
if (mother.Faction != null) if (mother.Faction != null)
{ {
if (mother.Faction != baby.Faction) if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
baby.SetFaction(mother.Faction); if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
} }
Train(baby, mother); Train(baby, mother);

View file

@ -217,7 +217,7 @@ namespace RJW_Menstruation
if (info != null) if (info != null)
{ {
res = info.GetHybridWith(opposite.def.defName) ?? null; res = info.GetHybridWith(opposite.def.defName);
} }
if (res != null) return res; if (res != null) return res;
@ -226,14 +226,14 @@ namespace RJW_Menstruation
dna = first.def.GetModExtension<PawnDNAModExtension>(); dna = first.def.GetModExtension<PawnDNAModExtension>();
if (dna != null) if (dna != null)
{ {
res = dna.GetHybridWith(second.def.defName) ?? null; res = dna.GetHybridWith(second.def.defName);
} }
else else
{ {
dna = second.def.GetModExtension<PawnDNAModExtension>(); dna = second.def.GetModExtension<PawnDNAModExtension>();
if (dna != null) if (dna != null)
{ {
res = dna.GetHybridWith(first.def.defName) ?? null; res = dna.GetHybridWith(first.def.defName);
} }
} }
return res; return res;

View file

@ -25,7 +25,7 @@ namespace RJW_Menstruation
public PawnKindDef GetHybridWith(string race) public PawnKindDef GetHybridWith(string race)
{ {
return GetHybridExtension(race)?.ChooseOne() ?? null; return GetHybridExtension(race)?.ChooseOne();
} }
} }
@ -128,7 +128,7 @@ namespace RJW_Menstruation
public PawnKindDef GetHybridWith(string race) public PawnKindDef GetHybridWith(string race)
{ {
return GetHybridExtension(race)?.ChooseOne() ?? null; return GetHybridExtension(race)?.ChooseOne();
} }
public void ExposeData() public void ExposeData()