resizing age slider

This commit is contained in:
Jaaldabaoth 2024-05-28 12:16:10 +02:00
parent 35fbe09ab7
commit 60eef21c0e
13 changed files with 17 additions and 35 deletions

Binary file not shown.

View file

@ -17,10 +17,7 @@ namespace RJW_Genes
public abstract class Gene_GenitaliaResizingGene : RJW_Gene public abstract class Gene_GenitaliaResizingGene : RJW_Gene
{ {
/// <summary>
/// The age (in years) at which the Pawns Genes will take effect, resizing their genitalia.
/// </summary>
public const int RESIZING_AGE = 20;
/// <summary> /// <summary>
/// Whether or not the gene was already applied. /// Whether or not the gene was already applied.
@ -33,7 +30,7 @@ namespace RJW_Genes
public override void PostMake() public override void PostMake()
{ {
base.PostMake(); base.PostMake();
if (pawn.ageTracker.AgeBiologicalYears >= RESIZING_AGE) if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
{ {
Resize(); Resize();
ResizingWasApplied = true; ResizingWasApplied = true;
@ -43,7 +40,7 @@ namespace RJW_Genes
public override void PostAdd() public override void PostAdd()
{ {
base.PostAdd(); base.PostAdd();
if (pawn.ageTracker.AgeBiologicalYears >= RESIZING_AGE) if (pawn.ageTracker.AgeBiologicalYears >= RJW_Genes_Settings.rjw_genes_resizing_age)
{ {
Resize(); Resize();
ResizingWasApplied = true; ResizingWasApplied = true;

View file

@ -16,7 +16,7 @@ namespace RJW_Genes
static void Postfix(Pawn ___pawn, int birthdayAge) static void Postfix(Pawn ___pawn, int birthdayAge)
{ {
if (birthdayAge >= Gene_GenitaliaResizingGene.RESIZING_AGE) if (birthdayAge >= RJW_Genes_Settings.rjw_genes_resizing_age)
{ {
foreach(Gene_GenitaliaResizingGene gene in GeneUtility.GetGenitaliaResizingGenes(___pawn)) foreach(Gene_GenitaliaResizingGene gene in GeneUtility.GetGenitaliaResizingGenes(___pawn))
{ {

BIN
Source/RJW.dll Normal file

Binary file not shown.

BIN
Source/RJWSexperience.dll Normal file

Binary file not shown.

View file

@ -158,6 +158,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="GeneDefs_GenitaliaTypeEndogenes.xml" /> <Content Include="GeneDefs_GenitaliaTypeEndogenes.xml" />
<Content Include="RJW.dll" />
<Content Include="RJWSexperience.dll" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="0Harmony, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="0Harmony, Version=2.2.2.0, Culture=neutral, processorArchitecture=MSIL">

View file

@ -1,6 +1,7 @@
using System; using System;
using Verse; using Verse;
using UnityEngine; using UnityEngine;
using RimWorld;
namespace RJW_Genes namespace RJW_Genes
{ {
@ -16,25 +17,15 @@ namespace RJW_Genes
listing_Standard.maxOneColumn = true; listing_Standard.maxOneColumn = true;
listing_Standard.ColumnWidth = rect.width / 2.05f; listing_Standard.ColumnWidth = rect.width / 2.05f;
listing_Standard.Begin(rect); listing_Standard.Begin(rect);
listing_Standard.Gap(24f); listing_Standard.Gap(24f);
listing_Standard.Label("Genitalia resizing age" + ": " +
Math.Round((double)(RJW_Genes_Settings.rjw_genes_resizing_age), 0).ToString() , -1f, "years.");
RJW_Genes_Settings.rjw_genes_resizing_age = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_resizing_age, 18f, 100f);
listing_Standard.Label("Fertilin-Gain from Animals" + ": " + listing_Standard.Label("Fertilin-Gain from Animals" + ": " +
Math.Round((double)(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor * 100f), 0).ToString() + "%", -1f, "of fertilin gained (compared to human-baseline)."); Math.Round((double)(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor * 100f), 0).ToString() + "%", -1f, "of fertilin gained (compared to human-baseline).");
RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, 0f, 3f); RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor = listing_Standard.Slider(RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, 0f, 3f);
listing_Standard.Gap(5f);
listing_Standard.CheckboxLabeled("Sexdemon Visits", ref rjw_genes_sexdemon_visit, "If enabled, incubi and succubi can spawn in through an event.", 0f, 1f);
if (rjw_genes_sexdemon_visit)
{
listing_Standard.Gap(3f);
listing_Standard.CheckboxLabeled(" Size matters", ref rjw_genes_sexdemon_join_size_matters, "Incubi and succubi will consider size/tightness of partners genital for deciding if they want to join", 0f, 1f);
listing_Standard.Gap(3f);
listing_Standard.CheckboxLabeled(" Sexdemon groups", ref rjw_genes_sexdemon_visit_groups, "Multiple sexdemons can spawn during a event", 0f, 1f);
listing_Standard.Gap(3f);
listing_Standard.CheckboxLabeled(" Succubi", ref rjw_genes_sexdemon_visit_succubi, "Allow incubi to spawn through this even", 0f, 1f);
listing_Standard.Gap(3f);
listing_Standard.CheckboxLabeled(" Incubi", ref rjw_genes_sexdemon_visit_incubi, "Allow incubi to spawn through this even", 0f, 1f);
}
listing_Standard.Gap(5f); listing_Standard.Gap(5f);
listing_Standard.CheckboxLabeled("generous-donor cheatmode", ref rjw_genes_generous_donor_cheatmode, "When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it.", 0f, 1f); listing_Standard.CheckboxLabeled("generous-donor cheatmode", ref rjw_genes_generous_donor_cheatmode, "When enabled, pawns with the 'generous donor' are not drained and not fertilin exhausted. Hence they can fuel succubi and incubi non-stop. This makes them drastically easier to keep, and you should not do it.", 0f, 1f);
@ -47,27 +38,19 @@ namespace RJW_Genes
public override void ExposeData() public override void ExposeData()
{ {
base.ExposeData(); base.ExposeData();
Scribe_Values.Look<float>(ref RJW_Genes_Settings.rjw_genes_resizing_age, "rjw_genes_resizing_age", RJW_Genes_Settings.rjw_genes_resizing_age, true);
Scribe_Values.Look<float>(ref RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, "rjw_genes_fertilin_from_animals_factor", RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, true); Scribe_Values.Look<float>(ref RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, "rjw_genes_fertilin_from_animals_factor", RJW_Genes_Settings.rjw_genes_fertilin_from_animals_factor, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_detailed_debug, "rjw_genes_detailed_debug", RJW_Genes_Settings.rjw_genes_detailed_debug, true); Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_detailed_debug, "rjw_genes_detailed_debug", RJW_Genes_Settings.rjw_genes_detailed_debug, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_sexdemon_visit, "rjw_genes_sexdemon_visit", RJW_Genes_Settings.rjw_genes_sexdemon_visit, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_sexdemon_join_size_matters, "rjw_genes_sexdemon_join_size_matters", RJW_Genes_Settings.rjw_genes_sexdemon_join_size_matters, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_sexdemon_visit_groups, "rjw_genes_sexdemon_groups", RJW_Genes_Settings.rjw_genes_sexdemon_visit_groups, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_sexdemon_visit_succubi, "rjw_genes_sexdemon_succubi", RJW_Genes_Settings.rjw_genes_sexdemon_visit_succubi, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_sexdemon_visit_incubi, "rjw_genes_sexdemon_incubi", RJW_Genes_Settings.rjw_genes_sexdemon_visit_incubi, true);
Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, "rjw_genes_generous_donor_cheatmode", RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, true); Scribe_Values.Look<bool>(ref RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, "rjw_genes_generous_donor_cheatmode", RJW_Genes_Settings.rjw_genes_generous_donor_cheatmode, true);
} }
public static bool rjw_genes_detailed_debug = false; public static bool rjw_genes_detailed_debug = false;
public static float rjw_genes_fertilin_from_animals_factor = 0.1f; public static float rjw_genes_fertilin_from_animals_factor = 0.1f;
public static float rjw_genes_resizing_age = 20;
public static bool rjw_genes_sexdemon_visit = true;
public static bool rjw_genes_sexdemon_join_size_matters = true;
public static bool rjw_genes_sexdemon_visit_groups = true;
public static bool rjw_genes_sexdemon_visit_succubi = true;
public static bool rjw_genes_sexdemon_visit_incubi = true;
public static bool rjw_genes_generous_donor_cheatmode = false; public static bool rjw_genes_generous_donor_cheatmode = false;
} }