+
+ 0.0
+ 2~4
+ 28~44
+
\ No newline at end of file
diff --git a/Common/Defs/Xenotypes/Succubus.xml b/Common/Defs/Xenotypes/Succubus.xml
deleted file mode 100644
index b3967c6..0000000
--- a/Common/Defs/Xenotypes/Succubus.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
- rjw_genes_succubus
-
- Succubi are strongly enhanced xenohumans. Powered by archites, their abilities go far beyond normal genetic enhancements. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.
- Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this.
- UI/Icons/Xenotypes/Sanguophage
- PawnBecameSanguophage
- 0.5
- 0.1~140
- 1
- -1000
- 0.005
- true
-
- 0.02
- 0.02
- 0.02
- 0.02
- 0.02
- 0.02
-
-
-
rjw_genes_bisexual
-
rjw_genes_hypersexual
-
rjw_genes_female_only
-
rjw_genes_lifeforce
-
rjw_genes_lifeforce_drain
-
rjw_genes_vaginal_absorber
-
rjw_genes_anal_absorber
-
-
rjw_genes_paralysingkiss
-
rjw_genes_seduce
-
rjw_genes_elasticity
-
rjw_genes_succubus_wings
-
rjw_genes_succubus_tail
-
rjw_genes_aphrodisiac_pheromones
-
-
Beauty_Pretty
-
MoveSpeed_Quick
-
Robust
-
UVSensitivity_Intense
-
AptitudeStrong_Social
-
Ears_Pointed
-
Headbone_MiniHorns
-
Skin_Purple
-
-
-
-
\ No newline at end of file
diff --git a/Common/Defs/Xenotypes/Xenotype_Lifeforce.xml b/Common/Defs/Xenotypes/Xenotype_Lifeforce.xml
new file mode 100644
index 0000000..b1cba40
--- /dev/null
+++ b/Common/Defs/Xenotypes/Xenotype_Lifeforce.xml
@@ -0,0 +1,96 @@
+
+
+
+
+ rjw_genes_succubus
+
+ Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.
+ Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this.
+ UI/Icons/Xenotypes/Sanguophage
+ PawnBecameSanguophage
+ 0.5
+ 0.1~140
+ 1
+ -1000
+ 0.005
+ true
+
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+
+
+
rjw_genes_bisexual
+
rjw_genes_hypersexual
+
rjw_genes_female_only
+
rjw_genes_lifeforce
+
rjw_genes_lifeforce_drain
+
rjw_genes_vaginal_absorber
+
rjw_genes_anal_absorber
+
+
rjw_genes_paralysingkiss
+
rjw_genes_seduce
+
rjw_genes_elasticity
+
rjw_genes_succubus_wings
+
rjw_genes_succubus_tail
+
rjw_genes_aphrodisiac_pheromones
+
+
Beauty_Pretty
+
MoveSpeed_Quick
+
Robust
+
UVSensitivity_Intense
+
AptitudeStrong_Social
+
Ears_Pointed
+
Headbone_MiniHorns
+
Skin_Purple
+
+
+
+
+ rjw_genes_incubus
+
+ Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.
+ Incubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this.
+ UI/Icons/Xenotypes/Sanguophage
+ PawnBecameSanguophage
+ 0.5
+ 0.1~140
+ 1
+ -1000
+ 0.005
+ true
+
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+ 0.02
+
+
+
rjw_genes_hypersexual
+
rjw_genes_male_only
+
rjw_genes_lifeforce
+
rjw_genes_lifeforce_drain
+
rjw_genes_drainer
+
+
rjw_genes_seduce
+
rjw_genes_succubus_wings
+
rjw_genes_succubus_tail
+
rjw_genes_aphrodisiac_pheromones
+
+
Beauty_Pretty
+
MoveSpeed_Quick
+
Robust
+
UVSensitivity_Intense
+
AptitudeStrong_Intellectual
+
Ears_Pointed
+
Headbone_MiniHorns
+
Skin_Purple
+
+
+
+
\ No newline at end of file
diff --git a/Common/Languages/English/Keyed/Lifeforce.xml b/Common/Languages/English/Keyed/Lifeforce.xml
index ddd1344..7f6c426 100644
--- a/Common/Languages/English/Keyed/Lifeforce.xml
+++ b/Common/Languages/English/Keyed/Lifeforce.xml
@@ -10,6 +10,6 @@
- The succubus has fed enough on your colonists and will now leave.
+ {0} has fed enough on your colonists and will now leave.
\ No newline at end of file
diff --git a/Source/First.cs b/Source/First.cs
index e322c58..101d3cc 100644
--- a/Source/First.cs
+++ b/Source/First.cs
@@ -23,7 +23,7 @@ namespace RJW_Genes
//Summary//
//Adds our own partpreferences to rjw's list. Our partpreferences are under Interactions.GenesPartKindUsageRule
//
- private static void AddtoIPartPreferenceRule()
+ private static void InjectIntoRjwInteractionServices()
{
List partPreferenceRules = Unprivater.GetProtectedValue>("_partKindUsageRules", typeof(PartPreferenceDetectorService));
partPreferenceRules.Add(new Interactions.GenesPartKindUsageRule());
diff --git a/Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs b/Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs
index 82522fb..3b9776b 100644
--- a/Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs
+++ b/Source/Genes/Life_Force/IncidentWorker_SuccubusDreamVisit.cs
@@ -24,6 +24,11 @@ namespace RJW_Genes
{
return false;
}
+ if (!RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi && !RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi)
+ {
+ return false;
+ }
+
foreach (Pawn pawn in map.mapPawns.FreeColonistsAndPrisonersSpawned)
{
if (pawn.jobs.curDriver.asleep && xxx.need_some_sex(pawn) > 1f)
@@ -38,46 +43,68 @@ namespace RJW_Genes
protected override bool TryExecuteWorker(IncidentParms parms)
{
Map map = (Map)parms.target;
- Pawn victim = ValidVictims(map).RandomElement();
- if (victim == null)
+ List < Pawn > victims = ValidVictims(map).ToList();
+ if(victims.NullOrEmpty())
{
return false;
}
- IntVec3 loc = victim.Position;
Faction faction;
if (!this.TryFindFormerFaction(out faction))
{
return false;
}
-
- //Spawn succubus at pawn
- Pawn succubus = PawnGenerator.GeneratePawn(new PawnGenerationRequest(PawnKindDef.Named("rjw_genes_succubus"), faction, PawnGenerationContext.NonPlayer, -1,
- false, false, false, true, false, 1f, false, true, false, true, true, false, false, false, false, 0f, 0f, null, 1f, null, null,
- null, null, null, null, null, null, null, null, null, null, false, false, false, false, null, null, null, null, null, 0f,
- DevelopmentalStage.Adult, null, null, null, false));
- succubus.SetFaction(null, null);
- GenSpawn.Spawn(succubus, loc, map, WipeMode.Vanish);
-
- //Set succubus behaviour
- List list = new List {succubus};
- LordMaker.MakeNewLord(parms.faction, this.CreateLordJob(parms, succubus, victim), map, list);
-
- //Make succubus rape victim.
- if (RJWSettings.rape_enabled)
+ int pawn_amount = RJW_GenesSettings.rjw_genes_sexdemon_visit_groups ? Rand.Range(1, victims.Count) : 1;
+ List new_sexdemons = new List();
+ for (int i = 0; i < pawn_amount; i++)
{
- succubus.pather.StopDead();
- succubus.jobs.StopAll();
- Job newJob = JobMaker.MakeJob(xxx.RapeRandom, victim);
- succubus.jobs.StartJob(newJob, JobCondition.InterruptForced, null, false, true, null, null, false, false, null, false, true);
- }
+ Pawn victim = victims.RandomElement();
+ IntVec3 loc = victim.Position;
- //Broken for now
- //Sends letter
- //string value = succubus.DevelopmentalStage.Child() ? "FeralChild".Translate().ToString() : succubus.KindLabel;
- //TaggedString value2 = succubus.DevelopmentalStage.Child() ? "Child".Translate() : "Person".Translate();
- //TaggedString baseLetterLabel = this.def.letterLabel.Formatted(value).CapitalizeFirst();
- //TaggedString baseLetterText = this.def.letterText.Formatted(succubus.NameShortColored, value2, succubus.Named("PAWN")).AdjustedFor(succubus, "PAWN", true).CapitalizeFirst();
- //PawnRelationUtility.TryAppendRelationsWithColonistsInfo(ref baseLetterText, ref baseLetterLabel, succubus);
+ PawnKindDef pawnKindDef;
+ Gender gender;
+ if (victim.gender == Gender.Male || !RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi)
+ {
+
+ }
+ if ((Rand.Bool && RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi) || !RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi)
+ {
+ pawnKindDef = PawnKindDef.Named("rjw_genes_succubus");
+ gender = Gender.Female;
+ }
+ else
+ {
+ pawnKindDef = PawnKindDef.Named("rjw_genes_incubus");
+ gender = Gender.Male;
+ }
+
+ //Spawn succubus at pawn
+ Pawn sexdemon = PawnGenerator.GeneratePawn(new PawnGenerationRequest(pawnKindDef, faction, PawnGenerationContext.NonPlayer, -1,
+ false, false, false, true, false, 1f, false, true, false, true, true, false, false, false, false, 0f, 0f, null, 1f, null, null,
+ null, null, null, null, null, gender, null, null, null, null, false, false, false, false, null, null, null, null, null, 0f,
+ DevelopmentalStage.Adult, null, null, null, false));
+ sexdemon.SetFaction(null, null);
+ GenSpawn.Spawn(sexdemon, loc, map, WipeMode.Vanish);
+ List sexdemons = new List { sexdemon };
+ new_sexdemons.Add(sexdemon);
+
+
+ LordMaker.MakeNewLord(Faction.OfPlayer, this.CreateLordJob(parms, sexdemon, victim), map, sexdemons);
+
+ //Make succubus rape victim.
+ if (RJWSettings.rape_enabled)
+ {
+ //follow rjw rules
+ if (SexAppraiser.would_fuck(sexdemon,victim) > 0f)
+ {
+ sexdemon.pather.StopDead();
+ sexdemon.jobs.StopAll();
+ Job newJob = JobMaker.MakeJob(xxx.RapeRandom, victim);
+ sexdemon.jobs.StartJob(newJob, JobCondition.InterruptForced, null, false, true, null, null, false, false, null, false, true);
+ }
+
+ }
+ }
+ Find.LetterStack.ReceiveLetter("RJW_nymph_incident_join_title".Translate(), "RJW_nymph_incident_join_description".Translate(), LetterDefOf.PositiveEvent, new_sexdemons, null, null, null, null);
//base.SendStandardLetter(baseLetterLabel, baseLetterText, this.def.letterDef, parms, succubus, Array.Empty());
return true;
diff --git a/Source/Genes/Life_Force/JobDrivers/JobDriver_Flirt.cs b/Source/Genes/Life_Force/JobDrivers/JobDriver_Flirt.cs
index ad61bb0..337a9b2 100644
--- a/Source/Genes/Life_Force/JobDrivers/JobDriver_Flirt.cs
+++ b/Source/Genes/Life_Force/JobDrivers/JobDriver_Flirt.cs
@@ -34,8 +34,9 @@ namespace RJW_Genes
toil.socialMode = RandomSocialMode.Off;
yield return toil;
yield return this.InteractToil();
- Toil toil1 = Toils_General.Wait(600, TargetIndex.A);
+ Toil toil1 = Toils_General.Wait(300, TargetIndex.A);
toil1.socialMode = RandomSocialMode.Off;
+ yield return toil1;
yield break;
}
private Toil InteractToil()
diff --git a/Source/Genes/Life_Force/JobDrivers/JobDriver_SexOnSpotReceiver.cs b/Source/Genes/Life_Force/JobDrivers/JobDriver_SexOnSpotReceiver.cs
index 6399e43..135b231 100644
--- a/Source/Genes/Life_Force/JobDrivers/JobDriver_SexOnSpotReceiver.cs
+++ b/Source/Genes/Life_Force/JobDrivers/JobDriver_SexOnSpotReceiver.cs
@@ -41,7 +41,6 @@ namespace RJW_Genes
yield break;
}
- // Token: 0x06000420 RID: 1056 RVA: 0x00024190 File Offset: 0x00022390
private Toil MakeSexToil()
{
Toil toil = new Toil();
diff --git a/Source/Genes/Life_Force/JobGiver_Flirt.cs b/Source/Genes/Life_Force/JobGiver_Flirt.cs
index ac08c6b..a629e0e 100644
--- a/Source/Genes/Life_Force/JobGiver_Flirt.cs
+++ b/Source/Genes/Life_Force/JobGiver_Flirt.cs
@@ -14,7 +14,7 @@ namespace RJW_Genes
protected override Job TryGiveJob(Pawn pawn)
{
Pawn target = pawn.mindState.duty.focus.Pawn;
- if (pawn.CanReach(target, PathEndMode.InteractionCell, Danger.Deadly))
+ if (pawn.CanReach(target, PathEndMode.InteractionCell, Danger.Deadly) && !target.jobs.curDriver.asleep)
{
return JobMaker.MakeJob(JobDefOf.rjw_genes_flirt, target);
}
diff --git a/Source/Genes/Life_Force/JobGiver_TryQuickieWith.cs b/Source/Genes/Life_Force/JobGiver_TryQuickieWith.cs
index 854d906..22fcb01 100644
--- a/Source/Genes/Life_Force/JobGiver_TryQuickieWith.cs
+++ b/Source/Genes/Life_Force/JobGiver_TryQuickieWith.cs
@@ -4,9 +4,12 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using rjw;
+using RJWSexperience;
using RimWorld;
using Verse;
using Verse.AI;
+using Verse.AI.Group;
+using UnityEngine;
namespace RJW_Genes
{
public class JobGiver_TryQuickieWith : ThinkNode_JobGiver
@@ -20,13 +23,29 @@ namespace RJW_Genes
//can reserve eachother
if (pawn.CanReserveAndReach(target, PathEndMode.InteractionCell, Danger.Some) && target.CanReserve(pawn, 1, 0, null, false))
{
- //target is not busy
+ //Dont interrupt player
if (!(((jobs != null) ? jobs.curJob : null) != null && jobs.curJob.playerForced))
{
float willingness = TargetWillingness(pawn, target);
if (Rand.Chance(willingness))
{
- return JobMaker.MakeJob(xxx.quick_sex, target);
+ Job newJob =JobMaker.MakeJob(xxx.quick_sex, target);
+
+ //Pawn joins faction when lordJob ends instead of leaving
+ //in the future determine the chance of this another way
+ if (Rand.Chance(JoinChance(pawn, target)))
+ {
+ Lord lord = pawn.GetLord();
+ LordJob_SuccubusVisit lordJob = lord == null? null : lord.LordJob as LordJob_SuccubusVisit;
+ if (lordJob != null)
+ {
+ if (!lordJob.colonyJoiners.Contains(pawn))
+ {
+ lordJob.colonyJoiners.Add(pawn);
+ }
+ }
+ }
+ return newJob;
}
else
{
@@ -40,7 +59,7 @@ namespace RJW_Genes
{
if (RJWSettings.DebugLogJoinInBed) //change this when we have our own settigns
{
- ModLog.Message(string.Format(" find_pawn_to_fuck({0}): lover has important job ({1}), skipping", pawn_name, target.jobs.curJob.def));
+ //ModLog.Message(string.Format(" find_pawn_to_fuck({0}): lover has important job ({1}), skipping", pawn_name, target.jobs.curJob.def));
}
}
}
@@ -80,7 +99,7 @@ namespace RJW_Genes
{
ModLog.Message(" find_partner(" + pawn_name + "): I interested in banging but that's cheating");
}
- //Succubus has a small chance to seduce even if target is in relationship, maybe setting like succubus can homewreck
+ //Succubus has a small chance to seduce even if target is in relationship
willingness *= 0.1f;
}
else
@@ -95,5 +114,75 @@ namespace RJW_Genes
}
return willingness;
}
+
+ public static float JoinChance(Pawn pawn ,Pawn target)
+ {
+
+ float chance = 0.1f;
+
+ //Sex satisfaction, how good the target is at sex
+ chance *= xxx.get_sex_satisfaction(target);
+
+ //Succubus mood
+ if (pawn.needs != null && pawn.needs.mood != null)
+ {
+ chance *= pawn.needs.mood.CurLevelPercentage + 0.5f;
+ }
+
+ //Size of genitals
+ bool size_matters = true; //To be placed in modsettings
+ if (size_matters)
+ {
+ //The larger the penis to greater the chance
+ if (RelationsUtility.AttractedToGender(pawn, Gender.Male))
+ {
+ chance *= GetGenitalSize(target, true) + 0.5f;
+ }
+
+ //The tighter the vagine the greater the chance, a size above 1 is considered as 1
+ if (RelationsUtility.AttractedToGender(pawn, Gender.Female))
+ {
+ chance *= 1f - Mathf.Min(GetGenitalSize(target, false),1f) + 0.5f;
+ }
+ }
+
+ //Sex ability from sexperience
+ if (ModsConfig.IsActive("rjw.sexperience"))
+ {
+ chance *= RJWSexperience.PawnExtensions.GetSexStat(pawn);
+ }
+ return Mathf.Max(chance,0f);
+ }
+
+ //Gets the size of the largest penis or the tightest vagina
+ public static float GetGenitalSize(Pawn pawn, bool penis_else_vagina)
+ {
+ List genitals = rjw.PawnExtensions.GetGenitalsList(pawn);
+ if(!genitals.NullOrEmpty())
+ {
+ if (penis_else_vagina)
+ {
+ List penises = genitals.Where(genital => Genital_Helper.is_penis(genital)).ToList();
+ {
+ if (!penises.NullOrEmpty())
+ {
+ return penises.Max(genital => genital.Severity);
+ }
+ }
+ }
+ else
+ {
+ List vaginas = genitals.Where(genital => Genital_Helper.is_vagina(genital)).ToList();
+ {
+ if (!vaginas.NullOrEmpty())
+ {
+ return vaginas.Min(genital => genital.Severity);
+ }
+ }
+ }
+ }
+ return 0f;
+
+ }
}
}
diff --git a/Source/Genes/Life_Force/LordJob_SuccubusVisit.cs b/Source/Genes/Life_Force/LordJob_SuccubusVisit.cs
index 8991fc5..388a133 100644
--- a/Source/Genes/Life_Force/LordJob_SuccubusVisit.cs
+++ b/Source/Genes/Life_Force/LordJob_SuccubusVisit.cs
@@ -7,6 +7,7 @@ using Verse;
using Verse.AI;
using Verse.AI.Group;
using RimWorld;
+using rjw;
namespace RJW_Genes
{
//Based on LordJob_VisitColony
@@ -52,8 +53,7 @@ namespace RJW_Genes
tickLimit = Rand.Range(60000, 180000); //~1-3 days
}
transition1.AddTrigger(new Trigger_TicksPassed(tickLimit));
-
- transition1.AddPreAction(new TransitionAction_Message("SuccubusLeaving".Translate(), null, 1f));
+ transition1.AddPreAction(new TransitionAction_Custom(new Action(this.SuccubiLeave))); //Join or leave colony
stateGraph.AddTransition(transition1);
//If they become hostile
@@ -84,7 +84,26 @@ namespace RJW_Genes
Scribe_Values.Look(ref this.durationTicks, "durationTicks", null, false);
Scribe_References.Look(ref this.target, "target", false);
}
+
+ public void SuccubiLeave()
+ {
+ foreach (Pawn pawn in this.lord.ownedPawns)
+ {
+ if(colonyJoiners.Contains(pawn))
+ {
+ RecruitUtility.Recruit(pawn, Faction.OfPlayer);
+ Find.LetterStack.ReceiveLetter("Guest Joins", string.Format("{0} enjoys it here and has decided to stay", xxx.get_pawnname(pawn)), LetterDefOf.PositiveEvent, pawn, null, null, null, null);
+ }
+ else
+ {
+ Messages.Message("SuccubusLeaving".Translate(xxx.get_pawnname(pawn)), pawn, MessageTypeDefOf.NeutralEvent, true);
+ }
+ }
+
+ }
+
public Pawn target;
private int? durationTicks;
+ public List colonyJoiners = new List();
}
}
diff --git a/Source/RJW_GenesSettings.cs b/Source/RJW_GenesSettings.cs
new file mode 100644
index 0000000..57e7249
--- /dev/null
+++ b/Source/RJW_GenesSettings.cs
@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+using UnityEngine;
+namespace RJW_Genes
+{
+ public class RJW_GenesSettings : ModSettings
+ {
+ public static void DoWindowContents(Rect inRect)
+ {
+ Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
+ Rect rect = new Rect(0f, 0f, inRect.width - 16f, inRect.height + 300f);
+ //Widgets.BeginScrollView(outRect, ref RJWSettings.scrollPosition, rect, true);
+ Listing_Standard listing_Standard = new Listing_Standard();
+ listing_Standard.maxOneColumn = true;
+ listing_Standard.ColumnWidth = rect.width / 2.05f;
+ listing_Standard.Begin(rect);
+ listing_Standard.Gap(30);
+ 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.CheckboxLabeled("sexfrenzy", ref sexfrenzy, "disable the effects", 0f, 1f);
+ listing_Standard.Gap(10f);
+ listing_Standard.End();
+ }
+ public override void ExposeData()
+ {
+ base.ExposeData();
+ Scribe_Values.Look(ref RJW_GenesSettings.rjw_genes_sexdemon_visit, "rjw_genes_sexdemon_visit", RJW_GenesSettings.rjw_genes_sexdemon_visit, true);
+ Scribe_Values.Look(ref RJW_GenesSettings.rjw_genes_sexdemon_join_size_matters, "rjw_genes_sexdemon_join_size_matters", RJW_GenesSettings.rjw_genes_sexdemon_join_size_matters, true);
+ Scribe_Values.Look(ref RJW_GenesSettings.rjw_genes_sexdemon_visit_groups, "rjw_genes_sexdemon_groups", RJW_GenesSettings.rjw_genes_sexdemon_visit_groups, true);
+ Scribe_Values.Look(ref RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi, "rjw_genes_sexdemon_succubi", RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi, true);
+ Scribe_Values.Look(ref RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi, "rjw_genes_sexdemon_incubi", RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi, true);
+ }
+
+ 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;
+
+ }
+}
diff --git a/Source/RJW_GenesSettingsControllercs.cs b/Source/RJW_GenesSettingsControllercs.cs
new file mode 100644
index 0000000..a1f0fef
--- /dev/null
+++ b/Source/RJW_GenesSettingsControllercs.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Verse;
+using UnityEngine;
+namespace RJW_Genes
+{
+ public class RJW_GenesSettingsControllercs : Mod
+ {
+ public RJW_GenesSettingsControllercs(ModContentPack content) : base(content)
+ {
+ base.GetSettings();
+ }
+
+ public override string SettingsCategory()
+ {
+ return "RJW Genes";
+ }
+ public override void DoSettingsWindowContents(Rect inRect)
+ {
+ RJW_GenesSettings.DoWindowContents(inRect);
+ }
+ }
+}
diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj
index f4ab208..44d8252 100644
--- a/Source/Rjw-Genes.csproj
+++ b/Source/Rjw-Genes.csproj
@@ -38,6 +38,10 @@
..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-master\1.4\Assemblies\RJW.dllFalse
+
+ ..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\RJW-Sexperience-master\1.4\Assemblies\RJWSexperience.dll
+ False
+
@@ -175,6 +179,8 @@
+
+