mirror of
https://github.com/vegapnk/RJW-Genes.git
synced 2024-08-15 00:23:31 +00:00
Improved SuccubusDreamVisitIncident, added settings & incubus xenotype draft
This commit is contained in:
parent
a72dc01d73
commit
71b89e43fa
20 changed files with 416 additions and 108 deletions
Binary file not shown.
|
@ -40,10 +40,9 @@
|
||||||
<subNodes>
|
<subNodes>
|
||||||
<!--If sexneed is low do rape or masturbate (like a nymph)-->
|
<!--If sexneed is low do rape or masturbate (like a nymph)-->
|
||||||
<li Class="rjw.ThinkNode_ConditionalFrustrated">
|
<li Class="rjw.ThinkNode_ConditionalFrustrated">
|
||||||
<subNodes>
|
<subNodes>
|
||||||
<li Class="rjw.JobGiver_ViolateCorpse" />
|
|
||||||
<li Class="rjw.JobGiver_RandomRape" />
|
<li Class="rjw.JobGiver_RandomRape" />
|
||||||
<li Class="rjw.JobGiver_Masturbate"/>
|
<li Class="rjw.JobGiver_Masturbate"/> <!--Won't work if fap everywhere is disabled-->
|
||||||
</subNodes>
|
</subNodes>
|
||||||
</li>
|
</li>
|
||||||
<!--Will sometimes try and hookup with target pawn-->
|
<!--Will sometimes try and hookup with target pawn-->
|
||||||
|
@ -56,12 +55,11 @@
|
||||||
</subNodes>
|
</subNodes>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<!--Flirt with target pawn and try hookup with them, increases sexneed in target pawn, maybe flirt has custom text-->
|
<!--Flirt with target pawn, decreasing their sexneed. Flirt has no custom text yet-->
|
||||||
<li Class="RJW_Genes.JobGiver_Flirt" />
|
<li Class="RJW_Genes.JobGiver_Flirt" />
|
||||||
|
|
||||||
<li Class="JobGiver_WanderNearDutyLocation">
|
<!--Just wander around if you can't flirt with anyone-->
|
||||||
<wanderRadius>5</wanderRadius>
|
<li Class="JobGiver_WanderAnywhere"/>
|
||||||
</li>
|
|
||||||
</subNodes>
|
</subNodes>
|
||||||
</thinkNode>
|
</thinkNode>
|
||||||
</DutyDef>
|
</DutyDef>
|
||||||
|
|
|
@ -25,6 +25,7 @@
|
||||||
<AbilityDef>rjw_genes_flight</AbilityDef>
|
<AbilityDef>rjw_genes_flight</AbilityDef>
|
||||||
</descriptionHyperlinks>
|
</descriptionHyperlinks>
|
||||||
<biostatCpx>1</biostatCpx>
|
<biostatCpx>1</biostatCpx>
|
||||||
|
<biostatMet>-1</biostatMet>
|
||||||
<graphicData>
|
<graphicData>
|
||||||
<graphicPath>Things/Pawn/Humanlike/BodyAttachments/rjw_genes_Succubus_Wings/Succubus_Wings</graphicPath>
|
<graphicPath>Things/Pawn/Humanlike/BodyAttachments/rjw_genes_Succubus_Wings/Succubus_Wings</graphicPath>
|
||||||
<colorType>Skin</colorType>
|
<colorType>Skin</colorType>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
<Defs>
|
<Defs>
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Tailjob</defName>
|
<defName>Rape_SuccubusTail_Tailjob</defName>
|
||||||
<label>succubustail tailjob</label>
|
<label>succubustail tailjob</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Vaginal</defName>
|
<defName>Rape_SuccubusTail_Vaginal</defName>
|
||||||
<label>succubustail vaginal</label>
|
<label>succubustail vaginal</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Anal</defName>
|
<defName>Rape_SuccubusTail_Anal</defName>
|
||||||
<label>succubustail anal</label>
|
<label>succubustail anal</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<!--Top of tail opens up and evelops the penis-->
|
<!--Top of tail opens up and evelops the penis-->
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Envelop</defName>
|
<defName>Rape_SuccubusTail_Envelop</defName>
|
||||||
<label>succubustail envelop</label>
|
<label>succubustail envelop</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
|
||||||
<Defs>
|
<Defs>
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Reverse_Tailjob</defName>
|
<defName>Rape_SuccubusTail_Reverse_Tailjob</defName>
|
||||||
<label>succubustail tailjob</label>
|
<label>succubustail tailjob</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Reverse_Vaginal</defName>
|
<defName>Rape_SuccubusTail_Reverse_Vaginal</defName>
|
||||||
<label>succubustail vaginal</label>
|
<label>succubustail vaginal</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Reverse_Anal</defName>
|
<defName>Rape_SuccubusTail_Reverse_Anal</defName>
|
||||||
<label>succubustail anal</label>
|
<label>succubustail anal</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
@ -119,7 +119,7 @@
|
||||||
</InteractionDef>
|
</InteractionDef>
|
||||||
|
|
||||||
<!--Top of tail opens up and evelops the penis-->
|
<!--Top of tail opens up and evelops the penis-->
|
||||||
<InteractionDef ParentName="RJW_InteractionDefBaseSex">
|
<InteractionDef ParentName="RJW_InteractionDefBaseRape">
|
||||||
<defName>Rape_SuccubusTail_Reverse_Envelop</defName>
|
<defName>Rape_SuccubusTail_Reverse_Envelop</defName>
|
||||||
<label>succubustail envelop</label>
|
<label>succubustail envelop</label>
|
||||||
<logRulesInitiator>
|
<logRulesInitiator>
|
||||||
|
|
|
@ -42,4 +42,46 @@
|
||||||
<initialWillRange>2~4</initialWillRange>
|
<initialWillRange>2~4</initialWillRange>
|
||||||
<initialResistanceRange>28~44</initialResistanceRange>
|
<initialResistanceRange>28~44</initialResistanceRange>
|
||||||
</PawnKindDef>
|
</PawnKindDef>
|
||||||
|
|
||||||
|
<PawnKindDef>
|
||||||
|
<defName>rjw_genes_incubus</defName>
|
||||||
|
<label>succubus</label>
|
||||||
|
<combatPower>50</combatPower>
|
||||||
|
<race>Human</race>
|
||||||
|
<xenotypeSet>
|
||||||
|
<xenotypeChances>
|
||||||
|
<rjw_genes_incubus>999</rjw_genes_incubus>
|
||||||
|
</xenotypeChances>
|
||||||
|
</xenotypeSet>
|
||||||
|
<acceptArrestChanceFactor>0.5</acceptArrestChanceFactor>
|
||||||
|
<useFactionXenotypes>false</useFactionXenotypes>
|
||||||
|
<minGenerationAge>18</minGenerationAge>
|
||||||
|
<maxGenerationAge>27</maxGenerationAge>
|
||||||
|
<itemQuality>Poor</itemQuality>
|
||||||
|
<backstoryCryptosleepCommonality>0.0</backstoryCryptosleepCommonality>
|
||||||
|
<isFighter>false</isFighter>
|
||||||
|
<gearHealthRange>
|
||||||
|
<min>0.3</min>
|
||||||
|
<max>0.9</max>
|
||||||
|
</gearHealthRange>
|
||||||
|
<apparelIgnoreSeasons>true</apparelIgnoreSeasons>
|
||||||
|
<apparelTags>
|
||||||
|
<li>Tribal</li>
|
||||||
|
</apparelTags>
|
||||||
|
<apparelMoney>
|
||||||
|
<min>0</min>
|
||||||
|
<max>0</max>
|
||||||
|
</apparelMoney>
|
||||||
|
<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
|
||||||
|
<techHediffsMoney>
|
||||||
|
<min>0</min>
|
||||||
|
<max>0</max>
|
||||||
|
</techHediffsMoney>
|
||||||
|
<techHediffsTags>
|
||||||
|
<li>Poor</li>
|
||||||
|
</techHediffsTags>
|
||||||
|
<techHediffsChance>0.0</techHediffsChance>
|
||||||
|
<initialWillRange>2~4</initialWillRange>
|
||||||
|
<initialResistanceRange>28~44</initialResistanceRange>
|
||||||
|
</PawnKindDef>
|
||||||
</Defs>
|
</Defs>
|
|
@ -1,52 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<Defs>
|
|
||||||
|
|
||||||
<XenotypeDef>
|
|
||||||
<defName>rjw_genes_succubus</defName>
|
|
||||||
<label>Succubus</label>
|
|
||||||
<description>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.</description>
|
|
||||||
<descriptionShort>Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. </descriptionShort>
|
|
||||||
<iconPath>UI/Icons/Xenotypes/Sanguophage</iconPath>
|
|
||||||
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
|
|
||||||
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
|
|
||||||
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
|
|
||||||
<combatPowerFactor>1</combatPowerFactor>
|
|
||||||
<displayPriority>-1000</displayPriority>
|
|
||||||
<factionlessGenerationWeight>0.005</factionlessGenerationWeight>
|
|
||||||
<inheritable>true</inheritable>
|
|
||||||
<doubleXenotypeChances>
|
|
||||||
<Pigskin>0.02</Pigskin>
|
|
||||||
<Impid>0.02</Impid>
|
|
||||||
<Yttakin>0.02</Yttakin>
|
|
||||||
<Neanderthal>0.02</Neanderthal>
|
|
||||||
<Waster>0.02</Waster>
|
|
||||||
<Dirtmole>0.02</Dirtmole>
|
|
||||||
</doubleXenotypeChances>
|
|
||||||
<genes>
|
|
||||||
<li>rjw_genes_bisexual</li>
|
|
||||||
<li>rjw_genes_hypersexual</li>
|
|
||||||
<li>rjw_genes_female_only</li>
|
|
||||||
<li>rjw_genes_lifeforce</li>
|
|
||||||
<li>rjw_genes_lifeforce_drain</li>
|
|
||||||
<li>rjw_genes_vaginal_absorber</li>
|
|
||||||
<li>rjw_genes_anal_absorber</li>
|
|
||||||
|
|
||||||
<li>rjw_genes_paralysingkiss</li>
|
|
||||||
<li>rjw_genes_seduce</li>
|
|
||||||
<li>rjw_genes_elasticity</li>
|
|
||||||
<li>rjw_genes_succubus_wings</li>
|
|
||||||
<li>rjw_genes_succubus_tail</li>
|
|
||||||
<li>rjw_genes_aphrodisiac_pheromones</li>
|
|
||||||
|
|
||||||
<li>Beauty_Pretty</li>
|
|
||||||
<li>MoveSpeed_Quick</li>
|
|
||||||
<li>Robust</li>
|
|
||||||
<li>UVSensitivity_Intense</li>
|
|
||||||
<li>AptitudeStrong_Social</li>
|
|
||||||
<li>Ears_Pointed</li>
|
|
||||||
<li>Headbone_MiniHorns</li>
|
|
||||||
<li>Skin_Purple</li>
|
|
||||||
</genes>
|
|
||||||
</XenotypeDef>
|
|
||||||
|
|
||||||
</Defs>
|
|
96
Common/Defs/Xenotypes/Xenotype_Lifeforce.xml
Normal file
96
Common/Defs/Xenotypes/Xenotype_Lifeforce.xml
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<Defs>
|
||||||
|
|
||||||
|
<XenotypeDef>
|
||||||
|
<defName>rjw_genes_succubus</defName>
|
||||||
|
<label>Succubus</label>
|
||||||
|
<description>Succubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.</description>
|
||||||
|
<descriptionShort>Succubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. </descriptionShort>
|
||||||
|
<iconPath>UI/Icons/Xenotypes/Sanguophage</iconPath>
|
||||||
|
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
|
||||||
|
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
|
||||||
|
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
|
||||||
|
<combatPowerFactor>1</combatPowerFactor>
|
||||||
|
<displayPriority>-1000</displayPriority>
|
||||||
|
<factionlessGenerationWeight>0.005</factionlessGenerationWeight>
|
||||||
|
<inheritable>true</inheritable>
|
||||||
|
<doubleXenotypeChances>
|
||||||
|
<Pigskin>0.02</Pigskin>
|
||||||
|
<Impid>0.02</Impid>
|
||||||
|
<Yttakin>0.02</Yttakin>
|
||||||
|
<Neanderthal>0.02</Neanderthal>
|
||||||
|
<Waster>0.02</Waster>
|
||||||
|
<Dirtmole>0.02</Dirtmole>
|
||||||
|
</doubleXenotypeChances>
|
||||||
|
<genes>
|
||||||
|
<li>rjw_genes_bisexual</li>
|
||||||
|
<li>rjw_genes_hypersexual</li>
|
||||||
|
<li>rjw_genes_female_only</li>
|
||||||
|
<li>rjw_genes_lifeforce</li>
|
||||||
|
<li>rjw_genes_lifeforce_drain</li>
|
||||||
|
<li>rjw_genes_vaginal_absorber</li>
|
||||||
|
<li>rjw_genes_anal_absorber</li>
|
||||||
|
|
||||||
|
<li>rjw_genes_paralysingkiss</li>
|
||||||
|
<li>rjw_genes_seduce</li>
|
||||||
|
<li>rjw_genes_elasticity</li>
|
||||||
|
<li>rjw_genes_succubus_wings</li>
|
||||||
|
<li>rjw_genes_succubus_tail</li>
|
||||||
|
<li>rjw_genes_aphrodisiac_pheromones</li>
|
||||||
|
|
||||||
|
<li>Beauty_Pretty</li>
|
||||||
|
<li>MoveSpeed_Quick</li>
|
||||||
|
<li>Robust</li>
|
||||||
|
<li>UVSensitivity_Intense</li>
|
||||||
|
<li>AptitudeStrong_Social</li>
|
||||||
|
<li>Ears_Pointed</li>
|
||||||
|
<li>Headbone_MiniHorns</li>
|
||||||
|
<li>Skin_Purple</li>
|
||||||
|
</genes>
|
||||||
|
</XenotypeDef>
|
||||||
|
|
||||||
|
<XenotypeDef>
|
||||||
|
<defName>rjw_genes_incubus</defName>
|
||||||
|
<label>Incubus</label>
|
||||||
|
<description>Incubi are strongly enhanced xenohumans. These overnaturally beautiful creatures strive parasitically on the Fertilin found in semen.</description>
|
||||||
|
<descriptionShort>Incubi are beautiful and extremely hungry Xenohumans. They strive on having sex and extracting their victims life-force through this. </descriptionShort>
|
||||||
|
<iconPath>UI/Icons/Xenotypes/Sanguophage</iconPath>
|
||||||
|
<soundDefOnImplant>PawnBecameSanguophage</soundDefOnImplant>
|
||||||
|
<generateWithXenogermReplicatingHediffChance>0.5</generateWithXenogermReplicatingHediffChance>
|
||||||
|
<xenogermReplicatingDurationLeftDaysRange>0.1~140</xenogermReplicatingDurationLeftDaysRange>
|
||||||
|
<combatPowerFactor>1</combatPowerFactor>
|
||||||
|
<displayPriority>-1000</displayPriority>
|
||||||
|
<factionlessGenerationWeight>0.005</factionlessGenerationWeight>
|
||||||
|
<inheritable>true</inheritable>
|
||||||
|
<doubleXenotypeChances>
|
||||||
|
<Pigskin>0.02</Pigskin>
|
||||||
|
<Impid>0.02</Impid>
|
||||||
|
<Yttakin>0.02</Yttakin>
|
||||||
|
<Neanderthal>0.02</Neanderthal>
|
||||||
|
<Waster>0.02</Waster>
|
||||||
|
<Dirtmole>0.02</Dirtmole>
|
||||||
|
</doubleXenotypeChances>
|
||||||
|
<genes>
|
||||||
|
<li>rjw_genes_hypersexual</li>
|
||||||
|
<li>rjw_genes_male_only</li>
|
||||||
|
<li>rjw_genes_lifeforce</li>
|
||||||
|
<li>rjw_genes_lifeforce_drain</li>
|
||||||
|
<li>rjw_genes_drainer</li>
|
||||||
|
|
||||||
|
<li>rjw_genes_seduce</li>
|
||||||
|
<li>rjw_genes_succubus_wings</li>
|
||||||
|
<li>rjw_genes_succubus_tail</li>
|
||||||
|
<li>rjw_genes_aphrodisiac_pheromones</li>
|
||||||
|
|
||||||
|
<li>Beauty_Pretty</li>
|
||||||
|
<li>MoveSpeed_Quick</li>
|
||||||
|
<li>Robust</li>
|
||||||
|
<li>UVSensitivity_Intense</li>
|
||||||
|
<li>AptitudeStrong_Intellectual</li>
|
||||||
|
<li>Ears_Pointed</li>
|
||||||
|
<li>Headbone_MiniHorns</li>
|
||||||
|
<li>Skin_Purple</li>
|
||||||
|
</genes>
|
||||||
|
</XenotypeDef>
|
||||||
|
|
||||||
|
</Defs>
|
|
@ -10,6 +10,6 @@
|
||||||
|
|
||||||
|
|
||||||
<!--Succubus Events-->
|
<!--Succubus Events-->
|
||||||
<SuccubusLeaving>The succubus has fed enough on your colonists and will now leave.</SuccubusLeaving>
|
<SuccubusLeaving>{0} has fed enough on your colonists and will now leave.</SuccubusLeaving>
|
||||||
|
|
||||||
</LanguageData>
|
</LanguageData>
|
|
@ -23,7 +23,7 @@ namespace RJW_Genes
|
||||||
//Summary//
|
//Summary//
|
||||||
//Adds our own partpreferences to rjw's list. Our partpreferences are under Interactions.GenesPartKindUsageRule
|
//Adds our own partpreferences to rjw's list. Our partpreferences are under Interactions.GenesPartKindUsageRule
|
||||||
//
|
//
|
||||||
private static void AddtoIPartPreferenceRule()
|
private static void InjectIntoRjwInteractionServices()
|
||||||
{
|
{
|
||||||
List<IPartPreferenceRule> partPreferenceRules = Unprivater.GetProtectedValue<List<IPartPreferenceRule>>("_partKindUsageRules", typeof(PartPreferenceDetectorService));
|
List<IPartPreferenceRule> partPreferenceRules = Unprivater.GetProtectedValue<List<IPartPreferenceRule>>("_partKindUsageRules", typeof(PartPreferenceDetectorService));
|
||||||
partPreferenceRules.Add(new Interactions.GenesPartKindUsageRule());
|
partPreferenceRules.Add(new Interactions.GenesPartKindUsageRule());
|
||||||
|
|
|
@ -24,6 +24,11 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
return false;
|
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)
|
foreach (Pawn pawn in map.mapPawns.FreeColonistsAndPrisonersSpawned)
|
||||||
{
|
{
|
||||||
if (pawn.jobs.curDriver.asleep && xxx.need_some_sex(pawn) > 1f)
|
if (pawn.jobs.curDriver.asleep && xxx.need_some_sex(pawn) > 1f)
|
||||||
|
@ -38,46 +43,68 @@ namespace RJW_Genes
|
||||||
protected override bool TryExecuteWorker(IncidentParms parms)
|
protected override bool TryExecuteWorker(IncidentParms parms)
|
||||||
{
|
{
|
||||||
Map map = (Map)parms.target;
|
Map map = (Map)parms.target;
|
||||||
Pawn victim = ValidVictims(map).RandomElement();
|
List < Pawn > victims = ValidVictims(map).ToList();
|
||||||
if (victim == null)
|
if(victims.NullOrEmpty())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
IntVec3 loc = victim.Position;
|
|
||||||
Faction faction;
|
Faction faction;
|
||||||
if (!this.TryFindFormerFaction(out faction))
|
if (!this.TryFindFormerFaction(out faction))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
int pawn_amount = RJW_GenesSettings.rjw_genes_sexdemon_visit_groups ? Rand.Range(1, victims.Count) : 1;
|
||||||
//Spawn succubus at pawn
|
List<Pawn> new_sexdemons = new List<Pawn>();
|
||||||
Pawn succubus = PawnGenerator.GeneratePawn(new PawnGenerationRequest(PawnKindDef.Named("rjw_genes_succubus"), faction, PawnGenerationContext.NonPlayer, -1,
|
for (int i = 0; i < pawn_amount; i++)
|
||||||
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<Pawn> list = new List<Pawn> {succubus};
|
|
||||||
LordMaker.MakeNewLord(parms.faction, this.CreateLordJob(parms, succubus, victim), map, list);
|
|
||||||
|
|
||||||
//Make succubus rape victim.
|
|
||||||
if (RJWSettings.rape_enabled)
|
|
||||||
{
|
{
|
||||||
succubus.pather.StopDead();
|
Pawn victim = victims.RandomElement();
|
||||||
succubus.jobs.StopAll();
|
IntVec3 loc = victim.Position;
|
||||||
Job newJob = JobMaker.MakeJob(xxx.RapeRandom, victim);
|
|
||||||
succubus.jobs.StartJob(newJob, JobCondition.InterruptForced, null, false, true, null, null, false, false, null, false, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Broken for now
|
PawnKindDef pawnKindDef;
|
||||||
//Sends letter
|
Gender gender;
|
||||||
//string value = succubus.DevelopmentalStage.Child() ? "FeralChild".Translate().ToString() : succubus.KindLabel;
|
if (victim.gender == Gender.Male || !RJW_GenesSettings.rjw_genes_sexdemon_visit_incubi)
|
||||||
//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);
|
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<Pawn> sexdemons = new List<Pawn> { 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<NamedArgument>());
|
//base.SendStandardLetter(baseLetterLabel, baseLetterText, this.def.letterDef, parms, succubus, Array.Empty<NamedArgument>());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -34,8 +34,9 @@ namespace RJW_Genes
|
||||||
toil.socialMode = RandomSocialMode.Off;
|
toil.socialMode = RandomSocialMode.Off;
|
||||||
yield return toil;
|
yield return toil;
|
||||||
yield return this.InteractToil();
|
yield return this.InteractToil();
|
||||||
Toil toil1 = Toils_General.Wait(600, TargetIndex.A);
|
Toil toil1 = Toils_General.Wait(300, TargetIndex.A);
|
||||||
toil1.socialMode = RandomSocialMode.Off;
|
toil1.socialMode = RandomSocialMode.Off;
|
||||||
|
yield return toil1;
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
private Toil InteractToil()
|
private Toil InteractToil()
|
||||||
|
|
|
@ -41,7 +41,6 @@ namespace RJW_Genes
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Token: 0x06000420 RID: 1056 RVA: 0x00024190 File Offset: 0x00022390
|
|
||||||
private Toil MakeSexToil()
|
private Toil MakeSexToil()
|
||||||
{
|
{
|
||||||
Toil toil = new Toil();
|
Toil toil = new Toil();
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace RJW_Genes
|
||||||
protected override Job TryGiveJob(Pawn pawn)
|
protected override Job TryGiveJob(Pawn pawn)
|
||||||
{
|
{
|
||||||
Pawn target = pawn.mindState.duty.focus.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);
|
return JobMaker.MakeJob(JobDefOf.rjw_genes_flirt, target);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,12 @@ using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using rjw;
|
using rjw;
|
||||||
|
using RJWSexperience;
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
using Verse;
|
using Verse;
|
||||||
using Verse.AI;
|
using Verse.AI;
|
||||||
|
using Verse.AI.Group;
|
||||||
|
using UnityEngine;
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
public class JobGiver_TryQuickieWith : ThinkNode_JobGiver
|
public class JobGiver_TryQuickieWith : ThinkNode_JobGiver
|
||||||
|
@ -20,13 +23,29 @@ namespace RJW_Genes
|
||||||
//can reserve eachother
|
//can reserve eachother
|
||||||
if (pawn.CanReserveAndReach(target, PathEndMode.InteractionCell, Danger.Some) && target.CanReserve(pawn, 1, 0, null, false))
|
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))
|
if (!(((jobs != null) ? jobs.curJob : null) != null && jobs.curJob.playerForced))
|
||||||
{
|
{
|
||||||
float willingness = TargetWillingness(pawn, target);
|
float willingness = TargetWillingness(pawn, target);
|
||||||
if (Rand.Chance(willingness))
|
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
|
else
|
||||||
{
|
{
|
||||||
|
@ -40,7 +59,7 @@ namespace RJW_Genes
|
||||||
{
|
{
|
||||||
if (RJWSettings.DebugLogJoinInBed) //change this when we have our own settigns
|
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");
|
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;
|
willingness *= 0.1f;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -95,5 +114,75 @@ namespace RJW_Genes
|
||||||
}
|
}
|
||||||
return willingness;
|
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<Hediff> genitals = rjw.PawnExtensions.GetGenitalsList(pawn);
|
||||||
|
if(!genitals.NullOrEmpty())
|
||||||
|
{
|
||||||
|
if (penis_else_vagina)
|
||||||
|
{
|
||||||
|
List<Hediff> penises = genitals.Where(genital => Genital_Helper.is_penis(genital)).ToList();
|
||||||
|
{
|
||||||
|
if (!penises.NullOrEmpty())
|
||||||
|
{
|
||||||
|
return penises.Max(genital => genital.Severity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
List<Hediff> vaginas = genitals.Where(genital => Genital_Helper.is_vagina(genital)).ToList();
|
||||||
|
{
|
||||||
|
if (!vaginas.NullOrEmpty())
|
||||||
|
{
|
||||||
|
return vaginas.Min(genital => genital.Severity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0f;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ using Verse;
|
||||||
using Verse.AI;
|
using Verse.AI;
|
||||||
using Verse.AI.Group;
|
using Verse.AI.Group;
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
namespace RJW_Genes
|
namespace RJW_Genes
|
||||||
{
|
{
|
||||||
//Based on LordJob_VisitColony
|
//Based on LordJob_VisitColony
|
||||||
|
@ -52,8 +53,7 @@ namespace RJW_Genes
|
||||||
tickLimit = Rand.Range(60000, 180000); //~1-3 days
|
tickLimit = Rand.Range(60000, 180000); //~1-3 days
|
||||||
}
|
}
|
||||||
transition1.AddTrigger(new Trigger_TicksPassed(tickLimit));
|
transition1.AddTrigger(new Trigger_TicksPassed(tickLimit));
|
||||||
|
transition1.AddPreAction(new TransitionAction_Custom(new Action(this.SuccubiLeave))); //Join or leave colony
|
||||||
transition1.AddPreAction(new TransitionAction_Message("SuccubusLeaving".Translate(), null, 1f));
|
|
||||||
stateGraph.AddTransition(transition1);
|
stateGraph.AddTransition(transition1);
|
||||||
|
|
||||||
//If they become hostile
|
//If they become hostile
|
||||||
|
@ -84,7 +84,26 @@ namespace RJW_Genes
|
||||||
Scribe_Values.Look<int?>(ref this.durationTicks, "durationTicks", null, false);
|
Scribe_Values.Look<int?>(ref this.durationTicks, "durationTicks", null, false);
|
||||||
Scribe_References.Look<Pawn>(ref this.target, "target", false);
|
Scribe_References.Look<Pawn>(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;
|
public Pawn target;
|
||||||
private int? durationTicks;
|
private int? durationTicks;
|
||||||
|
public List<Pawn> colonyJoiners = new List<Pawn>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
56
Source/RJW_GenesSettings.cs
Normal file
56
Source/RJW_GenesSettings.cs
Normal file
|
@ -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<bool>(ref RJW_GenesSettings.rjw_genes_sexdemon_visit, "rjw_genes_sexdemon_visit", RJW_GenesSettings.rjw_genes_sexdemon_visit, true);
|
||||||
|
Scribe_Values.Look<bool>(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<bool>(ref RJW_GenesSettings.rjw_genes_sexdemon_visit_groups, "rjw_genes_sexdemon_groups", RJW_GenesSettings.rjw_genes_sexdemon_visit_groups, true);
|
||||||
|
Scribe_Values.Look<bool>(ref RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi, "rjw_genes_sexdemon_succubi", RJW_GenesSettings.rjw_genes_sexdemon_visit_succubi, true);
|
||||||
|
Scribe_Values.Look<bool>(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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
26
Source/RJW_GenesSettingsControllercs.cs
Normal file
26
Source/RJW_GenesSettingsControllercs.cs
Normal file
|
@ -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<RJW_GenesSettings>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override string SettingsCategory()
|
||||||
|
{
|
||||||
|
return "RJW Genes";
|
||||||
|
}
|
||||||
|
public override void DoSettingsWindowContents(Rect inRect)
|
||||||
|
{
|
||||||
|
RJW_GenesSettings.DoWindowContents(inRect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -38,6 +38,10 @@
|
||||||
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-master\1.4\Assemblies\RJW.dll</HintPath>
|
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\rjw-master\1.4\Assemblies\RJW.dll</HintPath>
|
||||||
<Private>False</Private>
|
<Private>False</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="RJWSexperience">
|
||||||
|
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\Steam\steamapps\common\RimWorld\Mods\RJW-Sexperience-master\1.4\Assemblies\RJWSexperience.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
|
@ -175,6 +179,8 @@
|
||||||
<Compile Include="JobDefOf.cs" />
|
<Compile Include="JobDefOf.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="RJW_Genes.cs" />
|
<Compile Include="RJW_Genes.cs" />
|
||||||
|
<Compile Include="RJW_GenesSettings.cs" />
|
||||||
|
<Compile Include="RJW_GenesSettingsControllercs.cs" />
|
||||||
<Compile Include="ThoughtDefOf.cs" />
|
<Compile Include="ThoughtDefOf.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
Loading…
Reference in a new issue