diff --git a/CHANGELOG.md b/CHANGELOG.md
index 69f9b81..660c671 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,36 @@
+<<<<<<< HEAD
+# 1.1.4
+
+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`
+
+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
+
+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:
+
+- InsectBreeder would mess with normal Pawn-Animal pregancy for egg laying animals (#23)
+
+# 1.1.2
+
+Changes:
+
+- Added more cool images from WasMachenDennSachen (#22)
+
+Fixes:
+
+- Aphrodisiac Pheromones checks for children and other conditions (#25)
+
# 1.1.1
Changes:
diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll
index bcf809b..219605f 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 bd201cc..a2d7d7e 100644
--- a/Common/Defs/GeneDefs/GeneDefs_Breeding.xml
+++ b/Common/Defs/GeneDefs/GeneDefs_Breeding.xml
@@ -40,7 +40,7 @@
rjw_genes_breedingXenotypes with this Gene are Zoophile.
- Genes/Icons/Zoophile_2
+ Genes/Icons/Zoophile54
@@ -163,4 +163,4 @@
false
-
\ No newline at end of file
+
diff --git a/Common/Textures/Genes/Icons/Extra_Anus.png b/Common/Textures/Genes/Icons/Extra_Anus.png
index 1075bbd..9dfbbb6 100644
Binary files a/Common/Textures/Genes/Icons/Extra_Anus.png and b/Common/Textures/Genes/Icons/Extra_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/Extra_Breasts.png b/Common/Textures/Genes/Icons/Extra_Breasts.png
index f2c470e..5e7cbc3 100644
Binary files a/Common/Textures/Genes/Icons/Extra_Breasts.png and b/Common/Textures/Genes/Icons/Extra_Breasts.png differ
diff --git a/Common/Textures/Genes/Icons/Genitalia_Demon.png b/Common/Textures/Genes/Icons/Genitalia_Demon.png
index 7831b4d..d8ace83 100644
Binary files a/Common/Textures/Genes/Icons/Genitalia_Demon.png and b/Common/Textures/Genes/Icons/Genitalia_Demon.png differ
diff --git a/Common/Textures/Genes/Icons/Loose_Anus.png b/Common/Textures/Genes/Icons/Loose_Anus.png
index c96dec3..86036d8 100644
Binary files a/Common/Textures/Genes/Icons/Loose_Anus.png and b/Common/Textures/Genes/Icons/Loose_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/No_Anus.png b/Common/Textures/Genes/Icons/No_Anus.png
index f5a9a03..69f7d6b 100644
Binary files a/Common/Textures/Genes/Icons/No_Anus.png and b/Common/Textures/Genes/Icons/No_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/No_Male_Genitalia.png b/Common/Textures/Genes/Icons/No_Male_Genitalia.png
index ce1fa4e..9104ea6 100644
Binary files a/Common/Textures/Genes/Icons/No_Male_Genitalia.png and b/Common/Textures/Genes/Icons/No_Male_Genitalia.png differ
diff --git a/Common/Textures/Genes/Icons/Tight_Anus.png b/Common/Textures/Genes/Icons/Tight_Anus.png
index dd355fb..0e797de 100644
Binary files a/Common/Textures/Genes/Icons/Tight_Anus.png and b/Common/Textures/Genes/Icons/Tight_Anus.png differ
diff --git a/Common/Textures/Genes/Icons/Zoophile.png b/Common/Textures/Genes/Icons/Zoophile.png
index ed45040..75afdf4 100644
Binary files a/Common/Textures/Genes/Icons/Zoophile.png and b/Common/Textures/Genes/Icons/Zoophile.png differ
diff --git a/Common/Textures/Genes/Icons/Zoophile_2.png b/Common/Textures/Genes/Icons/Zoophile_2.png
deleted file mode 100644
index d313bcb..0000000
Binary files a/Common/Textures/Genes/Icons/Zoophile_2.png and /dev/null differ
diff --git a/Common/Textures/Genes/Icons/extra_male.png b/Common/Textures/Genes/Icons/extra_male.png
index 5390ecc..c39e163 100644
Binary files a/Common/Textures/Genes/Icons/extra_male.png and b/Common/Textures/Genes/Icons/extra_male.png differ
diff --git a/KNOWN_BUGS.md b/KNOWN_BUGS.md
index ccf7ea8..f9bc556 100644
--- a/KNOWN_BUGS.md
+++ b/KNOWN_BUGS.md
@@ -2,6 +2,17 @@
Collection of Known Bugs and reasons for their origin.
+## I changed Parts of a pawn and my genes do not apply!
+
+Issue: You had a pawn with "huge genitalia" and add a horse-cock with licentia or surgery. This new genitalia is not huge.
+
+Reason: The genes are applied when they are added. This is usually character-spawn. The genes change the attributes of the genitalia-hediff, and thus genitalia added after the genes are not affected.
+
+I think I will not gonna fix this.
+First of all, I think transplants wouldn't reasonably affected by genes.
+Second, for implementation I'd need to regularly check if every gene changed all relevant genitalia already, and do the same every x-ticks.
+This seems like a performance sink, so I will not gonna do it.
+
## Pawn does not refresh empty Fertilin!
Issue: A pawn has 0 (or low) Fertilin, and a mood debuff. But they do not do anything about it.
diff --git a/README.md b/README.md
index cd3012d..f0a12ac 100644
--- a/README.md
+++ b/README.md
@@ -28,9 +28,14 @@ Please consider looking at [the known bugs](./KNOWN_BUGS.md)
I currently don't use Races after Biotech was introduced.
One of the main motivations was to have genes being added to the xenotypes that other mods and the base game add, e.g. adding demonic penis for impids.
-## Load Order / Deps
+Some HAR races change sex-ages and behave unfriendly with this mod.
+You can make reports about that, but I might not fix it.
-1. Please load this after any mod adding genes, and after the used RJW-Mods (Licentia, Sexperience).
-2. Should not be used with the original RJW_Animal_Gene_Inheritance anymore.
-3. There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now.
-4. CAI5000 will not crash, but will make *Seduce*-Ability fail. I think same goes for Combat Extended.
\ No newline at end of file
+## Load Order, Dependencies and Conflicts
+
+Please load this after any mod adding genes, and after the used RJW-Mods (Licentia, Sexperience).
+
+**Conflicts:**
+1. Should not be used with the original RJW_Animal_Gene_Inheritance anymore.
+2. There was an issue with other "Male-Only / Female-Only" Mods --- for which we provide our own Genes now.
+3. CAI5000 will not crash, but will make *Seduce*-Ability fail. I think same goes for Combat Extended.
\ No newline at end of file
diff --git a/Source/Genes/Breeding/PatchPawnExtensions.cs b/Source/Genes/Breeding/PatchPawnExtensions.cs
deleted file mode 100644
index be2e2dc..0000000
--- a/Source/Genes/Breeding/PatchPawnExtensions.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using HarmonyLib;
-using rjw;
-using Verse;
-
-namespace RJW_Genes
-{
- ///
- /// Kindly provided by 'shabalox' https://github.com/Shabalox/RJW_Genes_Addons/
- ///
- /// Note on the logic: the result mentioned below is changing the result of fertilization (true or false) to true if the pawn has the insect-breeder gene.
- ///
- [HarmonyPatch(typeof(PawnExtensions), "RaceImplantEggs")]
- public static class PatchPawnExtensions
- {
- [HarmonyPostfix]
- public static void Postfix(Pawn pawn, ref bool __result)
- {
- if (!__result)
- {
- __result = GeneUtility.IsInsectBreeder(pawn);
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Source/Genes/Special/Gene_Aphrodisiac_Pheromones.cs b/Source/Genes/Special/Gene_Aphrodisiac_Pheromones.cs
index e3628dc..875d1dd 100644
--- a/Source/Genes/Special/Gene_Aphrodisiac_Pheromones.cs
+++ b/Source/Genes/Special/Gene_Aphrodisiac_Pheromones.cs
@@ -39,9 +39,25 @@ namespace RJW_Genes
{
foreach (Pawn pawn in map.mapPawns.AllPawns)
{
- if (pawn != null && this.pawn != null && pawn != this.pawn
- && pos.DistanceTo(pawn.Position) < APHRODISIAC_DISTANCE && GenSight.LineOfSight(pos, pawn.Position, pawn.Map)
- && !GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_aphrodisiac_pheromones))
+ // Return for trivial errors
+ if (pawn == null || this.pawn == null || pawn == this.pawn)
+ continue;
+ // Check for position-existance
+ if (pawn.Position == null || pos == null || pawn.Map == null)
+ continue;
+ // Do nothing if pawn is carried
+ if (pawn.CarriedBy != null)
+ continue;
+ // Do nothing if Pawn is Baby or Child (#25)
+ if (!pawn.ageTracker.Adult)
+ continue;
+ // Do nothing for pawns that also have pheromones
+ if (GeneUtility.HasGeneNullCheck(pawn, GeneDefOf.rjw_genes_aphrodisiac_pheromones))
+ continue;
+
+ // Actual Logic:
+ // Pawn qualifies in right distance and needs line of sight.
+ if (pos.DistanceTo(pawn.Position) < APHRODISIAC_DISTANCE && GenSight.LineOfSight(pos, pawn.Position, pawn.Map))
{
yield return pawn;
}
diff --git a/Source/Genes/Special/Patch_AgeDrain.cs b/Source/Genes/Special/Patch_AgeDrain.cs
index 2c7e55d..4138a78 100644
--- a/Source/Genes/Special/Patch_AgeDrain.cs
+++ b/Source/Genes/Special/Patch_AgeDrain.cs
@@ -11,28 +11,33 @@ namespace RJW_Genes.Genes.Special
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
public static class Patch_AgeDrain
{
+ /**
+ * Update Issue #26:
+ * There are options that a 16 yo pawn and a 16 yo pawn have sex,
+ * or there are races that have a different age-limits.
+ * I am not sure how I feel about this, but as some people that I consider "normal" asked me about this I changed it as requested in #26 and #28
+ */
const long AGE_TRANSFERED = 120000; // 120k == 2 days
- // 20 Years * 60 Days / Year * 60k Ticks/Day + 1 for safety
- const long MINIMUM_AGE = 20 * 60 * 60000 + 1;
+ // 18 Years * 60 Days / Year * 60k Ticks/Day + 1 for safety
+ const long MINIMUM_AGE = 18 * 60 * 60000 + 1;
- // Comment Below in for debugging, changes years
- // const long AGE_TRANSFERED = 12000000;
public static void Postfix(SexProps props)
{
if (props == null || props.pawn == null || props.partner == null || props.partner.IsAnimal() )
{
return;
}
- if (GeneUtility.IsAgeDrainer(props.pawn))
+ if (GeneUtility.IsAgeDrainer(props.pawn) && props.pawn.ageTracker.AgeBiologicalTicks > MINIMUM_AGE)
{
var pawnAge = props.pawn.ageTracker.AgeBiologicalTicks;
//ModLog.Error($"Firing Age Drain \nMinimum Age is \t{MINIMUM_AGE} \nPawn Age is \t{pawnAge} \nTransferred \t{AGE_TRANSFERED}\nResulting in \t{pawnAge - AGE_TRANSFERED}");
// Make Partner older
props.partner.ageTracker.AgeBiologicalTicks += AGE_TRANSFERED;
- // Make Pawn younger
- props.pawn.ageTracker.AgeBiologicalTicks = Math.Max(MINIMUM_AGE, (pawnAge - AGE_TRANSFERED));
+ // Make Pawn younger if he is older than minimum age
+ if (pawnAge - AGE_TRANSFERED > MINIMUM_AGE)
+ props.pawn.ageTracker.AgeBiologicalTicks = Math.Max(MINIMUM_AGE, (pawnAge - AGE_TRANSFERED));
}
}
diff --git a/Source/Genes/Special/Patch_Youth_Fountain.cs b/Source/Genes/Special/Patch_Youth_Fountain.cs
index a1a1840..bc07f1b 100644
--- a/Source/Genes/Special/Patch_Youth_Fountain.cs
+++ b/Source/Genes/Special/Patch_Youth_Fountain.cs
@@ -11,34 +11,33 @@ namespace RJW_Genes.Genes.Special
[HarmonyPatch(typeof(SexUtility), "Aftersex")]
public static class Patch_Youth_Fountain
{
+ /**
+ * Update Issue #26:
+ * There are options that a 16 yo pawn and a 16 yo pawn have sex,
+ * or there are races that have a different age-limits.
+ * I am not sure how I feel about this, but as some people that I consider "normal" asked me about this I changed it as requested in #26 and #28
+ */
const long AGE_REDUCTION = 60000; // 60k == 1 day
- // 20 Years * 60 Days / Year * 60k Ticks/Day + 1 for safety
- const long MINIMUM_AGE = 20 * 60 * 60000 + 1;
+ // 18 Years * 60 Days / Year * 60k Ticks/Day + 1 for safety
+ const long MINIMUM_AGE = 18 * 60 * 60000 + 1;
- // Comment Below in for debugging
- // const long AGE_REDUCTION = 6000000; // 6000k == 100 days
public static void Postfix(SexProps props)
{
if (props == null || props.pawn == null || props.partner == null || props.partner.IsAnimal())
{
return;
}
- if (GeneUtility.IsYouthFountain(props.pawn))
+ if (GeneUtility.IsYouthFountain(props.pawn) && props.pawn.ageTracker.AgeBiologicalTicks >= MINIMUM_AGE)
{
var partnerAge = props.partner.ageTracker.AgeBiologicalTicks;
- //ModLog.Error($"Firing Youth Fountain \nMinimum Age is \t{MINIMUM_AGE}\t{ticksToYears(MINIMUM_AGE)}y\nPawn Age is \t{partnerAge}\t{ticksToYears(partnerAge)}y \nTransferred \t {AGE_REDUCTION}\t{ticksToYears(AGE_REDUCTION)}y\nResulting in \t{partnerAge - AGE_REDUCTION}\t{ticksToYears(partnerAge - AGE_REDUCTION)}y");
-
- props.partner.ageTracker.AgeBiologicalTicks = Math.Max(MINIMUM_AGE, partnerAge - AGE_REDUCTION);
+ if(partnerAge - AGE_REDUCTION > MINIMUM_AGE)
+ props.partner.ageTracker.AgeBiologicalTicks = Math.Max(MINIMUM_AGE, partnerAge - AGE_REDUCTION);
}
}
- private static float ticksToYears(long ticks)
- {
- return (ticks / 60000f) / 60f;
- }
}
}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index a090438..29d14d9 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -44,7 +44,6 @@
-
diff --git a/TODOS.md b/TODOS.md
index 1977952..7e223a1 100644
--- a/TODOS.md
+++ b/TODOS.md
@@ -1,7 +1,6 @@
# ToDos and Planned Genes
-I have many ideas but not too much time / knowledge of Rimworld or Modding.
-So any help is very appreciated, even if it is just pointing me to existing similar projects.
+Any help is very appreciated, even if it is just pointing me to existing similar projects.
## Additions to existing things
@@ -23,10 +22,31 @@ So any help is very appreciated, even if it is just pointing me to existing simi
**Death-Rest** until the pawn is cumflated.
+**Alpha / Beta Genes** that you can only have one alpha, and the alpha makes mostly beta children (1:10). This might fit with the xenotypes below. As this is an RJW mod, this should also somewhat affect sex (e.g. betas cannot impregnate betas).
+
## Planned Xenotypes
-- "Beastmaster": Zoophile with various genes to command animals to rape, mate etc. and increased animal "handling".
-- "Hive-Mother": for breeding Insect Armies, maybe it is also possible to "store" small insects in her etc.
+**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
+
+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
+- [] 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.
## Genes with Abilities and more Effects
@@ -35,4 +55,9 @@ There were some suggestions on the Discord I saved them somewhere else. I am far
- Genitalia deal damage as per size (on normal sex-use)
- Genitalia can cause Terror (as ability)
- Cumshot Sniper Abilities
-- Healing Pussy
\ No newline at end of file
+
+## 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
\ No newline at end of file