diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e346e3..78025cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -123,10 +123,13 @@ Because this is the genes mod, and I find things here quite robust. - Gene: Sexual Genetic Swap. Pawns have a chance to switch a random gene with their sexpartner. - (Archite) Gene: Sexual Genetic Thief. Pawns have a chance to steal a gene from their sexpartner. Genetic Disease Immunity shields against this. - Gene: Sperm Displacement. Pawns might overwrite an existing pregnancy, becoming the new father. The pregnancy will stay in its gestation progress. -- Gene: Twinkification: Pawns turn their (male) sexual partners into breedable twinks. -- Gene: Feminization: Pawns turn their (male) sexual partners into women. -- Gene: Blocked Masturbation: Pawns cannot masturbate. +- Gene: Twinkification. Pawns turn their (male) sexual partners into breedable twinks. +- Gene: Feminization. Pawns turn their (male) sexual partners into women. +- Gene: Blocked Masturbation. Pawns cannot masturbate. +- {Sexperience} Gene: Living Cumbucket. Pawns with this Gene get "filled" upon sex, and slowly disperse usable gathered cum. - Disease Gene: Infectious Blocked Masturbation +- Gene: Rut. Pawns have a chance to go into heat and need more sex for a day. (Default: 5% chance per day, to go 1 day in heat). +- Disease Gene: Infectious Rut. - Pawns will have negative thoughts about pawns with more genetic diseases than themselves. - Faction Penalties for spreading diseases, stealing genes and aging pawns with age transfer - Patch for [Imphilee Xeno](https://steamcommunity.com/sharedfiles/filedetails/?id=2990674516) by @Bunuffin @@ -177,8 +180,11 @@ Its just meant if you want to drop me a tip. **Since Beta-1** (11-07-2024) - Made the Feminizer and Twinkifier configurable with XML. -- Typos in the Hediff Defs, tweaking of some values. +- Typos in the Hediff Defs, tweaking of some values. +- Living Cum-Bucket & Rut Genes +- Great images by @WasMachenDennSachen +**Beta-2** (17-07-2024) # 2.1.0 (27-06-2024) diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index 19855eb..ab5f34d 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml index bf67228..63d13ba 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml @@ -41,7 +41,8 @@ rjw_genes_fertile_anus - Xenotypes with this gene have a functional uterus if they do not possess one by means of their vagina. + Xenotypes with this gene have a functional uterus if they do not possess one by + means of their vagina. For males, it is connected to the anal cavity and leads to a normal pregnancy. Genes/Icons/Fertile_anus 54 @@ -115,8 +116,9 @@ rjw_genes_hardwired_progenity - Carriers of this gene need to procreate. They suffer negative effects if they are childless, and have increased capabilities if they reach a high amount of offsprings. - Genes/Icons/RJW_Genes_PheromoneSpit + Carriers of this gene need to procreate. They suffer negative effects if they are + childless, and have increased capabilities if they reach a high amount of offsprings. + Genes/Icons/hardwired_progenity 70 @@ -150,4 +152,23 @@ 0 + + rjw_genes_basic_rut + + Carriers of this gene can enter a state of heat, resulting in drastically higher + sexual activity. + UI/Icons/ColonistBar/Idle + 1 + 1 + 11 + RJW_Genes.Gene_Rut + +
  • + + 60000 + 0.05 +
  • +
    +
    + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml index a4afbd0..75c69ce 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml @@ -23,7 +23,7 @@ imply negative side-effects.
    1 -1 - Genes/Icons/TrialDefend + Genes/Icons/disease_immunity
  • @@ -42,7 +42,7 @@ 1 1 0.85 - UI/Icons/ColonistBar/Idle + Genes/Icons/minor_vulnerability 5 @@ -67,7 +67,7 @@ rape. 2 1 - UI/Icons/ColonistBar/Idle + Genes/Icons/major_vulnerability 6 @@ -90,7 +90,7 @@ rjw_genes_infectious_blocked_masturbation Carriers of this gene are unable to masturbate - they need a partner or equipment. - Genes/Icons/Hypersexual + Genes/Icons/blocked_masturbation 55 1 2 @@ -194,7 +194,7 @@ rjw_genes_infectious_bisexuality This gene makes the pawn bisexual, and has a chance to spread on intercourse. - Genes/Icons/RoundC + Genes/Icons/bisexuality 1 0 8 @@ -221,7 +221,7 @@ rjw_genes_infectious_homosexuality This gene makes the pawn homosexual, and has a chance to spread on intercourse. - Genes/Icons/RoundC + Genes/Icons/homosexuality 1 0 9 @@ -270,7 +270,7 @@ rjw_genes_size_blinded This genetic disease makes the carrier dramatically more drawn to pawns with huge cocks. - UI/Icons/ColonistBar/Idle + Genes/Icons/size_blinded 1 1 11 @@ -285,7 +285,7 @@ rjw_genes_stretcher Pawns with this gene have a chance to alter the genes of their sexual partners to prefer large cocks. - UI/Icons/ColonistBar/Idle + Genes/Icons/stretcher 1 0 12 @@ -304,4 +304,28 @@ + + + rjw_genes_infectious_rut + + Carriers of this gene can enter a state of heat, resulting in drastically higher + sexual activity. + UI/Icons/ColonistBar/Idle + 1 + 2 + 11 + RJW_Genes.Gene_Rut + +
  • + + 60000 + 0.05 +
  • +
  • + 0.1 +
  • +
    +
    + + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml index ada888c..a01e245 100644 --- a/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml +++ b/Common/Defs/GeneDefs/GeneDefs_Reproduction.xml @@ -187,7 +187,7 @@ Reproduction Carriers of this gene can 'overwrite' an existing pregnancy, keeping the progress but effectively replacing the father. - Genes/Icons/RJW_Genes_PheromoneSpit + Genes/Icons/pregnancy_overwrite 120 4 @@ -210,7 +210,7 @@ Reproduction Carriers of this gene are unable to masturbate - they need a partner or equipment. - Genes/Icons/Hypersexual + Genes/Icons/blocked_masturbation 60 0 1 diff --git a/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml index fff6f60..1d44fe7 100644 --- a/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml +++ b/Common/Defs/GeneDefs/GeneDefs_SexSpecial.xml @@ -153,7 +153,7 @@ rjw_genes_sexual_genetic_swap Carriers with this gene may switch a gene with their sex-partner. Switched Genes are always endogenes. - UI/Icons/Genes/Gene_PsychicBonding + Genes/Icons/sexual_genetic_swap 20 3 0 @@ -168,7 +168,7 @@ rjw_genes_sexual_genetic_thief Carriers with this gene may steal a gene from their sex-partner. Stolen genes are always xenogenes. - UI/Icons/Genes/Gene_PsychicBonding + Genes/Icons/sexual_genetic_thief 21 5 -2 @@ -184,7 +184,7 @@ rjw_genes_feminizer Carriers with this gene slowly turn male sexual partners into females. - UI/Icons/Genes/Gene_PsychicBonding + Genes/Icons/feminizer 31 4 -1 @@ -225,7 +225,7 @@ rjw_genes_twinkifier Carriers with this gene slowly turn male sexual partners into breedabel cute twinks. - UI/Icons/Genes/Gene_PsychicBonding + Genes/Icons/twinkifier 50 4 -1 @@ -264,6 +264,4 @@ - - \ No newline at end of file diff --git a/Common/Defs/HediffDefs/Hediffs_Rut.xml b/Common/Defs/HediffDefs/Hediffs_Rut.xml new file mode 100644 index 0000000..6c6ac10 --- /dev/null +++ b/Common/Defs/HediffDefs/Hediffs_Rut.xml @@ -0,0 +1,51 @@ + + + + rjw_genes_genetic_rut + HediffWithComps + + Based on genetics, this pawn is in heat. + (240,200,110) + false + 1.0 + false + false + +
  • + -1.00 +
  • +
    + +
  • + + + 0.50 + + +
  • + BloodPumping + 0.1 +
  • + + +
  • + + 0.4 + + 2.00 + + +
  • + Moving + 0.1 +
  • +
  • + BloodPumping + 0.15 +
  • + + +
    +
    + +
    \ No newline at end of file diff --git a/Common/Textures/Genes/Icons/Samples/Gene_Fertile.png b/Common/Textures/Genes/Icons/Samples/Gene_Fertile.png new file mode 100644 index 0000000..46abbae Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_Fertile.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_Inbred.png b/Common/Textures/Genes/Icons/Samples/Gene_Inbred.png new file mode 100644 index 0000000..3d8d705 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_Inbred.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureLargeIncrease.png b/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureLargeIncrease.png new file mode 100644 index 0000000..b07b305 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureLargeIncrease.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureSmallIncrease копия.png b/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureSmallIncrease копия.png new file mode 100644 index 0000000..25ad570 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_MaxTemperatureSmallIncrease копия.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_PsychicBonding.png b/Common/Textures/Genes/Icons/Samples/Gene_PsychicBonding.png new file mode 100644 index 0000000..a558928 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_PsychicBonding.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_PsychicallyDeaf.png b/Common/Textures/Genes/Icons/Samples/Gene_PsychicallyDeaf.png new file mode 100644 index 0000000..9a9eb8c Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_PsychicallyDeaf.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.png b/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.png new file mode 100644 index 0000000..dda02fd Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.png differ diff --git a/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.psd b/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.psd new file mode 100644 index 0000000..35dadab Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Gene_TotalHealing.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/Time.png b/Common/Textures/Genes/Icons/Samples/Time.png new file mode 100644 index 0000000..84cc532 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/Time.png differ diff --git a/Common/Textures/Genes/Icons/Samples/blocked_masturbation.psd b/Common/Textures/Genes/Icons/Samples/blocked_masturbation.psd new file mode 100644 index 0000000..79ca75b Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/blocked_masturbation.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/disease_immunity.psd b/Common/Textures/Genes/Icons/Samples/disease_immunity.psd new file mode 100644 index 0000000..f6a0ac3 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/disease_immunity.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/feminizer&twinkifier.psd b/Common/Textures/Genes/Icons/Samples/feminizer&twinkifier.psd new file mode 100644 index 0000000..cfda363 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/feminizer&twinkifier.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/hardwired_progenity.psd b/Common/Textures/Genes/Icons/Samples/hardwired_progenity.psd new file mode 100644 index 0000000..25721ce Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/hardwired_progenity.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/la-copa-menstrual-04.png b/Common/Textures/Genes/Icons/Samples/la-copa-menstrual-04.png new file mode 100644 index 0000000..fdb0ccd Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/la-copa-menstrual-04.png differ diff --git a/Common/Textures/Genes/Icons/Samples/low_fertility.psd b/Common/Textures/Genes/Icons/Samples/low_fertility.psd new file mode 100644 index 0000000..5f6af24 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/low_fertility.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/pregnancy_overwrite.psd b/Common/Textures/Genes/Icons/Samples/pregnancy_overwrite.psd new file mode 100644 index 0000000..eaf1210 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/pregnancy_overwrite.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/sexual_genetic_swap.psd b/Common/Textures/Genes/Icons/Samples/sexual_genetic_swap.psd new file mode 100644 index 0000000..354b409 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/sexual_genetic_swap.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/sexual_genetic_thief.psd b/Common/Textures/Genes/Icons/Samples/sexual_genetic_thief.psd new file mode 100644 index 0000000..a2b92b2 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/sexual_genetic_thief.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/size_blinded&stretcher.psd b/Common/Textures/Genes/Icons/Samples/size_blinded&stretcher.psd new file mode 100644 index 0000000..41faa92 Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/size_blinded&stretcher.psd differ diff --git a/Common/Textures/Genes/Icons/Samples/vulnerability.psd b/Common/Textures/Genes/Icons/Samples/vulnerability.psd new file mode 100644 index 0000000..5fdc6aa Binary files /dev/null and b/Common/Textures/Genes/Icons/Samples/vulnerability.psd differ diff --git a/Common/Textures/Genes/Icons/bisexuality.png b/Common/Textures/Genes/Icons/bisexuality.png new file mode 100644 index 0000000..e9356e8 Binary files /dev/null and b/Common/Textures/Genes/Icons/bisexuality.png differ diff --git a/Common/Textures/Genes/Icons/blocked_masturbation.png b/Common/Textures/Genes/Icons/blocked_masturbation.png new file mode 100644 index 0000000..f696996 Binary files /dev/null and b/Common/Textures/Genes/Icons/blocked_masturbation.png differ diff --git a/Common/Textures/Genes/Icons/disease_immunity.png b/Common/Textures/Genes/Icons/disease_immunity.png new file mode 100644 index 0000000..9567e1a Binary files /dev/null and b/Common/Textures/Genes/Icons/disease_immunity.png differ diff --git a/Common/Textures/Genes/Icons/feminizer.png b/Common/Textures/Genes/Icons/feminizer.png new file mode 100644 index 0000000..fafd7ed Binary files /dev/null and b/Common/Textures/Genes/Icons/feminizer.png differ diff --git a/Common/Textures/Genes/Icons/hardwired_progenity.png b/Common/Textures/Genes/Icons/hardwired_progenity.png new file mode 100644 index 0000000..97811e3 Binary files /dev/null and b/Common/Textures/Genes/Icons/hardwired_progenity.png differ diff --git a/Common/Textures/Genes/Icons/homosexuality.png b/Common/Textures/Genes/Icons/homosexuality.png new file mode 100644 index 0000000..cab42c7 Binary files /dev/null and b/Common/Textures/Genes/Icons/homosexuality.png differ diff --git a/Common/Textures/Genes/Icons/low_fertility.png b/Common/Textures/Genes/Icons/low_fertility.png new file mode 100644 index 0000000..0522d94 Binary files /dev/null and b/Common/Textures/Genes/Icons/low_fertility.png differ diff --git a/Common/Textures/Genes/Icons/major_vulnerability.png b/Common/Textures/Genes/Icons/major_vulnerability.png new file mode 100644 index 0000000..6e96a10 Binary files /dev/null and b/Common/Textures/Genes/Icons/major_vulnerability.png differ diff --git a/Common/Textures/Genes/Icons/minor_vulnerability.png b/Common/Textures/Genes/Icons/minor_vulnerability.png new file mode 100644 index 0000000..9a82f52 Binary files /dev/null and b/Common/Textures/Genes/Icons/minor_vulnerability.png differ diff --git a/Common/Textures/Genes/Icons/pregnancy_overwrite.png b/Common/Textures/Genes/Icons/pregnancy_overwrite.png new file mode 100644 index 0000000..9404a6c Binary files /dev/null and b/Common/Textures/Genes/Icons/pregnancy_overwrite.png differ diff --git a/Common/Textures/Genes/Icons/sexual_genetic_swap.png b/Common/Textures/Genes/Icons/sexual_genetic_swap.png new file mode 100644 index 0000000..b0407c4 Binary files /dev/null and b/Common/Textures/Genes/Icons/sexual_genetic_swap.png differ diff --git a/Common/Textures/Genes/Icons/sexual_genetic_thief.png b/Common/Textures/Genes/Icons/sexual_genetic_thief.png new file mode 100644 index 0000000..d871b9f Binary files /dev/null and b/Common/Textures/Genes/Icons/sexual_genetic_thief.png differ diff --git a/Common/Textures/Genes/Icons/size_blinded.png b/Common/Textures/Genes/Icons/size_blinded.png new file mode 100644 index 0000000..824a00d Binary files /dev/null and b/Common/Textures/Genes/Icons/size_blinded.png differ diff --git a/Common/Textures/Genes/Icons/stretcher.png b/Common/Textures/Genes/Icons/stretcher.png new file mode 100644 index 0000000..4c25049 Binary files /dev/null and b/Common/Textures/Genes/Icons/stretcher.png differ diff --git a/Common/Textures/Genes/Icons/twinkifier.png b/Common/Textures/Genes/Icons/twinkifier.png new file mode 100644 index 0000000..3b92f1f Binary files /dev/null and b/Common/Textures/Genes/Icons/twinkifier.png differ diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs index 7b0b2fc..c410aea 100644 --- a/Source/GeneDefOf.cs +++ b/Source/GeneDefOf.cs @@ -75,6 +75,7 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_insectincubator; public static readonly GeneDef rjw_genes_hardwired_progenity; public static readonly GeneDef rjw_genes_blocked_masturbation; + public static readonly GeneDef rjw_genes_basic_rut; // Cum public static readonly GeneDef rjw_genes_no_cum; @@ -142,6 +143,7 @@ namespace RJW_Genes public static readonly GeneDef rjw_genes_infectious_hypersexuality; public static readonly GeneDef rjw_genes_stretcher; public static readonly GeneDef rjw_genes_infectious_blocked_masturbation; + public static readonly GeneDef rjw_genes_infectious_rut; //Other Defs public static readonly XenotypeDef rjw_genes_succubus; diff --git a/Source/Genes/Breeding/Genes/Gene_Rut.cs b/Source/Genes/Breeding/Genes/Gene_Rut.cs new file mode 100644 index 0000000..9240dcd --- /dev/null +++ b/Source/Genes/Breeding/Genes/Gene_Rut.cs @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; + +namespace RJW_Genes +{ + public class Gene_Rut : Gene + { + public override void Tick() + { + base.Tick(); + + if (pawn == null || pawn.genes == null) + return; + + var chanceExtension = this.def.GetModExtension(); + if (chanceExtension == null) return; + + if (pawn.IsHashIntervalTick(chanceExtension.tickInterval)){ + Random r = new Random(); + if (r.NextDouble() < chanceExtension.eventChance) + { + Hediff rut = pawn.health.GetOrAddHediff(HediffDefOf.rjw_genes_genetic_rut); + rut.Severity = 1; + ModLog.Debug($"Pawn {pawn} gained rjw_genes_genetic_rut based on chance."); + } + } + } + } +} diff --git a/Source/Genes/Cum/JobDriver_ProcessingCumbucket.cs b/Source/Genes/Cum/JobDriver_ProcessingCumbucket.cs index cb8ef6e..efcd7de 100644 --- a/Source/Genes/Cum/JobDriver_ProcessingCumbucket.cs +++ b/Source/Genes/Cum/JobDriver_ProcessingCumbucket.cs @@ -41,6 +41,9 @@ namespace RJW_Genes } if (c.InBounds(this.pawn.Map) && c.Standable(this.pawn.Map)) { + // DevNote: I am not 100% what this all means, but IL_77 is a jump to the case below (it says IL_77). + // basically, this calls the next part of the function, but I am not super sure why this has to be like this. + // JobDrivers are scary. goto IL_77; } } @@ -93,16 +96,16 @@ namespace RJW_Genes ModLog.Warning($"{pawn} has the JobDriver_ProcessCumbucket but does not have the Hediff for filled cumbucket."); return; } + + //TODO: Fine-Tune the amount and how things calm down. Thing cum = ThingMaker.MakeThing(cumDef); cum.Position = cell; - int stacks = Math.Max(1, (int)(hediff.Severity * 3)); + int stacks = Math.Max(1, (int)(hediff.Severity * 1.5)); stacks = Math.Min(stacks, 75); // 75 is the default max stacksize ... cum.stackCount = stacks; cum.SpawnSetup(map, false); - - //TODO: Reduce this ... better? - hediff.Severity -= stacks / 50; + hediff.Severity -= (stacks / 50); } private int ticksLeft; diff --git a/Source/HediffDefOf.cs b/Source/HediffDefOf.cs index 2cc03fc..e06d6fc 100644 --- a/Source/HediffDefOf.cs +++ b/Source/HediffDefOf.cs @@ -23,6 +23,8 @@ namespace RJW_Genes public static readonly HediffDef rjw_genes_twinkification_progress; public static readonly HediffDef rjw_genes_feminization_progress; + public static readonly HediffDef rjw_genes_genetic_rut; + // Note: Counter does meant it counters it, not it's counting [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumstuffed_counter; [MayRequire("LustLicentia.RJWLabs")] public static readonly HediffDef rjw_genes_cumflation_counter; diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 05e2ed3..ddfa721 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -81,6 +81,7 @@ +