mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Compare commits
	
		
			6 commits
		
	
	
		
			ebf7efb730
			...
			75950b6864
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
							 | 
						75950b6864 | ||
| 
							 | 
						3f6904aa8e | ||
| 
							 | 
						980458e4fa | ||
| 
							 | 
						991edfdff0 | ||
| 
							 | 
						832c3aa0b8 | ||
| 
							 | 
						7339bd41a1 | 
					 16 changed files with 265 additions and 194 deletions
				
			
		
							
								
								
									
										22
									
								
								CHANGELOG.md
									
										
									
									
									
								
							
							
						
						
									
										22
									
								
								CHANGELOG.md
									
										
									
									
									
								
							| 
						 | 
					@ -22,6 +22,8 @@ Most of the genes so far were positive or neutral,
 | 
				
			||||||
so I got some fair requests to introduce negative genes to keep xenotypes balanced. 
 | 
					so I got some fair requests to introduce negative genes to keep xenotypes balanced. 
 | 
				
			||||||
I know that this is some overlap with the STD mod, but well ... you are free to turn things off? 
 | 
					I know that this is some overlap with the STD mod, but well ... you are free to turn things off? 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In theory, you can specify and gene of any kind to be spreadable by sex, not only ones written by this mod. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Genetic Infectors**:
 | 
					**Genetic Infectors**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
These Genes can apply a genetic disease, but are not genetic diseases themselves. 
 | 
					These Genes can apply a genetic disease, but are not genetic diseases themselves. 
 | 
				
			||||||
| 
						 | 
					@ -80,12 +82,20 @@ but they are meant mostly to have infectors immune against their own diseases.
 | 
				
			||||||
- Gene: Hardwired Progenity. Pawns with this get a malus on having no-children, and bonus on having a lot. 
 | 
					- Gene: Hardwired Progenity. Pawns with this get a malus on having no-children, and bonus on having a lot. 
 | 
				
			||||||
- Gene: Sexual Genetic Swap. Pawns have a chance to switch a random gene with their sexpartner. 
 | 
					- Gene: Sexual Genetic Swap. Pawns have a chance to switch a random gene with their sexpartner. 
 | 
				
			||||||
- (Archite) Gene: Sexual Genetic Thief. Pawns have a chance to steal a gene from their sexpartner. Genetic Disease Immunity shields against this. 
 | 
					- (Archite) Gene: Sexual Genetic Thief. Pawns have a chance to steal a gene from their sexpartner. Genetic Disease Immunity shields against this. 
 | 
				
			||||||
 | 
					- Gene: Sperm Displacement. Pawns might overwrite an existing pregnancy, becoming the new father. The pregnancy will stay in its gestation progress.
 | 
				
			||||||
- Pawns will have negative thoughts about pawns with more genetic diseases than themselves. 
 | 
					- Pawns will have negative thoughts about pawns with more genetic diseases than themselves. 
 | 
				
			||||||
- Faction Penalties for spreading diseases, stealing genes and aging pawns with age transfer
 | 
					- Faction Penalties for spreading diseases, stealing genes and aging pawns with age transfer
 | 
				
			||||||
 | 
					- Patch  for [Imphilee Xeno](https://steamcommunity.com/sharedfiles/filedetails/?id=2990674516) by @Bunuffin
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Changes**::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Cum-Amount-Changing genes now are XML Adjustable and share a single `.cs`-class
 | 
				
			||||||
 | 
					- Incubi are now Bisexual too, as they should be. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Fixes:**
 | 
					**Fixes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- Fixed an Issue where pawns would always get the Pheromone social boost, unless they had the pheromone (#113)
 | 
					- Fixed an Issue where pawns would always get the Pheromone social boost, unless they had the pheromone (#113)
 | 
				
			||||||
 | 
					- Fixed two hidden dependencies on Ideology and Royalty (#115)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Internal:**
 | 
					**Internal:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -93,6 +103,18 @@ but they are meant mostly to have infectors immune against their own diseases.
 | 
				
			||||||
- Introduced a `ModLog.Debug` Function that checks for the settings before printing - trying to spread it over the whole project. 
 | 
					- Introduced a `ModLog.Debug` Function that checks for the settings before printing - trying to spread it over the whole project. 
 | 
				
			||||||
- Removed TODO File. I have enough to do. 
 | 
					- Removed TODO File. I have enough to do. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**Notes:**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The changes to the cum-gene will give a 1-time warning on loading the save. The warning looks like this: 
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					Could not find class RJW_Genes.Gene_MuchCum while resolving node li. Trying to use Verse.Gene instead. Full node: <li Class="RJW_Genes.Gene_MuchCum"><def>rjw_genes_much_cum</def><pawn>Thing_Human697</pawn><overriddenByGene>null</overriddenByGene><loadID>82</loadID></li>
 | 
				
			||||||
 | 
					UnityEngine.StackTraceUtility:ExtractStackTrace ()
 | 
				
			||||||
 | 
					Verse.Log:Error (string)
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This is not dangerous.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 2.1.0 (27-06-2024)
 | 
					# 2.1.0 (27-06-2024)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**Additions**:
 | 
					**Additions**:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,15 +153,4 @@
 | 
				
			||||||
    <biostatMet>0</biostatMet>
 | 
					    <biostatMet>0</biostatMet>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <GeneDef ParentName="BreedingBase">
 | 
					 | 
				
			||||||
    <defName>rjw_genes_pregnancy_overwrite</defName>
 | 
					 | 
				
			||||||
    <label>Sperm Displacement</label>
 | 
					 | 
				
			||||||
    <description>Carriers of this gene can 'overwrite' an existing pregnancy, keeping the progress but effectively replacing the father.</description>
 | 
					 | 
				
			||||||
    <iconPath>Genes/Icons/RJW_Genes_PheromoneSpit</iconPath>
 | 
					 | 
				
			||||||
    <displayOrderInCategory>75</displayOrderInCategory>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <biostatCpx>4</biostatCpx>
 | 
					 | 
				
			||||||
    <biostatMet>-2</biostatMet>
 | 
					 | 
				
			||||||
  </GeneDef>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -21,10 +21,15 @@
 | 
				
			||||||
    <label>no cum</label>
 | 
					    <label>no cum</label>
 | 
				
			||||||
    <description>Males of these species have no fluid.</description>
 | 
					    <description>Males of these species have no fluid.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/No_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/No_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_NoCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>533</displayOrderInCategory>
 | 
					    <displayOrderInCategory>533</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>0</biostatCpx>
 | 
					    <biostatCpx>0</biostatCpx>
 | 
				
			||||||
    <biostatMet>1</biostatMet>
 | 
					    <biostatMet>1</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>0.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <GeneDef ParentName="GeneCumAmount">
 | 
					  <GeneDef ParentName="GeneCumAmount">
 | 
				
			||||||
| 
						 | 
					@ -32,10 +37,15 @@
 | 
				
			||||||
    <label>much cum</label>
 | 
					    <label>much cum</label>
 | 
				
			||||||
    <description>Males of this species produce a lot of fluid.</description>
 | 
					    <description>Males of this species produce a lot of fluid.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Much_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/Much_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_MuchCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>534</displayOrderInCategory>
 | 
					    <displayOrderInCategory>534</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>1</biostatCpx>
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
    <biostatMet>-1</biostatMet>
 | 
					    <biostatMet>0</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>3.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <GeneDef ParentName="GeneCumAmount">
 | 
					  <GeneDef ParentName="GeneCumAmount">
 | 
				
			||||||
| 
						 | 
					@ -44,10 +54,15 @@
 | 
				
			||||||
    <description>Males of this species produce a whole lot of fluid. They are like fountains
 | 
					    <description>Males of this species produce a whole lot of fluid. They are like fountains
 | 
				
			||||||
      basically.</description>
 | 
					      basically.</description>
 | 
				
			||||||
    <iconPath>Genes/Icons/Very_Much_Cum</iconPath>
 | 
					    <iconPath>Genes/Icons/Very_Much_Cum</iconPath>
 | 
				
			||||||
    <geneClass>RJW_Genes.Gene_VeryMuchCum</geneClass>
 | 
					    <geneClass>RJW_Genes.Gene_ChangeCumAmount</geneClass>
 | 
				
			||||||
    <displayOrderInCategory>535</displayOrderInCategory>
 | 
					    <displayOrderInCategory>535</displayOrderInCategory>
 | 
				
			||||||
    <biostatCpx>1</biostatCpx>
 | 
					    <biostatCpx>1</biostatCpx>
 | 
				
			||||||
    <biostatMet>-2</biostatMet>
 | 
					    <biostatMet>-1</biostatMet>
 | 
				
			||||||
 | 
					    <modExtensions>
 | 
				
			||||||
 | 
					      <li Class="RJW_Genes.MultiplierExtension">
 | 
				
			||||||
 | 
					        <multiplier>15.0</multiplier>
 | 
				
			||||||
 | 
					      </li>
 | 
				
			||||||
 | 
					    </modExtensions>
 | 
				
			||||||
  </GeneDef>
 | 
					  </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -115,7 +115,6 @@
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
        </forcedTraits>
 | 
					        </forcedTraits>
 | 
				
			||||||
        <exclusionTags>
 | 
					        <exclusionTags>
 | 
				
			||||||
            
 | 
					 | 
				
			||||||
            <li>rjw_genes_homosexuality_trait_giver</li>
 | 
					            <li>rjw_genes_homosexuality_trait_giver</li>
 | 
				
			||||||
            <li>rjw_genes_sexual_orientation</li>
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
| 
						 | 
					@ -144,7 +143,7 @@
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
        </forcedTraits>
 | 
					        </forcedTraits>
 | 
				
			||||||
        <exclusionTags>
 | 
					        <exclusionTags>
 | 
				
			||||||
            <li>rjw_genes_sexual_orientation</li>        
 | 
					            <li>rjw_genes_sexual_orientation</li>
 | 
				
			||||||
            <li>rjw_genes_bisexuality_trait_giver</li>
 | 
					            <li>rjw_genes_bisexuality_trait_giver</li>
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -207,4 +206,28 @@
 | 
				
			||||||
        </exclusionTags>
 | 
					        </exclusionTags>
 | 
				
			||||||
    </GeneDef>
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <GeneDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_pregnancy_overwrite</defName>
 | 
				
			||||||
 | 
					        <label>Sperm Displacement</label>
 | 
				
			||||||
 | 
					        <displayCategory>Reproduction</displayCategory>
 | 
				
			||||||
 | 
					        <description>Carriers of this gene can 'overwrite' an existing pregnancy, keeping the
 | 
				
			||||||
 | 
					            progress but effectively replacing the father.</description>
 | 
				
			||||||
 | 
					        <iconPath>Genes/Icons/RJW_Genes_PheromoneSpit</iconPath>
 | 
				
			||||||
 | 
					        <displayOrderInCategory>120</displayOrderInCategory>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <biostatCpx>4</biostatCpx>
 | 
				
			||||||
 | 
					        <biostatMet>-2</biostatMet>
 | 
				
			||||||
 | 
					        <modExtensions>
 | 
				
			||||||
 | 
					            <!-- DevNote: The chance will be multiplied by both pawns' Fertility! -->
 | 
				
			||||||
 | 
					            <li Class="RJW_Genes.ChanceExtension">
 | 
				
			||||||
 | 
					                <chance>0.5</chance>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					            <li MayRequire="OskarPotocki.VanillaFactionsExpanded.Core"
 | 
				
			||||||
 | 
					                Class="VanillaGenesExpanded.GeneExtension">
 | 
				
			||||||
 | 
					                <backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
 | 
				
			||||||
 | 
					                <backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					        </modExtensions>
 | 
				
			||||||
 | 
					    </GeneDef>
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -75,6 +75,7 @@
 | 
				
			||||||
    </doubleXenotypeChances>
 | 
					    </doubleXenotypeChances>
 | 
				
			||||||
    <genes>
 | 
					    <genes>
 | 
				
			||||||
      <li>rjw_genes_hypersexual</li>
 | 
					      <li>rjw_genes_hypersexual</li>
 | 
				
			||||||
 | 
					      <li>rjw_genes_bisexual</li>
 | 
				
			||||||
      <li>rjw_genes_male_only</li>
 | 
					      <li>rjw_genes_male_only</li>
 | 
				
			||||||
      <li>rjw_genes_lifeforce</li>
 | 
					      <li>rjw_genes_lifeforce</li>
 | 
				
			||||||
      <li>rjw_genes_lifeforce_drain</li>
 | 
					      <li>rjw_genes_lifeforce_drain</li>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8" ?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Defs>
 | 
					<Defs>
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	<HediffDef>
 | 
						<HediffDef>
 | 
				
			||||||
		<defName>rjw_genes_fertilin_lost</defName>
 | 
							<defName>rjw_genes_fertilin_lost</defName>
 | 
				
			||||||
		<hediffClass>Hediff_HemogenCraving</hediffClass>
 | 
							<hediffClass>Hediff_HemogenCraving</hediffClass>
 | 
				
			||||||
| 
						 | 
					@ -19,12 +19,13 @@
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
		</stages>
 | 
							</stages>
 | 
				
			||||||
	</HediffDef>
 | 
						</HediffDef>
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	<HediffDef>
 | 
						<HediffDef>
 | 
				
			||||||
		<defName>rjw_genes_succubus_drained</defName>
 | 
							<defName>rjw_genes_succubus_drained</defName>
 | 
				
			||||||
		<hediffClass>HediffWithComps</hediffClass>
 | 
							<hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
		<label>Drained</label>
 | 
							<label>Drained</label>
 | 
				
			||||||
		<description>The vitality of this pawn has been drained. Cannot be drained again until fully recovered.</description>
 | 
							<description>The vitality of this pawn has been drained. Cannot be drained again until fully
 | 
				
			||||||
 | 
								recovered.</description>
 | 
				
			||||||
		<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
 | 
							<defaultLabelColor>(1,0,0.5)</defaultLabelColor>
 | 
				
			||||||
		<maxSeverity>1.0</maxSeverity>
 | 
							<maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
		<initialSeverity>1.0</initialSeverity>
 | 
							<initialSeverity>1.0</initialSeverity>
 | 
				
			||||||
| 
						 | 
					@ -74,13 +75,13 @@
 | 
				
			||||||
				<statOffsets>
 | 
									<statOffsets>
 | 
				
			||||||
					<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
 | 
										<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
 | 
				
			||||||
				</statOffsets>
 | 
									</statOffsets>
 | 
				
			||||||
        		<vomitMtbDays>0.4</vomitMtbDays>
 | 
									<vomitMtbDays>0.4</vomitMtbDays>
 | 
				
			||||||
				<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
 | 
									<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
 | 
				
			||||||
				<restFallFactorOffset>0.35</restFallFactorOffset>
 | 
									<restFallFactorOffset>0.35</restFallFactorOffset>
 | 
				
			||||||
			</li>
 | 
								</li>
 | 
				
			||||||
		</stages>
 | 
							</stages>
 | 
				
			||||||
	</HediffDef>
 | 
						</HediffDef>
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	<HediffDef>
 | 
						<HediffDef>
 | 
				
			||||||
		<defName>rjw_genes_fertilin_craving</defName>
 | 
							<defName>rjw_genes_fertilin_craving</defName>
 | 
				
			||||||
		<label>fertilin craving</label>
 | 
							<label>fertilin craving</label>
 | 
				
			||||||
| 
						 | 
					@ -90,77 +91,78 @@
 | 
				
			||||||
		<maxSeverity>1.0</maxSeverity>
 | 
							<maxSeverity>1.0</maxSeverity>
 | 
				
			||||||
		<initialSeverity>0.01</initialSeverity>
 | 
							<initialSeverity>0.01</initialSeverity>
 | 
				
			||||||
		<stages>
 | 
							<stages>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>minor</label>
 | 
									<label>minor</label>
 | 
				
			||||||
			<painOffset>0.05</painOffset>
 | 
									<painOffset>0.05</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.9</setMax>
 | 
											<setMax>0.9</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>moderate</label>
 | 
									<label>moderate</label>
 | 
				
			||||||
			<minSeverity>0.35</minSeverity>
 | 
									<minSeverity>0.35</minSeverity>
 | 
				
			||||||
			<painOffset>0.1</painOffset>
 | 
									<painOffset>0.1</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.8</setMax>
 | 
											<setMax>0.8</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		  <li>
 | 
								<li>
 | 
				
			||||||
			<label>major</label>
 | 
									<label>major</label>
 | 
				
			||||||
			<minSeverity>0.7</minSeverity>
 | 
									<minSeverity>0.7</minSeverity>
 | 
				
			||||||
			<painOffset>0.15</painOffset>
 | 
									<painOffset>0.15</painOffset>
 | 
				
			||||||
			<capMods>
 | 
									<capMods>
 | 
				
			||||||
			  <li>
 | 
										<li>
 | 
				
			||||||
				<capacity>Consciousness</capacity>
 | 
											<capacity>Consciousness</capacity>
 | 
				
			||||||
				<setMax>0.5</setMax>
 | 
											<setMax>0.5</setMax>
 | 
				
			||||||
			  </li>
 | 
										</li>
 | 
				
			||||||
			</capMods>
 | 
									</capMods>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		</stages>
 | 
							</stages>
 | 
				
			||||||
		<comps>
 | 
							<comps>
 | 
				
			||||||
		  <li Class="RJW_Genes.HediffCompProperties_SeverityFromFertilin">
 | 
								<li Class="RJW_Genes.HediffCompProperties_SeverityFromFertilin">
 | 
				
			||||||
			<severityPerHourEmpty>0.05</severityPerHourEmpty>
 | 
									<severityPerHourEmpty>0.05</severityPerHourEmpty>
 | 
				
			||||||
			<severityPerHourHemogen>-0.1</severityPerHourHemogen>
 | 
									<severityPerHourHemogen>-0.1</severityPerHourHemogen>
 | 
				
			||||||
		  </li>
 | 
								</li>
 | 
				
			||||||
		</comps>
 | 
							</comps>
 | 
				
			||||||
	</HediffDef>
 | 
						</HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <HediffDef ParentName="RoleStatBuff">
 | 
						<HediffDef>
 | 
				
			||||||
    <defName>rjw_genes_naked_prowess</defName>
 | 
							<defName>rjw_genes_naked_prowess</defName>
 | 
				
			||||||
    <label>naked prowss</label>
 | 
							<defaultLabelColor>(0.52, 1, 0.95)</defaultLabelColor>
 | 
				
			||||||
    <description>Driven by fertilin, this person has greatly increased strength and resilience.</description>
 | 
							<label>naked prowss</label>
 | 
				
			||||||
    <hediffClass>HediffWithComps</hediffClass>
 | 
							<description>Driven by fertilin, this person has greatly increased strength and resilience.</description>
 | 
				
			||||||
    <stages>
 | 
							<hediffClass>HediffWithComps</hediffClass>
 | 
				
			||||||
      <li>
 | 
							<stages>
 | 
				
			||||||
		<!--Maybe a bit to much, but they are supposed to be strong-->
 | 
								<li>
 | 
				
			||||||
        <statOffsets>
 | 
									<!--Maybe
 | 
				
			||||||
          <ArmorRating_Sharp>0.5</ArmorRating_Sharp>
 | 
									a bit to much, but they are supposed to be strong-->
 | 
				
			||||||
          <ArmorRating_Blunt>0.5</ArmorRating_Blunt>
 | 
									<statOffsets>
 | 
				
			||||||
          <ArmorRating_Heat>0.5</ArmorRating_Heat>
 | 
										<ArmorRating_Sharp>0.5</ArmorRating_Sharp>
 | 
				
			||||||
<!--		  <Insulation_Cold>10</Insulation_Cold>
 | 
										<ArmorRating_Blunt>0.5</ArmorRating_Blunt>
 | 
				
			||||||
		  <Insulation_Heat>10</Insulation_Heat> -->
 | 
										<ArmorRating_Heat>0.5</ArmorRating_Heat>
 | 
				
			||||||
        </statOffsets>
 | 
									</statOffsets>
 | 
				
			||||||
		<statFactors>
 | 
									<statFactors>
 | 
				
			||||||
		  <IncomingDamageFactor>0.5</IncomingDamageFactor>
 | 
										<IncomingDamageFactor>0.5</IncomingDamageFactor>
 | 
				
			||||||
		  <MeleeDamageFactor>1.5</MeleeDamageFactor>
 | 
										<MeleeDamageFactor>1.5</MeleeDamageFactor>
 | 
				
			||||||
		</statFactors>
 | 
									</statFactors>
 | 
				
			||||||
      </li>
 | 
								</li>
 | 
				
			||||||
    </stages>
 | 
							</stages>
 | 
				
			||||||
    <comps>
 | 
							<comps>
 | 
				
			||||||
      <li Class="HediffCompProperties_Disappears">
 | 
								<li Class="HediffCompProperties_Disappears">
 | 
				
			||||||
        <showRemainingTime>True</showRemainingTime>
 | 
									<showRemainingTime>True</showRemainingTime>
 | 
				
			||||||
        <disappearsAfterTicks>5000</disappearsAfterTicks> <!-- 2 hours -->
 | 
									<disappearsAfterTicks>5000</disappearsAfterTicks> <!-- 2 hours -->
 | 
				
			||||||
      </li>
 | 
								</li>
 | 
				
			||||||
      <li Class="HediffCompProperties_DisappearsOnDeath"/>
 | 
								<li Class="HediffCompProperties_DisappearsOnDeath" />
 | 
				
			||||||
	  <!--TODO: Make hediff disappear if pawn is nolonger naked-->
 | 
								<!--TODO:
 | 
				
			||||||
    </comps>
 | 
								Make hediff disappear if pawn is nolonger naked-->
 | 
				
			||||||
    <isBad>false</isBad>
 | 
							</comps>
 | 
				
			||||||
  </HediffDef>
 | 
							<isBad>false</isBad>
 | 
				
			||||||
 | 
						</HediffDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
| 
						 | 
					@ -13,7 +13,7 @@
 | 
				
			||||||
      <li>
 | 
					      <li>
 | 
				
			||||||
        <minSeverity>0</minSeverity>
 | 
					        <minSeverity>0</minSeverity>
 | 
				
			||||||
        <statOffsets>
 | 
					        <statOffsets>
 | 
				
			||||||
          <SlaveSuppressionOffset>0.40</SlaveSuppressionOffset>
 | 
					          <SlaveSuppressionOffset MayRequire="Ideology">0.40</SlaveSuppressionOffset>
 | 
				
			||||||
          <Vulnerability>3.0</Vulnerability>
 | 
					          <Vulnerability>3.0</Vulnerability>
 | 
				
			||||||
        </statOffsets>
 | 
					        </statOffsets>
 | 
				
			||||||
        <capMods>
 | 
					        <capMods>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,4 +10,9 @@
 | 
				
			||||||
        <label>Youthed a pawn with youth fountain</label>
 | 
					        <label>Youthed a pawn with youth fountain</label>
 | 
				
			||||||
    </HistoryEventDef>
 | 
					    </HistoryEventDef>
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					    <HistoryEventDef>
 | 
				
			||||||
 | 
					        <defName>rjw_genes_GoodwillChangedReason_OverwritePregnancy</defName>
 | 
				
			||||||
 | 
					        <label>Replaced a pregnancy</label>
 | 
				
			||||||
 | 
					    </HistoryEventDef>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</Defs>
 | 
					</Defs>
 | 
				
			||||||
							
								
								
									
										36
									
								
								Common/Patches/Xenotypes/PatchImphileeXeno.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								Common/Patches/Xenotypes/PatchImphileeXeno.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,36 @@
 | 
				
			||||||
 | 
					<?xml version="1.0" encoding="utf-8" ?>
 | 
				
			||||||
 | 
					<Patch>
 | 
				
			||||||
 | 
					<Operation Class="PatchOperationSequence">
 | 
				
			||||||
 | 
					    <operations>
 | 
				
			||||||
 | 
					        <li Class="PatchOperationFindMod">
 | 
				
			||||||
 | 
					            <mods>
 | 
				
			||||||
 | 
					                <li>Imphilee Xeno</li>
 | 
				
			||||||
 | 
					            </mods>
 | 
				
			||||||
 | 
					            <match Class="PatchOperationAdd">
 | 
				
			||||||
 | 
					                <xpath>Defs/XenotypeDef[defName="LD_Imphilee"]/genes</xpath>
 | 
				
			||||||
 | 
					                <value>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_tight_female_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_breasts</li>
 | 
				
			||||||
 | 
					                    <li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_demonic_genitalia</li>
 | 
				
			||||||
 | 
					                </value>
 | 
				
			||||||
 | 
					            </match>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					        <li Class="PatchOperationFindMod">
 | 
				
			||||||
 | 
					            <mods>
 | 
				
			||||||
 | 
					                <li>Imphilee Xeno</li>
 | 
				
			||||||
 | 
					            </mods>
 | 
				
			||||||
 | 
					            <match Class="PatchOperationAdd">
 | 
				
			||||||
 | 
					                <xpath>Defs/XenotypeDef[defName="LD_Imphilee_Overlord"]/genes</xpath>
 | 
				
			||||||
 | 
					                <value>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_tight_female_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_small_breasts</li>
 | 
				
			||||||
 | 
					                    <li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_demonic_genitalia</li>
 | 
				
			||||||
 | 
					                    <li>rjw_genes_rapist</li>
 | 
				
			||||||
 | 
					                </value>
 | 
				
			||||||
 | 
					            </match>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					    </operations>
 | 
				
			||||||
 | 
					</Operation>
 | 
				
			||||||
 | 
					</Patch>
 | 
				
			||||||
							
								
								
									
										14
									
								
								Source/Common/Defs/MultiplierExtension.cs
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Source/Common/Defs/MultiplierExtension.cs
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					using System;
 | 
				
			||||||
 | 
					using System.Collections.Generic;
 | 
				
			||||||
 | 
					using System.Linq;
 | 
				
			||||||
 | 
					using System.Text;
 | 
				
			||||||
 | 
					using System.Threading.Tasks;
 | 
				
			||||||
 | 
					using Verse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace RJW_Genes
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public class MultiplierExtension : DefModExtension
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        public float multiplier;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -34,8 +34,23 @@ namespace RJW_Genes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Get total fluidamount a person has.
 | 
							/// <summary>
 | 
				
			||||||
		public static float GetTotalFluidAmount(Pawn pawn, float multiplier = 1f)
 | 
							/// Looks up the "MultiplierExtensions" Value for a given Gene, with a fall back. 
 | 
				
			||||||
 | 
							/// Returns the fallback if there is no Extension, or if the Multiplier is smaller than 0. 
 | 
				
			||||||
 | 
							/// </summary>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public static float LookupCumMultiplier(Gene gene, float FALLBACK = 3.0f) => LookupCumMultiplier(gene.def,FALLBACK);
 | 
				
			||||||
 | 
					        public static float LookupCumMultiplier(GeneDef def, float FALLBACK = 3.0f)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            MultiplierExtension multiplier = def.GetModExtension<MultiplierExtension>();
 | 
				
			||||||
 | 
					            if (multiplier == null || multiplier.multiplier < 0)
 | 
				
			||||||
 | 
					                return FALLBACK;
 | 
				
			||||||
 | 
					            else return multiplier.multiplier;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        //Get total fluidamount a person has.
 | 
				
			||||||
 | 
					        public static float GetTotalFluidAmount(Pawn pawn, float multiplier = 1f)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			var partBPR = Genital_Helper.get_genitalsBPR(pawn);
 | 
								var partBPR = Genital_Helper.get_genitalsBPR(pawn);
 | 
				
			||||||
			var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
 | 
								var parts = Genital_Helper.get_PartsHediffList(pawn, partBPR);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,36 +1,38 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					namespace RJW_Genes
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class Gene_MuchCum : RJW_Gene
 | 
					    public class Gene_ChangeCumAmount : RJW_Gene
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        bool has_been_fired = false;
 | 
					        bool has_been_fired = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        float multiplier_much_cum = 3f;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void PostMake()
 | 
					        public override void PostMake()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostMake();
 | 
					            base.PostMake();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
 | 
					            float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					            CumUtility.MultiplyFluidAmountBy(pawn, multipier);
 | 
				
			||||||
            has_been_fired = true;
 | 
					            has_been_fired = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void PostAdd()
 | 
					        public override void PostAdd()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostAdd();
 | 
					            base.PostAdd();
 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					            if (!has_been_fired)
 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum); 
 | 
					            {
 | 
				
			||||||
 | 
					                float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					                CumUtility.MultiplyFluidAmountBy(pawn, multipier);
 | 
				
			||||||
                has_been_fired = true;
 | 
					                has_been_fired = true;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					        public override void PostRemove()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            base.PostAdd();
 | 
					            base.PostAdd();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (has_been_fired)
 | 
					            if (has_been_fired)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
 | 
					                float multipier = CumUtility.LookupCumMultiplier(this);
 | 
				
			||||||
 | 
					                CumUtility.MultiplyFluidAmountBy(pawn, 1/ multipier);
 | 
				
			||||||
                has_been_fired = false;
 | 
					                has_been_fired = false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -1,34 +0,0 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class Gene_NoCum : RJW_Gene
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        bool has_been_fired = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostMake()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostMake();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, 0f);
 | 
					 | 
				
			||||||
            has_been_fired = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostAdd()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 0f); 
 | 
					 | 
				
			||||||
                has_been_fired = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            // Cum Removal does not do at the moment :/ I would need to safe the old cum amount but I don't want to at the moment
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,39 +0,0 @@
 | 
				
			||||||
namespace RJW_Genes
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    public class Gene_VeryMuchCum : RJW_Gene
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        bool has_been_fired = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        float multiplier_much_cum = 10f;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostMake()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostMake();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum);
 | 
					 | 
				
			||||||
            has_been_fired = true;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostAdd()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
            if (!has_been_fired) { 
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, multiplier_much_cum); 
 | 
					 | 
				
			||||||
                has_been_fired = true;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public override void PostRemove()
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            base.PostAdd();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (has_been_fired)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                CumUtility.MultiplyFluidAmountBy(pawn, 1/multiplier_much_cum);
 | 
					 | 
				
			||||||
                has_been_fired = false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -40,8 +40,6 @@ namespace RJW_Genes
 | 
				
			||||||
            if (!pawn.IsPregnant() && !partner.IsPregnant())
 | 
					            if (!pawn.IsPregnant() && !partner.IsPregnant())
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ModLog.Debug("Firing Pregnancy Overwrite Patch - Passed Simple NullChecks");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (pawn.IsPregnant() 
 | 
					            if (pawn.IsPregnant() 
 | 
				
			||||||
                && GeneUtility.HasGeneNullCheck(partner, GeneDefOf.rjw_genes_pregnancy_overwrite))
 | 
					                && GeneUtility.HasGeneNullCheck(partner, GeneDefOf.rjw_genes_pregnancy_overwrite))
 | 
				
			||||||
                    TryReplacePregnancy(partner, pawn);
 | 
					                    TryReplacePregnancy(partner, pawn);
 | 
				
			||||||
| 
						 | 
					@ -51,29 +49,52 @@ namespace RJW_Genes
 | 
				
			||||||
                TryReplacePregnancy(pawn, partner);
 | 
					                TryReplacePregnancy(pawn, partner);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Tries to replace an existing pregnancy with a new pregnancy at the same gestation process. 
 | 
				
			||||||
 | 
					        /// The new pregnancy will have the same mother, but a new father and a new set of genes. 
 | 
				
			||||||
 | 
					        /// 
 | 
				
			||||||
 | 
					        /// There is a check for pregnancy that checks for the general fertility (using Vanilla Functions) and multiplies it with a xml-configurable chance.
 | 
				
			||||||
 | 
					        /// If anything is replaced, there will be a faction penalty applied. 
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="replacer"></param>
 | 
				
			||||||
 | 
					        /// <param name="pregnant"></param>
 | 
				
			||||||
        public static void TryReplacePregnancy(Pawn replacer, Pawn pregnant)
 | 
					        public static void TryReplacePregnancy(Pawn replacer, Pawn pregnant)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // TODO: This mostly works, but needs some more checks.
 | 
					 | 
				
			||||||
            // - Check if there is a pregnancy occurring
 | 
					 | 
				
			||||||
            // - Check for Disease Immunity
 | 
					 | 
				
			||||||
            // - Add Faction Penalties
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ModLog.Debug($"Firing Pregnancy Overwrite for {replacer} and {pregnant}");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // The "CanImpregnate" does not work as I want, as the pawn is already pregnant, so it wont allow to be pregnated. 
 | 
					 | 
				
			||||||
            //PregnancyHelper.CanImpregnate(pawn, partner, props.sexType)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // DevNote:
 | 
				
			||||||
 | 
					            // There are some issues with just checking PregnancyUtility.PregnancyChanceForPartners or rjw.PregnancyHelper.CanImpregnate
 | 
				
			||||||
 | 
					            // Both do give 0.0 chance when the pawn is already pregnant, which does not help me :/
 | 
				
			||||||
            Hediff pregnancyHediff = PregnancyUtility.GetPregnancyHediff(pregnant);
 | 
					            Hediff pregnancyHediff = PregnancyUtility.GetPregnancyHediff(pregnant);
 | 
				
			||||||
            if (pregnancyHediff == null)
 | 
					            if (pregnancyHediff == null)
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            float gestationProgress = pregnancyHediff.Severity;
 | 
					            if (DiseaseHelper.IsImmuneAgainstGeneticDisease(pregnant, GeneDefOf.rjw_genes_pregnancy_overwrite))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ModLog.Debug($"{pregnant} is immune against rjw_genes_pregnancy_overwrite from {replacer}");
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            PregnancyUtility.ForceEndPregnancy(pregnant);
 | 
					            ChanceExtension chanceExt = GeneDefOf.rjw_genes_pregnancy_overwrite.GetModExtension<ChanceExtension>();
 | 
				
			||||||
 | 
					            float chance = chanceExt != null ? chanceExt.chance : 0.25f;
 | 
				
			||||||
 | 
					            float replacerFert = replacer.GetStatValueForPawn(StatDefOf.Fertility, replacer);
 | 
				
			||||||
 | 
					            chance *=  replacerFert ;
 | 
				
			||||||
 | 
					            double roll = (new Random()).NextDouble();
 | 
				
			||||||
 | 
					            if (roll < chance)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ModLog.Debug($"Pregnancy-Overwrite for {replacer} and {pregnant}.");
 | 
				
			||||||
 | 
					                float gestationProgress = pregnancyHediff.Severity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            PregnancyHelper.StartVanillaPregnancy(pregnant, replacer);
 | 
					                PregnancyUtility.ForceEndPregnancy(pregnant);
 | 
				
			||||||
            Hediff replacementPregnancyHediff = PregnancyUtility.GetPregnancyHediff(pregnant);
 | 
					
 | 
				
			||||||
            replacementPregnancyHediff.Severity = gestationProgress;
 | 
					                PregnancyHelper.StartVanillaPregnancy(pregnant, replacer);
 | 
				
			||||||
 | 
					                Hediff replacementPregnancyHediff = PregnancyUtility.GetPregnancyHediff(pregnant);
 | 
				
			||||||
 | 
					                replacementPregnancyHediff.Severity = gestationProgress;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                FactionUtility.HandleFactionGoodWillPenalties(replacer, pregnant, "rjw_genes_GoodwillChangedReason_OverwritePregnancy", FACTION_GOODWILL_CHANGE);
 | 
				
			||||||
 | 
					            } else
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ModLog.Debug($"Did not Pregnancy-Overwrite for {replacer} and {pregnant}. Failed: Rolled {roll} <({chanceExt.chance}[XML-Chance] x {replacerFert} [Fert:{replacer}])");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,6 +59,7 @@
 | 
				
			||||||
    <Compile Include="Common\Defs\ChanceExtension.cs" />
 | 
					    <Compile Include="Common\Defs\ChanceExtension.cs" />
 | 
				
			||||||
    <Compile Include="Common\Defs\DistanceExtension.cs" />
 | 
					    <Compile Include="Common\Defs\DistanceExtension.cs" />
 | 
				
			||||||
    <Compile Include="Common\Defs\ModExtensionHelper.cs" />
 | 
					    <Compile Include="Common\Defs\ModExtensionHelper.cs" />
 | 
				
			||||||
 | 
					    <Compile Include="Common\Defs\MultiplierExtension.cs" />
 | 
				
			||||||
    <Compile Include="Common\Defs\TickBasedChanceExtension.cs" />
 | 
					    <Compile Include="Common\Defs\TickBasedChanceExtension.cs" />
 | 
				
			||||||
    <Compile Include="Common\Either.cs" />
 | 
					    <Compile Include="Common\Either.cs" />
 | 
				
			||||||
    <Compile Include="Common\Helpers\FactionUtility.cs" />
 | 
					    <Compile Include="Common\Helpers\FactionUtility.cs" />
 | 
				
			||||||
| 
						 | 
					@ -105,9 +106,7 @@
 | 
				
			||||||
    <Compile Include="Genes\Gender\Genes\Gene_GenderFluid.cs" />
 | 
					    <Compile Include="Genes\Gender\Genes\Gene_GenderFluid.cs" />
 | 
				
			||||||
    <Compile Include="Genes\GenitaliaSize\Gene_EvergrowingGenitalia.cs" />
 | 
					    <Compile Include="Genes\GenitaliaSize\Gene_EvergrowingGenitalia.cs" />
 | 
				
			||||||
    <Compile Include="Genes\Cum\CumUtility.cs" />
 | 
					    <Compile Include="Genes\Cum\CumUtility.cs" />
 | 
				
			||||||
    <Compile Include="Genes\Cum\Gene_VeryMuchCum.cs" />
 | 
					    <Compile Include="Genes\Cum\Gene_ChangeCumAmount.cs" />
 | 
				
			||||||
    <Compile Include="Genes\Cum\Gene_MuchCum.cs" />
 | 
					 | 
				
			||||||
    <Compile Include="Genes\Cum\Gene_NoCum.cs" />
 | 
					 | 
				
			||||||
    <Compile Include="Genes\Cum\Patch_TransferNutrition.cs" />
 | 
					    <Compile Include="Genes\Cum\Patch_TransferNutrition.cs" />
 | 
				
			||||||
    <Compile Include="Genes\Damage\Gene_Unbreakable.cs" />
 | 
					    <Compile Include="Genes\Damage\Gene_Unbreakable.cs" />
 | 
				
			||||||
    <Compile Include="Genes\Cum\Patch_CumflationImmunity.cs" />
 | 
					    <Compile Include="Genes\Cum\Patch_CumflationImmunity.cs" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue