diff --git a/About/About.xml b/About/About.xml index c0ac3e5..f1f2296 100644 --- a/About/About.xml +++ b/About/About.xml @@ -1,12 +1,25 @@ RJW Genes Vegapnk - Vegapnk.rjw.genes + Vegapnk.rjw.genes
  • 1.5
  • - Adds Genes for RJW Content - https://steamcommunity.com/id/Vegapnk/myworkshopfiles/?appid=294100 + +Adds Genes for RJW Content. +Adds: +- Genes for Genitalia Types and Sizes +- Fertilin, a resource similiar to Hemogen, and accompanying sex-vampires +- Mechanics for Breeding and being Breed by Animals and Insects +- Inherit genes from bestiality or produce VGE-Hybrids +- Male / Female Only, MPreg, Genderfluid Pawns +- Orgasmic Mytosis, Orgasmic Supercharging, Age-Transfer on Sex, Pheromones +- Cum-Amount changes, Cumflation Immunity +- Horny Pheromones, Animal Mating Call +- Patches for some popular Xenotypes from the Workshop +- Sexual Taming of Animals + + https://github.com/vegapnk/RJW-Genes
  • Ludeon.RimWorld.Biotech diff --git a/About/Preview.png b/About/Preview.png index fdcd074..f1b61c0 100644 Binary files a/About/Preview.png and b/About/Preview.png differ diff --git a/CHANGELOG.md b/CHANGELOG.md index 6baf611..26387d8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,50 @@ +# 2.1.0 + +**Additions**: + +- New Ability Gene *Mating-Call*: Get bred by all nearby animals. +- New Ability Gene *Pheromone Spit*: Mark a target to be bred by nearby animals +- New Passive Gene *Sexual Tamer*: Chance to tame or train animals on bestiality. +- Human + Animal Pregnancy can (if enabled in settings) produce Vanilla Expanded Genetics Hybrids. Thanks to @Jaaldabaoth (#88) +- Xenogenes for "Big and Small" Xenotypes thanks to @Flock-of-birds (#83) +- Xenogenes for "Biotech Expansion Mammalia" and "Biotech Expansion - Mythic" thanks to @Ohreallyow (#86) +- Xenogenes update for (many?) "Vanilla Races Expanded (VRE)" Mods - Thanks to @Jaaldabaoth (#84 / #88 ) +- Genes can now fulfill RJW Quirks, configurable in XML. Thanks to @Jaaldabaoth (#84 / #88) +- "Genes" to support VRE Androids having Mechanical Genitalia. Thanks to @Jaaldabaoth (#88) +- "Curiosity Genes" alongside other Curiosities from VRE. Thanks to @Jaaldabaoth (#88) +- Support for many VE-Genetics Animals into the Animal-Framework. Thanks to @Jaaldabaoth (#88) +- "Likes Cumflation"-Gene now also makes pawns immune against the effects of cumflations. They are still cumflated. +- Gasmasks make immune against Aphrodisiac Pheromones (#108) + +**Fixes**: + +- Licentia Genes are back in and should work again. I used the [updated for by Jaaldabaoth](https://gitgud.io/Jaaldabaoth/licentia-labs) for my testing. +- Lower-casing most labels to fit rimworld standards, thanks to @Flock-of-birds (#83) +- X-Gender-Only Genes leave / re-add artificial genitalia. Thanks to @Jaaldabaoth (#84 / #88) +- Issues with Elasticity References (#87) +- Null Pointer for LoveFeeding when finding Mechs. Thanks to @Jaaldabaoth (Fixes #90) +- Changes to the Implants introduced in 2.0.0 - they imposed a hidden dependency on Royalty (Fixes #89) +- Issues when generating relations (#98, fixed in #106 thanks @Jaaldabaoth) +- Hardening of Licentia Dependencies (#105) +- Littered Birth and Chest-Burst Pregnancy are now mutually exclusive (#96) +- Youth Fountain cannot youth on masturbation anymore (#99) +- Documented the HasActiveGene Error Message (#104) +- Pawns with "rjw_genes_no_sexneed" wont go raping (or atleast way less, #100) +- Extra Nullcheck for Genes in Orgasmic Mytosis (#95) +- Orgasmic Mytosis Pawns *should* inherit the Xenotypename and favorite colour now +- Babies should not have "SexChangeThoughts" anymore when they had a (fe)male-only gene (#103) + +**Changes**: + +- Minified some Race-Patches, thanks to @Flock-of-birds (#83) +- XML-Genitalia-Genes can now also provide Breasts. Thanks to @Jaaldabaoth (#84 / #88) +- Many patches and files went into a `Mods`Folder and use an `LoadFolders.xml`. Thanks to @Jaaldabaoth (#84 / #88) +- Translate-Keys for Settings +- Translate-Key for Animal Hybrid Race-Names +- "Tick-Speed" for Evergrowth moved from Mod-Settings to XML +- Some new Icons thanks to Kira-Bad-Artist +- Some new Icons thanks to Archer + # 2.0.0 **Summary**: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b596a24..d905c20 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -28,4 +28,8 @@ But please consider also the following: - 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) - Cockeater & Naked Prowess come from *WasMachenDennSachen* but I copied it from Discord Chat. -- Fertilin, Fertilin Drain, Healpussy, Succubus Wing & Tail come from Shabakur \ No newline at end of file +- Fertilin, Fertilin Drain, Healpussy, Succubus Wing & Tail come from Shabakur +- Littered Birth, Many of the Penis Types are from Jaaldabaoth +- Feline Genitalia, Animal Mating Call and Udder are from Kira-Bad-Artist +- Sexual Tamer, Pheromone Spit and Mating call are from Archer +- The Preview was started with [Yodayo](https://yodayo.com/) \ No newline at end of file diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index fac437a..1099308 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/AbilityDefs/Ability_CockEater.xml b/Common/Defs/AbilityDefs/Ability_CockEater.xml index 4a8f2e3..f5cc8ad 100644 --- a/Common/Defs/AbilityDefs/Ability_CockEater.xml +++ b/Common/Defs/AbilityDefs/Ability_CockEater.xml @@ -2,7 +2,7 @@ rjw_genes_ability_cockeater - + Eat the cock of another pawn, restoring fertilin based on the size of the cock. Genes/Icons/cockeater true diff --git a/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml b/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml index 2a1577a..434df04 100644 --- a/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml +++ b/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml @@ -2,7 +2,7 @@ rjw_genes_ability_cocoonweaver - + Weaves the victim into a (self-sustaining) cocoon. The victim cannot move, but can be bred. Genes/Icons/Cocoon true diff --git a/Common/Defs/AbilityDefs/Ability_MatingCall.xml b/Common/Defs/AbilityDefs/Ability_MatingCall.xml new file mode 100644 index 0000000..383895f --- /dev/null +++ b/Common/Defs/AbilityDefs/Ability_MatingCall.xml @@ -0,0 +1,50 @@ + + + + + rjw_genes_ability_mating_call + + Calls nearby animals to breed me. + Genes/Icons/Mating_Call_2 + + true + false + + false + + 50 + 0 + + + 410 + + 30000 + + 5 + Verb_CastAbility + + False + False + True + True + + + + +
  • + PsycastPsychicEffect +
  • +
  • + 40 +
  • +
  • + CompAbilityEffect_GiveHediff + Hediff_Submitting + True +
  • + + Being Bred is not an easy business.\nThis might lead to a broken pawn, torn genitalia and hybrid-pregnancies.\nMaybe this is what you want.\nThe pawn will `submit` and e.g. Insects might cocoon him.\n\nAre you sure to proceed? + + + + \ No newline at end of file diff --git a/Common/Defs/AbilityDefs/Ability_PheromoneSpit.xml b/Common/Defs/AbilityDefs/Ability_PheromoneSpit.xml new file mode 100644 index 0000000..853a192 --- /dev/null +++ b/Common/Defs/AbilityDefs/Ability_PheromoneSpit.xml @@ -0,0 +1,30 @@ + + + + rjw_genes_ability_pheromone_spit + + Spit a condensed ball of animal pheromones to mark a target. Nearby Animals will try to breed the target. This means all animals - hostile, friendly and wild. + Genes/Icons/RJW_Genes_PheromoneSpit + + 3000 + 201 + true + + Verb_CastAbility + 11 + 1.2 + PiercingSpine_Launch + + True + False + False + False + + + +
  • + 25 +
  • +
    +
    +
    \ No newline at end of file diff --git a/Common/Defs/AbilityDefs/Ability_PussyHeal.xml b/Common/Defs/AbilityDefs/Ability_PussyHeal.xml index c31cb75..e9fb85b 100644 --- a/Common/Defs/AbilityDefs/Ability_PussyHeal.xml +++ b/Common/Defs/AbilityDefs/Ability_PussyHeal.xml @@ -2,7 +2,7 @@ rjw_genes_ability_pussyheal - + Rape another pawn, so you can heal them with your vagina's special healing power. Things/Mote/Heart false diff --git a/Common/Defs/AbilityDefs/Ability_Seduce.xml b/Common/Defs/AbilityDefs/Ability_Seduce.xml index 620be2b..60d5d10 100644 --- a/Common/Defs/AbilityDefs/Ability_Seduce.xml +++ b/Common/Defs/AbilityDefs/Ability_Seduce.xml @@ -9,13 +9,13 @@ true true false - + 10 Mote_CoagulateStencil Coagulate Coagulate_Cast - + Verb_CastAbility 10 1 @@ -35,7 +35,7 @@
  • Heart
  • -
  • +
  • 0.20
  • diff --git a/Common/Defs/GeneDefs/GeneCategories.xml b/Common/Defs/GeneDefs/GeneCategories.xml index ecce35f..e506741 100644 --- a/Common/Defs/GeneDefs/GeneCategories.xml +++ b/Common/Defs/GeneDefs/GeneCategories.xml @@ -15,55 +15,55 @@ rjw_genes_gender - + 21 rjw_genes_genitalia_type - + 19 rjw_genes_genitalia_extras - + 17 rjw_genes_genitalia_size - + 15 rjw_genes_fertilin - + 14 rjw_genes_breeding - + 13 rjw_genes_cum - + 12 rjw_genes_damage - + 11 rjw_genes_special - + 8 diff --git a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml index 6d16ee6..bb6fbe4 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml @@ -1,54 +1,57 @@ - + - + - rjw_genes_breeding + rjw_genes_breeding - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    + rjw_genes_mechbreeder - + Pawns with this gene are able to birth mechanoids unharmed. World/WorldObjects/Expanding/Mechanoids 51 1 -1 - + - rjw_genes_zoophile - - Xenotypes with this Gene are Zoophile. - Genes/Icons/Zoophile - 54 - -
  • - Zoophile -
  • -
    + rjw_genes_zoophile + + Xenotypes with this Gene are Zoophile. + Genes/Icons/Zoophile + 54 + +
  • + Zoophile +
  • +
    - + - rjw_genes_fertile_anus - - Xenotypes with this gene have a functional uterus connected to the anal cavity even for males - Genes/Icons/Fertile_anus - 54 + rjw_genes_fertile_anus + + Xenotypes with this gene have a functional uterus connected to the anal cavity even + for males + Genes/Icons/Fertile_anus + 54 rjw_genes_insectincubator - - RJW_Genes.Gene_InsectIncubator + + RJW_Genes.Gene_InsectIncubator Pawns with this gene fertilize insect eggs that are placed inside them. Genes/Icons/Egg 52 @@ -58,7 +61,7 @@ rjw_genes_insectbreeder - + Pawns with this gene are able to fertilize eggs with any fertile penis. Genes/Icons/Insect_Breeder 53 @@ -68,13 +71,48 @@ rjw_genes_fervent_ovipositor - - RJW_Genes.Gene_FerventOvipositor - Pawns that have a female (egg producing) ovipositor produce eggs at drastically increased speed. + + RJW_Genes.Gene_FerventOvipositor + Pawns that have a female (egg producing) ovipositor produce eggs at drastically + increased speed. Genes/Icons/Fervent_Ovipositor 55 1 -1 + + + rjw_genes_mating_call + + This gene allows to call nearby animals and invite them for mating. + Genes/Icons/RJW_Genes_Mating_Call + 65 + +
  • rjw_genes_ability_mating_call
  • +
    + + rjw_genes_ability_mating_call + + 2 + -1 +
    + + + + rjw_genes_pheromone_spit + + This gene allows to mark targets for breeding, enticing nearby animals for a ride. + Genes/Icons/RJW_Genes_PheromoneSpit + 66 + +
  • rjw_genes_ability_pheromone_spit
  • +
    + + rjw_genes_ability_pheromone_spit + + 2 + -1 +
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml index cfe7024..f578e99 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml @@ -1,72 +1,77 @@ - + - - Miscellaneous - true - -
  • Wing
  • -
    -
    + + Miscellaneous + true + +
  • Wing
  • +
    +
    - - rjw_genes_succubus_wings - - Carriers of this gene grow succubus wings. - Genes/Icons/Succubus_Wings - (0.75, 0.75, 0.75) - 1000 - -
  • rjw_genes_ability_flight
  • -
    - - rjw_genes_ability_flight - - 1 - -1 - 0 - -
  • - PawnRenderNodeWorker_AttachmentBody - Things/Pawn/Humanlike/BodyAttachments/RJW_Genes_Succubus_Wings - 1.5 - Body - Skin - - - -2 - - true - - 90 - - -
  • -
    - - -
  • + + rjw_genes_succubus_wings + + Carriers of this gene grow succubus wings. + Genes/Icons/Succubus_Wings + (0.75, 0.75, 0.75) + 1000 + +
  • rjw_genes_ability_flight
  • + + + rjw_genes_ability_flight + + 1 + -1 + 0 + +
  • + PawnRenderNodeWorker_AttachmentBody + Things/Pawn/Humanlike/BodyAttachments/RJW_Genes_Succubus_Wings + 1.5 + Body + Skin + + + -2 + + true + + 90 + + +
  • +
    + + +
  • Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background
  • +
  • + DemonLoverQuirk +
  • -
    - - - rjw_genes_succubus_tail - - Carriers of this gene grow a slender tail ending with a heart that can act as a dexterous fifth limb. - Genes/Icons/Succubus_Tail - (1, 0, 0) - 1000 - -
  • - Manipulation - 0.05 -
  • -
    - 1 - -1 - 0 +
    + + + rjw_genes_succubus_tail + + Carriers of this gene grow a slender tail ending with a heart that can act as a + dexterous fifth limb. + Genes/Icons/Succubus_Tail + (1, 0, 0) + 1000 + +
  • + Manipulation + 0.05 +
  • +
    + 1 + -1 + 0
  • PawnRenderNodeWorker_AttachmentBody @@ -96,13 +101,17 @@
  • - true - - -
  • + true + + +
  • Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background
  • +
  • + DemonLoverQuirk +
  • -
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Cum.xml b/Common/Defs/GeneDefs/GeneDefs_Cum.xml index c031645..32ac80c 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Cum.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Cum.xml @@ -1,23 +1,24 @@ - + - - rjw_genes_cum - -
  • CumAmount
  • -
    - false - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    + + rjw_genes_cum + +
  • CumAmount
  • +
    + false + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    rjw_genes_no_cum - + Males of these species have no fluid. Genes/Icons/No_Cum RJW_Genes.Gene_NoCum @@ -28,7 +29,7 @@ rjw_genes_much_cum - + Males of this species produce a lot of fluid. Genes/Icons/Much_Cum RJW_Genes.Gene_MuchCum @@ -39,8 +40,9 @@ rjw_genes_very_much_cum - - Males of this species produce a whole lot of fluid. They are like fountains basically. + + Males of this species produce a whole lot of fluid. They are like fountains + basically. Genes/Icons/Very_Much_Cum RJW_Genes.Gene_VeryMuchCum 535 @@ -48,64 +50,4 @@ -2 - - rjw_genes_likes_cumflation - - rjw_genes_cum - This Xenotype loves being cumflated. - Genes/Icons/Cumflation - 536 - -
  • - LikesCumflation -
  • -
    - -
  • NotCumflatable
  • -
    - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    - - - rjw_genes_cumflation_immunity - - rjw_genes_cum - This Xenotype cannot get cumflated. - Genes/Icons/Cumflation_Immunity - 537 - -
  • NotCumflatable
  • -
    - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    - - - - rjw_genes_generous_donor - - rjw_genes_cum - When this Xenotype transfers nutrition via cumshot, the giver will not get hungry. (Licentia Configuration for Transfer Nutrition must be enabled). - Genes/Icons/Generous_Donor - 538 - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    -
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Damage.xml b/Common/Defs/GeneDefs/GeneDefs_Damage.xml index 97aba0e..d045a68 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Damage.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Damage.xml @@ -1,30 +1,12 @@ - + - - rjw_genes_elasticity - - rjw_genes_damage - This Xenotype cannot get stretched by huge penetrators. - Genes/Icons/Elasticity - RJW_Genes.Gene_Elasticity - -1 - 1 - 1 - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    - - + rjw_genes_unbreakable - + rjw_genes_damage - This Gene makes the Carrier unable to get mood or social penalties from being raped and they cannot be broken for a long period of time. + This Gene makes the Carrier unable to get mood or social penalties from being raped + and they cannot be broken for a long period of time. UI/Icons/Rituals/TrialDefend 2 -1 @@ -34,13 +16,14 @@
  • FeelingBroken
  • - + -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml b/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml index c9d3c17..2a82c73 100644 --- a/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml +++ b/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml @@ -1,20 +1,22 @@ - + - rjw_genes_genitalia_extras - false + false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    rjw_genes_extra_penis + rjw_genes_genitalia_extras + Males of this species grow an additional penis . Genes/Icons/extra_male RJW_Genes.Gene_ExtraPenis @@ -27,6 +29,7 @@ rjw_genes_no_penis + rjw_genes_genitalia_extras Males of this do not have a penis. Genes/Icons/No_Male_Genitalia RJW_Genes.Gene_NoPenis @@ -40,6 +43,7 @@ rjw_genes_extra_vagina + rjw_genes_genitalia_extras Females of this species grow an additional vagina . Genes/Icons/Extra_Vagina RJW_Genes.Gene_ExtraVagina @@ -52,6 +56,7 @@ rjw_genes_no_vagina + rjw_genes_genitalia_extras Females of this do not have a vagina. Genes/Icons/No_Vagina RJW_Genes.Gene_NoVagina @@ -65,6 +70,7 @@ rjw_genes_extra_breasts + rjw_genes_genitalia_extras Females of this species grow an additional pair of breasts . Genes/Icons/Extra_Breasts RJW_Genes.Gene_ExtraBreasts @@ -77,6 +83,7 @@ rjw_genes_no_breasts + rjw_genes_genitalia_extras Females of this do not have a pair of breasts, but only nipples. Genes/Icons/No_Breasts RJW_Genes.Gene_NoBreasts @@ -89,6 +96,7 @@ rjw_genes_extra_anus + rjw_genes_genitalia_extras This specias has an extra anus. Genes/Icons/Extra_Anus RJW_Genes.Gene_ExtraAnus @@ -101,6 +109,7 @@ rjw_genes_no_anus + rjw_genes_genitalia_extras This specias has no anus. Genes/Icons/No_Anus RJW_Genes.Gene_NoAnus @@ -110,35 +119,39 @@ - - rjw_genes_futa - - Males with this gene grow additional female genitalia, females grow additional male genitalia. - Genes/Icons/Futa - RJW_Genes.Gene_Futa - 709 - -
  • PenisAmount
  • -
  • VaginaAmount
  • -
    -
    - - - rjw_genes_femboy - - Males with this gene are considered female despite having a penis - Genes/Icons/Futa - RJW_Genes.Gene_Femboy - 709 - -
  • PenisAmount
  • -
  • VaginaAmount
  • -
    -
    - + + rjw_genes_futa + + rjw_genes_gender + Males with this gene grow additional female genitalia, females grow additional male + genitalia. + Genes/Icons/Futa + RJW_Genes.Gene_Futa + 709 + +
  • PenisAmount
  • +
  • VaginaAmount
  • +
    +
    + + + rjw_genes_femboy + + rjw_genes_gender + Males with this gene are considered female despite having a penis + Genes/Icons/Futa + RJW_Genes.Gene_Femboy + 709 + +
  • PenisAmount
  • +
  • VaginaAmount
  • +
    +
    + rjw_genes_featureless_chest - + rjw_genes_genitalia_extras + Carriers of this gene do not have breasts or nipples. Genes/Icons/No_Breasts RJW_Genes.Gene_FeaturelessChest @@ -151,8 +164,9 @@ rjw_genes_udder + rjw_genes_genitalia_extras Carriers of this gene have udders and breasts. - Things/Mote/Heart + Genes/Icons/RJW_Genes_Udder RJW_Genes.Gene_UdderBreasts 711 @@ -160,4 +174,4 @@ -
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml b/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml index 492aedc..4c93001 100644 --- a/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml +++ b/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml @@ -15,7 +15,7 @@ rjw_genes_big_male_genitalia - + Penises of this Xenotype are bigger.(Resizing takes place at 20th Birthday) Genes/Icons/Big_Male_Genitalia RJW_Genes.Gene_BigMaleGenitalia @@ -27,7 +27,7 @@ rjw_genes_small_male_genitalia - + Penises of this Xenotype are smaller. (Resizing takes place at 20th Birthday) Genes/Icons/Small_Male_Genitalia RJW_Genes.Gene_SmallMaleGenitalia @@ -40,7 +40,7 @@ rjw_genes_loose_female_genitalia - + Vaginas of this Xenotype are quite spacy. (Resizing takes place at 20th Birthday) Genes/Icons/Loose_Vagina RJW_Genes.Gene_LooseFemaleGenitalia @@ -52,7 +52,7 @@ rjw_genes_tight_female_genitalia - + Vaginas of this Xenotype are pretty tight.(Resizing takes place at 20th Birthday) Genes/Icons/Tight_Vagina RJW_Genes.Gene_TightFemaleGenitalia @@ -65,7 +65,7 @@ rjw_genes_big_breasts - + Females of this Xenotype have big honkers.(Resizing takes place at 20th Birthday) Genes/Icons/Big_Breasts RJW_Genes.Gene_BigBreasts @@ -77,7 +77,7 @@ rjw_genes_small_breasts - + Females of this Xenotype have smaller breasts.(Resizing takes place at 20th Birthday) Genes/Icons/Small_Breasts RJW_Genes.Gene_SmallBreasts @@ -90,7 +90,7 @@ rjw_genes_loose_anus - + The Anus of this Xenotype is roomy.(Resizing takes place at 20th Birthday) Genes/Icons/Loose_Anus RJW_Genes.Gene_LooseAnus @@ -102,7 +102,7 @@ rjw_genes_tight_anus - + The anus of this Xenotype is small.(Resizing takes place at 20th Birthday) Genes/Icons/Tight_Anus RJW_Genes.Gene_TightAnus @@ -116,7 +116,7 @@ rjw_genes_evergrowth - + One of the most regretted gene-modifications in the Glitterworlds: The (primary) genitalia will continue growing forever. This affects size and fluid output. Excessive growth can also effect mental stability! (Resizing takes place at 20th Birthday) Genes/Icons/Big_Male_Genitalia RJW_Genes.Gene_EvergrowingGenitalia diff --git a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml index 6d173b9..757ee1e 100644 --- a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml +++ b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml @@ -1,4 +1,4 @@ - + @@ -7,17 +7,18 @@
  • GenitalType
  • - false + true 0 - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - + + rjw_genes_equine_genitalia @@ -32,8 +33,8 @@ 802 - - + + rjw_genes_human_genitalia Carriers of this gene develop human genitalia. @@ -43,11 +44,12 @@ Penis Vagina Anus + Breasts 802 - + rjw_genes_canine_genitalia @@ -67,7 +69,7 @@ rjw_genes_feline_genitalia Carriers of this gene develop feline genitalia. - Genes/Icons/Genitalia_Feline + Genes/Icons/RJW_Genes_Feline_Genitalia
  • CatPenis @@ -89,6 +91,9 @@ DemonVagina DemonAnus
  • +
  • + DemonLoverQuirk +
  • 805
    @@ -104,6 +109,9 @@ DragonVagina GenericAnus +
  • + ScaleLoverQuirk +
  • 806
    @@ -118,11 +126,15 @@ SlimeTentacles SlimeVagina SlimeAnus + SlimeBreasts + +
  • + SlimeLoverQuirk
  • 807
    - + rjw_genes_demonicT_genitalia @@ -134,10 +146,13 @@ DemonVagina DemonAnus +
  • + DemonLoverQuirk +
  • 807
    - + rjw_genes_crocodilian_genitalia @@ -147,10 +162,13 @@
  • CrocodilianPenis
  • +
  • + ScaleLoverQuirk +
  • 807
    - + rjw_genes_racoon_genitalia @@ -163,7 +181,7 @@ 807 - + rjw_genes_reptilian_genitalia @@ -173,14 +191,13 @@
  • HemiPenis
  • +
  • + ScaleLoverQuirk +
  • 807
    - - - - - + rjw_genes_Ghost_genitalia @@ -191,10 +208,13 @@ GhostPenis GhostVagina +
  • + TeratophileQuirk +
  • 807
    - + rjw_genes_Golem_genitalia @@ -204,11 +224,14 @@
  • GolemPenis
  • +
  • + TeratophileQuirk +
  • 807 -
    - - + + + rjw_genes_Marine_genitalia Carriers of this gene have marine mammal like genitalia. @@ -219,7 +242,7 @@ 807 - +
    rjw_genes_Necro_genitalia @@ -230,10 +253,13 @@
  • NecroPenis
  • +
  • + TeratophileQuirk +
  • 807 -
    - +
    + rjw_genes_Needle_genitalia @@ -246,7 +272,7 @@ 807 - +
    rjw_genes_Orc_genitalia @@ -259,7 +285,7 @@ 807 - +
    rjw_genes_Pig_genitalia @@ -271,7 +297,7 @@ PigPenis - +
    rjw_genes_Tentacle_genitalia @@ -282,14 +308,12 @@
  • TentaclePenis
  • +
  • + TeratophileQuirk +
  • 807 -
    - - - - - +
    rjw_genes_ovipositor_genitalia @@ -302,15 +326,15 @@ OvipositorF InsectAnus +
  • + ChitinLoverQuirk +
  • 808 - -
  • Egglaying
  • -
  • AG_Egglaying
  • -
    - +
  • Egglaying
  • +
  • AG_Egglaying
  • +
    - \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml b/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml index 8c793e2..46de9d0 100644 --- a/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml +++ b/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml @@ -1,11 +1,12 @@ - + - + rjw_genes_fertilin - + -
  • +
  • Genes/Icons/RJW_Genes_Endogene_Background Genes/Icons/RJW_Genes_Xenogene_Background
  • @@ -15,35 +16,43 @@ rjw_genes_lifeforce - Carriers of this gene have a reserve of biological strength powered by a resource called fertilin. The resource can be gained and spent in various ways, some of which are unlocked by other genes.\n\nCarriers lose 5 fertilin per day from biological entropy. \n\nGene is inactive until carrier is able to have sex. + Carriers of this gene have a reserve of biological strength powered by a + resource called fertilin. The resource can be gained and spent in various ways, some of + which are unlocked by other genes.\n\nCarriers lose 5 fertilin per day from biological + entropy. \n\nGene is inactive until carrier is able to have sex. RJW_Genes.Gene_LifeForce RJW_Genes.GeneGizmo_ResourceLifeForce fertilin -
  • 0.25
  • -
  • 0.5
  • -
  • 0.75
  • +
  • 0.25
  • +
  • 0.5
  • +
  • 0.75
  • true true - A reserve of biological strength which can be gained and spent in a variety of ways. \n\nFertilin can be increased by absorbing cum, typically through oral sex or stored cum. \n\nIf fertilin reaches zero, {PAWN_nameDef} will become very unhappy and may try to obtain some forcefully. + A reserve of biological strength which can be gained and spent in a + variety of ways. \n\nFertilin can be increased by absorbing cum, typically through oral + sex or stored cum. \n\nIf fertilin reaches zero, {PAWN_nameDef} will become very unhappy + and may try to obtain some forcefully. Genes/Icons/FertilinAlt 0 -2 - 18 + 18 -
  • Gives fertilin supply.
  • +
  • Gives fertilin supply.
  • - -
  • fert
  • -
    + +
  • + fert +
  • +
    0.025 1 1
    - + rjw_genes_lifeforce_drain @@ -54,15 +63,15 @@ Genes/Icons/FertilinDrainAlt rjw_genes_lifeforce 0.075 - 18 + 18 -1 1 6 - + rjw_genes_pussyhealing - + pussyhealer Carriers of this gene are able use vaginal sex to tend to other's wounds. Genes/Icons/Healpussy @@ -78,18 +87,25 @@ -1 -
  • life
  • -
  • pussy
  • -
  • heal
  • +
  • + life +
  • +
  • + pussy +
  • +
  • + heal +
  • - + rjw_genes_cockeater - + cockeater - Carriers of this gene are able eat cocks to restore their fertilin supply. Cocks are consumed during that process. + Carriers of this gene are able eat cocks to restore their fertilin supply. + Cocks are consumed during that process. Genes/Icons/cockeater rjw_genes_lifeforce 11 @@ -103,13 +119,19 @@ -1 -
  • life
  • -
  • cock
  • -
  • eat
  • +
  • + life +
  • +
  • + cock +
  • +
  • + eat +
  • - + rjw_genes_paralysingkiss @@ -128,12 +150,16 @@ -1 -
  • stun
  • -
  • kiss
  • +
  • + stun +
  • +
  • + kiss +
  • - + rjw_genes_seduce @@ -150,19 +176,24 @@ 1 -1 - + -
  • stun
  • -
  • kiss
  • +
  • + stun +
  • +
  • + kiss +
  • - + rjw_genes_naked_prowess - Carriers of this gene are able to temporarily increase their strength and resilience, while they are naked. + Carriers of this gene are able to temporarily increase their strength and + resilience, while they are naked. Genes/Icons/rjw_naked_prowess rjw_genes_lifeforce 14 @@ -175,32 +206,35 @@ 1 -1 - + rjw_genes_cum_eater - - Carriers of this gene are able to absorb fertilin through eating cum. This includes oral sex, eating cum for food or sucking out cumflated pawns. + + Carriers of this gene are able to absorb fertilin through eating cum. This + includes oral sex, eating cum for food or sucking out cumflated pawns. Genes/Icons/cumeater rjw_genes_lifeforce 1 1 - + rjw_genes_fertilin_absorber - - Carriers of this gene are able to absorb the fertilin inside sperm through their vagina and anus. + + Carriers of this gene are able to absorb the fertilin inside sperm through + their vagina and anus. Genes/Icons/Vaginal_cum_absorption rjw_genes_lifeforce 2 1 - + rjw_genes_lifeforce_empath RJW_Genes.Gene_LifeForce_Empath - Carriers of this gene generate lifeforce if nearby pawns are sexually satisfied. Be careful: Sexually frustrated pawns will make your empath loose lifeforce! + Carriers of this gene generate lifeforce if nearby pawns are sexually + satisfied. Be careful: Sexually frustrated pawns will make your empath loose lifeforce! Genes/Icons/Hypersexual rjw_genes_lifeforce 3 @@ -227,7 +261,9 @@ rjw_genes_drainer - Carriers of this gene are able to absorb a great amount of fertilin by draining the vitality of the partner. This is done passively through having sex with a non-drained pawn that does not have this gene. + Carriers of this gene are able to absorb a great amount of fertilin by draining + the vitality of the partner. This is done passively through having sex with a + non-drained pawn that does not have this gene. Genes/Icons/Vitality_Drainer rjw_genes_lifeforce 4 diff --git a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml index 3dbc43e..8a9d018 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml @@ -1,13 +1,13 @@ - + rjw_genes_hypersexual - + Reproduction Xenotypes with this Gene are Hypersexual (Nymphs). Genes/Icons/Hypersexual - 1 + 1
  • Nymphomaniac @@ -16,21 +16,22 @@ false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - + rjw_genes_rapist - + Reproduction Xenotypes with this Gene are Rapists. Genes/Icons/Rape 1 - 2 + 2
  • Rapist @@ -39,17 +40,18 @@ false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • - +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - + - + rjw_genes_masochist - + Reproduction Xenotypes with this Gene are Masochists. Genes/Icons/Rape 1 - 2 + 2
  • Masochist @@ -86,21 +89,22 @@ false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • - +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    rjw_genes_homosexual - + Reproduction This Gene makes you gay. UI\Ideoligions\Universal\RoundC 0 - 3 + 3
  • Gay @@ -112,21 +116,22 @@ false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • - +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    rjw_genes_bisexual - + Reproduction Carriers of this Gene are Bisexual. UI\Ideoligions\Universal\RoundC 0 - 4 + 4
  • Bisexual @@ -138,49 +143,61 @@ false -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • - +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - - rjw_genes_no_sex_need - - Carriers of this gene do not have a sex-need. They can still participate in sex, - Genes/Icons/Empty - 5 - -
  • Sex
  • -
    - -1 - 2 - - false - -
  • rjw_genes_sexual_orientation
  • -
    + + rjw_genes_no_sex_need + + Carriers of this gene do not have a sex-need. They can still participate in + sex, + Genes/Icons/Empty + 5 + +
  • Sex
  • +
    + -1 + 2 - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    - - - LitteredBirths - - Reproduction - Female carriers of this gene birth litters instead of just one baby, with a chance of having two to four babies per pregnancy. - Genes/Icons/Gene_LitteredBirths - 110 - 1.10 - -2 - 1 - + false + +
  • rjw_genes_sexual_orientation
  • +
    + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + + LitteredBirths + + Reproduction + Female carriers of this gene birth litters instead of just one baby, with a + chance of having two to four babies per pregnancy. + Genes/Icons/Gene_LitteredBirths + 110 + 1.10 + -2 + 1 + +
  • + ImpregnationFetishQuirk +
  • +
    + +
  • rjw_genes_littered_birth_vs_chestburst
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml index 6cd34be..189a6c8 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml @@ -1,31 +1,33 @@ - + - + - rjw_genes_special - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • + rjw_genes_special + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • rjw_genes_orgasm_rush - - On orgasm, carriers of this gene get a boost in activity. (rest-need is partially filled) + + On orgasm, carriers of this gene get a boost in activity. (rest-need is + partially filled) 1 -2 UI/Memes/FleshPurity 1 - + rjw_genes_youth_fountain - - Having sex with a carrier of this gene makes the partner slightly younger. (Partner stays adult) + + Having sex with a carrier of this gene makes the partner slightly younger. + (Partner stays adult) 2 -2 UI/Ideoligions/FireLeaves @@ -38,11 +40,12 @@ - + rjw_genes_sex_age_drain - - Having sex transfers some of the partners life-time to themselves. (Pawn stays adult) + + Having sex transfers some of the partners life-time to themselves. (Pawn stays + adult) 2 -1 UI/Icons/ColonistBar/Idle @@ -55,49 +58,52 @@ - + rjw_genes_aphrodisiac_pheromones - - RJW_Genes.Gene_Aphrodisiac_Pheromones + + RJW_Genes.Gene_Aphrodisiac_Pheromones Pheremones of this pawn induce an incressed sexdrive to others nearby. Genes/Icons/Pheromones 4 1 1 - -
  • - - 1250 -
  • -
  • - - 25 -
  • +
  • + + 1250 +
  • +
  • + + 25 +
  • - + rjw_genes_sexual_mytosis - - - Carriers of this gene grow more unstable with ongoing multiple orgasms - climaxing in a process of mytosis. This will result in an (biologically) identical pawn and both twins are set in a regenerative state. Also, the pawn can have multiple orgasms: In a state of higher unstableness, they come quicker. + + + Carriers have malfunctioning regenerative archites that grow more unstable with + ongoing multiple orgasms - climaxing in a process of mytosis. This will result in an + (biologically) identical pawn and both twins are set in a regenerative state. Also, the + pawn can have multiple orgasms: In a state of higher unstableness, they come quicker. UI/Icons/Genes/Gene_PsychicBonding 5 5 -5 - + 1 +
    rjw_genes_hormonal_saliva - - The saliva of this xenotype stimulates growth in penises. Regular contact will lead to noticable growth. + + The saliva of this xenotype stimulates growth in penises. Regular contact will + lead to noticable growth. 2 -1 Genes/Icons/Big_Male_Genitalia 6 -
  • @@ -110,20 +116,37 @@ - rjw_genes_cocoonweaver - - cocooner - Carriers of this gene can produce a cocoon to prepare helpless (or willing) victims for breeding. - Genes/Icons/Cocoon - 11 - -
  • rjw_genes_ability_cocoonweaver
  • - - - rjw_genes_ability_cocoonweaver - - 1 - -1 -
    + rjw_genes_cocoonweaver + + cocooner + Carriers of this gene can produce a cocoon to prepare helpless (or willing) + victims for breeding. + Genes/Icons/Cocoon + 11 + +
  • rjw_genes_ability_cocoonweaver
  • +
    + + rjw_genes_ability_cocoonweaver + + 1 + -1 + +
  • + BreederQuirk +
  • +
    +
    + + + rjw_genes_sex_tamer + + sextamer + Bestiality has a chance to tame animals or advance their training. + Genes/Icons/RJW_Genes_SexualTamer + 14 + 2 + -1 + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml index d7541e7..12ba760 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml @@ -1,81 +1,76 @@ - + - - rjw_genes_female_only - - rjw_genes_gender - This Xenotype only has females. - 0 - Genes/Icons/Female_Only - RJW_Genes.Gene_FemaleOnly - 1 + + rjw_genes_female_only + + rjw_genes_gender + This Xenotype only has females. + 0 + Genes/Icons/Female_Only + RJW_Genes.Gene_FemaleOnly + 1 + +
  • AG_Gender
  • +
  • Gender
  • +
    + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    - -
  • AG_Gender
  • -
  • Gender
  • -
    - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    + + rjw_genes_male_only + rjw_genes_gender + + This Xenotype only has males. + 0 + Genes/Icons/Male_Only + RJW_Genes.Gene_MaleOnly + 2 + +
  • AG_Gender
  • +
  • Gender
  • +
    + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    - - rjw_genes_male_only - rjw_genes_gender - - This Xenotype only has males. - 0 - Genes/Icons/Male_Only - RJW_Genes.Gene_MaleOnly - 2 - - -
  • AG_Gender
  • -
  • Gender
  • -
    - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
    -
    - - - - rjw_genes_gender_fluid - rjw_genes_gender - - Everyday carriers of this gene might change their biological sex. - 0 - Genes/Icons/Futa - RJW_Genes.Gene_GenderFluid - 2 - - - 0.9 - - -
  • AG_Gender
  • -
  • Gender
  • -
    - - -
  • - Genes/Icons/RJW_Genes_Endogene_Background - Genes/Icons/RJW_Genes_Xenogene_Background -
  • -
  • - - 120000 - 0.25 -
  • -
    -
    + + rjw_genes_gender_fluid + rjw_genes_gender + + Everyday carriers of this gene might change their biological sex. + 0 + Genes/Icons/Futa + RJW_Genes.Gene_GenderFluid + 2 + + 0.9 + +
  • AG_Gender
  • +
  • Gender
  • +
    + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
  • + + 120000 + 0.25 +
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml b/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml index 608a2f4..bc0c54b 100644 --- a/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml +++ b/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml @@ -1,11 +1,13 @@ - + rjw_genes_succubus - - Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen. - Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. + + Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures + strive parasitically on the Fertilin found in semen. + Succubi are beautiful and extremely hungry Xenohumans. They strive on having + sex and extracting their victims life-force through this. Genes/Icons/Xenotypes/Xenotype-Succubus PawnBecameSanguophage 0.5 @@ -13,7 +15,7 @@ 1 -1000 0.005 - false + false 0.02 0.02 @@ -22,40 +24,39 @@ 0.02 0.02 - -
  • rjw_genes_bisexual
  • -
  • rjw_genes_hypersexual
  • -
  • rjw_genes_female_only
  • -
  • rjw_genes_lifeforce
  • -
  • rjw_genes_lifeforce_drain
  • -
  • rjw_genes_demonic_genitalia
  • - -
  • rjw_genes_cum_eater
  • -
  • rjw_genes_fertilin_absorber
  • - -
  • rjw_genes_paralysingkiss
  • -
  • rjw_genes_seduce
  • -
  • AptitudeRemarkable_Sex
  • - -
  • DominantGene
  • -
  • rjw_genes_elasticity
  • -
  • rjw_genes_succubus_wings
  • -
  • rjw_genes_succubus_tail
  • -
  • rjw_genes_aphrodisiac_pheromones
  • -
  • Beauty_Pretty
  • -
  • MoveSpeed_Quick
  • -
  • AptitudeStrong_Social
  • -
  • Ears_Pointed
  • -
  • Headbone_MiniHorns
  • -
  • Skin_Purple
  • + +
  • rjw_genes_bisexual
  • +
  • rjw_genes_hypersexual
  • +
  • rjw_genes_female_only
  • +
  • rjw_genes_lifeforce
  • +
  • rjw_genes_lifeforce_drain
  • +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_cum_eater
  • +
  • rjw_genes_fertilin_absorber
  • +
  • rjw_genes_paralysingkiss
  • +
  • rjw_genes_seduce
  • +
  • AptitudeRemarkable_Sex
  • +
  • DominantGene
  • +
  • rjw_genes_elasticity
  • +
  • rjw_genes_succubus_wings
  • +
  • rjw_genes_succubus_tail
  • +
  • rjw_genes_aphrodisiac_pheromones
  • +
  • Beauty_Pretty
  • +
  • MoveSpeed_Quick
  • +
  • AptitudeStrong_Social
  • +
  • Ears_Pointed
  • +
  • Headbone_MiniHorns
  • +
  • Skin_Purple
  • - + rjw_genes_incubus - - Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen. - Incubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. + + Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures + strive parasitically on the Fertilin found in semen. + Incubi are beautiful and extremely hungry Xenohumans. They strive on having + sex and extracting their victims life-force through this. Genes/Icons/Xenotypes/Xenotype-Incubus PawnBecameSanguophage 0.5 @@ -63,7 +64,7 @@ 1 -1000 0.005 - false + false 0.02 0.02 @@ -72,73 +73,75 @@ 0.02 0.02 - -
  • rjw_genes_hypersexual
  • -
  • rjw_genes_male_only
  • -
  • rjw_genes_lifeforce
  • -
  • rjw_genes_lifeforce_drain
  • -
  • rjw_genes_drainer
  • -
  • rjw_genes_demonic_genitalia
  • - -
  • AptitudeRemarkable_Sex
  • - - -
  • DominantGene
  • -
  • rjw_genes_seduce
  • -
  • rjw_genes_succubus_wings
  • -
  • rjw_genes_succubus_tail
  • -
  • rjw_genes_aphrodisiac_pheromones
  • - -
  • Beauty_Pretty
  • -
  • MoveSpeed_Quick
  • -
  • Robust
  • -
  • UVSensitivity_Intense
  • -
  • AptitudeStrong_Intellectual
  • -
  • Ears_Pointed
  • -
  • Headbone_CenterHorn
  • -
  • Skin_InkBlack
  • + +
  • rjw_genes_hypersexual
  • +
  • rjw_genes_male_only
  • +
  • rjw_genes_lifeforce
  • +
  • rjw_genes_lifeforce_drain
  • +
  • rjw_genes_drainer
  • +
  • rjw_genes_demonic_genitalia
  • +
  • AptitudeRemarkable_Sex
  • +
  • DominantGene
  • +
  • rjw_genes_seduce
  • +
  • rjw_genes_succubus_wings
  • +
  • rjw_genes_succubus_tail
  • +
  • rjw_genes_aphrodisiac_pheromones
  • +
  • Beauty_Pretty
  • +
  • MoveSpeed_Quick
  • +
  • Robust
  • +
  • UVSensitivity_Intense
  • +
  • AptitudeStrong_Intellectual
  • +
  • Ears_Pointed
  • +
  • Headbone_CenterHorn
  • +
  • Skin_InkBlack
  • - + rjw_genes_cumazone - Cumazone are a female only xenotype that excel at meele combat. Originally created as bodyguards for glitterworld amazon communities, they spred to other systems by mere strength and providing for some fetishes. They can use Fertilin to enhance their skin to overpower any combatant in meele. Their only source for Fertilin is biting of male genitalia - so be sure to have a steady supply of victim males or prepare to raid unsuspecting men of the rim. - Female only, strong meele fighters, that use Fertilin from bitten-off cocks for powerful buffs. + Cumazone are a female only xenotype that excel at meele combat. Originally created + as bodyguards for glitterworld amazon communities, they spred to other systems by mere + strength and providing for some fetishes. They can use Fertilin to enhance their skin to + overpower any combatant in meele. Their only source for Fertilin is biting of male genitalia - + so be sure to have a steady supply of victim males or prepare to raid unsuspecting men of the + rim. + Female only, strong meele fighters, that use Fertilin from bitten-off cocks + for powerful buffs. Genes/Icons/Xenotypes/Xenotype-Cumazon 0.5 0.1~140 2.5 -1000 0.01 - false + false -
  • WoundHealing_Fast
  • -
  • NakedSpeed
  • -
  • Aggression_Aggressive
  • -
  • MeleeDamage_Strong
  • -
  • KillThirst
  • +
  • WoundHealing_Fast
  • +
  • NakedSpeed
  • +
  • Aggression_Aggressive
  • +
  • MeleeDamage_Strong
  • +
  • KillThirst
  • Robust
  • -
  • Pain_Reduced
  • -
  • Beauty_Ugly
  • -
  • Hair_BaldOnly
  • -
  • Hair_ShortOnly
  • -
  • Brow_Heavy
  • -
  • Body_Hulk
  • -
  • AptitudeStrong_Shooting
  • -
  • AptitudeRemarkable_Melee
  • -
  • AptitudePoor_Crafting
  • -
  • AptitudePoor_Artistic
  • +
  • Pain_Reduced
  • +
  • Beauty_Ugly
  • +
  • Hair_BaldOnly
  • +
  • Hair_ShortOnly
  • +
  • Brow_Heavy
  • +
  • Body_Hulk
  • +
  • AptitudeStrong_Shooting
  • +
  • AptitudeRemarkable_Melee
  • +
  • AptitudePoor_Crafting
  • +
  • AptitudePoor_Artistic
  • Unstoppable
  • -
  • rjw_genes_rapist
  • -
  • rjw_genes_female_only
  • -
  • rjw_genes_lifeforce
  • -
  • rjw_genes_lifeforce_drain
  • -
  • rjw_genes_pussyhealing
  • -
  • rjw_genes_cockeater
  • -
  • rjw_genes_naked_prowess
  • -
  • rjw_genes_orgasm_rush
  • -
    +
  • rjw_genes_rapist
  • +
  • rjw_genes_female_only
  • +
  • rjw_genes_lifeforce
  • +
  • rjw_genes_lifeforce_drain
  • +
  • rjw_genes_pussyhealing
  • +
  • rjw_genes_cockeater
  • +
  • rjw_genes_naked_prowess
  • +
  • rjw_genes_orgasm_rush
  • +
    - +
    \ No newline at end of file diff --git a/Common/Defs/HediffDefs/Bioscaffold.xml b/Common/Defs/HediffDefs/Bioscaffold.xml index 0b94e23..c6bed88 100644 --- a/Common/Defs/HediffDefs/Bioscaffold.xml +++ b/Common/Defs/HediffDefs/Bioscaffold.xml @@ -18,4 +18,54 @@ --> + + + Bioscaffold + + A single-use nanite-constructed lattice of organic mesh material meant to be installed inside a woman's womb prior to pregnancy. It provides an enriching environment for an unborn baby to grow more quickly. + + InstallBioscaffold + + Spacer + Rare + true + 25 + false + + 30 + 350 + 0.15 + 1.3 + 6 + 800 + + +
  • + 5 + true +
  • +
    + + 5 + 10 + 1 + 1 + + + DrugSynthesisSpeed + Intellectual + +
  • DrugLab
  • +
    + + 6 + 4 + + FertilityProcedures + 4 +
    + +
  • ExoticMisc
  • +
    +
    \ No newline at end of file diff --git a/Common/Defs/HediffDefs/Hediffs_CounterCumflation.xml b/Common/Defs/HediffDefs/Hediffs_CounterCumflation.xml new file mode 100644 index 0000000..1b30c82 --- /dev/null +++ b/Common/Defs/HediffDefs/Hediffs_CounterCumflation.xml @@ -0,0 +1,181 @@ + + + + rjw_genes_cumflation_counter + HediffWithComps + + cumflation negator + Negates the negative effects usually produced by being cumflated. + (240,200,110) + false + 1.0 + false + false + +
  • + -0.75 +
  • +
    + +
  • + + false +
  • +
  • + + 0.2 + false + + -0.1 + + +
  • + Moving + 0.1 +
  • + + +
  • + + 0.4 + false + + -0.3 + + +
  • + Moving + 0.3 +
  • + + -0.1 + +
  • + + 0.65 + false + + +0.5 + + +
  • + Moving + 0.6 +
  • + + -0.3 + +
  • + + 0.9 + false + + -0.7 + + +
  • + Moving + 1.0 +
  • + + -0.5 + +
    +
    + + + rjw_genes_cumstuffed_counter + HediffWithComps + + cumstuffed negated + Negates the negative effects that one would suffer from being cumstuffed. + (240,200,110) + false + 1.0 + false + false + +
  • + -0.75 +
  • +
  • + +
  • 0
  • +
  • 0
  • +
  • 0.75
  • +
  • 0.5
  • +
  • 0.2
  • + + +
    + +
  • + + false +
  • +
  • + + 0.2 + 0.95 + false + + -0.05 + + +
  • + Moving + 0.03 +
  • + + +
  • + + 0.4 + 0.9 + + -0.1 + + false + +
  • + Moving + 0.1 +
  • + + +
  • + + 0.6 + 0.75 + false + + -0.15 + + +
  • + Moving + 0.2 +
  • + + -0.15 + +
  • + + 0.8 + 0.5 + false + + -0.2 + + +
  • + Moving + 0.3 +
  • + + -0.3 + +
    +
    + +
    diff --git a/Common/Defs/HediffDefs/Hediffs_OrgasmRush.xml b/Common/Defs/HediffDefs/Hediffs_OrgasmRush.xml index f68663f..255b3e9 100644 --- a/Common/Defs/HediffDefs/Hediffs_OrgasmRush.xml +++ b/Common/Defs/HediffDefs/Hediffs_OrgasmRush.xml @@ -4,7 +4,7 @@ rjw_genes_orgasm_rush_hediff HediffWithComps - + Xenotypes with this Gene are pushed beyond normal limits when they have an orgasm. (240,200,110) false @@ -75,4 +75,3 @@ - diff --git a/Common/Defs/HediffDefs/LimbicStimulator.xml b/Common/Defs/HediffDefs/LimbicStimulator.xml index e3073fd..8a7f8a6 100644 --- a/Common/Defs/HediffDefs/LimbicStimulator.xml +++ b/Common/Defs/HediffDefs/LimbicStimulator.xml @@ -6,9 +6,7 @@ limbic stimulator An installed limbic stimulator. - - Scrambler - + (1.0, 0.6, 0.7)
  • @@ -20,4 +18,21 @@
  • + + + LimbicStimulator + + A perpetual slow-release chemical stimulation implant that is embedded deep within the reward center of the brain, greatly increasing the need for lovin'. The need is said to become so strong that it can drive people to force themselves onto others, even if they wouldn't otherwise. Post-lovin' clarity will leave the implanted in a state of bliss, but they may also feel a sense of regret if they steal lovin' if they normally wouldn't - at least until they become used to doing it. + + InstallLimbicStimulator + + + 30 + 4 + 1 + + + FertilityProcedures + + \ No newline at end of file diff --git a/Common/Defs/HediffDefs/OvaryAgitator.xml b/Common/Defs/HediffDefs/OvaryAgitator.xml index 916b122..45d69c9 100644 --- a/Common/Defs/HediffDefs/OvaryAgitator.xml +++ b/Common/Defs/HediffDefs/OvaryAgitator.xml @@ -116,4 +116,21 @@ + + + OvaryAgitator + + A crude slaver implant used to increase the number of eggs released during ovulation, increasing the likelihood of having multiple children per pregnancy. Their use is largely limited to rimworlds lacking in cloning infrastructure as most civilized and unified worlds have outlawed them.\n\nWhile it provides an initial boost in fertility, the implant will slowly deplete the victims's ovaries over several years until they're infertile. Allies of implanted victims will be angered. + + InstallOvaryAgitator + + + 10 + 1 + 6 + + + FertilityProcedures + + \ No newline at end of file diff --git a/Common/Defs/HediffDefs/Scrambler.xml b/Common/Defs/HediffDefs/Scrambler.xml index 5db5c4a..a84299d 100644 --- a/Common/Defs/HediffDefs/Scrambler.xml +++ b/Common/Defs/HediffDefs/Scrambler.xml @@ -29,4 +29,21 @@ + + + Scrambler + + A slaver implant, similar to the mindscrew, that can inject disorienting mind imagery directly into the visual cortex of the brain through a complex network of nanoelectrodes. Victims of scrambler implantation tend to socially withdraw to minimize additional stimulation. As a consequence of their confusion, they also become physically meek, making them easy to impose upon. Allies of implanted victims will be angered. + + + 50 + + + 8 + 1 + + + FertilityProcedures + + \ No newline at end of file diff --git a/Common/Defs/JobDefs/Jobs_LifeForce.xml b/Common/Defs/JobDefs/Jobs_LifeForce.xml index 13dd1e3..c05bf61 100644 --- a/Common/Defs/JobDefs/Jobs_LifeForce.xml +++ b/Common/Defs/JobDefs/Jobs_LifeForce.xml @@ -4,21 +4,21 @@ rjw_genes_lifeforce_randomrape rjw.JobDriver_RandomRape - Raping + raping false rjw_genes_lifeforce_healpussy RJW_Genes.JobDriver_CastAbilityAfterSex - Tending someones wounds with sex. + tending wounds with sex. false rjw_genes_lifeforce_seduced RJW_Genes.JobDriver_Seduced - Seduced. + seduced. false false @@ -26,7 +26,7 @@ rjw_genes_flirt RJW_Genes.JobDriver_Flirt - Seduced. + seduced. false \ No newline at end of file diff --git a/Common/Defs/JobDefs/Jobs_SexOnSpot.xml b/Common/Defs/JobDefs/Jobs_SexOnSpot.xml index e904f3e..842f676 100644 --- a/Common/Defs/JobDefs/Jobs_SexOnSpot.xml +++ b/Common/Defs/JobDefs/Jobs_SexOnSpot.xml @@ -4,7 +4,7 @@ sex_on_spot RJW_Genes.JobDriver_SexOnSpot - Making love on the spot. + making love on the spot. false diff --git a/Common/Defs/PawnKindDefs/PawnKind_LifeForce.xml b/Common/Defs/PawnKindDefs/PawnKind_LifeForce.xml index 9d48cdc..ed6001a 100644 --- a/Common/Defs/PawnKindDefs/PawnKind_LifeForce.xml +++ b/Common/Defs/PawnKindDefs/PawnKind_LifeForce.xml @@ -45,7 +45,7 @@ rjw_genes_incubus - + 50 Human diff --git a/Common/Defs/ThingDefs/Bioscaffold.xml b/Common/Defs/ThingDefs/Bioscaffold.xml deleted file mode 100644 index 4d585ba..0000000 --- a/Common/Defs/ThingDefs/Bioscaffold.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - Bioscaffold - - A single-use nanite-constructed lattice of organic mesh material meant to be installed inside a woman's womb prior to pregnancy. It provides an enriching environment for an unborn baby to grow more quickly. - - InstallBioscaffold - - Spacer - Rare - true - 25 - false - - 30 - 350 - 0.15 - 1.3 - 6 - 800 - - -
  • - 5 - true -
  • -
    - - 5 - 10 - 1 - 1 - - - DrugSynthesisSpeed - Intellectual - -
  • DrugLab
  • -
    - - 6 - 4 - - FertilityProcedures - 4 -
    - -
  • ExoticMisc
  • -
    -
    -
    \ No newline at end of file diff --git a/Common/Defs/ThingDefs/LimbicStimulator.xml b/Common/Defs/ThingDefs/LimbicStimulator.xml deleted file mode 100644 index a4e6aab..0000000 --- a/Common/Defs/ThingDefs/LimbicStimulator.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - LimbicStimulator - - A perpetual slow-release chemical stimulation implant that is embedded deep within the reward center of the brain, greatly increasing the need for lovin'. The need is said to become so strong that it can drive people to force themselves onto others, even if they wouldn't otherwise. Post-lovin' clarity will leave the implanted in a state of bliss, but they may also feel a sense of regret if they steal lovin' if they normally wouldn't - at least until they become used to doing it. - - InstallLimbicStimulator - - - 30 - 4 - 1 - - - BrainWiring - - - \ No newline at end of file diff --git a/Common/Defs/ThingDefs/OvaryAgitator.xml b/Common/Defs/ThingDefs/OvaryAgitator.xml deleted file mode 100644 index 256f69c..0000000 --- a/Common/Defs/ThingDefs/OvaryAgitator.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - OvaryAgitator - - A crude slaver implant used to increase the number of eggs released during ovulation, increasing the likelihood of having multiple children per pregnancy. Their use is largely limited to rimworlds lacking in cloning infrastructure as most civilized and unified worlds have outlawed them.\n\nWhile it provides an initial boost in fertility, the implant will slowly deplete the victims's ovaries over several years until they're infertile. Allies of implanted victims will be angered. - - InstallOvaryAgitator - - - 10 - 1 - 6 - - - FertilityProcedures - - - \ No newline at end of file diff --git a/Common/Defs/ThingDefs/Scrambler.xml b/Common/Defs/ThingDefs/Scrambler.xml deleted file mode 100644 index 0b13726..0000000 --- a/Common/Defs/ThingDefs/Scrambler.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Scrambler - - A slaver implant, made from a modified mindscrew, that can inject disorienting mind imagery directly into the visual cortex of the brain through a complex network of nanoelectrodes. Victims of scrambler implantation tend to socially withdraw to minimize additional stimulation. As a consequence of their confusion, they also become physically meek, making them easy to impose upon. Allies of implanted victims will be angered. - InstallScrambler - - 50 - - - 1 - 1 - 1 - - - BrainWiring - - - \ No newline at end of file diff --git a/Common/Defs/ThoughtDefs/Thoughts_Special.xml b/Common/Defs/ThoughtDefs/Thoughts_Special.xml index b669317..5620ca9 100644 --- a/Common/Defs/ThoughtDefs/Thoughts_Special.xml +++ b/Common/Defs/ThoughtDefs/Thoughts_Special.xml @@ -8,7 +8,7 @@ RJW_Genes.ThoughtWorker_Aphrodisiac_Pheromones_Social
  • - + {0} has a special vibe, we should hang out more often. +3
  • diff --git a/Common/Languages/English/Keyed/Bestiality.xml b/Common/Languages/English/Keyed/Bestiality.xml new file mode 100644 index 0000000..e6edf59 --- /dev/null +++ b/Common/Languages/English/Keyed/Bestiality.xml @@ -0,0 +1,4 @@ + + + animal-hybrid + diff --git a/Common/Languages/English/Keyed/Mod_Settings.xml b/Common/Languages/English/Keyed/Mod_Settings.xml new file mode 100644 index 0000000..d425cd5 --- /dev/null +++ b/Common/Languages/English/Keyed/Mod_Settings.xml @@ -0,0 +1,33 @@ + + + Genitalia resizing age: + years + At this age (in biological years) any resizing gene will be applied. This is done to prevent changes and issues related to genitalia changing in the pawns growth, but also for 'ethics'. + + Fertilin-Gain from Animals: + % of fertilin gained (compared to human-baseline). + + Sexdemon Visits + If enabled, incubi and succubi can spawn in through an event. + Size matters + Incubi and succubi will consider size/tightness of partners genital for deciding if they want to join + Sexdemon groups + Multiple sexdemons can spawn during a event + Succubi + Allow Succubi to spawn through this event + Incubi + Allow Incubi to spawn through this event + + Regret Stealing Love + If off, pawns will not get bad thoughts for seduction. + + + Animal-Mating GenitalCheck + If on, only animals that 'can rape' will be engaging in bestiality after being hit by a animal mating pulse. This usually means that only male animals will start breeding. + + generous-donor cheatmode + When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it. + + detailed-debug + Adds detailed information to the log about interactions and genes. + diff --git a/Common/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml b/Common/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml new file mode 100644 index 0000000..bb7012d --- /dev/null +++ b/Common/Languages/English/Keyed/Mod_Settings_AnimalGeneInheritance.xml @@ -0,0 +1,18 @@ + + + + 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/Common/Patches/Genes/Patch_Insector_ChestEggs.xml b/Common/Patches/Genes/Patch_Insector_ChestEggs.xml new file mode 100644 index 0000000..8d01d52 --- /dev/null +++ b/Common/Patches/Genes/Patch_Insector_ChestEggs.xml @@ -0,0 +1,15 @@ + + + + +
  • Vanilla Races Expanded - Insector
  • +
    + + Defs/GeneDef[defName = "VRE_ChestburstPregnancy"]/exclusionTags + +
  • rjw_genes_littered_birth_vs_chestburst
  • +
    +
    +
    + +
    \ No newline at end of file diff --git a/Common/Patches/Genes/Vanilla_Quirk_Patch.xml b/Common/Patches/Genes/Vanilla_Quirk_Patch.xml new file mode 100644 index 0000000..40458da --- /dev/null +++ b/Common/Patches/Genes/Vanilla_Quirk_Patch.xml @@ -0,0 +1,24 @@ + + + + /Defs/GeneDef[defName="Furskin"] + + +
  • + FurLoverQuirk +
  • +
    +
    +
    + + /Defs/GeneDef[defName="Head_Gaunt"] + + +
  • + TeratophileQuirk +
  • +
    +
    +
    +
    + diff --git a/Common/Patches/Xenotypes/GenitaliaUpdate.xml b/Common/Patches/Xenotypes/GenitaliaUpdate.xml index e6a9681..1451a13 100644 --- a/Common/Patches/Xenotypes/GenitaliaUpdate.xml +++ b/Common/Patches/Xenotypes/GenitaliaUpdate.xml @@ -14,6 +14,8 @@
  • rjw_genes_much_cum
  • rjw_genes_zoophile
  • +
  • rjw_genes_Pig_genitalia
  • +
  • rjw_genes_human_genitalia
  • diff --git a/Common/Patches/Xenotypes/PatchAlphaGenes.xml b/Common/Patches/Xenotypes/PatchAlphaGenes.xml index 33622b0..fd5aa82 100644 --- a/Common/Patches/Xenotypes/PatchAlphaGenes.xml +++ b/Common/Patches/Xenotypes/PatchAlphaGenes.xml @@ -1,131 +1,91 @@ - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Fleetkind"]/genes - -
  • rjw_genes_slime_genitalia
  • -
  • rjw_genes_elasticity
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Helixien"]/genes - -
  • rjw_genes_slime_genitalia
  • -
  • rjw_genes_elasticity
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Taukai"]/genes - -
  • rjw_genes_sexual_mytosis
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_MindDevourer"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
  • rjw_genes_sex_age_drain
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Lapis"]/genes - -
  • rjw_genes_big_breasts
  • -
  • rjw_genes_no_cum
  • -
  • rjw_genes_big_male_genitalia
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Efreet"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
  • rjw_genes_small_breasts
  • -
  • rjw_genes_tight_female_genitalia
  • -
  • rjw_genes_tight_anus
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Drakonori"]/genes - -
  • rjw_genes_dragon_genitalia
  • -
  • rjw_genes_big_male_genitalia
  • -
  • rjw_genes_aphrodisiac_pheromones
  • -
  • rjw_genes_big_breasts
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - Defs/XenotypeDef[defName="AG_Animusen"]/genes - -
  • rjw_genes_canine_genitalia
  • -
    -
    - - -
  • - -
  • Alpha Genes
  • - - - -
  • Vanilla Races Expanded - Sanguophage
  • -
    - - Defs/XenotypeDef[defName="AG_Malachai"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
    -
    -
    - - -
    -
    + + +
  • Alpha Genes
  • +
    + + +
  • + Defs/XenotypeDef[defName="AG_Fleetkind"]/genes + +
  • rjw_genes_slime_genitalia
  • +
  • rjw_genes_elasticity
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Helixien"]/genes + +
  • rjw_genes_slime_genitalia
  • +
  • rjw_genes_elasticity
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Taukai"]/genes + +
  • rjw_genes_sexual_mytosis
  • + + + +
  • + Defs/XenotypeDef[defName="AG_MindDevourer"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_sex_age_drain
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Lapis"]/genes + +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_no_cum
  • +
  • rjw_genes_big_male_genitalia
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Efreet"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_small_breasts
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Drakonori"]/genes + +
  • rjw_genes_dragon_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_aphrodisiac_pheromones
  • +
  • rjw_genes_big_breasts
  • + + + +
  • + Defs/XenotypeDef[defName="AG_Animusen"]/genes + +
  • rjw_genes_canine_genitalia
  • + + + +
  • + +
  • Vanilla Races Expanded - Sanguophage
  • + + + Defs/XenotypeDef[defName="AG_Malachai"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
    +
    + + +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSHeavHell.xml b/Common/Patches/Xenotypes/PatchBSHeavHell.xml new file mode 100644 index 0000000..8550b79 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSHeavHell.xml @@ -0,0 +1,92 @@ + + + + +
  • Big and Small - Heaven and Hell
  • +
    + + +
  • + Defs/XenotypeDef[defName="BS_Authority"]/genes + +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_no_sex_need
  • +
  • rjw_genes_generous_donor
  • +
  • AptitudePoor_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_Malakim"]/genes + +
  • rjw_genes_small_breasts
  • +
  • rjw_genes_generous_donor
  • +
  • AptitudeTerrible_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_Satan"]/genes + +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_human_genitalia
  • +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_reptilian_genitalia
  • +
  • rjw_genes_crocodilian_genitalia
  • +
  • AptitudeStrong_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_Grigori"]/genes + +
  • rjw_genes_generous_donor
  • +
  • AptitudeStrong_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_Nephilim"]/genes + +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_big_breasts
  • + + +
  • + Defs/XenotypeDef[defName="BS_Lilim"]/genes + +
  • rjw_genes_hypersexual
  • +
  • AptitudeStrong_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_Glutton"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_loose_female_genitalia
  • +
  • rjw_genes_loose_anus
  • +
  • rjw_genes_extra_vagina
  • +
  • rjw_genes_extra_anus
  • +
  • rjw_genes_cumflation_immunity
  • +
  • AptitudeStrong_Sex
  • + + +
  • + Defs/XenotypeDef[defName="BS_LilGlutton"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_small_male_genitalia
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_extra_vagina
  • +
  • rjw_genes_extra_anus
  • +
  • rjw_genes_likes_cumflation
  • +
  • rjw_genes_elastic
  • +
  • AptitudeStrong_Sex
  • + + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSMore.xml b/Common/Patches/Xenotypes/PatchBSMore.xml new file mode 100644 index 0000000..533b2db --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSMore.xml @@ -0,0 +1,26 @@ + + + + +
  • Big and Small - More Xenotypes
  • +
    + + +
  • + Defs/XenotypeDef[defName="BS_Weaver" or defName="BS_Devilspider"]/genes + +
  • rjw_genes_ovipositor_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="BS_Abomination"]/genes + +
  • rjw_genes_Tentacle_genitalia
  • +
  • rjw_genes_reptilian_genitalia
  • +
  • rjw_genes_human_genitalia
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSRaces.xml b/Common/Patches/Xenotypes/PatchBSRaces.xml new file mode 100644 index 0000000..31f8002 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSRaces.xml @@ -0,0 +1,94 @@ + + + + +
  • Big and Small - Races
  • +
    + + +
  • + Defs/XenotypeDef[defName="BS_Ogre"]/genes + +
  • rjw_genes_Orc_genitalia
  • +
  • rjw_genes_much_cum
  • + + +
  • + Defs/XenotypeDef[defName="BS_GreatOgre"]/genes + +
  • rjw_genes_Orc_genitalia
  • +
  • rjw_genes_very_much_cum
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_loose_female_genitalia
  • +
  • rjw_genes_loose_anus
  • + + +
  • + Defs/XenotypeDef[defName="BS_Troll"]/genes + +
  • rjw_genes_Orc_genitalia
  • +
  • rjw_genes_evergrowth
  • + + +
  • + Defs/XenotypeDef[defName="BS_Jotun" + or defName="BS_FrostJotun" + or defName="BS_FireJotun" + or defName="BS_Surtr" + or defName="BS_Ymir" + or defName="BS_Half_Jotun" + ]/genes + +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_orgasm_rush
  • + + +
  • + +
  • Alpha Genes
  • + + + Defs/XenotypeDef[defName="BS_Corrupterd_Titan"]/genes + +
  • rjw_genes_rapist
  • +
  • rjw_genes_Tentacle_genitalia
  • +
    +
    + +
  • + Defs/XenotypeDef[defName="BS_Gnome"]/genes + +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_very_much_cum
  • +
  • rjw_genes_likes_cumflation
  • + + +
  • + Defs/XenotypeDef[defName="BS_Dwarf" or defName="BS_Svartalf"]/genes + +
  • rjw_genes_big_male_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="BS_Redcap"]/genes + +
  • LitteredBirths
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_much_cum
  • +
  • rjw_genes_rapist
  • + + +
  • + Defs/XenotypeDef[defName = "BS_Hearthguard" or defName = "BS_Hearthdoll" or defName = "BS_PilotableFleshGolem" or defName="BS_FleshGolemServant"]/genes + +
  • rjw_genes_no_sex_need
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSShared.xml b/Common/Patches/Xenotypes/PatchBSShared.xml new file mode 100644 index 0000000..227e663 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSShared.xml @@ -0,0 +1,52 @@ + + + + +
  • Big and Small - Genes & More
  • +
    + + +
  • + Defs/XenotypeDef[@Name="BS_Succubus_A"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_aphrodisiac_pheromones
  • +
  • rjw_genes_hypersexual
  • +
  • rjw_genes_bisexual
  • +
  • AptitudeRemarkable_Sex
  • +
  • rjw_genes_elasticity
  • + + +
  • + Defs/XenotypeDef[@Name="BS_Hellguard_A"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_equine_genitalia
  • +
  • AptitudePoor_Sex
  • + + +
  • + Defs/XenotypeDef[@Name="BS_GateKeeper_A"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_much_cum
  • +
  • AptitudeTerrible_Sex
  • + + +
  • + Defs/XenotypeDef[@Name="BS_Imp_A"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_much_cum
  • +
  • rjw_genes_small_male_genitalia
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_small_breasts
  • +
  • rjw_genes_tight_anus
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSSlimes.xml b/Common/Patches/Xenotypes/PatchBSSlimes.xml new file mode 100644 index 0000000..fea02c8 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSSlimes.xml @@ -0,0 +1,35 @@ + + + + +
  • Big and Small - Slimes
  • +
    + + +
  • + Defs/XenotypeDef[defName="BS_GreenSlime" + or defName="BS_PinkSlime" + or defName="BS_FrostSlime" + or defName="BS_LavaSlime" + or defName="BS_EmperorSlime" + or defName="BS_ElixirSlime" + or defName="BS_ToxicSludge" + or defName="BS_BananaSplitSlime" + ]/genes + +
  • rjw_genes_slime_genitalia
  • +
  • rjw_genes_much_cum
  • +
  • rjw_genes_elasticity
  • + + +
  • + Defs/XenotypeDef[defName="BS_BananaSplitSlime"]/genes + +
  • rjw_genes_hypersexual
  • +
  • rjw_genes_bisexual
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSSneks.xml b/Common/Patches/Xenotypes/PatchBSSneks.xml new file mode 100644 index 0000000..8624f82 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSSneks.xml @@ -0,0 +1,33 @@ + + + + + +
  • Big and Small - Lamias and other Snake-People [HOLDHORSES]
  • +
    + + +
  • + Defs/XenotypeDef[defName = "LoS_Lamia" + or defName = "LoS_TrueLamia" + or defName = "LoS_Siren" + or defName = "LoS_Gorgon" + or defName = "Naga" + or defName = "Los_Adderman" + or defName = "Los_Anacondaman" + or defName = "Los_Snakeman"]/genes + +
  • rjw_genes_reptilian_genitalia
  • + + +
  • + Defs/XenotypeDef[defName = "Nagaraj" or defName = "Los_Silver"]/genes + +
  • rjw_genes_reptilian_genitalia
  • +
  • rjw_genes_unbreakable
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSUndead.xml b/Common/Patches/Xenotypes/PatchBSUndead.xml new file mode 100644 index 0000000..0c2e592 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSUndead.xml @@ -0,0 +1,60 @@ + + + + +
  • Big and Small - Vampires and the Undead
  • +
    + + +
  • + 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 + +
  • rjw_genes_canine_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="VU_Nosferatu" or defName="VU_Dracul_Feral"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_no_sex_need
  • + + +
  • + Defs/XenotypeDef[defName="VU_Dracul_Spawn" + or defName="VU_Dracul" + or defName="VU_Dracul_Mature" + or defName="VU_Dracul_Progenitor" + ]/genes + +
  • rjw_genes_demonic_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="VU_WhiteRose"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_aphrodisiac_pheromones
  • +
  • rjw_genes_bisexual
  • +
  • AptitudeRemarkable_Sex
  • +
  • rjw_genes_elasticity
  • + + + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchBSYokai.xml b/Common/Patches/Xenotypes/PatchBSYokai.xml new file mode 100644 index 0000000..eb1c2ac --- /dev/null +++ b/Common/Patches/Xenotypes/PatchBSYokai.xml @@ -0,0 +1,48 @@ + + + + +
  • Big and Small - Yokai
  • +
    + + +
  • + Defs/XenotypeDef[defName = "BS_Kitsune"]/genes + +
  • rjw_genes_canine_genitalia
  • +
  • LitteredBirths
  • + + + +
  • + Defs/XenotypeDef[defName = "BS_Nekomata"]/genes + +
  • rjw_genes_feline_genitalia
  • +
  • rjw_genes_extra_vagina
  • +
  • rjw_genes_extra_penis
  • +
  • rjw_genes_small_breasts
  • +
  • LitteredBirths
  • + + + +
  • + Defs/XenotypeDef[defName = "BS_RedOni" or defName = "BS_BlueOni" or defName = "BS_LesserOni"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_much_cum
  • + + + +
  • + Defs/XenotypeDef[defName = "BS_GreatBlueOni" or defName = "BS_GreatRedOni"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_loose_female_genitalia
  • +
  • rjw_genes_very_much_cum
  • + + +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchMammalia.xml b/Common/Patches/Xenotypes/PatchMammalia.xml new file mode 100644 index 0000000..409bdb5 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchMammalia.xml @@ -0,0 +1,145 @@ + + + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Barkkin"]/genes + +
  • rjw_genes_canine_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Bonecrown"]/genes + +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Wiretail"]/genes + +
  • rjw_genes_small_breasts
  • +
  • rjw_genes_small_male_genitalia
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_Needle_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Hidewing"]/genes + +
  • rjw_genes_small_breasts
  • +
  • rjw_genes_small_male_genitalia
  • +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_Needle_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Seertusk"]/genes + +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_loose_female_genitalia
  • +
  • rjw_genes_loose_anus
  • +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Hindhopper"]/genes + +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_Needle_genitalia
  • +
  • LitteredBirths
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Haytankard"]/genes + +
  • rjw_genes_big_breasts
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_loose_female_genitalia
  • +
  • rjw_genes_loose_anus
  • +
  • rjw_genes_udder
  • +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Cloudpuff"]/genes + +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_Needle_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Devilpuff"]/genes + +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_Needle_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Biotech Expansion - Mammalia
  • +
    + + Defs/XenotypeDef[defName="Blastheart"]/genes + +
  • rjw_genes_equine_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    +
    diff --git a/Common/Patches/Xenotypes/PatchMammaliaMythic.xml b/Common/Patches/Xenotypes/PatchMammaliaMythic.xml new file mode 100644 index 0000000..f106536 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchMammaliaMythic.xml @@ -0,0 +1,40 @@ + + + + +
  • Biotech Expansion - Mythic
  • +
    + + Defs/XenotypeDef[defName="Glintscale"]/genes + +
  • rjw_genes_much_cum
  • +
  • rjw_genes_dragon_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
    +
    +
    + + +
  • Biotech Expansion - Mythic
  • +
    + + Defs/XenotypeDef[defName="Ashfeather"]/genes + +
  • rjw_genes_much_cum
  • +
  • rjw_genes_Needle_genitalia
  • +
    +
    +
    + + +
  • Biotech Expansion - Mythic
  • +
    + + Defs/XenotypeDef[defName="Tailbinder"]/genes + +
  • rjw_genes_much_cum
  • +
  • rjw_genes_canine_genitalia
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchPigskins.xml b/Common/Patches/Xenotypes/PatchPigskins.xml new file mode 100644 index 0000000..c49c4ac --- /dev/null +++ b/Common/Patches/Xenotypes/PatchPigskins.xml @@ -0,0 +1,17 @@ + + + + +
  • Vanilla Races Expanded - Pigskin
  • +
    + + Defs/XenotypeDef[defName="VRE_Boarskin"]/genes + +
  • rjw_genes_Pig_genitalia
  • +
  • rjw_genes_human_genitalia
  • +
  • rjw_genes_much_cum
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchVRELycanthrope.xml b/Common/Patches/Xenotypes/PatchVRELycanthrope.xml new file mode 100644 index 0000000..6896e98 --- /dev/null +++ b/Common/Patches/Xenotypes/PatchVRELycanthrope.xml @@ -0,0 +1,28 @@ + + + + +
  • Vanilla Races Expanded - Lycanthrope
  • +
    + + Defs/XenotypeDef[defName="VRE_Wolfman"]/genes + +
  • rjw_genes_human_genitalia
  • +
  • rjw_genes_zoophile
  • +
    +
    +
    + + +
  • Vanilla Races Expanded - Lycanthrope
  • +
    + + Defs/XenotypeDef[defName="VRE_Lycan"]/genes + +
  • rjw_genes_canine_genitalia
  • +
  • rjw_genes_zoophile
  • +
  • rjw_genes_rapist
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchVREPhytokin.xml b/Common/Patches/Xenotypes/PatchVREPhytokin.xml index d58226c..055f695 100644 --- a/Common/Patches/Xenotypes/PatchVREPhytokin.xml +++ b/Common/Patches/Xenotypes/PatchVREPhytokin.xml @@ -1,50 +1,17 @@ - - -
  • - -
  • Vanilla Races Expanded - Phytokin
  • - - - Defs/XenotypeDef[defName="VRE_Poluxkin"]/genes - -
  • rjw_genes_tight_female_genitalia
  • -
  • rjw_genes_tight_anus
  • -
  • rjw_genes_elasticity
  • -
  • rjw_genes_bisexual
  • -
    -
    - -
  • - -
  • Vanilla Races Expanded - Phytokin
  • - - - Defs/XenotypeDef[defName="VRE_Gauranlenkin"]/genes - -
  • rjw_genes_tight_female_genitalia
  • -
  • rjw_genes_tight_anus
  • -
  • rjw_genes_elasticity
  • -
  • rjw_genes_bisexual
  • -
    -
    - - -
  • - -
  • Vanilla Races Expanded - Phytokin
  • - - - Defs/XenotypeDef[defName="VRE_Animakin"]/genes - -
  • rjw_genes_tight_female_genitalia
  • -
  • rjw_genes_tight_anus
  • -
  • rjw_genes_elasticity
  • -
  • rjw_genes_bisexual
  • -
    -
    - -
    -
    + + +
  • Vanilla Races Expanded - Phytokin
  • +
    + + Defs/XenotypeDef[defName="VRE_Poluxkin" or defName="VRE_Gauranlenkin" or defName="VRE_Animakin"]/genes + +
  • rjw_genes_tight_female_genitalia
  • +
  • rjw_genes_tight_anus
  • +
  • rjw_genes_elasticity
  • +
  • rjw_genes_bisexual
  • +
    +
    +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchVRESanguophage.xml b/Common/Patches/Xenotypes/PatchVRESanguophage.xml index 14c581e..706852c 100644 --- a/Common/Patches/Xenotypes/PatchVRESanguophage.xml +++ b/Common/Patches/Xenotypes/PatchVRESanguophage.xml @@ -1,41 +1,15 @@ - - -
  • - -
  • Vanilla Races Expanded - Sanguophage
  • - - - Defs/XenotypeDef[defName="VRE_Bruxa"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
    -
    - -
  • - -
  • Vanilla Races Expanded - Sanguophage
  • - - - Defs/XenotypeDef[defName="VRE_Ekkimian"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
    -
    - - -
  • - -
  • Vanilla Races Expanded - Sanguophage
  • - - - Defs/XenotypeDef[defName="VRE_Strigoi"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
    -
    - -
    -
    + + +
  • Vanilla Races Expanded - Sanguophage
  • +
    + + Defs/XenotypeDef[defName="VRE_Bruxa" or defName="VRE_Ekkimian" or defName="VRE_Strigoi"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
    +
    + +
    \ No newline at end of file diff --git a/Common/Patches/Xenotypes/PatchXenotech.xml b/Common/Patches/Xenotypes/PatchXenotech.xml index 846cb3a..1959c08 100644 --- a/Common/Patches/Xenotypes/PatchXenotech.xml +++ b/Common/Patches/Xenotypes/PatchXenotech.xml @@ -1,69 +1,55 @@ - - -
  • - -
  • [LTS]Xenotech
  • - - - Defs/XenotypeDef[defName="LTS_Nyankind"]/genes - -
  • rjw_genes_feline_genitalia
  • -
    -
    - -
  • - -
  • [LTS]Xenotech
  • - - - Defs/XenotypeDef[defName="LTS_Growler"]/genes - -
  • rjw_genes_canine_genitalia
  • -
    -
    - - -
  • - -
  • [LTS]Xenotech
  • - - - Defs/XenotypeDef[defName="LTS_Elfin"]/genes - -
  • rjw_genes_small_male_genitalia
  • -
  • rjw_genes_tight_female_genitalia
  • -
    -
    - - -
  • - -
  • [LTS]Xenotech
  • - - - Defs/XenotypeDef[defName="LTS_Ork"]/genes - -
  • rjw_genes_big_male_genitalia
  • -
  • rjw_genes_loose_female_genitalia
  • -
    -
    - - -
  • - -
  • [LTS]Xenotech
  • - - - Defs/XenotypeDef[defName="LTS_Lilime"]/genes - -
  • rjw_genes_demonic_genitalia
  • -
  • rjw_genes_elasticity
  • -
  • AptitudeRemarkable_Sex
  • -
    -
    - -
    -
    + + +
  • [LTS]Xenotech
  • +
    + + +
  • + Defs/XenotypeDef[defName="LTS_Nyankind"]/genes + +
  • rjw_genes_feline_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="LTS_Growler"]/genes + +
  • rjw_genes_canine_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="LTS_Elfin"]/genes + +
  • rjw_genes_small_male_genitalia
  • +
  • rjw_genes_tight_female_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="LTS_Ork"]/genes + +
  • rjw_genes_Orc_genitalia
  • +
  • rjw_genes_big_male_genitalia
  • +
  • rjw_genes_loose_female_genitalia
  • + + +
  • + Defs/XenotypeDef[defName="LTS_Lilime"]/genes + +
  • rjw_genes_demonic_genitalia
  • +
  • rjw_genes_elasticity
  • +
  • AptitudeRemarkable_Sex
  • + + +
  • + Defs/XenotypeDef[defName="LTS_Anthrae"]/genes + +
  • rjw_genes_ovipositor_genitalia
  • +
  • rjw_genes_bisexual
  • +
  • rjw_genes_insectincubator
  • + + +
    +
    +
    \ No newline at end of file diff --git a/Common/Textures/Genes/Icons/Animal_Mating_Call.png b/Common/Textures/Genes/Icons/Animal_Mating_Call.png new file mode 100644 index 0000000..c8ff964 Binary files /dev/null and b/Common/Textures/Genes/Icons/Animal_Mating_Call.png differ diff --git a/Common/Textures/Genes/Icons/Mating_Call_2.png b/Common/Textures/Genes/Icons/Mating_Call_2.png new file mode 100644 index 0000000..275e6dc Binary files /dev/null and b/Common/Textures/Genes/Icons/Mating_Call_2.png differ diff --git a/Common/Textures/Genes/Icons/Pheromone_Spit.png b/Common/Textures/Genes/Icons/Pheromone_Spit.png new file mode 100644 index 0000000..743d0a3 Binary files /dev/null and b/Common/Textures/Genes/Icons/Pheromone_Spit.png differ diff --git a/Common/Textures/Genes/Icons/RJW_Genes_Feline_Genitalia.png b/Common/Textures/Genes/Icons/RJW_Genes_Feline_Genitalia.png new file mode 100644 index 0000000..7b0dc9f Binary files /dev/null and b/Common/Textures/Genes/Icons/RJW_Genes_Feline_Genitalia.png differ diff --git a/Common/Textures/Genes/Icons/RJW_Genes_Mating_Call.png b/Common/Textures/Genes/Icons/RJW_Genes_Mating_Call.png new file mode 100644 index 0000000..1079d89 Binary files /dev/null and b/Common/Textures/Genes/Icons/RJW_Genes_Mating_Call.png differ diff --git a/Common/Textures/Genes/Icons/RJW_Genes_PheromoneSpit.png b/Common/Textures/Genes/Icons/RJW_Genes_PheromoneSpit.png new file mode 100644 index 0000000..fc8f699 Binary files /dev/null and b/Common/Textures/Genes/Icons/RJW_Genes_PheromoneSpit.png differ diff --git a/Common/Textures/Genes/Icons/RJW_Genes_SexualTamer.png b/Common/Textures/Genes/Icons/RJW_Genes_SexualTamer.png new file mode 100644 index 0000000..6a848c6 Binary files /dev/null and b/Common/Textures/Genes/Icons/RJW_Genes_SexualTamer.png differ diff --git a/Common/Textures/Genes/Icons/RJW_Genes_Udder.png b/Common/Textures/Genes/Icons/RJW_Genes_Udder.png new file mode 100644 index 0000000..9a641e1 Binary files /dev/null and b/Common/Textures/Genes/Icons/RJW_Genes_Udder.png differ diff --git a/Common/Textures/Genes/Icons/Samples/AnimalMatingcall.psd b/Common/Textures/Genes/Icons/Samples/AnimalMatingcall.psd new file mode 100644 index 0000000..16c084b Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/AnimalMatingcall.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/Pheromone_Spit.psd b/Common/Textures/Genes/Icons/Samples/Pheromone_Spit.psd new file mode 100644 index 0000000..c977538 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Pheromone_Spit.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/RJW_Genes_MatingCall.psd b/Common/Textures/Genes/Icons/Samples/RJW_Genes_MatingCall.psd new file mode 100644 index 0000000..0ac04b9 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/RJW_Genes_MatingCall.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/Sexual_Tamer.psd b/Common/Textures/Genes/Icons/Samples/Sexual_Tamer.psd new file mode 100644 index 0000000..e85ca52 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Sexual_Tamer.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/Skill_Pheromone_Spit.psd b/Common/Textures/Genes/Icons/Samples/Skill_Pheromone_Spit.psd new file mode 100644 index 0000000..72e02a0 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Skill_Pheromone_Spit.psd differ diff --git a/Common/Textures/Genes/Icons/Sexual_Tamer.png b/Common/Textures/Genes/Icons/Sexual_Tamer.png new file mode 100644 index 0000000..ce35369 Binary files /dev/null and b/Common/Textures/Genes/Icons/Sexual_Tamer.png differ diff --git a/Common/Textures/Genes/Icons/sex_curiosity.png b/Common/Textures/Genes/Icons/sex_curiosity.png new file mode 100644 index 0000000..b5dcd7f Binary files /dev/null and b/Common/Textures/Genes/Icons/sex_curiosity.png differ diff --git a/Common/Textures/Genes/Icons/sex_disabled.png b/Common/Textures/Genes/Icons/sex_disabled.png new file mode 100644 index 0000000..9ce4983 Binary files /dev/null and b/Common/Textures/Genes/Icons/sex_disabled.png differ diff --git a/Common/Textures/Genes/Icons/sex_enabled.png b/Common/Textures/Genes/Icons/sex_enabled.png new file mode 100644 index 0000000..86e0a6b Binary files /dev/null and b/Common/Textures/Genes/Icons/sex_enabled.png differ diff --git a/Common/Textures/Other/rjw-genes-previews/Preview.jpg b/Common/Textures/Other/rjw-genes-previews/Preview.jpg new file mode 100644 index 0000000..94e7eb7 Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/Preview.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-10.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-10.jpg new file mode 100644 index 0000000..57674c4 Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-10.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-5.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-5.jpg new file mode 100644 index 0000000..103d9cd Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-5.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-6.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-6.jpg new file mode 100644 index 0000000..3359018 Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-6.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-7.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-7.jpg new file mode 100644 index 0000000..f6dc7c3 Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-7.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-8.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-8.jpg new file mode 100644 index 0000000..e6a0c63 Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-8.jpg differ diff --git a/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-9.jpg b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-9.jpg new file mode 100644 index 0000000..04473ba Binary files /dev/null and b/Common/Textures/Other/rjw-genes-previews/rjw-genes-preview-9.jpg differ diff --git a/KNOWN_BUGS.md b/KNOWN_BUGS.md index b836d4e..676fc74 100644 --- a/KNOWN_BUGS.md +++ b/KNOWN_BUGS.md @@ -2,6 +2,34 @@ Collection of Known Bugs and reasons for their origin. +## System.MissingMethodException: bool RimWorld.Pawn_GeneTracker.HasActiveGene(Verse.GeneDef) + +You might see a bug like this: + +``` +Exception in Verse.AI.ThinkNode_Priority TryIssueJobPackage: System.MissingMethodException: bool RimWorld.Pawn_GeneTracker.HasActiveGene(Verse.GeneDef) +[Ref A8629303] Duplicate stacktrace, see ref for original +UnityEngine.StackTraceUtility:ExtractStackTrace () +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch2 (string) +Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) +Verse.AI.ThinkNode_SubtreesByTag:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) +Verse.AI.ThinkNode_Priority:TryIssueJobPackage (Verse.Pawn,Verse.AI.JobIssueParams) +Verse.AI.Pawn_JobTracker:DetermineNextJob (Verse.ThinkTreeDef&,bool) +Verse.AI.Pawn_JobTracker:TryFindAndStartJob () +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.EndCurrentJob_Patch1 (Verse.AI.Pawn_JobTracker,Verse.AI.JobCondition,bool,bool) +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_JobTracker.JobTrackerTick_Patch0 (Verse.AI.Pawn_JobTracker) +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Pawn.Tick_Patch2 (Verse.Pawn) +Verse.TickList:Tick () +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch3 (Verse.TickManager) +Verse.TickManager:TickManagerUpdate () +(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.UpdatePlay_Patch2 (Verse.Game) +Verse.Root_Play:Update () +``` + +This is due to the game not being updated - hasActiveGene has been introduced later than 1.5. + +You will have to update your game. + ## My Youth Fountain / Age Drainer Pawns do not alter Ages!!! Issue: You had a pawn with Youth Fountain have Sex with another Pawn, and the other pawn did not get younger. diff --git a/LoadFolders.xml b/LoadFolders.xml index d708230..8f11ba4 100644 --- a/LoadFolders.xml +++ b/LoadFolders.xml @@ -5,5 +5,16 @@
  • Common
  • Mods/NotRaceSupport
  • +
  • Mods/Sanguophage
  • +
  • Mods/Saurid
  • +
  • Mods/Phytokin
  • +
  • Mods/Lycanthrope
  • +
  • Mods/Highmate
  • +
  • Mods/Genie
  • +
  • Mods/Fungoid
  • +
  • Mods/Archon
  • +
  • Mods/Android
  • +
  • Mods/VE_Genetics
  • +
  • Mods/LicentiaLabs
  • \ No newline at end of file diff --git a/Mods/Android/Defs/AndroidConvertableGenesDefs/AndroidConvertableGenesDefs.xml b/Mods/Android/Defs/AndroidConvertableGenesDefs/AndroidConvertableGenesDefs.xml new file mode 100644 index 0000000..2977367 --- /dev/null +++ b/Mods/Android/Defs/AndroidConvertableGenesDefs/AndroidConvertableGenesDefs.xml @@ -0,0 +1,11 @@ + + + + rjw_genes_AndroidConvertableGenesDefs + +
  • rjw_genes_gender
  • +
    + + +
    +
    \ No newline at end of file diff --git a/Mods/Android/Defs/GeneDefs/GeneDefs_Androids.xml b/Mods/Android/Defs/GeneDefs/GeneDefs_Androids.xml new file mode 100644 index 0000000..058d719 --- /dev/null +++ b/Mods/Android/Defs/GeneDefs/GeneDefs_Androids.xml @@ -0,0 +1,54 @@ + + + + rjw_genes_bionic_genitalia + + RJW_Genes.Gene_GenitaliaType + This piece of hardware is a set of bionic genitals of high quality + Genes/Icons/Genitalia_human + +
  • + BionicPenis + BionicVagina + BionicAnus + BionicBreasts +
  • +
    + 802 + -2 +
    + + + rjw_genes_hydrolic_genitalia + + RJW_Genes.Gene_GenitaliaType + This piece of hardware is a set of crude hydrolic genitals, at least it come with a suspension system + Genes/Icons/Genitalia_human + +
  • + HydraulicPenis + HydraulicVagina + HydraulicAnus + HydraulicBreasts +
  • +
    + 802 + + 1.12 + +
    + + + rjw_genes_SexDisabled + + Androids do not feel satisfaction from sex, and have no need to feel it. + Genes/Icons/sex_disabled + 3 + 1 + +
  • Sex
  • +
    + true +
    + +
    \ No newline at end of file diff --git a/Mods/Android/Patches/Android_Quirk_Patch.xml b/Mods/Android/Patches/Android_Quirk_Patch.xml new file mode 100644 index 0000000..52f9333 --- /dev/null +++ b/Mods/Android/Patches/Android_Quirk_Patch.xml @@ -0,0 +1,26 @@ + + + + /Defs/VREAndroids.AndroidGeneDef[defName="VREA_SyntheticBody"] + +
  • + RobotLoverQuirk +
  • +
    +
    + + /Defs/VREAndroids.AndroidGeneDef[defName="VREA_SyntheticSkin"] + +
  • + RobotLoverQuirk +
  • +
    +
    + + /Defs/GeneCategoryDef[defName="VREA_Subroutine"]/displayPriorityInXenotype + + 10 + + +
    + diff --git a/Mods/Archon/Patches/Archon_Quirk_Patch.xml b/Mods/Archon/Patches/Archon_Quirk_Patch.xml new file mode 100644 index 0000000..0f7e119 --- /dev/null +++ b/Mods/Archon/Patches/Archon_Quirk_Patch.xml @@ -0,0 +1,12 @@ + + + + /Defs/GeneDef[defName="VRE_Leatherskin"] + +
  • + SkinLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/Fungoid/Patches/Fungoid_Quirk_Patch.xml b/Mods/Fungoid/Patches/Fungoid_Quirk_Patch.xml new file mode 100644 index 0000000..bcb1e72 --- /dev/null +++ b/Mods/Fungoid/Patches/Fungoid_Quirk_Patch.xml @@ -0,0 +1,28 @@ + + + + /Defs/GeneDef[defName="VRE_FungalCrest"] + +
  • + PlantLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_HairMushroom"] + +
  • + PlantLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_FungalFlesh"] + +
  • + PlantLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/Genie/Defs/GeneDefs/GeneDefs_Curiosity_sex.xml b/Mods/Genie/Defs/GeneDefs/GeneDefs_Curiosity_sex.xml new file mode 100644 index 0000000..98cd404 --- /dev/null +++ b/Mods/Genie/Defs/GeneDefs/GeneDefs_Curiosity_sex.xml @@ -0,0 +1,30 @@ + + + + + VRE_Curiosity + +
  • VRE_Curiosity
  • +
  • Curiosity
  • +
    + -2 + 2 +
    + + + VRE_Curiosity_Sex + + 0 + The carrier has a natural curiosity for sex which makes them gain recreation whenever they learn it. Furthermore, curiosity prevents skill loss in sex completely. + + Genes/Icons/sex_curiosity + +
  • + Sex + Sex +
  • +
    +
    + + +
    \ No newline at end of file diff --git a/Mods/Highmate/Patches/Highmate_Quirk_Patch.xml b/Mods/Highmate/Patches/Highmate_Quirk_Patch.xml new file mode 100644 index 0000000..0f69977 --- /dev/null +++ b/Mods/Highmate/Patches/Highmate_Quirk_Patch.xml @@ -0,0 +1,28 @@ + + + + /Defs/GeneDef[defName="VRE_FelineEars"] + +
  • + FurLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_FelineTail"] + +
  • + FurLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_PerfectBody"] + +
  • + SkinLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/LicentiaLabs/Defs/GeneDefs/LicentiaLabs_GeneDefs.xml b/Mods/LicentiaLabs/Defs/GeneDefs/LicentiaLabs_GeneDefs.xml new file mode 100644 index 0000000..22fb911 --- /dev/null +++ b/Mods/LicentiaLabs/Defs/GeneDefs/LicentiaLabs_GeneDefs.xml @@ -0,0 +1,82 @@ + + + + + rjw_genes_elasticity + + rjw_genes_damage + This Xenotype cannot get stretched by huge penetrators. + Genes/Icons/Elasticity + RJW_Genes.Gene_Elasticity + -1 + 1 + 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + + rjw_genes_likes_cumflation + + rjw_genes_cum + This Xenotype loves being cumflated. + Genes/Icons/Cumflation + 536 + +
  • + LikesCumflation +
  • +
    + +
  • NotCumflatable
  • +
    + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + + rjw_genes_cumflation_immunity + + rjw_genes_cum + This Xenotype cannot get cumflated. + Genes/Icons/Cumflation_Immunity + 537 + +
  • NotCumflatable
  • +
    + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + + rjw_genes_generous_donor + + rjw_genes_cum + When this Xenotype transfers nutrition via cumshot, the giver will not get hungry. (Licentia Configuration for Transfer Nutrition must be enabled). + Genes/Icons/Generous_Donor + 538 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + +
    \ No newline at end of file diff --git a/Mods/Lycanthrope/Patches/Lycanthrope_Quirk_Patch.xml b/Mods/Lycanthrope/Patches/Lycanthrope_Quirk_Patch.xml new file mode 100644 index 0000000..475950c --- /dev/null +++ b/Mods/Lycanthrope/Patches/Lycanthrope_Quirk_Patch.xml @@ -0,0 +1,20 @@ + + + + /Defs/GeneDef[defName="VRE_ChestFur"] + +
  • + FurLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_CanineTail"] + +
  • + FurLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/Phytokin/Patches/Phytokin_Quirk_Patch.xml b/Mods/Phytokin/Patches/Phytokin_Quirk_Patch.xml new file mode 100644 index 0000000..78089d4 --- /dev/null +++ b/Mods/Phytokin/Patches/Phytokin_Quirk_Patch.xml @@ -0,0 +1,28 @@ + + + + /Defs/GeneDef[defName="VRE_BarkSkin"] + +
  • + PlantLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_FoliageHair"] + +
  • + PlantLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_SapBlood"] + +
  • + PlantLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/Sanguophage/Patches/Sanguophage_Quirk_Patch.xml b/Mods/Sanguophage/Patches/Sanguophage_Quirk_Patch.xml new file mode 100644 index 0000000..cf01f46 --- /dev/null +++ b/Mods/Sanguophage/Patches/Sanguophage_Quirk_Patch.xml @@ -0,0 +1,44 @@ + + + + /Defs/GeneDef[defName="VRE_SanguineHair"] + +
  • + DemonLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_BatEars"] + +
  • + TeratophileQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_UpperBatEars"] + +
  • + TeratophileQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_Talons"] + +
  • + DemonLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRE_BatNose"] + +
  • + TeratophileQuirk +
  • +
    +
    +
    + diff --git a/Mods/Saurid/Patches/Saurid_Quirk_Patch.xml b/Mods/Saurid/Patches/Saurid_Quirk_Patch.xml new file mode 100644 index 0000000..37188ff --- /dev/null +++ b/Mods/Saurid/Patches/Saurid_Quirk_Patch.xml @@ -0,0 +1,44 @@ + + + + /Defs/GeneDef[defName="VRESaurids_FrilledEars"] + +
  • + ScaleLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRESaurids_CenterFrill"] + +
  • + ScaleLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRESaurids_GeckoTail"] + +
  • + ScaleLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRESaurids_SauridClaws"] + +
  • + ScaleLoverQuirk +
  • +
    +
    + + /Defs/GeneDef[defName="VRESaurids_ScaleSkin"] + +
  • + ScaleLoverQuirk +
  • +
    +
    +
    + diff --git a/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml b/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml new file mode 100644 index 0000000..93aa987 --- /dev/null +++ b/Mods/VE_Genetics/Defs/HedifDef/Hediffs_Animals.xml @@ -0,0 +1,19 @@ + + + + + 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/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml b/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml new file mode 100644 index 0000000..a4d43ef --- /dev/null +++ b/Mods/VE_Genetics/Defs/RaceGeneDef/RaceGeneDefs_VEgenetic.xml @@ -0,0 +1,654 @@ + + + + + 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_cum + 0.3 +
  • +
  • + rjw_genes_very_much_cum + 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_cum + 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/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml b/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml new file mode 100644 index 0000000..ab3ba01 --- /dev/null +++ b/Mods/VE_Genetics/Defs/RaceGroupDef/Hybrid_Group.xml @@ -0,0 +1,795 @@ + + + + + Bear_Grizzly_Group + +
  • Human
  • +
  • Bear_Grizzly
  • +
    + +
  • GR_Manbear
  • +
  • GR_Bearman
  • +
    +
    + + + Bear_Polar_Group + +
  • Human
  • +
  • Bear_Polar
  • +
    + + +
  • GR_Manbear
  • +
  • GR_Bearman
  • +
    +
    + + + GR_Manbear_Group + +
  • Human
  • +
  • GR_Manbear
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Bearman_Group + +
  • Human
  • +
  • GR_Bearman
  • +
    + + +
  • Human
  • +
    +
    + + + Boomalope_Group + +
  • Human
  • +
  • Boomalope
  • +
    + + +
  • GR_Manalope
  • +
  • GR_Booman
  • +
    +
    + + + GR_Manalope_Group + +
  • Human
  • +
  • GR_Manalope
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Booman_Group + +
  • Human
  • +
  • GR_Booman
  • +
    + + +
  • Human
  • +
    +
    + + + Chicken_Group + +
  • Human
  • +
  • Chicken
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Duck_Group + +
  • Human
  • +
  • Duck
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Turkey_Group + +
  • Human
  • +
  • Turkey
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Goose_Group + +
  • Human
  • +
  • Goose
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Ostrich_Group + +
  • Human
  • +
  • Ostrich
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Emu_Group + +
  • Human
  • +
  • Emu
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + Cassowary_Group + +
  • Human
  • +
  • Cassowary
  • +
    + + +
  • GR_Manchicken
  • +
  • GR_Turkeyman
  • +
    +
    + + + GR_Manchicken_Group + +
  • Human
  • +
  • GR_Manchicken
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Turkeyman_Group + +
  • Human
  • +
  • GR_Turkeyman
  • +
    + + +
  • Human
  • +
    +
    + + + Cow_Group + +
  • Human
  • +
  • Cow
  • +
    + + +
  • GR_Manffalo
  • +
  • GR_Muffaloman
  • +
    +
    + + + Muffalo_Group + +
  • Human
  • +
  • Muffalo
  • +
    + + +
  • GR_Manffalo
  • +
  • GR_Muffaloman
  • +
    +
    + + + Bison_Group + +
  • Human
  • +
  • Bison
  • +
    + + +
  • GR_Manffalo
  • +
  • GR_Muffaloman
  • +
    +
    + + + Yak_Group + +
  • Human
  • +
  • Yak
  • +
    + + +
  • GR_Manffalo
  • +
  • GR_Muffaloman
  • +
    +
    + + + GR_Manffalo_Group + +
  • Human
  • +
  • GR_Manffalo
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Muffaloman_Group + +
  • Human
  • +
  • GR_Muffaloman
  • +
    + + +
  • Human
  • +
    +
    + + + Warg_Group + +
  • Human
  • +
  • Warg
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Wolf_Timber_Group + +
  • Human
  • +
  • Wolf_Timber
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Wolf_Arctic_Group + +
  • Human
  • +
  • Wolf_Arctic
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Fox_Fennec_Group + +
  • Human
  • +
  • Fox_Fennec
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Fox_Red_Group + +
  • Human
  • +
  • Fox_Red
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Fox_Arctic_Group + +
  • Human
  • +
  • Fox_Arctic
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + Husky_Group + +
  • Human
  • +
  • Husky
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + LabradorRetriever_Group + +
  • Human
  • +
  • LabradorRetriever
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + YorkshireTerrier_Group + +
  • Human
  • +
  • YorkshireTerrier
  • +
    + + +
  • GR_Manwolf
  • +
  • GR_Dogman
  • +
    +
    + + + GR_Manwolf_Group + +
  • Human
  • +
  • GR_Manwolf
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Dogman_Group + +
  • Human
  • +
  • GR_Dogman
  • +
    + + +
  • Human
  • +
    +
    + + + Cougar_Group + +
  • Human
  • +
  • Cougar
  • +
    + + +
  • GR_Mancat
  • +
  • GR_Catman
  • +
    +
    + + + Panther_Group + +
  • Human
  • +
  • Panther
  • +
    + + +
  • GR_Mancat
  • +
  • GR_Catman
  • +
    +
    + + + Lynx_Group + +
  • Human
  • +
  • Lynx
  • +
    + + +
  • GR_Mancat
  • +
  • GR_Catman
  • +
    +
    + + + Cat_Group + +
  • Human
  • +
  • Cat
  • +
    + + +
  • GR_Mancat
  • +
  • GR_Catman
  • +
    +
    + + + GR_Mancat_Group + +
  • Human
  • +
  • GR_Mancat
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Catman_Group + +
  • Human
  • +
  • GR_Catman
  • +
    + + +
  • Human
  • +
    +
    + + + GuineaPig_Group + +
  • Human
  • +
  • GuineaPig
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + Hare_Group + +
  • Human
  • +
  • Hare
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + Snowhare_Group + +
  • Human
  • +
  • Snowhare
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + Squirrel_Group + +
  • Human
  • +
  • Squirrel
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + Rat_Group + +
  • Human
  • +
  • Rat
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + Raccoon_Group + +
  • Human
  • +
  • Raccoon
  • +
    + + +
  • GR_Mansquirrel
  • +
  • GR_Moleman
  • +
    +
    + + + GR_Mansquirrel_Group + +
  • Human
  • +
  • GR_Mansquirrel
  • +
    + + +
  • Human
  • +
    +
    + + + GR_Moleman_Group + +
  • Human
  • +
  • GR_Moleman
  • +
    + + +
  • Human
  • +
    +
    + + + Thrumbo_Group + +
  • Human
  • +
  • Thrumbo
  • +
    + + +
  • GR_Thrumboman
  • +
    +
    + + + GR_Thrumboman_Group + +
  • Human
  • +
  • GR_Thrumboman
  • +
    + + +
  • Human
  • +
    +
    + + + + + + Dromedary_Group + +
  • Human
  • +
  • Dromedary
  • +
    + + +
  • GR_Hurseman
  • +
    +
    + + + Elk_Group + +
  • Human
  • +
  • Elk
  • +
    + + +
  • GR_Hurseman
  • +
    +
    + + + Horse_Group + +
  • Human
  • +
  • Horse
  • +
    + + +
  • GR_Hurseman
  • +
    +
    + + + Caribou_Group + +
  • Human
  • +
  • Caribou
  • +
    + + +
  • GR_Hurseman
  • +
    +
    + + + Donkey_Group + +
  • Human
  • +
  • Donkey
  • +
    + + +
  • GR_Hurseman
  • +
    +
    + + + GR_Hurseman_Group + +
  • Human
  • +
  • GR_Hurseman
  • +
    + + +
  • Human
  • +
    +
    + + + Megascarab_Group + +
  • Human
  • +
  • Megascarab
  • +
    + + +
  • GR_Manscarab
  • +
    +
    + + + Spelopede_Group + +
  • Human
  • +
  • Spelopede
  • +
    + + +
  • GR_Manscarab
  • +
    +
    + + + Megaspider_Group + +
  • Human
  • +
  • Megaspider
  • +
    + + +
  • GR_Manscarab
  • +
    +
    + + + GR_Manscarab_Group + +
  • Human
  • +
  • GR_Manscarab
  • +
    + + +
  • Human
  • +
    +
    + + + Iguana_Group + +
  • Human
  • +
  • Iguana
  • +
    + + +
  • GR_Lizardman
  • +
    +
    + + + Cobra_Group + +
  • Human
  • +
  • Cobra
  • +
    + + +
  • GR_Lizardman
  • +
    +
    + + + Tortoise_Group + +
  • Human
  • +
  • Tortoise
  • +
    + + +
  • GR_Lizardman
  • +
    +
    + + + GR_Lizardman_Group + +
  • Human
  • +
  • GR_Lizardman
  • +
    + + +
  • Human
  • +
    +
    + +
    diff --git a/README.md b/README.md index 9ea66bc..697bcdc 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ This mod adds genes related and based on RJW to Rimworld. - Human-Animal Gene Inheritance merged from [Shabakur](https://github.com/Shabakur/RJW_Animal_Gene_Inheritance) - 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. diff --git a/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs b/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs new file mode 100644 index 0000000..1395575 --- /dev/null +++ b/Source/Animal_Inheritance/Patches/Patch_RJW_BasePregnancy_VanillaExpandedGenetics.cs @@ -0,0 +1,103 @@ +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 BasePregnancyPatcher + { + public static List supportedHybridRaces = new List() + { + "GR_Manbear", + "GR_Bearman", + "GR_Manalope", + "GR_Booman", + "GR_Manchicken", + "GR_Turkeyman", + "GR_Manffalo", + "GR_Muffaloman", + "GR_Manwolf", + "GR_Dogman", + "GR_Mancat", + "GR_Catman", + "GR_Mansquirrel", + "GR_Moleman", + "GR_Thrumboman", + "GR_Hurseman", + "GR_Manscarab", + "GR_Lizardman" + }; + + public static List supportedInitialAnimalRaces = new List() + { + "Bear_Grizzly", + "Bear_Polar", + "Boomalope", + "Chicken", + "Duck", + "Turkey", + "Goose", + "Ostrich", + "Emu", + "Cassowary", + "Cow", + "Muffalo", + "Bison", + "Yak", + "Warg", + "Wolf_Timber", + "Wolf_Arctic", + "Fox_Fennec", + "Fox_Red", + "Fox_Arctic", + "Husky", + "LabradorRetriever", + "YorkshireTerrier", + "Cougar", + "Panther", + "Lynx", + "Cat", + "GuineaPig", + "Hare", + "Snowhare", + "Squirrel", + "Rat", + "Raccoon", + "Thrumbo", + "Dromedary", + "Elk", + "Horse", + "Caribou", + "Donkey", + "Megascarab", + "Spelopede", + "Megaspider", + "Iguana", + "Cobra", + "Tortoise" + }; + + public static HediffDef controler = DefDatabase.GetNamed("rjw_genes_animal_control_hediff", false); + + [HarmonyPostfix] + [HarmonyPatch("GenerateBabies")] + public static void addHedif (Hediff_BasePregnancy __instance) + { + if (controler == null) return; + + foreach (Pawn baby in __instance.babies) + { + if(baby != null && supportedHybridRaces.Contains(baby.kindDef.race.defName)) + baby.health.AddHediff(controler); + } + } + + } +} diff --git a/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs b/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs index c5f6366..d8440e8 100644 --- a/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs +++ b/Source/Animal_Inheritance/Patches/Patch_RJW_BestialityPregnancyUtility.cs @@ -7,6 +7,7 @@ using HarmonyLib; using RimWorld; using Verse; using rjw; +using static RimWorld.PsychicRitualRoleDef; namespace RJW_BGS { @@ -43,7 +44,9 @@ namespace RJW_BGS // The mix-breed babies should be labelled hybrids baby.genes.hybrid = true; - baby.genes.xenotypeName = "Hybrid"; + + //reason = "AbilityDisabledNoFertilinGene".Translate(this.parent.pawn); + baby.genes.xenotypeName = "rjw_genes_bestiality_hybrid".Translate(); } } } diff --git a/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs b/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs new file mode 100644 index 0000000..fab9645 --- /dev/null +++ b/Source/Animal_Inheritance/Patches/Patch_RJW_PregnancyHelper_VanillaExpandedGenetics.cs @@ -0,0 +1,65 @@ +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 hybrdiization 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. + /// + [HarmonyPrefix] + [HarmonyPatch("AddPregnancyHediff")] + public static bool AddPregnancyHediffPrefix(Pawn mother, Pawn father) + { + if (!RJW_BGSSettings.rjw_bgs_VE_genetics) return true; + if (mother == null || father == null) return true; + bool humanMotherAndSupportedAnimal = mother.IsHuman() && Patch_RJW_BasePregnancy_VanillaExpandedGenetics.supportedInitialAnimalRaces.Contains(father.kindDef.race.defName); + bool humanMotherAndSupportedHybrid = mother.IsHuman() && Patch_RJW_BasePregnancy_VanillaExpandedGenetics.supportedHybridRaces.Contains(father.kindDef.race.defName); + bool humanFatherAndSupportedAnimal = father.IsHuman() && Patch_RJW_BasePregnancy_VanillaExpandedGenetics.supportedInitialAnimalRaces.Contains(mother.kindDef.race.defName); + bool humanFatherAndSupportedHybrid = father.IsHuman() && Patch_RJW_BasePregnancy_VanillaExpandedGenetics.supportedHybridRaces.Contains(mother.kindDef.race.defName); + + if (!(humanMotherAndSupportedAnimal || humanMotherAndSupportedHybrid||humanFatherAndSupportedAnimal|| humanFatherAndSupportedHybrid)) return true; + if (humanMotherAndSupportedAnimal) + { + Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Father); + return false; + } + else if (humanMotherAndSupportedHybrid) + { + if (RJW_Genes_Settings.rjw_genes_detailed_debug) + RJW_Genes.ModLog.Message("preg hediffdefof PregnantHuman " + RimWorld.HediffDefOf.PregnantHuman); + + PregnancyHelper.StartVanillaPregnancy(mother, father); + return false; + } + else if (humanFatherAndSupportedAnimal) + { + Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Mother); + return false; + } + else if (humanFatherAndSupportedHybrid) + { + Hediff_BasePregnancy.Create(mother, father, DnaGivingParent.Father); + return false; + } + return true; + } + + } +} diff --git a/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs b/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs index d619354..854df07 100644 --- a/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs +++ b/Source/Animal_Inheritance/Settings/RJW_BGSSettings.cs @@ -21,16 +21,18 @@ namespace RJW_BGS listing_Standard.ColumnWidth = rect.width / 2.05f; listing_Standard.Begin(rect); listing_Standard.Gap(24f); - listing_Standard.CheckboxLabeled("enabled", ref rjw_bgs_enabled, "If toggled, Animal Pregnancies will try inherit genes.", 0f, 1f); + 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); listing_Standard.Label("gene inheritance chance"+ ": " + Math.Round((double)(RJW_BGSSettings.rjw_bgs_global_gene_chance * 100f), 0).ToString() + "%", -1f, "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("genes as xenogenes", ref rjw_bgs_animal_genes_as_xenogenes, "If toggled, animal genes will be added as xenogenes.", 0f, 1f); + 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("detailed-debug", ref rjw_bgs_detailed_debug, "Adds detailed information to the log about pregnancies and genes.", 0f, 1f); + 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); + listing_Standard.CheckboxLabeled("rjw_genes_animal_inheritance_settings_detailed_debug_key".Translate(), ref rjw_bgs_detailed_debug, "rjw_genes_animal_inheritance_settings_detailed_debug_explanation".Translate(), 0f, 1f); listing_Standard.End(); } @@ -41,11 +43,13 @@ namespace RJW_BGS 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_detailed_debug, "rjw_bgs_detailed_debug", RJW_BGSSettings.rjw_bgs_detailed_debug, true); + Scribe_Values.Look(ref RJW_BGSSettings.rjw_bgs_VE_genetics, "rjw_bgs_VE_genetics", RJW_BGSSettings.rjw_bgs_VE_genetics, 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_detailed_debug = false; + public static bool rjw_bgs_VE_genetics = true; } } diff --git a/Source/Common/patches/PatchPregnancyHelper.cs b/Source/Common/patches/PatchPregnancyHelper.cs index 30aa788..d646323 100644 --- a/Source/Common/patches/PatchPregnancyHelper.cs +++ b/Source/Common/patches/PatchPregnancyHelper.cs @@ -32,6 +32,11 @@ namespace RJW_Genes Pawn giver = props.pawn; // orgasmer Pawn receiver = props.partner; + + if (receiver.genes == null) + { + return; + } Hediff vasectomy; receiver.health.hediffSet.TryGetHediff(vasectomydef, out vasectomy); @@ -40,10 +45,7 @@ namespace RJW_Genes List pawnparts = giver.GetGenitalsList(); List partnerparts = receiver.GetGenitalsList(); var interaction = rjw.Modules.Interactions.Helpers.InteractionHelper.GetWithExtension(props.dictionaryKey); - if (receiver.genes == null) - { - return; - } + if (!(props.sexType == xxx.rjwSextype.Anal && receiver.genes.HasActiveGene(GeneDefOf.rjw_genes_fertile_anus))) return; diff --git a/Source/Common/patches/PatchGetParents.cs b/Source/Common/patches/Patch_ParentRelationUtility_GetParents.cs similarity index 74% rename from Source/Common/patches/PatchGetParents.cs rename to Source/Common/patches/Patch_ParentRelationUtility_GetParents.cs index 9038d17..d6f2d94 100644 --- a/Source/Common/patches/PatchGetParents.cs +++ b/Source/Common/patches/Patch_ParentRelationUtility_GetParents.cs @@ -10,10 +10,15 @@ using rjw; namespace RJW_Genes { + /// + /// This Patch handles the changes to Fathers / Mothers when dealing with Femboys and Male/Male Pregnancies. + /// + /// This is related to + /// [HarmonyPatch(typeof(ParentRelationUtility))] - public class PatchGetParents + public class Patch_ParentRelationUtility_GetParents { - // Token: 0x0600000F RID: 15 + [HarmonyPostfix] [HarmonyPatch("GetFather")] private static void FatherPostfix(ref Pawn __result, Pawn pawn) @@ -38,7 +43,6 @@ namespace RJW_Genes } } - // Token: 0x06000010 RID: 16 [HarmonyPostfix] [HarmonyPatch("GetMother")] private static void MotherPostfix(ref Pawn __result, Pawn pawn) @@ -58,7 +62,7 @@ namespace RJW_Genes } } - // Token: 0x0600001F RID: 31 + [HarmonyPostfix] [HarmonyPatch("HasSameFather")] private static void HasSameFatherPostfix(ref bool __result, Pawn pawn, Pawn other) @@ -92,7 +96,7 @@ namespace RJW_Genes } } - // Token: 0x06000020 RID: 32 + [HarmonyPostfix] [HarmonyPatch("HasSameMother")] private static void HasSameMotherPostfix(ref bool __result, Pawn pawn, Pawn other) @@ -125,5 +129,43 @@ namespace RJW_Genes } } } + + [HarmonyPrefix] + [HarmonyPatch("SetFather")] + private static bool SetFatherPrefix(Pawn pawn, Pawn newFather) + { + Pawn father = pawn.GetFather(); + if (father != newFather) + { + if (father != null) + { + pawn.relations.RemoveDirectRelation(PawnRelationDefOf.Parent, father); + } + if (newFather != null) + { + pawn.relations.AddDirectRelation(PawnRelationDefOf.Parent, newFather); + } + } + return false; + } + + [HarmonyPrefix] + [HarmonyPatch("SetMother")] + private static bool SetMotherPrefix(Pawn pawn, Pawn newMother) + { + Pawn mother = pawn.GetMother(); + if (mother != newMother) + { + if (mother != null) + { + pawn.relations.RemoveDirectRelation(PawnRelationDefOf.Parent, mother); + } + if (newMother != null) + { + pawn.relations.AddDirectRelation(PawnRelationDefOf.Parent, newMother); + } + } + return false; + } } } diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index ef269cf..6049b8b 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -69,7 +69,12 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_mechbreeder; public static readonly GeneDef rjw_genes_zoophile; public static readonly GeneDef rjw_genes_fertile_anus; - // Cum + public static readonly GeneDef rjw_genes_mating_call; + public static readonly GeneDef rjw_genes_fervent_ovipositor; + public static readonly GeneDef rjw_genes_insectbreeder; + public static readonly GeneDef rjw_genes_insectincubator; + + // Cum public static readonly GeneDef rjw_genes_no_cum; public static readonly GeneDef rjw_genes_much_cum; public static readonly GeneDef rjw_genes_very_much_cum; @@ -97,6 +102,8 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_aphrodisiac_pheromones; public static readonly GeneDef rjw_genes_sexual_mytosis; public static readonly GeneDef rjw_genes_hormonal_saliva; + public static readonly GeneDef rjw_genes_cocoonweaver; + public static readonly GeneDef rjw_genes_sex_tamer; // Cosmetic public static readonly GeneDef rjw_genes_succubus_tail; diff --git a/Source/Genes/Breeding/Abilities/CompAbilityEffect_MatingCall.cs b/Source/Genes/Breeding/Abilities/CompAbilityEffect_MatingCall.cs new file mode 100644 index 0000000..f09bb94 --- /dev/null +++ b/Source/Genes/Breeding/Abilities/CompAbilityEffect_MatingCall.cs @@ -0,0 +1,35 @@ +using RimWorld; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse.Sound; +using Verse; +using RimWorld.Planet; +using rjw; +using HarmonyLib; +using Verse.AI; + +namespace RJW_Genes +{ + public class CompAbilityEffect_MatingCall : CompAbilityEffect + { + + private new CompProperties_AbilityMatingCall Props + { + get + { + return (CompProperties_AbilityMatingCall)this.props; + } + } + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + ModLog.Message($"{this.parent.pawn} is casting MatingCall"); + AnimalBreedingHelper.DoAnimalBreedingPulse(this.parent.pawn, Props.calldistance); + } + + } +} diff --git a/Source/Genes/Breeding/Abilities/CompAbilityEffect_PheromoneSpit.cs b/Source/Genes/Breeding/Abilities/CompAbilityEffect_PheromoneSpit.cs new file mode 100644 index 0000000..49ae4d7 --- /dev/null +++ b/Source/Genes/Breeding/Abilities/CompAbilityEffect_PheromoneSpit.cs @@ -0,0 +1,30 @@ +using RimWorld; +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using Verse.AI; + +namespace RJW_Genes +{ + public class CompAbilityEffect_PheromoneSpit : CompAbilityEffect + { + private new CompProperties_AbilityPheromoneSpit Props + { + get + { + return (CompProperties_AbilityPheromoneSpit)this.props; + } + } + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + AnimalBreedingHelper.DoAnimalBreedingPulse(target.Pawn, Props.calldistance); + } + + } +} diff --git a/Source/Genes/Breeding/Abilities/CompProperties_AbilityMatingCall.cs b/Source/Genes/Breeding/Abilities/CompProperties_AbilityMatingCall.cs new file mode 100644 index 0000000..e30485c --- /dev/null +++ b/Source/Genes/Breeding/Abilities/CompProperties_AbilityMatingCall.cs @@ -0,0 +1,20 @@ +using RimWorld; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RJW_Genes +{ + public class CompProperties_AbilityMatingCall : CompProperties_AbilityEffect + { + + public int calldistance; + + public CompProperties_AbilityMatingCall() + { + this.compClass = typeof(CompAbilityEffect_MatingCall); + } + } +} diff --git a/Source/Genes/Breeding/Abilities/CompProperties_AbilityPheromoneSpit.cs b/Source/Genes/Breeding/Abilities/CompProperties_AbilityPheromoneSpit.cs new file mode 100644 index 0000000..381843f --- /dev/null +++ b/Source/Genes/Breeding/Abilities/CompProperties_AbilityPheromoneSpit.cs @@ -0,0 +1,18 @@ +using RimWorld; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace RJW_Genes { + public class CompProperties_AbilityPheromoneSpit : CompProperties_AbilityEffect + { + public int calldistance; + + public CompProperties_AbilityPheromoneSpit() + { + this.compClass = typeof(CompAbilityEffect_PheromoneSpit); + } + } +} diff --git a/Source/Genes/Breeding/AnimalBreedingHelper.cs b/Source/Genes/Breeding/AnimalBreedingHelper.cs new file mode 100644 index 0000000..c44a4c3 --- /dev/null +++ b/Source/Genes/Breeding/AnimalBreedingHelper.cs @@ -0,0 +1,75 @@ +using RimWorld; +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse.AI; +using Verse; + +namespace RJW_Genes +{ + public class AnimalBreedingHelper + { + + /// + /// Finds animals in a distance around a pawn, and schedules a breeding job. + /// This is done regardless of the animals genitalia at the moment. + /// This function has no checks if the Pawn is hostile, downed, etc., such checks must be done upstream! + /// + /// The pawn that will be target of breeding animals + /// The range around the pawn for which animals will be triggered. + public static void DoAnimalBreedingPulse(Pawn toBeBred, int pulse_distance, bool ends_manhunter = true) + { + IEnumerable animals = GetAnimalsInRange(toBeBred.Map, toBeBred.Position, pulse_distance); + int breeder_counter = 0; + + foreach (Pawn animal in animals) + { + if (ends_manhunter) + EndManHunter(animal); + + if (!RJW_Genes_Settings.animalMatingPulseCheckForGenitals || rjw.xxx.can_rape(animal)) + { + ForceBreedingJob(toBeBred, animal); + breeder_counter++; + } + + } + ModLog.Message($"{breeder_counter} of {animals.Count()} Animals in range are trying to breed {toBeBred}"); + } + + private static IEnumerable GetAnimalsInRange(Map map, IntVec3 position, int distance) + { + IEnumerable animals = + map.mapPawns + .AllPawnsSpawned + .Where((Func)(p => + p.IsNonMutantAnimal + && p.Position.InHorDistOf(position, distance) + && xxx.is_healthy_enough(p)) + ); + + return animals; + } + + private static void ForceBreedingJob(Pawn toBeBred, Pawn animal) + { + // Stopping all Jobs in this way is a bit heavy - but as it's only about Animals this should be fine. + animal.jobs.CaptureAndClearJobQueue(); + animal.jobs.StopAll(); + Job job = JobMaker.MakeJob(xxx.animalBreed, toBeBred); + animal.jobs.TryTakeOrderedJob(job); + } + + private static void EndManHunter(Pawn animal) + { + if (animal.MentalState != null && (animal.MentalState.def == MentalStateDefOf.Manhunter || animal.MentalState.def == MentalStateDefOf.ManhunterPermanent)) + { + animal?.MentalState?.RecoverFromState(); + } + + } + } +} diff --git a/Source/Genes/Breeding/Gene_FerventOvipositor.cs b/Source/Genes/Breeding/Genes/Gene_FerventOvipositor.cs similarity index 100% rename from Source/Genes/Breeding/Gene_FerventOvipositor.cs rename to Source/Genes/Breeding/Genes/Gene_FerventOvipositor.cs diff --git a/Source/Genes/Breeding/Gene_InsectIncubator.cs b/Source/Genes/Breeding/Genes/Gene_InsectIncubator.cs similarity index 100% rename from Source/Genes/Breeding/Gene_InsectIncubator.cs rename to Source/Genes/Breeding/Genes/Gene_InsectIncubator.cs diff --git a/Source/Genes/Breeding/Gene_MechBreeder.cs b/Source/Genes/Breeding/Genes/Gene_MechBreeder.cs similarity index 100% rename from Source/Genes/Breeding/Gene_MechBreeder.cs rename to Source/Genes/Breeding/Genes/Gene_MechBreeder.cs diff --git a/Source/Genes/Breeding/PatchMechBirth.cs b/Source/Genes/Breeding/Patches/PatchMechBirth.cs similarity index 100% rename from Source/Genes/Breeding/PatchMechBirth.cs rename to Source/Genes/Breeding/Patches/PatchMechBirth.cs diff --git a/Source/Genes/Cum/Patch_Cumflation.cs b/Source/Genes/Cum/Patch_CumflationImmunity.cs similarity index 97% rename from Source/Genes/Cum/Patch_Cumflation.cs rename to Source/Genes/Cum/Patch_CumflationImmunity.cs index a1f54a7..49f8e73 100644 --- a/Source/Genes/Cum/Patch_Cumflation.cs +++ b/Source/Genes/Cum/Patch_CumflationImmunity.cs @@ -18,7 +18,7 @@ namespace RJW_Genes /// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs /// /// - class Patch_Cumflation + class Patch_CumflationImmunity { // This patch does not need the normal Harmony Targetting, // as it needs to be added only on demand (See HarmonyInit.cs) diff --git a/Source/Genes/Cum/Patch_LikesCumflation.cs b/Source/Genes/Cum/Patch_LikesCumflation.cs new file mode 100644 index 0000000..6b78068 --- /dev/null +++ b/Source/Genes/Cum/Patch_LikesCumflation.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.Reflection; +using System.Reflection.Emit; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using HarmonyLib; +using rjw; +using RimWorld; +using Verse; + +namespace RJW_Genes +{ + /// + /// Changes LicentiaLabs (if Present) to add a cumflation-counter hediff, when the pawn is cumflated. + /// The counter hediff takes away the negative stats of the original hediff. + /// This code is exercised / loaded in the HarmonyInit. + /// Patched File: https://gitgud.io/John-the-Anabaptist/licentia-labs/-/blob/master/Source/LicentiaLabs/LicentiaLabs/Cumflation.cs + /// + /// + class Patch_LikesCumflation + { + // This patch does not need the normal Harmony Targetting, + // as it needs to be added only on demand (See HarmonyInit.cs) + public static void PostFix(SexProps props) + { + + if (props == null || props.pawn == null || props.partner == null) return; + + // Minor Hardening to help with #105 + if (!ModsConfig.IsActive("LustLicentia.RJWLabs")) return; + + if (props.pawn.genes != null && props.pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation) ) + { + AddOrIncreaseCumflationCounterHediff(props.pawn); + } + + if (props.partner.genes != null && props.partner.genes.HasActiveGene(GeneDefOf.rjw_genes_likes_cumflation)) + { + AddOrIncreaseCumflationCounterHediff(props.partner); + } + } + + public static void AddOrIncreaseCumflationCounterHediff(Pawn inflated) + { + Hediff cumstuffed_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumstuffed); + //Hediff cumstuffed_hediff = LicentiaLabs.CumflationHelper.GetCumflationHediff(inflated, LicentiaLabs.Licentia.HediffDefs.Cumstuffed, "stomach"); + if (cumstuffed_hediff != null && cumstuffed_hediff.Severity >= 0.01) { + ModLog.Message($"{inflated} got cumstuffed and gets the counter-part"); + var bodyPartRecord = inflated.RaceProps.body.AllParts.Find(bpr => bpr.def.defName.Contains("stomach") || bpr.def.defName.Contains("stomach".ToLower())); + var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumstuffed_counter, bodyPartRecord); + counter_hediff.Severity = cumstuffed_hediff.Severity; + } + + Hediff cumflation_hediff = inflated.health.hediffSet.GetFirstHediffOfDef(LicentiaLabs.Licentia.HediffDefs.Cumflation); + if (cumflation_hediff != null && cumflation_hediff.Severity >= 0.01) + { + ModLog.Message($"{inflated} got cumflated and gets the counter-part"); + var bodyPartRecord = Genital_Helper.get_genitalsBPR(inflated); + var counter_hediff = CreateOrGetCumflationCounterHediff(inflated, HediffDefOf.rjw_genes_cumflation_counter, bodyPartRecord); + counter_hediff.Severity = cumflation_hediff.Severity; + } + } + + public static Hediff CreateOrGetCumflationCounterHediff(Pawn inflated, HediffDef counterCumflationDef, BodyPartRecord bodyPartRecord) + { + Hediff cumflationHediff = inflated.health.hediffSet.GetFirstHediffOfDef(counterCumflationDef); + if (cumflationHediff == null) + { + cumflationHediff = HediffMaker.MakeHediff(counterCumflationDef, inflated, bodyPartRecord); + cumflationHediff.Severity = 0; + inflated.health.AddHediff(cumflationHediff, bodyPartRecord); + } + return cumflationHediff; + + } + } +} \ No newline at end of file diff --git a/Source/Genes/Cum/Patch_TransferNutrition.cs b/Source/Genes/Cum/Patch_TransferNutrition.cs index 1f3f0bb..3e81a5f 100644 --- a/Source/Genes/Cum/Patch_TransferNutrition.cs +++ b/Source/Genes/Cum/Patch_TransferNutrition.cs @@ -9,6 +9,7 @@ using HarmonyLib; using rjw; using RimWorld; using Verse; +using LicentiaLabs; namespace RJW_Genes @@ -28,18 +29,16 @@ namespace RJW_Genes // Design decision: // I could have done some transpiler stuff, but that is scary and might need to be adjusted quite a lot // Hence, I simply re-book the nutrition back to the giver in the Postfix. That should be robust and easy. - - /* - TODO: Move this back in, once Licentia is 1.5 compatible. It should not drastically change. if (GeneUtility.IsGenerousDonor(giver)) { float donatedNutrition = CumflationHelper.CalculateNutritionAmount(giver, cumAmount); // TODO: In theory, there could be something weird happening if the donor has food less than X and the "IgnoreThermodynamics" is set on. // Then it can happen that the donor ends up with more food than he had before cumshot, but I think that is somewhat funny given that you have ignore Thermodynamics on. Need_Food inflatorFood = giver.needs.TryGetNeed(); - inflatorFood.CurLevel += donatedNutrition; + if (inflatorFood != null) + inflatorFood.CurLevel += donatedNutrition; } - */ + } } } \ No newline at end of file diff --git a/Source/Genes/Damage/Gene_Elasticity.cs b/Source/Genes/Damage/Gene_Elasticity.cs index 5d26c07..c66caf5 100644 --- a/Source/Genes/Damage/Gene_Elasticity.cs +++ b/Source/Genes/Damage/Gene_Elasticity.cs @@ -1,9 +1,7 @@ -//using LicentiaLabs; +using LicentiaLabs; using Verse; -// TODO: Re-Introduce this once Licentia is 1.5 -// It should be rather simple namespace RJW_Genes { /// @@ -15,7 +13,7 @@ namespace RJW_Genes { private const int RESET_INTERVAL = 60000; // 60k should be 1 day - /* + public override void PostAdd() { base.PostAdd(); @@ -51,6 +49,6 @@ namespace RJW_Genes candidate.Severity = severity; } } - */ + } } \ No newline at end of file diff --git a/Source/Genes/ExtraGenitalia/Gene_Femboy.cs b/Source/Genes/ExtraGenitalia/Gene_Femboy.cs index 6641025..e86beed 100644 --- a/Source/Genes/ExtraGenitalia/Gene_Femboy.cs +++ b/Source/Genes/ExtraGenitalia/Gene_Femboy.cs @@ -55,6 +55,18 @@ namespace RJW_Genes compHediffBodyPart.updatesize(0f); } this.pawn.health.AddHediff(this.additional_genital, part, null, null); + foreach (Gene g in pawn.genes.GenesListForReading) + { + if (g.def.defName == "rjw_genes_hydrolic_genitalia") + { + g.PostAdd(); + } + if (g.def.defName == "rjw_genes_bionic_genitalia") + { + g.PostAdd(); + return; + } + } } // Token: 0x040001B0 RID: 432 diff --git a/Source/Genes/Gender/GenderUtility.cs b/Source/Genes/Gender/GenderUtility.cs index 88aa063..15c7c02 100644 --- a/Source/Genes/Gender/GenderUtility.cs +++ b/Source/Genes/Gender/GenderUtility.cs @@ -101,5 +101,20 @@ namespace RJW_Genes pawn.health.RemoveHediff(hediff); } } + + /// + /// This check helps to get babies after birth, if the pawn was born with the gene it does not need to have thoughts. + /// There are very different ways to do the life stages, and there are also HAR people still around, + /// so instead of checking for stages I intentionally check for the biological ticks to be very low (that they can only exist basically if they are born right before). + /// Issue is tracked in #103. + /// + /// + public static void RemoveSexChangeThoughtsIfTooYoung(Pawn pawn) + { + if (pawn.ageTracker.AgeBiologicalTicks < 1000) + { + GenderUtility.RemoveAllSexChangeThoughts(pawn); + } + } } } diff --git a/Source/Genes/Gender/Gene_FemaleOnly.cs b/Source/Genes/Gender/Gene_FemaleOnly.cs index 97c4365..c3d5ef6 100644 --- a/Source/Genes/Gender/Gene_FemaleOnly.cs +++ b/Source/Genes/Gender/Gene_FemaleOnly.cs @@ -14,12 +14,15 @@ namespace RJW_Genes // Here we call Sexualization after the Sex-Change if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) Sexualizer.sexualize_pawn(pawn); + + GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn); } public override void PostAdd() { base.PostMake(); AdjustPawnToFemale(); + GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn); } private void AdjustPawnToFemale() @@ -36,6 +39,18 @@ namespace RJW_Genes }); GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Female); } + foreach(Gene g in pawn.genes.GenesListForReading) + { + if(g.def.defName== "rjw_genes_hydrolic_genitalia") + { + g.PostAdd(); + } + if (g.def.defName == "rjw_genes_bionic_genitalia") + { + g.PostAdd(); + return; + } + } } public override void Notify_OnPawnGeneration() diff --git a/Source/Genes/Gender/Gene_MaleOnly.cs b/Source/Genes/Gender/Gene_MaleOnly.cs index e081700..daca649 100644 --- a/Source/Genes/Gender/Gene_MaleOnly.cs +++ b/Source/Genes/Gender/Gene_MaleOnly.cs @@ -14,12 +14,15 @@ namespace RJW_Genes // Here we call Sexualization after the Sex-Change if (GenitaliaUtility.PawnStillNeedsGenitalia(pawn)) Sexualizer.sexualize_pawn(pawn); + + GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn); } public override void PostAdd() { base.PostMake(); AdjustPawnToMale(); + GenderUtility.RemoveSexChangeThoughtsIfTooYoung(this.pawn); } private void AdjustPawnToMale() @@ -36,6 +39,18 @@ namespace RJW_Genes }); GenderUtility.AdjustBodyToTargetGender(pawn, Gender.Male); } + foreach (Gene g in pawn.genes.GenesListForReading) + { + if (g.def.defName == "rjw_genes_hydrolic_genitalia") + { + g.PostAdd(); + } + if (g.def.defName == "rjw_genes_bionic_genitalia") + { + g.PostAdd(); + return; + } + } } public override void Notify_OnPawnGeneration() diff --git a/Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs b/Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs index fce2ded..61430a2 100644 --- a/Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs +++ b/Source/Genes/Genitalia/Defs/GenitaliaTypeExtension.cs @@ -11,5 +11,8 @@ namespace RJW_Genes public HediffDef_PartBase vagina; public HediffDef_PartBase anus; + + public HediffDef_PartBase breasts; + } } diff --git a/Source/Genes/Genitalia/Gene_GenitaliaType.cs b/Source/Genes/Genitalia/Gene_GenitaliaType.cs index 7ffda55..21fada8 100644 --- a/Source/Genes/Genitalia/Gene_GenitaliaType.cs +++ b/Source/Genes/Genitalia/Gene_GenitaliaType.cs @@ -17,7 +17,7 @@ namespace RJW_Genes Apply(); } - protected virtual void Apply() + public virtual void Apply() { if (this.Active) { @@ -27,7 +27,7 @@ namespace RJW_Genes ModLog.Error($"Gene {def} failed to change genitals - Need a modExtension with Class=\"{typeof(GenitaliaTypeExtension).FullName}\"."); return; } - GenitaliaChanger.ChangeGenitalia(pawn, genitals.penis, genitals.vagina, genitals.anus); + GenitaliaChanger.ChangeGenitalia(pawn, genitals.penis, genitals.vagina, genitals.anus, genitals.breasts); } } } diff --git a/Source/Genes/Genitalia/GenitaliaChanger.cs b/Source/Genes/Genitalia/GenitaliaChanger.cs index 86d112b..71f0f05 100644 --- a/Source/Genes/Genitalia/GenitaliaChanger.cs +++ b/Source/Genes/Genitalia/GenitaliaChanger.cs @@ -2,6 +2,7 @@ using RimWorld; using Verse; using System.Collections.Generic; +using rjw.Modules.Interactions.DefModExtensions; namespace RJW_Genes { @@ -16,7 +17,7 @@ namespace RJW_Genes /// the new type of penis /// the new type of vagina /// the new type of anus - public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement = null, HediffDef vaginaReplacement = null, HediffDef anusReplacement = null) + public static void ChangeGenitalia(Pawn pawn, HediffDef penisReplacement = null, HediffDef vaginaReplacement = null, HediffDef anusReplacement = null , HediffDef breastsReplacement = null) { var oldParts = Genital_Helper.get_AllPartsHediffList(pawn); BodyPartRecord correctBPR; @@ -40,6 +41,12 @@ namespace RJW_Genes if (Genital_Helper.is_vagina(existingGenital) && vaginaReplacement != null && existingGenital.def != vaginaReplacement) replacementGenital = HediffMaker.MakeHediff(vaginaReplacement, pawn, correctBPR); + if (is_breast(existingGenital) && breastsReplacement != null && existingGenital.def != breastsReplacement) + { + correctBPR = Genital_Helper.get_breastsBPR(pawn); + replacementGenital = HediffMaker.MakeHediff(breastsReplacement, pawn, correctBPR); + } + if (IsAnus(existingGenital) && anusReplacement != null && existingGenital.def != anusReplacement) { correctBPR = Genital_Helper.get_anusBPR(pawn); @@ -74,7 +81,18 @@ namespace RJW_Genes { return candidate.def.defName.ToLower().Contains("anus"); } - public static bool IsArtificial(Hediff candidate) + + public static bool is_breast(Hediff hed) + { + if (!GenitalPartExtension.TryGet(hed, out var ext)) + { + return false; + } + + return ext.family == rjw.Modules.Interactions.Enums.GenitalFamily.Breasts; + } + + public static bool IsArtificial(Hediff candidate) { return candidate.def.defName.ToLower().Contains("bionic") || candidate.def.defName.ToLower().Contains("archo"); } @@ -88,5 +106,7 @@ namespace RJW_Genes } } + + } } diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/Genes/Genitalia/GenitaliaUtility.cs index a56d9ae..6a6ba79 100644 --- a/Source/Genes/Genitalia/GenitaliaUtility.cs +++ b/Source/Genes/Genitalia/GenitaliaUtility.cs @@ -16,12 +16,11 @@ namespace RJW_Genes /// The first GeneDef of the pawn related to GenitaliaTypes public static GeneDef GetGenitaliaTypeGeneForPawn(Pawn pawn) { - - foreach (var gene in pawn.genes.GenesListForReading) - { + foreach (var gene in pawn.genes.GenesListForReading) + { if (gene is Gene_GenitaliaType) if (!gene.Overridden) - return gene.def; + return gene.def; } return null; } @@ -46,23 +45,7 @@ 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_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; - case "rjw_genes_demonic_genitalia": return Genital_Helper.average_breasts; - case "rjw_genes_dragon_genitalia": return Genital_Helper.average_breasts; - case "rjw_genes_slime_genitalia": return Genital_Helper.slime_breasts; - case "rjw_genes_udder_breasts": return Genital_Helper.udder_breasts; - case "rjw_genes_ovipositor_genitalia": return Genital_Helper.average_breasts; - - default: return Genital_Helper.average_breasts; - } + return gene?.GetModExtension()?.breasts ?? Genital_Helper.average_breasts; } public static bool PawnStillNeedsGenitalia(Pawn pawn) diff --git a/Source/Genes/GenitaliaSize/Gene_EvergrowingGenitalia.cs b/Source/Genes/GenitaliaSize/Gene_EvergrowingGenitalia.cs index 552ac20..493eadf 100644 --- a/Source/Genes/GenitaliaSize/Gene_EvergrowingGenitalia.cs +++ b/Source/Genes/GenitaliaSize/Gene_EvergrowingGenitalia.cs @@ -9,12 +9,13 @@ namespace RJW_Genes public class Gene_EvergrowingGenitalia : RJW_Gene { + const int BASE_TICKS = 60000; public override void Tick() { base.Tick(); - int interval = ModExtensionHelper.GetTickIntervalFromModExtension(GeneDefOf.rjw_genes_evergrowth, RJW_Genes_Settings.rjw_genes_evergrowth_ticks); + int interval = ModExtensionHelper.GetTickIntervalFromModExtension(GeneDefOf.rjw_genes_evergrowth, ModExtensionHelper.GetTickIntervalFromModExtension(this.def, BASE_TICKS)); if (pawn.IsHashIntervalTick(interval) && this.pawn.Map != null && pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age) diff --git a/Source/Genes/Patches/LustFeeding.cs b/Source/Genes/Patches/LustFeeding.cs index e227d2a..bba72a6 100644 --- a/Source/Genes/Patches/LustFeeding.cs +++ b/Source/Genes/Patches/LustFeeding.cs @@ -71,8 +71,9 @@ namespace RJWLoveFeeding public static bool RJWTryTakeBlood(Pawn pawn, Pawn bloodBag) { - + if (bloodBag == null || pawn == null) return false; Pawn_GeneTracker genes = bloodBag.genes; + if (genes!=null) if ((genes.GetFirstGeneOfType() != null)) { return false; diff --git a/Source/Genes/Patches/MultiplePregnancies.cs b/Source/Genes/Patches/MultiplePregnancies.cs index a0f5080..f5d3eeb 100644 --- a/Source/Genes/Patches/MultiplePregnancies.cs +++ b/Source/Genes/Patches/MultiplePregnancies.cs @@ -20,8 +20,6 @@ namespace RJWLoveFeeding [HarmonyPostfix] public static void Postfix(ref bool __result, Pawn pawn, bool mustBeVisible) { - - //Log.Message(xxx.get_pawnname(pawn) + " is in patch" + __result); bool isPregnant = __result; if (MultiPregnancy != null) { @@ -31,7 +29,6 @@ namespace RJWLoveFeeding try { isPregnant = MultiplePregnancies.RJWMultiplePregnancy(isPregnant, pawn); - //Log.Message(xxx.get_pawnname(pawn) + " is " + isPregnant); } catch (Exception e) { @@ -40,14 +37,11 @@ namespace RJWLoveFeeding } __result = isPregnant; } - } - public static bool RJWMultiplePregnancy(bool isPregnant, Pawn fucked) { - if ((fucked != null) && !xxx.is_animal(fucked)) { @@ -59,18 +53,12 @@ namespace RJWLoveFeeding if (setNoPreggo.NullOrEmpty()) { - //Log.Message("No other hediffs preventing pregnancy"); Pawn_GeneTracker genes = fucked.genes; if (genes.HasActiveGene(RJW_Genes.GeneDefOf.RS_MultiPregnancy)) { Log.Message(xxx.get_pawnname(fucked) + " has multipregnancy gene"); - return false; } - else - { - //Log.Message(xxx.get_pawnname(fucked) + " has NOT multipreg gene"); - } } else { diff --git a/Source/Genes/Patches/PatchLitteredBirth.cs b/Source/Genes/Patches/PatchLitteredBirth.cs index 8528d0f..b020099 100644 --- a/Source/Genes/Patches/PatchLitteredBirth.cs +++ b/Source/Genes/Patches/PatchLitteredBirth.cs @@ -57,7 +57,9 @@ namespace RJW_Genes { if (RJW_Genes_Settings.rjw_genes_detailed_debug) { - ModLog.Warning("Labor state for pawn " + __instance.pawn.NameShortColored + " (" + __instance.pawn.ThingID + ") is not null despite all checks passing for determining first instance of Hediff_Labor - this warning should never occur, and may indicate a bug in Hediff_LaborPushing of lingering labor state from a previous pregnancy"); + ModLog.Warning("Labor state for pawn " + __instance.pawn.NameShortColored + " (" + __instance.pawn.ThingID + + ") is not null despite all checks passing for determining first instance of Hediff_Labor - this warning should never occur, " + + "and may indicate a bug in Hediff_LaborPushing of lingering labor state from a previous pregnancy"); } return; } @@ -137,11 +139,15 @@ namespace RJW_Genes { ModLog.Message("Pawn " + __instance.pawn.NameShortColored + " (" + __instance.pawn.ThingID + ") is having random twins"); } - Find.LetterStack.ReceiveLetter("Twins!", __instance.pawn.NameShortColored + " is still in labor and is having twins!\n\nBe sure to gather your doctor and additional friends and family to ensure the other baby is also born healthy!", LetterDefOf.AnotherBaby, __instance.pawn); + Find.LetterStack.ReceiveLetter("Twins!", __instance.pawn.NameShortColored + " is still in labor and is having twins!\n\n" + + "Be sure to gather your doctor and additional friends and family to ensure the other baby is also born healthy!", + LetterDefOf.AnotherBaby, __instance.pawn); return; } - Find.LetterStack.ReceiveLetter("Another baby!", __instance.pawn.NameShortColored + " is still in labor and is having another baby!\n\nBe sure to gather your doctor and additional friends and family to ensure the next baby is also born healthy!", LetterDefOf.AnotherBaby, __instance.pawn); + Find.LetterStack.ReceiveLetter("Another baby!", __instance.pawn.NameShortColored + " is still in labor and is having another baby!\n\n" + + "Be sure to gather your doctor and additional friends and family to ensure the next baby is also born healthy!", + LetterDefOf.AnotherBaby, __instance.pawn); } } } diff --git a/Source/Genes/Patches/Patch_Asexual_CanRape.cs b/Source/Genes/Patches/Patch_Asexual_CanRape.cs new file mode 100644 index 0000000..76e02a3 --- /dev/null +++ b/Source/Genes/Patches/Patch_Asexual_CanRape.cs @@ -0,0 +1,28 @@ +using HarmonyLib; +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace RJW_Genes.Genes.Patches +{ + /// + /// This Patch hooks after "can_rape" and changes it to false for pawns that have no sex_need (are a-sexual). + /// This helps with #100, and is more of a non-intrusive improvement over the base game. + /// + [HarmonyPatch(typeof(xxx), nameof(xxx.can_rape))] + public class Patch_Asexual_CanRape + { + public static bool PostFix(Pawn pawn, ref bool __result) + { + if (pawn != null && pawn.genes != null && pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_no_sex_need)) + { + __result = false; + } + return __result; + } + } +} diff --git a/Source/Genes/Quirks/Defs/QirkExtension.cs b/Source/Genes/Quirks/Defs/QirkExtension.cs new file mode 100644 index 0000000..8e90319 --- /dev/null +++ b/Source/Genes/Quirks/Defs/QirkExtension.cs @@ -0,0 +1,12 @@ +using Verse; +using RimWorld; +using rjw; +using System; + +namespace RJW_Genes +{ + public class QirkExtension : DefModExtension + { + public string Satisfiedquirk; + } +} diff --git a/Source/Genes/Quirks/QuirkPatcher.cs b/Source/Genes/Quirks/QuirkPatcher.cs new file mode 100644 index 0000000..ac2b477 --- /dev/null +++ b/Source/Genes/Quirks/QuirkPatcher.cs @@ -0,0 +1,64 @@ +using Verse; +using RimWorld; +using rjw; +using System.Collections.Generic; +using rjw.Modules.Quirks; +using System; + +namespace RJW_Genes +{ + public class QuirkPatcher + { + /// + /// This Patch is applied after the quirk-satisfaction and checks + /// a) which quirks can the sex-partner satisfy? + /// b) which of the quirks has the pawn? + /// + /// The result of the Satisfied is an integer, based on the original framework. + /// The framework "just checks" the number of satisfied quirks - we increase this number with this postfix. + /// + public static void CountSatisfiedPostfix(ref int __result, SexProps props) + { + if (props == null) return; + Pawn pawn = props.pawn; + Pawn partner = props.partner; + if (partner == null || pawn == null) return; + if(!pawn.IsHuman()||!partner.IsHuman()) return; + + List potentiallySatisfiedQuirks = new List(); + foreach (Gene gene in partner.genes.GenesListForReading) + { + if (partner.genes.HasActiveGene(gene.def)) + { + string satisfiable_quirk = gene.def?.GetModExtension()?.Satisfiedquirk; + if (!string.IsNullOrEmpty(satisfiable_quirk)) + { + potentiallySatisfiedQuirks.Add(satisfiable_quirk); + } + } + } + + int QuirksSatisfiedByGenes = -1; + + foreach (Quirk quirk in Quirk.All) + { + if (pawn.Has(quirk)) + { + foreach (string satisfiableQuirk in potentiallySatisfiedQuirks) + { + if (!string.IsNullOrEmpty(satisfiableQuirk) && quirk.LocaliztionKey == satisfiableQuirk) + { + QuirksSatisfiedByGenes++; + Quirk.AddThought(pawn); + } + } + } + } + + if(QuirksSatisfiedByGenes > 0) + __result = __result + QuirksSatisfiedByGenes; + return; + } + + } +} diff --git a/Source/Genes/Special/Genes/Gene_Aphrodisiac_Pheromones.cs b/Source/Genes/Special/Genes/Gene_Aphrodisiac_Pheromones.cs index db50ab6..6d7c432 100644 --- a/Source/Genes/Special/Genes/Gene_Aphrodisiac_Pheromones.cs +++ b/Source/Genes/Special/Genes/Gene_Aphrodisiac_Pheromones.cs @@ -57,6 +57,10 @@ namespace RJW_Genes // Do nothing for pawns that also have pheromones if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_aphrodisiac_pheromones)) continue; + // Do nothing for pawns that wear Gas-Masks + if (pawn.apparel != null && pawn.apparel.AnyApparel) + if (pawn.apparel.WornApparel.Any(apparel => apparel.def == RimWorld.ThingDefOf.Apparel_GasMask)) + continue; // Actual Logic: // Pawn qualifies in right distance and needs line of sight. diff --git a/Source/Genes/Special/Patches/Patch_AgeDrain.cs b/Source/Genes/Special/Patches/Patch_AgeDrain.cs index 060c20d..ab159b1 100644 --- a/Source/Genes/Special/Patches/Patch_AgeDrain.cs +++ b/Source/Genes/Special/Patches/Patch_AgeDrain.cs @@ -31,6 +31,12 @@ namespace RJW_Genes.Genes.Special return; } + if (props.pawn == props.partner || props.sexType == xxx.rjwSextype.Masturbation || props.sexType == xxx.rjwSextype.None) + { + // This case was reported but is a bit strange, I hardened it after reports in #99 + return; + } + Pawn pawn = props.pawn; Pawn partner = props.partner; diff --git a/Source/Genes/Special/Patches/Patch_OrgasmMytosis.cs b/Source/Genes/Special/Patches/Patch_OrgasmMytosis.cs index 709d05b..fb93e10 100644 --- a/Source/Genes/Special/Patches/Patch_OrgasmMytosis.cs +++ b/Source/Genes/Special/Patches/Patch_OrgasmMytosis.cs @@ -1,5 +1,6 @@ using HarmonyLib; using RimWorld; +using RimWorld.BaseGen; using RimWorld.QuestGen; using rjw; using rjw.Modules.Shared.Extensions; @@ -10,6 +11,7 @@ using System.Text; using System.Threading.Tasks; using Verse; + namespace RJW_Genes { @@ -24,13 +26,21 @@ namespace RJW_Genes private const float SEVERITY_INCREASE_PER_ORGASM = 0.075f; - public static void Postfix(JobDriver_Sex __instance) + public static void Postfix(JobDriver_Sex __instance) { Pawn orgasmingPawn = __instance.pawn; - if (orgasmingPawn != null && GeneUtility.HasGeneNullCheck(orgasmingPawn, GeneDefOf.rjw_genes_sexual_mytosis) && ! orgasmingPawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_mytosis_shock_hediff)) + bool hasPollutedMytosis = false; + + if (orgasmingPawn == null || orgasmingPawn.genes == null) { return; } + + if ((GeneUtility.HasGeneNullCheck(orgasmingPawn, GeneDefOf.rjw_genes_sexual_mytosis) || hasPollutedMytosis) && ! orgasmingPawn.health.hediffSet.HasHediff(HediffDefOf.rjw_genes_mytosis_shock_hediff)) { var mytosisHediff = GetOrgasmMytosisHediff(orgasmingPawn); mytosisHediff.Severity += SEVERITY_INCREASE_PER_ORGASM; + if(hasPollutedMytosis && orgasmingPawn.Spawned && GridsUtility.IsPolluted(orgasmingPawn.Position, orgasmingPawn.Map)) + { + mytosisHediff.Severity -= SEVERITY_INCREASE_PER_ORGASM; + } if (mytosisHediff.Severity >= 1.0) { @@ -123,8 +133,6 @@ namespace RJW_Genes copy.equipment.DestroyAllEquipment(); copy.apparel.DestroyAll(); - //TODO: Make a letter on birth! - PawnUtility.TrySpawnHatchedOrBornPawn(copy, toMultiply); // Move the copy in front of the origin, rather than on top @@ -142,6 +150,11 @@ namespace RJW_Genes copy.style = CopyStyleTracker(copy, toMultiply.style); copy.story = CopyStoryTracker(copy, toMultiply.story); + copy.genes.xenotypeName = toMultiply.genes.xenotypeName; + copy.story.favoriteColor = toMultiply.story.favoriteColor; + + Find.LetterStack.ReceiveLetter("Orgasmic Mytosis", $"{toMultiply.NameShortColored} performed mytosis on orgasm! The pawn and its clone entered a regenerative state.", + RimWorld.LetterDefOf.NeutralEvent, copy); return copy; } @@ -163,7 +176,6 @@ namespace RJW_Genes private static Pawn_GeneTracker CopyGeneTracker(Pawn toCopyTo, Pawn_GeneTracker toCopyFrom) { var tracker = new Pawn_GeneTracker(toCopyTo); - // Due to Overwrite logics, we first add Endogenes and then a second pass on xenogenes // Pass 1: Endogenes @@ -182,12 +194,6 @@ namespace RJW_Genes } tracker.Reset(); - var skin = tracker.GetMelaninGene(); - var hair = tracker.GetHairColorGene(); - - //ModLog.Message($"{toCopyTo} had Skin {skin.defName} and {hair.defName} as colour-genes"); - - return tracker; } @@ -294,7 +300,6 @@ namespace RJW_Genes } } - } /* @@ -318,5 +323,4 @@ Verse.TickList:Tick () Verse.TickManager:TickManagerUpdate () Verse.Game:UpdatePlay () Verse.Root_Play:Update () - */ \ No newline at end of file diff --git a/Source/Genes/Special/Patches/Patch_SexualTamer.cs b/Source/Genes/Special/Patches/Patch_SexualTamer.cs new file mode 100644 index 0000000..6e3c5e1 --- /dev/null +++ b/Source/Genes/Special/Patches/Patch_SexualTamer.cs @@ -0,0 +1,59 @@ +using HarmonyLib; +using RimWorld; +using rjw; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using static RJWSexperience.RsDefOf; + +namespace RJW_Genes +{ + + [HarmonyPatch(typeof(SexUtility), nameof(SexUtility.SatisfyPersonal))] + public static class Patch_SexualTamer + { + + public static void Postfix(SexProps props) + { + // ShortCuts: Exit Early if Pawn or Partner are null (can happen with Masturbation or other nieche-cases) + if (props == null || props.pawn == null || !props.hasPartner() || props.partner == null) + return; + // Exit for non Animals or Animal on Animal + if (!(props.pawn.IsAnimal() || props.partner.IsAnimal() ) ) + return; + Pawn animal = props.pawn.IsAnimal() ? props.pawn : props.partner; + Pawn human = props.pawn.IsAnimal() ? props.partner : props.pawn; + + // Another Short Sanity Check + if (animal == null || human == null ) return; + if (human.genes == null) return; + + if (human.genes.HasActiveGene(GeneDefOf.rjw_genes_sex_tamer)) + { + // Case 1: Wild Animal - Try to Tame + if (animal.AnimalOrWildMan() && animal.Faction == null) + { + if(RJW_Genes_Settings.rjw_genes_detailed_debug) + ModLog.Message($"{human} is a sextamer with bestiality on wild animal {animal} - trying to recruit"); + human.interactions.TryInteractWith(animal, InteractionDefOf.TameAttempt); + } + // Case 2: Colony Animal - Try to Train + else if (human.Faction != null && animal.Faction == human.Faction && animal.training != null) + { + if (RJW_Genes_Settings.rjw_genes_detailed_debug) + ModLog.Message($"{human} is a sextamer with bestiality on colony animal {animal} - trying to train"); + if (animal.training == null) return; + var trainable = animal.training.NextTrainableToTrain(); + if (trainable == null) return; + animal.training.Train(trainable, human); + } + } + } + + } + + +} diff --git a/Source/Genes/Special/Patches/Patch_Youth_Fountain.cs b/Source/Genes/Special/Patches/Patch_Youth_Fountain.cs index b64ca83..d810bc6 100644 --- a/Source/Genes/Special/Patches/Patch_Youth_Fountain.cs +++ b/Source/Genes/Special/Patches/Patch_Youth_Fountain.cs @@ -30,6 +30,12 @@ namespace RJW_Genes.Genes.Special return; } + if (props.pawn == props.partner || props.sexType == xxx.rjwSextype.Masturbation || props.sexType == xxx.rjwSextype.None) + { + // This case was reported but is a bit strange, I hardened it after reports in #99 + return; + } + if (GeneUtility.IsYouthFountain(props.pawn)) { ChangeAgeForPawn(props.partner, props.pawn); diff --git a/Source/HarmonyInit.cs b/Source/HarmonyInit.cs index c2cba10..e6c1688 100644 --- a/Source/HarmonyInit.cs +++ b/Source/HarmonyInit.cs @@ -4,50 +4,76 @@ using System; using rjw; using RJWLoveFeeding; using RimWorld; +using System.Linq; namespace RJW_Genes { [StaticConstructorOnStartup] internal static class HarmonyInit { + static HarmonyInit() { Harmony harmony = new Harmony("rjw_genes"); - var original = typeof(Hediff_Pregnant).GetMethod("Tick"); - harmony.Unpatch(original, HarmonyPatchType.Prefix, "rjw"); + var RJW_Pregnancy_Tick_Prefixes = typeof(Hediff_Pregnant).GetMethod("Tick"); + harmony.Unpatch(RJW_Pregnancy_Tick_Prefixes, HarmonyPatchType.Prefix, "rjw"); harmony.PatchAll(); if (ModsConfig.BiotechActive) { harmony.Patch(typeof(SexUtility).GetMethod("ProcessSex"), new HarmonyMethod(typeof(LustFeeding), "Postfix", null)); } - // Non-rapist would_rape bypass for limbic stimulator harmony.Patch(AccessTools.Method(typeof(SexAppraiser), nameof(SexAppraiser.would_rape)), postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.would_rape_PostFix))); - // Non-rapist is_rapist bypass for limbic stimulator harmony.Patch(AccessTools.Method(typeof(xxx), nameof(xxx.is_rapist)), postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.is_rapist_PostFix))); - // Non-Rapist trait rape thoughts harmony.Patch(AccessTools.Method(typeof(AfterSexUtility), nameof(AfterSexUtility.think_about_sex_Rapist)), postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.think_about_sex_Rapist_PostFix))); - // Bioscaffold double gestation speed tick harmony.Patch(AccessTools.Method(typeof(PawnUtility), nameof(PawnUtility.BodyResourceGrowthSpeed)), postfix: new HarmonyMethod(typeof(PatchImplants), nameof(PatchImplants.MultiplyPregnancy))); - // Hediff_Labor state capture harmony.Patch(AccessTools.Method(typeof(Hediff_Labor), nameof(Hediff_Labor.PostRemoved)), postfix: new HarmonyMethod(typeof(PatchLitteredBirth), nameof(PatchLitteredBirth.Hediff_Labor_PostRemovedPostFix))); // OvaryAgitator/Gene_LitteredBirths multibirth logic harmony.Patch(AccessTools.Method(typeof(Hediff_LaborPushing), nameof(Hediff_LaborPushing.PostRemoved)), postfix: new HarmonyMethod(typeof(PatchLitteredBirth), nameof(PatchLitteredBirth.Hediff_LaborPushing_PostRemovedPostFix))); + + harmony.Patch(AccessTools.Method(typeof(Quirk), nameof(Quirk.CountSatisfiedQuirks)), + postfix: new HarmonyMethod(typeof(QuirkPatcher), nameof(QuirkPatcher.CountSatisfiedPostfix))); + // Patch Licentia, if Licentia exists // Logic & Explanation taken from https://rimworldwiki.com/wiki/Modding_Tutorials/Compatibility_with_DLLs // Adjusted to use ModsConfig (which makes it work, the example above does not run out of the box) + try + { + ((Action)(() => + { + if (ModsConfig.IsActive("LustLicentia.RJWLabs")) + { + // Gene: Cumflation Immunity [Prefix Patch] + harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.Cumflation)), + prefix: new HarmonyMethod(typeof(Patch_CumflationImmunity), nameof(Patch_CumflationImmunity.Prefix))); + // Gene: Generous Donor [Postfix Patch] + harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.TransferNutrition)), + postfix: new HarmonyMethod(typeof(Patch_TransferNutrition), nameof(Patch_TransferNutrition.Postfix))); + // Gene: CumEater [Postfix Patch] -- This is not exactly licentia, but the Generous-Donor Gene is only active with Licentia + harmony.Patch(AccessTools.Method(typeof(rjw.JobDriver_Sex), nameof(rjw.JobDriver_Sex.ChangePsyfocus)), + postfix: new HarmonyMethod(typeof(Patch_SexTicks_ChangePsyfocus), nameof(Patch_SexTicks_ChangePsyfocus.Postfix))); + // Gene: Likes Cumflation [Postfix Patch] + harmony.Patch(AccessTools.Method(typeof(LicentiaLabs.CumflationHelper), nameof(LicentiaLabs.CumflationHelper.Cumflation)), + postfix: new HarmonyMethod(typeof(Patch_LikesCumflation), nameof(Patch_LikesCumflation.PostFix))); + } + }))(); + } + catch (TypeLoadException ex) + { + // To be expected for people without Licentia Labs + } } } diff --git a/Source/HediffDefOf.cs b/Source/HediffDefOf.cs index 2ff339c..d957096 100644 --- a/Source/HediffDefOf.cs +++ b/Source/HediffDefOf.cs @@ -20,20 +20,10 @@ namespace RJW_Genes public static readonly HediffDef rjw_genes_orgasmic_mytosis_hediff; public static readonly HediffDef rjw_genes_mytosis_shock_hediff; + [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumstuffed_counter; + [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumflation_counter; + public static readonly HediffDef OvaryAgitator; public static readonly HediffDef Bioscaffold; - - public static HediffDef NeedlePenis = HediffDef.Named("NeedlePenis"); - public static HediffDef PigPenis = HediffDef.Named("PigPenis"); - public static HediffDef MarinePenis = HediffDef.Named("MarinePenis"); - public static HediffDef TentaclePenis = HediffDef.Named("TentaclePenis"); - public static HediffDef GolemPenis = HediffDef.Named("GolemPenis"); - public static HediffDef OrcPenis = HediffDef.Named("OrcPenis"); - public static HediffDef GhostPenis = HediffDef.Named("GhostPenis"); - public static HediffDef NecroPenis = HediffDef.Named("NecroPenis"); - public static HediffDef GhostVagina = HediffDef.Named("GhostVagina"); - public static HediffDef Vagina = HediffDef.Named("Vagina"); - public static HediffDef Penis = HediffDef.Named("Penis"); - public static HediffDef Anus = HediffDef.Named("Anus"); } } diff --git a/Source/RJW.dll b/Source/RJW.dll deleted file mode 100644 index c07fda1..0000000 Binary files a/Source/RJW.dll and /dev/null differ diff --git a/Source/RJWSexperience.dll b/Source/RJWSexperience.dll deleted file mode 100644 index 533e46c..0000000 Binary files a/Source/RJWSexperience.dll and /dev/null differ diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 757086f..dadf954 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -64,8 +64,15 @@ - - + + + + + + + + + @@ -73,11 +80,10 @@ - - - + + @@ -89,7 +95,7 @@ - + @@ -160,7 +166,10 @@ + + + @@ -168,6 +177,7 @@ + @@ -189,8 +199,6 @@ - - @@ -203,14 +211,15 @@ ..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll False - - False + + ..\..\licentia-labs-master\Assemblies\LicentiaLabs.dll + + ..\..\rjw\1.5\Assemblies\RJW.dll False ..\..\rjw-sexperience\1.5\Assemblies\RJWSexperience.dll - False @@ -231,5 +240,8 @@ + + + \ No newline at end of file diff --git a/Source/Settings/RJW_Genes_Settings.cs b/Source/Settings/RJW_Genes_Settings.cs index 4180532..49257a8 100644 --- a/Source/Settings/RJW_Genes_Settings.cs +++ b/Source/Settings/RJW_Genes_Settings.cs @@ -17,58 +17,57 @@ namespace RJW_Genes listing_Standard.maxOneColumn = true; listing_Standard.ColumnWidth = rect.width / 2.05f; listing_Standard.Begin(rect); - listing_Standard.Gap(24f); + listing_Standard.Gap(24f); // Genitalia Resizing Age - listing_Standard.Label("Genitalia resizing age" + ": " + - Math.Round((double)(RJW_Genes_Settings.rjw_genes_resizing_age), 0).ToString() , -1f, "years."); + listing_Standard.Label("rjw_genes_settings_genitalia_resizing_age".Translate() + " " + + Math.Round((double)(RJW_Genes_Settings.rjw_genes_resizing_age), 0).ToString() + "rjw_genes_settings_genitalia_resizing_postfix".Translate(), -1f, "rjw_genes_settings_genitalia_resizing_age_explanation".Translate()); RJW_Genes_Settings.rjw_genes_resizing_age = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_resizing_age, 18f, 100f); listing_Standard.Gap(4f); - // Evergrowth Speed - listing_Standard.Label("number of ticks between genitalia evergrowth updates (60000 ticks are 1 day)" + ": " + - Math.Round((double)(RJW_Genes_Settings.rjw_genes_evergrowth_ticks), 0).ToString() , -1f, "ticks."); - RJW_Genes_Settings.rjw_genes_evergrowth_ticks = (int) listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_evergrowth_ticks, 600, 60000); - listing_Standard.Gap(4f); // Fertilin Gain From Animals - listing_Standard.Label("Fertilin-Gain from Animals" + ": " + - Math.Round((double)(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor * 100f), 0).ToString() + "", -1f, "of fertilin gained (compared to human-baseline)."); + listing_Standard.Label("rjw_genes_settings_fertilin_gain_from_animals".Translate() + " " + + Math.Round((double)(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor * 100f), 0).ToString() + "%", -1f, "rjw_genes_settings_fertilin_gain_from_animals_explanation".Translate()); RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, 0f, 3f); listing_Standard.Gap(5f); - listing_Standard.CheckboxLabeled("Sexdemon Visits", ref rjw_genes_sexdemon_visit, "If enabled, incubi and succubi can spawn in through an event.", 0f, 1f); + listing_Standard.CheckboxLabeled("rjw_genes_settings_sexdemon_spawn_key".Translate(), ref rjw_genes_sexdemon_visit, "rjw_genes_settings_sexdemon_spawn_explanation".Translate(), 0f, 1f); if (rjw_genes_sexdemon_visit) { listing_Standard.Gap(3f); - listing_Standard.CheckboxLabeled(" Size matters", ref rjw_genes_sexdemon_join_size_matters, "Incubi and succubi will consider size/tightness of partners genital for deciding if they want to join", 0f, 1f); + listing_Standard.CheckboxLabeled(" " + "rjw_genes_settings_sexdemon_size_matters_key".Translate(), ref rjw_genes_sexdemon_join_size_matters, "rjw_genes_settings_sexdemon_size_matters_explanation".Translate(), 0f, 1f); listing_Standard.Gap(3f); - listing_Standard.CheckboxLabeled(" Sexdemon groups", ref rjw_genes_sexdemon_visit_groups, "Multiple sexdemons can spawn during a event", 0f, 1f); + listing_Standard.CheckboxLabeled(" " + "rjw_genes_settings_sexdemon_group_spawn_key".Translate(), ref rjw_genes_sexdemon_visit_groups, "rjw_genes_settings_sexdemon_group_spawn_explanation".Translate(), 0f, 1f); listing_Standard.Gap(3f); - listing_Standard.CheckboxLabeled(" Succubi", ref rjw_genes_sexdemon_visit_succubi, "Allow incubi to spawn through this even", 0f, 1f); + listing_Standard.CheckboxLabeled(" " + "rjw_genes_settings_sexdemon_succubi_spawn_key".Translate(), ref rjw_genes_sexdemon_visit_succubi, "rjw_genes_settings_sexdemon_succubi_spawn_explanation".Translate(), 0f, 1f); listing_Standard.Gap(3f); - listing_Standard.CheckboxLabeled(" Incubi", ref rjw_genes_sexdemon_visit_incubi, "Allow incubi to spawn through this even", 0f, 1f); + listing_Standard.CheckboxLabeled(" " + "rjw_genes_settings_sexdemon_incubi_spawn_key".Translate(), ref rjw_genes_sexdemon_visit_incubi, "rjw_genes_settings_sexdemon_incubi_spawn_explanation".Translate(), 0f, 1f); } listing_Standard.Gap(4f); listing_Standard.Gap(4f); - listing_Standard.CheckboxLabeled("Regret Stealing Love", ref regretStealingLovinThoughtDisabled, "If off, pawns will not get bad thoughts for seduction."); + listing_Standard.CheckboxLabeled("rjw_genes_settings_regret_stealing_love_key".Translate(), ref regretStealingLovinThoughtDisabled, "rjw_genes_settings_regret_stealing_love_explanation".Translate()); + + listing_Standard.Gap(4f); + listing_Standard.CheckboxLabeled("rjw_genes_settings_animal_mating_needs_penis_key".Translate(), ref animalMatingPulseCheckForGenitals, "rjw_genes_settings_animal_mating_needs_penis_explanation".Translate()); listing_Standard.Gap(5f); - listing_Standard.CheckboxLabeled("generous-donor cheatmode", ref rjw_genes_generous_donor_cheatmode, "When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it.", 0f, 1f); + listing_Standard.CheckboxLabeled("rjw_genes_settings_generous_donor_cheatmode_key".Translate(), ref rjw_genes_generous_donor_cheatmode, "rjw_genes_settings_generous_donor_cheatmode_explanation".Translate(), 0f, 1f); listing_Standard.Gap(5f); - listing_Standard.CheckboxLabeled("detailed-debug", ref rjw_genes_detailed_debug, "Adds detailed information to the log about interactions and genes.", 0f, 1f); + listing_Standard.CheckboxLabeled("rjw_genes_settings_detailed_debug_key".Translate(), ref rjw_genes_detailed_debug, "rjw_genes_settings_detailed_debug_explanation".Translate(), 0f, 1f); listing_Standard.End(); } public override void ExposeData() { base.ExposeData(); - Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_evergrowth_ticks, "rjw_genes_evergrowth_ticks", RJW_Genes_Settings.rjw_genes_evergrowth_ticks, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_resizing_age, "rjw_genes_resizing_age", RJW_Genes_Settings.rjw_genes_resizing_age, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, "rjw_genes_fertilin_from_animals_factor", RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_detailed_debug, "rjw_genes_detailed_debug", RJW_Genes_Settings.rjw_genes_detailed_debug, true); Scribe_Values.Look(ref regretStealingLovinThoughtDisabled, "regretStealingLovinThoughtDisabled", regretStealingLovinThoughtDisabled, true); + + Scribe_Values.Look(ref animalMatingPulseCheckForGenitals, "animalMatingPulseCheckForGenitals", animalMatingPulseCheckForGenitals, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, "rjw_genes_generous_donor_cheatmode", RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_sexdemon_visit, "rjw_genes_sexdemon_visit", RJW_Genes_Settings.rjw_genes_sexdemon_visit, true); Scribe_Values.Look(ref RJW_Genes_Settings.rjw_genes_sexdemon_join_size_matters, "rjw_genes_sexdemon_join_size_matters", RJW_Genes_Settings.rjw_genes_sexdemon_join_size_matters, true); @@ -80,8 +79,8 @@ namespace RJW_Genes public static bool rjw_genes_detailed_debug = false; public static float rjw_genes_fertilin_from_animals_factor = 0.1f; public static float rjw_genes_resizing_age = 20; - public static int rjw_genes_evergrowth_ticks = 60000; public static bool regretStealingLovinThoughtDisabled = false; + public static bool animalMatingPulseCheckForGenitals = true; public static bool rjw_genes_sexdemon_visit = true; public static bool rjw_genes_sexdemon_join_size_matters = true; diff --git a/TODOS.md b/TODOS.md index 33ece5e..25f5045 100644 --- a/TODOS.md +++ b/TODOS.md @@ -2,15 +2,7 @@ Any help is very appreciated, even if it is just pointing me to existing similar projects. -## Additions to existing things - -**Cumeater** - Look for edible cum-items when low on Fertilin - -**Incubi** - Add a forced striptease Ability - -**Age Transfer Genes** - Add (configurable) option to satisfy Bodymodders and their AgeReversalDemand - -## Planned Genes +## Planned / Wanted Genes **Adjustable Cock-Size** like e.g. artificial genitalia have @@ -20,46 +12,18 @@ Any help is very appreciated, even if it is just pointing me to existing similar **Cum-Drugs** eating cum has an effect similar to Go-Juice (including (separate?) addiction) -**Death-Rest** until the pawn is cumflated. +**Death-Rest** until the pawn is cumflated. I would have liked -**STD Immunity** & maybe a potential to be carrier, but not suffer effects. - -## Planned Xenotypes - -**Beastmaster:** - -- [] Animal Mating Call (Get fucked by everything nearby, potentially ending animal rage) -- [] Pheromone Spit that marks a target for being raped by animals -- [] Power-Boost & Bonding to animals through zoophilia -- [] Maybe: Boost pregnancy times of Animals -- [] Maybe: Make it Animal-Fertilin-Dependend -- [] Either: Can only eat meat or cannot eat meat -- [] Gene to prefer hookups of animals that are in a menstrual cycle - -Can't help but think about Rexxar Porn now I am a bad person. +**STD Immunity** & maybe a potential to be carrier, but not suffer effects. I just don't play with STDs ## Genes with Abilities and more Effects 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 (on normal sex-use) +- Genitalia deal damage as per size (on normal sex-use) - This started in the branch `GenitaliaDamage` but prooves a bit overboarding! - Genitalia can cause Terror (as ability) -- Cumshot Sniper Abilities +- Cumshot Sniper Abilities. Scale damage with body size and genitalia size, scale distance by cum-amount (relative to the damage - high damage projectiles need more cum per meter). ## Cleanups: -- Streamline Filenames / Names to either be LifeForce or Fertilin (e.g. `Hediffs_Fertilin.xml` but `Pawnkind_LifeForce.xml`). I think most things are called LifeForce. -- Similar cleanup for the patches, and make a note what to find where in the patches - Change Project structure to the 1.3, 1.4 Structure of other mods - -## Split: - -I plan to split this mod. -Namely, I want to make a - -1. base-mod (with genitalia and size genes, anything alternating all base stats) -2. bonus-mod, with Fertilin and other complex genes -3. xenotype-mod (only xenotypes + scenarios) -4. animal genes inheritance (Yes, bit of a meme that it was separate mod earlier) - -I first want to make a bit more content, and then I hope there will be a "breaking change" in RJW so I can also do a breaking change on top of that. \ No newline at end of file