This commit is contained in:
AbstractConcept 2023-02-01 16:05:06 -06:00
parent 12b947317e
commit 5224ef08c2
28 changed files with 393 additions and 322 deletions

Binary file not shown.

View file

@ -26,31 +26,27 @@
<li>rim.job.world</li> <li>rim.job.world</li>
</loadAfter> </loadAfter>
<description> <description>
This mod adds a greater awareness of sex to people. When people witness (or are witnessed taking part in) various sexual activities, those involved will exhibit different reactions depending on their traits and ideologies. Sexperience - Ideology is highly recommended in order to help customise your colonists' opinions on different sexual activities. This mod adds a greater awareness of sex to people. When people witness (or are witnessed taking part in) various sexual activities, those involved will exhibit different reactions depending on their traits and ideologies. Sexperience - Ideology is highly recommended in order to help customise your colonists' opinions on different sexual activities.
Sex acts that can provoke reactions include: Sex acts that can provoke reactions include:
- Exhibitionism: Encountering someone lovin' will generally result in the embarrassment of all involved and those copulating to immediately cease their activities (unless they happen to be an Exhibitionist). Reactions can be modified through the Exhibitionism precept - Exhibitionism: Lovin' couples and masturbators prefer to have some privacy - any interruptions by others during these activities will likely result in severe embarrassment all round. Reactions to these activities can be modified through the Exhibitionism precept (included in this mod).
- Masturbation: Finding someone masturbating will likely embarrass both parties. The discovered individual will immediately stopping what they were doing (unless they happen to be an Exhibitionist). Reactions to masturbation can be modified through the Masturbation precept (included in Sexperience - Ideology) - Cheating: Discovering a partner cheating will great upsets most people. Reactions to cheating can be modified through the Infidelity precept (included in this mod).
- Cheating: Discovering a partner cheating will greatly upset most people (unless they happen to be a Culkold). Reactions to cheating can be modified through the Infidelity precept - Bestiality: Witnessing bestiality will deeply disturb most people. Reactions to bestiality can be modified through the Bestiality precept (included in Sexperience - Ideology).
- Bestiality: Witnessing bestiality will generally cause individuals to run away (unless they are a Zoophile). Reactions to bestiality can be modified through the Bestiality precept (included in Sexperience - Ideology) - Rape: Witnessing rape will generally cause people to panic. Reactions to rape can be modified through the Rape precept (included in Sexperience - Ideology).
- Rape: Witnessing rape will generally cause individuals to run away (unless they are a Rapist). Reactions to rape can be modified through the Rape precept (included in Sexperience - Ideology). - Necrophilia: Witnessing necrophilia will generally cause people to freak out and possibly vomit. Reactions to necrophilia can be modified through the Necrophilia precept (included in Sexperience - Ideology).
- Necrophilia: Witnessing necrophilia will generally cause individuals to run away and likely vomit (unless they are a Necrophile). Reactions to necrophilia can be modified through the Necrophilia precept (included in Sexperience - Ideology). - Xenophilia: Sexual reactions between humanoids of different alien species can provoke anything from curiosity to digest. Reactions to xenophilia can be modified through the Alien Dating precept (included in Humanoid Alien Races).
- Xenophilia: Stumbing upon humanoids of different species lovin' will generally be treated like encountering any other lovein' couple (unless the witness happens to be a Xenophobe). Reactions to xenophilia can be modified through the Alien Dating precept (included in Humanoid Alien Races).
Options have been included to toggle whether people should react to these various sex acts and whether people will turn a blind eye to them during rituals and parties. Additional options have been included to customise how colonists, prisoners, slaves, and members of other factions should react to other. Options have been included to toggle whether people experience these reactions and whether they will trigger during rituals and parties. Additional options have been included to alter how colonists, prisoners, slaves, and members of other factions react to each others sexual activities. Three new RJW quirks are also included to further customise individuals - Cuckold, Cuckolder, and Voyeur. Cuckolds like to watch their partners cheated on them, while Cuckolders get a kick out of having their partner watch it happen. Voyeurs just like to watch others in general, providing that what they see doesn't upset them.
This mod also provides improved threesome support. Threesomes can now be triggered via two new ways: This mod also provides additional group sex support. Group sex can now be triggered via two new ways:
- When a pawn sets off to bed their partner a passer-by might be invited to accompany them. - When a pawn sets off to bed their partner, a passer-by might be invited to join them.
- If a pawn encounters a couple having sex then they may just might be invited to join in. - If a passer-by encounters someone having sex, they might be invited to join in on the fun, or perhaps to stay and watch.
The chance of a threesome occurring can be configured in the mod options. In all cases, however, those involved must have a good opinion of each other and the passer-by mustn't be doing a player ordered / important job at the time. The chance of these events occurring can be configured in the mod options. However, those having sex must have a good opinion of the passer-by, and the passer-by mustn't be doing a player ordered / more important job at the time.
Three new RJW quirks are also included - Cuckold, Cuckolder, and Voyeur. Cuckolds like to watch their partners cheated on them, while Cuckolders get a kick out of having their partner watch it happen. Voyeurs just like to watch others in general (providing what they see isn't too upsetting, of course). As an additional quality-of-life feature, any lewd fluids that pawns produce during sex will not be marked for cleaning until the activity is over.
Misc features
- Any lewd fluids that pawns produce during sex will not be marked for cleaning until they are done.
</description> </description>
</ModMetaData> </ModMetaData>

View file

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest> <Manifest>
<version>1.0.0</version> <version>1.0.0</version>
<downloadUri></downloadUri> <downloadUri>https://gitgud.io/AbstractConcept/privacy-please</downloadUri>
</Manifest> </Manifest>

View file

@ -4,36 +4,58 @@
<InteractionDef> <InteractionDef>
<defName>InviteToHaveSex</defName> <defName>InviteToHaveSex</defName>
<label>invited</label> <label>invited to have sex</label>
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass> <workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
<symbol>UI/Interactions/Lovin</symbol> <symbol>UI/Interactions/Lovin</symbol>
<logRulesInitiator> <logRulesInitiator>
<rulesStrings> <rulesStrings>
<li>r_logentry->[INITIATOR_nameDef] invited [RECIPIENT_nameDef] to have sex with [INITIATOR_objective].</li> <li>r_logentry->[INITIATOR_nameDef] shyly invited [RECIPIENT_nameDef] to have sex with [INITIATOR_objective].</li>
<li>r_logentry->[INITIATOR_nameDef] waved [RECIPIENT_nameDef] over to join in [INITIATOR_objective] fun.</li>
<li>r_logentry->[INITIATOR_nameDef] enticed [RECIPIENT_nameDef] over to [INITIATOR_objective] side.</li>
</rulesStrings> </rulesStrings>
</logRulesInitiator> </logRulesInitiator>
</InteractionDef> </InteractionDef>
<InteractionDef> <InteractionDef>
<defName>InviteToHaveGroupSex</defName> <defName>InviteToHaveGroupSex</defName>
<label>invited</label> <label>invited to have group sex</label>
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass> <workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
<symbol>UI/Interactions/Lovin</symbol> <symbol>UI/Interactions/Lovin</symbol>
<logRulesInitiator> <logRulesInitiator>
<rulesStrings> <rulesStrings>
<li>r_logentry->[INITIATOR_nameDef] invited [RECIPIENT_nameDef] to a threesome.</li> <li>r_logentry->[INITIATOR_nameDef] huskily invited [RECIPIENT_nameDef] to join [INITIATOR_objective] for a threesome.</li>
<li>r_logentry->[INITIATOR_nameDef] joking asked if [RECIPIENT_nameDef] wanted to do a 'group activity' together.</li>
<li>r_logentry->[INITIATOR_nameDef] archly inquired if [RECIPIENT_nameDef] would like to join [INITIATOR_objective] for some fun.</li>
</rulesStrings> </rulesStrings>
</logRulesInitiator> </logRulesInitiator>
</InteractionDef> </InteractionDef>
<InteractionDef> <InteractionDef>
<defName>InviteVoyeurism</defName> <defName>InviteVoyeurism</defName>
<label>invited</label> <label>invited to watch</label>
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass> <workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
<symbol>UI/Interactions/Voyeurism</symbol> <symbol>UI/Interactions/Voyeurism</symbol>
<logRulesInitiator> <logRulesInitiator>
<rulesStrings> <rulesStrings>
<li>r_logentry->[INITIATOR_nameDef] invited [RECIPIENT_nameDef] to watch [INITIATOR_objective].</li> <li>r_logentry->[INITIATOR_nameDef] bade [RECIPIENT_nameDef] to come closer and take a good look at what [INITIATOR_pronoun] was doing.</li>
<li>r_logentry->[INITIATOR_nameDef] put on a lewd display for [RECIPIENT_nameDef].</li>
<li>r_logentry->[INITIATOR_nameDef] let [RECIPIENT_nameDef] know that [INITIATOR_pronoun] didn't mind if [RECIPIENT_pronoun] watched [INITIATOR_objective].</li>
</rulesStrings>
</logRulesInitiator>
</InteractionDef>
<InteractionDef>
<defName>InterruptedSex</defName>
<label>interrupted sex</label>
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
<symbol>UI/Interactions/Exclaimation</symbol>
<ignoreTimeSinceLastInteraction>true</ignoreTimeSinceLastInteraction>
<logRulesInitiator>
<rulesStrings>
<li>r_logentry->[INITIATOR_nameDef]'s sudden appearance startled [RECIPIENT_nameDef].</li>
<li>r_logentry->[INITIATOR_nameDef] accidently gatecrashed [RECIPIENT_nameDef]'s private party.</li>
<li>r_logentry->[INITIATOR_nameDef] unintentionally intruded upon [RECIPIENT_nameDef]'s privacy.</li>
<li>r_logentry->[INITIATOR_nameDef] rudely interrupted while [RECIPIENT_nameDef] was getting it on.</li>
</rulesStrings> </rulesStrings>
</logRulesInitiator> </logRulesInitiator>
</InteractionDef> </InteractionDef>

View file

@ -12,7 +12,7 @@
<defName>Exhibitionism_Disapproved</defName> <defName>Exhibitionism_Disapproved</defName>
<issue>Exhibitionism</issue> <issue>Exhibitionism</issue>
<label>disapproved</label> <label>disapproved</label>
<description>Being seen having sex is shameful, and embarrassing to witness.</description> <description>Being seen having sex or masturbating is somewhat shameful, and embarrassing to witness.</description>
<impact>Low</impact> <impact>Low</impact>
<displayOrderInIssue>30</displayOrderInIssue> <displayOrderInIssue>30</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact> <displayOrderInImpact>1000</displayOrderInImpact>
@ -23,7 +23,7 @@
<defName>Exhibitionism_Acceptable</defName> <defName>Exhibitionism_Acceptable</defName>
<issue>Exhibitionism</issue> <issue>Exhibitionism</issue>
<label>acceptable</label> <label>acceptable</label>
<description>Sex between contenting individuals deserves no special attention.</description> <description>Who has the time or energy to worry about whether people are getting it on or not?</description>
<impact>Low</impact> <impact>Low</impact>
<displayOrderInIssue>20</displayOrderInIssue> <displayOrderInIssue>20</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact> <displayOrderInImpact>1000</displayOrderInImpact>
@ -34,7 +34,7 @@
<defName>Exhibitionism_Approved</defName> <defName>Exhibitionism_Approved</defName>
<issue>Exhibitionism</issue> <issue>Exhibitionism</issue>
<label>approved</label> <label>approved</label>
<description>Displays of physical intimacy bring a knowing grin to those who witness it.</description> <description>Intimate displays of sexuality stir primal feelings that most people would try to deny.</description>
<impact>Medium</impact> <impact>Medium</impact>
<displayOrderInIssue>10</displayOrderInIssue> <displayOrderInIssue>10</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact> <displayOrderInImpact>1000</displayOrderInImpact>

View file

@ -23,7 +23,7 @@
<defName>Infidelity_Disapproved</defName> <defName>Infidelity_Disapproved</defName>
<issue>Infidelity</issue> <issue>Infidelity</issue>
<label>disapproved</label> <label>disapproved</label>
<description>Cheating on a partner is considered disrespectful.</description> <description>Cheating on a partner is considered disrespectful to them.</description>
<impact>Low</impact> <impact>Low</impact>
<displayOrderInIssue>20</displayOrderInIssue> <displayOrderInIssue>20</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact> <displayOrderInImpact>1000</displayOrderInImpact>
@ -34,7 +34,7 @@
<defName>Infidelity_Acceptable</defName> <defName>Infidelity_Acceptable</defName>
<issue>Infidelity</issue> <issue>Infidelity</issue>
<label>acceptable</label> <label>acceptable</label>
<description>Physical intimacy is something to be explored freely, including outside the confines of a relationship.</description> <description>Sex is something to be explored freely, even if they cross the bounds set by traditional relationships.</description>
<impact>Low</impact> <impact>Low</impact>
<displayOrderInIssue>10</displayOrderInIssue> <displayOrderInIssue>10</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact> <displayOrderInImpact>1000</displayOrderInImpact>

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<PreceptDef MayRequire="rjw.sexperience.ideology">
<defName>Masturbation_Acceptable</defName>
<issue>Masturbation</issue>
<label>acceptable</label>
<description>Open masturbation is an ordinary activity that deserves no notice.</description>
<impact>Low</impact>
<displayOrderInIssue>10</displayOrderInIssue>
<displayOrderInImpact>1000</displayOrderInImpact>
<defaultSelectionWeight>5</defaultSelectionWeight>
</PreceptDef>
</Defs>

View file

@ -7,26 +7,25 @@
<issueDefName>Necrophilia</issueDefName> <issueDefName>Necrophilia</issueDefName>
<sexActCheck>SexActIsNecrophilia</sexActCheck> <sexActCheck>SexActIsNecrophilia</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawNecrophilia_Abhorrent</defaultThoughtDef> <defaultThoughtDef>SawNecrophilia_Abhorrent</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>SawNecrophilia_Abhorrent</li>
<li>SawNecrophilia_Horrible</li> <li>SawNecrophilia_Horrible</li>
<li>SawNecrophilia_Disapproved</li> <li>SawNecrophilia_Disapproved</li>
<li>SawNecrophilia_Acceptable</li> <li>SawNecrophilia_Acceptable</li>
@ -46,22 +45,22 @@
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToBestialityWithOrdinaryAnimal</defName> <defName>reactionToBestialityWithOrdinaryAnimal</defName>
<issueDefName>Bestiality</issueDefName> <issueDefName>Bestiality</issueDefName>
<sexActCheck>SexActIsBestialityWithOrdinaryAnimal</sexActCheck> <sexActCheck>SexActIsBestialityWithOrdinaryAnimal</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
@ -72,22 +71,22 @@
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToBestialityWithSpecialAnimal</defName> <defName>reactionToBestialityWithSpecialAnimal</defName>
<issueDefName>Bestiality</issueDefName> <issueDefName>Bestiality</issueDefName>
<sexActCheck>SexActIsBestialityWithSpecialAnimal</sexActCheck> <sexActCheck>SexActIsBestialityWithSpecialAnimal</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
@ -98,28 +97,27 @@
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToBestiality</defName> <defName>reactionToBestiality</defName>
<issueDefName>Bestiality</issueDefName> <issueDefName>Bestiality</issueDefName>
<sexActCheck>SexActIsBestiality</sexActCheck> <sexActCheck>SexActIsBestiality</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawBestiality_Abhorrent</defaultThoughtDef> <defaultThoughtDef>SawBestiality_Abhorrent</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>SawBestiality_Abhorrent</li>
<li>SawBestiality_Horrible</li> <li>SawBestiality_Horrible</li>
<li>SawBestiality_Disapproved</li> <li>SawBestiality_Disapproved</li>
<li>SawBestiality_Acceptable</li> <li>SawBestiality_Acceptable</li>
@ -139,28 +137,27 @@
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToRape</defName> <defName>reactionToRape</defName>
<issueDefName>Rape</issueDefName> <issueDefName>Rape</issueDefName>
<sexActCheck>SexActIsRape</sexActCheck> <sexActCheck>SexActIsRape</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawRape_Abhorrent</defaultThoughtDef> <defaultThoughtDef>SawRape_Abhorrent</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>SawRape_Abhorrent</li>
<li>SawRape_Horrible</li> <li>SawRape_Horrible</li>
<li>SawRape_Disapproved</li> <li>SawRape_Disapproved</li>
<li>SawRape_Acceptable</li> <li>SawRape_Acceptable</li>
@ -184,7 +181,6 @@
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInInfidelity_Heartbreaking</defaultThoughtDef> <defaultThoughtDef>PartookInInfidelity_Heartbreaking</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>PartookInInfidelity_Heartbreaking</li>
<li>PartookInInfidelity_Disapproved</li> <li>PartookInInfidelity_Disapproved</li>
<li>PartookInInfidelity_Acceptable</li> <li>PartookInInfidelity_Acceptable</li>
</preceptThoughtDefs> </preceptThoughtDefs>
@ -198,7 +194,6 @@
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawInfidelity_Heartbreaking</defaultThoughtDef> <defaultThoughtDef>SawInfidelity_Heartbreaking</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>SawInfidelity_Heartbreaking</li>
<li>SawInfidelity_Disapproved</li> <li>SawInfidelity_Disapproved</li>
<li>SawInfidelity_Acceptable</li> <li>SawInfidelity_Acceptable</li>
</preceptThoughtDefs> </preceptThoughtDefs>
@ -214,26 +209,32 @@
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToXenophilia</defName> <defName>reactionToXenophilia</defName>
<issueDefName>HAR_AlienDating</issueDefName> <issueDefName>HAR_AlienDating</issueDefName>
<sexActCheck>SexActIsXenophilia</sexActCheck> <sexActCheck>SexActIsXenophilia</sexActCheck>
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredQuirk>Exhibitionist</requiredQuirk> <requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li> <li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef> <requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef> <replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</pawnReaction> </pawnReaction>
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>SawHAR_AlienDating_Acceptable</defaultThoughtDef>
<preceptThoughtDefs>
<li>SawHAR_AlienDating_Prohibited</li>
<li>SawHAR_AlienDating_Horrible</li>
<li>SawHAR_AlienDating_Preferred</li>
<li>SawHAR_AlienDating_Honorable</li>
</preceptThoughtDefs>
<replacementThoughts> <replacementThoughts>
<li> <li>
<requiredTraits> <requiredTraits>
@ -242,81 +243,15 @@
<replacementThoughtDef>SawHAR_AlienDating_Prohibited</replacementThoughtDef> <replacementThoughtDef>SawHAR_AlienDating_Prohibited</replacementThoughtDef>
</li> </li>
<li> <li>
<requiredPreceptDef>HAR_AlienDating_Prohibited</requiredPreceptDef> <requiredTraits>
<replacementThoughtDef>SawHAR_AlienDating_Prohibited</replacementThoughtDef> <Xenophobia>-1</Xenophobia>
</requiredTraits>
<replacementThoughtDef>SawHAR_AlienDating_Honorable</replacementThoughtDef>
</li> </li>
<li>
<requiredPreceptDef>HAR_AlienDating_Horrible</requiredPreceptDef>
<replacementThoughtDef>SawHAR_AlienDating_Horrible</replacementThoughtDef>
</li>
<li>
<requiredQuirk>Voyeur</requiredQuirk>
<replacementThoughtDef>SawExhibitionism_Approved</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Disapproved</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Disapproved</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Approved</replacementThoughtDef>
</li>
</replacementThoughts> </replacementThoughts>
</witnessReaction> </witnessReaction>
</Privacy_Please.SexActReactionDef> </Privacy_Please.SexActReactionDef>
<Privacy_Please.SexActReactionDef>
<defName>reactionToMasturbation</defName>
<issueDefName>Masturbation</issueDefName>
<sexActCheck>SexActIsMasturbation</sexActCheck>
<pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts>
<li>
<requiredQuirk>Exhibitionist</requiredQuirk>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>PartookInExhibitionism_Approved</replacementThoughtDef>
</li>
</replacementThoughts>
</pawnReaction>
<witnessReaction>
<defaultThoughtDef>SawExhibitionism_Disapproved</defaultThoughtDef>
<replacementThoughts>
<li>
<requiredPreceptDef>Masturbation_Abhorrent</requiredPreceptDef>
<replacementThoughtDef>SawMasturbation_Abhorrent</replacementThoughtDef>
</li>
<li>
<requiredQuirk>Voyeur</requiredQuirk>
<replacementThoughtDef>SawExhibitionism_Approved</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Disapproved</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Disapproved</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Acceptable</replacementThoughtDef>
</li>
<li>
<requiredPreceptDef>Exhibitionism_Approved</requiredPreceptDef>
<replacementThoughtDef>SawExhibitionism_Approved</replacementThoughtDef>
</li>
</replacementThoughts>
</witnessReaction>
</Privacy_Please.SexActReactionDef>
<Privacy_Please.SexActReactionDef> <Privacy_Please.SexActReactionDef>
<defName>reactionToExhibitionism</defName> <defName>reactionToExhibitionism</defName>
<issueDefName>Exhibitionism</issueDefName> <issueDefName>Exhibitionism</issueDefName>
@ -324,7 +259,6 @@
<pawnReaction> <pawnReaction>
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>PartookInExhibitionism_Disapproved</li>
<li>PartookInExhibitionism_Acceptable</li> <li>PartookInExhibitionism_Acceptable</li>
<li>PartookInExhibitionism_Approved</li> <li>PartookInExhibitionism_Approved</li>
</preceptThoughtDefs> </preceptThoughtDefs>
@ -338,7 +272,6 @@
<witnessReaction> <witnessReaction>
<defaultThoughtDef>SawExhibitionism_Disapproved</defaultThoughtDef> <defaultThoughtDef>SawExhibitionism_Disapproved</defaultThoughtDef>
<preceptThoughtDefs> <preceptThoughtDefs>
<li>SawExhibitionism_Disapproved</li>
<li>SawExhibitionism_Acceptable</li> <li>SawExhibitionism_Acceptable</li>
<li>SawExhibitionism_Approved</li> <li>SawExhibitionism_Approved</li>
</preceptThoughtDefs> </preceptThoughtDefs>

View file

@ -17,6 +17,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Zoophile</li> <li>Zoophile</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawBestiality_Horrible</li>
<li>SawBestiality_Disapproved</li>
<li>SawBestiality_Acceptable</li>
<li>SawBestiality_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Panic</reactionToSexDiscovery> <reactionToSexDiscovery>Panic</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -28,10 +34,10 @@
<stages> <stages>
<li> <li>
<label>displeased by common bestiality</label> <label>displeased by common bestiality</label>
<description>They mated with some common beast.</description> <description>They mated with some common beast! Disgraceful.</description>
<baseMoodEffect>-15</baseMoodEffect> <baseMoodEffect>-15</baseMoodEffect>
</li> </li>
</stages> </stages>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -50,6 +56,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Zoophile</li> <li>Zoophile</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawBestiality_Abhorrent</li>
<li>SawBestiality_Disapproved</li>
<li>SawBestiality_Acceptable</li>
<li>SawBestiality_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -68,6 +80,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Zoophile</li> <li>Zoophile</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawBestiality_Abhorrent</li>
<li>SawBestiality_Horrible</li>
<li>SawBestiality_Acceptable</li>
<li>SawBestiality_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -79,13 +97,19 @@
<stages> <stages>
<li> <li>
<label>witnessed bestiality</label> <label>witnessed bestiality</label>
<description>That didn't look entirely comfortable.</description> <description>Hope they don't make too much mess.</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraits> <nullifyingTraits>
<li>Zoophile</li> <li>Zoophile</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawBestiality_Abhorrent</li>
<li>SawBestiality_Horrible</li>
<li>SawBestiality_Disapproved</li>
<li>SawBestiality_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -98,9 +122,15 @@
<li> <li>
<label>approved of bestiality</label> <label>approved of bestiality</label>
<description>The bond between us and our animals makes us strong.</description> <description>The bond between us and our animals makes us strong.</description>
<baseMoodEffect>+2</baseMoodEffect> <baseMoodEffect>+3</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawBestiality_Abhorrent</li>
<li>SawBestiality_Horrible</li>
<li>SawBestiality_Disapproved</li>
<li>SawBestiality_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>

View file

@ -10,10 +10,14 @@
<stages> <stages>
<li> <li>
<label>involuntary exhibitionist</label> <label>involuntary exhibitionist</label>
<description>Well, that was awkward...</description> <description>Urgh. That was awkward...</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>-5</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInExhibitionism_Acceptable</li>
<li>PartookInExhibitionism_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -25,10 +29,14 @@
<stages> <stages>
<li> <li>
<label>uncaring exhibitionist</label> <label>uncaring exhibitionist</label>
<description>Eh, it's no big deal.</description> <description>Uhh, you need something?</description>
<baseMoodEffect>0.01</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInExhibitionism_Disapproved</li>
<li>PartookInExhibitionism_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Uncaring</reactionToSexDiscovery> <reactionToSexDiscovery>Uncaring</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -40,10 +48,14 @@
<stages> <stages>
<li> <li>
<label>exhilerated by exhibitionism</label> <label>exhilerated by exhibitionism</label>
<description>Heh, hope they enjoyed the show!</description> <description>This feeling... It's so freeing.</description>
<baseMoodEffect>2</baseMoodEffect> <baseMoodEffect>2</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInExhibitionism_Disapproved</li>
<li>PartookInExhibitionism_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -59,7 +71,11 @@
<description>Jeez! Get a room!</description> <description>Jeez! Get a room!</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>-5</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawExhibitionism_Acceptable</li>
<li>SawExhibitionism_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -75,6 +91,10 @@
<baseMoodEffect>0.01</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawExhibitionism_Disapproved</li>
<li>SawExhibitionism_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Uncaring</reactionToSexDiscovery> <reactionToSexDiscovery>Uncaring</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -90,6 +110,10 @@
<baseMoodEffect>2</baseMoodEffect> <baseMoodEffect>2</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawExhibitionism_Disapproved</li>
<li>SawExhibitionism_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>

View file

@ -14,7 +14,12 @@
<description>I'm so sorry, my love. Please, forgive me...</description> <description>I'm so sorry, my love. Please, forgive me...</description>
<baseMoodEffect>-20</baseMoodEffect> <baseMoodEffect>-20</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInInfidelity_Disapproved</li>
<li>PartookInInfidelity_Acceptable</li>
<li>PartookInInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -30,6 +35,11 @@
<baseMoodEffect>-10</baseMoodEffect> <baseMoodEffect>-10</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInInfidelity_Heartbreaking</li>
<li>PartookInInfidelity_Acceptable</li>
<li>PartookInInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -40,11 +50,16 @@
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn> <stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages> <stages>
<li> <li>
<label>seen lovin' by partner</label> <label>partner passed by while lovin'</label>
<description>Oh hey babe, you wanna join us?</description> <description>Oh hey babe, you wanna join us?</description>
<baseMoodEffect>0.01</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInInfidelity_Heartbreaking</li>
<li>PartookInInfidelity_Disapproved</li>
<li>PartookInInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -55,11 +70,16 @@
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn> <stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages> <stages>
<li> <li>
<label>caught lovin' by partner</label> <label>cuckolded partner</label>
<description>The look on their face... It just drives me wild!</description> <description>The look on their face... It sent my heart racing!</description>
<baseMoodEffect>5</baseMoodEffect> <baseMoodEffect>5</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>PartookInInfidelity_Heartbreaking</li>
<li>PartookInInfidelity_Disapproved</li>
<li>PartookInInfidelity_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -75,7 +95,12 @@
<description>I feel numb inside.</description> <description>I feel numb inside.</description>
<baseMoodEffect>-20</baseMoodEffect> <baseMoodEffect>-20</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawInfidelity_Disapproved</li>
<li>SawInfidelity_Acceptable</li>
<li>SawInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Panic</reactionToSexDiscovery> <reactionToSexDiscovery>Panic</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -91,6 +116,11 @@
<baseMoodEffect>-10</baseMoodEffect> <baseMoodEffect>-10</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawInfidelity_Heartbreaking</li>
<li>SawInfidelity_Acceptable</li>
<li>SawInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -101,11 +131,16 @@
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn> <stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages> <stages>
<li> <li>
<label>saw partner got some lovin'</label> <label>saw that partner got some lovin'</label>
<description>Hey you, save some of that energy for me later, OK?</description> <description>Hey, save some of that energy for me later, OK?</description>
<baseMoodEffect>0.01</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawInfidelity_Heartbreaking</li>
<li>SawInfidelity_Disapproved</li>
<li>SawInfidelity_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -116,11 +151,16 @@
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn> <stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages> <stages>
<li> <li>
<label>caught partner lovin'</label> <label>cukolded by partner</label>
<description>Oh, you wicked thing! I'm gunna have to punish you for this later...</description> <description>Wicked thing! I'm gunna have to punish you for this...</description>
<baseMoodEffect>5</baseMoodEffect> <baseMoodEffect>5</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawInfidelity_Heartbreaking</li>
<li>SawInfidelity_Disapproved</li>
<li>SawInfidelity_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<Privacy_Please.SexActThoughtDef>
<defName>SawMasturbation_Abhorrent</defName>
<durationDays>10</durationDays>
<stackLimit>3</stackLimit>
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages>
<li>
<label>disgusted by masturbation</label>
<description>You'll go blind if up keep that up!</description>
<baseMoodEffect>-10</baseMoodEffect>
</li>
</stages>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef>
<!-- It just counts as exhibitionism from this point on -->
<!-- <Privacy_Please.SexActThoughtDef>
<defName>SawMasturbation_Disapproved</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>5</durationDays>
<stackLimit>3</stackLimit>
<stages>
<li>
<label>shocked by masturbation</label>
<description>Argh! I'm SO sorry!</description>
<baseMoodEffect>-5</baseMoodEffect>
</li>
</stages>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef>
<Privacy_Please.SexActThoughtDef>
<defName>SawMasturbation_Acceptable</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>1</durationDays>
<stackLimit>1</stackLimit>
<stages>
<li>
<label>saw someone masturbatin'</label>
<description>They better clean up after themselves.</description>
<baseMoodEffect>0</baseMoodEffect>
</li>
</stages>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef>
<Privacy_Please.SexActThoughtDef>
<defName>SawMasturbation_Approved</defName>
<thoughtClass>Thought_Memory</thoughtClass>
<durationDays>1</durationDays>
<stackLimit>1</stackLimit>
<stages>
<li>
<label>saw someone masturbatin'</label>
<description>Mmmm, so hot...</description>
<baseMoodEffect>3</baseMoodEffect>
</li>
</stages>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> -->
</Defs>

View file

@ -16,7 +16,13 @@
</stages> </stages>
<nullifyingTraits> <nullifyingTraits>
<li>Necrophiliac</li> <li>Necrophiliac</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawNecrophilia_Horrible</li>
<li>SawNecrophilia_Disapproved</li>
<li>SawNecrophilia_Acceptable</li>
<li>SawNecrophilia_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Nausea</reactionToSexDiscovery> <reactionToSexDiscovery>Nausea</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -35,6 +41,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Necrophiliac</li> <li>Necrophiliac</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawNecrophilia_Abhorrent</li>
<li>SawNecrophilia_Disapproved</li>
<li>SawNecrophilia_Acceptable</li>
<li>SawNecrophilia_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -53,6 +65,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Necrophiliac</li> <li>Necrophiliac</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawNecrophilia_Abhorrent</li>
<li>SawNecrophilia_Horrible</li>
<li>SawNecrophilia_Acceptable</li>
<li>SawNecrophilia_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -64,13 +82,19 @@
<stages> <stages>
<li> <li>
<label>witnessed necrophilia</label> <label>witnessed necrophilia</label>
<description>They better bury what's left when they're done.</description> <description>They better bury what's left when they're done...</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraits> <nullifyingTraits>
<li>Necrophiliac</li> <li>Necrophiliac</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawNecrophilia_Abhorrent</li>
<li>SawNecrophilia_Horrible</li>
<li>SawNecrophilia_Disapproved</li>
<li>SawNecrophilia_Approved</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -83,9 +107,15 @@
<li> <li>
<label>approved of necrophilia</label> <label>approved of necrophilia</label>
<description>Passion transcends the grave.</description> <description>Passion transcends the grave.</description>
<baseMoodEffect>+2</baseMoodEffect> <baseMoodEffect>+3</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawNecrophilia_Abhorrent</li>
<li>SawNecrophilia_Horrible</li>
<li>SawNecrophilia_Disapproved</li>
<li>SawNecrophilia_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>

View file

@ -16,7 +16,13 @@
</stages> </stages>
<nullifyingTraits> <nullifyingTraits>
<li>Rapist</li> <li>Rapist</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawRape_Horrible</li>
<li>SawRape_Disapproved</li>
<li>SawRape_Acceptable</li>
<li>SawRape_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Panic</reactionToSexDiscovery> <reactionToSexDiscovery>Panic</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -35,6 +41,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Rapist</li> <li>Rapist</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawRape_Abhorrent</li>
<li>SawRape_Disapproved</li>
<li>SawRape_Acceptable</li>
<li>SawRape_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -53,6 +65,12 @@
<nullifyingTraits> <nullifyingTraits>
<li>Rapist</li> <li>Rapist</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawRape_Abhorrent</li>
<li>SawRape_Horrible</li>
<li>SawRape_Acceptable</li>
<li>SawRape_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -64,13 +82,19 @@
<stages> <stages>
<li> <li>
<label>witnessed rape</label> <label>witnessed rape</label>
<description>Oh. Um. Carry on?</description> <description>Oh. Um. Carry on...?</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraits> <nullifyingTraits>
<li>Rapist</li> <li>Rapist</li>
</nullifyingTraits> </nullifyingTraits>
<replaceThoughts>
<li>SawRape_Abhorrent</li>
<li>SawRape_Horrible</li>
<li>SawRape_Disapproved</li>
<li>SawRape_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -82,10 +106,16 @@
<stages> <stages>
<li> <li>
<label>approved of rape</label> <label>approved of rape</label>
<description>The strong claim the weak.</description> <description>The strong will claim the weak.</description>
<baseMoodEffect>+2</baseMoodEffect> <baseMoodEffect>+3</baseMoodEffect>
</li> </li>
</stages> </stages>
<replaceThoughts>
<li>SawRape_Abhorrent</li>
<li>SawRape_Horrible</li>
<li>SawRape_Disapproved</li>
<li>SawRape_Acceptable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>

View file

@ -10,13 +10,19 @@
<stages> <stages>
<li> <li>
<label>disturbed by xenophilia</label> <label>disturbed by xenophilia</label>
<description>Filthy degenerates.</description> <description>Urgh. Filthy degenerates...</description>
<baseMoodEffect>-15</baseMoodEffect> <baseMoodEffect>-15</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraitDegrees> <nullifyingTraitDegrees>
<Xenophobia>-1</Xenophobia> <Xenophobia>-1</Xenophobia>
</nullifyingTraitDegrees> </nullifyingTraitDegrees>
<replaceThoughts>
<li>SawHAR_AlienDating_Horrible</li>
<li>SawHAR_AlienDating_Acceptable</li>
<li>SawHAR_AlienDating_Preferred</li>
<li>SawHAR_AlienDating_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -28,19 +34,23 @@
<stages> <stages>
<li> <li>
<label>upset about xenophilia</label> <label>upset about xenophilia</label>
<description>Urgh. It's just not right...</description> <description>It's just not right...</description>
<baseMoodEffect>-10</baseMoodEffect> <baseMoodEffect>-10</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraitDegrees> <nullifyingTraitDegrees>
<Xenophobia>-1</Xenophobia> <Xenophobia>-1</Xenophobia>
</nullifyingTraitDegrees> </nullifyingTraitDegrees>
<replaceThoughts>
<li>SawHAR_AlienDating_Prohibited</li>
<li>SawHAR_AlienDating_Acceptable</li>
<li>SawHAR_AlienDating_Preferred</li>
<li>SawHAR_AlienDating_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery> <reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
<!-- It just counts as exhibitionism from this point on --> <Privacy_Please.SexActThoughtDef>
<!--<Privacy_Please.SexActThoughtDef>
<defName>SawHAR_AlienDating_Acceptable</defName> <defName>SawHAR_AlienDating_Acceptable</defName>
<durationDays>3</durationDays> <durationDays>3</durationDays>
<stackLimit>3</stackLimit> <stackLimit>3</stackLimit>
@ -48,13 +58,19 @@
<stages> <stages>
<li> <li>
<label>witnessed xenophilia</label> <label>witnessed xenophilia</label>
<description>Oops, sorry about that!</description> <description>I'd always wondered how'd that would work...</description>
<baseMoodEffect>-5</baseMoodEffect> <baseMoodEffect>0.01</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraitDegrees> <nullifyingTraitDegrees>
<Xenophobia>1</Xenophobia> <Xenophobia>1</Xenophobia>
</nullifyingTraitDegrees> </nullifyingTraitDegrees>
<replaceThoughts>
<li>SawHAR_AlienDating_Prohibited</li>
<li>SawHAR_AlienDating_Horrible</li>
<li>SawHAR_AlienDating_Preferred</li>
<li>SawHAR_AlienDating_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery> <reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
@ -66,32 +82,44 @@
<stages> <stages>
<li> <li>
<label>amused by xenophilia</label> <label>amused by xenophilia</label>
<description>I wonder what their kids would look like?</description> <description>Huh. Wonder what their kids would look like?</description>
<baseMoodEffect>+1</baseMoodEffect> <baseMoodEffect>1</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraitDegrees> <nullifyingTraitDegrees>
<Xenophobia>1</Xenophobia> <Xenophobia>1</Xenophobia>
</nullifyingTraitDegrees> </nullifyingTraitDegrees>
<replaceThoughts>
<li>SawHAR_AlienDating_Prohibited</li>
<li>SawHAR_AlienDating_Horrible</li>
<li>SawHAR_AlienDating_Acceptable</li>
<li>SawHAR_AlienDating_Honorable</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef> </Privacy_Please.SexActThoughtDef>
<Privacy_Please.SexActThoughtDef> <Privacy_Please.SexActThoughtDef>
<defName>SawHAR_AlienDating_Know_Honorable</defName> <defName>SawHAR_AlienDating_Honorable</defName>
<durationDays>3</durationDays> <durationDays>3</durationDays>
<stackLimit>3</stackLimit> <stackLimit>3</stackLimit>
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn> <stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
<stages> <stages>
<li> <li>
<label>approved of xenophilia</label> <label>approved of xenophilia</label>
<description>Blending our species will make us stronger.</description> <description>Blending their species will make us stronger.</description>
<baseMoodEffect>+2</baseMoodEffect> <baseMoodEffect>3</baseMoodEffect>
</li> </li>
</stages> </stages>
<nullifyingTraitDegrees> <nullifyingTraitDegrees>
<Xenophobia>1</Xenophobia> <Xenophobia>1</Xenophobia>
</nullifyingTraitDegrees> </nullifyingTraitDegrees>
<replaceThoughts>
<li>SawHAR_AlienDating_Prohibited</li>
<li>SawHAR_AlienDating_Horrible</li>
<li>SawHAR_AlienDating_Acceptable</li>
<li>SawHAR_AlienDating_Preferred</li>
</replaceThoughts>
<reactionToSexDiscovery>Approval</reactionToSexDiscovery> <reactionToSexDiscovery>Approval</reactionToSexDiscovery>
</Privacy_Please.SexActThoughtDef>--> </Privacy_Please.SexActThoughtDef>
</Defs> </Defs>

Binary file not shown.

View file

@ -15,6 +15,8 @@ namespace Privacy_Please
private Pawn pawn; private Pawn pawn;
private int lastExclaimationTick = -1; private int lastExclaimationTick = -1;
private int exclaimationCoolDown = 90; private int exclaimationCoolDown = 90;
private int lastInvitationTick = 600;
private int invitationCoolDown = 600;
public override void Initialize(CompProperties props) public override void Initialize(CompProperties props)
{ {
@ -50,5 +52,16 @@ namespace Privacy_Please
FleckMaker.ThrowMetaIcon(pawn.Position, pawn.Map, FleckDefOf.IncapIcon); FleckMaker.ThrowMetaIcon(pawn.Position, pawn.Map, FleckDefOf.IncapIcon);
} }
} }
public bool CanSendAnInvitionForSex()
{
if (Find.TickManager.TicksGame > invitationCoolDown + lastInvitationTick)
{
lastInvitationTick = Find.TickManager.TicksGame;
return true;
}
return false;
}
} }
} }

View file

@ -45,43 +45,41 @@ namespace Privacy_Please
public SexActThoughtDef replacementThoughtDef; public SexActThoughtDef replacementThoughtDef;
} }
public void DetermineReactionOfPawns(Pawn pawn, Pawn witness, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfWitness, bool applyThoughtDefs = false) public void DetermineReactionOfPawns(Pawn pawn, Pawn witness, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfWitness, bool applyThoughtDefs = false)
{ {
reactionOfPawn = DetermineReaction(pawn, witness, pawnReaction, applyThoughtDefs); reactionOfPawn = DetermineReaction(pawn, witness, pawnReaction, applyThoughtDefs);
reactionOfWitness = DetermineReaction(witness, pawn, witnessReaction, applyThoughtDefs); reactionOfWitness = DetermineReaction(witness, pawn, witnessReaction, applyThoughtDefs);
} }
public ReactionToSexDiscovery DetermineReaction(Pawn reactor, Pawn otherPawn, SubSexActReactionDef reaction, bool applyThoughtDef) public ReactionToSexAct DetermineReaction(Pawn reactor, Pawn otherPawn, SubSexActReactionDef reaction, bool applyThoughtDef)
{ {
JobDriver_Sex jobDriver = reactor.jobs.curDriver as JobDriver_Sex; JobDriver_Sex jobDriver = reactor.jobs.curDriver as JobDriver_Sex;
// Reactors who do not have thoughts applied to them // Reactors who do not have thoughts applied to them
if (reactor.IsUnableToSenseSex()) return ReactionToSexDiscovery.Ignored; if (reactor.IsUnableToSenseSex()) return ReactionToSexAct.Ignored;
if (reactor.HostileTo(otherPawn)) return ReactionToSexDiscovery.StopSex; if (reactor.HostileTo(otherPawn)) return ReactionToSexAct.Ignored;
if (reactor.RaceProps.Animal || reactor.RaceProps.IsMechanoid) return ReactionToSexDiscovery.Ignored; if (reactor.RaceProps.Animal || reactor.RaceProps.IsMechanoid) return ReactionToSexAct.Ignored;
if (otherPawn.RaceProps.Animal || otherPawn.RaceProps.IsMechanoid) return ReactionToSexDiscovery.Uncaring; if (otherPawn.RaceProps.Animal || otherPawn.RaceProps.IsMechanoid) return ReactionToSexAct.Uncaring;
if (BasicSettings.slavesIgnoreSex && (reactor.IsPrisoner || reactor.IsSlave)) return ReactionToSexDiscovery.Uncaring; if (BasicSettings.slavesIgnoreSex && (reactor.IsPrisoner || reactor.IsSlave)) return ReactionToSexAct.Uncaring;
if (BasicSettings.otherFactionsIgnoreSex && reactor.Faction.IsPlayer == false) return ReactionToSexDiscovery.Uncaring; if (BasicSettings.otherFactionsIgnoreSex && reactor.Faction.IsPlayer == false) return ReactionToSexAct.Uncaring;
if (BasicSettings.colonistsIgnoreSlaves && (otherPawn.IsPrisoner || otherPawn.IsSlave)) return ReactionToSexDiscovery.Uncaring; if (BasicSettings.colonistsIgnoreSlaves && (otherPawn.IsPrisoner || otherPawn.IsSlave)) return ReactionToSexAct.Uncaring;
if (BasicSettings.colonistsIgnoreOtherFactions && otherPawn.Faction.IsPlayer == false) return ReactionToSexDiscovery.Uncaring; if (BasicSettings.colonistsIgnoreOtherFactions && otherPawn.Faction.IsPlayer == false) return ReactionToSexAct.Uncaring;
// Apply thoughtDef // Apply thoughtDef
SexActThoughtDef thoughtDef = GetThoughtDefForReactor(reactor, reaction, out Precept precept); SexActThoughtDef thoughtDef = GetThoughtDefForReactor(reactor, reaction, out Precept precept);
ReactionToSexDiscovery reactionToSexAct = thoughtDef.reactionToSexDiscovery;
if (applyThoughtDef) if (thoughtDef == null) return ReactionToSexAct.Uncaring;
{ reactor.needs.mood.thoughts.memories.TryGainMemory(thoughtDef, otherPawn, precept); } if (applyThoughtDef) reactor.needs.mood.thoughts.memories.TryGainMemory(thoughtDef, otherPawn, precept);
var nullifyingTraits = ThoughtUtility.GetNullifyingTraits(thoughtDef)?.ToList(); var nullifyingTraits = ThoughtUtility.GetNullifyingTraits(thoughtDef)?.ToList();
if (applyThoughtDef && thoughtDef.stages[0].baseMoodEffect < 0 && nullifyingTraits?.Any(x => x.HasTrait(reactor)) != true) reactor.TryGetComp<CompPawnThoughtData>()?.TryToExclaim();
if (applyThoughtDef && thoughtDef.stages[0].baseMoodEffect < 0 && nullifyingTraits?.Any(x => x.HasTrait(reactor)) != true)
{ reactor.TryGetComp<CompPawnThoughtData>()?.TryToExclaim(); }
// Reactors who have their reactions changed after applying thoughtDefs // Reactors who have their reactions changed after applying thoughtDefs
if (BasicSettings.whoringIsUninteruptable && jobDriver?.Sexprops?.isWhoring == true) return ReactionToSexDiscovery.Uncaring; if ((otherPawn.jobs.curDriver as JobDriver_Sex)?.Sexprops.isWhoring == true) return ReactionToSexAct.Ignored;
if (BasicSettings.rapeIsUninteruptable && jobDriver?.Sexprops?.isRape == true) return ReactionToSexDiscovery.Uncaring; if (BasicSettings.whoringIsUninteruptable && jobDriver?.Sexprops?.isWhoring == true) return ReactionToSexAct.Uncaring;
if (BasicSettings.rapeIsUninteruptable && jobDriver?.Sexprops?.isRape == true) return ReactionToSexAct.Uncaring;
return reactionToSexAct; return thoughtDef.reactionToSexDiscovery;
} }
private SexActThoughtDef GetThoughtDefForReactor(Pawn reactor, SubSexActReactionDef reaction, out Precept precept) private SexActThoughtDef GetThoughtDefForReactor(Pawn reactor, SubSexActReactionDef reaction, out Precept precept)

View file

@ -9,6 +9,6 @@ namespace Privacy_Please
{ {
public class SexActThoughtDef : ThoughtDef public class SexActThoughtDef : ThoughtDef
{ {
public ReactionToSexDiscovery reactionToSexDiscovery = ReactionToSexDiscovery.Acceptance; public ReactionToSexAct reactionToSexDiscovery = ReactionToSexAct.Acceptance;
} }
} }

View file

@ -21,7 +21,8 @@ namespace Privacy_Please
__instance is JobDriver_SexBaseInitiator && __instance is JobDriver_SexBaseInitiator &&
pawn.GetAllSexParticipants().Count == 2 && pawn.GetAllSexParticipants().Count == 2 &&
(__instance is JobDriver_JoinInSex) == false && (__instance is JobDriver_JoinInSex) == false &&
Random.value < BasicSettings.chanceForOtherToJoinInSex) Random.value < BasicSettings.chanceForOtherToJoinInSex &&
pawn.TryGetComp<CompPawnThoughtData>()?.CanSendAnInvitionForSex() == true)
{ {
DebugMode.Message("Find another to join in sex?"); DebugMode.Message("Find another to join in sex?");
@ -33,12 +34,10 @@ namespace Privacy_Please
Pawn other = thing as Pawn; Pawn other = thing as Pawn;
if (other == null || pawn == other) continue; if (other == null || pawn == other) continue;
DebugMode.Message("Checking " + other.LabelShort); SexInteractionUtility.GetReactionsToSexAct(pawn.jobs.curDriver as JobDriver_Sex, other, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfOther, false);
SexInteractionUtility.GetReactionsToSexDiscovery(pawn.jobs.curDriver as JobDriver_Sex, other, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfOther, false);
DebugMode.Message("Reaction: " + reactionOfOther);
// Find candidates to invite // Find candidates to invite
if ((int)reactionOfOther >= (int)ReactionToSexDiscovery.Acceptance && SexInteractionUtility.PasserbyCanBePropositionedForSex(other, pawn.GetAllSexParticipants())) if ((int)reactionOfOther >= (int)ReactionToSexAct.Acceptance && SexInteractionUtility.PasserbyCanBePropositionedForSex(other, pawn.GetAllSexParticipants()))
{ {
DebugMode.Message(other.NameShortColored + " is a potential candidate"); DebugMode.Message(other.NameShortColored + " is a potential candidate");
candidates.Add(other); candidates.Add(other);

View file

@ -1,6 +1,6 @@
namespace Privacy_Please namespace Privacy_Please
{ {
public enum ReactionToSexDiscovery public enum ReactionToSexAct
{ {
Approval = 1, Approval = 1,
Uncaring = 0, Uncaring = 0,
@ -9,6 +9,6 @@
Panic = -3, Panic = -3,
Nausea = -4, Nausea = -4,
Ignored = -99, Ignored = -99,
StopSex = -100, Invalid = -100,
} }
} }

View file

@ -37,5 +37,12 @@ namespace Privacy_Please
public static InteractionDef InviteToHaveSex; public static InteractionDef InviteToHaveSex;
public static InteractionDef InviteToHaveGroupSex; public static InteractionDef InviteToHaveGroupSex;
public static InteractionDef InviteVoyeurism; public static InteractionDef InviteVoyeurism;
public static InteractionDef InterruptedSex;
}
[DefOf]
public static class ModSexActReactionDefOf
{
public static SexActReactionDef reactionToExhibitionism;
} }
} }

View file

@ -33,11 +33,14 @@ namespace Privacy_Please
if (SexInteractionUtility.PawnCaughtLovinByWitness(pawn, witness)) if (SexInteractionUtility.PawnCaughtLovinByWitness(pawn, witness))
{ {
// Get the pawn's and witness' reaction to the discovery // Get the pawn's and witness' reaction to the discovery
SexInteractionUtility.GetReactionsToSexDiscovery(jobDriver, witness, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfWitness, true); SexInteractionUtility.GetReactionsToSexAct(jobDriver, witness, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfWitness, true);
bool tryToPropositionTheWitness = Random.value < BasicSettings.chanceForOtherToJoinInSex && jobDriver?.Sexprops.isWhoring != true && SexInteractionUtility.PasserbyCanBePropositionedForSex(witness, pawn.GetAllSexParticipants());
bool tryToPropositionTheWitness = Random.value < BasicSettings.chanceForOtherToJoinInSex &&
SexInteractionUtility.PasserbyCanBePropositionedForSex(witness, pawn.GetAllSexParticipants()) &&
pawn.TryGetComp<CompPawnThoughtData>()?.CanSendAnInvitionForSex() == true;
// Try to proposition the witness // Try to proposition the witness
if ((int)reactionOfPawn >= (int)ReactionToSexDiscovery.Acceptance && (int)reactionOfWitness >= (int)ReactionToSexDiscovery.Acceptance && tryToPropositionTheWitness) if ((int)reactionOfPawn >= (int)ReactionToSexAct.Acceptance && (int)reactionOfWitness >= (int)ReactionToSexAct.Acceptance && tryToPropositionTheWitness)
{ {
// Voyeurism // Voyeurism
if (witness.IsVoyeur() || (witness.IsCuckold() && SexInteractionUtility.SexParticipantsIncludesACheatingPartner(witness, pawn.GetAllSexParticipants()))) if (witness.IsVoyeur() || (witness.IsCuckold() && SexInteractionUtility.SexParticipantsIncludesACheatingPartner(witness, pawn.GetAllSexParticipants())))
@ -77,13 +80,15 @@ namespace Privacy_Please
} }
// The proposition failed. Is this awkward for those having sex? // The proposition failed. Is this awkward for those having sex?
else if ((int)reactionOfPawn < (int)ReactionToSexDiscovery.Uncaring) else if ((int)reactionOfPawn < (int)ReactionToSexAct.Uncaring)
{ {
Find.PlayLog.Add(new PlayLogEntry_Interaction(ModInteractionDefOf.InterruptedSex, witness, pawn, new List<RulePackDef>()));
// The pawn is uncomfortable and is stopping sex // The pawn is uncomfortable and is stopping sex
foreach (Pawn participant in pawn.GetAllSexParticipants()) foreach (Pawn participant in pawn.GetAllSexParticipants())
{ {
JobDriver_Sex participantJobDriver = participant.jobs.curDriver as JobDriver_Sex; JobDriver_Sex participantJobDriver = participant.jobs.curDriver as JobDriver_Sex;
if (participantJobDriver?.ticks_left > 60) if (participantJobDriver?.ticks_left > 60)
{ participantJobDriver.ticks_left = 60; } { participantJobDriver.ticks_left = 60; }
} }

View file

@ -80,12 +80,12 @@ namespace Privacy_Please
return false; return false;
} }
public static void GetReactionsToSexDiscovery(JobDriver_Sex jobDriver, Pawn witness, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfWitness, bool applyThoughtDefs = false) public static void GetReactionsToSexAct(JobDriver_Sex jobDriver, Pawn witness, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfWitness, bool applyThoughtDefs = false)
{ {
Pawn pawn = jobDriver.pawn; Pawn pawn = jobDriver.pawn;
reactionOfPawn = ReactionToSexDiscovery.Uncaring; reactionOfPawn = ReactionToSexAct.Uncaring;
reactionOfWitness = ReactionToSexDiscovery.Uncaring; reactionOfWitness = ReactionToSexAct.Uncaring;
// Determine if there are any issues with the sex event and the witness' morals and apply thoughtDefs as required // Determine if there are any issues with the sex event and the witness' morals and apply thoughtDefs as required
foreach (SexActReactionDef sexActReactionDef in DefDatabase<SexActReactionDef>.AllDefs) foreach (SexActReactionDef sexActReactionDef in DefDatabase<SexActReactionDef>.AllDefs)
@ -98,13 +98,16 @@ namespace Privacy_Please
if ((bool)methodInfo.Invoke(null, new object[] { jobDriver, witness })) if ((bool)methodInfo.Invoke(null, new object[] { jobDriver, witness }))
{ sexActReactionDef.DetermineReactionOfPawns(pawn, witness, out reactionOfPawn, out reactionOfWitness, applyThoughtDefs); break; } { sexActReactionDef.DetermineReactionOfPawns(pawn, witness, out reactionOfPawn, out reactionOfWitness, applyThoughtDefs); break; }
} }
DebugMode.Message("Reaction of " + pawn.NameShortColored + " to " + witness.NameShortColored + "'s presence: " + reactionOfPawn.ToString());
DebugMode.Message("Reaction of " + witness.NameShortColored + " to " + pawn.NameShortColored + "'s activities: " + reactionOfWitness.ToString());
// Exit here if thoughtDefs are not being applied // Exit here if thoughtDefs are not being applied
if (applyThoughtDefs == false || BasicSettings.majorTabooCanCausePanic == false) return; if (applyThoughtDefs == false || BasicSettings.majorTabooCanCausePanic == false) return;
if (witness?.Drafted == true || witness?.mindState?.duty?.def.alwaysShowWeapon == true) return; if (witness?.Drafted == true || witness?.mindState?.duty?.def.alwaysShowWeapon == true) return;
// Panic reaction // Panic reaction
if (reactionOfWitness == ReactionToSexDiscovery.Panic) if (reactionOfWitness == ReactionToSexAct.Panic)
{ {
Job job = JobMaker.MakeJob(JobDefOf.FleeAndCower, CellFinderLoose.GetFleeDest(witness, new List<Thing>() { pawn }, 24f), pawn); Job job = JobMaker.MakeJob(JobDefOf.FleeAndCower, CellFinderLoose.GetFleeDest(witness, new List<Thing>() { pawn }, 24f), pawn);
@ -114,7 +117,7 @@ namespace Privacy_Please
} }
// Vomit reaction // Vomit reaction
else if (reactionOfWitness == ReactionToSexDiscovery.Nausea) else if (reactionOfWitness == ReactionToSexAct.Nausea)
{ {
Job jobVomit = JobMaker.MakeJob(JobDefOf.Vomit); Job jobVomit = JobMaker.MakeJob(JobDefOf.Vomit);
Job jobFlee = JobMaker.MakeJob(JobDefOf.FleeAndCower, CellFinderLoose.GetFleeDest(witness, new List<Thing>() { pawn }, 24f), pawn); Job jobFlee = JobMaker.MakeJob(JobDefOf.FleeAndCower, CellFinderLoose.GetFleeDest(witness, new List<Thing>() { pawn }, 24f), pawn);
@ -175,14 +178,9 @@ namespace Privacy_Please
return BasicSettings.worryAboutXeno && jobDriver.Partner != null && jobDriver.Partner.def.defName != jobDriver.pawn.def.defName; return BasicSettings.worryAboutXeno && jobDriver.Partner != null && jobDriver.Partner.def.defName != jobDriver.pawn.def.defName;
} }
public static bool SexActIsMasturbation(JobDriver_Sex jobDriver, Pawn witness = null)
{
return jobDriver.pawn.IsMasturbating();
}
public static bool SexActIsExhibitionism(JobDriver_Sex jobDriver, Pawn witness = null) public static bool SexActIsExhibitionism(JobDriver_Sex jobDriver, Pawn witness = null)
{ {
return BasicSettings.worryAboutExhibitionism && jobDriver.pawn.IsHavingSex(); return BasicSettings.worryAboutExhibitionism && (jobDriver.pawn.IsMasturbating() || jobDriver.pawn.IsHavingSex());
} }
public static bool SexActIsInfidelity(JobDriver_Sex jobDriver, Pawn witness = null) public static bool SexActIsInfidelity(JobDriver_Sex jobDriver, Pawn witness = null)

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB