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 totalleak = 0f;
float cumd = TotalCumPercent;
List<string> filthlabels = new List<string>();
List<string> filthlabels = new List<string>(cums.Count);
BeforeCumOut(out Absorber absorber);
if (cums.NullOrEmpty()) return;
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;
float totalleak = 0;
List<string> filthlabels = new List<string>();
List<string> filthlabels = new List<string>(cums.Count);
float outcum = 0;
float cumd = TotalCumPercent;
HashSet<Cum> removecums = new HashSet<Cum>();
HashSet<Cum> removecums = new HashSet<Cum>(cums.Count);
foreach (Cum cum in cums)
{
float vd = cum.DismishForce(portion);
@ -1079,8 +1079,8 @@ namespace RJW_Menstruation
if (cums.NullOrEmpty()) return null;
Color color = GetCumMixtureColor;
float totalleak = 0;
List<string> cumlabels = new List<string>();
HashSet<Cum> removecums = new HashSet<Cum>();
List<string> cumlabels = new List<string>(cums.Count);
HashSet<Cum> removecums = new HashSet<Cum>(cums.Count);
bool pure = true;
foreach (Cum cum in cums)
{
@ -1370,7 +1370,7 @@ namespace RJW_Menstruation
{
if (eggs.NullOrEmpty()) return false;
HashSet<Egg> deadeggs = new HashSet<Egg>();
HashSet<Egg> deadeggs = new HashSet<Egg>(eggs.Count);
bool pregnant = false;
foreach (Egg egg in eggs)
{
@ -1574,7 +1574,7 @@ namespace RJW_Menstruation
protected void EggDecay()
{
HashSet<Egg> deadeggs = new HashSet<Egg>();
HashSet<Egg> deadeggs = new HashSet<Egg>(eggs.Count);
foreach (Egg egg in eggs)
{
egg.ageTicks += TickInterval * Configurations.CycleAcceleration;

View File

@ -87,14 +87,10 @@ namespace RJW_Menstruation
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
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 != baby.Faction)
baby.SetFaction(mother.Faction);
if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
}
if (mother.IsSlaveOfColony)
{
@ -149,14 +145,10 @@ namespace RJW_Menstruation
PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
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 != baby.Faction)
baby.SetFaction(mother.Faction);
if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
}
Train(baby, mother);

View File

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

View File

@ -25,7 +25,7 @@ namespace RJW_Menstruation
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)
{
return GetHybridExtension(race)?.ChooseOne() ?? null;
return GetHybridExtension(race)?.ChooseOne();
}
public void ExposeData()