mirror of
https://gitgud.io/AbstractConcept/privacy-please.git
synced 2024-08-15 00:03:18 +00:00
v1.0.0
This commit is contained in:
parent
12b947317e
commit
5224ef08c2
28 changed files with 393 additions and 322 deletions
Binary file not shown.
|
@ -26,31 +26,27 @@
|
|||
<li>rim.job.world</li>
|
||||
</loadAfter>
|
||||
<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:
|
||||
|
||||
- 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
|
||||
- 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 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 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 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 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: 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).
|
||||
- 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).
|
||||
- Cheating: Discovering a partner cheating will great upsets most people. Reactions to cheating can be modified through the Infidelity precept (included in this mod).
|
||||
- Bestiality: Witnessing bestiality will deeply disturb most people. 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).
|
||||
- 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).
|
||||
- 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).
|
||||
|
||||
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 other’s 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.
|
||||
- If a pawn encounters a couple having sex then they may just might be invited to join in.
|
||||
- When a pawn sets off to bed their partner, a passer-by might be invited to join them.
|
||||
- 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).
|
||||
|
||||
Misc features
|
||||
- Any lewd fluids that pawns produce during sex will not be marked for cleaning until they are done.
|
||||
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.
|
||||
</description>
|
||||
</ModMetaData>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Manifest>
|
||||
<version>1.0.0</version>
|
||||
<downloadUri></downloadUri>
|
||||
<downloadUri>https://gitgud.io/AbstractConcept/privacy-please</downloadUri>
|
||||
</Manifest>
|
|
@ -4,36 +4,58 @@
|
|||
|
||||
<InteractionDef>
|
||||
<defName>InviteToHaveSex</defName>
|
||||
<label>invited</label>
|
||||
<label>invited to have sex</label>
|
||||
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
|
||||
<symbol>UI/Interactions/Lovin</symbol>
|
||||
<logRulesInitiator>
|
||||
<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>
|
||||
</logRulesInitiator>
|
||||
</InteractionDef>
|
||||
|
||||
<InteractionDef>
|
||||
<defName>InviteToHaveGroupSex</defName>
|
||||
<label>invited</label>
|
||||
<label>invited to have group sex</label>
|
||||
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
|
||||
<symbol>UI/Interactions/Lovin</symbol>
|
||||
<logRulesInitiator>
|
||||
<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>
|
||||
</logRulesInitiator>
|
||||
</InteractionDef>
|
||||
|
||||
<InteractionDef>
|
||||
<defName>InviteVoyeurism</defName>
|
||||
<label>invited</label>
|
||||
<label>invited to watch</label>
|
||||
<workerClass>Privacy_Please.InteractionWorker_NullWorker</workerClass>
|
||||
<symbol>UI/Interactions/Voyeurism</symbol>
|
||||
<logRulesInitiator>
|
||||
<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>
|
||||
</logRulesInitiator>
|
||||
</InteractionDef>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<defName>Exhibitionism_Disapproved</defName>
|
||||
<issue>Exhibitionism</issue>
|
||||
<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>
|
||||
<displayOrderInIssue>30</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
|
@ -23,7 +23,7 @@
|
|||
<defName>Exhibitionism_Acceptable</defName>
|
||||
<issue>Exhibitionism</issue>
|
||||
<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>
|
||||
<displayOrderInIssue>20</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<defName>Exhibitionism_Approved</defName>
|
||||
<issue>Exhibitionism</issue>
|
||||
<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>
|
||||
<displayOrderInIssue>10</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<defName>Infidelity_Disapproved</defName>
|
||||
<issue>Infidelity</issue>
|
||||
<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>
|
||||
<displayOrderInIssue>20</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
|
@ -34,7 +34,7 @@
|
|||
<defName>Infidelity_Acceptable</defName>
|
||||
<issue>Infidelity</issue>
|
||||
<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>
|
||||
<displayOrderInIssue>10</displayOrderInIssue>
|
||||
<displayOrderInImpact>1000</displayOrderInImpact>
|
||||
|
|
|
@ -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>
|
|
@ -7,26 +7,25 @@
|
|||
<issueDefName>Necrophilia</issueDefName>
|
||||
<sexActCheck>SexActIsNecrophilia</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
</pawnReaction>
|
||||
<witnessReaction>
|
||||
<defaultThoughtDef>SawNecrophilia_Abhorrent</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>SawNecrophilia_Abhorrent</li>
|
||||
<li>SawNecrophilia_Horrible</li>
|
||||
<li>SawNecrophilia_Disapproved</li>
|
||||
<li>SawNecrophilia_Acceptable</li>
|
||||
|
@ -46,22 +45,22 @@
|
|||
<Privacy_Please.SexActReactionDef>
|
||||
<defName>reactionToBestialityWithOrdinaryAnimal</defName>
|
||||
<issueDefName>Bestiality</issueDefName>
|
||||
<sexActCheck>SexActIsBestialityWithOrdinaryAnimal</sexActCheck>
|
||||
<sexActCheck>SexActIsBestialityWithOrdinaryAnimal</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
<witnessReaction>
|
||||
|
@ -72,22 +71,22 @@
|
|||
<Privacy_Please.SexActReactionDef>
|
||||
<defName>reactionToBestialityWithSpecialAnimal</defName>
|
||||
<issueDefName>Bestiality</issueDefName>
|
||||
<sexActCheck>SexActIsBestialityWithSpecialAnimal</sexActCheck>
|
||||
<sexActCheck>SexActIsBestialityWithSpecialAnimal</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
<witnessReaction>
|
||||
|
@ -98,28 +97,27 @@
|
|||
<Privacy_Please.SexActReactionDef>
|
||||
<defName>reactionToBestiality</defName>
|
||||
<issueDefName>Bestiality</issueDefName>
|
||||
<sexActCheck>SexActIsBestiality</sexActCheck>
|
||||
<sexActCheck>SexActIsBestiality</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
<witnessReaction>
|
||||
<defaultThoughtDef>SawBestiality_Abhorrent</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>SawBestiality_Abhorrent</li>
|
||||
<li>SawBestiality_Horrible</li>
|
||||
<li>SawBestiality_Disapproved</li>
|
||||
<li>SawBestiality_Acceptable</li>
|
||||
|
@ -139,28 +137,27 @@
|
|||
<Privacy_Please.SexActReactionDef>
|
||||
<defName>reactionToRape</defName>
|
||||
<issueDefName>Rape</issueDefName>
|
||||
<sexActCheck>SexActIsRape</sexActCheck>
|
||||
<sexActCheck>SexActIsRape</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
<witnessReaction>
|
||||
<defaultThoughtDef>SawRape_Abhorrent</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>SawRape_Abhorrent</li>
|
||||
<li>SawRape_Horrible</li>
|
||||
<li>SawRape_Disapproved</li>
|
||||
<li>SawRape_Acceptable</li>
|
||||
|
@ -184,7 +181,6 @@
|
|||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInInfidelity_Heartbreaking</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>PartookInInfidelity_Heartbreaking</li>
|
||||
<li>PartookInInfidelity_Disapproved</li>
|
||||
<li>PartookInInfidelity_Acceptable</li>
|
||||
</preceptThoughtDefs>
|
||||
|
@ -198,7 +194,6 @@
|
|||
<witnessReaction>
|
||||
<defaultThoughtDef>SawInfidelity_Heartbreaking</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>SawInfidelity_Heartbreaking</li>
|
||||
<li>SawInfidelity_Disapproved</li>
|
||||
<li>SawInfidelity_Acceptable</li>
|
||||
</preceptThoughtDefs>
|
||||
|
@ -214,26 +209,32 @@
|
|||
<Privacy_Please.SexActReactionDef>
|
||||
<defName>reactionToXenophilia</defName>
|
||||
<issueDefName>HAR_AlienDating</issueDefName>
|
||||
<sexActCheck>SexActIsXenophilia</sexActCheck>
|
||||
<sexActCheck>SexActIsXenophilia</sexActCheck>
|
||||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<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>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>Exhibitionism_Acceptable</requiredPreceptDef>
|
||||
<replacementThoughtDef>PartookInExhibitionism_Acceptable</replacementThoughtDef>
|
||||
</li>
|
||||
</replacementThoughts>
|
||||
</pawnReaction>
|
||||
<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>
|
||||
<li>
|
||||
<requiredTraits>
|
||||
|
@ -242,81 +243,15 @@
|
|||
<replacementThoughtDef>SawHAR_AlienDating_Prohibited</replacementThoughtDef>
|
||||
</li>
|
||||
<li>
|
||||
<requiredPreceptDef>HAR_AlienDating_Prohibited</requiredPreceptDef>
|
||||
<replacementThoughtDef>SawHAR_AlienDating_Prohibited</replacementThoughtDef>
|
||||
<requiredTraits>
|
||||
<Xenophobia>-1</Xenophobia>
|
||||
</requiredTraits>
|
||||
<replacementThoughtDef>SawHAR_AlienDating_Honorable</replacementThoughtDef>
|
||||
</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>
|
||||
</witnessReaction>
|
||||
</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>
|
||||
<defName>reactionToExhibitionism</defName>
|
||||
<issueDefName>Exhibitionism</issueDefName>
|
||||
|
@ -324,7 +259,6 @@
|
|||
<pawnReaction>
|
||||
<defaultThoughtDef>PartookInExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>PartookInExhibitionism_Disapproved</li>
|
||||
<li>PartookInExhibitionism_Acceptable</li>
|
||||
<li>PartookInExhibitionism_Approved</li>
|
||||
</preceptThoughtDefs>
|
||||
|
@ -338,7 +272,6 @@
|
|||
<witnessReaction>
|
||||
<defaultThoughtDef>SawExhibitionism_Disapproved</defaultThoughtDef>
|
||||
<preceptThoughtDefs>
|
||||
<li>SawExhibitionism_Disapproved</li>
|
||||
<li>SawExhibitionism_Acceptable</li>
|
||||
<li>SawExhibitionism_Approved</li>
|
||||
</preceptThoughtDefs>
|
||||
|
|
|
@ -17,6 +17,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Zoophile</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawBestiality_Horrible</li>
|
||||
<li>SawBestiality_Disapproved</li>
|
||||
<li>SawBestiality_Acceptable</li>
|
||||
<li>SawBestiality_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Panic</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -28,10 +34,10 @@
|
|||
<stages>
|
||||
<li>
|
||||
<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>
|
||||
</li>
|
||||
</stages>
|
||||
</stages>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -50,6 +56,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Zoophile</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawBestiality_Abhorrent</li>
|
||||
<li>SawBestiality_Disapproved</li>
|
||||
<li>SawBestiality_Acceptable</li>
|
||||
<li>SawBestiality_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -68,6 +80,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Zoophile</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawBestiality_Abhorrent</li>
|
||||
<li>SawBestiality_Horrible</li>
|
||||
<li>SawBestiality_Acceptable</li>
|
||||
<li>SawBestiality_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -79,13 +97,19 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>witnessed bestiality</label>
|
||||
<description>That didn't look entirely comfortable.</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
<description>Hope they don't make too much mess.</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraits>
|
||||
<li>Zoophile</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawBestiality_Abhorrent</li>
|
||||
<li>SawBestiality_Horrible</li>
|
||||
<li>SawBestiality_Disapproved</li>
|
||||
<li>SawBestiality_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -98,9 +122,15 @@
|
|||
<li>
|
||||
<label>approved of bestiality</label>
|
||||
<description>The bond between us and our animals makes us strong.</description>
|
||||
<baseMoodEffect>+2</baseMoodEffect>
|
||||
<baseMoodEffect>+3</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawBestiality_Abhorrent</li>
|
||||
<li>SawBestiality_Horrible</li>
|
||||
<li>SawBestiality_Disapproved</li>
|
||||
<li>SawBestiality_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
|
|
@ -10,10 +10,14 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>involuntary exhibitionist</label>
|
||||
<description>Well, that was awkward...</description>
|
||||
<description>Urgh. That was awkward...</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInExhibitionism_Acceptable</li>
|
||||
<li>PartookInExhibitionism_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -25,10 +29,14 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>uncaring exhibitionist</label>
|
||||
<description>Eh, it's no big deal.</description>
|
||||
<description>Uhh, you need something?</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInExhibitionism_Disapproved</li>
|
||||
<li>PartookInExhibitionism_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Uncaring</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -40,10 +48,14 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>exhilerated by exhibitionism</label>
|
||||
<description>Heh, hope they enjoyed the show!</description>
|
||||
<description>This feeling... It's so freeing.</description>
|
||||
<baseMoodEffect>2</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInExhibitionism_Disapproved</li>
|
||||
<li>PartookInExhibitionism_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -59,7 +71,11 @@
|
|||
<description>Jeez! Get a room!</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawExhibitionism_Acceptable</li>
|
||||
<li>SawExhibitionism_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -75,6 +91,10 @@
|
|||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawExhibitionism_Disapproved</li>
|
||||
<li>SawExhibitionism_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Uncaring</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -90,6 +110,10 @@
|
|||
<baseMoodEffect>2</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawExhibitionism_Disapproved</li>
|
||||
<li>SawExhibitionism_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
|
|
@ -14,7 +14,12 @@
|
|||
<description>I'm so sorry, my love. Please, forgive me...</description>
|
||||
<baseMoodEffect>-20</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInInfidelity_Disapproved</li>
|
||||
<li>PartookInInfidelity_Acceptable</li>
|
||||
<li>PartookInInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -30,6 +35,11 @@
|
|||
<baseMoodEffect>-10</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInInfidelity_Heartbreaking</li>
|
||||
<li>PartookInInfidelity_Acceptable</li>
|
||||
<li>PartookInInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -40,11 +50,16 @@
|
|||
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
|
||||
<stages>
|
||||
<li>
|
||||
<label>seen lovin' by partner</label>
|
||||
<label>partner passed by while lovin'</label>
|
||||
<description>Oh hey babe, you wanna join us?</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInInfidelity_Heartbreaking</li>
|
||||
<li>PartookInInfidelity_Disapproved</li>
|
||||
<li>PartookInInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -55,11 +70,16 @@
|
|||
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
|
||||
<stages>
|
||||
<li>
|
||||
<label>caught lovin' by partner</label>
|
||||
<description>The look on their face... It just drives me wild!</description>
|
||||
<label>cuckolded partner</label>
|
||||
<description>The look on their face... It sent my heart racing!</description>
|
||||
<baseMoodEffect>5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>PartookInInfidelity_Heartbreaking</li>
|
||||
<li>PartookInInfidelity_Disapproved</li>
|
||||
<li>PartookInInfidelity_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -75,7 +95,12 @@
|
|||
<description>I feel numb inside.</description>
|
||||
<baseMoodEffect>-20</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawInfidelity_Disapproved</li>
|
||||
<li>SawInfidelity_Acceptable</li>
|
||||
<li>SawInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Panic</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -91,6 +116,11 @@
|
|||
<baseMoodEffect>-10</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawInfidelity_Heartbreaking</li>
|
||||
<li>SawInfidelity_Acceptable</li>
|
||||
<li>SawInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -101,11 +131,16 @@
|
|||
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
|
||||
<stages>
|
||||
<li>
|
||||
<label>saw partner got some lovin'</label>
|
||||
<description>Hey you, save some of that energy for me later, OK?</description>
|
||||
<label>saw that partner got some lovin'</label>
|
||||
<description>Hey, save some of that energy for me later, OK?</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawInfidelity_Heartbreaking</li>
|
||||
<li>SawInfidelity_Disapproved</li>
|
||||
<li>SawInfidelity_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -116,11 +151,16 @@
|
|||
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
|
||||
<stages>
|
||||
<li>
|
||||
<label>caught partner lovin'</label>
|
||||
<description>Oh, you wicked thing! I'm gunna have to punish you for this later...</description>
|
||||
<label>cukolded by partner</label>
|
||||
<description>Wicked thing! I'm gunna have to punish you for this...</description>
|
||||
<baseMoodEffect>5</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawInfidelity_Heartbreaking</li>
|
||||
<li>SawInfidelity_Disapproved</li>
|
||||
<li>SawInfidelity_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -16,7 +16,13 @@
|
|||
</stages>
|
||||
<nullifyingTraits>
|
||||
<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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -35,6 +41,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Necrophiliac</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawNecrophilia_Abhorrent</li>
|
||||
<li>SawNecrophilia_Disapproved</li>
|
||||
<li>SawNecrophilia_Acceptable</li>
|
||||
<li>SawNecrophilia_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -53,6 +65,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Necrophiliac</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawNecrophilia_Abhorrent</li>
|
||||
<li>SawNecrophilia_Horrible</li>
|
||||
<li>SawNecrophilia_Acceptable</li>
|
||||
<li>SawNecrophilia_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -64,13 +82,19 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>witnessed necrophilia</label>
|
||||
<description>They better bury what's left when they're done.</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
<description>They better bury what's left when they're done...</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraits>
|
||||
<li>Necrophiliac</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawNecrophilia_Abhorrent</li>
|
||||
<li>SawNecrophilia_Horrible</li>
|
||||
<li>SawNecrophilia_Disapproved</li>
|
||||
<li>SawNecrophilia_Approved</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -83,9 +107,15 @@
|
|||
<li>
|
||||
<label>approved of necrophilia</label>
|
||||
<description>Passion transcends the grave.</description>
|
||||
<baseMoodEffect>+2</baseMoodEffect>
|
||||
<baseMoodEffect>+3</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawNecrophilia_Abhorrent</li>
|
||||
<li>SawNecrophilia_Horrible</li>
|
||||
<li>SawNecrophilia_Disapproved</li>
|
||||
<li>SawNecrophilia_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
|
|
@ -16,7 +16,13 @@
|
|||
</stages>
|
||||
<nullifyingTraits>
|
||||
<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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -35,6 +41,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Rapist</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawRape_Abhorrent</li>
|
||||
<li>SawRape_Disapproved</li>
|
||||
<li>SawRape_Acceptable</li>
|
||||
<li>SawRape_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -53,6 +65,12 @@
|
|||
<nullifyingTraits>
|
||||
<li>Rapist</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawRape_Abhorrent</li>
|
||||
<li>SawRape_Horrible</li>
|
||||
<li>SawRape_Acceptable</li>
|
||||
<li>SawRape_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Discomfort</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -64,13 +82,19 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>witnessed rape</label>
|
||||
<description>Oh. Um. Carry on?</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
<description>Oh. Um. Carry on...?</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraits>
|
||||
<li>Rapist</li>
|
||||
</nullifyingTraits>
|
||||
<replaceThoughts>
|
||||
<li>SawRape_Abhorrent</li>
|
||||
<li>SawRape_Horrible</li>
|
||||
<li>SawRape_Disapproved</li>
|
||||
<li>SawRape_Honorable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Acceptance</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -82,10 +106,16 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>approved of rape</label>
|
||||
<description>The strong claim the weak.</description>
|
||||
<baseMoodEffect>+2</baseMoodEffect>
|
||||
<description>The strong will claim the weak.</description>
|
||||
<baseMoodEffect>+3</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<replaceThoughts>
|
||||
<li>SawRape_Abhorrent</li>
|
||||
<li>SawRape_Horrible</li>
|
||||
<li>SawRape_Disapproved</li>
|
||||
<li>SawRape_Acceptable</li>
|
||||
</replaceThoughts>
|
||||
<reactionToSexDiscovery>Approval</reactionToSexDiscovery>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
|
|
@ -10,13 +10,19 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>disturbed by xenophilia</label>
|
||||
<description>Filthy degenerates.</description>
|
||||
<description>Urgh. Filthy degenerates...</description>
|
||||
<baseMoodEffect>-15</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraitDegrees>
|
||||
<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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -28,19 +34,23 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>upset about xenophilia</label>
|
||||
<description>Urgh. It's just not right...</description>
|
||||
<description>It's just not right...</description>
|
||||
<baseMoodEffect>-10</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraitDegrees>
|
||||
<Xenophobia>-1</Xenophobia>
|
||||
</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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
<!-- It just counts as exhibitionism from this point on -->
|
||||
|
||||
<!--<Privacy_Please.SexActThoughtDef>
|
||||
|
||||
<Privacy_Please.SexActThoughtDef>
|
||||
<defName>SawHAR_AlienDating_Acceptable</defName>
|
||||
<durationDays>3</durationDays>
|
||||
<stackLimit>3</stackLimit>
|
||||
|
@ -48,13 +58,19 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>witnessed xenophilia</label>
|
||||
<description>Oops, sorry about that!</description>
|
||||
<baseMoodEffect>-5</baseMoodEffect>
|
||||
<description>I'd always wondered how'd that would work...</description>
|
||||
<baseMoodEffect>0.01</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraitDegrees>
|
||||
<Xenophobia>1</Xenophobia>
|
||||
</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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
|
@ -66,32 +82,44 @@
|
|||
<stages>
|
||||
<li>
|
||||
<label>amused by xenophilia</label>
|
||||
<description>I wonder what their kids would look like?</description>
|
||||
<baseMoodEffect>+1</baseMoodEffect>
|
||||
<description>Huh. Wonder what their kids would look like?</description>
|
||||
<baseMoodEffect>1</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraitDegrees>
|
||||
<Xenophobia>1</Xenophobia>
|
||||
</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>
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
<Privacy_Please.SexActThoughtDef>
|
||||
<defName>SawHAR_AlienDating_Know_Honorable</defName>
|
||||
<defName>SawHAR_AlienDating_Honorable</defName>
|
||||
<durationDays>3</durationDays>
|
||||
<stackLimit>3</stackLimit>
|
||||
<stackLimitForSameOtherPawn>1</stackLimitForSameOtherPawn>
|
||||
<stages>
|
||||
<li>
|
||||
<label>approved of xenophilia</label>
|
||||
<description>Blending our species will make us stronger.</description>
|
||||
<baseMoodEffect>+2</baseMoodEffect>
|
||||
<description>Blending their species will make us stronger.</description>
|
||||
<baseMoodEffect>3</baseMoodEffect>
|
||||
</li>
|
||||
</stages>
|
||||
<nullifyingTraitDegrees>
|
||||
<Xenophobia>1</Xenophobia>
|
||||
</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>
|
||||
</Privacy_Please.SexActThoughtDef>-->
|
||||
</Privacy_Please.SexActThoughtDef>
|
||||
|
||||
</Defs>
|
||||
|
|
Binary file not shown.
|
@ -15,6 +15,8 @@ namespace Privacy_Please
|
|||
private Pawn pawn;
|
||||
private int lastExclaimationTick = -1;
|
||||
private int exclaimationCoolDown = 90;
|
||||
private int lastInvitationTick = 600;
|
||||
private int invitationCoolDown = 600;
|
||||
|
||||
public override void Initialize(CompProperties props)
|
||||
{
|
||||
|
@ -50,5 +52,16 @@ namespace Privacy_Please
|
|||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,43 +45,41 @@ namespace Privacy_Please
|
|||
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);
|
||||
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;
|
||||
|
||||
// Reactors who do not have thoughts applied to them
|
||||
if (reactor.IsUnableToSenseSex()) return ReactionToSexDiscovery.Ignored;
|
||||
if (reactor.HostileTo(otherPawn)) return ReactionToSexDiscovery.StopSex;
|
||||
if (reactor.RaceProps.Animal || reactor.RaceProps.IsMechanoid) return ReactionToSexDiscovery.Ignored;
|
||||
if (otherPawn.RaceProps.Animal || otherPawn.RaceProps.IsMechanoid) return ReactionToSexDiscovery.Uncaring;
|
||||
if (BasicSettings.slavesIgnoreSex && (reactor.IsPrisoner || reactor.IsSlave)) return ReactionToSexDiscovery.Uncaring;
|
||||
if (BasicSettings.otherFactionsIgnoreSex && reactor.Faction.IsPlayer == false) return ReactionToSexDiscovery.Uncaring;
|
||||
if (BasicSettings.colonistsIgnoreSlaves && (otherPawn.IsPrisoner || otherPawn.IsSlave)) return ReactionToSexDiscovery.Uncaring;
|
||||
if (BasicSettings.colonistsIgnoreOtherFactions && otherPawn.Faction.IsPlayer == false) return ReactionToSexDiscovery.Uncaring;
|
||||
if (reactor.IsUnableToSenseSex()) return ReactionToSexAct.Ignored;
|
||||
if (reactor.HostileTo(otherPawn)) return ReactionToSexAct.Ignored;
|
||||
if (reactor.RaceProps.Animal || reactor.RaceProps.IsMechanoid) return ReactionToSexAct.Ignored;
|
||||
if (otherPawn.RaceProps.Animal || otherPawn.RaceProps.IsMechanoid) return ReactionToSexAct.Uncaring;
|
||||
if (BasicSettings.slavesIgnoreSex && (reactor.IsPrisoner || reactor.IsSlave)) return ReactionToSexAct.Uncaring;
|
||||
if (BasicSettings.otherFactionsIgnoreSex && reactor.Faction.IsPlayer == false) return ReactionToSexAct.Uncaring;
|
||||
if (BasicSettings.colonistsIgnoreSlaves && (otherPawn.IsPrisoner || otherPawn.IsSlave)) return ReactionToSexAct.Uncaring;
|
||||
if (BasicSettings.colonistsIgnoreOtherFactions && otherPawn.Faction.IsPlayer == false) return ReactionToSexAct.Uncaring;
|
||||
|
||||
// Apply thoughtDef
|
||||
SexActThoughtDef thoughtDef = GetThoughtDefForReactor(reactor, reaction, out Precept precept);
|
||||
ReactionToSexDiscovery reactionToSexAct = thoughtDef.reactionToSexDiscovery;
|
||||
|
||||
if (applyThoughtDef)
|
||||
{ reactor.needs.mood.thoughts.memories.TryGainMemory(thoughtDef, otherPawn, precept); }
|
||||
if (thoughtDef == null) return ReactionToSexAct.Uncaring;
|
||||
if (applyThoughtDef) reactor.needs.mood.thoughts.memories.TryGainMemory(thoughtDef, otherPawn, precept);
|
||||
|
||||
var nullifyingTraits = ThoughtUtility.GetNullifyingTraits(thoughtDef)?.ToList();
|
||||
|
||||
if (applyThoughtDef && thoughtDef.stages[0].baseMoodEffect < 0 && nullifyingTraits?.Any(x => x.HasTrait(reactor)) != true)
|
||||
{ reactor.TryGetComp<CompPawnThoughtData>()?.TryToExclaim(); }
|
||||
|
||||
var nullifyingTraits = ThoughtUtility.GetNullifyingTraits(thoughtDef)?.ToList();
|
||||
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
|
||||
if (BasicSettings.whoringIsUninteruptable && jobDriver?.Sexprops?.isWhoring == true) return ReactionToSexDiscovery.Uncaring;
|
||||
if (BasicSettings.rapeIsUninteruptable && jobDriver?.Sexprops?.isRape == true) return ReactionToSexDiscovery.Uncaring;
|
||||
if ((otherPawn.jobs.curDriver as JobDriver_Sex)?.Sexprops.isWhoring == true) return ReactionToSexAct.Ignored;
|
||||
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)
|
||||
|
|
|
@ -9,6 +9,6 @@ namespace Privacy_Please
|
|||
{
|
||||
public class SexActThoughtDef : ThoughtDef
|
||||
{
|
||||
public ReactionToSexDiscovery reactionToSexDiscovery = ReactionToSexDiscovery.Acceptance;
|
||||
public ReactionToSexAct reactionToSexDiscovery = ReactionToSexAct.Acceptance;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,8 @@ namespace Privacy_Please
|
|||
__instance is JobDriver_SexBaseInitiator &&
|
||||
pawn.GetAllSexParticipants().Count == 2 &&
|
||||
(__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?");
|
||||
|
||||
|
@ -33,12 +34,10 @@ namespace Privacy_Please
|
|||
Pawn other = thing as Pawn;
|
||||
if (other == null || pawn == other) continue;
|
||||
|
||||
DebugMode.Message("Checking " + other.LabelShort);
|
||||
SexInteractionUtility.GetReactionsToSexDiscovery(pawn.jobs.curDriver as JobDriver_Sex, other, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfOther, false);
|
||||
DebugMode.Message("Reaction: " + reactionOfOther);
|
||||
SexInteractionUtility.GetReactionsToSexAct(pawn.jobs.curDriver as JobDriver_Sex, other, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfOther, false);
|
||||
|
||||
// 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");
|
||||
candidates.Add(other);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
namespace Privacy_Please
|
||||
{
|
||||
public enum ReactionToSexDiscovery
|
||||
public enum ReactionToSexAct
|
||||
{
|
||||
Approval = 1,
|
||||
Uncaring = 0,
|
||||
|
@ -9,6 +9,6 @@
|
|||
Panic = -3,
|
||||
Nausea = -4,
|
||||
Ignored = -99,
|
||||
StopSex = -100,
|
||||
Invalid = -100,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,5 +37,12 @@ namespace Privacy_Please
|
|||
public static InteractionDef InviteToHaveSex;
|
||||
public static InteractionDef InviteToHaveGroupSex;
|
||||
public static InteractionDef InviteVoyeurism;
|
||||
public static InteractionDef InterruptedSex;
|
||||
}
|
||||
|
||||
[DefOf]
|
||||
public static class ModSexActReactionDefOf
|
||||
{
|
||||
public static SexActReactionDef reactionToExhibitionism;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,11 +33,14 @@ namespace Privacy_Please
|
|||
if (SexInteractionUtility.PawnCaughtLovinByWitness(pawn, witness))
|
||||
{
|
||||
// Get the pawn's and witness' reaction to the discovery
|
||||
SexInteractionUtility.GetReactionsToSexDiscovery(jobDriver, witness, out ReactionToSexDiscovery reactionOfPawn, out ReactionToSexDiscovery reactionOfWitness, true);
|
||||
bool tryToPropositionTheWitness = Random.value < BasicSettings.chanceForOtherToJoinInSex && jobDriver?.Sexprops.isWhoring != true && SexInteractionUtility.PasserbyCanBePropositionedForSex(witness, pawn.GetAllSexParticipants());
|
||||
SexInteractionUtility.GetReactionsToSexAct(jobDriver, witness, out ReactionToSexAct reactionOfPawn, out ReactionToSexAct reactionOfWitness, true);
|
||||
|
||||
bool tryToPropositionTheWitness = Random.value < BasicSettings.chanceForOtherToJoinInSex &&
|
||||
SexInteractionUtility.PasserbyCanBePropositionedForSex(witness, pawn.GetAllSexParticipants()) &&
|
||||
pawn.TryGetComp<CompPawnThoughtData>()?.CanSendAnInvitionForSex() == true;
|
||||
|
||||
// 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
|
||||
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?
|
||||
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
|
||||
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)
|
||||
{ participantJobDriver.ticks_left = 60; }
|
||||
}
|
||||
|
|
|
@ -80,12 +80,12 @@ namespace Privacy_Please
|
|||
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;
|
||||
|
||||
reactionOfPawn = ReactionToSexDiscovery.Uncaring;
|
||||
reactionOfWitness = ReactionToSexDiscovery.Uncaring;
|
||||
|
||||
reactionOfPawn = ReactionToSexAct.Uncaring;
|
||||
reactionOfWitness = ReactionToSexAct.Uncaring;
|
||||
|
||||
// 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)
|
||||
|
@ -98,13 +98,16 @@ namespace Privacy_Please
|
|||
if ((bool)methodInfo.Invoke(null, new object[] { jobDriver, witness }))
|
||||
{ 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
|
||||
if (applyThoughtDefs == false || BasicSettings.majorTabooCanCausePanic == false) return;
|
||||
if (witness?.Drafted == true || witness?.mindState?.duty?.def.alwaysShowWeapon == true) return;
|
||||
|
||||
// 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);
|
||||
|
||||
|
@ -114,7 +117,7 @@ namespace Privacy_Please
|
|||
}
|
||||
|
||||
// Vomit reaction
|
||||
else if (reactionOfWitness == ReactionToSexDiscovery.Nausea)
|
||||
else if (reactionOfWitness == ReactionToSexAct.Nausea)
|
||||
{
|
||||
Job jobVomit = JobMaker.MakeJob(JobDefOf.Vomit);
|
||||
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;
|
||||
}
|
||||
|
||||
public static bool SexActIsMasturbation(JobDriver_Sex jobDriver, Pawn witness = null)
|
||||
{
|
||||
return jobDriver.pawn.IsMasturbating();
|
||||
}
|
||||
|
||||
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)
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Textures/UI/Interactions/Exclaimation.png
Normal file
BIN
Textures/UI/Interactions/Exclaimation.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.7 KiB |
Loading…
Add table
Add a link
Reference in a new issue