Compare commits
47 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b70b975b67 |
||
|
|
4946df511e | ||
|
|
ef953fa1b7 | ||
|
|
be27255832 | ||
|
|
83e9f9ef5b |
||
|
|
45a451a127 | ||
|
|
7692ce3425 | ||
|
|
b13f761ede | ||
|
|
ed761327d2 | ||
|
|
e0a333f539 | ||
|
|
5025700727 | ||
|
|
a407f3f400 | ||
|
|
6e26d596cf | ||
|
|
670361a748 | ||
|
|
c7ea7144dc | ||
|
|
97eabd540d | ||
|
|
61fdb2c3b7 | ||
|
|
27511a29f3 | ||
|
|
ef05a5bbc3 | ||
|
|
7f6dc2a668 | ||
|
|
ba53413687 | ||
|
|
aa3d3985bc | ||
|
|
11226249b3 | ||
|
|
dde1c98b18 | ||
|
|
7540b96ecb |
||
|
|
b0da74ebd3 |
||
|
|
e9fa05d218 |
||
|
|
8577c3ee55 | ||
|
|
19148cc768 | ||
|
|
72acfbb8bf | ||
|
|
f5975212b1 | ||
|
|
f1ea695516 | ||
|
|
2d055a134f | ||
|
|
e402a6b2a8 |
||
|
|
f5898523a9 | ||
|
|
f3bf271381 | ||
|
|
626ae5bbd4 | ||
|
|
8e272db117 | ||
|
|
93e9c5471c | ||
|
|
b336c3059e | ||
|
|
89028f361b |
||
|
|
f470213a3c | ||
|
|
67cd837166 |
||
|
|
5aadcffcb1 |
||
|
|
44c0fff37e |
||
|
|
74b16b9ff3 |
||
|
|
4712e5fdf2 |
31
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
---
|
||||||
|
name: Bug Report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Description**
|
||||||
|
Whats happening? What should happen?
|
||||||
|
|
||||||
|
Put any error message here too.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Click on '....'
|
||||||
|
3. Scroll down to '....'
|
||||||
|
4. See error
|
||||||
|
|
||||||
|
**Screenshots**
|
||||||
|
If applicable, add screenshots.
|
||||||
|
|
||||||
|
Add the Error Message, if there is some
|
||||||
|
|
||||||
|
**Hugslog / ModList**
|
||||||
|
|
||||||
|
Please put your Link to Hugslog here.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add anything else here.
|
||||||
|
|
||||||
|
Please mention if you have a changed config or if you suspect a certain mod / interaction.
|
||||||
19
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: Suggest an Idea for this project
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is. I'm always frustrated when [...]
|
||||||
|
**OR**
|
||||||
|
I would love to see something like [...]
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
|
||||||
|
Feel free to be oppinionated, or a bit crazy.
|
||||||
|
I might not do it, but I usually don't judge.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
|
Feel free to share your paint-sketch
|
||||||
2
.gitignore
vendored
|
|
@ -255,3 +255,5 @@ paket-files/
|
||||||
# Python Tools for Visual Studio (PTVS)
|
# Python Tools for Visual Studio (PTVS)
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
||||||
|
*.dds
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Defs>
|
||||||
|
|
||||||
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
<defName>rjw_genes_Pig_genitalia</defName>
|
||||||
|
<label>Pig genitalia</label>
|
||||||
|
<description>Carriers of this gene develop pig genitalia.</description>
|
||||||
|
<iconPath>Genes/Icons/Genitalia_screw_icon</iconPath>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||||
|
<penis>PigPenis</penis>
|
||||||
|
<vagina>PigVagina</vagina>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
<displayOrderInCategory>807</displayOrderInCategory>
|
||||||
|
</GeneDef>
|
||||||
|
|
||||||
|
<GeneDef ParentName="GeneGenitalTypeBase">
|
||||||
|
<defName>rjw_genes_Orc_genitalia</defName>
|
||||||
|
<label>Orc genitalia</label>
|
||||||
|
<description>Carriers of this gene develop orc genitalia.</description>
|
||||||
|
<iconPath>Genes/Icons/Genitalia_orc_icon</iconPath>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJW_Genes.GenitaliaTypeExtension">
|
||||||
|
<penis>OrcPenis</penis>
|
||||||
|
<vagina>OrcVagina</vagina>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
|
<displayOrderInCategory>807</displayOrderInCategory>
|
||||||
|
</GeneDef>
|
||||||
|
|
||||||
|
</Defs>
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<li>rjw_genes_big_male_genitalia</li>
|
<li>rjw_genes_big_male_genitalia</li>
|
||||||
<li>rjw_genes_big_breasts</li>
|
<li>rjw_genes_big_breasts</li>
|
||||||
<li>rjw_genes_no_sex_need</li>
|
<li>rjw_genes_no_sex_need</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
|
<li>rjw_genes_generous_donor</li>
|
||||||
<li MayRequire="rjw.sexperience">AptitudePoor_Sex</li>
|
<li MayRequire="rjw.sexperience">AptitudePoor_Sex</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
<xpath>Defs/XenotypeDef[defName="BS_Malakim"]/genes</xpath>
|
<xpath>Defs/XenotypeDef[defName="BS_Malakim"]/genes</xpath>
|
||||||
<value>
|
<value>
|
||||||
<li>rjw_genes_small_breasts</li>
|
<li>rjw_genes_small_breasts</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
|
<li>rjw_genes_generous_donor</li>
|
||||||
<li MayRequire="rjw.sexperience">AptitudeTerrible_Sex</li>
|
<li MayRequire="rjw.sexperience">AptitudeTerrible_Sex</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<li Class="PatchOperationAdd">
|
<li Class="PatchOperationAdd">
|
||||||
<xpath>Defs/XenotypeDef[defName="BS_Grigori"]/genes</xpath>
|
<xpath>Defs/XenotypeDef[defName="BS_Grigori"]/genes</xpath>
|
||||||
<value>
|
<value>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_generous_donor</li>
|
<li>rjw_genes_generous_donor</li>
|
||||||
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -62,7 +62,7 @@
|
||||||
<li>rjw_genes_loose_anus</li>
|
<li>rjw_genes_loose_anus</li>
|
||||||
<li>rjw_genes_extra_vagina</li>
|
<li>rjw_genes_extra_vagina</li>
|
||||||
<li>rjw_genes_extra_anus</li>
|
<li>rjw_genes_extra_anus</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_cumflation_immunity</li>
|
<li MayRequire="vegapnk.cumpilation">rjw_genes_un_inflatable</li>
|
||||||
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -75,8 +75,8 @@
|
||||||
<li>rjw_genes_tight_anus</li>
|
<li>rjw_genes_tight_anus</li>
|
||||||
<li>rjw_genes_extra_vagina</li>
|
<li>rjw_genes_extra_vagina</li>
|
||||||
<li>rjw_genes_extra_anus</li>
|
<li>rjw_genes_extra_anus</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_likes_cumflation</li>
|
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elastic</li>
|
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
|
||||||
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
<li MayRequire="rjw.sexperience">AptitudeStrong_Sex</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@
|
||||||
<li>rjw_genes_tight_female_genitalia</li>
|
<li>rjw_genes_tight_female_genitalia</li>
|
||||||
<li>rjw_genes_tight_anus</li>
|
<li>rjw_genes_tight_anus</li>
|
||||||
<li>rjw_genes_very_much_fluid</li>
|
<li>rjw_genes_very_much_fluid</li>
|
||||||
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_likes_cumflation</li>
|
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
|
||||||
</value>
|
</value>
|
||||||
</li>
|
</li>
|
||||||
<li Class="PatchOperationAdd">
|
<li Class="PatchOperationAdd">
|
||||||
|
|
|
||||||
105
1.5/Patches/Xenotypes/PatchObsidia.xml
Normal file
|
|
@ -0,0 +1,105 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Patch>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Arachnas Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_WidowArachna" or defName="OE_WolfArachna" or defName="OE_GoliathArachna"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_ovipositor_genitalia</li>
|
||||||
|
<li>rjw_genes_insectbreeder</li>
|
||||||
|
<li>rjw_genes_fluid_insect_spunk</li>
|
||||||
|
<li>rjw_genes_cocoonweaver</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Axotl Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Axotl"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_small_male_genitalia</li>
|
||||||
|
<li MayRequire="vegapnk.cumpilation">rjw_genes_living_cumbucket</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Ceratons Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Protoceraton" or defName="OE_Styracodon" or defName="OE_Triceraton"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_crocodilian_genitalia</li>
|
||||||
|
<li>rjw_genes_big_male_genitalia</li>
|
||||||
|
<li>rjw_genes_loose_female_genitalia</li>
|
||||||
|
<li>rjw_genes_big_breasts</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Liches Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Lich" or defName="OE_Archlich"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_no_fluid</li>
|
||||||
|
<li>rjw_genes_featureless_chest</li>
|
||||||
|
<li>rjw_genes_no_sex_need</li>
|
||||||
|
<li>rjw_genes_no_penis</li>
|
||||||
|
<li>rjw_genes_no_vagina</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Mothoids Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Mothoid" or defName="OE_MothoidPrime" or defName="OE_MothoidAtlant"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_insectincubator</li>
|
||||||
|
<li>rjw_genes_fluid_insect_spunk</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Slimes Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Slime" or defName="OE_SlimeWaste" or defName="OE_SlimeBloody" or defName="OE_SlimePrime"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_slime_genitalia</li>
|
||||||
|
<li>rjw_genes_very_much_fluid</li>
|
||||||
|
<li>rjw_genes_loose_anus</li>
|
||||||
|
<li>rjw_genes_loose_female_genitalia</li>
|
||||||
|
<li MayRequire="vegapnk.cumpilation">rjw_genes_inflatable</li>
|
||||||
|
<li MayRequire="LustLicentia.RJWLabs">rjw_genes_elasticity</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Obsidia Expansion - Tortle Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="OE_Tortle"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_reptilian_genitalia</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
</Patch>
|
||||||
47
1.5/Patches/Xenotypes/PatchRimsenal.xml
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Patch>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Rimsenal Xenotype Pack - Askbarn</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationSequence">
|
||||||
|
<operations>
|
||||||
|
<li Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="Askbarn"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_electric_satisfaction</li>
|
||||||
|
<li>rjw_genes_pheromone_spit</li>
|
||||||
|
<li>rjw_genes_loose_anus</li>
|
||||||
|
<li>rjw_genes_bisexual</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="Uredd"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_electric_satisfaction</li>
|
||||||
|
<li>rjw_genes_dragon_genitalia</li>
|
||||||
|
<li>rjw_genes_big_male_genitalia</li>
|
||||||
|
<li>rjw_genes_big_breasts</li>
|
||||||
|
</value>
|
||||||
|
</li>
|
||||||
|
</operations>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Rimsenal Xenotype Pack - Harana</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="Harana"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_small_male_genitalia</li>
|
||||||
|
<li>rjw_genes_tight_female_genitalia</li>
|
||||||
|
<li>rjw_genes_unbreakable</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
|
||||||
|
</Patch>
|
||||||
17
1.5/Patches/Xenotypes/PatchRoosFaun.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Roo's Faun Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="RBSF_Faun"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_equine_genitalia</li>
|
||||||
|
<li>rjw_genes_zoophile</li>
|
||||||
|
<li>rjw_genes_mating_call</li>
|
||||||
|
<li>rjw_genes_tight_female_genitalia</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
||||||
18
1.5/Patches/Xenotypes/PatchRoosMino.xml
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Patch>
|
||||||
|
<Operation Class="PatchOperationFindMod">
|
||||||
|
<mods>
|
||||||
|
<li>Roo's Minotaur Xenotype</li>
|
||||||
|
</mods>
|
||||||
|
<match Class="PatchOperationAdd">
|
||||||
|
<xpath>Defs/XenotypeDef[defName="RBM_Minotaur"]/genes</xpath>
|
||||||
|
<value>
|
||||||
|
<li>rjw_genes_equine_genitalia</li>
|
||||||
|
<li>rjw_genes_much_fluid</li>
|
||||||
|
<li>rjw_genes_big_male_genitalia</li>
|
||||||
|
<li>rjw_genes_loose_female_genitalia</li>
|
||||||
|
<li>rjw_genes_big_breasts</li>
|
||||||
|
</value>
|
||||||
|
</match>
|
||||||
|
</Operation>
|
||||||
|
</Patch>
|
||||||
|
|
@ -1,14 +1,11 @@
|
||||||
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Reflection.Emit;
|
using System.Reflection.Emit;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
using rjw;
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
|
|
@ -23,42 +20,35 @@ namespace RJW_Genes
|
||||||
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator il)
|
public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions, ILGenerator il)
|
||||||
{
|
{
|
||||||
bool found_call = false;
|
bool found_call = false;
|
||||||
bool found_skip = false;
|
bool finished = false;
|
||||||
Label skip_label = il.DefineLabel();
|
Label skip_label = il.DefineLabel();
|
||||||
|
MethodInfo removeHediff = AccessTools.Method(typeof(Pawn_HealthTracker), nameof(Pawn_HealthTracker.RemoveHediff));
|
||||||
MethodInfo ismechbreeder = AccessTools.Method(typeof(GeneUtility), "IsMechbreeder");
|
MethodInfo ismechbreeder = AccessTools.Method(typeof(GeneUtility), "IsMechbreeder");
|
||||||
foreach (CodeInstruction codeInstruction in instructions)
|
foreach (CodeInstruction codeInstruction in instructions)
|
||||||
{
|
{
|
||||||
//Check if the first opcode after endfinally ldloc_0 is and in that case add the label to skip the code
|
|
||||||
if (found_skip && codeInstruction.opcode == OpCodes.Ldloc_0)
|
|
||||||
{
|
|
||||||
codeInstruction.labels.Add(skip_label);
|
|
||||||
}
|
|
||||||
found_skip = false;
|
|
||||||
if (codeInstruction.opcode == OpCodes.Endfinally)
|
|
||||||
{
|
|
||||||
found_skip = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
yield return codeInstruction;
|
yield return codeInstruction;
|
||||||
|
|
||||||
if (codeInstruction.opcode == OpCodes.Call)
|
if (finished)
|
||||||
{
|
{
|
||||||
if (codeInstruction.operand.ToString() == "Boolean TryMakeFilth(Verse.IntVec3, Verse.Map, Verse.ThingDef, System.String, Int32, RimWorld.FilthSourceFlags)")
|
continue;
|
||||||
{
|
|
||||||
found_call = true;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//Triggers after the pop opcode (after generating filth in c#).
|
if (!found_call && codeInstruction.Calls(removeHediff))
|
||||||
else if (found_call)
|
|
||||||
{
|
{
|
||||||
//Load pawn, call function to check if a mechbreeder, and skip past the part which does damage
|
//Load pawn, call function to check if a mechbreeder, and skip past the part which does damage
|
||||||
yield return new CodeInstruction(OpCodes.Ldloc_0, null);
|
yield return new CodeInstruction(OpCodes.Ldloc_0);
|
||||||
yield return new CodeInstruction(OpCodes.Call, ismechbreeder);
|
yield return new CodeInstruction(OpCodes.Call, ismechbreeder);
|
||||||
yield return new CodeInstruction(OpCodes.Brtrue_S, skip_label);
|
yield return new CodeInstruction(OpCodes.Brfalse_S, skip_label);
|
||||||
found_call = false;
|
yield return new CodeInstruction(OpCodes.Ret);
|
||||||
|
found_call = true;
|
||||||
|
}
|
||||||
|
else if (found_call)
|
||||||
|
{
|
||||||
|
// next instruction after the insert
|
||||||
|
codeInstruction.labels.Add(skip_label);
|
||||||
|
finished = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
yield break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -16,7 +16,7 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
// Right now: Ignore Breasts, only do
|
// Right now: Ignore Breasts, only do
|
||||||
if (part is ISexPartHediff sexPart && (Genital_Helper.is_penis(part) || Genital_Helper.is_vagina(part)))
|
if (part is ISexPartHediff sexPart && (Genital_Helper.is_penis(part) || Genital_Helper.is_vagina(part)))
|
||||||
sexPart.GetPartComp().partFluidFactor *= multiplier;
|
sexPart.GetPartComp().partFluidMultiplier *= multiplier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Patch_Cumpilation_BlockCumflation
|
public class Patch_Cumpilation_BlockCumflation
|
||||||
{
|
{
|
||||||
|
public static bool Prepare() => ModsConfig.IsActive("vegapnk.cumpilation");
|
||||||
public static void PostFix(Pawn pawn,ref bool __result) {
|
public static void PostFix(Pawn pawn,ref bool __result) {
|
||||||
if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_un_inflatable))
|
if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_un_inflatable))
|
||||||
__result = false;
|
__result = false;
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Patch_Cumpilation_BlockStuffing
|
public class Patch_Cumpilation_BlockStuffing
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public static bool Prepare() => ModsConfig.IsActive("vegapnk.cumpilation");
|
||||||
public static void PostFix(Pawn pawn,ref bool __result) {
|
public static void PostFix(Pawn pawn,ref bool __result) {
|
||||||
if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_un_inflatable))
|
if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_un_inflatable))
|
||||||
__result = false;
|
__result = false;
|
||||||
|
|
|
||||||
|
|
@ -12,15 +12,11 @@ using Verse;
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Changes LicentiaLabs (if Present) to add a cumflation-counter hediff, when the pawn is cumflated.
|
|
||||||
/// The counter hediff takes away the negative stats of the original hediff.
|
|
||||||
/// This code is exercised / loaded in the HarmonyInit.
|
|
||||||
/// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs
|
|
||||||
/// </summary>
|
|
||||||
///
|
|
||||||
class Patch_Cumpilation_Inflatable
|
class Patch_Cumpilation_Inflatable
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public static bool Prepare() => ModsConfig.IsActive("vegapnk.cumpilation");
|
||||||
|
|
||||||
// This patch does not need the normal Harmony Targetting,
|
// This patch does not need the normal Harmony Targetting,
|
||||||
// as it needs to be added only on demand (See HarmonyInit.cs)
|
// as it needs to be added only on demand (See HarmonyInit.cs)
|
||||||
public static void PostFix(SexProps props)
|
public static void PostFix(SexProps props)
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,6 @@ using static System.Net.Mime.MediaTypeNames;
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
|
|
||||||
[HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))]
|
|
||||||
public class Patch_LivingCumbucket_StackHediff
|
public class Patch_LivingCumbucket_StackHediff
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -20,12 +19,10 @@ namespace RJW_Genes
|
||||||
/// The hediff can still be increased over 1.0.
|
/// The hediff can still be increased over 1.0.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
const float fluid_amount_required_for_hediff_severity_ = 100.0f;
|
const float fluid_amount_required_for_hediff_severity_ = 100.0f;
|
||||||
|
public static bool Prepare() => ModsConfig.IsActive("vegapnk.cumpilation");
|
||||||
|
|
||||||
public static void Postfix(SexProps props)
|
public static void PostFix(SexProps props)
|
||||||
{
|
{
|
||||||
if (!ModsConfig.IsActive("vegapnk.cumpilation"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// ShortCuts: Exit Early if Pawn or Partner are null (can happen with Masturbation or other nieche-cases)
|
// ShortCuts: Exit Early if Pawn or Partner are null (can happen with Masturbation or other nieche-cases)
|
||||||
if (props == null || props.pawn == null || !props.hasPartner())
|
if (props == null || props.pawn == null || !props.hasPartner())
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,11 @@
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
using rjw;
|
using rjw;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class Gene_EvergrowingGenitalia : RJW_Gene
|
public class Gene_EvergrowingGenitalia : RJW_Gene
|
||||||
{
|
{
|
||||||
|
|
||||||
const int BASE_TICKS = 60000;
|
const int BASE_TICKS = 60000;
|
||||||
|
|
||||||
public override void Tick()
|
public override void Tick()
|
||||||
|
|
@ -28,19 +26,20 @@ namespace RJW_Genes
|
||||||
private void GrowPenisses()
|
private void GrowPenisses()
|
||||||
{
|
{
|
||||||
List<Hediff> AllPenisses = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_penis(x));
|
List<Hediff> AllPenisses = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_penis(x));
|
||||||
foreach(Hediff penis in AllPenisses)
|
float bodySizeOverride = -1f; //this is just hackjob to temporary fix an issue. It need to be remade
|
||||||
|
foreach (Hediff penis in AllPenisses)
|
||||||
{
|
{
|
||||||
HediffComp_SexPart CompHediff = penis.TryGetComp<rjw.HediffComp_SexPart>();
|
HediffComp_SexPart CompHediff = penis.TryGetComp<rjw.HediffComp_SexPart>();
|
||||||
if (CompHediff.baseSize <= 1.00f)
|
if (CompHediff.baseSize <= 1.00f)
|
||||||
CompHediff.baseSize += 0.10f;
|
CompHediff.baseSize += 0.10f;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (CompHediff.bodySizeOverride <= 1.0) CompHediff.bodySizeOverride = 1.0f;
|
if (bodySizeOverride <= 1.0) bodySizeOverride = 1.0f;
|
||||||
CompHediff.bodySizeOverride += 0.05f;
|
bodySizeOverride += 0.05f;
|
||||||
}
|
}
|
||||||
CompHediff.UpdateSeverity();
|
CompHediff.UpdateSeverity();
|
||||||
|
|
||||||
if (CompHediff.bodySizeOverride > 3.0f)
|
if (bodySizeOverride > 3.0f)
|
||||||
{
|
{
|
||||||
// Add Mental Hediff
|
// Add Mental Hediff
|
||||||
HandleGenitaliaSizeThoughts(pawn);
|
HandleGenitaliaSizeThoughts(pawn);
|
||||||
|
|
@ -48,13 +47,14 @@ namespace RJW_Genes
|
||||||
|
|
||||||
// Increase Fluid
|
// Increase Fluid
|
||||||
if (CompHediff != null)
|
if (CompHediff != null)
|
||||||
CompHediff.partFluidFactor *= 1.05f;
|
CompHediff.partFluidMultiplier *= 1.05f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void GrowVaginas()
|
private void GrowVaginas()
|
||||||
{
|
{
|
||||||
List<Hediff> AllVaginas = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_vagina(x));
|
List<Hediff> AllVaginas = Genital_Helper.get_AllPartsHediffList(pawn).FindAll(x => Genital_Helper.is_vagina(x));
|
||||||
|
float bodySizeOverride = -1f; //this is just hackjob to temporary fix an issue. It need to be remade
|
||||||
foreach (Hediff vagina in AllVaginas)
|
foreach (Hediff vagina in AllVaginas)
|
||||||
{
|
{
|
||||||
HediffComp_SexPart CompHediff = vagina.TryGetComp<rjw.HediffComp_SexPart>();
|
HediffComp_SexPart CompHediff = vagina.TryGetComp<rjw.HediffComp_SexPart>();
|
||||||
|
|
@ -62,21 +62,21 @@ namespace RJW_Genes
|
||||||
CompHediff.baseSize += 0.10f;
|
CompHediff.baseSize += 0.10f;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (CompHediff.bodySizeOverride <= 1.0) CompHediff.bodySizeOverride = 1.0f;
|
if (bodySizeOverride <= 1.0) bodySizeOverride = 1.0f;
|
||||||
CompHediff.bodySizeOverride += 0.05f;
|
bodySizeOverride += 0.05f;
|
||||||
}
|
}
|
||||||
//CompHediff.ForceSize(CompHediff.Size + 0.05f);
|
//CompHediff.ForceSize(CompHediff.Size + 0.05f);
|
||||||
//CompHediff.originalOwnerSize += 0.05f;
|
//CompHediff.originalOwnerSize += 0.05f;
|
||||||
CompHediff.UpdateSeverity();
|
CompHediff.UpdateSeverity();
|
||||||
|
|
||||||
if (CompHediff.bodySizeOverride > 3.0f)
|
if (bodySizeOverride > 3.0f)
|
||||||
{
|
{
|
||||||
// Add Mental Hediff
|
// Add Mental Hediff
|
||||||
HandleGenitaliaSizeThoughts(pawn);
|
HandleGenitaliaSizeThoughts(pawn);
|
||||||
}
|
}
|
||||||
// Increase Fluid
|
// Increase Fluid
|
||||||
if (CompHediff != null)
|
if (CompHediff != null)
|
||||||
CompHediff.partFluidFactor *= 1.025f;
|
CompHediff.partFluidMultiplier *= 1.025f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,13 +29,13 @@ namespace RJW_Genes.Interactions
|
||||||
{
|
{
|
||||||
weight *= 2.5f;
|
weight *= 2.5f;
|
||||||
}
|
}
|
||||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_cum_eater))
|
if (pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_cum_eater))
|
||||||
{
|
{
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_fertilin_absorber))
|
if (pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_fertilin_absorber))
|
||||||
{
|
{
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
||||||
|
|
@ -62,7 +62,7 @@ namespace RJW_Genes.Interactions
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Mouth);
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Beak);
|
||||||
|
|
||||||
if (pawn.genes.HasGene(GeneDefOf.rjw_genes_fertilin_absorber))
|
if (pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_fertilin_absorber))
|
||||||
{
|
{
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Vagina);
|
||||||
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
yield return new Weighted<LewdablePartKind>(weight, LewdablePartKind.Anus);
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ namespace RJW_Genes
|
||||||
|
|
||||||
// Increase Fluid
|
// Increase Fluid
|
||||||
if (CompHediff != null)
|
if (CompHediff != null)
|
||||||
CompHediff.partFluidFactor *= cum_multiplier;
|
CompHediff.partFluidMultiplier *= cum_multiplier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,9 @@ namespace RJW_Genes
|
||||||
// Gene: Inflation-Resistance [Postfix Patch]
|
// Gene: Inflation-Resistance [Postfix Patch]
|
||||||
harmony.Patch(AccessTools.Method(typeof(Cumpilation.Cumflation.StuffingUtility), nameof(Cumpilation.Cumflation.StuffingUtility.CanBeStuffed)),
|
harmony.Patch(AccessTools.Method(typeof(Cumpilation.Cumflation.StuffingUtility), nameof(Cumpilation.Cumflation.StuffingUtility.CanBeStuffed)),
|
||||||
postfix: new HarmonyMethod(typeof(Patch_Cumpilation_BlockStuffing), nameof(Patch_Cumpilation_BlockStuffing.PostFix)));
|
postfix: new HarmonyMethod(typeof(Patch_Cumpilation_BlockStuffing), nameof(Patch_Cumpilation_BlockStuffing.PostFix)));
|
||||||
|
// Gene: Living Cumbucket [Postfix Patch]
|
||||||
|
harmony.Patch(AccessTools.Method(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal)),
|
||||||
|
postfix: new HarmonyMethod(typeof(Patch_LivingCumbucket_StackHediff), nameof(Patch_LivingCumbucket_StackHediff.PostFix)));
|
||||||
}
|
}
|
||||||
}))();
|
}))();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 46 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |