diff --git a/CHANGELOG.md b/CHANGELOG.md index 8719cf0..b86fa4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# 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) + +Fixes: + +- InsectBreeder would mess with normal Pawn-Animal pregancy for egg laying animals (#23) + # 1.1.2 Changes: diff --git a/Common/Assemblies/Rjw-Genes.dll b/Common/Assemblies/Rjw-Genes.dll index cf2ff5d..db8c46a 100644 Binary files a/Common/Assemblies/Rjw-Genes.dll and b/Common/Assemblies/Rjw-Genes.dll differ diff --git a/Common/Defs/HediffDefs/Hediffs_Fertilin.xml b/Common/Defs/HediffDefs/Hediffs_Fertilin.xml index d8ee3db..5330414 100644 --- a/Common/Defs/HediffDefs/Hediffs_Fertilin.xml +++ b/Common/Defs/HediffDefs/Hediffs_Fertilin.xml @@ -74,7 +74,7 @@ -0.2 - 0.05 + 0.01 0.1 0.35 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/Patch_AgeDrain.cs b/Source/Genes/Special/Patch_AgeDrain.cs index 2c7e55d..fce28db 100644 --- a/Source/Genes/Special/Patch_AgeDrain.cs +++ b/Source/Genes/Special/Patch_AgeDrain.cs @@ -11,12 +11,20 @@ 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 don't want to account for "trust me this race is really adult with Age 6!!!"-stuff. + * As it is somewhat a bug when the pawns age tho, I added that the youth-fountain also needs to have MIN_AGE. + * If you'd like a different behaviour, you have to do it yourself. + */ 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 + // Comment AGE_TRANSFERED in for debugging, changes years // const long AGE_TRANSFERED = 12000000; public static void Postfix(SexProps props) { @@ -24,7 +32,7 @@ namespace RJW_Genes.Genes.Special { 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}"); diff --git a/Source/Genes/Special/Patch_Youth_Fountain.cs b/Source/Genes/Special/Patch_Youth_Fountain.cs index a1a1840..ff90e93 100644 --- a/Source/Genes/Special/Patch_Youth_Fountain.cs +++ b/Source/Genes/Special/Patch_Youth_Fountain.cs @@ -11,10 +11,19 @@ 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 don't want to account for "trust me this race is really adult with Age 6!!!"-stuff. + * As it is somewhat a bug when the pawns age tho, I added that the youth-fountain also needs to have MIN_AGE. + * If you'd like a different behaviour, you have to do it yourself. + */ + 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 @@ -24,12 +33,10 @@ namespace RJW_Genes.Genes.Special { 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); } 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 ebb6550..29a540c 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 @@ -53,4 +52,10 @@ 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 \ No newline at end of file +- Cumshot Sniper Abilities + +## 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