diff --git a/1.6/Assemblies/Rjw-Genes.dll b/1.6/Assemblies/Rjw-Genes.dll index b494520..4778bf2 100644 Binary files a/1.6/Assemblies/Rjw-Genes.dll and b/1.6/Assemblies/Rjw-Genes.dll differ diff --git a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml index d5efbae..543c542 100644 --- a/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml +++ b/1.6/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml @@ -27,7 +27,7 @@
  • HorsePenis HorseVagina - GenericAnus + Anus
  • 802 @@ -58,7 +58,7 @@
  • DogPenis DogVagina - GenericAnus + Anus
  • 803 @@ -73,7 +73,7 @@
  • CatPenis CatVagina - GenericAnus + Anus
  • 804 @@ -106,7 +106,7 @@
  • DragonPenis DragonVagina - GenericAnus + Anus
  • ScaleLoverQuirk @@ -189,6 +189,8 @@
  • HemiPenis + CloacalVagina + CloacalAnus
  • ScaleLoverQuirk @@ -233,4 +235,31 @@ + + rjw_genes_rodent_genitalia + + Carriers of this gene develop rodent genitalia. + Genes/Icons/Genitalia_croc_icon + +
  • + RodentPenis + RodentVagina +
  • + + + + + rjw_genes_cloacal_genitalia + + Carriers of this gene develop cloacal genitalia. + Genes/Icons/Genitalia_croc_icon + +
  • + CloacalPenis + CloacalVagina + CloacalAnus +
  • +
    +
    + \ No newline at end of file diff --git a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Base.xml b/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Base.xml deleted file mode 100644 index 2e03f2b..0000000 --- a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Base.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - Insect_base - -
  • - AG_InsectBlood - 0.5 -
  • -
  • - rjw_genes_ovipositor_genitalia - 0.5 -
  • -
    -
    - - - Slime_base - -
  • - AG_SlimeBlood - 0.5 -
  • -
  • - rjw_genes_slime_genitalia - 0.5 -
  • -
    -
    -
    \ No newline at end of file diff --git a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Vanilla_Racegroups.xml b/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Vanilla_Racegroups.xml deleted file mode 100644 index ca732bf..0000000 --- a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_Vanilla_Racegroups.xml +++ /dev/null @@ -1,285 +0,0 @@ - - - - Canine - -
  • Canine_Group
  • -
  • CanineAnimal
  • -
  • CanineSingleGenderAnimal
  • -
  • CanineSkinAnimal
  • -
    - -
  • - Ears_Floppy - 0.75 -
  • -
  • - Tail_Furry - 0.2 -
  • -
  • - Furskin - 0.5 -
  • -
  • - rjw_genes_canine_genitalia - 0.4 -
  • -
  • - ViolenceDisabled - 0.05 -
  • -
  • - PsychicBonding - 0.05 -
  • -
  • - Mood_Sanguine - 0.1 -
  • -
    -
    - - - - Insect - -
  • Insect_Group
  • -
  • ArthropodOvipositorAnimal
  • -
  • ArthropodOvipositorHornyAnimal
  • -
    - -
  • - Beauty_Ugly - 0.5 -
  • -
  • - Immunity_Strong - 0.6 -
  • -
  • - ToxicEnvironmentResistance_Partial - 0.4 -
  • -
  • - rjw_genes_ovipositor_genitalia - 0.15 -
  • -
  • - rjw_genes_insectincubator - 0.1 -
  • -
  • - rjw_genes_insectbreeder - 0.1 -
  • -
  • - Body_Thin - 0.3 -
  • -
    -
    - - - Feline - -
  • Feline_Group
  • -
  • FelineAnimal
  • -
  • FelineHornyAnimal
  • -
  • FelineSingleGenderAnimal
  • -
  • AA_SandProwlerAnimal
  • -
    - - -
  • - Tail_Furry - 0.2 -
  • -
  • - Furskin - 0.5 -
  • -
  • - Ears_Cat - 0.9 -
  • -
  • - PsychicBonding - 0.05 -
  • -
  • - Sleepy - 0.25 -
  • -
  • - DarkVision - 0.25 -
  • -
  • - rjw_genes_feline_genitalia - 0.25 -
  • -
    -
    - - - Equine - -
  • Equine_Group
  • -
  • HorseAnimal
  • -
    - -
  • - Furskin - 0.2 -
  • -
  • - rjw_genes_equine_genitalia - 0.25 -
  • -
  • - MoveSpeed_Quick - 0.4 -
  • -
  • - MoveSpeed_VeryQuick - 0.1 -
  • -
  • - rjw_genes_much_fluid - 0.3 -
  • -
  • - rjw_genes_very_much_fluid - 0.05 -
  • -
  • - Body_Hulk - 0.4 -
  • -
    -
    - - - Dragon - -
  • Dragon_Group
  • -
  • ThrumboAnimal
  • -
  • DragonAnimal
  • -
  • DragonSingleGenderAnimal
  • -
    - -
  • - Unstoppable - 0.25 -
  • -
  • - Headbone_CenterHorn - 0.9 -
  • -
  • - VoiceRoar - 0.6 -
  • -
  • - MaxTemp_SmallIncrease - 0.7 -
  • -
  • - MaxTemp_LargeIncrease - 0.1 -
  • -
  • - rjw_genes_dragon_genitalia - 0.6 -
  • -
  • - FireResistant - 0.15 -
  • -
  • - rjw_genes_much_fluid - 0.3 -
  • -
  • - rjw_genes_very_much_fluid - 0.05 -
  • -
  • - Body_Hulk - 0.7 -
  • -
    -
    - - - Rodent - -
  • Rodent_Group
  • -
  • RodentAnimal
  • -
  • RodentSingleGenderAnimal
  • -
  • DragonSingleGenderAnimal
  • -
    - -
  • - Furskin - 0.2 -
  • -
  • - Fertile - 0.25 -
  • -
  • - FastRunner - 0.6 -
  • -
  • - rjw_genes_small_genitalia - 0.6 -
  • -
  • - Immunity_Strong - 0.4 -
  • -
  • - ToxicEnvironmentResistance_Partial - 0.1 -
  • -
  • - Body_Thin - 0.45 -
  • -
    -
    - - - Racoon - -
  • Raccon_Group
  • -
  • RaccoonAnimal
  • -
    - -
  • - Furskin - 0.25 -
  • -
  • - Tail_Furry - 0.25 -
  • -
  • - StrongStomach - 0.5 -
  • -
  • - Immunity_Strong - 0.2 -
  • -
  • - ToxicEnvironmentResistance_Partial - 0.1 -
  • -
    -
    - -
    \ No newline at end of file diff --git a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_template.xml b/1.6/Defs/RaceGeneDefs/RaceGeneDefs_template.xml deleted file mode 100644 index b092257..0000000 --- a/1.6/Defs/RaceGeneDefs/RaceGeneDefs_template.xml +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/1.6/Languages/English/Keyed/Bestiality.xml b/1.6/Languages/English/Keyed/Bestiality.xml deleted file mode 100644 index e6edf59..0000000 --- a/1.6/Languages/English/Keyed/Bestiality.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - animal-hybrid - diff --git a/1.6/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml b/1.6/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml deleted file mode 100644 index bb7012d..0000000 --- a/1.6/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - enabled - If toggled, Animal Pregnancies will try inherit genes. - - - - - genes as xenogenes - If toggled on, animal genes will be added as xenogenes. - - enable VE genetics hybridation - If enabled and if you have VE genetics it will enable the hybridation system. - - - - diff --git a/1.6/Languages/English/Keyed/StatsReports.xml b/1.6/Languages/English/Keyed/StatsReports.xml index 715bccb..63085f9 100644 --- a/1.6/Languages/English/Keyed/StatsReports.xml +++ b/1.6/Languages/English/Keyed/StatsReports.xml @@ -4,5 +4,6 @@ Pawn doesn't have any children. Pawn has a decent amount of children. Pawn has a lot of children. + Unable to geneticaly adapt or alter {PAWN_nameDef}'s genitals. diff --git a/1.6/Mods/Cumpilation/Assemblies/CumpilationPatcher.dll b/1.6/Mods/Cumpilation/Assemblies/CumpilationPatcher.dll index d902457..586660a 100644 Binary files a/1.6/Mods/Cumpilation/Assemblies/CumpilationPatcher.dll and b/1.6/Mods/Cumpilation/Assemblies/CumpilationPatcher.dll differ diff --git a/1.6/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml b/1.6/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml deleted file mode 100644 index aa0c672..0000000 --- a/1.6/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - rjw_genes_animal_control_hediff - - This creature is more controlable with a natural human part. - HediffWithComps - (0.9, 1.0, 0.35) - 1 - -
  • - true -
  • -
    - false -
    - -
    \ No newline at end of file diff --git a/1.6/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml b/1.6/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml deleted file mode 100644 index 80da257..0000000 --- a/1.6/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml +++ /dev/null @@ -1,654 +0,0 @@ - - - - - GR_Manbear_GenGroup - - -
  • GR_Manbear
  • -
  • GR_Bearman
  • -
    - - - -
  • - Immunity_Strong - 0.8 -
  • -
  • - MinTemp_LargeDecrease - 0.8 -
  • -
  • - Aggression_Aggressive - 0.8 -
  • -
  • - Sleepy - 0.8 -
  • -
  • - Beard_Always - 0.8 -
  • -
  • - VoiceRoar - 0.8 -
  • -
  • - Body_Fat - 0.8 -
  • -
  • - Body_Hulk - 0.8 -
  • -
  • - Hair_ReddishBrown - 0.8 -
  • -
  • - Hair_DarkBrown - 0.8 -
  • -
  • - Hair_DarkSaturatedReddish - 0.8 -
  • -
  • - Hair_DarkReddish - 0.8 -
  • -
  • - RobustDigestion - 0.8 -
  • -
  • - Furskin - 0.8 -
  • -
  • - Unstoppable - 0.8 -
  • -
  • - AptitudeTerrible_Artistic - 0.8 -
  • -
  • - AptitudeTerrible_Social - 0.8 -
  • -
  • - AptitudePoor_Intellectual - 0.8 -
  • - -
    - -
    - - - GR_Manalope_GenGroup - - -
  • GR_Manalope
  • -
  • GR_Booman
  • -
    - - - -
  • - FireSpew - 0.8 -
  • -
  • - Beauty_Ugly - 0.8 -
  • -
  • - Hair_Blonde - 0.8 -
  • -
  • - Hair_SandyBlonde - 0.8 -
  • -
  • - Hair_LightOrange - 0.8 -
  • -
  • - rjw_genes_udder - 0.8 -
  • - -
    - -
    - - - GR_Manchicken_GenGroup - - -
  • GR_Manchicken
  • -
  • GR_Turkeyman
  • -
    - - - -
  • - Mood_Optimist - 0.8 -
  • -
  • - Delicate - 0.8 -
  • -
  • - Beauty_Pretty - 0.8 -
  • -
  • - Body_Thin - 0.8 -
  • -
  • - AptitudeTerrible_Melee - 0.8 -
  • -
  • - AptitudeTerrible_Mining - 0.8 -
  • -
  • - AptitudeRemarkable_Social - 0.8 -
  • -
  • - AptitudeStrong_Intellectual - 0.8 -
  • - -
    - -
    - - - GR_Manffalo_GenGroup - - -
  • GR_Manffalo
  • -
  • GR_Muffaloman
  • -
    - - - -
  • - Headbone_Human - 0.9 -
  • -
  • - Headbone_MiniHorns - 0.9 -
  • -
  • - Furskin - 0.9 -
  • -
  • - MinTemp_SmallIncrease - 0.9 -
  • -
  • - rjw_genes_big_male_genitalia - 0.7 -
  • -
  • - rjw_genes_loose_female_genitalia - 0.7 -
  • -
  • - rjw_genes_big_breasts - 0.7 -
  • -
  • - rjw_genes_udder - 0.7 -
  • -
  • - rjw_genes_Needle_genitalia - 0.7 -
  • -
  • - rjw_mc_genes_perm_lactating - 0.05 -
  • -
  • - rjw_genes_zoophile - 0.5 -
  • -
  • - AptitudeTerrible_Intellectual - 0.05 -
  • -
  • - AptitudePoor_Intellectual - 0.7 -
  • -
    - -
    - - - GR_Manwolf_GenGroup - - -
  • GR_Manwolf
  • -
  • GR_Dogman
  • -
    - - - -
  • - AptitudeTerrible_Mining - 0.05 -
  • -
  • - PsychicBonding - 0.05 -
  • -
  • - Mood_Sanguine - 0.05 -
  • -
  • - Ears_Floppy - 0.9 -
  • -
  • - rjw_genes_canine_genitalia - 0.9 -
  • -
  • - Furskin - 0.9 -
  • -
  • - MinTemp_SmallIncrease - 0.9 -
  • -
  • - Libido_High - 0.9 -
  • -
  • - AptitudePoor_Mining - 0.5 -
  • -
  • - rjw_genes_zoophile - 0.5 -
  • -
  • - Mood_Optimist - 0.5 -
  • -
    - -
    - - - GR_Mancat_GenGroup - - -
  • GR_Mancat
  • -
  • GR_Catman
  • -
    - - - -
  • - PsychicBonding - 0.05 -
  • -
  • - AptitudeTerrible_Animals - 0.05 -
  • -
  • - Ears_Cat - 0.9 -
  • -
  • - Body_Thin - 0.9 -
  • -
  • - rjw_genes_feline_genitalia - 0.9 -
  • -
  • - Furskin - 0.9 -
  • -
  • - MinTemp_SmallIncrease - 0.9 -
  • -
  • - rjw_genes_small_male_genitalia - 0.7 -
  • -
  • - rjw_genes_tight_female_genitalia - 0.7 -
  • -
  • - rjw_genes_small_breasts - 0.7 -
  • -
  • - rjw_genes_tight_anus - 0.7 -
  • -
  • - DarkVision - 0.8 -
  • -
  • - AptitudePoor_Animals - 0.5 -
  • -
  • - Beauty_Pretty - 0.7 -
  • -
  • - rjw_genes_zoophile - 0.5 -
  • -
    - -
    - - - GR_Mansquirrel_GenGroup - - -
  • GR_Mansquirrel
  • -
  • GR_Moleman
  • -
    - - - -
  • - MoveSpeed_VeryQuick - 0.8 -
  • -
  • - KindInstinct - 0.8 -
  • -
  • - Delicate - 0.8 -
  • -
  • - Ears_Cat - 0.8 -
  • -
  • - Body_Thin - 0.8 -
  • -
  • - Tail_Furry - 0.8 -
  • -
  • - AptitudeTerrible_Shooting - 0.8 -
  • -
  • - AptitudeTerrible_Melee - 0.8 -
  • -
  • - AptitudeTerrible_Mining - 0.8 -
  • -
  • - AptitudeTerrible_Animals - 0.8 -
  • -
  • - AptitudeStrong_Intellectual - 0.8 -
  • -
  • - rjw_genes_Needle_genitalia - 0.8 -
  • -
  • - rjw_genes_zoophile - 0.8 -
  • - -
    - -
    - - - GR_Thrumboman_GenGroup - - -
  • GR_Thrumboman
  • -
    - - - -
  • - Unstoppable - 0.25 -
  • -
  • - Headbone_CenterHorn - 0.9 -
  • -
  • - VoiceRoar - 0.6 -
  • -
  • - MaxTemp_SmallIncrease - 0.7 -
  • -
  • - MaxTemp_LargeIncrease - 0.1 -
  • -
  • - rjw_genes_dragon_genitalia - 0.6 -
  • -
  • - FireResistant - 0.15 -
  • -
  • - rjw_genes_much_fluid - 0.3 -
  • -
  • - rjw_genes_very_much_fluid - 0.05 -
  • -
  • - Body_Hulk - 0.7 -
  • - -
    - -
    - - - - - GR_Hurseman_GenGroup - - -
  • GR_Hurseman
  • -
    - - - -
  • - Body_Standard - 0.9 -
  • -
  • - Body_Hulk - 0.7 -
  • -
  • - rjw_genes_equine_genitalia - 0.9 -
  • -
  • - rjw_genes_zoophile - 0.5 -
  • -
  • - rjw_genes_much_fluid - 0.5 -
  • -
  • - MoveSpeed_Quick - 0.5 -
  • -
  • - AptitudeTerrible_Mining - 0.5 -
  • -
  • - AptitudeTerrible_Intellectual - 0.5 -
  • -
  • - Furskin - 0.9 -
  • -
  • - MinTemp_SmallIncrease - 0.9 -
  • - -
    - -
    - - - - - GR_Manscarab_GenGroup - - -
  • GR_Manscarab
  • -
    - - - -
  • - Beauty_Ugly - 0.5 -
  • -
  • - Immunity_Strong - 0.6 -
  • -
  • - ToxicEnvironmentResistance_Partial - 0.4 -
  • -
  • - rjw_genes_ovipositor_genitalia - 0.15 -
  • -
  • - rjw_genes_insectincubator - 0.1 -
  • -
  • - rjw_genes_insectbreeder - 0.1 -
  • -
  • - Body_Thin - 0.3 -
  • - -
    - -
    - - - GR_Lizardman_GenGroup - - -
  • GR_Lizardman
  • -
    - - - -
  • - AcidSpray - 0.7 -
  • -
  • - MinTemp_SmallIncrease - 0.7 -
  • -
  • - MaxTemp_SmallIncrease - 0.7 -
  • -
  • - Robust - 0.7 -
  • -
  • - Hair_BaldOnly - 0.7 -
  • -
  • - Beard_NoBeardOnly - 0.7 -
  • -
  • - Body_Standard - 0.7 -
  • -
  • - Headbone_CenterHorn - 0.7 -
  • -
  • - AptitudeTerrible_Artistic - 0.7 -
  • -
  • - AptitudeTerrible_Social - 0.7 -
  • -
  • - rjw_genes_reptilian_genitalia - 0.7 -
  • - -
    - -
    - -
    \ No newline at end of file diff --git a/1.6/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml b/1.6/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml deleted file mode 100644 index b356155..0000000 --- a/1.6/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml +++ /dev/null @@ -1,164 +0,0 @@ - - - - - Bear_Group - - -
  • Bear_Grizzly
  • -
  • Bear_Polar
  • -
    - -
  • GR_Manbear
  • -
  • GR_Bearman
  • -
    -
    - - - Boomalope_Group - -
  • Boomalope
  • -
    - -
  • GR_Manalope
  • -
  • GR_Booman
  • -
    -
    - - - Poultry_Group - -
  • Chicken
  • -
  • Cassowary
  • -
  • Emu
  • -
  • Ostrich
  • -
  • Goose
  • -
  • Turkey
  • -
  • Duck
  • -
    - -
  • GR_Manchicken
  • -
  • GR_Turkeyman
  • -
    -
    - - - Bovine_Group - -
  • Muffalo
  • -
  • Cow
  • -
  • Bison
  • -
  • Yak
  • -
    - - -
  • GR_Manffalo
  • -
  • GR_Muffaloman
  • -
    -
    - - - Canine_Group - -
  • Warg
  • -
  • Wolf_Timber
  • -
  • Wolf_Arctic
  • -
  • Fox_Fennec
  • -
  • Fox_Red
  • -
  • Fox_Arctic
  • -
  • Husky
  • -
  • LabradorRetriever
  • -
  • YorkshireTerrier
  • -
    - - -
  • GR_Manwolf
  • -
  • GR_Dogman
  • -
    -
    - - - Feline_Group - -
  • Cougar
  • -
  • Panther
  • -
  • Lynx
  • -
  • Cat
  • -
    - - -
  • GR_Mancat
  • -
  • GR_Catman
  • -
    -
    - - - Rabbit_Group - -
  • GuineaPig
  • -
  • Hare
  • -
  • Snowhare
  • -
  • Squirrel
  • -
  • Rat
  • -
  • Raccoon
  • -
    - - -
  • GR_Mansquirrel
  • -
  • GR_Moleman
  • -
    -
    - - - Thrumbo_Group - -
  • Thrumbo
  • -
    - - -
  • GR_Thrumboman
  • -
    -
    - - - Equine_Group - -
  • Dromedary
  • -
  • Elk
  • -
  • Horse
  • -
  • Caribou
  • -
  • Donkey
  • -
    - - -
  • GR_Hurseman
  • -
    -
    - - - Insect_Group - -
  • Megascarab
  • -
  • Spelopede
  • -
  • Megaspider
  • -
    - - -
  • GR_Manscarab
  • -
    -
    - - - Reptile_Group - -
  • Iguana
  • -
  • Cobra
  • -
  • Tortoise
  • -
    - - -
  • GR_Lizardman
  • -
    -
    - -
    \ No newline at end of file diff --git a/1.6/Patches/Xenotypes/PatchBSUndead.xml b/1.6/Patches/Xenotypes/PatchBSUndead.xml index 0c2e592..c0a9632 100644 --- a/1.6/Patches/Xenotypes/PatchBSUndead.xml +++ b/1.6/Patches/Xenotypes/PatchBSUndead.xml @@ -9,16 +9,9 @@
  • Defs/XenotypeDef[defName="VU_Returned" or defName="VU_Ghoul" or defName="VU_Frankenstein"]/genes -
  • rjw_genes_Necro_genitalia
  • rjw_genes_no_sex_need
  • -
  • - Defs/XenotypeDef[defName="VU_Revenant"]/genes - -
  • rjw_genes_Necro_genitalia
  • - -
  • Defs/XenotypeDef[defName="VU_Lycantrope"]/genes diff --git a/1.6/Source/Animal_Inheritance/Defs/BestialityGeneInheritanceDef.cs b/1.6/Source/Animal_Inheritance/Defs/BestialityGeneInheritanceDef.cs deleted file mode 100644 index ae0c51e..0000000 --- a/1.6/Source/Animal_Inheritance/Defs/BestialityGeneInheritanceDef.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace RJW_BGS -{ - public class BestialityGeneInheritanceDef - { - public string defName; - public float chance = 1f; - } -} diff --git a/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef.cs b/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef.cs deleted file mode 100644 index 10a9149..0000000 --- a/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; -using rjw; - -namespace RJW_BGS -{ - public class RaceGeneDef : Def - { - public int priority; - public string raceGroup; //keeping this for backwards compatibility - public List raceGroups; //racegroup, but in list form so multiple can be entered, preference to use this over racegroup - public List raceNames; - public List pawnKindNames; - public List genes; - public string hybridName; - } -} diff --git a/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef_Helper.cs b/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef_Helper.cs deleted file mode 100644 index ac58a8c..0000000 --- a/1.6/Source/Animal_Inheritance/Defs/RaceGeneDef_Helper.cs +++ /dev/null @@ -1,147 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using rjw; -using Verse; - -namespace RJW_BGS -{ - public class RaceGeneDef_Helper - { - //code based on racegroupdefinternal which has a similar function - public static RaceGeneDef GetRaceGeneDefInternal(Pawn pawn) - { - List Valids = ValidRaceGeneDefs(pawn); - if (Valids.Count > 0) - { - RaceGeneDef result = Valids.MaxBy(r => r.priority); - return result; - } - return null; - } - - public static List ValidRaceGeneDefs(Pawn pawn) - { - PawnKindDef kindDef = pawn.kindDef; - if (kindDef == null) - { - RJW_Genes.ModLog.Warning($"Error looking up PawnKindDef for {pawn.Name} - Could not lookup Animal Inheritance Genes"); - return null; - } - - string raceName = kindDef.race.defName; - string pawnKindName = kindDef.defName; - //Wild animals have no name, so we will use pawnkindname instead - string pawnName = pawn.Name != null ? pawn.Name.ToStringFull : pawnKindName; - - RaceGroupDef raceGroupDef = GetRaceGroupDef(kindDef); - - RJW_Genes.ModLog.Debug($"Looking up Animal-Inheritable Genes for {pawnName} with KindDef {kindDef.defName},RaceName {raceName}, PawnKind {pawnKindName} and RaceGroup {raceGroupDef.defName}"); - - IEnumerable allDefs = DefDatabase.AllDefs; - List pawnKindDefs = allDefs.Where(delegate (RaceGeneDef group) - { - List pawnKindNames = group.pawnKindNames; - return pawnKindNames != null && pawnKindNames.Contains(pawnKindName); - }).ToList(); - if (pawnKindDefs.Count() > 0) - { - DebugPrintRaceGeneDefs("PawnKindDefs", pawnName,pawnKindDefs); - return pawnKindDefs; - } - RJW_Genes.ModLog.Debug($"Did not find PawnKindDefs for {pawnName}"); - - List raceKindDefs = allDefs.Where(delegate (RaceGeneDef group) - { - List raceNames = group.raceNames; - return raceNames != null && raceNames.Contains(raceName); - }).ToList(); - if (raceKindDefs.Count() > 0) - { - DebugPrintRaceGeneDefs("PawnKindDefs", pawnName, raceKindDefs); - return raceKindDefs; - } - RJW_Genes.ModLog.Debug($"Did not find RaceKindDefs for {pawnName}"); - - List raceGroupDefs = new List(); - if (raceGroupDef != null) - { - raceGroupDefs = allDefs.Where(delegate (RaceGeneDef group) - { - string raceGroupDefName = group.raceGroup; - List list_raceGroupDefName = group.raceGroups; - return (raceGroupDefName != null && raceGroupDefName == raceGroupDef.defName) - || (list_raceGroupDefName != null && list_raceGroupDefName.Contains(raceGroupDef.defName)); - }).ToList(); - } - - if (raceGroupDefs.Count() > 0) - { - DebugPrintRaceGeneDefs("RaceKindDefs", pawnName, raceGroupDefs); - return raceGroupDefs; - } - RJW_Genes.ModLog.Debug($"Did not find RaceGroupDefs for {pawnName}"); - - RJW_Genes.ModLog.Message($"Did not find any Genes inheritable for {pawnName}"); - return new List(); - } - - private static void DebugPrintRaceGeneDefs(String header,String identifier,List defs) - { - if (RJW_Genes.RJW_Genes_Settings.rjw_genes_detailed_debug) - { - var defString = "["; - foreach (RaceGeneDef raceGeneDef in defs) - defString += $"({raceGeneDef.priority}:{raceGeneDef.defName} - {raceGeneDef.genes.Count} Genes)"; - defString += "]"; - RJW_Genes.ModLog.Message($"Found the following {header}-Genes for {identifier}: {defString}"); - } - } - - - /// - /// These two Functions are Duplicates of private functions in RJW RaceGroupDef_Helper, used to get a racegroupdef from a kindDef. - /// If the RaceGroupDef_Helper class is made accessable directly, these functions can be removed. - /// - /// - /// - private static RaceGroupDef GetRaceGroupDef(PawnKindDef kindDef) - { - var raceName = kindDef.race.defName; - var pawnKindName = kindDef.defName; - var groups = DefDatabase.AllDefs; - - var kindMatches = groups.Where(group => group.pawnKindNames?.Contains(pawnKindName) ?? false).ToList(); - var raceMatches = groups.Where(group => group.raceNames?.Contains(raceName) ?? false).ToList(); - var count = kindMatches.Count() + raceMatches.Count(); - if (count == 0) - { - //ModLog.Message($"Pawn named '{pawn.Name}' matched no RaceGroupDef. If you want to create a matching RaceGroupDef you can use the raceName '{raceName}' or the pawnKindName '{pawnKindName}'."); - return null; - } - else if (count == 1) - { - // ModLog.Message($"Pawn named '{pawn.Name}' matched 1 RaceGroupDef."); - return kindMatches.Concat(raceMatches).Single(); - } - else - { - // ModLog.Message($"Pawn named '{pawn.Name}' matched {count} RaceGroupDefs."); - - // If there are multiple RaceGroupDef matches, choose one of them. - // First prefer defs NOT defined in rjw. - // Then prefer a match by kind over a match by race. - return kindMatches.FirstOrDefault(match => !IsThisMod(match)) - ?? raceMatches.FirstOrDefault(match => !IsThisMod(match)) - ?? kindMatches.FirstOrDefault() - ?? raceMatches.FirstOrDefault(); - } - } - - private static bool IsThisMod(Def def) - { - var rjwContent = LoadedModManager.RunningMods.Single(pack => pack.Name == "RimJobWorld"); - return rjwContent.AllDefs.Contains(def); - } - } -} diff --git a/1.6/Source/Animal_Inheritance/Defs/VGEHybridOffspringDefs.cs b/1.6/Source/Animal_Inheritance/Defs/VGEHybridOffspringDefs.cs deleted file mode 100644 index 60421fb..0000000 --- a/1.6/Source/Animal_Inheritance/Defs/VGEHybridOffspringDefs.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace RJW_Genes -{ - public class VGEHybridOffspringDefs : Verse.Def - { - public List SupportedParentKindDefs; - public List PossibleHybridChildKindDefs; - } -} diff --git a/1.6/Source/Animal_Inheritance/InheritanceUtility.cs b/1.6/Source/Animal_Inheritance/InheritanceUtility.cs deleted file mode 100644 index 127c0e1..0000000 --- a/1.6/Source/Animal_Inheritance/InheritanceUtility.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System.Collections.Generic; -using Verse; -using RimWorld; -using rjw; -using RJW_Genes; -using System.Linq; - -namespace RJW_BGS -{ - public class InheritanceUtility - { - public static List AnimalInheritedGenes(Pawn father, Pawn mother) - { - 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; - - RJW_Genes.ModLog.Message($"Trigger an Animal-Gene-Inheritance for {father.Name} and {mother.Name}"); - //One parent must be an animal and the other must be human, so only one needs to return - if (father != null && !father.RaceProps.Humanlike) - { - RJW_Genes.ModLog.Debug($"Father was found to be animal - looking up genes for {father.Name}"); - return SelectGenes(father); - } - if (mother != null && !mother.RaceProps.Humanlike) - { - RJW_Genes.ModLog.Debug($"Mother was found to be animal - looking up genes for {mother.Name}"); - return SelectGenes(mother); - } - - 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(); - RaceGeneDef raceGeneDef = RaceGeneDef_Helper.GetRaceGeneDefInternal(pawn); - if (raceGeneDef != null) - { - foreach (BestialityGeneInheritanceDef gene in raceGeneDef.genes) - { - if (gene.chance * RJW_BGSSettings.rjw_bgs_global_gene_chance >= Rand.Range(0.01f,1f)) - { - GeneDef tmpGene = DefDatabase.GetNamed(gene.defName, false); - if (tmpGene != null) - { - genelist.Add(tmpGene); - } - else - { - RJW_Genes.ModLog.Warning($"Unable to find gene {gene.defName}, skipping. May need to update {raceGeneDef.defName} definition."); - } - } - } - } - RJW_Genes.ModLog.Debug($"From {raceGeneDef.genes.Count} possible genes in {raceGeneDef.defName}, {genelist.Count} were added by chance ({RJW_BGSSettings.rjw_bgs_global_gene_chance} chance multiplier from Settings)."); - return genelist; - } - - - /// - /// Adds a list of Genes to the pawns existing GeneSet. - /// Whether it is added as a Xenogene or Endogene is configured in Mod-Settings. - /// - /// The pawn for which Genes will be added - /// The Genes to add (Endogene by default, Xenogene with Mod Settings) - public static void AddGenes(Pawn pawn, List genes) - { - foreach (GeneDef gene in genes) - { - pawn.genes.AddGene(gene, RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes); - } - } - - /// - /// Initiates a bestiality baby with genes if the baby does not exist earlier. - /// This is used to make rjw-egg-pregnancies work. - /// Related file: PatchRJWHediffInsect_Egg.cs - /// - /// The mother of the baby. - /// The father of the baby. - /// The baby created in non-pregnancy-way (has 0 Genes yet) - public static void NewGenes(Pawn mother, Pawn dad, Pawn baby) - { - if (!RJW_BGSSettings.rjw_bgs_enabled) - { - return; - } - - RJW_Genes.ModLog.Message($"Triggering an New-Gene Animal-Gene-Inheritance for {baby.Name} ({dad.Name} + {mother.Name})"); - if (baby.RaceProps.Humanlike) - { - if (baby.genes == null) - { - baby.genes = new Pawn_GeneTracker(baby); - } - - //Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway. - for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--) - { - baby.genes.RemoveGene(baby.genes.Endogenes[i]); - } - - List genes = PregnancyUtility.GetInheritedGenes(dad, mother); - List beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother); - InheritanceUtility.AddGenes(baby, beastgenes); - InheritanceUtility.AddGenes(baby, genes); - if(baby.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin) == null) - { - AddSkinColor(mother, dad, baby); - } - } - } - - public static void AddSkinColor(Pawn mother, Pawn father, Pawn baby) - { - if (mother != null && mother.genes != null) - { - GeneDef gene = mother.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin); - if (gene != null) - { - baby.genes.AddGene(gene, false); - } - } - else if (father != null && father.genes != null) - { - GeneDef gene = father.genes.GetFirstEndogeneByCategory(EndogeneCategory.Melanin); - if (gene != null) - { - baby.genes.AddGene(gene, false); - } - } - else - { - Log.Message("Could not find skincolor of " + baby.Name + "'s parents, giving random skincolor."); - baby.genes.AddGene(PawnSkinColors.RandomSkinColorGene(baby), false); - } - } - - /// - /// Used only for debugging, to see what you loaded and how it looks. - /// - 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/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs b/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs deleted file mode 100644 index af9bab1..0000000 --- a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; -using UnityEngine; -using HarmonyLib; -using rjw; - -namespace RJW_BGS -{ - - -[HarmonyPatch(typeof(Hediff_BasePregnancy))] -public class Patch_RJW_BasePregnancy_VanillaExpandedGenetics -{ - public static HediffDef controler = DefDatabase.GetNamed("rjw_genes_animal_control_hediff", false); - - /// - /// This Patch (only) adds the "rjw_genes_animal_control_hediff" to newborn VE hybrid-animals. - /// - /// - [HarmonyPostfix] - [HarmonyPatch("GenerateBabies")] - public static void AddHediff (Hediff_BasePregnancy __instance) - { - - if (controler == null) return; - - if (!RJW_BGSSettings.rjw_bgs_VE_genetics) - { - return; - } - - foreach (Pawn baby in __instance.babies) - { - if(baby != null && VGEHybridUtility.SupportedHybridRaces.Contains(baby.kindDef)) - baby.health.AddHediff(controler); - } - - } - } -} diff --git a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs b/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs deleted file mode 100644 index 7f67390..0000000 --- a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs +++ /dev/null @@ -1,52 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using HarmonyLib; -using RimWorld; -using Verse; -using rjw; - -namespace RJW_BGS -{ - [HarmonyPatch(typeof(Hediff_BasePregnancy), "Initialize")] - public static class Patch_RJW_BestialityPregnancyUtility - { - [HarmonyPostfix] - public static void AddGenes(Pawn mother, Pawn dad, ref Hediff_BasePregnancy __instance) - { - if (!RJW_BGSSettings.rjw_bgs_enabled || (!mother.IsAnimal && !dad.IsAnimal)) - { - return; - } - foreach (Pawn baby in __instance.babies) - { - if (baby.RaceProps.Humanlike) - { - if (baby.genes == null) - { - baby.genes = new Pawn_GeneTracker(baby); - } - - //Remove the hair and skin genes pawns always start with, should get correct ones from human parent anyway. - for (int i = baby.genes.Endogenes.Count - 1; i >= 0; i--) - { - baby.genes.RemoveGene(baby.genes.Endogenes[i]); - } - - List humangenes = PregnancyUtility.GetInheritedGenes(dad, mother); - List beastgenes = InheritanceUtility.AnimalInheritedGenes(dad, mother); - InheritanceUtility.AddGenes(baby, beastgenes); - InheritanceUtility.AddGenes(baby, humangenes); - - // The mix-breed babies should be labelled hybrids - baby.genes.hybrid = true; - - //reason = "AbilityDisabledNoFertilinGene".Translate(this.parent.pawn); - baby.genes.xenotypeName = "rjw_genes_bestiality_hybrid_name".Translate(); - - RJW_Genes.ModLog.Debug($"Conception of a Bestiality-Child - Added {humangenes.Count} human-genes and {beastgenes.Count} animal-genes."); - } - } - } - } -} diff --git a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_HediffInsect_Egg.cs b/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_HediffInsect_Egg.cs deleted file mode 100644 index 9861537..0000000 --- a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_HediffInsect_Egg.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Collections.Generic; -using System.Reflection; -using System.Reflection.Emit; -using HarmonyLib; -using rjw; - -namespace RJW_BGS -{ - [HarmonyPatch(typeof(Hediff_InsectEgg), "GiveBirth")] - public static class Patch_RJW_HediffInsect_Egg - { - [HarmonyTranspiler] - public static IEnumerable Transpiler(IEnumerable instructions) - { - MethodInfo newgenes = AccessTools.Method(typeof(InheritanceUtility), "NewGenes", null, null); - FieldInfo implanter = AccessTools.Field(typeof(Hediff_InsectEgg), "implanter"); - FieldInfo father = AccessTools.Field(typeof(Hediff_InsectEgg), "father"); - - foreach (CodeInstruction instruction in instructions) - { - yield return instruction; - if (instruction.opcode == OpCodes.Call && instruction.operand.ToString() == "Void BabyPostBirth(Verse.Pawn, Verse.Pawn, Verse.Pawn)") - { - yield return new CodeInstruction(OpCodes.Ldloc_0, null); - yield return new CodeInstruction(OpCodes.Ldfld, implanter); - yield return new CodeInstruction(OpCodes.Ldarg_0, null); - yield return new CodeInstruction(OpCodes.Ldfld, father); - yield return new CodeInstruction(OpCodes.Ldloc_1, null); - yield return new CodeInstruction(OpCodes.Call, newgenes); - } - - } - } - } -} diff --git a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs b/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs deleted file mode 100644 index 36c7cfb..0000000 --- a/1.6/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; -using RJW_BGS; -using HarmonyLib; -using rjw; -using static rjw.Hediff_BasePregnancy; -using RJW_Genes; - -namespace RJW_BGS -{ - -[HarmonyPatch(typeof(PregnancyHelper))] -public class Patch_RJW_PregnancyHelper_VanillaExpandedGenetics -{ - - /// - /// This Patch changes the pregnancy logic to check for possible hybridization. - /// Iff the hybridization applies, this prefix skips the normal AddPregnancyHediff (by returning false). - /// - /// Small Note: Below we use `Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Mother);` - /// This completely creates the pregnancy, it does not need to be assigned to anything or added to some hediffs. - /// - /// There was an issue with Pawn Generation and this has been Reworked - Please see #116 for more documentation. - /// The current state of affairs is that hybrids are generated using RJW-Pregnancy and "switching" the Fathers KindDef only for Child Generation, before switching it back. - /// It's not easy to just change the Babies kindDef, because RJW-Preg runs a PawnGeneration Request. - /// Thus, if you just change that from Husky to Dogman, most of the things are still Husky and you get a lot of red errors after birth. - /// - /// Relevant RJW Files: - /// - /// - Hediff_BestialPregnancy https://gitgud.io/Ed86/rjw/-/blob/master/1.5/Source/Modules/Pregnancy/Hediffs/Hediff_BestialPregnancy.cs?ref_type=heads - /// - Hediff_BasePregnancy https://gitgud.io/Ed86/rjw/-/blob/master/1.5/Source/Modules/Pregnancy/Hediffs/Hediff_BasePregnancy.cs?ref_type=heads - /// - [HarmonyPrefix] - [HarmonyPatch("AddPregnancyHediff")] - public static bool AddPregnancyHediffPrefix(Pawn mother, Pawn father) - { - - // Error & Setting HandlingHandling, "true" means the normal method is run (and nothing else from this patch). - // Behaviour of Harmony Prefixes: https://harmony.pardeike.net/articles/patching-prefix.html - if (!RJW_BGSSettings.rjw_bgs_VE_genetics) return true; - if (mother == null || father == null) return true; - - RJW_Genes.ModLog.Debug("Trying to add RJW Pregnancy Hediff - Checking for potential VGE Animal-Hybridization"); - - bool humanMotherAndSupportedAnimal = xxx.is_human(mother) && VGEHybridUtility.SupportedInitialAnimalRaces.Contains(father.kindDef); - bool humanMotherAndSupportedHybrid = xxx.is_human(mother) && VGEHybridUtility.SupportedHybridRaces.Contains(father.kindDef); - bool humanFatherAndSupportedAnimal = xxx.is_human(father) && VGEHybridUtility.SupportedInitialAnimalRaces.Contains(mother.kindDef); - bool humanFatherAndSupportedHybrid = xxx.is_human(father) && VGEHybridUtility.SupportedHybridRaces.Contains(mother.kindDef); - - // Exit if there are no supported parents / nothing to do for my logic - if (!(humanMotherAndSupportedAnimal || humanMotherAndSupportedHybrid || humanFatherAndSupportedAnimal || humanFatherAndSupportedHybrid)) - { - RJW_Genes.ModLog.Debug("Aborting VGE-Hybdrization Pregnancy - Parents were unsupported RaceKinds"); - return true; - } - // Exit by chance - if((new Random()).NextDouble() > RJW_BGSSettings.rjw_bgs_ve_genetics_chance) - { - RJW_Genes.ModLog.Debug($"VGE-Hybridization chance ({Math.Round(RJW_BGSSettings.rjw_bgs_ve_genetics_chance,3)*100}%) was not met - continuing with normal pregnancy behaviour."); - return true; - } - - if (humanMotherAndSupportedAnimal) - { - RJW_Genes.ModLog.Debug("Found a human mother and a supported animal resulting in an animal-child - starting VGE pregnancy (rjw.Hediff_BestialPregnancy)"); - Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Father); - - var kindDef = VGEHybridUtility.LookupPossiblyOffspringHybrid(father.kindDef); - var stored = father.kindDef; - father.kindDef = kindDef; - Hediff_BasePregnancy preg = Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Father); - father.kindDef = stored; - - // "false" means the normal method is not run - return false; - } - else if (humanMotherAndSupportedHybrid) - { - - RJW_Genes.ModLog.Debug("Found a human mother and a hybrid - this behaviour has been disabled from 2.2.1 onward - sorry :("); - return true; - } - else if (humanFatherAndSupportedAnimal) - { - RJW_Genes.ModLog.Debug("Found a human father and a supported animal resulting in an animal-child - starting VGE pregnancy (rjw.Hediff_BestialPregnancy)"); - - var kindDef = VGEHybridUtility.LookupPossiblyOffspringHybrid(mother.kindDef); - var stored = mother.kindDef; - mother.kindDef = kindDef; - Hediff_BasePregnancy preg = Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Mother); - mother.kindDef = stored; - - return false; - } - else if (humanFatherAndSupportedHybrid) - { - RJW_Genes.ModLog.Debug("Found a human father and a hybrid - this behaviour has been disabled from 2.2.1 onward - sorry :("); - return true; - } - - RJW_Genes.ModLog.Debug("Issues in applying the Patch for VGE hybdritization - doing nothing and continuing with normal pregnancy."); - return true; - } - } - -} diff --git a/1.6/Source/Animal_Inheritance/Patches/Patch_Vanilla_PregnancyUtility.cs b/1.6/Source/Animal_Inheritance/Patches/Patch_Vanilla_PregnancyUtility.cs deleted file mode 100644 index 80c16bd..0000000 --- a/1.6/Source/Animal_Inheritance/Patches/Patch_Vanilla_PregnancyUtility.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using HarmonyLib; -using RimWorld; -using Verse; - -namespace RJW_BGS -{ - /// - /// This Patch is applied to change the normal pregnancy to add animal-inheritance. - /// If the settings allow animal gene inheritance, - /// the genes are determined and "simply added". - /// - [HarmonyPatch(typeof(PregnancyUtility), "GetInheritedGeneSet", new Type[] - { - typeof(Pawn), - typeof(Pawn), - //typeof(bool) - } - )] - public static class Patch_Vanilla_PregnancyUtility - { - [HarmonyPostfix] - public static void AnimalInheritedGenes(Pawn father, Pawn mother, ref GeneSet __result) - { - if (!RJW_BGSSettings.rjw_bgs_enabled) - { - return; - } - List genes = InheritanceUtility.AnimalInheritedGenes(father, mother); - if (genes.Any()) - { - RJW_Genes.ModLog.Debug($"Adding {(genes.Count)} Genes from an Animal-Pregnancy between {father} and {mother}"); - foreach (GeneDef gene in genes) - { - __result.AddGene(gene); - } - } else - { - RJW_Genes.ModLog.Debug($"Tried to add Genes from Animal-Pregnancy between {father} and {mother} but didn't find any"); - } - } - } -} diff --git a/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs b/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs deleted file mode 100644 index b191904..0000000 --- a/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; -using UnityEngine; - -namespace RJW_BGS -{ - public class RJW_BGSSettings : ModSettings - { - public static void DoWindowContents(Rect inRect) - { - //Copied from RJW settings mostly - Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f); - Rect rect = new Rect(0f, 0f, inRect.width - 16f, inRect.height + 300f); - //Widgets.BeginScrollView(outRect, ref RJWSettings.scrollPosition, rect, true); - Listing_Standard listing_Standard = new Listing_Standard(); - listing_Standard.maxOneColumn = true; - listing_Standard.ColumnWidth = rect.width / 2.05f; - listing_Standard.Begin(rect); - listing_Standard.Gap(5f); - listing_Standard.Gap(24f); - listing_Standard.CheckboxLabeled("rjw_genes_animal_inheritance_settings_enabled_key".Translate(), ref rjw_bgs_enabled, "rjw_genes_animal_inheritance_settings_enabled_explanation".Translate(), 0f, 1f); - //listing_Standard.CheckboxLabeled("sexfrenzy", ref sexfrenzy, "disable the effects", 0f, 1f); - listing_Standard.Gap(5f); - //1.6 Fix added (TipSignal?)(TipSignal) - listing_Standard.Label("gene inheritance chance: " + Math.Round((double)(RJW_BGSSettings.rjw_bgs_global_gene_chance * 100f), 0).ToString() + "%", -1f, (TipSignal?)(TipSignal)"modify chance for a gene to be inherited."); - RJW_BGSSettings.rjw_bgs_global_gene_chance = listing_Standard.Slider(RJW_BGSSettings.rjw_bgs_global_gene_chance, 0f, 5f); - listing_Standard.Gap(5f); - listing_Standard.CheckboxLabeled("rjw_genes_animal_inheritance_settings_added_as_xenogene_key".Translate(), ref rjw_bgs_animal_genes_as_xenogenes, "rjw_genes_animal_inheritance_settings_added_as_xenogene_explanation".Translate(), 0f, 1f); - listing_Standard.Gap(5f); - - listing_Standard.CheckboxLabeled("rjw_genes_animal_inheritance_settings_ve_genetics_hybridization_key".Translate(), ref rjw_bgs_VE_genetics, "rjw_genes_animal_inheritance_settings_ve_genetics_hybridization_explanation".Translate(), 0f, 1f); - listing_Standard.Gap(5f); - //1.6 Fix added (TipSignal?)(TipSignal) - listing_Standard.Label("VE Hybrid Chance: " + Math.Round((double)(RJW_BGSSettings.rjw_bgs_ve_genetics_chance * 100f), 0).ToString() + "%", -1f, (TipSignal?)(TipSignal)"modify chance for a bestiality child to be hybrid."); - RJW_BGSSettings.rjw_bgs_ve_genetics_chance = listing_Standard.Slider(RJW_BGSSettings.rjw_bgs_ve_genetics_chance, 0f, 1f); - } - - public override void ExposeData() - { - base.ExposeData(); - Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_enabled, "rjw_bgs_enabled", RJW_BGSSettings.rjw_bgs_enabled, true); - Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_global_gene_chance, "rjw_bgs_global_gene_chance", RJW_BGSSettings.rjw_bgs_global_gene_chance, true); - Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes, "rjw_bgs_animal_genes_as_xenogenes", RJW_BGSSettings.rjw_bgs_animal_genes_as_xenogenes, true); - Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_VE_genetics, "rjw_bgs_VE_genetics", RJW_BGSSettings.rjw_bgs_VE_genetics, true); - Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_ve_genetics_chance, "rjw_bgs_ve_genetics_chance", RJW_BGSSettings.rjw_bgs_ve_genetics_chance, true); - } - - public static float rjw_bgs_global_gene_chance = 1f; - public static bool rjw_bgs_enabled = true; - public static bool rjw_bgs_animal_genes_as_xenogenes = false; - public static bool rjw_bgs_VE_genetics = true; - public static float rjw_bgs_ve_genetics_chance = 0.25f; - } -} diff --git a/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettingsController.cs b/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettingsController.cs deleted file mode 100644 index 12ef107..0000000 --- a/1.6/Source/Animal_Inheritance/Settings/RJW_BGSSettingsController.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; -using UnityEngine; - -namespace RJW_BGS -{ - public class RJW_BGSSettingsController : Mod - { - public RJW_BGSSettingsController(ModContentPack content) : base(content) - { - base.GetSettings(); - } - - public override string SettingsCategory() - { - return "RJW Genes Animal Gene Inheritance"; - } - public override void DoSettingsWindowContents(Rect inRect) - { - RJW_BGSSettings.DoWindowContents(inRect); - } - } -} diff --git a/1.6/Source/Animal_Inheritance/VGEHybridUtility.cs b/1.6/Source/Animal_Inheritance/VGEHybridUtility.cs deleted file mode 100644 index 3426f75..0000000 --- a/1.6/Source/Animal_Inheritance/VGEHybridUtility.cs +++ /dev/null @@ -1,63 +0,0 @@ -using RJW_Genes; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Verse; - -namespace RJW_BGS -{ - public class VGEHybridUtility - { - /// - /// All VGE-Hybrids that can result from Bestiality - these are drawn from the existing XML-Defs. - /// - public static List SupportedHybridRaces { - get{return DefDatabase.AllDefs.SelectMany(def => def.PossibleHybridChildKindDefs).Distinct().ToList();} - } - - /// - /// All Animals that can produce VGE Hybrids - these are drawn from the existing XML-Defs. - /// - public static List SupportedInitialAnimalRaces { - get { return DefDatabase.AllDefs.SelectMany(def => def.SupportedParentKindDefs).Distinct().ToList(); } - } - - /// - /// Returns a possible Hybrid KindDef for a given Animal. - /// Null if there is none. - /// Random one if there are multiple. - /// - /// The animal fathering the baby - /// KindDef for Hybrid originated from Parent Animal. Null on None, Not-Supported or Error. Random one from multiple. - public static PawnKindDef LookupPossiblyOffspringHybrid(PawnKindDef Parent) - { - if (Parent == null) return null; - if (!SupportedInitialAnimalRaces.Contains(Parent)) return null; - else - { - return DefDatabase.AllDefs - .Where(def => def.SupportedParentKindDefs.Contains(Parent)) - .SelectMany(def => def.PossibleHybridChildKindDefs) - .Distinct() - .RandomElementWithFallback(null); - // Man I am a true Java Developer - } - } - - /// - /// Small Method for debugging - I used it mostly on game-startup to see if reading all Defs worked fine. - /// Introduced after the VGE-Hybridization Rework from #116 - /// - public static void LogAllFoundVGEHybridDefinitions() - { - IEnumerable defs = DefDatabase.AllDefs; - var parents = defs.SelectMany(def => def.SupportedParentKindDefs).Distinct(); - var offsprings = defs.SelectMany(def => def.PossibleHybridChildKindDefs).Distinct(); - RJW_Genes.ModLog.Debug($"Found {defs.Count()} VGEHybridOffspringDefs, covering {parents.Count()} distinct possible parent-animals and {offsprings.Count()} distinct possible hybrid-children."); - } - - } - -} diff --git a/1.6/Source/Common/Helpers/LaborState.cs b/1.6/Source/Common/Helpers/LaborState.cs index 8a0e59d..abb00a1 100644 --- a/1.6/Source/Common/Helpers/LaborState.cs +++ b/1.6/Source/Common/Helpers/LaborState.cs @@ -18,7 +18,7 @@ namespace RJW_Genes this.birthTotal = birthTotal; this.birthCount = 0; this.hasOvaryAgitator = pawn.health.hediffSet.HasHediff(HediffDef.Named("OvaryAgitator")); - this.hasBioscaffold = pawn.health.hediffSet.HasHediff(HediffDef.Named("OvaryAgitator")); + this.hasBioscaffold = pawn.health.hediffSet.HasHediff(HediffDef.Named("Bioscaffold")); } } } diff --git a/1.6/Source/Common/patches/PatchPregnancyHelper.cs b/1.6/Source/Common/patches/PatchPregnancyHelper.cs index 2ed0f39..a040924 100644 --- a/1.6/Source/Common/patches/PatchPregnancyHelper.cs +++ b/1.6/Source/Common/patches/PatchPregnancyHelper.cs @@ -5,9 +5,10 @@ using System.Text; using System.Threading.Tasks; using HarmonyLib; using RimWorld; -using Verse; using rjw; using rjw.Modules.Interactions; +using Verse; +using static rjw.RJWPregnancySettings; //using rjw.Modules.Interactions.Enums; namespace RJW_Genes @@ -17,8 +18,8 @@ namespace RJW_Genes { public static HediffDef vasectomydef = DefDatabase.GetNamed("Vasectomy", true); // Token: 0x0600000F RID: 15 - [HarmonyPostfix] - [HarmonyPatch("impregnate")] + //[HarmonyPostfix] + //[HarmonyPatch("impregnate")] private static void ImpregnatePostfix(ref SexProps props) { @@ -55,7 +56,6 @@ namespace RJW_Genes //"normal" and "beastial" pregnancy if (RJWSettings.DevMode) ModLog.Message(" 'normal' pregnancy checks"); - //interaction stuff if for handling futa/see who penetrates who in interaction if (!props.isReceiver && interaction.Extension.initiatorRequirement.genitalTags.Contains(GenitalTag.CanPenetrate) && @@ -77,11 +77,13 @@ namespace RJW_Genes return; } - if (!interaction.Extension.initiatorRequirement.genitalTags.Contains(GenitalTag.CanFertilize)) + if (!giver.GetLewdParts().AllRJWParts.Any(p => p.HasGenitalTag(GenitalTag.CanFertilize))) { if (RJWSettings.DevMode) ModLog.Message(xxx.get_pawnname(giver) + " has no parts to Fertilize with"); return; } + + //If recieving pawn has a Vasectomy,temporarily remove it to prevent fertility Malice, replace it after DoImpregnate. if (vasectomy != null) { if (RJWSettings.DevMode) ModLog.Message("vasectomy check"); @@ -89,8 +91,9 @@ namespace RJW_Genes } if (CanImpregnate2(giver, receiver, props.sexType)) { - - PregnancyHelper.DoImpregnate(giver, receiver); + if (RJWSettings.DevMode) ModLog.Message(xxx.get_pawnname(giver)+" is analy impregnating "+ xxx.get_pawnname(receiver)); + //DOES NOT EXIST + //PregnancyHelper.DoImpregnate(giver, receiver); } if (vasectomy != null) @@ -103,7 +106,7 @@ namespace RJW_Genes private static bool CanImpregnate2(Pawn fucker, Pawn fucked, xxx.rjwSextype sexType) { - if (fucker == null || fucked == null) + if (fucker == null || fucked == null) { return false; @@ -196,7 +199,7 @@ namespace RJW_Genes } List genitalsList = fucker.GetGenitalsList(); - List genitalsList2 = fucked.GetGenitalsList(); + List genitalsList2 = fucked.GetGenitalsList(); if (!Genital_Helper.has_penis_fertile(fucker, genitalsList) && !Genital_Helper.has_penis_fertile(fucked, genitalsList2)) { if (RJWSettings.DevMode) @@ -223,7 +226,7 @@ namespace RJW_Genes return false; } - if (((xxx.is_animal(fucker) && xxx.is_human(fucked)) || (xxx.is_human(fucker) && xxx.is_animal(fucked))) && !RJWPregnancySettings.bestial_pregnancy_enabled) + if (((xxx.is_animal(fucker) && xxx.is_human(fucked)) || (xxx.is_human(fucker) && xxx.is_animal(fucked))) && RJWPregnancySettings.bestial_pregnancy == BestialPregnancy.None) { if (RJWSettings.DevMode) { diff --git a/1.6/Source/DefOfs/GeneDefOf.cs b/1.6/Source/DefOfs/GeneDefOf.cs index 5da5430..0d60b95 100644 --- a/1.6/Source/DefOfs/GeneDefOf.cs +++ b/1.6/Source/DefOfs/GeneDefOf.cs @@ -76,7 +76,7 @@ namespace RJW_Genes [MayRequire("vegapnk.cumpilation")] public static readonly GeneDef rjw_genes_un_inflatable; [MayRequire("vegapnk.cumpilation")] public static readonly GeneDef rjw_genes_inflatable; public static readonly GeneDef rjw_genes_generous_donor; - [MayRequire("rjw.sexperience")] public static readonly GeneDef rjw_genes_living_cumbucket; + [MayRequire("vegapnk.cumpilation")] public static readonly GeneDef rjw_genes_living_cumbucket; // Reproduction diff --git a/1.6/Source/DefOfs/HediffDefOf.cs b/1.6/Source/DefOfs/HediffDefOf.cs index 9eee352..8878f75 100644 --- a/1.6/Source/DefOfs/HediffDefOf.cs +++ b/1.6/Source/DefOfs/HediffDefOf.cs @@ -30,6 +30,6 @@ namespace RJW_Genes public static readonly HediffDef OvaryAgitator; public static readonly HediffDef Bioscaffold; - [MayRequire("rjw.sexperience")] public static readonly HediffDef rjw_genes_filled_living_cumbucket; + [MayRequire("vegapnk.cumpilation")] public static readonly HediffDef rjw_genes_filled_living_cumbucket; } } diff --git a/1.6/Source/Genes/Life_Force/JobGivers/JobGiver_GetLifeForce.cs b/1.6/Source/Genes/Life_Force/JobGivers/JobGiver_GetLifeForce.cs index e9845e4..e4b273b 100644 --- a/1.6/Source/Genes/Life_Force/JobGivers/JobGiver_GetLifeForce.cs +++ b/1.6/Source/Genes/Life_Force/JobGivers/JobGiver_GetLifeForce.cs @@ -26,7 +26,7 @@ namespace RJW_Genes return null; } - if (ModsConfig.IsActive("rjw.sexperience") && gene_lifeforce.StoredCumAllowed && genes.HasActiveGene(GeneDefOf.rjw_genes_cum_eater)) + if (ModsConfig.IsActive("vegapnk.cumpilation") && gene_lifeforce.StoredCumAllowed && genes.HasActiveGene(GeneDefOf.rjw_genes_cum_eater)) { Thing gatheredCum = this.GetStoredCum(pawn); if (gatheredCum == null) diff --git a/1.6/Source/Genes/Patches/MultiplePregnancies.cs b/1.6/Source/Genes/Patches/MultiplePregnancies.cs index f5d3eeb..ded8271 100644 --- a/1.6/Source/Genes/Patches/MultiplePregnancies.cs +++ b/1.6/Source/Genes/Patches/MultiplePregnancies.cs @@ -56,13 +56,13 @@ namespace RJWLoveFeeding Pawn_GeneTracker genes = fucked.genes; if (genes.HasActiveGene(RJW_Genes.GeneDefOf.RS_MultiPregnancy)) { - Log.Message(xxx.get_pawnname(fucked) + " has multipregnancy gene"); + if (RJWSettings.DevMode) Log.Message(xxx.get_pawnname(fucked) + " has multipregnancy gene"); return false; } } else { - Log.Message(setNoPreggo.First().def.defName + ": This prevents pregnancy"); + if (RJWSettings.DevMode) Log.Message(setNoPreggo.First().def.defName + ": This prevents pregnancy"); } } diff --git a/1.6/Source/Properties/AssemblyInfo.cs b/1.6/Source/Properties/AssemblyInfo.cs index a2e00ed..5dbde35 100644 --- a/1.6/Source/Properties/AssemblyInfo.cs +++ b/1.6/Source/Properties/AssemblyInfo.cs @@ -10,7 +10,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("Rjw-Genes")] -[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyCopyright("Copyright © 2026")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +32,4 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2.5.5.0")] -[assembly: AssemblyFileVersion("2.5.5.0")] +[assembly: AssemblyVersion("2.6.2")] diff --git a/1.6/Source/RJW_Genes.cs b/1.6/Source/RJW_Genes.cs index f40aed6..b7c0385 100644 --- a/1.6/Source/RJW_Genes.cs +++ b/1.6/Source/RJW_Genes.cs @@ -11,8 +11,6 @@ namespace RJW_Genes static RJW_Genes() { ModLog.Message("RJW-Genes loaded"); - - RJW_BGS.VGEHybridUtility.LogAllFoundVGEHybridDefinitions(); } } } diff --git a/1.6/Source/Rjw-Genes.csproj b/1.6/Source/Rjw-Genes.csproj index 5bcad21..6d77471 100644 --- a/1.6/Source/Rjw-Genes.csproj +++ b/1.6/Source/Rjw-Genes.csproj @@ -26,19 +26,6 @@ - - - - - - - - - - - - - @@ -213,8 +200,8 @@ - - ..\..\..\..\..\..\Steam\steamapps\workshop\content\294100\2009463077\1.5\Assemblies\0Harmony.dll + + ..\..\..\..\..\..\Steam\steamapps\workshop\content\294100\2009463077\Current\Assemblies\0Harmony.dll False diff --git a/About/About.xml b/About/About.xml index b969a1b..41240b4 100644 --- a/About/About.xml +++ b/About/About.xml @@ -2,7 +2,7 @@ RJW Genes Vegapnk - 1.6 Rewrite by Telanda Vegapnk.rjw.genes - 2.5.6 + 2.6.2
  • 1.4
  • 1.5
  • diff --git a/About/Manifest.xml b/About/Manifest.xml index 9a7ad88..0cd2bf9 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW-Genes - 2.5.6 + 2.6.2
  • RimJobWorld
  • diff --git a/CHANGELOG.md b/CHANGELOG.md index 1730913..e044bfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,35 @@ +#INPROG + +# 2.6.2 (15-02-2026) +(Commit by @Telanda-DDS) + +**Fixes** +- Fixed incorrect gene Definition for Big and Small - Vampires and the Undead. +- Fixed missing translation text field `RJW_Genes_GenitalsNotAlterable` + + +------------ + +# 2.6.1 (16-10-2025) +(Commit by @Telanda-DDS) + +**Fixes** +- Updated RJW Patches to reference changed setting variable. + +# 2.6.0 (05-09-2025) +(Commit by @Telanda-DDS) + +**Changes** +- Removed Animal Gene Inheritance code from Core RJW_Genes and moved it into it's own mod. +- Replaced all references to GenericAnus with Anus in Genital type Genes. + +# 2.5.7 (18-08-2025) +(Commit by @Telanda-DDS) + +**Fixes** +- Fixed fertile anus not correctly detecting if penetrating partner had a penis capable of impregnation. + + # 2.5.5 (25-07-2025) (Commit by @Telanda-DDS) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a41147f..c27c658 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ But please consider also the following: ## Contributors -- Shabalox (MechBreeding, InsectBreeding, Animal Gene Inheritance) +- Shabalox (MechBreeding, InsectBreeding) - WasMachenDennSachen (Various Icons) - Jaaldabaoth (1.5 Migration, MPreg, Femboys, Initial VE-Genetic Hybrids) - Flock-of-Birds (Cosmetic Genitalia per XML) diff --git a/README.md b/README.md index 69a204c..3663b7c 100644 --- a/README.md +++ b/README.md @@ -14,21 +14,19 @@ This mod adds genes related and based on RJW to Rimworld. - Cum-Amount Changes, Transfer Nutrition Boosts - Sexual Vampires that need Cum, Cocks or some other sources. - Mech Breeding Additions & Orgasmic Mytosis -- Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance) - Genetic Diseases that spread on Intercourse - Patches for some popular / common Xenotypes from other Mods. *You might not see all of them. Many genes just show up if other mods are loaded*. **Conflicts:** -1. Should not be used with the original RJW_Animal_Gene_Inheritance anymore. -2. There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now. -3. CAI5000 will not crash, but will make *Seduce*-Ability fail. I think same goes for Combat Extended. -4. Alpha Genes "Female / Male Only" Genes might overwrite later Genitalia-Changes and should be avoided in combination with RJW-Genes features. +1. There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now. +2. CAI5000 will not crash, but will make *Seduce*-Ability fail. I think same goes for Combat Extended. +3. Alpha Genes "Female / Male Only" Genes might overwrite later Genitalia-Changes and should be avoided in combination with RJW-Genes features. ## Structure -- Toplevel: By Function (i.E. "Genes", "Animal Inheritance", "Utility") +- Toplevel: By Function (i.E. "Genes", "Utility") - Then: By Domain, following the Gene-Categories ("Cosmetic","Special", "Damage",...) - Last: By Type of Action (Def, Patch, etc.)