mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Merge 270ff92641
into a685209dc1
This commit is contained in:
commit
4a0172525b
16 changed files with 72 additions and 69 deletions
|
@ -27,11 +27,11 @@ namespace RJW_Genes
|
|||
|
||||
if (pawn == null) return;
|
||||
|
||||
Hediff_PartBaseNatural OvipositorF = (Hediff_PartBaseNatural)pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF);
|
||||
Hediff_NaturalSexPart OvipositorF = (Hediff_NaturalSexPart)pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF);
|
||||
|
||||
if (OvipositorF == null) return;
|
||||
|
||||
OvipositorF.nextEggTick = Math.Max(OvipositorF.nextEggTick - MULTIPLIER, -1);
|
||||
OvipositorF.AsHediff.TryGetComp<HediffComp_Ovipositor>().NewEggCheckInterval = 10000 / MULTIPLIER;
|
||||
|
||||
// DevNote: I first had a for-loop calling OviPositorF.tick(), but I fear that would be a performance sink.
|
||||
// Also, it would double other aspects as well, such as bleeding out through your insect-PP or dropping out the eggs.
|
||||
|
|
|
@ -13,7 +13,7 @@ namespace RJW_Genes
|
|||
|
||||
if (!parts.NullOrEmpty())
|
||||
{
|
||||
CompHediffBodyPart CompHediff;
|
||||
HediffComp_SexPart CompHediff;
|
||||
|
||||
foreach (Hediff part in parts)
|
||||
{
|
||||
|
@ -22,10 +22,10 @@ namespace RJW_Genes
|
|||
|
||||
if (rjw.Genital_Helper.is_penis(part))
|
||||
{
|
||||
CompHediff = part.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
CompHediff = part.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.FluidAmmount *= multiplier;
|
||||
CompHediff.partFluidFactor *= multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ namespace RJW_Genes
|
|||
float total_cum = 0;
|
||||
if (!parts.NullOrEmpty())
|
||||
{
|
||||
CompHediffBodyPart CompHediff;
|
||||
HediffComp_SexPart CompHediff;
|
||||
|
||||
foreach (Hediff part in parts)
|
||||
{
|
||||
|
@ -66,10 +66,10 @@ namespace RJW_Genes
|
|||
|
||||
if (rjw.Genital_Helper.is_penis(part))
|
||||
{
|
||||
CompHediff = part.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
CompHediff = part.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
total_cum += CompHediff.FluidAmmount * CompHediff.FluidModifier * multiplier;
|
||||
total_cum += CompHediff.FluidAmount * CompHediff.Def.fluidMultiplier * multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,11 +58,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_anusBPR(pawn);
|
||||
additional_anus = HediffMaker.MakeHediff(anusDef, pawn);
|
||||
|
||||
var CompHediff = additional_anus.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_anus.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_anus, partBPR);
|
||||
|
|
|
@ -60,11 +60,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_breastsBPR(pawn);
|
||||
additional_breasts = HediffMaker.MakeHediff(breastDef, pawn);
|
||||
|
||||
var CompHediff = additional_breasts.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_breasts.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_breasts, partBPR);
|
||||
|
|
|
@ -60,11 +60,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
|
||||
additional_penis = HediffMaker.MakeHediff(penisDef, pawn);
|
||||
|
||||
var CompHediff = additional_penis.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_penis.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_penis, partBPR);
|
||||
|
|
|
@ -65,11 +65,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
|
||||
additional_vagina = HediffMaker.MakeHediff(vaginaDef, pawn);
|
||||
|
||||
var CompHediff = additional_vagina.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_vagina.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_vagina, partBPR);
|
||||
|
|
|
@ -48,11 +48,11 @@ namespace RJW_Genes
|
|||
HediffDef penisForGene = GenitaliaUtility.GetPenisForGene(GenitaliaUtility.GetGenitaliaTypeGeneForPawn(this.pawn));
|
||||
BodyPartRecord part = Genital_Helper.get_genitalsBPR(this.pawn);
|
||||
this.additional_genital = HediffMaker.MakeHediff(penisForGene, this.pawn, null);
|
||||
CompHediffBodyPart compHediffBodyPart = this.additional_genital.TryGetComp<CompHediffBodyPart>();
|
||||
if (compHediffBodyPart != null)
|
||||
HediffComp_SexPart hediffCompSexPart = this.additional_genital.TryGetComp<HediffComp_SexPart>();
|
||||
if (hediffCompSexPart != null)
|
||||
{
|
||||
compHediffBodyPart.initComp(this.pawn, false);
|
||||
compHediffBodyPart.updatesize(0f);
|
||||
hediffCompSexPart.Init(this.pawn, false);
|
||||
hediffCompSexPart.UpdateSeverity(0f);
|
||||
}
|
||||
this.pawn.health.AddHediff(this.additional_genital, part, null, null);
|
||||
foreach (Gene g in pawn.genes.GenesListForReading)
|
||||
|
|
|
@ -64,11 +64,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
|
||||
additional_genital = HediffMaker.MakeHediff(penisDef, pawn);
|
||||
|
||||
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_genital, partBPR);
|
||||
|
@ -81,11 +81,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_genitalsBPR(pawn);
|
||||
additional_genital = HediffMaker.MakeHediff(vaginaDef, pawn);
|
||||
|
||||
var CompHediff = additional_genital.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_genital.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
pawn.health.AddHediff(additional_genital, partBPR);
|
||||
|
|
|
@ -42,14 +42,14 @@ namespace RJW_Genes
|
|||
|
||||
internal void AddUdders()
|
||||
{
|
||||
CompHediffBodyPart CompHediff = null;
|
||||
BodyPartRecord bpr = Genital_Helper.get_uddersBPR(pawn);
|
||||
HediffComp_SexPart CompHediff = null;
|
||||
BodyPartRecord bpr = Genital_Helper.get_breastsBPR(pawn);
|
||||
added_udders = pawn.health.AddHediff(Genital_Helper.udder_breasts, bpr);
|
||||
added_udders.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
added_udders.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -184,11 +184,11 @@ namespace RJW_Genes
|
|||
var partBPR = Genital_Helper.get_breastsBPR(pawn);
|
||||
var additional_breasts = HediffMaker.MakeHediff(breastDef, pawn,partBPR);
|
||||
|
||||
var CompHediff = additional_breasts.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var CompHediff = additional_breasts.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
|
||||
return additional_breasts;
|
||||
|
|
|
@ -6,13 +6,13 @@ namespace RJW_Genes
|
|||
{
|
||||
public class GenitaliaTypeExtension : DefModExtension
|
||||
{
|
||||
public HediffDef_PartBase penis;
|
||||
public HediffDef_SexPart penis;
|
||||
|
||||
public HediffDef_PartBase vagina;
|
||||
public HediffDef_SexPart vagina;
|
||||
|
||||
public HediffDef_PartBase anus;
|
||||
public HediffDef_SexPart anus;
|
||||
|
||||
public HediffDef_PartBase breasts;
|
||||
public HediffDef_SexPart breasts;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace RJW_Genes
|
|||
if (!oldParts.NullOrEmpty())
|
||||
{
|
||||
Hediff replacementGenital;
|
||||
CompHediffBodyPart CompHediff;
|
||||
HediffComp_SexPart CompHediff;
|
||||
|
||||
foreach (Hediff existingGenital in oldParts)
|
||||
{
|
||||
|
@ -55,11 +55,11 @@ namespace RJW_Genes
|
|||
|
||||
if (replacementGenital != null)
|
||||
{
|
||||
CompHediff = replacementGenital.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
CompHediff = replacementGenital.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.initComp(pawn);
|
||||
CompHediff.updatesize();
|
||||
CompHediff.Init(pawn);
|
||||
CompHediff.UpdateSeverity();
|
||||
}
|
||||
GenderHelper.ChangeSex(pawn, () =>
|
||||
{
|
||||
|
@ -80,16 +80,18 @@ namespace RJW_Genes
|
|||
public static bool IsAnus(Hediff candidate)
|
||||
{
|
||||
return candidate.def.defName.ToLower().Contains("anus"); }
|
||||
|
||||
private static bool is_breast_family(GenitalFamily family) => family switch
|
||||
{
|
||||
GenitalFamily.Breasts => true,
|
||||
_ => false
|
||||
};
|
||||
|
||||
|
||||
public static bool is_breast(Hediff hed)
|
||||
{
|
||||
if (!GenitalPartExtension.TryGet(hed, out var ext))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return ext.family == rjw.Modules.Interactions.Enums.GenitalFamily.Breasts;
|
||||
if (hed.def is not HediffDef_SexPart def) return false;
|
||||
return is_breast_family(def.genitalFamily);
|
||||
}
|
||||
|
||||
public static bool IsArtificial(Hediff candidate)
|
||||
|
|
|
@ -94,11 +94,11 @@ namespace RJW_Genes
|
|||
|
||||
// On a draw of size, we check the body-size.
|
||||
if (part.Severity == best.Severity) {
|
||||
var partSize = part.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var bestSize = part.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
var partSize = part.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
var bestSize = part.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (partSize == null || bestSize == null) { continue; }
|
||||
|
||||
best = partSize.SizeOwner > bestSize.SizeOwner ? part : best;
|
||||
best = partSize.originalOwnerSize > bestSize.originalOwnerSize ? part : best;
|
||||
} else if (part.Severity > best.Severity) {
|
||||
best = part;
|
||||
}
|
||||
|
@ -110,10 +110,10 @@ namespace RJW_Genes
|
|||
|
||||
public static float GetBodySizeOfSexPart(Hediff part)
|
||||
{
|
||||
if (part == null || part.TryGetComp<rjw.CompHediffBodyPart>() == null)
|
||||
if (part == null || part.TryGetComp<rjw.HediffComp_SexPart>() == null)
|
||||
return 0.0f;
|
||||
else
|
||||
return part.TryGetComp<rjw.CompHediffBodyPart>().SizeOwner;
|
||||
return part.TryGetComp<rjw.HediffComp_SexPart>().originalOwnerSize;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -30,15 +30,15 @@ namespace RJW_Genes
|
|||
List<Hediff> AllPenisses = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_penis(x));
|
||||
foreach(Hediff penis in AllPenisses)
|
||||
{
|
||||
CompHediffBodyPart CompHediff = penis.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
HediffComp_SexPart CompHediff = penis.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (penis.Severity < 1.00)
|
||||
{
|
||||
penis.Severity = Math.Min(1.01f, penis.Severity + 0.05f);
|
||||
} else {
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.SizeOwner += 0.015f;
|
||||
if (CompHediff.SizeOwner > 3.0f)
|
||||
CompHediff.originalOwnerSize += 0.015f;
|
||||
if (CompHediff.originalOwnerSize > 3.0f)
|
||||
{
|
||||
// Add Mental Hediff
|
||||
HandleGenitaliaSizeThoughts(pawn);
|
||||
|
@ -48,7 +48,7 @@ namespace RJW_Genes
|
|||
|
||||
// Increase Fluid
|
||||
if (CompHediff != null)
|
||||
CompHediff.FluidAmmount *= 1.05f;
|
||||
CompHediff.partFluidFactor *= 1.05f;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ namespace RJW_Genes
|
|||
List<Hediff> AllVaginas = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_vagina(x));
|
||||
foreach (Hediff vagina in AllVaginas)
|
||||
{
|
||||
CompHediffBodyPart CompHediff = vagina.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
HediffComp_SexPart CompHediff = vagina.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (vagina.Severity < 1.00)
|
||||
{
|
||||
vagina.Severity = Math.Min(1.01f, vagina.Severity + 0.05f);
|
||||
|
@ -66,8 +66,8 @@ namespace RJW_Genes
|
|||
{
|
||||
if (CompHediff != null)
|
||||
{
|
||||
CompHediff.SizeOwner += 0.015f;
|
||||
if (CompHediff.SizeOwner > 3.0f)
|
||||
CompHediff.originalOwnerSize += 0.015f;
|
||||
if (CompHediff.originalOwnerSize > 3.0f)
|
||||
{
|
||||
// Add Mental Hediff
|
||||
HandleGenitaliaSizeThoughts(pawn);
|
||||
|
@ -77,7 +77,7 @@ namespace RJW_Genes
|
|||
|
||||
// Increase Fluid
|
||||
if (CompHediff != null)
|
||||
CompHediff.FluidAmmount *= 1.025f;
|
||||
CompHediff.partFluidFactor *= 1.025f;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -52,22 +52,22 @@ namespace RJW_Genes
|
|||
List<Hediff> AllPenisses = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_penis(x));
|
||||
foreach (Hediff penis in AllPenisses)
|
||||
{
|
||||
CompHediffBodyPart CompHediff = penis.TryGetComp<rjw.CompHediffBodyPart>();
|
||||
HediffComp_SexPart CompHediff = penis.TryGetComp<rjw.HediffComp_SexPart>();
|
||||
if (penis.Severity < 1.00)
|
||||
{
|
||||
penis.Severity = Math.Min(1.01f, penis.Severity + size_increment);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (CompHediff != null && CompHediff.SizeOwner <= maximum_body_size)
|
||||
if (CompHediff != null && CompHediff.originalOwnerSize <= maximum_body_size)
|
||||
{
|
||||
CompHediff.SizeOwner += size_increment;
|
||||
CompHediff.originalOwnerSize += size_increment;
|
||||
}
|
||||
}
|
||||
|
||||
// Increase Fluid
|
||||
if (CompHediff != null)
|
||||
CompHediff.FluidAmmount *= cum_multiplier;
|
||||
CompHediff.partFluidFactor *= cum_multiplier;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<TargetFrameworkProfile />
|
||||
<LangVersion>9</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>none</DebugType>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue