diff --git a/CHANGELOG.md b/CHANGELOG.md
index c177c58..8bc0df6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-# 2.2.0 (dd-mm-2024)
+# 2.2.0
**Genetic Diseases**
@@ -12,7 +12,6 @@ Infections can be
- Chances are adjustable per XML per Gene
By turning their spread off, you effectively have a set of normal negative genes.
-Dead pawns can spread diseases, but cannot receive them. For all you necros out there.
*Why???*
@@ -20,26 +19,20 @@ Most of the genes so far were positive or neutral,
so I got some fair requests to introduce negative genes to keep xenotypes balanced.
I know that this is some overlap with the STD mod, but well ... you are free to turn things off?
-**Additions:**
+**Additions**
- Passive Gene: *Genetic Disease Immunity* - cannot get infected by any genetic diseases, and won't be affected by some other genes (see relevant genes)
- Disease Gene: Vulnerability. Pawn is likelier to be raped
- Disease Gene: Infectious Hypersexuality
- Disease Gene: Infectious Homosexuality & Bisexuality
-- Disease Gene: Fluctual Sexual Need. (Configurable) Chance to reset sex-need to near-zero and gain a bit of rest-need.
-- Disease Gene: Size Blinded. Pawns have a higher chance for hooking up with pawns with a big cock, lower chance for small cocks.
+- Disease Gene: Fluctual Sexual Need. (Configurable) Chance to reset sex-need to near-zero and gain a bit of rest-need.
-**Fixes:**
-
-- Fixed an Issue where pawns would always get the Pheromone social boost, unless they had the pheromone (#113)
-
-**Internal:**
+**Internal**
- GenderFluid-Gene now uses a generalized `TickBasedChanceExtension` over its unique special `GenderFluidExtension`
- Introduced a `ModLog.Debug` Function that checks for the settings before printing - trying to spread it over the whole project.
-- Removed TODO File. I have enough to do.
-# 2.1.0 (27-06-2024)
+# 2.1.0
**Additions**:
@@ -86,7 +79,7 @@ I know that this is some overlap with the STD mod, but well ... you are free to
- Some new Icons thanks to Kira-Bad-Artist
- Some new Icons thanks to Archer
-# 2.0.0 (30-05-2024)
+# 2.0.0
**Summary**:
@@ -133,20 +126,20 @@ I know that this is some overlap with the STD mod, but well ... you are free to
- Patches to RJW-Pregnancy Helper to account for Male Pregs.
- Some replacements from `hasGene` to `hasActiveGene`
-# 1.3.3 (02-11-2023)
+# 1.3.3
**Fixes:**
- Added another check to the AG Malachai Xenotype (Fixes #68)
- Fixed the `GatheredCum`Fertilin Ingestion Patch throwing an Error for people without Sexperience (Fixes #69 (nice))
-# 1.3.2 (24-10-2023)
+# 1.3.2
**Fixes:**
- Removed patch for Malachai, needs a different patching operator but I don't want to have broken fixes for now (Tracked in a new Issue)
-# 1.3.1 (22-10-2023)
+# 1.3.1
**Changes**
@@ -185,7 +178,7 @@ The pawns that are gender fluid can get pregnant.
However, with RJW 5.3.7 these pregnancies disappear.
This is a change needed upstream, but I will have a look.
-# 1.2.1 (18-06-2023)
+# 1.2.1
**Fixes**:
@@ -265,9 +258,9 @@ And I am aware that the TiTs-Myr work different than the things I made now.
- Mostly Patches and Changes to the Halamyr Defs
- Some re-arranging and mayRequires for other mods
-# 1.1.4 (06-04-2023)
+# 1.1.4
-**Fixes:**
+Fixes:
- Youth Fountain and Age Drainer **really** "stop" at 18 (#26, #28) and never age pawns
- Drastically reduced vomiting time due to an missunderstanding (#29). `0.4` instead of `0.01`
@@ -275,37 +268,37 @@ And I am aware that the TiTs-Myr work different than the things I made now.
Sometimes life is like that, and you have to fix the fixes.
It was never really broken, life is just very long.
-# 1.1.3 (28-03-2023)
+# 1.1.3
-**Changes:**
+Changes:
- Youth Fountain and Age Drainer "stop" at 18 (#26)
- Youth Fountain and Age Drainer activate only for pawns at 18 (#26)
- Drained Pawns vomit less (from mtb 0.05 to 0.01)(#29)
-**Fixes:**
+Fixes:
- InsectBreeder would mess with normal Pawn-Animal pregancy for egg laying animals (#23)
-# 1.1.2 (19-03-2023)
+# 1.1.2
-**Changes:**
+Changes:
- Added more cool images from WasMachenDennSachen (#22)
-**Fixes:**
+Fixes:
- Aphrodisiac Pheromones checks for children and other conditions (#25)
-# 1.1.1 (10-03-2023)
+# 1.1.1
-**Changes:**
+Changes:
- Drastically increased mood-penalty for Fertilin-Loss (if the pawn is still too happy, there will never be a breakdown for missing fertilin)
- No-Breast Genes add Nipples
- Featureless Chest Gene (No Nipples at all, adds the RJW Featureless Chest as requested per some Kobold fetishists)
-**Fixes:**
+Fixes:
- Small and Big Male Genitalia had images wrong way round
- Fertilin should activate at a MinAge of 18
diff --git a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml
index ecc3ee8..e5c8723 100644
--- a/Common/Defs/GeneDefs/GeneDefs_Diseases.xml
+++ b/Common/Defs/GeneDefs/GeneDefs_Diseases.xml
@@ -186,20 +186,4 @@
-
-
- rjw_genes_size_blinded
-
- This genetic disease makes the carrier dramatically more drawn to pawns with huge cocks.
- UI/Icons/ColonistBar/Idle
- 1
- 1
- 11
-
-
- 0.1
-
-
-
-
\ No newline at end of file
diff --git a/Common/Defs/ThoughtDefs/Thoughts_Disease.xml b/Common/Defs/ThoughtDefs/Thoughts_Disease.xml
deleted file mode 100644
index d0721ee..0000000
--- a/Common/Defs/ThoughtDefs/Thoughts_Disease.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
- rjw_genes_appealing_cock
- Thought_SituationalSocial
- RJW_Genes.ThoughtWorker_SizeBlinded_Social
- true
-
-
-
-
- -10
-
-
-
- 10
-
-
-
- 20
-
-
-
-
-
diff --git a/Source/GeneDefOf.cs b/Source/GeneDefOf.cs
index 2e59f20..e4f4aff 100644
--- a/Source/GeneDefOf.cs
+++ b/Source/GeneDefOf.cs
@@ -126,7 +126,6 @@ namespace RJW_Genes
public static readonly GeneDef rjw_genes_minor_vulnerability;
public static readonly GeneDef rjw_genes_major_vulnerability;
public static readonly GeneDef rjw_genes_fluctual_sexual_needs;
- public static readonly GeneDef rjw_genes_size_blinded;
//Other Defs
public static readonly XenotypeDef rjw_genes_succubus;
diff --git a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs
index 6bf8e88..d7a2e07 100644
--- a/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs
+++ b/Source/Genes/Diseases/Patches/Patch_AftersexUtility_TransferGeneticDiseases.cs
@@ -43,11 +43,6 @@ namespace RJW_Genes.Genes.Diseases.Patches
ModLog.Debug($"{infected} is immune to genetic diseases");
return;
}
- if (infected.Dead)
- {
- // Dead people can spread, but not receive, diseases.
- return;
- }
foreach (GeneDef disease in GetGeneticDiseaseGenes(infector)) {
ModLog.Debug($"Found genetic disease {disease} in {infector}, trying to infect {infected}");
diff --git a/Source/Genes/Diseases/Patches/Patch_SecondaryRomanceChanceFactor_Gene_SizeBlinded.cs b/Source/Genes/Diseases/Patches/Patch_SecondaryRomanceChanceFactor_Gene_SizeBlinded.cs
deleted file mode 100644
index fa36398..0000000
--- a/Source/Genes/Diseases/Patches/Patch_SecondaryRomanceChanceFactor_Gene_SizeBlinded.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using HarmonyLib;
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Verse;
-
-namespace RJW_Genes
-{
- ///
- /// This patch helps with the gene `rjw_genes_size_blinded`.
- /// Within RJW the CasualSexHelper utilizes the basefunction "pawn.relations.SecondaryRomanceChanceFactor"
- /// https://gitgud.io/Ed86/rjw/-/blob/master/1.5/Source/Common/Helpers/CasualSex_Helper.cs
- ///
- /// We check on hookup for the other pawn if they have a penis.
- /// If yes, we modulate the romance chance based on the following:
- /// (Severity * BodySize - 0.5) * romance_multiplier
- /// So pawns with a cock smaller than 0.5 will be penalized, while pawns with more than 0.5 will be preferred.
- ///
- [HarmonyPatch(typeof(Pawn_RelationsTracker), "SecondaryRomanceChanceFactor")]
- public class Patch_SecondaryRomanceChanceFactor_Gene_SizeBlinded
- {
-
- const float romance_multiplier = 2f;
-
- public static void Postfix( Pawn ___pawn, Pawn otherPawn, ref float __result)
- {
- if (otherPawn == null || ___pawn == null || ___pawn.genes == null || otherPawn.genes == null)
- {
- return;
- }
- if (___pawn.genes.HasActiveGene(GeneDefOf.rjw_genes_size_blinded) && Genital_Helper.has_penis_fertile(otherPawn) || (Genital_Helper.has_penis_infertile(otherPawn)))
- {
- Hediff biggest_cock = GenitaliaUtility.GetBiggestPenis(otherPawn);
- if (biggest_cock != null)
- {
- float bodysize = GenitaliaUtility.GetBodySizeOfSexPart(biggest_cock);
- // Bodysize can only be a bonus, not a minus.
- bodysize = Math.Max(1.0f, bodysize);
-
- float attraction_bonus = (biggest_cock.Severity * bodysize - 0.5f) * romance_multiplier;
- float result_backup = __result;
- __result += attraction_bonus;
- // Don't make it smaller than 0, to not get issues.
- __result = __result < 0 ? 0.0f : __result;
-
- ModLog.Debug($"Gene_SizeBlind: Modulate Romance-Chance {___pawn}-->{otherPawn} from {result_backup} by {attraction_bonus} to {__result}");
- }
- }
- }
-
- }
-}
diff --git a/Source/Genes/Diseases/Thoughts/ThoughtWorker_SizeBlinded_Social.cs b/Source/Genes/Diseases/Thoughts/ThoughtWorker_SizeBlinded_Social.cs
deleted file mode 100644
index 871b276..0000000
--- a/Source/Genes/Diseases/Thoughts/ThoughtWorker_SizeBlinded_Social.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Genes
-{
- public class ThoughtWorker_SizeBlinded_Social : ThoughtWorker
- {
- protected override ThoughtState CurrentSocialStateInternal(Pawn pawn, Pawn other)
- {
- // Return for trivial errors
- if (pawn == null || other == null || pawn == other)
- return (ThoughtState)false;
- // Check for position-existance
- if (pawn.Position == null || other.Position == null || pawn.Map == null || other.Map == null)
- return (ThoughtState)false;
- // Do nothing if pawn is carried
- if (pawn.CarriedBy != null)
- return (ThoughtState)false;
- // Do nothing if Pawn is Baby or Child (#25)
- if (!pawn.ageTracker.Adult)
- return (ThoughtState)false;
- if (!other.ageTracker.Adult)
- return (ThoughtState)false;
- // Only check if they are spawned humans
- if (!pawn.Spawned || !other.Spawned)
- return (ThoughtState)false;
- if (!pawn.RaceProps.Humanlike)
- return (ThoughtState)false;
- if (!other.RaceProps.Humanlike)
- return (ThoughtState)false;
-
- // Pawns that have not "met" wont give each other Mali
- // Known-Each-Other is a key-word for Rimworld that shows they have had any interaction and stored each other in relations.
- if (!RelationsUtility.PawnsKnowEachOther(pawn, other))
- return (ThoughtState)false;
- // If the pawn is not on Map (e.g. caravan), no mali
- if (!MapUtility.PawnIsOnHomeMap(pawn))
- return (ThoughtState)false;
-
- //ModLog.Debug($"ThoughtWorker Checks Size Blinded {pawn} -> {other}");
-
- // Do nothing if there is no size-blinded involved
- if (!GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_size_blinded))
- return (ThoughtState)false;
- else
- ModLog.Debug($"{pawn} has the size blinded gene");
-
- // Iff the pawn has a penis, retrieve it's size.
- var penis = GenitaliaUtility.GetBiggestPenis(other);
- // Do Nothing if the other pawn has no penis
- if (penis == null) return (ThoughtState)false;
- var bodysize = GenitaliaUtility.GetBodySizeOfSexPart(penis);
-
- if (penis.Severity + (bodysize) - 1.0 > 1.0)
- return ThoughtState.ActiveAtStage(2);
- else if (penis.Severity >= 0.8f)
- return ThoughtState.ActiveAtStage(1);
- else
- return ThoughtState.ActiveAtStage(0);
-
- }
- }
-}
diff --git a/Source/Genes/Genitalia/GenitaliaUtility.cs b/Source/Genes/Genitalia/GenitaliaUtility.cs
index 581ba64..6a6ba79 100644
--- a/Source/Genes/Genitalia/GenitaliaUtility.cs
+++ b/Source/Genes/Genitalia/GenitaliaUtility.cs
@@ -73,48 +73,5 @@ namespace RJW_Genes
{
return candidate.def.defName.ToLower().Contains("breast");
}
-
- ///
- /// Returns the biggest penis of a pawn.
- /// In case of a identical severity, the highest body size is returned.
- /// For women, or pawns without a penis, null is returned.
- ///
- ///
- /// The biggest penis of a pawn. Null on women or error.
- public static Hediff GetBiggestPenis(Pawn pawn)
- {
- Hediff best = null;
- var parts = Genital_Helper.get_AllPartsHediffList(pawn);
-
- foreach (var part in parts)
- {
- if (Genital_Helper.is_sex_part(part) && Genital_Helper.is_penis(part))
- {
- if (best == null) best = part;
-
- // On a draw of size, we check the body-size.
- if (part.Severity == best.Severity) {
- var partSize = part.TryGetComp();
- var bestSize = part.TryGetComp();
- if (partSize == null || bestSize == null) { continue; }
-
- best = partSize.SizeOwner > bestSize.SizeOwner ? part : best;
- } else if (part.Severity > best.Severity) {
- best = part;
- }
- }
- }
-
- return best;
- }
-
- public static float GetBodySizeOfSexPart(Hediff part)
- {
- if (part == null || part.TryGetComp() == null)
- return 0.0f;
- else
- return part.TryGetComp().SizeOwner;
- }
}
-
}
diff --git a/Source/Genes/Special/Thoughts/ThoughtWorker_Aphrodisiac_Pheromones_Social.cs b/Source/Genes/Special/Thoughts/ThoughtWorker_Aphrodisiac_Pheromones_Social.cs
index 6ae9fca..b236fc9 100644
--- a/Source/Genes/Special/Thoughts/ThoughtWorker_Aphrodisiac_Pheromones_Social.cs
+++ b/Source/Genes/Special/Thoughts/ThoughtWorker_Aphrodisiac_Pheromones_Social.cs
@@ -40,20 +40,10 @@ namespace RJW_Genes
// If the pawn is not on Map (e.g. caravan), no mali
if (!MapUtility.PawnIsOnHomeMap(pawn))
return (ThoughtState)false;
-
- // Do nothing if the pawn does not have the pheromones
- if (!GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_aphrodisiac_pheromones))
+ // Do nothing for pawns that also have pheromones
+ if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_aphrodisiac_pheromones))
return (ThoughtState)false;
- // Do nothing for others that also have pheromones
- if (GeneUtility.HasGeneNullCheck(other, GeneDefOf.rjw_genes_aphrodisiac_pheromones))
- return (ThoughtState)false;
-
- // Do nothing for pawns that wear Gas-Masks
- if (other.apparel != null && other.apparel.AnyApparel)
- if (other.apparel.WornApparel.Any(apparel => apparel.def == RimWorld.ThingDefOf.Apparel_GasMask))
- return (ThoughtState)false;
-
// Actual Logic:
// Pawn qualifies in right distance and needs line of sight.
var pos = other.Position;
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index 51b80a1..f684926 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -78,8 +78,6 @@
-
-
diff --git a/Source/ThoughtDefOf.cs b/Source/ThoughtDefOf.cs
index 50f2a00..f884d4a 100644
--- a/Source/ThoughtDefOf.cs
+++ b/Source/ThoughtDefOf.cs
@@ -15,8 +15,6 @@ namespace RJW_Genes
public static readonly ThoughtDef rjw_genes_pheromone_carrier_nearby;
- public static readonly ThoughtDef rjw_genes_appealing_cock;
-
//Others with same names but other defs than in genedefof
public static readonly InteractionDef rjw_genes_flirt;
}
diff --git a/TODOS.md b/TODOS.md
new file mode 100644
index 0000000..25f5045
--- /dev/null
+++ b/TODOS.md
@@ -0,0 +1,29 @@
+# ToDos and Planned Genes
+
+Any help is very appreciated, even if it is just pointing me to existing similar projects.
+
+## Planned / Wanted Genes
+
+**Adjustable Cock-Size** like e.g. artificial genitalia have
+
+**Infectious Hypersexuality Gene** (Maybe?) add Hypersexuality Gene through sex with a certain chance.
+
+**Cum Addiction** add Cum-Addiction from Sexperience, slowly loose conciousness while addiction is not attended.
+
+**Cum-Drugs** eating cum has an effect similar to Go-Juice (including (separate?) addiction)
+
+**Death-Rest** until the pawn is cumflated. I would have liked
+
+**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) - This started in the branch `GenitaliaDamage` but prooves a bit overboarding!
+- Genitalia can cause Terror (as ability)
+- 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:
+
+- Change Project structure to the 1.3, 1.4 Structure of other mods