diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ad8ad27..0e2154e 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -9,10 +9,18 @@ As your help is highly appreciated, there are only three *hard constraints*:
But please consider also the following:
-* Please try to make an issue with your idea first or ping me (Vegapunk)
+* Please try to make an issue with your idea first or ping me (Vegapnk)
* Keep commit messages on the topic and meaningful
* Give me some time to review things. I can either mod, play or have a life.
## Contributors
-- Shabalox (MechBreeding, InsectBreeding)
\ No newline at end of file
+- Shabalox (MechBreeding, InsectBreeding, Animal Gene Inheritance)
+
+## Other Credits
+
+**Image Credits**
+
+- Many of the Icons I made (e.g. Genitalia Types) include things from [OpenMoji](https://openmoji.org/) which is awesome
+- Placeholder, Rapist, Necrophile come from [RJW-Sexperience Ideology](https://gitgud.io/amevarashi/rjw-sexperience-ideology/)
+- Hypersexual & Zoophile comes from [RJW](https://gitgud.io/Ed86/rjw)
\ No newline at end of file
diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll
index 5e1c60b..bd8049f 100644
Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ
diff --git a/Common/Defs/Genes/GeneDefs_Breeding.xml b/Common/Defs/Genes/GeneDefs_Breeding.xml
index 793492f..fa65c52 100644
--- a/Common/Defs/Genes/GeneDefs_Breeding.xml
+++ b/Common/Defs/Genes/GeneDefs_Breeding.xml
@@ -15,7 +15,7 @@
rjw_genes_insectincubatorPawns with this gene are able to hold more insect eggs.
- World/WorldObjects/Expanding/Mechanoids
+ Genes/Icons/More_Egg_Space52rjw_genes_breeding
@@ -24,7 +24,7 @@
rjw_genes_insectbreederPawns with this gene are able to fertilize eggs with any fertile penis.
- World/WorldObjects/Expanding/Mechanoids
+ World/WorldObjects/Expanding/Insects53rjw_genes_breeding
@@ -34,7 +34,7 @@
rjw_genes_breedingXenotypes with this Gene are Zoophile.
- Genes/Icons/Placeholder
+ Genes/Icons/Zoophile_254
diff --git a/Common/Defs/Genes/GeneDefs_Cum.xml b/Common/Defs/Genes/GeneDefs_Cum.xml
index 89334fe..d410319 100644
--- a/Common/Defs/Genes/GeneDefs_Cum.xml
+++ b/Common/Defs/Genes/GeneDefs_Cum.xml
@@ -12,7 +12,7 @@
rjw_genes_no_cumMales of these species have no fluid.
- Genes/Icons/Placeholder
+ Genes/Icons/No_CumRJW_Genes.Gene_NoCum5330
@@ -23,7 +23,7 @@
rjw_genes_much_cumMales of this species produce a lot of fluid.
- Genes/Icons/Placeholder
+ Genes/Icons/Bonus_CumRJW_Genes.Gene_MuchCum5341
@@ -34,7 +34,7 @@
rjw_genes_very_much_cumMales of this species produce a whole lot of fluid. They are like fountains basically.
- Genes/Icons/Placeholder
+ Genes/Icons/Much_Bonus_CumRJW_Genes.Gene_VeryMuchCum5351
@@ -46,7 +46,7 @@
rjw_genes_cumThis Xenotype loves being cumflated.
- Genes/Icons/Placeholder
+ Genes/Icons/Cumflation536
@@ -76,7 +76,7 @@
rjw_genes_cumWhen this Xenotype transfers nutrition via cumshot, the giver will not get hungry. (Licentia Configuration for Transfer Nutrition must be enabled).
- Genes/Icons/Placeholder
+ Genes/Icons/Generous_Donor538
diff --git a/Common/Defs/Genes/GeneDefs_Damage.xml b/Common/Defs/Genes/GeneDefs_Damage.xml
index c44e937..5922066 100644
--- a/Common/Defs/Genes/GeneDefs_Damage.xml
+++ b/Common/Defs/Genes/GeneDefs_Damage.xml
@@ -6,7 +6,7 @@
rjw_damageThis Xenotype cannot get stretched by huge penetrators.
- Genes/Icons/Placeholder
+ Genes/Icons/ElasticityRJW_Genes.Gene_Elasticity1
diff --git a/Common/Defs/Genes/GeneDefs_ExtraGenitalia.xml b/Common/Defs/Genes/GeneDefs_ExtraGenitalia.xml
index 3459de5..c2acd4c 100644
--- a/Common/Defs/Genes/GeneDefs_ExtraGenitalia.xml
+++ b/Common/Defs/Genes/GeneDefs_ExtraGenitalia.xml
@@ -9,7 +9,7 @@
rjw_genes_extra_penisMales of this species grow an additional penis .
- Genes/Icons/Placeholder
+ Genes/Icons/extra_maleRJW_Genes.Gene_ExtraPenis701
@@ -21,7 +21,7 @@
rjw_genes_no_penisMales of this do not have a penis.
- Genes/Icons/Placeholder
+ Genes/Icons/No_Male_GenitaliaRJW_Genes.Gene_NoPenis702
@@ -34,7 +34,7 @@
rjw_genes_extra_vaginaFemales of this species grow an additional vagina .
- Genes/Icons/Placeholder
+ Genes/Icons/extra_femaleRJW_Genes.Gene_ExtraVagina703
@@ -46,7 +46,7 @@
rjw_genes_no_vaginaFemales of this do not have a vagina.
- Genes/Icons/Placeholder
+ Genes/Icons/No_Female_GenitaliaRJW_Genes.Gene_NoVagina704
@@ -59,7 +59,7 @@
rjw_genes_extra_breastsFemales of this species grow an additional pair of breasts .
- Genes/Icons/Placeholder
+ Genes/Icons/Extra_BreastsRJW_Genes.Gene_ExtraBreasts705
@@ -71,7 +71,7 @@
rjw_genes_no_breastsFemales of this do not have a pair of breasts.
- Genes/Icons/Placeholder
+ Genes/Icons/No_BreastsRJW_Genes.Gene_NoBreasts706
@@ -83,7 +83,7 @@
rjw_genes_extra_anusThis specias has an extra anus.
- Genes/Icons/Placeholder
+ Genes/Icons/Extra_AnusRJW_Genes.Gene_ExtraAnus707
@@ -95,7 +95,7 @@
rjw_genes_no_anusThis specias has no anus.
- Genes/Icons/Placeholder
+ Genes/Icons/No_AnusRJW_Genes.Gene_NoAnus708
@@ -107,7 +107,7 @@
rjw_genes_futaMales of this xenotype grow additional female genitalia, Females grow additional male genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/FutaRJW_Genes.Gene_Futa709
diff --git a/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml b/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml
index 72d2c53..89bc7f9 100644
--- a/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml
+++ b/Common/Defs/Genes/GeneDefs_GenitaliaSizes.xml
@@ -10,7 +10,7 @@
rjw_genes_big_male_genitaliaPenises of this Xenotype are bigger.
- Genes/Icons/Placeholder
+ Genes/Icons/Small_Male_GenitaliaRJW_Genes.Gene_BigMaleGenitalia751
@@ -18,23 +18,11 @@
-
- rjw_genes_normal_male_genitalia
-
- Penises of this Xenotype can be any size.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_NormalMaleGenitalia
- 752
-
-
PenisSize
-
-
-
rjw_genes_small_male_genitaliaPenises of this Xenotype are smaller.
- Genes/Icons/Placeholder
+ Genes/Icons/Big_Male_GenitaliaRJW_Genes.Gene_SmallMaleGenitalia753
@@ -47,7 +35,7 @@
rjw_genes_loose_female_genitaliaVaginas of this Xenotype are quite spacy.
- Genes/Icons/Placeholder
+ Genes/Icons/Loose_Female_GenitaliaRJW_Genes.Gene_LooseFemaleGenitalia754
@@ -55,23 +43,11 @@
-
- rjw_genes_normal_female_genitalia
-
- Vaginas of this Xenotype can be any size.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_NormalFemaleGenitalia
- 755
-
-
VaginaSize
-
-
-
rjw_genes_tight_female_genitaliaVaginas of this Xenotype are pretty tight.
- Genes/Icons/Placeholder
+ Genes/Icons/Tight_Female_GenitaliaRJW_Genes.Gene_TightFemaleGenitalia756
@@ -84,7 +60,7 @@
rjw_genes_big_breastsFemales of this Xenotype have big honkers.
- Genes/Icons/Placeholder
+ Genes/Icons/Big_BreastsRJW_Genes.Gene_BigBreasts757
@@ -92,23 +68,11 @@
-
- rjw_genes_normal_breasts
-
- Females of this Xenotype have breasts of any size.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_NormalBreasts
- 758
-
-
BreastSize
-
-
-
rjw_genes_small_breastsFemales of this Xenotype have smaller breasts.
- Genes/Icons/Placeholder
+ Genes/Icons/Small_BreastsRJW_Genes.Gene_SmallBreasts759
@@ -121,7 +85,7 @@
rjw_genes_loose_anusThe Anus of this Xenotype is roomy.
- Genes/Icons/Placeholder
+ Genes/Icons/Loose_AnusRJW_Genes.Gene_LooseAnus760
@@ -129,23 +93,11 @@
-
- rjw_genes_normal_anus
-
- Anus of this Xenotype can be any size.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_NormalAnus
- 761
-
-
AnusSize
-
-
-
rjw_genes_tight_anusThe anus of this Xenotype is small.
- Genes/Icons/Placeholder
+ Genes/Icons/Tight_AnusRJW_Genes.Gene_TightAnus762
diff --git a/Common/Defs/Genes/GeneDefs_GenitaliaTypes.xml b/Common/Defs/Genes/GeneDefs_GenitaliaTypes.xml
index b646058..f7ab982 100644
--- a/Common/Defs/Genes/GeneDefs_GenitaliaTypes.xml
+++ b/Common/Defs/Genes/GeneDefs_GenitaliaTypes.xml
@@ -7,25 +7,13 @@
GenitalType
0
-
-
-
-
- rjw_genes_human_genitalia
-
- Carriers of this carry genitalia similar to humans.
- Genes/Icons/Placeholder
- RJW_Genes.Gene_HumanGenitalia
- 801rjw_genes_equine_genitaliaCarriers of this gene develop equine genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_EquineRJW_Genes.Gene_EquineGenitalia802
@@ -34,7 +22,7 @@
rjw_genes_canine_genitaliaCarriers of this gene develop canine genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_Canine_2RJW_Genes.Gene_CanineGenitalia803
@@ -43,7 +31,7 @@
rjw_genes_feline_genitaliaCarriers of this gene develop feline genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_FelineRJW_Genes.Gene_FelineGenitalia804
@@ -52,7 +40,7 @@
rjw_genes_demonic_genitaliaCarriers of this gene have demonic genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_DemonRJW_Genes.Gene_DemonicGenitalia805
@@ -61,7 +49,7 @@
rjw_genes_dragon_genitaliaCarriers of this gene develop dragon genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_DraconicRJW_Genes.Gene_DragonGenitalia806
@@ -70,7 +58,7 @@
rjw_genes_slime_genitaliaCarriers of this gene have slime genitalia.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_SlimeRJW_Genes.Gene_SlimeGenitalia807
@@ -79,7 +67,7 @@
rjw_genes_ovipositor_genitaliaCarriers of this gene have ovipositors similar to insects.
- Genes/Icons/Placeholder
+ Genes/Icons/Genitalia_InsectRJW_Genes.Gene_OvipositorGenitalia808
diff --git a/Common/Defs/Genes/GeneDefs_Reproduction.xml b/Common/Defs/Genes/GeneDefs_Reproduction.xml
index 3599418..ef348fd 100644
--- a/Common/Defs/Genes/GeneDefs_Reproduction.xml
+++ b/Common/Defs/Genes/GeneDefs_Reproduction.xml
@@ -6,7 +6,7 @@
ReproductionXenotypes with this Gene are Hypersexual (Nymphs).
- Genes/Icons/Placeholder
+ Genes/Icons/Hypersexual1
@@ -20,7 +20,7 @@
ReproductionXenotypes with this Gene are Rapists.
- Genes/Icons/Placeholder
+ Genes/Icons/Rape2
diff --git a/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml b/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml
index 521e878..e168411 100644
--- a/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml
+++ b/Common/Defs/Genes/GeneDefs_SpecifiedGender.xml
@@ -6,7 +6,7 @@
rjw_genes_genderThis Xenotype only has females.0
- Genes/Icons/Placeholder
+ Genes/Icons/Female_OnlyRJW_Genes.Gene_FemaleOnly1
@@ -17,7 +17,7 @@
This Xenotype only has males.0
- Genes/Icons/Placeholder
+ Genes/Icons/Male_OnlyRJW_Genes.Gene_MaleOnly2
diff --git a/Common/Patches/Xenotypes/GenitaliaUpdate.xml b/Common/Patches/Xenotypes/GenitaliaUpdate.xml
index cda55ba..f0af1b5 100644
--- a/Common/Patches/Xenotypes/GenitaliaUpdate.xml
+++ b/Common/Patches/Xenotypes/GenitaliaUpdate.xml
@@ -16,7 +16,6 @@
- -->
Defs/XenotypeDef[defName="Dirtmole"]/genes
@@ -39,12 +38,10 @@
+ -->
Defs/XenotypeDef[defName="Neanderthal"]/genes
-
diff --git a/Common/Textures/Genes/Icons/Big_Breasts.png b/Common/Textures/Genes/Icons/Big_Breasts.png
new file mode 100644
index 0000000..904613e
Binary files /dev/null and b/Common/Textures/Genes/Icons/Big_Breasts.png differ
diff --git a/Common/Textures/Genes/Icons/Big_Male_Genitalia.png b/Common/Textures/Genes/Icons/Big_Male_Genitalia.png
new file mode 100644
index 0000000..ed4810d
Binary files /dev/null and b/Common/Textures/Genes/Icons/Big_Male_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/Bonus_Cum.png b/Common/Textures/Genes/Icons/Bonus_Cum.png
new file mode 100644
index 0000000..e6c51a4
Binary files /dev/null and b/Common/Textures/Genes/Icons/Bonus_Cum.png differ
diff --git a/Common/Textures/Genes/Icons/Cumflation.png b/Common/Textures/Genes/Icons/Cumflation.png
new file mode 100644
index 0000000..4d8d470
Binary files /dev/null and b/Common/Textures/Genes/Icons/Cumflation.png differ
diff --git a/Common/Textures/Genes/Icons/Cumflation_Immunity.png b/Common/Textures/Genes/Icons/Cumflation_Immunity.png
new file mode 100644
index 0000000..643e0bf
Binary files /dev/null and b/Common/Textures/Genes/Icons/Cumflation_Immunity.png differ
diff --git a/Common/Textures/Genes/Icons/Elasticity.png b/Common/Textures/Genes/Icons/Elasticity.png
new file mode 100644
index 0000000..91a8fd7
Binary files /dev/null and b/Common/Textures/Genes/Icons/Elasticity.png differ
diff --git a/Common/Textures/Genes/Icons/Empty.png b/Common/Textures/Genes/Icons/Empty.png
new file mode 100644
index 0000000..1f295f8
Binary files /dev/null and b/Common/Textures/Genes/Icons/Empty.png differ
diff --git a/Common/Textures/Genes/Icons/Extra_Anus.png b/Common/Textures/Genes/Icons/Extra_Anus.png
new file mode 100644
index 0000000..1075bbd
Binary files /dev/null and b/Common/Textures/Genes/Icons/Extra_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/Extra_Breasts.png b/Common/Textures/Genes/Icons/Extra_Breasts.png
new file mode 100644
index 0000000..f2c470e
Binary files /dev/null and b/Common/Textures/Genes/Icons/Extra_Breasts.png differ
diff --git a/Common/Textures/Genes/Icons/Futa.png b/Common/Textures/Genes/Icons/Futa.png
new file mode 100644
index 0000000..dfadd1c
Binary files /dev/null and b/Common/Textures/Genes/Icons/Futa.png differ
diff --git a/Common/Textures/Genes/Icons/Generous_Donor.png b/Common/Textures/Genes/Icons/Generous_Donor.png
new file mode 100644
index 0000000..e49daf1
Binary files /dev/null and b/Common/Textures/Genes/Icons/Generous_Donor.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Canine.png b/Common/Textures/Genes/Icons/Genitalia_Canine.png
new file mode 100644
index 0000000..84df9d2
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Canine.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Canine_2.png b/Common/Textures/Genes/Icons/Genitalia_Canine_2.png
new file mode 100644
index 0000000..a9d6c1d
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Canine_2.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Demon.png b/Common/Textures/Genes/Icons/Genitalia_Demon.png
new file mode 100644
index 0000000..7831b4d
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Demon.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Draconic.png b/Common/Textures/Genes/Icons/Genitalia_Draconic.png
new file mode 100644
index 0000000..cb763d6
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Draconic.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Equine.png b/Common/Textures/Genes/Icons/Genitalia_Equine.png
new file mode 100644
index 0000000..51c7c1c
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Equine.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Feline.png b/Common/Textures/Genes/Icons/Genitalia_Feline.png
new file mode 100644
index 0000000..c03cc27
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Feline.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Insect.png b/Common/Textures/Genes/Icons/Genitalia_Insect.png
new file mode 100644
index 0000000..e71cabe
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Insect.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Slime.png b/Common/Textures/Genes/Icons/Genitalia_Slime.png
new file mode 100644
index 0000000..ee7ae69
Binary files /dev/null and b/Common/Textures/Genes/Icons/Genitalia_Slime.png differ
diff --git a/Common/Textures/Genes/Icons/Hypersexual.png b/Common/Textures/Genes/Icons/Hypersexual.png
new file mode 100644
index 0000000..417196d
Binary files /dev/null and b/Common/Textures/Genes/Icons/Hypersexual.png differ
diff --git a/Common/Textures/Genes/Icons/Loose_Anus.png b/Common/Textures/Genes/Icons/Loose_Anus.png
new file mode 100644
index 0000000..c96dec3
Binary files /dev/null and b/Common/Textures/Genes/Icons/Loose_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png b/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png
new file mode 100644
index 0000000..63b6a9c
Binary files /dev/null and b/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/More_Egg_Space.png b/Common/Textures/Genes/Icons/More_Egg_Space.png
new file mode 100644
index 0000000..35fbcb3
Binary files /dev/null and b/Common/Textures/Genes/Icons/More_Egg_Space.png differ
diff --git a/Common/Textures/Genes/Icons/Much_Bonus_Cum.png b/Common/Textures/Genes/Icons/Much_Bonus_Cum.png
new file mode 100644
index 0000000..d512725
Binary files /dev/null and b/Common/Textures/Genes/Icons/Much_Bonus_Cum.png differ
diff --git a/Common/Textures/Genes/Icons/Necrophile.png b/Common/Textures/Genes/Icons/Necrophile.png
new file mode 100644
index 0000000..5b2bf61
Binary files /dev/null and b/Common/Textures/Genes/Icons/Necrophile.png differ
diff --git a/Common/Textures/Genes/Icons/No_Anus.png b/Common/Textures/Genes/Icons/No_Anus.png
new file mode 100644
index 0000000..f5a9a03
Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/No_Breasts.png b/Common/Textures/Genes/Icons/No_Breasts.png
new file mode 100644
index 0000000..28729b8
Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Breasts.png differ
diff --git a/Common/Textures/Genes/Icons/No_Cum.png b/Common/Textures/Genes/Icons/No_Cum.png
new file mode 100644
index 0000000..2084b5e
Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Cum.png differ
diff --git a/Common/Textures/Genes/Icons/No_Female_Genitalia.png b/Common/Textures/Genes/Icons/No_Female_Genitalia.png
new file mode 100644
index 0000000..9405ce7
Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Female_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/No_Male_Genitalia.png b/Common/Textures/Genes/Icons/No_Male_Genitalia.png
new file mode 100644
index 0000000..ce1fa4e
Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Male_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/Rape.png b/Common/Textures/Genes/Icons/Rape.png
new file mode 100644
index 0000000..8ad84ea
Binary files /dev/null and b/Common/Textures/Genes/Icons/Rape.png differ
diff --git a/Common/Textures/Genes/Icons/Small_Breasts.png b/Common/Textures/Genes/Icons/Small_Breasts.png
new file mode 100644
index 0000000..bfae844
Binary files /dev/null and b/Common/Textures/Genes/Icons/Small_Breasts.png differ
diff --git a/Common/Textures/Genes/Icons/Small_Male_Genitalia.png b/Common/Textures/Genes/Icons/Small_Male_Genitalia.png
new file mode 100644
index 0000000..58aa367
Binary files /dev/null and b/Common/Textures/Genes/Icons/Small_Male_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/Tight_Anus.png b/Common/Textures/Genes/Icons/Tight_Anus.png
new file mode 100644
index 0000000..dd355fb
Binary files /dev/null and b/Common/Textures/Genes/Icons/Tight_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png b/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png
new file mode 100644
index 0000000..d0931fa
Binary files /dev/null and b/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/Zoophile.png b/Common/Textures/Genes/Icons/Zoophile.png
new file mode 100644
index 0000000..ed45040
Binary files /dev/null and b/Common/Textures/Genes/Icons/Zoophile.png differ
diff --git a/Common/Textures/Genes/Icons/Zoophile_2.png b/Common/Textures/Genes/Icons/Zoophile_2.png
new file mode 100644
index 0000000..d313bcb
Binary files /dev/null and b/Common/Textures/Genes/Icons/Zoophile_2.png differ
diff --git a/Common/Textures/Genes/Icons/extra_female.png b/Common/Textures/Genes/Icons/extra_female.png
new file mode 100644
index 0000000..1a6ae6e
Binary files /dev/null and b/Common/Textures/Genes/Icons/extra_female.png differ
diff --git a/Common/Textures/Genes/Icons/extra_male.png b/Common/Textures/Genes/Icons/extra_male.png
new file mode 100644
index 0000000..5390ecc
Binary files /dev/null and b/Common/Textures/Genes/Icons/extra_male.png differ
diff --git a/Common/Textures/Genes/Icons/female_only.png b/Common/Textures/Genes/Icons/female_only.png
new file mode 100644
index 0000000..7b97f02
Binary files /dev/null and b/Common/Textures/Genes/Icons/female_only.png differ
diff --git a/Common/Textures/Genes/Icons/male_only.png b/Common/Textures/Genes/Icons/male_only.png
new file mode 100644
index 0000000..7e15cbc
Binary files /dev/null and b/Common/Textures/Genes/Icons/male_only.png differ
diff --git a/KNOWN_BUGS.md b/KNOWN_BUGS.md
index d1153c0..3fe7439 100644
--- a/KNOWN_BUGS.md
+++ b/KNOWN_BUGS.md
@@ -56,4 +56,19 @@ Ignore this. The pawns seem to have the right sex and genitalia, I cannot "catch
Aimed Solution:
-Patch ChangeSex to skip for pawns with the two genes producing this.
\ No newline at end of file
+Patch ChangeSex to skip for pawns with the two genes producing this.
+
+## Insect Breeder does not fertilize
+
+Error:
+
+A pawn with insect breeder fucks a pawn with unfertilized insect eggs, but the eggs stay unfertilized.
+
+
+Notes:
+
+So testing this is super hard.
+
+One thing - you need to have anal or vaginal sex for this to work. Any other sex type is currently not supported.
+
+For anything else, please help me gather information on this what you did and how things look. I reworked it once but I think it should work now.
\ No newline at end of file
diff --git a/README.md b/README.md
index c5dc677..5abb92e 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,11 @@ This is my first Mod I started from scratch so any feedback is very welcome.
- Some Traits, Cumflation Immunity, Elasticity
- Cum-Amount Changes, Transfer Nutrition
- Mech Breeding / Insect Breeding Support
+- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance)
See [planned things](TODOS.md) and feel free to contribute.
+With the Human-Animal-Gene Inheritance we have a lot of XML that you can contribute!
+We have a [template](./Common/Defs/RaceGeneDefs/RaceGeneDefs_template.xml) and you can add animals and/or genes from mods there.
## Bugs?
@@ -24,4 +27,12 @@ Please consider looking at [the known bugs](./KNOWN_BUGS.md)
## Genes vs. Races
I currently don't use Races after Biotech was introduced.
-One of the main motivations was to have genes being added to the xenotypes that other mods and the base game add, e.g. adding demonic penis for impids.
\ No newline at end of file
+One of the main motivations was to have genes being added to the xenotypes that other mods and the base game add, e.g. adding demonic penis for impids.
+
+## Load Order / Deps
+
+Please load this after any mod adding genes, and after the used RJW-Mods (Licentia, Sexperience).
+
+Should not be used with the original RJW_Animal_Gene_Inheritance anymore.
+
+There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now.
\ No newline at end of file
diff --git a/Source/Animal_Inheritance/GeneChance.cs b/Source/Animal_Inheritance/BestialityGeneInheritanceDef.cs
similarity index 82%
rename from Source/Animal_Inheritance/GeneChance.cs
rename to Source/Animal_Inheritance/BestialityGeneInheritanceDef.cs
index 2c5453f..04a9735 100644
--- a/Source/Animal_Inheritance/GeneChance.cs
+++ b/Source/Animal_Inheritance/BestialityGeneInheritanceDef.cs
@@ -6,7 +6,7 @@ using System.Threading.Tasks;
namespace RJW_BGS
{
- public class GeneChance
+ public class BestialityGeneInheritanceDef
{
public string defName;
public float chance = 1f;
diff --git a/Source/Animal_Inheritance/First.cs b/Source/Animal_Inheritance/First.cs
index 74eeb6c..8d353f7 100644
--- a/Source/Animal_Inheritance/First.cs
+++ b/Source/Animal_Inheritance/First.cs
@@ -15,17 +15,24 @@ namespace RJW_BGS
static First()
{
RJWcopy.Racegroupdictbuilder();
- //foreach (RaceGroupDef raceGroupDef2 in DefDatabase.AllDefs)
- //{
- //Log.Message("defName = " + raceGroupDef2.defName);
- // if (raceGroupDef2.raceNames != null)
- // {
- // foreach (string race in raceGroupDef2.raceNames)
- // {
- //Log.Message(race);
- // }
- // }
- //}
+ //Prints all found race dicts (debugging only)
+ //logAllFoundRaceGroupGenes
+
+ }
+
+ private static void logAllFoundRaceGroupGenes()
+ {
+ foreach (RaceGroupDef def in DefDatabase.AllDefs)
+ {
+ Log.Message("defName = " + def.defName);
+ if (def.raceNames != null)
+ {
+ foreach (string race in def.raceNames)
+ {
+ Log.Message(race);
+ }
+ }
+ }
}
}
}
diff --git a/Source/Animal_Inheritance/InheritanceUtility.cs b/Source/Animal_Inheritance/InheritanceUtility.cs
index 8d5e953..8456f45 100644
--- a/Source/Animal_Inheritance/InheritanceUtility.cs
+++ b/Source/Animal_Inheritance/InheritanceUtility.cs
@@ -12,40 +12,33 @@ namespace RJW_BGS
{
public static List AnimalInheritedGenes(Pawn father, Pawn mother)
{
- //One parent must be an animal and the other must be human, so only one needs to return
List genelist = new List();
+ //If Both are Humans, or Both are animals, do nothing & return empty GeneList
+ if (!mother.RaceProps.Humanlike && !father.RaceProps.Humanlike)
+ return genelist;
+ if (mother.RaceProps.Humanlike && father.RaceProps.Humanlike)
+ return genelist;
+
+
+ //One parent must be an animal and the other must be human, so only one needs to return
if (father != null && !father.RaceProps.Humanlike)
{
return SelectGenes(father);
}
-
if (mother != null && !mother.RaceProps.Humanlike)
{
return SelectGenes(mother);
- //PawnKindDef pawnKindDef = mother.kindDef;
- //RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
- //if (raceGeneDef != null)
- //{
- // GeneDef gene = null;
- //In case you hit a modded gene not currently active try again.
- // for (int i = 0; i < 50 || gene == null; i++)
- // {
- // if (raceGeneDef.genes.Any())
- // {
- // gene = DefDatabase.GetNamed(raceGeneDef.genes.RandomElement());
- // }
- // }
- // if (gene != null)
- // {
- // genelist.Add(gene);
-//
- // }
- //
- // }
}
+
return genelist;
}
+ ///
+ /// Looks up potential genes for an animal,
+ /// checks their chance and returns all 'triggered' genes.
+ ///
+ /// The animal for which to look up genes (Animals are Pawns in RW)
+ /// The genes that will be inherited from this animal.
public static List SelectGenes(Pawn pawn)
{
List genelist = new List();
@@ -53,7 +46,7 @@ namespace RJW_BGS
RaceGeneDef raceGeneDef = RJWcopy.GetRaceGenDefInternal(pawnKindDef);
if (raceGeneDef != null)
{
- foreach (GeneChance gene in raceGeneDef.genes)
+ foreach (BestialityGeneInheritanceDef gene in raceGeneDef.genes)
{
if (gene.chance >= Rand.Range(0.01f,1f))
{
diff --git a/Source/Animal_Inheritance/RJWcopies.cs b/Source/Animal_Inheritance/RJWcopies.cs
index cabfd63..2c11074 100644
--- a/Source/Animal_Inheritance/RJWcopies.cs
+++ b/Source/Animal_Inheritance/RJWcopies.cs
@@ -41,33 +41,37 @@ namespace RJW_BGS
string raceName = kindDef.race.defName;
string pawnKindName = kindDef.defName;
IEnumerable allDefs = DefDatabase.AllDefs;
- List list = allDefs.Where(delegate (RaceGroupDef group)
+ List pawnKindDefs = allDefs.Where(delegate (RaceGroupDef group)
{
List pawnKindNames = group.pawnKindNames;
return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
}).ToList();
- List list2 = allDefs.Where(delegate (RaceGroupDef group)
+ List raceNameDefs = allDefs.Where(delegate (RaceGroupDef group)
{
List raceNames = group.raceNames;
return raceNames != null && raceNames.Contains(raceName);
}).ToList();
- int num = list.Count() + list2.Count();
- if (num == 0)
+
+ int availableDefs = pawnKindDefs.Count() + raceNameDefs.Count();
+ if (availableDefs == 0)
{
+ //Exit Early
return null;
}
- if (num == 1)
+ if (availableDefs == 1)
{
- return list.Concat(list2).Single();
+ return pawnKindDefs.Concat(raceNameDefs).Single();
}
+
RaceGroupDef result;
- if ((result = list.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
+ if ((result = pawnKindDefs.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
{
- if ((result = list2.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
+ if ((result = raceNameDefs.FirstOrDefault((RaceGroupDef match) => !IsThisMod(match))) == null)
{
- result = (list.FirstOrDefault() ?? list2.FirstOrDefault());
+ result = (pawnKindDefs.FirstOrDefault() ?? raceNameDefs.FirstOrDefault());
}
}
+
return result;
}
@@ -81,29 +85,31 @@ namespace RJW_BGS
string raceName = kindDef.race.defName;
string pawnKindName = kindDef.defName;
RaceGroupDef raceGroupDef = GetRaceGroupDef(kindDef);
- //string raceGroupName = GetRaceGroupDef(kindDef).defName;
IEnumerable allDefs = DefDatabase.AllDefs;
Log.Message(allDefs.Count().ToString());
- List list = allDefs.Where(delegate (RaceGeneDef group)
+ List pawnKindDefs = allDefs.Where(delegate (RaceGeneDef group)
{
List pawnKindNames = group.pawnKindNames;
return pawnKindNames != null && pawnKindNames.Contains(pawnKindName);
}).ToList();
- List list2 = allDefs.Where(delegate (RaceGeneDef group)
+ List raceKindDefs = allDefs.Where(delegate (RaceGeneDef group)
{
List raceNames = group.raceNames;
return raceNames != null && raceNames.Contains(raceName);
}).ToList();
- List list3 = new List();
+ List raceGroupDefs = new List();
if (raceGroupDef != null)
{
+ /*
+ // Log Messages for Debugging Only, prints the Genes found for this individual
Log.Message("found a raceGroupDef");
Log.Message(raceGroupDef.defName);
foreach (RaceGeneDef rgd in allDefs)
{
Log.Message(rgd.defName);
}
- list3 = allDefs.Where(delegate (RaceGeneDef group)
+ */
+ raceGroupDefs = allDefs.Where(delegate (RaceGeneDef group)
{
String raceGroupDefName = group.raceGroup;
return raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName;
@@ -111,17 +117,17 @@ namespace RJW_BGS
}
RaceGeneDef result = null;
//First check if there is a matching pawnkinddef then race, then racegroup
- if (list.Any())
+ if (pawnKindDefs.Any())
{
- result = list.RandomElement();
+ result = pawnKindDefs.RandomElement();
}
- else if (list2.Any() && result == null)
+ else if (raceKindDefs.Any() && result == null)
{
- result = list2.RandomElement();
+ result = raceKindDefs.RandomElement();
}
- else if (list3.Any() && result == null)
+ else if (raceGroupDefs.Any() && result == null)
{
- result = list3.RandomElement();
+ result = raceGroupDefs.RandomElement();
}
else
{
diff --git a/Source/Animal_Inheritance/RaceGeneDef.cs b/Source/Animal_Inheritance/RaceGeneDef.cs
index 1d7e42b..c4cbcea 100644
--- a/Source/Animal_Inheritance/RaceGeneDef.cs
+++ b/Source/Animal_Inheritance/RaceGeneDef.cs
@@ -14,7 +14,7 @@ namespace RJW_BGS
public String raceGroup;
public List raceNames;
public List pawnKindNames;
- public List genes;
+ public List genes;
//public List genechances;
public String hybridName;
}
diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs
index 88cf099..859f9e3 100644
--- a/Source/GeneDefOf.cs
+++ b/Source/GeneDefOf.cs
@@ -12,7 +12,6 @@ namespace RJW_Genes
public static readonly GeneCategoryDef rjw_genes_breeding;
// Base Genitalia Types
- public static readonly GeneDef rjw_genes_human_genitalia;
public static readonly GeneDef rjw_genes_equine_genitalia;
public static readonly GeneDef rjw_genes_demonic_genitalia;
public static readonly GeneDef rjw_genes_dragon_genitalia;
@@ -34,16 +33,12 @@ namespace RJW_Genes
// Genitalia Sizes
public static readonly GeneDef rjw_genes_big_male_genitalia;
- public static readonly GeneDef rjw_genes_normal_male_genitalia;
public static readonly GeneDef rjw_genes_small_male_genitalia;
public static readonly GeneDef rjw_genes_loose_female_genitalia;
- public static readonly GeneDef rjw_genes_normal_female_genitalia;
public static readonly GeneDef rjw_genes_tight_female_genitalia;
public static readonly GeneDef rjw_genes_big_breasts;
- public static readonly GeneDef rjw_genes_normal_breasts;
public static readonly GeneDef rjw_genes_small_breasts;
public static readonly GeneDef rjw_genes_loose_anus;
- public static readonly GeneDef rjw_genes_normal_anus;
public static readonly GeneDef rjw_genes_tight_anus;
// Gender
diff --git a/Source/Genes/Breeding/Patch_EggFertilization.cs b/Source/Genes/Breeding/Patch_EggFertilization.cs
new file mode 100644
index 0000000..46ec598
--- /dev/null
+++ b/Source/Genes/Breeding/Patch_EggFertilization.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using HarmonyLib;
+using Verse;
+using rjw;
+
+namespace RJW_Genes
+{
+ ///
+ /// This Class patches the AfterSexUtility to also fertilize eggs if Pawn A has "InsectBreeder" and Pawn B has Insect Eggs.
+ /// Patched Class is https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Common/Helpers/SexUtility.cs
+ ///
+ /// Normal Egg-Pregnancy logic is in https://gitgud.io/Ed86/rjw/-/blob/master/1.4/Source/Modules/Pregnancy/Pregnancy_Helper.cs
+ ///
+ [HarmonyPatch(typeof(SexUtility), "Aftersex")]
+ static class PatchEggFertilizationHelper
+ {
+ [HarmonyTranspiler]
+ public static void Postfix(SexProps props)
+ {
+ // Only Fertilize on vaginal / anal sex
+ if (!(props.sexType == xxx.rjwSextype.Vaginal || props.sexType == xxx.rjwSextype.Anal))
+ {
+ return;
+ }
+
+
+ if (canDoEggFertilization(props.pawn, props.partner))
+ {
+ // Pawn has gene and Partner has eggs
+ if (props.pawn.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.partner).NullOrEmpty())
+ {
+ Pawn eggHolder = props.partner;
+ Pawn impregnator = props.pawn;
+
+ foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder))
+ {
+ if (!egg.fertilized)
+ egg.Fertilize(impregnator);
+ }
+ }
+
+ // Partner has gene and Pawn has eggs
+ if (props.partner.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(props.pawn).NullOrEmpty())
+ {
+ Pawn eggHolder = props.pawn;
+ Pawn impregnator = props.partner;
+
+ foreach (Hediff_InsectEgg egg in getEggsforPawn(eggHolder))
+ {
+ if (!egg.fertilized)
+ egg.Fertilize(impregnator);
+ }
+ }
+
+
+ }
+ }
+
+
+ private static Boolean canDoEggFertilization(Pawn a, Pawn b)
+ {
+
+ // No Partner / Other Errors
+ if (a != null || b != null)
+ return false;
+ // None of the pawns has the relevant gene
+ if (!a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder))
+ return false;
+ // None of the pawns has eggs
+ if (getEggsforPawn(a).NullOrEmpty() && getEggsforPawn(b).NullOrEmpty())
+ return false;
+
+ // A has gene and B has eggs
+ if (a.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(b).NullOrEmpty())
+ {
+ return true;
+ }
+ // B has gene and A has eggs
+ if (b.genes.GenesListForReading.Any(x => x.def == GeneDefOf.rjw_genes_insectbreeder) && !getEggsforPawn(a).NullOrEmpty())
+ {
+ return true;
+ }
+ // Any other case: Do nothing
+ return false;
+ }
+
+ private static List getEggsforPawn(Pawn pawn)
+ {
+ List eggs = new List();
+ pawn.health.hediffSet.GetHediffs(ref eggs);
+ foreach (var egg in eggs)
+ egg.Fertilize(pawn);
+
+ return eggs;
+ }
+ }
+}
diff --git a/Source/Genes/Genitalia/Gene_HumanGenitalia.cs b/Source/Genes/Genitalia/Gene_HumanGenitalia.cs
deleted file mode 100644
index 077e0c4..0000000
--- a/Source/Genes/Genitalia/Gene_HumanGenitalia.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-using Verse;
-using rjw;
-
-namespace RJW_Genes
-{
- public class Gene_HumanGenitalia : RJW_Gene
- {
- public override void PostMake()
- {
- base.PostMake();
-
- GenitaliaChanger.ChangeGenitalia(this.pawn,Genital_Helper.average_penis,Genital_Helper.average_vagina,Genital_Helper.average_anus);
- }
-
- public override void PostAdd()
- {
- base.PostAdd();
- GenitaliaChanger.ChangeGenitalia(this.pawn, Genital_Helper.average_penis, Genital_Helper.average_vagina, Genital_Helper.average_anus);
- }
-
- }
-
-}
diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/Genes/Genitalia/GenitaliaUtility.cs
index e11f06f..4dc289a 100644
--- a/Source/Genes/Genitalia/GenitaliaUtility.cs
+++ b/Source/Genes/Genitalia/GenitaliaUtility.cs
@@ -23,16 +23,17 @@ namespace RJW_Genes
if (!gene.Overridden)
return gene.def;
}
-
- return GeneDefOf.rjw_genes_human_genitalia;
+ return null;
}
public static HediffDef GetPenisForGene(GeneDef gene)
{
+ if (gene == null)
+ return Genital_Helper.average_penis;
+
switch (gene.defName)
{
- case "rjw_genes_human_genitalia": return Genital_Helper.average_penis;
case "rjw_genes_equine_genitalia": return Genital_Helper.equine_penis;
case "rjw_genes_canine_genitalia": return Genital_Helper.canine_penis;
case "rjw_genes_feline_genitalia": return Genital_Helper.feline_penis;
@@ -48,9 +49,11 @@ namespace RJW_Genes
public static HediffDef GetVaginaForGene(GeneDef gene)
{
+ if (gene == null)
+ return Genital_Helper.average_vagina;
+
switch (gene.defName)
{
- case "rjw_genes_human_genitalia": return Genital_Helper.average_vagina;
case "rjw_genes_equine_genitalia": return Genital_Helper.equine_vagina;
case "rjw_genes_canine_genitalia": return Genital_Helper.canine_vagina;
case "rjw_genes_feline_genitalia": return Genital_Helper.feline_vagina;
@@ -65,10 +68,11 @@ namespace RJW_Genes
public static HediffDef GetAnusForGene(GeneDef gene)
{
+ if (gene == null)
+ return Genital_Helper.average_anus;
switch (gene.defName)
{
//TODO: Do I want the default to be generic or average for feline,equine and canine?
- case "rjw_genes_human_genitalia": return Genital_Helper.average_anus;
case "rjw_genes_equine_genitalia": return Genital_Helper.average_anus;
case "rjw_genes_canine_genitalia": return Genital_Helper.average_anus;
case "rjw_genes_feline_genitalia": return Genital_Helper.average_anus;
@@ -83,10 +87,12 @@ namespace RJW_Genes
public static HediffDef GetBreastsForGene(GeneDef gene)
{
+ if (gene == null)
+ return Genital_Helper.average_breasts;
+
switch (gene.defName)
{
//TODO: Do I want the default to be generic or average?
- case "rjw_genes_human_genitalia": return Genital_Helper.average_breasts;
case "rjw_genes_equine_genitalia": return Genital_Helper.average_breasts;
case "rjw_genes_canine_genitalia": return Genital_Helper.average_breasts;
case "rjw_genes_feline_genitalia": return Genital_Helper.average_breasts;
diff --git a/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs b/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs
deleted file mode 100644
index 8ee0a45..0000000
--- a/Source/Genes/GenitaliaSize/Gene_NormalAnus.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Verse;
-using rjw;
-
-namespace RJW_Genes
-{
- ///
- /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
- ///
- public class Gene_NormalAnus : RJW_Gene
- {
-
- public override void PostMake()
- {
- base.PostMake();
- }
-
- }
-}
diff --git a/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs b/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs
deleted file mode 100644
index 2b8f193..0000000
--- a/Source/Genes/GenitaliaSize/Gene_NormalBreasts.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using rjw;
-
-namespace RJW_Genes
-{
- ///
- /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
- ///
- public class Gene_NormalBreasts : RJW_Gene
- {
-
- public override void PostMake()
- {
- base.PostMake();
- }
-
- }
-}
diff --git a/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs
deleted file mode 100644
index fce0c87..0000000
--- a/Source/Genes/GenitaliaSize/Gene_NormalFemaleGenitalia.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using Verse;
-using rjw;
-
-namespace RJW_Genes
-{
- ///
- /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
- ///
- public class Gene_NormalFemaleGenitalia : RJW_Gene
- {
-
- public override void PostMake()
- {
- base.PostMake();
- }
-
-
- }
-}
diff --git a/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs
deleted file mode 100644
index 2fa6247..0000000
--- a/Source/Genes/GenitaliaSize/Gene_NormalMaleGenitalia.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-namespace RJW_Genes
-{
- ///
- /// Dummy Gene that does not alter the genitalia size. Normal RJW Logic and rolled sizes are kept.
- ///
- public class Gene_NormalMaleGenitalia : RJW_Gene
- {
-
- public override void PostMake()
- {
- base.PostMake();
- }
-
- }
-}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index b8edc5b..94d2403 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -27,7 +27,7 @@
False
- ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
+ ..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dllFalse
@@ -35,7 +35,7 @@
False
- ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\RJW\1.4\Assemblies\RJW.dll
+ ..\..\rjw\1.4\Assemblies\RJW.dllFalse
@@ -51,7 +51,12 @@
- ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ ..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll
+ False
+
+
+ ..\..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll
+ False
@@ -65,11 +70,12 @@
-
+
+
@@ -94,10 +100,6 @@
-
-
-
-
@@ -111,7 +113,6 @@
-
diff --git a/TODOS.md b/TODOS.md
index 5bf70df..a03b835 100644
--- a/TODOS.md
+++ b/TODOS.md
@@ -6,10 +6,16 @@ So any help is very appreciated, even if it is just pointing me to existing simi
## Planned Genes
**Sanguophage like Cumwhores** adding Hemogen and refilling it by getting semen.
-Showstopper here is the amount of code required, and that I need to understand a bit better of harmony to run the AfterSexUtility and modulate SexChances.
+Showstopper here is the amount of code required, and that I need to understand a bit better of harmony to run the AfterSexUtility and modulate SexChances. My first attempt exploded on adding UI Elements.
**Adjustable Cock-Size** like e.g. artificial genitalia have
+**Infectious Hypersexuality Gene** (Maybe?) add Hypersexuality Gene through sex with a certain chance.
+
+**Stat Boost on Orgasm** restore stamina
+
+**Cum Addiction** add Cum-Addiction from Sexpererience, slowly loose conciousness while addiction is not attended.
+
## Animal Gene Inheritance
It should be doable to have a per-category list of genes that a child can inherit on bestiality.
@@ -25,7 +31,7 @@ Issues:
There were some suggestions on the Discord I saved them somewhere else. I am far away from making that work, but to have them here:
-- Genitalia deal damage as per size
-- Genitalia can cause Terror
+- Genitalia deal damage as per size (on normal sex-use)
+- Genitalia can cause Terror (as ability)
- Cumshot Sniper Abilities
- Healing Pussy
\ No newline at end of file