Moved the GenderFluid Logic to be more generic

This commit is contained in:
Vegapnk 2024-07-03 11:41:24 +02:00
parent 38f2470b90
commit b56c0105a6
7 changed files with 28 additions and 31 deletions

View file

@ -65,10 +65,10 @@
<backgroundPathEndogenes>Genes/Icons/RJW_Genes_Endogene_Background</backgroundPathEndogenes>
<backgroundPathXenogenes>Genes/Icons/RJW_Genes_Xenogene_Background</backgroundPathXenogenes>
</li>
<li Class="RJW_Genes.GenderFluidExtension">
<li Class="RJW_Genes.TickBasedChanceExtension">
<!-- 120k = 2 days -->
<changeInterval>120000</changeInterval>
<changeChance>0.25</changeChance>
<tickInterval>120000</tickInterval>
<eventChance>0.25</eventChance>
</li>
</modExtensions>
</GeneDef>

View file

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
namespace RJW_Genes
{
public class TickBasedChanceExtension : TickIntervalExtension
{
/// <summary>
/// Set to 1 for "always", set to 0 for "never".
/// Everything else is a bit statistics, but e.g. when set to .5 the chances grow per day from [50%, 75%, 82.25%, ...]
/// </summary>
public float eventChance;
}
}

View file

@ -1,20 +0,0 @@
using Verse;
namespace RJW_Genes
{
public class GenderFluidExtension : DefModExtension
{
/// <summary>
/// Number of ticks until the change can be triggered.
/// Just being "triggered" does not mean changing, see the changeChance below.
/// </summary>
public int changeInterval;
/// <summary>
/// How high is the chance to change gender?
/// Set to 1 for "always", set to 0 for "never".
/// Everything else is a bit statistics, but e.g. when set to .5 the chances grow per day from [50%, 75%, 82.25%, ...]
/// </summary>
public float changeChance;
}
}

View file

@ -39,9 +39,9 @@ namespace RJW_Genes
private bool sexChangeWasBlocked = false;
public Gene_GenderFluid() : base() {
GenderFluidExtension genderFluidExt = GeneDefOf.rjw_genes_gender_fluid.GetModExtension<GenderFluidExtension>();
change_interval = genderFluidExt?.changeInterval ?? CHANGE_INTERVAL_FALLBACK;
switch_chance = genderFluidExt?.changeChance ?? SWITCH_CHANCE_FALLBACK;
TickBasedChanceExtension tickbasedChanceExt = GeneDefOf.rjw_genes_gender_fluid.GetModExtension<TickBasedChanceExtension>();
change_interval = tickbasedChanceExt?.tickInterval ?? CHANGE_INTERVAL_FALLBACK;
switch_chance = tickbasedChanceExt?.eventChance ?? SWITCH_CHANCE_FALLBACK;
}
public override void Tick()

View file

@ -58,6 +58,7 @@
<Compile Include="Animal_Inheritance\Defs\BestialityGeneInheritanceDef.cs" />
<Compile Include="Common\Defs\DistanceExtension.cs" />
<Compile Include="Common\Defs\ModExtensionHelper.cs" />
<Compile Include="Common\Defs\TickBasedChanceExtension.cs" />
<Compile Include="Common\Either.cs" />
<Compile Include="Common\Helpers\LaborState.cs" />
<Compile Include="Common\Helpers\MapUtility.cs" />
@ -88,8 +89,7 @@
<Compile Include="Genes\Breeding\Patches\PatchMechBirth.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_Femboy.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_UdderBreasts.cs" />
<Compile Include="Genes\Gender\Defs\GenderFluidExtension.cs" />
<Compile Include="Genes\Gender\Gene_GenderFluid.cs" />
<Compile Include="Genes\Gender\Genes\Gene_GenderFluid.cs" />
<Compile Include="Genes\GenitaliaSize\Gene_EvergrowingGenitalia.cs" />
<Compile Include="Genes\Cum\CumUtility.cs" />
<Compile Include="Genes\Cum\Gene_VeryMuchCum.cs" />
@ -109,8 +109,8 @@
<Compile Include="Genes\ExtraGenitalia\Gene_NoPenis.cs" />
<Compile Include="Genes\ExtraGenitalia\Gene_ExtraPenis.cs" />
<Compile Include="Genes\Gender\GenderUtility.cs" />
<Compile Include="Genes\Gender\Gene_FemaleOnly.cs" />
<Compile Include="Genes\Gender\Gene_MaleOnly.cs" />
<Compile Include="Genes\Gender\Genes\Gene_FemaleOnly.cs" />
<Compile Include="Genes\Gender\Genes\Gene_MaleOnly.cs" />
<Compile Include="Genes\GeneUtility.cs" />
<Compile Include="Genes\GenitaliaSize\Gene_BigBreasts.cs" />
<Compile Include="Genes\GenitaliaSize\Gene_GenitaliaResizingGene.cs" />
@ -241,7 +241,6 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Genes\Diseases\Genes\" />
<Folder Include="Genes\Gender\Patches\" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />