Merge branch 'vegapnk:main' into main
33
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:
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 8.9 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 21 KiB |
|
@ -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.
|
||||
|
|
15
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.
|
||||
## 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.
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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" />
|
||||
|
|
35
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
|
||||
|
||||
## 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
|