diff --git a/CHANGELOG.md b/CHANGELOG.md index 89390cf..af67de6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,43 +3,42 @@ **Changes:** - Cocoon Weaver Gene -- Spawn Spelopede Gene (Can be changed to spawn Megascarabs or other insects via xml) -- Queens & Caste Logic (see below) +- Spawn Spelopede Gene (Can be changed to spawn megascarabs or other insects via xml) +- Queens & Caste logic (see below) - Addition to InsectIncubator: Now fertilizes eggs once placed inside a host, and breeds out eggs twice as fast. +- Many new icons +- Custom background icons when Vanilla-Expanded-Framework is loaded **Internal:** -- Renamed Abilities to have _ability_ in their name, to not exactly match the gene-defnames. -- Moved Insect-Incubator & Insect-Breeder to Hive Category and Folders +- Renamed abilities to have _ability_ in their name, to not exactly match the gene-defnames. +- Moved Insect-Incubator & Insect-Breeder to hive category and folders (from breeding) **Fixes:** - Cockeater Ability has now Icon of Cockeater Gene - Cockeater now leaves a bite wound! - Pythokin-Patch checks for Licentialabs (#30) +- Removed Sex-Change thoughts for pawns born or spawned with a gender-altering gene (Issue #32, PR #33 by @callavico) **Queen & Caste Logic** There are 3 genes revolting around a new, hopefully flexible insect-caste system. Queens, Drones and Workers. These reproduce either through normal sex, or can utilize the insect birth once [this PR](https://gitgud.io/Ed86/rjw/-/merge_requests/266) has been merged in. +Update: It has been merged into [RJW 5.3.5](https://gitgud.io/Ed86/rjw/-/tags/5.3.5), make sure you update! In general, the logic is the following: - A queen can have sex with anyone. If the partner was a drone, there is chance for the baby to become a queen, drone or worker. - If the partner of the queen was not a drone, the baby will be a worker. - If the drone didn't mate with a queen but someone else, normal inheritance happens -- The assignemnt is done by xenotypes for queen and drones. The baby will get all xenogenes of their parents xenotypes. +- The assignment is done by xenotypes for queen and drones. The baby will get all xenogenes of their parents chosen xenotypes. - For workers, every queen can have a set of genes for their workers defined in [a special def](./Common/Defs/QueenWorkerMappingDefs/QueenWorkerMappingDefs_base.xml). These will be added as endogenes, so that pawns can still become xenotypes. -- There is a default set for worker genes, making mentally dumb, sterile and servile pawns. -- Chances for Offsprings (Drone, Queen, Worker) is defined in an [XML-Def](./Common/Defs/HiveOffspringChanceDef/HiveOffspringChanceDefs.xml) +- There is a default gene-set for workers, making dumb, sterile and servile pawns. +- Chances for Offsprings (Drone, Queen, Worker) is defined in an [XML-Def](./Common/Defs/HiveOffspringChanceDef/HiveOffspringChanceDefs.xml). They are set per Queen. -I am not sure if I want to have a specific mapping defining that Queen can only mate with certain Drones, let me know how you feel about it. +I am not sure if I want to have a specific mapping defining that queen can only mate with certain drones, let me know how you feel about it. *Queens can be male*. I just used the female-term, but implementation is gender-neutral. -**ToDo:** - -- Icons: Cocoon, Spelopede Spawn -- Sound: Spelopede Spawn - # 1.1.4 Fixes: diff --git a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml index 7482459..aadecc9 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml @@ -11,21 +11,34 @@ rjw_genes_breeding 1 -1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - - - rjw_genes_zoophile - - rjw_genes_breeding - Xenotypes with this Gene are Zoophile. - Genes/Icons/Zoophile - 54 - -
  • - Zoophile -
  • -
    -
    + + rjw_genes_zoophile + + rjw_genes_breeding + Xenotypes with this Gene are Zoophile. + Genes/Icons/Zoophile + 54 + +
  • + Zoophile +
  • +
    + + +
  • + 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_Cosmetic.xml b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml index a5cd0ca..82bdbc2 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Cosmetic.xml @@ -34,6 +34,13 @@ (0.0, 0.0, -0.1) (0.1, 0.0, 0.0) + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -64,6 +71,13 @@ (0, -0.1, 0.1) (0.2, 0.2, 0.1) - true + true + + +
  • + 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_Cum.xml b/Common/Defs/GeneDefs/GeneDefs_Cum.xml index d410319..28b841a 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Cum.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Cum.xml @@ -1,10 +1,17 @@ - rjw_genes_cum - -
  • CumAmount
  • -
    + rjw_genes_cum + +
  • CumAmount
  • +
    + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -23,7 +30,7 @@ rjw_genes_much_cum Males of this species produce a lot of fluid. - Genes/Icons/Bonus_Cum + Genes/Icons/Much_Cum RJW_Genes.Gene_MuchCum 534 1 @@ -34,7 +41,7 @@ rjw_genes_very_much_cum Males of this species produce a whole lot of fluid. They are like fountains basically. - Genes/Icons/Much_Bonus_Cum + Genes/Icons/Very_Much_Cum RJW_Genes.Gene_VeryMuchCum 535 1 @@ -55,7 +62,14 @@
  • NotCumflatable
  • -
    + + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -67,7 +81,14 @@ 537
  • NotCumflatable
  • -
    + + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -78,6 +99,13 @@ 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 f2b0e07..97aba0e 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Damage.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Damage.xml @@ -11,6 +11,13 @@ -1 1 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -27,6 +34,13 @@
  • FeelingBroken
  • + + +
  • + 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 22764ea..294dc66 100644 --- a/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml +++ b/Common/Defs/GeneDefs/GeneDefs_ExtraGenitalia.xml @@ -1,9 +1,15 @@ - + rjw_genes_genitalia_extras - + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    rjw_genes_extra_penis @@ -34,7 +40,7 @@ rjw_genes_extra_vagina Females of this species grow an additional vagina . - Genes/Icons/extra_female + Genes/Icons/Extra_Vagina RJW_Genes.Gene_ExtraVagina 703 @@ -46,7 +52,7 @@ rjw_genes_no_vagina Females of this do not have a vagina. - Genes/Icons/No_Female_Genitalia + Genes/Icons/No_Vagina RJW_Genes.Gene_NoVagina 704 @@ -127,5 +133,19 @@
  • BreastAmount
  • - +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml b/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml index c5d8826..5c43285 100644 --- a/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml +++ b/Common/Defs/GeneDefs/GeneDefs_GenitaliaSizes.xml @@ -2,7 +2,14 @@ rjw_genes_genitalia_size - + + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -35,7 +42,7 @@ rjw_genes_loose_female_genitalia Vaginas of this Xenotype are quite spacy. (Resizing takes place at 20th Birthday) - Genes/Icons/Loose_Female_Genitalia + Genes/Icons/Loose_Vagina RJW_Genes.Gene_LooseFemaleGenitalia 754 @@ -47,7 +54,7 @@ rjw_genes_tight_female_genitalia Vaginas of this Xenotype are pretty tight.(Resizing takes place at 20th Birthday) - Genes/Icons/Tight_Female_Genitalia + Genes/Icons/Tight_Vagina RJW_Genes.Gene_TightFemaleGenitalia 756 diff --git a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml index 7333a5e..112d5cc 100644 --- a/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml +++ b/Common/Defs/GeneDefs/GeneDefs_GenitaliaTypes.xml @@ -7,6 +7,13 @@
  • GenitalType
  • 0 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -58,7 +65,7 @@ rjw_genes_slime_genitalia Carriers of this gene have slime genitalia. - Genes/Icons/Genitalia_Slime + Genes/Icons/Slime_Genitalia RJW_Genes.Gene_SlimeGenitalia 807 @@ -67,9 +74,10 @@ rjw_genes_ovipositor_genitalia Carriers of this gene have ovipositors similar to insects. - Genes/Icons/Genitalia_Insect + Genes/Icons/Ovipositor_Genitalia RJW_Genes.Gene_OvipositorGenitalia 808 +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Hive.xml b/Common/Defs/GeneDefs/GeneDefs_Hive.xml index 84b15ff..33c9c74 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Hive.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Hive.xml @@ -1,13 +1,24 @@ - + + + rjw_genes_hive + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + rjw_genes_queen queen This gene represents the royal caste amongst its xenotype. Children of a queen are usually born as sterile workers, unless the father was a drone. Having multiple (adult) queens leads to intense rivalry and can throw the whole colony into chaos! - Things/Mote/Heart + Genes/Icons/queen 1 - rjw_genes_hive 0.5 @@ -41,14 +52,13 @@ -3 - + rjw_genes_drone drone This gene represents the drone caste amongst its xenotype. Drones are highly specialised experts that ensure the hives functioning. Other than that, drones are the only xenotypes capable of producing fertile offspring with a queen. - Things/Mote/Heart + Genes/Icons/drone 2 - rjw_genes_hive
  • rjw_genes_hive_caste
  • @@ -70,14 +80,13 @@
    - + rjw_genes_worker worker - This gene represents the lowest caste of a hive, the workers. Usually sterile, they are despised by higher castes and only live to serve with labour. - Things/Mote/Heart + This gene marks the lowest caste of a hive, the workers. Usually sterile, they are despised by higher castes and only live to serve with labour. + Genes/Icons/worker 3 - rjw_genes_hive
  • rjw_genes_hive_caste
  • @@ -113,14 +122,13 @@
    - + rjw_genes_zealous_loyalty loyalty Carriers of this gene are genetically wired to worship carriers of the 'Queen'-gene. They receive a massive relation-ship bonus towards the queen and a slight mood bonus. Having multiple queens in the colony causes severe distress. Things/Mote/Heart 10 - rjw_genes_hive
  • rjw_genes_swearing_loyalty
  • @@ -128,16 +136,22 @@ 1 -1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    - + rjw_genes_cocoonweaver cocooner - Carriers of this gene can produce a cocoon to prepare helpless victims for breeding. - Things/Mote/Heart + Carriers of this gene can produce a cocoon to prepare helpless (or willing) victims for breeding. + Genes/Icons/Cocoon 11 - rjw_genes_hive
  • rjw_genes_ability_cocoonweaver
  • @@ -148,14 +162,13 @@ -1
    - + rjw_genes_spawn_spelopede - cocooner + spelopede Carriers of this gene can generate tame spelopedes. Higher psychic-sensitivity will spawn more spelopedes. World/WorldObjects/Expanding/Insects 12 - rjw_genes_hive
  • rjw_genes_ability_spawn_spelopede
  • @@ -166,28 +179,44 @@ -1
    - - - rjw_genes_insectincubator - - RJW_Genes.Gene_InsectIncubator - Pawns with this gene are able to host more insect eggs, hatch them faster and fertilize any inserted egg. - Genes/Icons/More_Egg_Space - 52 - rjw_genes_hive - 1 - -1 - - - - rjw_genes_insectbreeder - - Pawns with this gene are able to fertilize eggs with any fertile penis. - World/WorldObjects/Expanding/Insects - 53 - rjw_genes_hive - 1 - -1 - + + rjw_genes_insectincubator + + RJW_Genes.Gene_InsectIncubator + Pawns with this gene are able to hold more insect eggs. + Genes/Icons/Egg + 52 + 1 + -1 + + + + rjw_genes_insectbreeder + + Pawns with this gene are able to fertilize eggs with any fertile penis. + Genes/Icons/Insect_Breeder + 53 + 1 + -1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + + rjw_genes_fervent_ovipositor + + 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 + +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml b/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml index e8987d0..9f5e291 100644 --- a/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml +++ b/Common/Defs/GeneDefs/GeneDefs_LifeForce.xml @@ -31,6 +31,13 @@ 0.05 1 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -48,6 +55,13 @@ -1 1 6 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -74,6 +88,13 @@
  • heal
  • + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -100,6 +121,13 @@
  • eat
  • + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -107,7 +135,7 @@ paralysing kiss Carriers of this gene are able to briefly stun an enemy with a kiss. - Genes/Icons/rjw_genes_lips + Genes/Icons/Paralysing_Kiss rjw_genes_lifeforce 12 rjw_genes_fertilin @@ -125,6 +153,13 @@
  • kiss
  • + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -151,6 +186,13 @@
  • kiss
  • + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -169,6 +211,13 @@ 1 -1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -180,6 +229,13 @@ 1 rjw_genes_fertilin 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -191,17 +247,31 @@ 2 rjw_genes_fertilin 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    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. - Things/Mote/Heart + Genes/Icons/Vitality_Drainer rjw_genes_lifeforce 4 rjw_genes_fertilin 1 -1 + + +
  • + 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_Reproduction.xml b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml index 97fb937..7c888cd 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml @@ -13,6 +13,13 @@ Nymphomaniac + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -28,6 +35,13 @@ Rapist + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -46,6 +60,13 @@
  • rjw_genes_sexual_orientation
  • + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -64,6 +85,13 @@
  • rjw_genes_sexual_orientation
  • + + +
  • + 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_SexSpecial.xml b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml index 1e0e8c9..f68126f 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml @@ -1,9 +1,20 @@ - + + + rjw_genes_special + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    +
    + + rjw_genes_orgasm_rush - rjw_genes_special On Orgasm, carriers of this gene get a boost in activity. (rest-need is partially filled) 1 -2 @@ -11,10 +22,9 @@ 1 - + rjw_genes_youth_fountain - rjw_genes_special Having sex with a carrier of this gene makes the partner slightly younger. (Partner stays adult) 2 -2 @@ -22,10 +32,9 @@ 2 - + rjw_genes_sex_age_drain - rjw_genes_special Having sex transfers some of the partners life-time to themselves. (Pawn stays adult) 2 -1 @@ -33,13 +42,12 @@ 3 - + rjw_genes_aphrodisiac_pheromones - rjw_genes_special RJW_Genes.Gene_Aphrodisiac_Pheromones Pheremones of this pawn induce an incressed sexdrive to others nearby. - UI/Memes/FleshPurity + Genes/Icons/Pheromones 4 1 1 diff --git a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml index e168411..0cd226f 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SpecifiedGender.xml @@ -9,6 +9,13 @@ Genes/Icons/Female_Only RJW_Genes.Gene_FemaleOnly 1 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    @@ -20,6 +27,13 @@ Genes/Icons/Male_Only RJW_Genes.Gene_MaleOnly 2 + + +
  • + Genes/Icons/RJW_Genes_Endogene_Background + Genes/Icons/RJW_Genes_Xenogene_Background +
  • +
    \ No newline at end of file diff --git a/Common/Defs/GeneDefs/Xenotype_Hive.xml b/Common/Defs/GeneDefs/Xenotype_Hive.xml index a28e2ce..eebb914 100644 --- a/Common/Defs/GeneDefs/Xenotype_Hive.xml +++ b/Common/Defs/GeneDefs/Xenotype_Hive.xml @@ -4,7 +4,7 @@ rjw_genes_test_queen_xenotype - UI/Icons/Xenotypes/Sanguophage + Genes/Icons/Xenotypes/Xenotype-Queen PawnBecameSanguophage @@ -19,7 +19,7 @@ rjw_genes_test_drone_xenotype - UI/Icons/Xenotypes/Sanguophage + Genes/Icons/Xenotypes/Xenotype-Guard
  • rjw_genes_drone
  • rjw_genes_male_only
  • @@ -29,4 +29,17 @@
    + + rjw_genes_test_breeder_xenotype + + Genes/Icons/Xenotypes/Xenotype-Breeder + +
  • rjw_genes_drone
  • +
  • rjw_genes_female_only
  • +
  • rjw_genes_zealous_loyalty
  • +
  • Fertile
  • +
  • Skin_DeepRed
  • +
    +
    + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml b/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml index 38dfa28..646d4c8 100644 --- a/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml +++ b/Common/Defs/GeneDefs/Xenotype_Lifeforce.xml @@ -6,7 +6,7 @@ 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. - UI/Icons/Xenotypes/Sanguophage + Genes/Icons/Xenotypes/Xenotype-Succubus PawnBecameSanguophage 0.5 0.1~140 @@ -53,7 +53,7 @@ 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. - UI/Icons/Xenotypes/Sanguophage + Genes/Icons/Xenotypes/Xenotype-Incubus PawnBecameSanguophage 0.5 0.1~140 @@ -98,7 +98,7 @@ 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. - UI/Icons/Xenotypes/Neanderthal + Genes/Icons/Xenotypes/Xenotype-Cumazon 0.5 0.1~140 2.5 diff --git a/Common/Defs/ThoughtDefs/Thoughts_Hive.xml b/Common/Defs/ThoughtDefs/Thoughts_Hive.xml index b728812..8a232b3 100644 --- a/Common/Defs/ThoughtDefs/Thoughts_Hive.xml +++ b/Common/Defs/ThoughtDefs/Thoughts_Hive.xml @@ -30,6 +30,19 @@ + + rjw_genes_queen_despises_workers_social + Thought_SituationalSocial + RJW_Genes.ThoughtWorker_WorkerDespised_Social + +
  • + + those workers are not even worth a glance. + -20 +
  • +
    +
    + rjw_genes_multiple_queens_mood diff --git a/Common/Textures/Genes/Icons/Bonus_Cum.png b/Common/Textures/Genes/Icons/Bonus_Cum.png deleted file mode 100644 index e6c51a4..0000000 Binary files a/Common/Textures/Genes/Icons/Bonus_Cum.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Cocoon.png b/Common/Textures/Genes/Icons/Cocoon.png new file mode 100644 index 0000000..5e9b0bc Binary files /dev/null and b/Common/Textures/Genes/Icons/Cocoon.png differ diff --git a/Common/Textures/Genes/Icons/Egg.png b/Common/Textures/Genes/Icons/Egg.png new file mode 100644 index 0000000..a635f14 Binary files /dev/null and b/Common/Textures/Genes/Icons/Egg.png differ diff --git a/Common/Textures/Genes/Icons/Extra_Vagina.png b/Common/Textures/Genes/Icons/Extra_Vagina.png new file mode 100644 index 0000000..4c93501 Binary files /dev/null and b/Common/Textures/Genes/Icons/Extra_Vagina.png differ diff --git a/Common/Textures/Genes/Icons/Fervent_Ovipositor.png b/Common/Textures/Genes/Icons/Fervent_Ovipositor.png new file mode 100644 index 0000000..daa1704 Binary files /dev/null and b/Common/Textures/Genes/Icons/Fervent_Ovipositor.png differ diff --git a/Common/Textures/Genes/Icons/Genitalia_Insect.png b/Common/Textures/Genes/Icons/Genitalia_Insect.png deleted file mode 100644 index e71cabe..0000000 Binary files a/Common/Textures/Genes/Icons/Genitalia_Insect.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Genitalia_Slime.png b/Common/Textures/Genes/Icons/Genitalia_Slime.png deleted file mode 100644 index ee7ae69..0000000 Binary files a/Common/Textures/Genes/Icons/Genitalia_Slime.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Insect_Breeder.png b/Common/Textures/Genes/Icons/Insect_Breeder.png new file mode 100644 index 0000000..4898614 Binary files /dev/null and b/Common/Textures/Genes/Icons/Insect_Breeder.png differ diff --git a/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png b/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png deleted file mode 100644 index 63b6a9c..0000000 Binary files a/Common/Textures/Genes/Icons/Loose_Female_Genitalia.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Loose_Vagina.png b/Common/Textures/Genes/Icons/Loose_Vagina.png new file mode 100644 index 0000000..c1b5808 Binary files /dev/null and b/Common/Textures/Genes/Icons/Loose_Vagina.png differ diff --git a/Common/Textures/Genes/Icons/Loyalty.png b/Common/Textures/Genes/Icons/Loyalty.png new file mode 100644 index 0000000..f7cbe57 Binary files /dev/null and b/Common/Textures/Genes/Icons/Loyalty.png differ diff --git a/Common/Textures/Genes/Icons/More_Egg_Space.png b/Common/Textures/Genes/Icons/More_Egg_Space.png deleted file mode 100644 index 35fbcb3..0000000 Binary files a/Common/Textures/Genes/Icons/More_Egg_Space.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Much_Bonus_Cum.png b/Common/Textures/Genes/Icons/Much_Bonus_Cum.png deleted file mode 100644 index d512725..0000000 Binary files a/Common/Textures/Genes/Icons/Much_Bonus_Cum.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/No_Cum.png b/Common/Textures/Genes/Icons/No_Cum.png index 2084b5e..8bcdc81 100644 Binary files a/Common/Textures/Genes/Icons/No_Cum.png and b/Common/Textures/Genes/Icons/No_Cum.png differ diff --git a/Common/Textures/Genes/Icons/No_Female_Genitalia.png b/Common/Textures/Genes/Icons/No_Female_Genitalia.png deleted file mode 100644 index 9405ce7..0000000 Binary files a/Common/Textures/Genes/Icons/No_Female_Genitalia.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/No_Vagina.png b/Common/Textures/Genes/Icons/No_Vagina.png new file mode 100644 index 0000000..ec99f03 Binary files /dev/null and b/Common/Textures/Genes/Icons/No_Vagina.png differ diff --git a/Common/Textures/Genes/Icons/Ovipositor_Genitalia.png b/Common/Textures/Genes/Icons/Ovipositor_Genitalia.png new file mode 100644 index 0000000..a2b5806 Binary files /dev/null and b/Common/Textures/Genes/Icons/Ovipositor_Genitalia.png differ diff --git a/Common/Textures/Genes/Icons/Paralysing_Kiss.png b/Common/Textures/Genes/Icons/Paralysing_Kiss.png new file mode 100644 index 0000000..20c4fd5 Binary files /dev/null and b/Common/Textures/Genes/Icons/Paralysing_Kiss.png differ diff --git a/Common/Textures/Genes/Icons/Pheromones.png b/Common/Textures/Genes/Icons/Pheromones.png new file mode 100644 index 0000000..88a6c53 Binary files /dev/null and b/Common/Textures/Genes/Icons/Pheromones.png differ diff --git a/Common/Textures/Genes/Icons/RJW-Genes_Endogene_Background (Not in use now).png b/Common/Textures/Genes/Icons/RJW_Genes_Endogene_Background.png similarity index 100% rename from Common/Textures/Genes/Icons/RJW-Genes_Endogene_Background (Not in use now).png rename to Common/Textures/Genes/Icons/RJW_Genes_Endogene_Background.png diff --git a/Common/Textures/Genes/Icons/RJW-Genes_Xenogene_Background (Not in use now).png b/Common/Textures/Genes/Icons/RJW_Genes_Xenogene_Background.png similarity index 100% rename from Common/Textures/Genes/Icons/RJW-Genes_Xenogene_Background (Not in use now).png rename to Common/Textures/Genes/Icons/RJW_Genes_Xenogene_Background.png diff --git a/Common/Textures/Genes/Icons/Slime_Genitalia.png b/Common/Textures/Genes/Icons/Slime_Genitalia.png new file mode 100644 index 0000000..09bbd61 Binary files /dev/null and b/Common/Textures/Genes/Icons/Slime_Genitalia.png differ diff --git a/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png b/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png deleted file mode 100644 index d0931fa..0000000 Binary files a/Common/Textures/Genes/Icons/Tight_Female_Genitalia.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/Tight_Vagina.png b/Common/Textures/Genes/Icons/Tight_Vagina.png new file mode 100644 index 0000000..cd8be97 Binary files /dev/null and b/Common/Textures/Genes/Icons/Tight_Vagina.png differ diff --git a/Common/Textures/Genes/Icons/Vitality_Drainer.png b/Common/Textures/Genes/Icons/Vitality_Drainer.png new file mode 100644 index 0000000..eb310c1 Binary files /dev/null and b/Common/Textures/Genes/Icons/Vitality_Drainer.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Breeder.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Breeder.png new file mode 100644 index 0000000..9ffab2c Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Breeder.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Cumazon.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Cumazon.png new file mode 100644 index 0000000..8d285e5 Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Cumazon.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Guard.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Guard.png new file mode 100644 index 0000000..e831799 Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Guard.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Incubus.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Incubus.png new file mode 100644 index 0000000..14d6685 Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Incubus.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Queen.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Queen.png new file mode 100644 index 0000000..9b0f425 Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Queen.png differ diff --git a/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Succubus.png b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Succubus.png new file mode 100644 index 0000000..dddb34d Binary files /dev/null and b/Common/Textures/Genes/Icons/Xenotypes/Xenotype-Succubus.png differ diff --git a/Common/Textures/Genes/Icons/drone.png b/Common/Textures/Genes/Icons/drone.png new file mode 100644 index 0000000..e600639 Binary files /dev/null and b/Common/Textures/Genes/Icons/drone.png differ diff --git a/Common/Textures/Genes/Icons/extra_female.png b/Common/Textures/Genes/Icons/extra_female.png deleted file mode 100644 index 1a6ae6e..0000000 Binary files a/Common/Textures/Genes/Icons/extra_female.png and /dev/null differ diff --git a/Common/Textures/Genes/Icons/much_cum.png b/Common/Textures/Genes/Icons/much_cum.png new file mode 100644 index 0000000..412030f Binary files /dev/null and b/Common/Textures/Genes/Icons/much_cum.png differ diff --git a/Common/Textures/Genes/Icons/queen.png b/Common/Textures/Genes/Icons/queen.png new file mode 100644 index 0000000..8ef515f Binary files /dev/null and b/Common/Textures/Genes/Icons/queen.png differ diff --git a/Common/Textures/Genes/Icons/very_much_cum.png b/Common/Textures/Genes/Icons/very_much_cum.png new file mode 100644 index 0000000..0e692ff Binary files /dev/null and b/Common/Textures/Genes/Icons/very_much_cum.png differ diff --git a/Common/Textures/Genes/Icons/worker.png b/Common/Textures/Genes/Icons/worker.png new file mode 100644 index 0000000..743caa0 Binary files /dev/null and b/Common/Textures/Genes/Icons/worker.png differ diff --git a/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs b/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs index 8a93c51..00b4c82 100644 --- a/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs +++ b/Source/Genes/ExtraGenitalia/Gene_FeaturelessChest.cs @@ -1,6 +1,5 @@ using Verse; using rjw; -using RimWorld; namespace RJW_Genes { @@ -54,7 +53,7 @@ namespace RJW_Genes internal void AddFeaturelessBreast() { var partBPR = Genital_Helper.get_breastsBPR(pawn); - this.added_nipples = pawn.health.AddHediff(Genital_Helper.featureless_chest, partBPR); + added_nipples = pawn.health.AddHediff(Genital_Helper.featureless_chest, partBPR); } } diff --git a/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs b/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs index d23b2df..8aad9ab 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoAnus.cs @@ -9,9 +9,6 @@ namespace RJW_Genes internal Hediff removed_anus; - // TODO: This gene only works if another Gene was set specifying the genitalia. - // If it is added later, it still works, but on creation it needs a different - // TODO: If all Genitalia are removed by genes, RJW adds some to the pawns at spawn public override void PostMake() { base.PostMake(); diff --git a/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs b/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs index 874ff5f..caa0a5c 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoBreasts.cs @@ -52,15 +52,5 @@ namespace RJW_Genes } } - /* - /// - /// Adds a "rjw.featurelesschest", which means nipples but nothing else (like male human pawns do). - /// - internal void AddFeaturelessBreast() - { - var partBPR = Genital_Helper.get_breastsBPR(pawn); - //this.added_nipples = pawn.health.AddHediff(Genital_Helper.featureless_chest, partBPR); - } - */ } } diff --git a/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs b/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs index be67ef4..b107a5a 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoPenis.cs @@ -9,9 +9,6 @@ namespace RJW_Genes internal Hediff removed_penis; - // TODO: This gene only works if another Gene was set specifying the genitalia. - // If it is added later, it still works, but on creation it needs a different - // TODO: If all Genitalia are removed by genes, RJW adds some to the pawns at spawn public override void PostMake() { base.PostMake(); diff --git a/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs b/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs index 8083f58..438d76e 100644 --- a/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs +++ b/Source/Genes/ExtraGenitalia/Gene_NoVagina.cs @@ -8,10 +8,7 @@ namespace RJW_Genes { internal Hediff removed_vagina; - - // TODO: This gene only works if another Gene was set specifying the genitalia. - // If it is added later, it still works, but on creation it needs a different - // TODO: If all Genitalia are removed by genes, RJW adds some to the pawns at spawn + public override void PostMake() { base.PostMake(); diff --git a/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs b/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs new file mode 100644 index 0000000..e098a8c --- /dev/null +++ b/Source/Genes/ExtraGenitalia/Gene_UdderBreasts.cs @@ -0,0 +1,78 @@ +using rjw; +using Verse; + +namespace RJW_Genes +{ + + /// + /// Removes breasts for female (and trap, futa) pawns and adds Udders. + /// Wished for in Issue #27. + /// + /// TODO: Currently, the sexualizer over-writes the added udders and just adds another pair of breasts! + /// I commented out the gene in .xml for now. + /// + public class Gene_UdderBreasts : RJW_Gene + { + + Hediff removed_breasts; + Hediff added_udders; + + public override void PostMake() + { + base.PostMake(); + + // Breasts are replaced for female,trap and futa pawns + if ( removed_breasts == null + && (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap) + ) + { + RemoveButStoreBreasts(); + AddUdders(); + } + + } + + public override void PostAdd() + { + base.PostAdd(); + + // Breasts are replaced for female,trap and futa pawns + if (removed_breasts == null + && (GenderUtility.IsFemale(pawn) || GenderHelper.GetSex(pawn) == GenderHelper.Sex.futa || GenderHelper.GetSex(pawn) == GenderHelper.Sex.trap) + ) + { + RemoveButStoreBreasts(); + AddUdders(); + } + } + + public override void PostRemove() + { + base.PostRemove(); + // Re-Add the old breasts + if (removed_breasts != null) + pawn.health.AddHediff(removed_breasts); + if (added_udders != null) + pawn.health.RemoveHediff(added_udders); + } + + internal void RemoveButStoreBreasts() + { + var partBPR = Genital_Helper.get_breastsBPR(pawn); + Hediff breastsToRemove = Genital_Helper.get_AllPartsHediffList(pawn).FindLast(x => GenitaliaUtility.IsBreasts(x)); + + if (breastsToRemove != null) + { + removed_breasts = breastsToRemove; + pawn.health.RemoveHediff(breastsToRemove); + } + } + + internal void AddUdders() + { + BodyPartRecord bpr = Genital_Helper.get_uddersBPR(pawn); + added_udders = pawn.health.AddHediff(Genital_Helper.udder_breasts, bpr); + } + } + +} \ No newline at end of file diff --git a/Source/Genes/Gender/GenderUtility.cs b/Source/Genes/Gender/GenderUtility.cs index 3297a0b..10b811d 100644 --- a/Source/Genes/Gender/GenderUtility.cs +++ b/Source/Genes/Gender/GenderUtility.cs @@ -75,6 +75,13 @@ namespace RJW_Genes private static readonly List wasSexThoughts = Traverse.Create(typeof(GenderHelper)).Field("old_sex_list").GetValue>(); private static readonly List sexChangeThoughts = Traverse.Create(typeof(GenderHelper)).Field("SexChangeThoughts").GetValue>(); + /// + /// This method removes all RJW-Sexchange-Hediffs from the pawn. + /// It used with the RJW_Gene.Notify_OnPawnGeneration() to check for pawns on spawn. + /// + /// Fixes Issue #32, where pawns that spawn fresh with a "all female" gene may have m2f thoughts. + /// + /// The pawn that needs to have SexChange-Thoughts removed. public static void RemoveAllSexChangeThoughts(Pawn pawn) { // Shouldn't ever be true in the normal case, but this stops someone from calling this with an incorrect setup @@ -83,7 +90,7 @@ namespace RJW_Genes if(wasSexThoughts == null || sexChangeThoughts == null || !wasSexThoughts.Any() || !sexChangeThoughts.Any()) { - Log.Error($"Couldn't get values from RJW.\nold_sex_list: {wasSexThoughts.ToStringSafeEnumerable()}\nSexChangeThoughts: {sexChangeThoughts.ToStringSafeEnumerable()}"); + Log.Warning($"Couldn't get values from RJW.\nold_sex_list: {wasSexThoughts.ToStringSafeEnumerable()}\nSexChangeThoughts: {sexChangeThoughts.ToStringSafeEnumerable()}"); return; } diff --git a/Source/Genes/Gender/Gene_FemaleOnly.cs b/Source/Genes/Gender/Gene_FemaleOnly.cs index bc8ac20..97c4365 100644 --- a/Source/Genes/Gender/Gene_FemaleOnly.cs +++ b/Source/Genes/Gender/Gene_FemaleOnly.cs @@ -41,7 +41,7 @@ namespace RJW_Genes public override void Notify_OnPawnGeneration() { base.Notify_OnPawnGeneration(); - // If this is Pawn generation, then we can assume that the pawn was never any gender other than female, so they shouldn't have sex change thoughts. + // If this is Pawn generation, then we can assume that the pawn was never any gender other than female, so they shouldn't have sex change thoughts. (Issue #32) GenderUtility.RemoveAllSexChangeThoughts(pawn); } } diff --git a/Source/Genes/Gender/Gene_MaleOnly.cs b/Source/Genes/Gender/Gene_MaleOnly.cs index eba7ce5..e081700 100644 --- a/Source/Genes/Gender/Gene_MaleOnly.cs +++ b/Source/Genes/Gender/Gene_MaleOnly.cs @@ -41,7 +41,7 @@ namespace RJW_Genes public override void Notify_OnPawnGeneration() { base.Notify_OnPawnGeneration(); - // If this is Pawn generation, then we can assume that the pawn was never any gender other than male, so they shouldn't have sex change thoughts. + // If this is Pawn generation, then we can assume that the pawn was never any gender other than male, so they shouldn't have sex change thoughts. (Issue #32) GenderUtility.RemoveAllSexChangeThoughts(pawn); } } diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/Genes/Genitalia/GenitaliaUtility.cs index 4dc289a..c762071 100644 --- a/Source/Genes/Genitalia/GenitaliaUtility.cs +++ b/Source/Genes/Genitalia/GenitaliaUtility.cs @@ -99,6 +99,7 @@ namespace RJW_Genes 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.generic_breasts; diff --git a/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs b/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs new file mode 100644 index 0000000..353148a --- /dev/null +++ b/Source/Genes/Hive/Genes/Gene_FerventOvipositor.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using Verse; +using rjw; + +namespace RJW_Genes +{ + + /// + /// Manages the rjw_genes_fervent_ovipositor to grow eggs much faster. + /// + /// TODO: Move the Multiplier into XML + /// TODO: This gene only works after the first egg, the first egg for two new pawns spawns at the same time (strange). + /// + public class Gene_FerventOvipositor : Gene + { + + const int MULTIPLIER = 3; // Tick 3 times as much, making a pawn with this Gene Produce Eggs 4 times as fast as the normal. + + public override void Tick() + { + base.Tick(); + + if (pawn == null) return; + + Hediff_PartBaseNatural OvipositorF = (Hediff_PartBaseNatural) pawn.health.hediffSet.GetFirstHediffOfDef(rjw.Genital_Helper.ovipositorF); + + if (OvipositorF == null) return; + + OvipositorF.nextEggTick = Math.Max(OvipositorF.nextEggTick - MULTIPLIER, -1); + + // DevNote: I first had a for-loop calling OviPositorF.tick(), but I fear that would be a performance sink. + // Also, it would double other aspects as well, such as bleeding out through your insect-PP or dropping out the eggs. + } + + + } +} diff --git a/Source/Genes/Hive/Thoughts/ThoughtWorker_QueenPresent_Social.cs b/Source/Genes/Hive/Thoughts/ThoughtWorker_QueenPresent_Social.cs index e6b9ea8..e4e7792 100644 --- a/Source/Genes/Hive/Thoughts/ThoughtWorker_QueenPresent_Social.cs +++ b/Source/Genes/Hive/Thoughts/ThoughtWorker_QueenPresent_Social.cs @@ -12,6 +12,9 @@ namespace RJW_Genes { protected override ThoughtState CurrentSocialStateInternal(Pawn p, Pawn other) { + // p is the pawn `thinking`, and other is the pawn being thought about. + // here: p = loyal pawn, other = potential queen + if (!p.RaceProps.Humanlike) return (ThoughtState) false; diff --git a/Source/Genes/Hive/Thoughts/ThoughtWorker_WorkerDespised_Social.cs b/Source/Genes/Hive/Thoughts/ThoughtWorker_WorkerDespised_Social.cs new file mode 100644 index 0000000..8a9ad53 --- /dev/null +++ b/Source/Genes/Hive/Thoughts/ThoughtWorker_WorkerDespised_Social.cs @@ -0,0 +1,39 @@ +using RimWorld; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace RJW_Genes +{ + public class ThoughtWorker_WorkerDespised_Social : ThoughtWorker + { + protected override ThoughtState CurrentSocialStateInternal(Pawn p, Pawn other) + { + // p is the pawn `thinking`, and other is the pawn being thought about. + // here: p = queen, other = potential worker + + if (!p.RaceProps.Humanlike) + return (ThoughtState) false; + + if (!other.RaceProps.Humanlike) + return (ThoughtState) false; + + if (!RelationsUtility.PawnsKnowEachOther(p, other)) + return (ThoughtState) false; + + // Only check if they are spawned + if (!p.Spawned || !other.Spawned) + return (ThoughtState)false; + + if (GeneUtility.HasGeneNullCheck(p, GeneDefOf.rjw_genes_queen) && GeneUtility.HasGeneNullCheck(other, GeneDefOf.rjw_genes_worker)) + { + return (ThoughtState)true; + } + + return (ThoughtState)false; + } + } +} diff --git a/Source/Genes/RJW_Gene.cs b/Source/Genes/RJW_Gene.cs index dfa05bf..c006d2c 100644 --- a/Source/Genes/RJW_Gene.cs +++ b/Source/Genes/RJW_Gene.cs @@ -16,6 +16,8 @@ namespace RJW_Genes /// /// Executed via PawnGenerator.GenerateGenes at Pawn generation /// Allows for execution of code that should only happen during PawnGeneration + /// + /// This has an accompanying patch `Patch_AddNotifyOnGeneration.cs`. /// public virtual void Notify_OnPawnGeneration() { diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 4343cee..3084f31 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -43,7 +43,9 @@ + + @@ -101,6 +103,7 @@ + diff --git a/TODOS.md b/TODOS.md index 7e223a1..16c5906 100644 --- a/TODOS.md +++ b/TODOS.md @@ -39,14 +39,14 @@ Can't help but think about Rexxar Porn now I am a bad person. **Hive Mother:** -- [] Spawn the small scarabs -- [] Fertilise Eggs inside her -- [] Produce cocoons +- [X] Spawn the small scarabs +- [X] Fertilise Eggs inside her +- [X] Produce cocoons - [] Maybe: Insert "dropped" Insect eggs - [] Very fragile, no use except breeding - [] Maybe: can only eat insect jelly -- [] Should look like a nice green-yellow alien as we all know fuckable insects would look like. -- [] There can only be one Hive Mother, some penalties if there are others. This could be implement with an "Alpha Gene" that gives heavy penalties when other Alpha exists. +- [X] Should look like a nice green-yellow alien as we all know fuckable insects would look like. +- [X] There can only be one Hive Mother, some penalties if there are others. This could be implement with an "Alpha Gene" that gives heavy penalties when other Alpha exists. ## Genes with Abilities and more Effects