Changes to NoBreasts - Split in Nipples and Featureless Chest. Adjusted Logs accordingly

This commit is contained in:
Vegapnk 2023-03-10 08:15:53 +01:00
parent 1b590ba2a2
commit 90204f9134
8 changed files with 113 additions and 18 deletions

View file

@ -1,10 +1,18 @@
# 1.1.1 # 1.1.1
Changes:
- Drastically increased mood-penalty for Fertilin-Loss (if the pawn is still too happy, there will never be a breakdown for missing fertilin)
- No-Breast Genes add Nipples
- Featureless Chest Gene (No Nipples at all, adds the RJW Featureless Chest as requested per some Kobold fetishists)
Fixes: Fixes:
- Small and Big Male Genitalia had images wrong way round - Small and Big Male Genitalia had images wrong way round
- Fertilin should activate at a MinAge of 18 - Fertilin should activate at a MinAge of 18
**Important**: The Fertilin Changes could throw errors! I tested a bit, but not a lot.
So please reach out if you get something and I will try to fix it ASAP.
# 1.1.0 (2023-03-04) # 1.1.0 (2023-03-04)

Binary file not shown.

View file

@ -70,7 +70,7 @@
<GeneDef ParentName="GeneExtraGenitaliaBase"> <GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_no_breasts</defName> <defName>rjw_genes_no_breasts</defName>
<label>no breasts</label> <label>no breasts</label>
<description>Females of this do not have a pair of breasts.</description> <description>Females of this do not have a pair of breasts, but only nipples.</description>
<iconPath>Genes/Icons/No_Breasts</iconPath> <iconPath>Genes/Icons/No_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_NoBreasts</geneClass> <geneClass>RJW_Genes.Gene_NoBreasts</geneClass>
<displayOrderInCategory>706</displayOrderInCategory> <displayOrderInCategory>706</displayOrderInCategory>
@ -106,7 +106,7 @@
<GeneDef ParentName="GeneExtraGenitaliaBase"> <GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_futa</defName> <defName>rjw_genes_futa</defName>
<label>futanari</label> <label>futanari</label>
<description>Males of this xenotype grow additional female genitalia, Females grow additional male genitalia.</description> <description>Males with this gene grow additional female genitalia, females grow additional male genitalia.</description>
<iconPath>Genes/Icons/Futa</iconPath> <iconPath>Genes/Icons/Futa</iconPath>
<geneClass>RJW_Genes.Gene_Futa</geneClass> <geneClass>RJW_Genes.Gene_Futa</geneClass>
<displayOrderInCategory>709</displayOrderInCategory> <displayOrderInCategory>709</displayOrderInCategory>
@ -116,4 +116,16 @@
</exclusionTags> </exclusionTags>
</GeneDef> </GeneDef>
<GeneDef ParentName="GeneExtraGenitaliaBase">
<defName>rjw_genes_featureless_chest</defName>
<label>Featureless Chest</label>
<description>Carriers of this gene do not have breasts or nipples.</description>
<iconPath>Genes/Icons/No_Breasts</iconPath>
<geneClass>RJW_Genes.Gene_FeaturelessChest</geneClass>
<displayOrderInCategory>710</displayOrderInCategory>
<exclusionTags>
<li>BreastAmount</li>
</exclusionTags>
</GeneDef>
</Defs> </Defs>

View file

@ -39,17 +39,17 @@
<li> <li>
<label>fertilin craving</label> <label>fertilin craving</label>
<description>My bones ache. I really need fertilin.</description> <description>My bones ache. I really need fertilin.</description>
<baseMoodEffect>-10</baseMoodEffect> <baseMoodEffect>-25</baseMoodEffect>
</li> </li>
<li> <li>
<label>fertilin craving</label> <label>fertilin craving</label>
<description>This hurts bad and I can't stop thinking about sex. I would do anything for some cum.</description> <description>This hurts bad and I can't stop thinking about sex. I would do anything for some cum.</description>
<baseMoodEffect>-15</baseMoodEffect> <baseMoodEffect>-40</baseMoodEffect>
</li> </li>
<li> <li>
<label>fertilin craving</label> <label>fertilin craving</label>
<description>Can't think. Sex. Sex. Must. Have. Cum.</description> <description>Can't think. Sex. Sex. Must. Have. Cum.</description>
<baseMoodEffect>-20</baseMoodEffect> <baseMoodEffect>-55</baseMoodEffect>
</li> </li>
</stages> </stages>
</ThoughtDef> </ThoughtDef>

View file

@ -54,6 +54,8 @@ Maybe you can also fix it by changing `<DisplayOrderInXenotype>` in the Male/Fem
## Full-No-Genital-Genes get Genitals later ## Full-No-Genital-Genes get Genitals later
*Update: Should be addressed with 1.1.1 and not appear anymore*
Error: I added all "no-XXX" genes but my pawn has genitalia on map! Error: I added all "no-XXX" genes but my pawn has genitalia on map!
Reason: If you go with Full-No-Genitals (No Penis, No Anus, No Breasts, No Vagina) then the pawn spawns without any Genitalia on the map, Reason: If you go with Full-No-Genitals (No Penis, No Anus, No Breasts, No Vagina) then the pawn spawns without any Genitalia on the map,
@ -63,6 +65,8 @@ however then the RJW base-logic runs the sexualizer.
## Log Pops up for Xenotypes with Female/Male Only Gene ## Log Pops up for Xenotypes with Female/Male Only Gene
*Update: Should not appear anymore after 1.1 when used with current rjw versions*
Error: Error:
When using a Xenotype with the Female only gene, upon refresh it can open the log with the following (red) statement: When using a Xenotype with the Female only gene, upon refresh it can open the log with the following (red) statement:

View file

@ -0,0 +1,61 @@
using Verse;
using rjw;
using RimWorld;
namespace RJW_Genes
{
public class Gene_FeaturelessChest : RJW_Gene
{
internal Hediff removed_breasts;
internal Hediff added_nipples;
public override void PostMake()
{
base.PostMake();
if (removed_breasts == null)
{
RemoveButStoreBreasts();
AddFeaturelessBreast();
}
}
public override void PostAdd()
{
base.PostAdd();
if (removed_breasts == null)
{
RemoveButStoreBreasts();
AddFeaturelessBreast();
}
}
public override void PostRemove()
{
base.PostRemove();
if (added_nipples != null)
pawn.health.RemoveHediff(added_nipples);
if (removed_breasts != null)
pawn.health.AddHediff(removed_breasts);
}
internal void RemoveButStoreBreasts()
{
var partBPR = Genital_Helper.get_breastsBPR(pawn);
Hediff breastsToRemove = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x));
if (breastsToRemove != null)
{
removed_breasts = breastsToRemove;
pawn.health.RemoveHediff(breastsToRemove);
}
}
internal void AddFeaturelessBreast()
{
var partBPR = Genital_Helper.get_breastsBPR(pawn);
this.added_nipples = pawn.health.AddHediff(Genital_Helper.featureless_chest, partBPR);
}
}
}

View file

@ -6,18 +6,15 @@ namespace RJW_Genes
{ {
public class Gene_NoBreasts : RJW_Gene public class Gene_NoBreasts : RJW_Gene
{ {
Hediff breastsToShrink;
internal float oldSize = -1f;
internal Hediff removed_breasts;
// TODO: This gene only works if another Gene was set specifying the genitalia.
// If it is added later, it still works, but on creation it needs a different
// TODO: If all Genitalia are removed by genes, RJW adds some to the pawns at spawn. IDEA: Add male-nipples ?
public override void PostMake() public override void PostMake()
{ {
base.PostMake(); base.PostMake();
// Breasts are removed for female pawns! // Breasts are removed for female pawns!
if (GenderUtility.IsFemale(pawn) && removed_breasts == null) if (GenderUtility.IsFemale(pawn) && oldSize < 0)
{ {
RemoveButStoreBreasts(); RemoveButStoreBreasts();
} }
@ -28,7 +25,7 @@ namespace RJW_Genes
base.PostAdd(); base.PostAdd();
// Breasts are removed for female pawns! // Breasts are removed for female pawns!
if (GenderUtility.IsFemale(pawn) && removed_breasts == null) if (GenderUtility.IsFemale(pawn) && oldSize < 0)
{ {
RemoveButStoreBreasts(); RemoveButStoreBreasts();
} }
@ -37,21 +34,33 @@ namespace RJW_Genes
public override void PostRemove() public override void PostRemove()
{ {
base.PostRemove(); base.PostRemove();
if(removed_breasts != null) // Re-Add the old breasts
pawn.health.AddHediff(removed_breasts); if (oldSize != null)
breastsToShrink.Severity = oldSize;
} }
internal void RemoveButStoreBreasts() internal void RemoveButStoreBreasts()
{ {
var partBPR = Genital_Helper.get_breastsBPR(pawn); var partBPR = Genital_Helper.get_breastsBPR(pawn);
Hediff breastsToRemove = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x)); breastsToShrink = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x));
if(breastsToRemove != null) if(breastsToShrink != null)
{ {
removed_breasts = breastsToRemove; oldSize = breastsToShrink.Severity;
pawn.health.RemoveHediff(breastsToRemove); //pawn.health.RemoveHediff(breastsToRemove);
breastsToShrink.Severity = 0f;
} }
} }
/*
/// <summary>
/// Adds a "rjw.featurelesschest", which means nipples but nothing else (like male human pawns do).
/// </summary>
internal void AddFeaturelessBreast()
{
var partBPR = Genital_Helper.get_breastsBPR(pawn);
//this.added_nipples = pawn.health.AddHediff(Genital_Helper.featureless_chest, partBPR);
}
*/
} }
} }

View file

@ -59,6 +59,7 @@
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_ExtraAnus.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_Futa.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraVagina.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_ExtraVagina.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_FeaturelessChest.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_NoBreasts.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_NoBreasts.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_NoAnus.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_NoAnus.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_NoVagina.cs" /> <Compile Include="Genes\ExtraGenitalia\Gene_NoVagina.cs" />