Merge branch 'vegapnk:main' into main

This commit is contained in:
Wasmachensachen 2023-04-07 18:43:49 +02:00 committed by GitHub
commit ee702164b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 129 additions and 60 deletions

View File

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

Binary file not shown.

View File

@ -40,7 +40,7 @@
<label>Zoophile</label>
<displayCategory>rjw_genes_breeding</displayCategory>
<description>Xenotypes with this Gene are Zoophile.</description>
<iconPath>Genes/Icons/Zoophile_2</iconPath>
<iconPath>Genes/Icons/Zoophile</iconPath>
<displayOrderInCategory>54</displayOrderInCategory>
<forcedTraits>
<li>

View File

@ -74,7 +74,7 @@
<statOffsets>
<WorkSpeedGlobal>-0.2</WorkSpeedGlobal>
</statOffsets>
<vomitMtbDays>0.05</vomitMtbDays>
<vomitMtbDays>0.4</vomitMtbDays>
<hungerRateFactorOffset>0.1</hungerRateFactorOffset>
<restFallFactorOffset>0.35</restFallFactorOffset>
</li>
@ -163,4 +163,4 @@
<isBad>false</isBad>
</HediffDef>
</Defs>
</Defs>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

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

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

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

View File

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

View File

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

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