<!-- This tutorial will help you understand how to construct situational opinion for Nudity tabs custom log. -->
<!-- This part is more complex. I will try to describe all the hidden obsticles as i can. -->
<!-- User adviced firstly to read Custom private parts opinon tutorial.xml in this folder, for better understanding of overall image. -->

<!-- Main focus is for Observer perspective (I saw John, masturbating) and Observed perspective (When i was masturbating, John was staring at me).
Self observation was implemented, but never tested and used, as hard to trigger corectly for a pawn observing own nudity.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
What you need to know, from Nudity Matters More logic:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Male pawns are not registred as topless, if not trap.
Some interactions are not nude in reality, for example, taking a shower from dubs bad hygiene mod. Your pawn have clothes when showering, just we dont see them, so avoid specifying
nudity condition status in all interactions, except Naked, Bottomless, Topless, or your opinion will never triger, 
as game returns nudity status as clothed, the only way that scenario would work if nude pawns walks in shower, then it will register.

Covering status is possible to triger and describe, but genitals and other parts still will not be registred in nudity tab, for obvios reasons.

If multiple pawns oberving one nude pawn, some opinions may not be registred (i think i fixed that), but if you notice that, that means game tick for creating opinon just traped at delay,
that prevents opinions dobleing.


Also, you are not foced to use all conditions, these conditions only helps to define more specific scenario. You can just not include specification, to cover more possible pawns 
But beware, requiredInteractionType gives filter massive weight 10000, for interaction prioritation. -> Describe anything but NOT <requiredInteractionType>Naked, Topless, Bottomless, or Covering</requiredInteractionType>)(Never use them)
use <requiredObservedDressState> to add opinion for naked or covering pawns <requiredObservedIsCovering>true</requiredObservedIsCovering>  (this is basic nudity), because you will filter out all predefined basic nudity opinions
and will break Nnm covering logic if you include <requiredInteractionType>Covering</requiredInteractionType>.  
Perspective is important and gives 1000 weight points, if not defined, you will filter out your opinion, only Smaller bonus for "Any" perspective (will work if there is no exact match).-->

<!-- Example of all possible checks for OBSERVER PAWN to give opinion for OBSERVED pawn. Example: I saw, that Anna was showering. -->

<?xml version="1.0" encoding="utf-8"?>
<Defs>

  <NudityMattersMore_opinions.OpinionDef_Situational Name="Example_SawSomethingInteresting"> <!-- In situations, you must Define Name="" , or errors will occur -->
    <defName>Example_SawSomethingInteresting</defName> <!-- This must be unique ALWAYS, you can copy def name above and paste here, if not defined, xml errors will occur -->
    <label>Example of i saw something interesting</label> <!-- Unique label name -->
    <opinionCategory>Positive</opinionCategory> <!-- Positive, Negative, Neutral -->
    <modExtensions> <!-- Specific conditions for this opinion to occur -->
      <li Class="NudityMattersMore_opinions.OpinionConditionExtension_Situational">
        <perspective>UsedForObserver</perspective>  <!-- Important, this defines perspective OBSERVER (I saw Anna naked) or OBSERVED (I was naked, and saw John stared at me). 
		All posible Any, // Applies to any perspective unless a more specific opinion is given (not used, but possible)
		UsedForObserver, // Observer's opinion of another
		UsedForObserved, // Observer's opinion of being seen
		UsedForSelf // Pawn's opinion of itself (not tested, probably will never triger) -->
		
		<!-- Conditions for observed pawn (this pawn must have below conditions to recieve this specific opinion)-->
        <requiredInteractionType>Bath</requiredInteractionType> <!-- Shower, Bath, MedicalFull, Rape, Sex, etc. See list below of supported interactions. -->
		<requiredObservedDressState>Naked</requiredObservedDressState> <!-- Clothed, Naked, Topless, Bottomless, Covering, STRONG ADVICE TO NOT USE IF DESCRIBING INTERACTIONS (anything else but NOT <requiredInteractionType>Naked, Topless, Bottomless, or Covering</requiredInteractionType>)-->
        <requiredObservedAware>true</requiredObservedAware> <!-- true, false (skip if doesnt matter) -->
        <requiredBodyPartSeen>Chest</requiredBodyPartSeen> <!-- Chest, Genitals, Anus. -->
        <requiredGenitalFamily>Breasts</requiredGenitalFamily> <!--  Vagina, Penis, Breasts, Anus, FemaleOvipositor, MaleOvipositor -->
		<requiredPartSizeRange><min>0.60</min><max>2</max></requiredPartSizeRange>
		<requiredObservedGender>Female</requiredObservedGender> <!-- Male, Female, None (for none better skip this field) -->
		<!-- additoinal conditions for observed pawn, you mostly stick with above, but you have choice to add these also -->
		<requiredPawnState>Asleep</requiredPawnState> <!-- Better not include if you have requiredInteractionType. Possible states: Uncaring, Unallowed, CanSee, Asleep, Unconscious, Unable, Unaware, None.-->
		<requiredObservedPregnancyTrimester>Second</requiredObservedPregnancyTrimester> <!-- Any, First, Second, Third -->
		<requiredPawnState>Asleep</requiredPawnState> <!-- Better not include if you have requiredInteractionType. Possible states: Uncaring, Unallowed, CanSee, Asleep, Unconscious, Unable, Unaware, None.-->
		<requiredObservedTrait>NMM_Prude</requiredObservedTrait> <!-- Example(e.g., Psychopath, Kind, Abrasive..., or from mods) -->
        <requiredObservedHediffDef>Addiction</requiredObservedHediffDef> <!-- refered to health tab HediffDef (e.g., Addiction, Wound etc) -->
        <requiredObservedGeneDef>Hair_LongOnly</requiredObservedGeneDef> <!-- all genes, custom or vanilla biotech may be used, GeneDef (SuperImmunity etc) -->
        <requiredObservedLifeStage>HumanlikeTeenager</requiredObservedLifeStage> <!-- HumanlikeBaby, HumanlikeChild, HumanlikeTeenager, HumanlikeAdult or custom -->
        <requiredObservedPawnKind>Prisoner</requiredObservedPawnKind> <!-- Example: PawnKindDef (e.g., Colonist, Prisoner, WildMan) -->
        <requiredObservedIsCovering>false</requiredObservedIsCovering> <!-- true, false (skip for any, skip if using interaction, or interaction allows this state to be defined) -->
        <requiredObservedMinBiologicalAge>13</requiredObservedMinBiologicalAge> <!-- oberver biologcical minimal age gap to triger-->
        <requiredObservedMaxBiologicalAge>18</requiredObservedMaxBiologicalAge> <!-- oberver biologcical maximal age gap to triger -->
        <requiredObservedNeedSexState>Frustrated</requiredObservedNeedSexState> <!-- Any, Frustrated, Horny, Neutral, Satisfied, Ahegao -->
        <requiredObservedRelation>Lover</requiredObservedRelation> <!-- Relations between two pawns in this example must be Spouse or Lover -->
		
		
        <!-- Conditons for OBSERVER to say that opininon -->
        <requiredObserverTrait>Psychopath</requiredObserverTrait> <!-- Example(e.g., Psychopath, Kind, Abrasive..., or from mods) -->
        <requiredObserverHediffDef>PsychicShock</requiredObserverHediffDef> <!-- refered to health tab HediffDef (e.g., Addiction, Wound etc) -->
        <requiredObserverGeneDef>Hair_LongOnly</requiredObserverGeneDef> --> <!-- all genes, custom or vanilla biotech may be used, GeneDef (SuperImmunity etc) -->
        <requiredObserverGender>Female</requiredObserverGender> <!-- Male, Female, None (delete for not specidfief) -->
        <requiredObserverLifeStage>HumanlikeAdult</requiredObserverLifeStage> <!-- HumanlikeBaby, HumanlikeChild, HumanlikeTeenager, HumanlikeAdult or custom -->
        <requiredObserverPawnKind>Colonist</requiredObserverPawnKind> <!-- Example: PawnKindDef (e.g., Colonist, Prisoner, WildMan) -->
        <requiredObserverQuirk>Nymphomaniac</requiredObserverQuirk> <!-- Look for Quirk.Key or LocaliztionKey -->
        <requiredObserverMinBiologicalAge>20</requiredObserverMinBiologicalAge> <!-- oberver biologcical minimal age gap to triger-->
        <requiredObserverMaxBiologicalAge>60</requiredObserverMaxBiologicalAge> <!-- oberver biologcical maximal age gap to triger -->
        <requiredObserverNeedSexState>Horny</requiredObserverNeedSexState> <!-- Any, Frustrated, Horny, Neutral, Satisfied, Ahegao -->
        <requiredObserverDressState>Naked</requiredObserverDressState> <!-- Topless, Bottomless, Naked, Clothed, Covering -->
        <requiredObserverIsCovering>false<requiredObserverIsCovering> <!-- is observer covering his nudity true or false -->
        <requiredObserverPregnancyTrimester>First<requiredObserverPregnancyTrimester> <!-- is observer pregnant: Any, First, Second, Third -->
        
      </li>
    </modExtensions>
    <opinionTexts>
      <li>{OBSERVER_nameShort} caught a glimpse of {OBSERVED_nameShortPossessive} impressive {OBSERVED_gender} breasts.</li> <!-- Just informational, still can be used, but not so personal -->
      <li>As I walked by, i saw {OBSERVED_nameShort}, {OBSERVED_pronoun} was walking around breasts naked, such a display.</li> <!-- more personal, we are trying to do like this -->
      <li></li> <!-- You can have as many descriptions as you like for your specified triger -->
      <li></li>
      <li></li>
      <li></li>
      <li></li>
      <li></li>
    </opinionTexts>
  </NudityMattersMore_opinions.OpinionDef_Situational>
  
  <!-- You can have as many Def as you like in a single document, just not forget to make their names unique and close with </Defs> at document end -->
</Defs>



<!-- Clean general example -->


<?xml version="1.0" encoding="utf-8"?>
<Defs>
	<NudityMattersMore_opinions.OpinionDef_Situational Name="Example_of_predefined_Saw_Female_Large_breasts_positive">
		<defName>Example_of_predefined_Saw_Female_Large_breasts_positive</defName>
        <label>Example_of_predefined_Saw_Female_Large_breasts_positive</label>
        <opinionCategory>Positive</opinionCategory>
        <modExtensions>
            <li Class="NudityMattersMore_opinions.OpinionConditionExtension_Situational">
                <perspective>UsedForObserver</perspective>
                <requiredObservedDressState>Topless</requiredObservedDressState>
				<requiredBodyPartSeen>Chest</requiredBodyPartSeen>
				<requiredGenitalFamily>Breasts</requiredGenitalFamily>
				<requiredPartSizeRange><min>0.60</min><max>2</max></requiredPartSizeRange> <!-- Size generalization, from average to enormous, but you can target as you like -->
				<requiredObservedIsCovering>false</requiredObservedIsCovering>
                <requiredObservedGender>Female</requiredObservedGender>
            </li>
        </modExtensions>
		<opinionTexts>
			<li>Saw {PAWN_nameShort} topless and liked it.</li>
        </opinionTexts>
    </NudityMattersMore_opinions.OpinionDef_Situational>
</Defs>



<!-- For OBSERVED perspective all is the same, but remember, OBSERVED is a pawn in this scenario, who gives opinion about being seen by observer.
Example: I OBSERVED_pawn, was seen by OBSERVER_pawn, when i OBSERVED_pawn was showering.
In sentence: I (Anna) was seen by (John), when i was showering. -->

<?xml version="1.0" encoding="utf-8"?>
<Defs>

  <NudityMattersMore_opinions.OpinionDef_Situational Name="Example_I_WAS_seen"> <!-- dont forget to define name here -->
    <defName>Example_I_WAS_seen</defName> <!-- This must be unique ALWAYS, if not, xml errors will occur -->
    <label>Example of i was seen</label> <!-- Unique label name -->
    <opinionCategory>Positive</opinionCategory> <!-- Positive, Negative, Neutral -->
    <modExtensions> <!-- Specific conditions for this opinion to occur -->
      <li Class="NudityMattersMore_opinions.OpinionConditionExtension_Situational">
        <perspective>UsedForObserved</perspective>  <!-- Important, this trigers opinion from pawn of being seen). 
		<!-- Conditions for observed pawn (this pawn must have below conditions to say own opinioin)-->
        <requiredInteractionType>Bath</requiredInteractionType> <!-- Shower, Bath, MedicalFull, Rape, Sex, etc. See list below of supported interactions. -->
        <requiredPawnState>Asleep</requiredPawnState> <!-- Better not include if you have requiredInteractionType. Possible states: Uncaring, Unallowed, CanSee, Asleep, Unconscious, Unable, Unaware, None.-->
        <requiredObservedAware>true</requiredObservedAware> <!-- true, false (skip if doesnt matter) -->
        <requiredBodyPartSeen>Chest</requiredBodyPartSeen> <!-- Chest, Genitals, Anus. -->
        <requiredGenitalFamily>Breasts</requiredGenitalFamily> <!--  Vagina, Penis, Breasts, Anus, FemaleOvipositor, MaleOvipositor -->
		<requiredPartSizeRange><min>0.60</min><max>2</max></requiredPartSizeRange>
		<requiredObservedGender>Female</requiredObservedGender> <!-- Male, Female, None (for none better skip this field) -->
		<requiredObservedDressState>Naked</requiredObservedDressState> <!-- Clothed, Naked, Topless, Bottomless, Covering, (IF <requiredInteractionType> PRESENT, NEVER USE THIS FIELD) -->
		<!-- additoinal conditions for observed pawn, you mostly stick with above, but you have choice to add these also -->
		<requiredObservedPregnancyTrimester>Second</requiredObservedPregnancyTrimester> <!-- Any, First, Second, Third -->
		<requiredPawnState>Asleep</requiredPawnState> <!-- Better not include if you have requiredInteractionType. Possible states: Uncaring, Unallowed, CanSee, Asleep, Unconscious, Unable, Unaware, None.-->
		<requiredObservedTrait>NMM_Prude</requiredObservedTrait> <!-- Example(e.g., Psychopath, Kind, Abrasive..., or from mods) -->
        <requiredObservedHediffDef>Addiction</requiredObservedHediffDef> <!-- refered to health tab HediffDef (e.g., Addiction, Wound etc) -->
        <requiredObservedGeneDef>Hair_LongOnly</requiredObservedGeneDef> <!-- all genes, custom or vanilla biotech may be used, GeneDef (SuperImmunity etc) -->
        <requiredObservedLifeStage>HumanlikeTeenager</requiredObservedLifeStage> <!-- HumanlikeBaby, HumanlikeChild, HumanlikeTeenager, HumanlikeAdult or custom -->
        <requiredObservedPawnKind>Prisoner</requiredObservedPawnKind> <!-- Example: PawnKindDef (e.g., Colonist, Prisoner, WildMan) -->
        <requiredObservedIsCovering>false</requiredObservedIsCovering> <!-- true, false (skip for any, skip if using interaction, or interaction allows this state to be defined) -->
        <requiredObservedMinBiologicalAge>13</requiredObservedMinBiologicalAge> <!-- oberver biologcical minimal age gap to triger-->
        <requiredObservedMaxBiologicalAge>18</requiredObservedMaxBiologicalAge> <!-- oberver biologcical maximal age gap to triger -->
        <requiredObservedNeedSexState>Frustrated</requiredObservedNeedSexState> <!-- Any, Frustrated, Horny, Neutral, Satisfied, Ahegao -->
        <requiredObservedRelation>Lover</requiredObservedRelation> <!-- Relations between two pawns in this example must be Spouse or Lover -->
		
		
        <!-- Conditons for OBSERVER to be refered in opinion. If observer doesnt matter, dont specify conditions-->
        <requiredObserverTrait>Psychopath</requiredObserverTrait> <!-- Example(e.g., Psychopath, Kind, Abrasive..., or from mods) -->
        <requiredObserverHediffDef>PsychicShock</requiredObserverHediffDef> <!-- refered to health tab HediffDef (e.g., Addiction, Wound etc) -->
        <requiredObserverGeneDef>Hair_LongOnly</requiredObserverGeneDef> --> <!-- all genes, custom or vanilla biotech may be used, GeneDef (SuperImmunity etc) -->
        <requiredObserverGender>Female</requiredObserverGender> <!-- Male, Female, None (delete for not specidfief) -->
        <requiredObserverLifeStage>HumanlikeAdult</requiredObserverLifeStage> <!-- HumanlikeBaby, HumanlikeChild, HumanlikeTeenager, HumanlikeAdult or custom -->
        <requiredObserverPawnKind>Colonist</requiredObserverPawnKind> <!-- Example: PawnKindDef (e.g., Colonist, Prisoner, WildMan) -->
        <requiredObserverQuirk>Nymphomaniac</requiredObserverQuirk> <!-- Look for Quirk.Key or LocaliztionKey -->
        <requiredObserverMinBiologicalAge>20</requiredObserverMinBiologicalAge> <!-- oberver biologcical minimal age gap to triger-->
        <requiredObserverMaxBiologicalAge>60</requiredObserverMaxBiologicalAge> <!-- oberver biologcical maximal age gap to triger -->
        <requiredObserverNeedSexState>Horny</requiredObserverNeedSexState> <!-- Any, Frustrated, Horny, Neutral, Satisfied, Ahegao -->
        <requiredObserverDressState>Naked</requiredObserverDressState> <!-- Topless, Bottomless, Naked, Clothed, Covering -->
        <requiredObserverIsCovering>false<requiredObserverIsCovering> <!-- is observer covering his nudity true or false -->
        <requiredObserverPregnancyTrimester>First<requiredObserverPregnancyTrimester> <!-- is observer pregnant: Any, First, Second, Third -->
        
      </li>
    </modExtensions>
    <opinionTexts>
      <li>As I walked by {OBSERVER_nameShort}, {OBSERVER_possessive} eyes widened in admiration as they landed on my enormous breasts, and I felt a thrill of excitement and pride.</li>
      <li></li>
      <li></li>
    </opinionTexts>
  </NudityMattersMore_opinions.OpinionDef_Situational>
</Defs>

<!-- Clean example of OBSERVED perspective -->
<?xml version="1.0" encoding="utf-8"?>
<Defs>
	<NudityMattersMore_opinions.OpinionDef_Situational Name="Example_iWas_unisex_naked_NTTC_Positive">
		<defName>Example_iWas_unisex_naked_NTTC_Positive</defName>
        <label>Example_iWas_unisex_naked_NTTC(Positive)</label>
        <opinionCategory>Positive</opinionCategory>
        <modExtensions>
            <li Class="NudityMattersMore_opinions.OpinionConditionExtension_Situational">
                <perspective>UsedForObserved</perspective>
                <requiredObservedDressState>Naked</requiredObservedDressState>
				<requiredObservedIsCovering>false</requiredObservedIsCovering>
            </li>
        </modExtensions>
		<opinionTexts>
            <li>I reveled in the attention as {OBSERVER_nameShortPossessive} gaze fell upon my naked form, {OBSERVER_possessive} eyes feasting on my body with a hunger that left me breathless.</li>
        </opinionTexts>
    </NudityMattersMore_opinions.OpinionDef_Situational>
</Defs>


<!-- Text replace tokens -->

<!--
I higly suggest you to use OBSERVED/OBSERVER tokens. (In this type of interactions it plays huge role)

Default tokens, refers to OBSERVED pawn (not self opinion).
{PAWN_nameShort} - Short pawn name, example: John, Sara...
{PAWN_possessive} - Possessive pronoun of pawn. Example: {PAWN_nameShort} and {PAWN_possessive} ego. -> John and his ego.
{PAWN_nameShortPossessive} - Possessive name of pawn. Example: {PAWN_nameShortPossessive} ample chest. -> Anna's ample chest.
{PAWN_nameFull} - Full pawn name, example Todd Howard, the skyrim seller. (not recomended to use all full name tokens).
{PAWN_gender} - Gender of observed pawn. Example: {PAWN_nameShort} {PAWN_gender} -> Anna female (trap, futa or custom also will be displayed if matched.)
{PAWN_pronoun} - He, she, it. example: That smile was cute, {PAWN_pronoun} is adorable. -> That smile was cute, she is adorable.
{PAWN_objective} - His, her, their. (well this field mostly matter in other languages)
{PAWN_kindDef} - Pawn kind, example: I noticed Colonist near the lake.
{PAWN_faction} - Faction of pawn. example: John from Panty stealers orange union.


OBSERVER - who saw genitals.
Same as above. I will only include examples here.

{OBSERVER_nameShort} - John
{OBSERVER_nameShortPossessive} - John's
{OBSERVER_gender} - Male
{OBSERVER_possessive} - his
{OBSERVER_pronoun} - he
{OBSERVER_objective} - his
{OBSERVER_nameFull} - John Smith pussy slayer
{OBSERVER_kindDef} - colonist, hostile, prisoner...
{OBSERVER_faction} - Orange union of citrus lovers
{OBSERVER_ageBiologicalYears} - 69
{OBSERVER_needSexState} - (Ahegao, Satisfied, Neutral, Horny, Frustrated)

OBSERVED - who genitals was seen.
Same as above. I will only include examples here.

{OBSERVED_nameShort} - John
{OBSERVED_nameShortPossessive} - John's
{OBSERVED_gender} - Male
{OBSERVED_possessive} - his
{OBSERVED_pronoun} - he
{OBSERVED_objective} - his
{OBSERVED_nameFull} - John Smith pussy slayer
{OBSERVED_kindDef} - colonist, hostile, prisoner...
{OBSERVED_faction} - Orange union of citrus lovers
{OBSERVED_ageBiologicalYears} - 69
{OBSERVED_needSexState} - (Ahegao, Satisfied, Neutral, Horny, Frustrated)
-->


<!-- possible interaction defs which may be triggered by Nudity Matters More mod. I have not included base 4 naked states, for you not accidently filter them out or break Covering. 
Use <requiredObservedDressState></requiredObservedDressState> to define basic observation of nudity and not use it if you have interaction, 
or mod will filter out your opinion if pawn is not entered interaction of your defined state.-->

<requiredInteractionType>Masturbation</requiredInteractionType>
<requiredInteractionType>Sex</requiredInteractionType>
<requiredInteractionType>Rape</requiredInteractionType>
<requiredInteractionType>Raped</requiredInteractionType>
<requiredInteractionType>Shower</requiredInteractionType>
<requiredInteractionType>Bath</requiredInteractionType>
<requiredInteractionType>Sauna</requiredInteractionType>
<requiredInteractionType>Swimming</requiredInteractionType>
<requiredInteractionType>HotTub</requiredInteractionType>
<requiredInteractionType>NipSlip</requiredInteractionType>
<requiredInteractionType>BreastSlip</requiredInteractionType>
<requiredInteractionType>AreolaSlip</requiredInteractionType>
<requiredInteractionType>Biopod</requiredInteractionType>
<requiredInteractionType>Changing</requiredInteractionType>
<requiredInteractionType>WetShirt</requiredInteractionType>
<requiredInteractionType>Breastfeed</requiredInteractionType>
<requiredInteractionType>SelfMilk</requiredInteractionType>
<!-- someone milks target pawn -->
<requiredInteractionType>Milk</requiredInteractionType>
<!-- doctor tending nude target pawn -->
<requiredInteractionType>MedicalFull</requiredInteractionType>
<!-- doctor tending topless target pawn -->
<requiredInteractionType>MedicalTop</requiredInteractionType>
<!-- doctor tending bottomless target pawn -->
<requiredInteractionType>MedicalBottom</requiredInteractionType>
<requiredInteractionType>MedicalFullSelf</requiredInteractionType>
<requiredInteractionType>MedicalTopSelf</requiredInteractionType>
<requiredInteractionType>MedicalBottomSelf</requiredInteractionType>
<requiredInteractionType>Surgery</requiredInteractionType>
<requiredInteractionType>HumanArtTop</requiredInteractionType>
<requiredInteractionType>HumanArtBottom</requiredInteractionType>
<requiredInteractionType>HumanArtFull</requiredInteractionType>

<!-- not tested, i dont fully understand how these below work, so even generator doesnt have them -->
<requiredInteractionType>SurgeryViewer</requiredInteractionType>
<requiredInteractionType>MedicalFullViewer</requiredInteractionType>
<requiredInteractionType>MedicalTopViewer</requiredInteractionType>
<requiredInteractionType>MedicalBottomViewer</requiredInteractionType>

