Compare commits

...

5 commits

Author SHA1 Message Date
Vegapnk
814c4ffe47 1.1.3 build 2023-03-28 08:12:48 +02:00
Vegapnk
d662d8f032 Updated documents 2023-03-28 08:09:49 +02:00
Vegapnk
e669a3a65b Reduced Throwup Chance of Drained Pawns 2023-03-28 08:09:41 +02:00
Vegapnk
f994cc6283 Adjusted Age-Drain and Youth Fountain after short discussion in #26 2023-03-24 10:53:58 +01:00
Vegapnk
b6ac823fd7 Removed Orphaned Patch for Egg Fertilisation, maybe fix #23 2023-03-24 07:50:32 +01:00
9 changed files with 55 additions and 43 deletions

View file

@ -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:

Binary file not shown.

View file

@ -74,7 +74,7 @@
<statOffsets>
<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
</statOffsets>
<vomitMtbDays>0.05</vomitMtbDays>
<vomitMtbDays>0.01</vomitMtbDays>
<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
<restFallFactorOffset>0.35</restFallFactorOffset>
</li>

View file

@ -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.
## 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.

View file

@ -1,24 +0,0 @@
using HarmonyLib;
using rjw;
using Verse;
namespace RJW_Genes
{
/// <summary>
/// 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.
/// </summary>
[HarmonyPatch(typeof(PawnExtensions), "RaceImplantEggs")]
public static class PatchPawnExtensions
{
[HarmonyPostfix]
public static void Postfix(Pawn pawn, ref bool __result)
{
if (!__result)
{
__result = GeneUtility.IsInsectBreeder(pawn);
}
}
}
}

View file

@ -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}");

View file

@ -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);
}

View file

@ -44,7 +44,6 @@
<Compile Include="GeneDefOf.cs" />
<Compile Include="Genes\Breeding\Gene_MechBreeder.cs" />
<Compile Include="Genes\Breeding\PatchMechBirth.cs" />
<Compile Include="Genes\Breeding\PatchPawnExtensions.cs" />
<Compile Include="Genes\Breeding\Patch_EggFertilization.cs" />
<Compile Include="Genes\Breeding\PatchPregnancyHelper.cs" />
<Compile Include="Genes\Cum\CumUtility.cs" />

View file

@ -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
- 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