Compare commits
7 Commits
91dd9c245e
...
075260f091
Author | SHA1 | Date |
---|---|---|
|
075260f091 | |
|
17a8264b49 | |
|
8da97c4833 | |
|
5db34c0c1f | |
|
eda7261968 | |
|
c00a872b81 | |
|
4949c3694b |
|
@ -86,7 +86,7 @@
|
||||||
<impact>Low</impact>
|
<impact>Low</impact>
|
||||||
<displayOrderInIssue>50</displayOrderInIssue>
|
<displayOrderInIssue>50</displayOrderInIssue>
|
||||||
<label>horrible</label>
|
<label>horrible</label>
|
||||||
<description>Being Pregnant is unclean. Take care and stay pure. </description>
|
<description>Being Pregnant is unclean. Take care and stay pure.</description>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="PreceptComp_SituationalThought">
|
<li Class="PreceptComp_SituationalThought">
|
||||||
<thought>Pregnancy_Horrible_Pregnant</thought>
|
<thought>Pregnancy_Horrible_Pregnant</thought>
|
||||||
|
@ -94,7 +94,6 @@
|
||||||
<li Class="PreceptComp_SituationalThought">
|
<li Class="PreceptComp_SituationalThought">
|
||||||
<thought>Pregnancy_Horrible_Pregnant_Social</thought>
|
<thought>Pregnancy_Horrible_Pregnant_Social</thought>
|
||||||
</li>
|
</li>
|
||||||
<comps>
|
|
||||||
</comps>
|
</comps>
|
||||||
</PreceptDef>
|
</PreceptDef>
|
||||||
|
|
||||||
|
@ -102,7 +101,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Respected_Pregnant</defName>
|
<defName>Pregnancy_Respected_Pregnant</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant</workerClass>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -115,7 +114,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Elevated_Pregnant</defName>
|
<defName>Pregnancy_Elevated_Pregnant</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant</workerClass>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -128,7 +127,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Respected_Pregnant_Social</defName>
|
<defName>Pregnancy_Respected_Pregnant_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -140,7 +139,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Elevated_Pregnant_Social</defName>
|
<defName>Pregnancy_Elevated_Pregnant_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -152,7 +151,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Horrible_Pregnant_Social</defName>
|
<defName>Pregnancy_Horrible_Pregnant_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -164,7 +163,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Horrible_Pregnant</defName>
|
<defName>Pregnancy_Horrible_Pregnant</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_Pregnant</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_Pregnant</workerClass>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -178,9 +177,10 @@
|
||||||
<!-- Thoughts: Not Pregnant -->
|
<!-- Thoughts: Not Pregnant -->
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Horrible_NonPregnant</defName>
|
<defName>Pregnancy_Horrible_NonPregnant</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_NonPregnant_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_NonPregnant</workerClass>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<doNotApplyToQuestLodgers>true</doNotApplyToQuestLodgers>
|
<doNotApplyToQuestLodgers>true</doNotApplyToQuestLodgers>
|
||||||
|
<gender>Female</gender>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>not pregnant</label>
|
<label>not pregnant</label>
|
||||||
|
@ -192,8 +192,9 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Pregnancy_Horrible_NonPregnant_Social</defName>
|
<defName>Pregnancy_Horrible_NonPregnant_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.Ideology.Precept_Workers.ThoughtWorker_Precept_NonPregnant_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_NonPregnant_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
|
<gender>Female</gender>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>unfertilized</label>
|
<label>unfertilized</label>
|
||||||
|
@ -202,4 +203,4 @@
|
||||||
</stages>
|
</stages>
|
||||||
</ThoughtDef>
|
</ThoughtDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
|
@ -288,7 +288,7 @@
|
||||||
<defName>Sex_Promiscuous</defName>
|
<defName>Sex_Promiscuous</defName>
|
||||||
<durationDays>1</durationDays>
|
<durationDays>1</durationDays>
|
||||||
<stackLimit>1</stackLimit>
|
<stackLimit>1</stackLimit>
|
||||||
<thoughtClass>RJWSexperience.Thought_IncreaseRecord</thoughtClass>
|
<thoughtClass>RJWSexperience.Ideology.Thought_IncreaseRecord</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>promiscuous sex</label>
|
<label>promiscuous sex</label>
|
||||||
|
@ -297,7 +297,7 @@
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<modExtensions>
|
<modExtensions>
|
||||||
<li Class="RJWSexperience.ThoughtDefExtension_IncreaseRecord" MayRequire="rjw.sexperience">
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_IncreaseRecord" MayRequire="rjw.sexperience">
|
||||||
<recordDef>Lust</recordDef>
|
<recordDef>Lust</recordDef>
|
||||||
<increment>3.0</increment>
|
<increment>3.0</increment>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>GenitalSize_Approved</defName>
|
<defName>GenitalSize_Approved</defName>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<workerClass>RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Approved</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize</workerClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>Despised Genitalsize</label>
|
<label>Despised Genitalsize</label>
|
||||||
|
@ -91,11 +91,24 @@
|
||||||
<baseMoodEffect>+10</baseMoodEffect>
|
<baseMoodEffect>+10</baseMoodEffect>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
|
<!-- We have 5 stages, which map directly to genitalia severity:
|
||||||
|
Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8) -->
|
||||||
|
<minimumValueforStage>
|
||||||
|
<li>0</li>
|
||||||
|
<li>0.2</li>
|
||||||
|
<li>0.4</li>
|
||||||
|
<li>0.6</li>
|
||||||
|
<li>0.8</li>
|
||||||
|
</minimumValueforStage>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
</ThoughtDef>
|
</ThoughtDef>
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>GenitalSize_Disapproved</defName>
|
<defName>GenitalSize_Disapproved</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Disapproved</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize</workerClass>
|
||||||
<thoughtClass>Thought_Situational</thoughtClass>
|
<thoughtClass>Thought_Situational</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -124,13 +137,26 @@
|
||||||
<baseMoodEffect>-10</baseMoodEffect>
|
<baseMoodEffect>-10</baseMoodEffect>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
|
<!-- We have 5 stages, which map directly to genitalia severity:
|
||||||
|
Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8) -->
|
||||||
|
<minimumValueforStage>
|
||||||
|
<li>0</li>
|
||||||
|
<li>0.2</li>
|
||||||
|
<li>0.4</li>
|
||||||
|
<li>0.6</li>
|
||||||
|
<li>0.8</li>
|
||||||
|
</minimumValueforStage>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
</ThoughtDef>
|
</ThoughtDef>
|
||||||
|
|
||||||
<!-- Social-Thoughts (Opinion)-->
|
<!-- Social-Thoughts (Opinion)-->
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>GenitalSize_Approved_Social</defName>
|
<defName>GenitalSize_Approved_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Approved_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
|
@ -146,27 +172,48 @@
|
||||||
<baseOpinionOffset>+5</baseOpinionOffset>
|
<baseOpinionOffset>+5</baseOpinionOffset>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
|
<!-- We have 3 stages, which map directly to genitalia severity:
|
||||||
|
Unfavorable(<0.4), Normal(>0.4&&<0.6), Favorable(>0.6) -->
|
||||||
|
<minimumValueforStage>
|
||||||
|
<li>0</li>
|
||||||
|
<li>0.4</li>
|
||||||
|
<li>0.6</li>
|
||||||
|
</minimumValueforStage>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
</ThoughtDef>
|
</ThoughtDef>
|
||||||
|
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>GenitalSize_Disapproved_Social</defName>
|
<defName>GenitalSize_Disapproved_Social</defName>
|
||||||
<workerClass>RJWSexperience.Ideology.ThoughtWorker_Precept_GenitalSize_Disapproved_Social</workerClass>
|
<workerClass>RJWSexperience.Ideology.PreceptWorkers.ThoughtWorker_Precept_GenitalSize_Social</workerClass>
|
||||||
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
<thoughtClass>Thought_SituationalSocial</thoughtClass>
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>Unwanted Genitals</label>
|
<label>Favorable Genitals</label>
|
||||||
<baseOpinionOffset>-5</baseOpinionOffset>
|
<baseOpinionOffset>+5</baseOpinionOffset>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>Normal Genitals</label>
|
<label>Normal Genitals</label>
|
||||||
<baseOpinionOffset>0</baseOpinionOffset>
|
<baseOpinionOffset>0</baseOpinionOffset>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<label>Favorable Genitals</label>
|
<label>Unwanted Genitals</label>
|
||||||
<baseOpinionOffset>+5</baseOpinionOffset>
|
<baseOpinionOffset>-5</baseOpinionOffset>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
|
<modExtensions>
|
||||||
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
|
<!-- We have 3 stages, which map directly to genitalia severity:
|
||||||
|
Favorable(<0.4), Normal(>0.4&&<0.6), Unfavorable(>0.6) -->
|
||||||
|
<minimumValueforStage>
|
||||||
|
<li>0</li>
|
||||||
|
<li>0.4</li>
|
||||||
|
<li>0.6</li>
|
||||||
|
</minimumValueforStage>
|
||||||
|
</li>
|
||||||
|
</modExtensions>
|
||||||
</ThoughtDef>
|
</ThoughtDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
|
@ -194,9 +194,6 @@
|
||||||
<durationDays>15</durationDays>
|
<durationDays>15</durationDays>
|
||||||
<stackLimit>100</stackLimit>
|
<stackLimit>100</stackLimit>
|
||||||
<stackLimitForSameOtherPawn>3</stackLimitForSameOtherPawn>
|
<stackLimitForSameOtherPawn>3</stackLimitForSameOtherPawn>
|
||||||
<nullifyingTraits>
|
|
||||||
<li>Masochist</li>
|
|
||||||
</nullifyingTraits>
|
|
||||||
<stages>
|
<stages>
|
||||||
<li>
|
<li>
|
||||||
<label>not obedient</label>
|
<label>not obedient</label>
|
||||||
|
|
|
@ -270,7 +270,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Virgin_Precious_Taken</defName>
|
<defName>Virgin_Precious_Taken</defName>
|
||||||
<thoughtClass>RJWSexperience.Thought_Opinionbased</thoughtClass>
|
<thoughtClass>RJWSexperience.Ideology.Thought_Opinionbased</thoughtClass>
|
||||||
<durationDays>7</durationDays>
|
<durationDays>7</durationDays>
|
||||||
<stackLimit>1</stackLimit>
|
<stackLimit>1</stackLimit>
|
||||||
<stages>
|
<stages>
|
||||||
|
@ -296,7 +296,7 @@
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<modExtensions>
|
<modExtensions>
|
||||||
<li Class="RJWSexperience.ThoughtDefExtension_StageFromOpinion">
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
<minimumValueforStage>
|
<minimumValueforStage>
|
||||||
<li>-100</li>
|
<li>-100</li>
|
||||||
<li>-50</li>
|
<li>-50</li>
|
||||||
|
@ -309,7 +309,7 @@
|
||||||
|
|
||||||
<ThoughtDef>
|
<ThoughtDef>
|
||||||
<defName>Virgin_Shameful_Taken</defName>
|
<defName>Virgin_Shameful_Taken</defName>
|
||||||
<thoughtClass>RJWSexperience.Thought_Opinionbased</thoughtClass>
|
<thoughtClass>RJWSexperience.Ideology.Thought_Opinionbased</thoughtClass>
|
||||||
<durationDays>7</durationDays>
|
<durationDays>7</durationDays>
|
||||||
<stackLimit>1</stackLimit>
|
<stackLimit>1</stackLimit>
|
||||||
<stages>
|
<stages>
|
||||||
|
@ -330,7 +330,7 @@
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<modExtensions>
|
<modExtensions>
|
||||||
<li Class="RJWSexperience.ThoughtDefExtension_StageFromOpinion">
|
<li Class="RJWSexperience.Ideology.ThoughtDefExtension_StageFromValue">
|
||||||
<minimumValueforStage>
|
<minimumValueforStage>
|
||||||
<li>-100</li>
|
<li>-100</li>
|
||||||
<li>0</li>
|
<li>0</li>
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
public class ThoughtWorker_Precept_GenitalSize_Approved : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
// We have 5 stages, which map directly to genitalia severity:
|
|
||||||
// Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8)
|
|
||||||
if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
|
|
||||||
{
|
|
||||||
float best_size = IdeoUtility.getGenitalSize(p);
|
|
||||||
if (best_size < 0.2f)
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
else if (best_size < 0.4f)
|
|
||||||
return ThoughtState.ActiveAtStage(1);
|
|
||||||
else if (best_size < 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(2);
|
|
||||||
else if (best_size < 0.8f)
|
|
||||||
return ThoughtState.ActiveAtStage(3);
|
|
||||||
else if (best_size > 0.8f)
|
|
||||||
return ThoughtState.ActiveAtStage(4);
|
|
||||||
}
|
|
||||||
// This might can happen if the pawn has no genitalia ... maybe?
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
public class ThoughtWorker_Precept_GenitalSize_Approved_Social : ThoughtWorker_Precept_Social
|
|
||||||
{
|
|
||||||
|
|
||||||
// Important Note: For the Social Worker, we measure otherPawns genitalia
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
|
|
||||||
{
|
|
||||||
// We have 3 stages, which map directly to genitalia severity:
|
|
||||||
// Unfavorable(<0.4), Normal(>0.4&&<0.6), Favorable(>0.6)
|
|
||||||
if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
|
|
||||||
{
|
|
||||||
float best_size = IdeoUtility.getGenitalSize(otherPawn);
|
|
||||||
if (best_size < 0.4f)
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
else if (best_size < 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(1);
|
|
||||||
else if (best_size > 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(2);
|
|
||||||
}
|
|
||||||
// This might can happen if the pawn has no genitalia ... maybe?
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
public class ThoughtWorker_Precept_GenitalSize_Disapproved : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
// We have 5 stages, which map directly to genitalia severity:
|
|
||||||
// Micro(<0.2), Small(>0.2&&<0.4), Normal(>0.4&&<0.6), Big(>0.6&&<0.8), Huge(>0.8)
|
|
||||||
if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
|
|
||||||
{
|
|
||||||
float best_size = IdeoUtility.getGenitalSize(p);
|
|
||||||
if (best_size < 0.2f)
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
else if (best_size < 0.4f)
|
|
||||||
return ThoughtState.ActiveAtStage(1);
|
|
||||||
else if (best_size < 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(2);
|
|
||||||
else if (best_size < 0.8f)
|
|
||||||
return ThoughtState.ActiveAtStage(3);
|
|
||||||
else if (best_size > 0.8f)
|
|
||||||
return ThoughtState.ActiveAtStage(4);
|
|
||||||
}
|
|
||||||
// This might can happen if the pawn has no genitalia ... maybe?
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using rjw;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
public class ThoughtWorker_Precept_GenitalSize_Disapproved_Social : ThoughtWorker_Precept_Social
|
|
||||||
{
|
|
||||||
// Important Note: For the Social Worker, we measure otherPawns genitalia
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
|
|
||||||
{
|
|
||||||
// We have 3 stages, which map directly to genitalia severity:
|
|
||||||
// Unfavorable(<0.4), Normal(>0.4&&<0.6), Favorable(>0.6)
|
|
||||||
if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
|
|
||||||
{
|
|
||||||
float best_size = IdeoUtility.getGenitalSize(otherPawn);
|
|
||||||
if (best_size < 0.4f)
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
else if (best_size < 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(1);
|
|
||||||
else if (best_size > 0.6f)
|
|
||||||
return ThoughtState.ActiveAtStage(2);
|
|
||||||
}
|
|
||||||
// This might can happen if the pawn has no genitalia ... maybe?
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.Ideology.Precept_Workers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
|
||||||
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
|
||||||
/// </summary>
|
|
||||||
public class ThoughtWorker_Precept_NonPregnant : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
/// <summary>Gets the current thought state of the given pawn.</summary>
|
|
||||||
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
|
|
||||||
var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
|
|
||||||
|
|
||||||
if (pregnancy == null)
|
|
||||||
{
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.Ideology.Precept_Workers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
|
||||||
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
|
||||||
/// </summary>
|
|
||||||
public class ThoughtWorker_Precept_NonPregnant_Social : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
/// <summary>Gets the current thought state of the given pawn.</summary>
|
|
||||||
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
|
|
||||||
var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
|
|
||||||
|
|
||||||
if (pregnancy != null)
|
|
||||||
{
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
} else
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
|
|
||||||
using RimWorld;
|
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.Ideology.Precept_Workers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
|
||||||
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
|
||||||
/// </summary>
|
|
||||||
public class ThoughtWorker_Precept_Pregnant : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
/// <summary>Gets the current thought state of the given pawn.</summary>
|
|
||||||
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
|
|
||||||
var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
|
|
||||||
|
|
||||||
if (pregnancy == null)
|
|
||||||
{
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using Verse;
|
|
||||||
using rjw;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology.Ideology.Precept_Workers
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
|
||||||
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
|
||||||
/// </summary>
|
|
||||||
public class ThoughtWorker_Precept_Pregnant_Social : ThoughtWorker_Precept
|
|
||||||
{
|
|
||||||
/// <summary>Gets the current thought state of the given pawn.</summary>
|
|
||||||
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
protected override ThoughtState ShouldHaveThought(Pawn p)
|
|
||||||
{
|
|
||||||
|
|
||||||
var pregnancy = rjw.PregnancyHelper.GetPregnancy(p);
|
|
||||||
|
|
||||||
if (pregnancy == null)
|
|
||||||
{
|
|
||||||
return ThoughtState.Inactive;
|
|
||||||
}
|
|
||||||
|
|
||||||
return ThoughtState.ActiveAtStage(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,54 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using Verse;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
public class Thought_IncreaseRecord : Thought_Recordbased
|
|
||||||
{
|
|
||||||
protected float recordIncrement;
|
|
||||||
|
|
||||||
public override void ExposeData()
|
|
||||||
{
|
|
||||||
base.ExposeData();
|
|
||||||
Scribe_Values.Look(ref recordIncrement, "recordIncrement", recordIncrement, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ThoughtInterval()
|
|
||||||
{
|
|
||||||
base.ThoughtInterval();
|
|
||||||
if (recordIncrement != 0)
|
|
||||||
{
|
|
||||||
pawn.records.AddTo(RecordDef, recordIncrement);
|
|
||||||
recordIncrement = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override bool TryMergeWithExistingMemory(out bool showBubble)
|
|
||||||
{
|
|
||||||
ThoughtHandler thoughts = pawn.needs.mood.thoughts;
|
|
||||||
if (thoughts.memories.NumMemoriesInGroup(this) >= def.stackLimit)
|
|
||||||
{
|
|
||||||
Thought_IncreaseRecord thought_Memory = (Thought_IncreaseRecord)thoughts.memories.OldestMemoryInGroup(this);
|
|
||||||
if (thought_Memory != null)
|
|
||||||
{
|
|
||||||
showBubble = (thought_Memory.age > thought_Memory.def.DurationTicks / 2);
|
|
||||||
thought_Memory.Merged();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
showBubble = true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void Init()
|
|
||||||
{
|
|
||||||
base.Init();
|
|
||||||
recordIncrement = Def.increment;
|
|
||||||
}
|
|
||||||
protected virtual void Merged()
|
|
||||||
{
|
|
||||||
age = 0;
|
|
||||||
recordIncrement += Def.increment;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,38 +0,0 @@
|
||||||
using RimWorld;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics.CodeAnalysis;
|
|
||||||
|
|
||||||
namespace RJWSexperience.Ideology
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// ThoughtDef using opinion
|
|
||||||
/// </summary>
|
|
||||||
public class ThoughtDef_Opinionbased : ThoughtDef
|
|
||||||
{
|
|
||||||
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
|
|
||||||
public List<float> minimumValueforStage = new List<float>();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Thought class using record.
|
|
||||||
/// </summary>
|
|
||||||
public class Thought_Opinionbased : Thought_Memory
|
|
||||||
{
|
|
||||||
protected ThoughtDef_Opinionbased Def => (ThoughtDef_Opinionbased)def;
|
|
||||||
protected List<float> MinimumValueforStage => Def.minimumValueforStage;
|
|
||||||
|
|
||||||
public override int CurStageIndex
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
float value = 0f;
|
|
||||||
if (otherPawn != null) value = pawn.relations?.OpinionOf(otherPawn) ?? 0f;
|
|
||||||
for (int i = MinimumValueforStage.Count - 1; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (MinimumValueforStage[i] < value) return i;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -32,7 +32,8 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="RJW">
|
<Reference Include="RJW">
|
||||||
<HintPath>..\..\..\rjw-vegapnk\1.3\Assemblies\RJW.dll</HintPath>
|
<HintPath>..\..\..\rjw\1.3\Assemblies\RJW.dll</HintPath>
|
||||||
|
<Private>False</Private>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
@ -43,55 +44,53 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="DebugAction.cs" />
|
<Compile Include="DebugAction.cs" />
|
||||||
<Compile Include="GlobalSuppressions.cs" />
|
<Compile Include="GlobalSuppressions.cs" />
|
||||||
<Compile Include="Ideology\HistoryEvents\DefExtension_SecondaryEvents.cs" />
|
<Compile Include="HistoryEvents\DefExtension_SecondaryEvents.cs" />
|
||||||
<Compile Include="Ideology\HistoryEvents\DefExtension_EventOverrides.cs" />
|
<Compile Include="HistoryEvents\DefExtension_EventOverrides.cs" />
|
||||||
<Compile Include="Ideology\HistoryEvents\TwoPawnEventRule.cs" />
|
<Compile Include="HistoryEvents\TwoPawnEventRule.cs" />
|
||||||
<Compile Include="Ideology\InteractionDefExtension_HistoryEvents.cs" />
|
<Compile Include="InteractionDefExtension_HistoryEvents.cs" />
|
||||||
<Compile Include="Ideology\GoodwillSituationWorker_MemeCompatibility.cs" />
|
<Compile Include="GoodwillSituationWorker_MemeCompatibility.cs" />
|
||||||
<Compile Include="Harmony.cs" />
|
<Compile Include="Harmony.cs" />
|
||||||
<Compile Include="Ideology\HistoryEvents\ArgsNamesCustom.cs" />
|
<Compile Include="HistoryEvents\ArgsNamesCustom.cs" />
|
||||||
<Compile Include="Ideology\Keyed.cs" />
|
<Compile Include="Keyed.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Approved.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Approved_Social.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Social.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Disapproved.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_GenitalSize_Disapproved_Social.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_NonPregnant_Social.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_NonPregnant.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_Pregnant.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_NonPregnant_Social.cs" />
|
<Compile Include="PreceptWorkers\ThoughtWorker_Precept_Pregnant_Social.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_Pregnant.cs" />
|
<Compile Include="RelationFilter.cs" />
|
||||||
<Compile Include="Ideology\PreceptWorkers\ThoughtWorker_Precept_Pregnant_Social.cs" />
|
<Compile Include="RsiHistoryEventDefOf.cs" />
|
||||||
<Compile Include="Ideology\RelationFilter.cs" />
|
<Compile Include="TwoPawnFilter.cs" />
|
||||||
<Compile Include="Ideology\RsiHistoryEventDefOf.cs" />
|
<Compile Include="SinglePawnFilter.cs" />
|
||||||
<Compile Include="Ideology\TwoPawnFilter.cs" />
|
<Compile Include="Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />
|
||||||
<Compile Include="Ideology\SinglePawnFilter.cs" />
|
<Compile Include="Precepts\Comp_KnowsMemoryThought_Gendered.cs" />
|
||||||
<Compile Include="Ideology\Precepts\Comp_SelfTookMemoryThought_Gendered.cs" />
|
<Compile Include="HistoryEvents\HistoryEventDefExtensionMethods.cs" />
|
||||||
<Compile Include="Ideology\Precepts\Comp_KnowsMemoryThought_Gendered.cs" />
|
<Compile Include="Patches\RJW_Patch_ChancePerHour.cs" />
|
||||||
<Compile Include="Ideology\HistoryEvents\HistoryEventDefExtensionMethods.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyMtb.cs" />
|
||||||
<Compile Include="Ideology\Patches\RJW_Patch_ChancePerHour.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyFappinMtb.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyMtb.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyRapeCPMtb.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyFappinMtb.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyNecroMtb.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyRapeCPMtb.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyBestialityMtb.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyNecroMtb.cs" />
|
<Compile Include="Precepts\DefExtension_ModifyPreference.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyBestialityMtb.cs" />
|
<Compile Include="Precepts\DefExtension_MultipleMemesRequired.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_ModifyPreference.cs" />
|
<Compile Include="Rituals\JobGiver_GangbangConsensual.cs" />
|
||||||
<Compile Include="Ideology\Precepts\DefExtension_MultipleMemesRequired.cs" />
|
<Compile Include="Rituals\LordJob_Rituals.cs" />
|
||||||
<Compile Include="Ideology\Rituals\JobGiver_GangbangConsensual.cs" />
|
<Compile Include="Patches\RJW_Patch_Ideo.cs" />
|
||||||
<Compile Include="Ideology\Rituals\LordJob_Rituals.cs" />
|
<Compile Include="Patches\Sexperience_Patch.cs" />
|
||||||
<Compile Include="Ideology\Patches\RJW_Patch_Ideo.cs" />
|
|
||||||
<Compile Include="Ideology\Patches\Sexperience_Patch.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Ideology\Patches\Rimworld_Patch.cs" />
|
<Compile Include="Patches\Rimworld_Patch.cs" />
|
||||||
<Compile Include="Ideology\Rituals\JobGiver_DrugOrgy.cs" />
|
<Compile Include="Rituals\JobGiver_DrugOrgy.cs" />
|
||||||
<Compile Include="Ideology\Rituals\JobGiver_GangbangVictim.cs" />
|
<Compile Include="Rituals\JobGiver_GangbangVictim.cs" />
|
||||||
<Compile Include="Ideology\Rituals\RitualBehaviorWorkers.cs" />
|
<Compile Include="Rituals\RitualBehaviorWorkers.cs" />
|
||||||
<Compile Include="Ideology\Rituals\RitualOutcomeComps.cs" />
|
<Compile Include="Rituals\RitualOutcomeComps.cs" />
|
||||||
<Compile Include="Ideology\Rituals\RitualRoles.cs" />
|
<Compile Include="Rituals\RitualRoles.cs" />
|
||||||
<Compile Include="Ideology\StatParts.cs" />
|
<Compile Include="StatParts.cs" />
|
||||||
<Compile Include="Ideology\IdeoUtility.cs" />
|
<Compile Include="IdeoUtility.cs" />
|
||||||
<Compile Include="Thoughts\ThoughtDefExtension_IncreaseRecord.cs" />
|
<Compile Include="Thoughts\ThoughtDefExtension_IncreaseRecord.cs" />
|
||||||
<Compile Include="Thoughts\ThoughtDefExtension_StageFromOpinion.cs" />
|
<Compile Include="Thoughts\ThoughtDefExtension_StageFromValue.cs" />
|
||||||
<Compile Include="Thoughts\Thought_IncreaseRecord.cs" />
|
<Compile Include="Thoughts\Thought_IncreaseRecord.cs" />
|
||||||
<Compile Include="Thoughts\Thought_Opinionbased.cs" />
|
<Compile Include="Thoughts\Thought_Opinionbased.cs" />
|
||||||
<Compile Include="Ideology\VariousDefOf.cs" />
|
<Compile Include="VariousDefOf.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Krafs.Rimworld.Ref">
|
<PackageReference Include="Krafs.Rimworld.Ref">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
public static class Keyed
|
public static class Keyed
|
||||||
{
|
{
|
|
@ -0,0 +1,34 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
public class ThoughtWorker_Precept_GenitalSize : ThoughtWorker_Precept
|
||||||
|
{
|
||||||
|
private ThoughtDefExtension_StageFromValue stageFromValue;
|
||||||
|
|
||||||
|
protected ThoughtDefExtension_StageFromValue StageFromValue
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (stageFromValue == null)
|
||||||
|
{
|
||||||
|
stageFromValue = def.GetModExtension<ThoughtDefExtension_StageFromValue>();
|
||||||
|
}
|
||||||
|
return stageFromValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p)
|
||||||
|
{
|
||||||
|
if (p != null && Genital_Helper.get_AllPartsHediffList(p).Count > 0)
|
||||||
|
{
|
||||||
|
float bestSize = IdeoUtility.getGenitalSize(p);
|
||||||
|
return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize));
|
||||||
|
}
|
||||||
|
// This might can happen if the pawn has no genitalia ... maybe?
|
||||||
|
return ThoughtState.Inactive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
public class ThoughtWorker_Precept_GenitalSize_Social : ThoughtWorker_Precept_Social
|
||||||
|
{
|
||||||
|
private ThoughtDefExtension_StageFromValue stageFromValue;
|
||||||
|
|
||||||
|
protected ThoughtDefExtension_StageFromValue StageFromValue
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (stageFromValue == null)
|
||||||
|
{
|
||||||
|
stageFromValue = def.GetModExtension<ThoughtDefExtension_StageFromValue>();
|
||||||
|
}
|
||||||
|
return stageFromValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Important Note: For the Social Worker, we measure otherPawns genitalia
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
|
||||||
|
{
|
||||||
|
if (otherPawn != null && Genital_Helper.get_AllPartsHediffList(otherPawn).Count > 0)
|
||||||
|
{
|
||||||
|
float bestSize = IdeoUtility.getGenitalSize(otherPawn);
|
||||||
|
return ThoughtState.ActiveAtStage(StageFromValue.GetStageIndex(bestSize));
|
||||||
|
}
|
||||||
|
// This might can happen if the pawn has no genitalia ... maybe?
|
||||||
|
return ThoughtState.Inactive;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
||||||
|
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
||||||
|
/// </summary>
|
||||||
|
public class ThoughtWorker_Precept_NonPregnant : ThoughtWorker_Precept
|
||||||
|
{
|
||||||
|
/// <summary>Gets the current thought state of the given pawn.</summary>
|
||||||
|
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p)
|
||||||
|
{
|
||||||
|
return PregnancyHelper.GetPregnancy(p)?.Visible != true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
||||||
|
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
||||||
|
/// </summary>
|
||||||
|
public class ThoughtWorker_Precept_NonPregnant_Social : ThoughtWorker_Precept_Social
|
||||||
|
{
|
||||||
|
/// <summary>Gets the current thought state of the given pawn.</summary>
|
||||||
|
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
||||||
|
/// <param name="otherPawn">The pawn about whom the thoughts are generated.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
|
||||||
|
{
|
||||||
|
return PregnancyHelper.GetPregnancy(otherPawn)?.Visible != true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
||||||
|
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
||||||
|
/// </summary>
|
||||||
|
public class ThoughtWorker_Precept_Pregnant : ThoughtWorker_Precept
|
||||||
|
{
|
||||||
|
/// <summary>Gets the current thought state of the given pawn.</summary>
|
||||||
|
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p)
|
||||||
|
{
|
||||||
|
return PregnancyHelper.GetPregnancy(p)?.Visible == true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
using RimWorld;
|
||||||
|
using rjw;
|
||||||
|
using Verse;
|
||||||
|
|
||||||
|
namespace RJWSexperience.Ideology.PreceptWorkers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// thought worker for a thought that is active when a certain hediff is present, and who's stage depends on the ether state of the pawn
|
||||||
|
/// Shamelessly taken from: https://github.com/Tachyonite/Pawnmorpher/blob/master/Source/Pawnmorphs/Esoteria/Thoughts/ThoughtWorker_EtherHediff.cs
|
||||||
|
/// </summary>
|
||||||
|
public class ThoughtWorker_Precept_Pregnant_Social : ThoughtWorker_Precept_Social
|
||||||
|
{
|
||||||
|
/// <summary>Gets the current thought state of the given pawn.</summary>
|
||||||
|
/// <param name="p">The pawn for whom the thoughts are generated.</param>
|
||||||
|
/// <param name="otherPawn">The pawn about whom the thoughts are generated.</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected override ThoughtState ShouldHaveThought(Pawn p, Pawn otherPawn)
|
||||||
|
{
|
||||||
|
return PregnancyHelper.GetPregnancy(otherPawn)?.Visible == true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ using System.Collections.Generic;
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
public class ThoughtDefExtension_IncreaseRecord : DefModExtension
|
public class ThoughtDefExtension_IncreaseRecord : DefModExtension
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,13 +2,26 @@
|
||||||
using System.Diagnostics.CodeAnalysis;
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
public class ThoughtDefExtension_StageFromOpinion : DefModExtension
|
public class ThoughtDefExtension_StageFromValue : DefModExtension
|
||||||
{
|
{
|
||||||
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
|
[SuppressMessage("Minor Code Smell", "S1104:Fields should not have public accessibility", Justification = "Field value loaded from XML")]
|
||||||
public List<float> minimumValueforStage = new List<float>();
|
public List<float> minimumValueforStage = new List<float>();
|
||||||
|
|
||||||
|
public int GetStageIndex(float value)
|
||||||
|
{
|
||||||
|
for (int i = minimumValueforStage.Count - 1; i > 0; i--)
|
||||||
|
{
|
||||||
|
if (minimumValueforStage[i] < value)
|
||||||
|
{
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public override IEnumerable<string> ConfigErrors()
|
public override IEnumerable<string> ConfigErrors()
|
||||||
{
|
{
|
||||||
foreach (string error in base.ConfigErrors())
|
foreach (string error in base.ConfigErrors())
|
|
@ -1,6 +1,6 @@
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
|
|
||||||
namespace RJWSexperience
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Increments record every time the thought is added
|
/// Increments record every time the thought is added
|
||||||
|
|
|
@ -1,22 +1,21 @@
|
||||||
using RimWorld;
|
using RimWorld;
|
||||||
using System.Collections.Generic;
|
|
||||||
using Verse;
|
using Verse;
|
||||||
|
|
||||||
namespace RJWSexperience
|
namespace RJWSexperience.Ideology
|
||||||
{
|
{
|
||||||
public class Thought_Opinionbased : Thought_Memory
|
public class Thought_Opinionbased : Thought_Memory
|
||||||
{
|
{
|
||||||
private List<float> minimumValueforStage;
|
private ThoughtDefExtension_StageFromValue stageFromValue;
|
||||||
|
|
||||||
protected List<float> MinimumValueforStage
|
protected ThoughtDefExtension_StageFromValue StageFromValue
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (minimumValueforStage == null)
|
if (stageFromValue == null)
|
||||||
{
|
{
|
||||||
minimumValueforStage = def.GetModExtension<ThoughtDefExtension_StageFromOpinion>().minimumValueforStage;
|
stageFromValue = def.GetModExtension<ThoughtDefExtension_StageFromValue>();
|
||||||
}
|
}
|
||||||
return minimumValueforStage;
|
return stageFromValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,16 +46,7 @@ namespace RJWSexperience
|
||||||
}
|
}
|
||||||
|
|
||||||
float value = pawn.relations?.OpinionOf(otherPawn) ?? 0f;
|
float value = pawn.relations?.OpinionOf(otherPawn) ?? 0f;
|
||||||
|
SetForcedStage(StageFromValue.GetStageIndex(value));
|
||||||
for (int i = MinimumValueforStage.Count - 1; i > 0; i--)
|
|
||||||
{
|
|
||||||
if (MinimumValueforStage[i] < value)
|
|
||||||
{
|
|
||||||
SetForcedStage(i);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
SetForcedStage(0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,9 +22,6 @@ namespace RJWSexperience.Ideology
|
||||||
[MayRequireIdeology] public static readonly PreceptDef Submissive_Male;
|
[MayRequireIdeology] public static readonly PreceptDef Submissive_Male;
|
||||||
[MayRequireIdeology] public static readonly PreceptDef Submissive_Female;
|
[MayRequireIdeology] public static readonly PreceptDef Submissive_Female;
|
||||||
[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Orgasm;
|
[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Orgasm;
|
||||||
[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Sex;
|
//[MayRequireIdeology] public static readonly PreceptDef Proselyzing_By_Sex;
|
||||||
[MayRequireIdeology] public static readonly PreceptDef GenitalSize_Approved;
|
|
||||||
[MayRequireIdeology] public static readonly PreceptDef GenitalSize_Disapproved;
|
|
||||||
[MayRequireIdeology] public static readonly PreceptDef GenitalSize_NoRules;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue