mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2026-06-18 19:36:20 +00:00
Compare commits
No commits in common. "main" and "1.6.0.0" have entirely different histories.
68 changed files with 194 additions and 1243 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -343,6 +343,3 @@ healthchecksdb
|
|||
*.psd
|
||||
*.dds
|
||||
*.pdn
|
||||
|
||||
Directory.Build.props
|
||||
Directory.Build.targets
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<li>image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk</li>
|
||||
<li>circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy</li>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<li>image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk</li>
|
||||
<li>circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy</li>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<li>image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk</li>
|
||||
<li>circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy</li>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -25,7 +25,7 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||
<OutputPath>..\..\assemblies\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
Binary file not shown.
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
<PawnColumnDef>
|
||||
<defName>RJWMenstruation_Womb</defName>
|
||||
<headerIcon>Womb/Womb</headerIcon>
|
||||
<headerTip>Open womb status. Click the header to sort by womb presence and cycle stage.</headerTip>
|
||||
<workerClass>RJW_Menstruation.MainTab.PawnColumnWorker_WombStatus</workerClass>
|
||||
<sortable>true</sortable>
|
||||
<width>34</width>
|
||||
</PawnColumnDef>
|
||||
</Defs>
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
<li>image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk</li>
|
||||
<li>circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy</li>
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -25,7 +25,7 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||
<OutputPath>..\..\assemblies\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
|
@ -166,7 +166,4 @@
|
|||
<Description_Absorbed>已吸收</Description_Absorbed>
|
||||
<!--Generated at: 2025-01-21-->
|
||||
<Stage_Anestrus_Periodic_Desc>子宮處於月經週期之外。經過足夠的時間後,月經週期會恢復。</Stage_Anestrus_Periodic_Desc>
|
||||
<!--Generated at: 2026-02-15-->
|
||||
<Option_ShowInfertileIcon_Desc>對已經不育的子宮顯示子宮圖示</Option_ShowInfertileIcon_Desc>
|
||||
<Option_ShowInfertileIcon_Label>仍然展示不育的子宮狀態</Option_ShowInfertileIcon_Label>
|
||||
</LanguageData>
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: genital -->
|
||||
<Absorber.label>génital</Absorber.label>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: menstruation -->
|
||||
<Menstruation.label>menstruation</Menstruation.label>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: double egg lifetime -->
|
||||
<Menstruation_DoubleEggLifetime.label>Durée ovule double</Menstruation_DoubleEggLifetime.label>
|
||||
<!-- EN: Unfertilized eggs with this gene last twice as long. -->
|
||||
<Menstruation_DoubleEggLifetime.description>Les ovules non fécondés avec ce gène durent deux fois plus longtemps.</Menstruation_DoubleEggLifetime.description>
|
||||
|
||||
<!-- EN: double ovulation -->
|
||||
<Menstruation_DoubleOvulation.label>Ovulation double</Menstruation_DoubleOvulation.label>
|
||||
<!-- EN: Carriers of this gene will ovulate twice as many eggs. -->
|
||||
<Menstruation_DoubleOvulation.description>Les porteuses de ce gène ovuleront deux fois plus d’ovules.</Menstruation_DoubleOvulation.description>
|
||||
|
||||
<!-- EN: full estrus -->
|
||||
<Menstruation_FullEstrus.label>Œstrus complet</Menstruation_FullEstrus.label>
|
||||
<!-- EN: Carriers of this gene will enter full estrus every menstrual cycle, regardless of vagina type. -->
|
||||
<Menstruation_FullEstrus.description>Les porteuses de ce gène entreront en œstrus complet à chaque cycle menstruel, quel que soit le type de vagin.</Menstruation_FullEstrus.description>
|
||||
|
||||
<!-- EN: never estrus -->
|
||||
<Menstruation_NeverEstrus.label>Jamais en œstrus</Menstruation_NeverEstrus.label>
|
||||
<!-- EN: Carriers of this gene will never go into estrus. -->
|
||||
<Menstruation_NeverEstrus.description>Les porteuses de ce gène ne seront jamais en œstrus.</Menstruation_NeverEstrus.description>
|
||||
|
||||
<!-- EN: no bleeding -->
|
||||
<Menstruation_NoBleeding.label>Pas de saignement</Menstruation_NoBleeding.label>
|
||||
<!-- EN: Carriers of this gene will not bleed at the end of their cycle. -->
|
||||
<Menstruation_NoBleeding.description>Les porteuses de ce gène ne saigneront pas à la fin de leur cycle.</Menstruation_NoBleeding.description>
|
||||
|
||||
<!-- EN: quadrule egg lifetime -->
|
||||
<Menstruation_QuadEggLifetime.label>Durée ovule quadruple</Menstruation_QuadEggLifetime.label>
|
||||
<!-- EN: Eggs with this gene last four times as long. -->
|
||||
<Menstruation_QuadEggLifetime.description>Les ovules avec ce gène durent quatre fois plus longtemps.</Menstruation_QuadEggLifetime.description>
|
||||
|
||||
<!-- EN: quadruple ovulation -->
|
||||
<Menstruation_QuadOvulation.label>Ovulation quadruple</Menstruation_QuadOvulation.label>
|
||||
<!-- EN: Carriers of this gene will ovulate four times as many eggs. -->
|
||||
<Menstruation_QuadOvulation.description>Les porteuses de ce gène ovuleront quatre fois plus d’ovules.</Menstruation_QuadOvulation.description>
|
||||
|
||||
<!-- EN: short egg lifetime -->
|
||||
<Menstruation_ShortEggLifetime.label>Durée ovule courte</Menstruation_ShortEggLifetime.label>
|
||||
<!-- EN: Unfertilized eggs with this gene last three-quarters as long. -->
|
||||
<Menstruation_ShortEggLifetime.description>Les ovules non fécondés avec ce gène durent les trois quarts de la durée normale.</Menstruation_ShortEggLifetime.description>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: Antisperm antibody -->
|
||||
<Hediff_ASA.label>Anticorps anti-sperme</Hediff_ASA.label>
|
||||
<!-- EN: Antisperm antibody.\nIncreases death rate of sperm. -->
|
||||
<Hediff_ASA.description>Anticorps anti-sperme. Augmente le taux de mortalité des spermatozoïdes.</Hediff_ASA.description>
|
||||
<!-- EN: antisperm antibody -->
|
||||
<Hediff_ASA.labelNoun>anticorps anti-sperme</Hediff_ASA.labelNoun>
|
||||
<!-- EN: {0} has an antisperm antibody -->
|
||||
<Hediff_ASA.labelNounPretty>{0} possède un anticorps anti-sperme</Hediff_ASA.labelNounPretty>
|
||||
|
||||
<!-- EN: Fertile -->
|
||||
<Hediff_ForceFertile.label>Fertile</Hediff_ForceFertile.label>
|
||||
<!-- EN: fertile -->
|
||||
<Hediff_ForceFertile.description>fertile</Hediff_ForceFertile.description>
|
||||
<!-- EN: fertile -->
|
||||
<Hediff_ForceFertile.labelNoun>fertile</Hediff_ForceFertile.labelNoun>
|
||||
<!-- EN: {0} is fertile -->
|
||||
<Hediff_ForceFertile.labelNounPretty>{0} est fertile</Hediff_ForceFertile.labelNounPretty>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: Affected by pheromones -->
|
||||
<Hediff_AffectedByPheromones.label>Influencé par les phéromones</Hediff_AffectedByPheromones.label>
|
||||
<!-- EN: A condition caused by being around someone in estrus. Sex drive and satisfaction is increased by the scent of heat. -->
|
||||
<Hediff_AffectedByPheromones.description>Condition causée par la présence d’une femme en œstrus. Le désir sexuel et la satisfaction augmentent avec l’odeur de chaleur.</Hediff_AffectedByPheromones.description>
|
||||
<!-- EN: weak -->
|
||||
<Hediff_AffectedByPheromones.stages.weak.label>faible</Hediff_AffectedByPheromones.stages.weak.label>
|
||||
<!-- EN: moderate -->
|
||||
<Hediff_AffectedByPheromones.stages.moderate.label>modéré</Hediff_AffectedByPheromones.stages.moderate.label>
|
||||
<!-- EN: strong -->
|
||||
<Hediff_AffectedByPheromones.stages.strong.label>fort</Hediff_AffectedByPheromones.stages.strong.label>
|
||||
|
||||
<!-- EN: Cyclosporine -->
|
||||
<Hediff_Cyclosporine.label>Cyclosporine</Hediff_Cyclosporine.label>
|
||||
<!-- EN: Under the effect of an immunosuppressant, hampering the body's ability to fight off infection and disease. -->
|
||||
<Hediff_Cyclosporine.description>Sous l’effet d’un immunosuppresseur, réduisant la capacité du corps à combattre infections et maladies.</Hediff_Cyclosporine.description>
|
||||
|
||||
<!-- EN: Estrus -->
|
||||
<Hediff_Estrus.label>Œstrus</Hediff_Estrus.label>
|
||||
<!-- EN: A condition caused by a womb entering the most fertile phase of its menstrual cycle. Sexual arousal and desire increase dramatically as the body yearns to become pregnant.\nIncreased chance of vaginal sex occurring and potentially lower standards in mate selection. -->
|
||||
<Hediff_Estrus.description>Condition causée par un utérus entrant dans la phase la plus fertile de son cycle menstruel. L’excitation et le désir sexuel augmentent fortement, le corps cherchant à devenir enceinte. Chance accrue de rapports vaginaux et critères de sélection du partenaire potentiellement abaissés.</Hediff_Estrus.description>
|
||||
<!-- EN: estrus -->
|
||||
<Hediff_Estrus.labelNoun>œstrus</Hediff_Estrus.labelNoun>
|
||||
|
||||
<!-- EN: Estrus (concealed) -->
|
||||
<Hediff_Estrus_Concealed.label>Œstrus caché</Hediff_Estrus_Concealed.label>
|
||||
<!-- EN: A condition caused by a womb its most fertile phase of the menstrual cycle. Sexual arousal and desire increase slightly.\nSlightly increased chance of vaginal sex. -->
|
||||
<Hediff_Estrus_Concealed.description>Condition causée par un utérus entrant dans sa phase la plus fertile. Excitation et désir sexuel légèrement augmentés. Chance légèrement accrue de rapports vaginaux.</Hediff_Estrus_Concealed.description>
|
||||
<!-- EN: estrus -->
|
||||
<Hediff_Estrus_Concealed.labelNoun>œstrus</Hediff_Estrus_Concealed.labelNoun>
|
||||
|
||||
<!-- EN: In period -->
|
||||
<Hediff_MenstrualCramp.label>En période</Hediff_MenstrualCramp.label>
|
||||
<!-- EN: Bleeding from the vagina at the end of the menstrual cycle.\nOften painful. -->
|
||||
<Hediff_MenstrualCramp.description>Saignement vaginal à la fin du cycle menstruel. Souvent douloureux.</Hediff_MenstrualCramp.description>
|
||||
<!-- EN: in period -->
|
||||
<Hediff_MenstrualCramp.labelNoun>en période</Hediff_MenstrualCramp.labelNoun>
|
||||
<!-- EN: unpleasant -->
|
||||
<Hediff_MenstrualCramp.stages.unpleasant.label>désagréable</Hediff_MenstrualCramp.stages.unpleasant.label>
|
||||
<!-- EN: annoying -->
|
||||
<Hediff_MenstrualCramp.stages.annoying.label>gênant</Hediff_MenstrualCramp.stages.annoying.label>
|
||||
<!-- EN: aching -->
|
||||
<Hediff_MenstrualCramp.stages.aching.label>courbaturé</Hediff_MenstrualCramp.stages.aching.label>
|
||||
<!-- EN: painful -->
|
||||
<Hediff_MenstrualCramp.stages.painful.label>douleur intense</Hediff_MenstrualCramp.stages.painful.label>
|
||||
|
||||
<!-- EN: Pain reliever -->
|
||||
<Hediff_PainReliever.label>Antidouleur</Hediff_PainReliever.label>
|
||||
<!-- EN: A mild reprieve from menstrual (and other) sources of pain. -->
|
||||
<Hediff_PainReliever.description>Soulagement léger de la douleur menstruelle (et autres sources de douleur).</Hediff_PainReliever.description>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: washing vagina -->
|
||||
<VaginaWashing.reportString>Lavage du vagin</VaginaWashing.reportString>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: lactating self -->
|
||||
<LactateSelf.reportString>Allaitement</LactateSelf.reportString>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: Menstruation: open status window -->
|
||||
<OpenStatusWindow.label>Menstruation : ouvrir la fenêtre d’état</OpenStatusWindow.label>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: contract areolae -->
|
||||
<Surgery_ContractAreola.label>Contracter les aréoles</Surgery_ContractAreola.label>
|
||||
<!-- EN: Contract the areolae. -->
|
||||
<Surgery_ContractAreola.description>Contracter les aréoles.</Surgery_ContractAreola.description>
|
||||
<!-- EN: contracting areolae -->
|
||||
<Surgery_ContractAreola.jobString>Contraction des aréoles</Surgery_ContractAreola.jobString>
|
||||
|
||||
<!-- EN: Contract nipples -->
|
||||
<Surgery_ContractNipple.label>Contracter les tétons</Surgery_ContractNipple.label>
|
||||
<!-- EN: Contract the nipples. -->
|
||||
<Surgery_ContractNipple.description>Contracter les tétons.</Surgery_ContractNipple.description>
|
||||
<!-- EN: contracting nipples -->
|
||||
<Surgery_ContractNipple.jobString>Contraction des tétons</Surgery_ContractNipple.jobString>
|
||||
|
||||
<!-- EN: Darken nipples -->
|
||||
<Surgery_DarkenNipple.label>Assombrir les tétons</Surgery_DarkenNipple.label>
|
||||
<!-- EN: Darken the nipples. -->
|
||||
<Surgery_DarkenNipple.description>Assombrir les tétons.</Surgery_DarkenNipple.description>
|
||||
<!-- EN: darkening nipples -->
|
||||
<Surgery_DarkenNipple.jobString>Assombrissement des tétons</Surgery_DarkenNipple.jobString>
|
||||
|
||||
<!-- EN: expand areolae -->
|
||||
<Surgery_ExpandAreola.label>Élargir les aréoles</Surgery_ExpandAreola.label>
|
||||
<!-- EN: Expand the areolae. -->
|
||||
<Surgery_ExpandAreola.description>Élargir les aréoles.</Surgery_ExpandAreola.description>
|
||||
<!-- EN: expanding areolae -->
|
||||
<Surgery_ExpandAreola.jobString>Élargissement des aréoles</Surgery_ExpandAreola.jobString>
|
||||
|
||||
<!-- EN: Expand nipple -->
|
||||
<Surgery_ExpandNipple.label>Élargir les tétons</Surgery_ExpandNipple.label>
|
||||
<!-- EN: Expand the nipples. -->
|
||||
<Surgery_ExpandNipple.description>Élargir les tétons.</Surgery_ExpandNipple.description>
|
||||
<!-- EN: expanding nipples -->
|
||||
<Surgery_ExpandNipple.jobString>Élargissement des tétons</Surgery_ExpandNipple.jobString>
|
||||
|
||||
<!-- EN: Lighten nipples -->
|
||||
<Surgery_LightenNipple.label>Éclaircir les tétons</Surgery_LightenNipple.label>
|
||||
<!-- EN: Lighten the nipples. -->
|
||||
<Surgery_LightenNipple.description>Éclaircir les tétons.</Surgery_LightenNipple.description>
|
||||
<!-- EN: lightening nipples -->
|
||||
<Surgery_LightenNipple.jobString>Éclaircissement des tétons</Surgery_LightenNipple.jobString>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: creampied -->
|
||||
<AmountofCreampied.label>Éjaculation interne</AmountofCreampied.label>
|
||||
<!-- EN: The milliliters of cum that's been ejaculated into my womb. -->
|
||||
<AmountofCreampied.description>Millilitres de sperme éjaculés dans mon utérus.</AmountofCreampied.description>
|
||||
|
||||
<!-- EN: fertilized eggs -->
|
||||
<AmountofFertilizedEggs.label>Œufs fécondés</AmountofFertilizedEggs.label>
|
||||
<!-- EN: The number of my eggs that sperm has fertilized. -->
|
||||
<AmountofFertilizedEggs.description>Nombre de mes œufs fécondés par des spermatozoïdes.</AmountofFertilizedEggs.description>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: Absorbable -->
|
||||
<MaxAbsorbable.label>Absorbable</MaxAbsorbable.label>
|
||||
<!-- EN: Maximum amount of fluid that this item can absorb. -->
|
||||
<MaxAbsorbable.description>Quantité maximale de liquide que cet objet peut absorber.</MaxAbsorbable.description>
|
||||
<!-- EN: {0} ml -->
|
||||
<MaxAbsorbable.formatString>{0} ml</MaxAbsorbable.formatString>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: came inside -->
|
||||
<CameInside.label>Éjaculation interne</CameInside.label>
|
||||
<!-- EN:
|
||||
<li>tale_noun->[FUCKER_nameDef] coming inside of [FUCKED_nameDef]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth</li>
|
||||
<li>circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk</li>
|
||||
<li>circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy</li>
|
||||
<li>circumstance_phrase->as [FUCKER_nameDef] shoots [FUCKER_possessive] load into [FUCKED_nameDef]</li>
|
||||
<li>circumstance_phrase->while [FUCKED_nameDef] looks into [FUCKER_nameDef]'s eyes with a smile</li>
|
||||
<li>desc_sentence->[FUCKER_nameDef]'s cum oozes out of [FUCKED_nameDef]'s vagina and drips onto the floor.</li>
|
||||
<li>desc_sentence->[FUCKER_nameDef]'s sperm races into [FUCKED_nameDef]'s womb and enters [FUCKED_possessive] egg.</li>
|
||||
<li>desc_sentence->[FUCKER_nameDef]'s cum shoots into [FUCKED_nameDef]'s womb.</li>
|
||||
<li>desc_sentence->[FUCKED_nameDef]'s womb is filled with cum.</li>
|
||||
<li>desc_sentence->Sweat runs down [FUCKER_nameDef]'s face.</li>
|
||||
<li>desc_sentence->[FUCKED_nameDef] is panting heavily.</li>
|
||||
-->
|
||||
<CameInside.rulePack.rulesStrings>
|
||||
<li>tale_noun->[FUCKER_nameDef] éjacule dans [FUCKED_nameDef]</li>
|
||||
<li>image->[FUCKER_nameFull] a son pénis profondément dans le vagin de [FUCKED_nameFull] [circumstance_group]</li>
|
||||
<li>image->[FUCKER_nameFull] voit son pénis disparaître dans le vagin de [FUCKED_nameFull] [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull] voit son vagin se remplir du pénis de [FUCKER_nameFull] [circumstance_group]</li>
|
||||
<li>image->[FUCKED_nameFull] voit son vagin serrer fortement le pénis de [FUCKER_nameFull] [circumstance_group]</li>
|
||||
<li>circumstance_phrase->pendant que [FUCKER_nameDef] serre ses dents</li>
|
||||
<li>circumstance_phrase->pendant que [FUCKER_nameDef] arbore un sourire triomphant</li>
|
||||
<li>circumstance_phrase->alors que [FUCKED_nameDef] frissonne de plaisir</li>
|
||||
<li>circumstance_phrase->alors que [FUCKER_nameDef] éjacule dans [FUCKED_nameDef]</li>
|
||||
<li>circumstance_phrase->pendant que [FUCKED_nameDef] regarde [FUCKER_nameDef] dans les yeux en souriant</li>
|
||||
<li>desc_sentence->Le sperme de [FUCKER_nameDef] s’écoule du vagin de [FUCKED_nameDef] et tombe sur le sol.</li>
|
||||
<li>desc_sentence->Le sperme de [FUCKER_nameDef] se précipite dans l’utérus de [FUCKED_nameDef] et féconde un œuf de [FUCKED_nameDef].</li>
|
||||
<li>desc_sentence->Le sperme de [FUCKER_nameDef] est éjaculé dans l’utérus de [FUCKED_nameDef].</li>
|
||||
<li>desc_sentence->L’utérus de [FUCKED_nameDef] est rempli de sperme.</li>
|
||||
<li>desc_sentence->De la sueur coule sur le visage de [FUCKER_nameDef].</li>
|
||||
<li>desc_sentence->[FUCKED_nameDef] halète lourdement.</li>
|
||||
</CameInside.rulePack.rulesStrings>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: sanitary pad -->
|
||||
<Absorber_Pad.label>Serviette hygiénique</Absorber_Pad.label>
|
||||
<!-- EN: A pad for absorbing fluids from a vagina. -->
|
||||
<Absorber_Pad.description>Une serviette pour absorber les fluides du vagin.</Absorber_Pad.description>
|
||||
|
||||
<!-- EN: wet sanitary pad -->
|
||||
<Absorber_Pad_Dirty.label>Serviette hygiénique humide</Absorber_Pad_Dirty.label>
|
||||
<!-- EN: A wet used pad. -->
|
||||
<Absorber_Pad_Dirty.description>Une serviette utilisée et humide.</Absorber_Pad_Dirty.description>
|
||||
|
||||
<!-- EN: tampon -->
|
||||
<Absorber_Tampon.label>Tampon</Absorber_Tampon.label>
|
||||
<!-- EN: A tampon for absorbing fluids from a vagina.\nMay cause an infection if worn for too long. -->
|
||||
<Absorber_Tampon.description>Un tampon pour absorber les fluides du vagin. Peut provoquer une infection s’il est porté trop longtemps.</Absorber_Tampon.description>
|
||||
|
||||
<!-- EN: dirty tampon -->
|
||||
<Absorber_Tampon_Dirty.label>Tampon sale</Absorber_Tampon_Dirty.label>
|
||||
<!-- EN: A wet used tampon.\nMay cause infection if left in. -->
|
||||
<Absorber_Tampon_Dirty.description>Un tampon utilisé et humide. Peut provoquer une infection s’il est laissé en place.</Absorber_Tampon_Dirty.description>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: mixture -->
|
||||
<FilthMixture.label>mélange</FilthMixture.label>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,40 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: cyclosporine -->
|
||||
<Cyclosporine.label>Cyclosporine</Cyclosporine.label>
|
||||
<!-- EN: An immunosuppressant.\nCan cure antisperm antibody, but reduces the body's ability to fight off infection and disease for 24 hours. -->
|
||||
<Cyclosporine.description>Un immunosuppresseur. Peut soigner l’anticorps antispermatozoïde, mais réduit la capacité du corps à combattre infections et maladies pendant 24 heures.</Cyclosporine.description>
|
||||
<!-- EN: Take {0} -->
|
||||
<Cyclosporine.ingestible.ingestCommandString>Prendre {0}</Cyclosporine.ingestible.ingestCommandString>
|
||||
<!-- EN: Taking {0}. -->
|
||||
<Cyclosporine.ingestible.ingestReportString>Prise de {0}.</Cyclosporine.ingestible.ingestReportString>
|
||||
|
||||
<!-- EN: Ovary regeneration pill -->
|
||||
<OvaryRegenerationPill.label>Comprimé de régénération ovarienne</OvaryRegenerationPill.label>
|
||||
<!-- EN: Recovers the ovaries' health, restoring some quantity of eggs.\nLess effective on ovaries with few eggs remaining.\nCannot recover menopause. -->
|
||||
<OvaryRegenerationPill.description>Restaure la santé des ovaires et une partie des ovules. Moins efficace sur des ovaires presque vides. Ne peut pas inverser la ménopause.</OvaryRegenerationPill.description>
|
||||
<!-- EN: Take {0} -->
|
||||
<OvaryRegenerationPill.ingestible.ingestCommandString>Prendre {0}</OvaryRegenerationPill.ingestible.ingestCommandString>
|
||||
<!-- EN: Taking {0}. -->
|
||||
<OvaryRegenerationPill.ingestible.ingestReportString>Prise de {0}.</OvaryRegenerationPill.ingestible.ingestReportString>
|
||||
|
||||
<!-- EN: Pain reliever -->
|
||||
<PainReliever.label>Antidouleur</PainReliever.label>
|
||||
<!-- EN: Relieves menstrual pain for 24 hours.\n\nAlso effective on other sources of pain. -->
|
||||
<PainReliever.description>Soulage les douleurs menstruelles pendant 24 heures. Également efficace contre d’autres douleurs.</PainReliever.description>
|
||||
<!-- EN: Take {0} -->
|
||||
<PainReliever.ingestible.ingestCommandString>Prendre {0}</PainReliever.ingestible.ingestCommandString>
|
||||
<!-- EN: Taking {0}. -->
|
||||
<PainReliever.ingestible.ingestReportString>Prise de {0}.</PainReliever.ingestible.ingestReportString>
|
||||
|
||||
<!-- EN: Superovulation inducing agent -->
|
||||
<SuperovulationInducingAgent.label>Agent de superovulation</SuperovulationInducingAgent.label>
|
||||
<!-- EN: Induce superovulation, causing the next ovulation to produce 1-4 extra eggs.\n\nMay hasten the onset of menopause. -->
|
||||
<SuperovulationInducingAgent.description>Induit une superovulation, provoquant la production de 1 à 4 ovules supplémentaires à la prochaine ovulation. Peut accélérer l’apparition de la ménopause.</SuperovulationInducingAgent.description>
|
||||
<!-- EN: Take {0} -->
|
||||
<SuperovulationInducingAgent.ingestible.ingestCommandString>Prendre {0}</SuperovulationInducingAgent.ingestible.ingestCommandString>
|
||||
<!-- EN: Taking {0}. -->
|
||||
<SuperovulationInducingAgent.ingestible.ingestReportString>Prise de {0}.</SuperovulationInducingAgent.ingestible.ingestReportString>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<CameInsideF.stages.came_inside.label>{0} a éjaculé à l'intérieur</CameInsideF.stages.came_inside.label>
|
||||
<!-- EN: I'm worried I might get pregnant. -->
|
||||
<CameInsideF.stages.came_inside.description>Je suis inquiète de pouvoir tomber enceinte.</CameInsideF.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<CameInsideFFetish.stages.came_inside.label>{0} a éjaculé à l'intérieur</CameInsideFFetish.stages.came_inside.label>
|
||||
<!-- EN: I hope I get pregnant. -->
|
||||
<CameInsideFFetish.stages.came_inside.description>J'espère tomber enceinte.</CameInsideFFetish.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<CameInsideFFetishSafe.stages.came_inside.label>{0} a éjaculé à l'intérieur</CameInsideFFetishSafe.stages.came_inside.label>
|
||||
<!-- EN: I don't think I'll get pregnant, but it's fun to fantasize. -->
|
||||
<CameInsideFFetishSafe.stages.came_inside.description>Je ne pense pas tomber enceinte, mais c'est amusant de fantasmer.</CameInsideFFetishSafe.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<CameInsideFIdeo.stages.came_inside.label>{0} a éjaculé à l'intérieur</CameInsideFIdeo.stages.came_inside.label>
|
||||
<!-- EN: I hope this makes me pregnant like I should be. -->
|
||||
<CameInsideFIdeo.stages.came_inside.description>J'espère que cela me rendra enceinte comme je devrais l'être.</CameInsideFIdeo.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<CameInsideFLowFert.stages.came_inside.label>{0} a éjaculé à l'intérieur</CameInsideFLowFert.stages.came_inside.label>
|
||||
<!-- EN: I'm worried I might get pregnant.\nThe chance is low, but... -->
|
||||
<CameInsideFLowFert.stages.came_inside.description>Je suis inquiète de pouvoir tomber enceinte. La chance est faible, mais…</CameInsideFLowFert.stages.came_inside.description>
|
||||
|
||||
<!-- EN: came inside of {0} -->
|
||||
<CameInsideM.stages.came_inside_of.label>a éjaculé à l'intérieur de {0}</CameInsideM.stages.came_inside_of.label>
|
||||
<!-- EN: That felt so good. -->
|
||||
<CameInsideM.stages.came_inside_of.description>Cela faisait tellement de bien.</CameInsideM.stages.came_inside_of.description>
|
||||
|
||||
<!-- EN: came inside of {0} -->
|
||||
<CameInsideMIdeo.stages.came_inside_of.label>a éjaculé à l'intérieur de {0}</CameInsideMIdeo.stages.came_inside_of.label>
|
||||
<!-- EN: It is my duty to make her pregnant. -->
|
||||
<CameInsideMIdeo.stages.came_inside_of.description>C'est mon devoir de la rendre enceinte.</CameInsideMIdeo.stages.came_inside_of.description>
|
||||
|
||||
<!-- EN: egg restoration received -->
|
||||
<EggRestorationReceived.stages.egg_restoration_received.label>Restauration des ovules reçue</EggRestorationReceived.stages.egg_restoration_received.label>
|
||||
<!-- EN: I can breed for a little longer now. -->
|
||||
<EggRestorationReceived.stages.egg_restoration_received.description>Je peux encore produire des ovules un peu plus longtemps.</EggRestorationReceived.stages.egg_restoration_received.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<HaterCameInsideF.stages.came_inside.label>{0} a éjaculé à l'intérieur</HaterCameInsideF.stages.came_inside.label>
|
||||
<!-- EN: I don't want to be pregnant with his baby! -->
|
||||
<HaterCameInsideF.stages.came_inside.description>Je ne veux pas être enceinte de son bébé !</HaterCameInsideF.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<HaterCameInsideFEstrus.stages.came_inside.label>{0} a éjaculé à l'intérieur</HaterCameInsideFEstrus.stages.came_inside.label>
|
||||
<!-- EN: What was I thinking, letting him do that? -->
|
||||
<HaterCameInsideFEstrus.stages.came_inside.description>À quoi pensais-je, en le laissant faire ça ?</HaterCameInsideFEstrus.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<HaterCameInsideFIdeo.stages.came_inside.label>{0} a éjaculé à l'intérieur</HaterCameInsideFIdeo.stages.came_inside.label>
|
||||
<!-- EN: I know I should become pregnant, but does it have to be his? -->
|
||||
<HaterCameInsideFIdeo.stages.came_inside.description>Je sais que je devrais devenir enceinte, mais est-ce que ça doit être avec lui ?</HaterCameInsideFIdeo.stages.came_inside.description>
|
||||
|
||||
<!-- EN: {0} came inside -->
|
||||
<HaterCameInsideFSafe.stages.came_inside.label>{0} a éjaculé à l'intérieur</HaterCameInsideFSafe.stages.came_inside.label>
|
||||
<!-- EN: I probably won't get pregnant, but I still don't like it. -->
|
||||
<HaterCameInsideFSafe.stages.came_inside.description>Je ne tomberai probablement pas enceinte, mais ça ne me plaît toujours pas.</HaterCameInsideFSafe.stages.came_inside.description>
|
||||
|
||||
<!-- EN: came inside of {0} -->
|
||||
<HaterCameInsideM.stages.came_inside_of.label>a éjaculé à l'intérieur de {0}</HaterCameInsideM.stages.came_inside_of.label>
|
||||
<!-- EN: I came inside of my rival! -->
|
||||
<HaterCameInsideM.stages.came_inside_of.description>J'ai éjaculé à l'intérieur de ma rivale !</HaterCameInsideM.stages.came_inside_of.description>
|
||||
|
||||
<!-- EN: took contraceptive pill -->
|
||||
<HateTookContraceptivePill.stages.took_contraceptive_pill.label>a pris une pilule contraceptive</HateTookContraceptivePill.stages.took_contraceptive_pill.label>
|
||||
<!-- EN: I want to get pregnant. -->
|
||||
<HateTookContraceptivePill.stages.took_contraceptive_pill.description>Je veux tomber enceinte.</HateTookContraceptivePill.stages.took_contraceptive_pill.description>
|
||||
|
||||
<!-- EN: took contraceptive pill -->
|
||||
<HateTookContraceptivePillIdeo.stages.took_contraceptive_pill.label>a pris une pilule contraceptive</HateTookContraceptivePillIdeo.stages.took_contraceptive_pill.label>
|
||||
<!-- EN: My beliefs demand I become pregnant. -->
|
||||
<HateTookContraceptivePillIdeo.stages.took_contraceptive_pill.description>Mes convictions exigent que je devienne enceinte.</HateTookContraceptivePillIdeo.stages.took_contraceptive_pill.description>
|
||||
|
||||
<!-- EN: dripping fluids -->
|
||||
<LeakingFluids.stages.dripping_fluids.label>écoulement de fluides</LeakingFluids.stages.dripping_fluids.label>
|
||||
<!-- EN: Can't I get something to absorb this? -->
|
||||
<LeakingFluids.stages.dripping_fluids.description>Ne puis-je rien utiliser pour absorber ça ?</LeakingFluids.stages.dripping_fluids.description>
|
||||
|
||||
<!-- EN: took contraceptive pill -->
|
||||
<TookContraceptivePill.stages.took_contraceptive_pill.label>a pris la pilule contraceptive</TookContraceptivePill.stages.took_contraceptive_pill.label>
|
||||
<!-- EN: Everything will be okay now. -->
|
||||
<TookContraceptivePill.stages.took_contraceptive_pill.description>Tout ira bien maintenant.</TookContraceptivePill.stages.took_contraceptive_pill.description>
|
||||
|
||||
<!-- EN: unwanted pregnancy -->
|
||||
<UnwantedPregnancy.stages.unwanted_pregnancy.label>grossesse non désirée</UnwantedPregnancy.stages.unwanted_pregnancy.label>
|
||||
<!-- EN: How will I take care of a baby? What am I going to do? -->
|
||||
<UnwantedPregnancy.stages.unwanted_pregnancy.description>Comment vais-je m'occuper d'un bébé ? Que vais-je faire ?</UnwantedPregnancy.stages.unwanted_pregnancy.description>
|
||||
|
||||
<!-- EN: unwanted pregnancy -->
|
||||
<UnwantedPregnancyMild.stages.unwanted_pregnancy.label>grossesse non désirée</UnwantedPregnancyMild.stages.unwanted_pregnancy.label>
|
||||
<!-- EN: I'm having a baby. I hope I can manage. -->
|
||||
<UnwantedPregnancyMild.stages.unwanted_pregnancy.description>Je vais avoir un bébé. J'espère que je pourrai gérer.</UnwantedPregnancyMild.stages.unwanted_pregnancy.description>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,321 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<LanguageData>
|
||||
<!-- EN: RJW Menstruation Cycle -->
|
||||
<Mod_Title>Cycle menstruel RJW</Mod_Title>
|
||||
|
||||
<!-- EN: menstrual blood -->
|
||||
<Menstrual_Blood>Sang menstruel</Menstrual_Blood>
|
||||
<!-- EN: Empty -->
|
||||
<Info_noCum>Vide</Info_noCum>
|
||||
<!-- EN: Follicular -->
|
||||
<Stage_Follicular>Folliculaire</Stage_Follicular>
|
||||
<!-- EN: Ovulation -->
|
||||
<Stage_Ovulatory>Ovulation</Stage_Ovulatory>
|
||||
<!-- EN: Luteal -->
|
||||
<Stage_Luteal>Lutéale</Stage_Luteal>
|
||||
<!-- EN: In period -->
|
||||
<Stage_Bleeding>Menstruations</Stage_Bleeding>
|
||||
<!-- EN: Pregnant -->
|
||||
<Stage_Pregnant>Enceinte</Stage_Pregnant>
|
||||
<!-- EN: Recovering from birth -->
|
||||
<Stage_Recover>Récupération post-partum</Stage_Recover>
|
||||
<!-- EN: None -->
|
||||
<Stage_None>Aucune</Stage_None>
|
||||
<!-- EN: Climacteric -->
|
||||
<Stage_Climacteric>Climatérique</Stage_Climacteric>
|
||||
<!-- EN: Menopause -->
|
||||
<Stage_Menopause>Ménopause</Stage_Menopause>
|
||||
<!-- EN: Anestrus -->
|
||||
<Stage_Anestrus>Anœstrus</Stage_Anestrus>
|
||||
<!-- EN: The ovaries are preparing to release an egg. Ovulation will occur at the end of this phase. -->
|
||||
<Stage_Follicular_Desc>Les ovaires se préparent à libérer un ovule. L’ovulation aura lieu à la fin de cette phase.</Stage_Follicular_Desc>
|
||||
<!-- EN: The ovaries are preparing to release an egg. Ovulation will occur if semen enters the womb. -->
|
||||
<Stage_Follicular_Induced_Desc>Les ovaires se préparent à libérer un ovule. L’ovulation aura lieu si du sperme entre dans l’utérus.</Stage_Follicular_Induced_Desc>
|
||||
<!-- EN: The ovaries are releasing an egg into the womb. -->
|
||||
<Stage_Ovulatory_Desc>Les ovaires libèrent un ovule dans l’utérus.</Stage_Ovulatory_Desc>
|
||||
<!-- EN: The womb is prepared to recieve a fertilized egg. Pregnancy will result if one implants before the end of the stage. -->
|
||||
<Stage_Luteal_Desc>L’utérus est prêt à recevoir un ovule fécondé. Une grossesse surviendra si un ovule s’implante avant la fin de cette phase.</Stage_Luteal_Desc>
|
||||
<!-- EN: The womb is shedding its lining, along with any eggs that failed to implant. -->
|
||||
<Stage_Bleeding_Desc>L’utérus se débarrasse de sa muqueuse, ainsi que des ovules non fécondés.</Stage_Bleeding_Desc>
|
||||
<!-- EN: A baby is growing inside the womb. With time and care, it will become a new resident of this world. -->
|
||||
<Stage_Pregnant_Desc>Un bébé grandit dans l’utérus. Avec du temps et des soins, il deviendra un nouvel habitant de ce monde.</Stage_Pregnant_Desc>
|
||||
<!-- EN: The womb is recovering from its recent pregnancy. -->
|
||||
<Stage_Recover_Desc>L’utérus se rétablit de sa récente grossesse.</Stage_Recover_Desc>
|
||||
<!-- EN: The womb is not fertile and cannot become pregnant. -->
|
||||
<Stage_None_Desc>L’utérus n’est pas fertile et ne peut pas concevoir.</Stage_None_Desc>
|
||||
<!-- EN: The ovaries have neared exhaustion and the menstrual cycle has become irregular. -->
|
||||
<Stage_Climacteric_Desc>Les ovaires approchent de l’épuisement et le cycle devient irrégulier.</Stage_Climacteric_Desc>
|
||||
<!-- EN: The ovaries have been exhausted and the womb can no longer produce eggs. -->
|
||||
<Stage_Menopause_Desc>Les ovaires sont épuisés et l’utérus ne peut plus produire d’ovules.</Stage_Menopause_Desc>
|
||||
<!-- EN: The womb is out of breeding season. The cycle will resume once conditions are met. -->
|
||||
<Stage_Anestrus_Desc>L’utérus est hors saison de reproduction. Le cycle reprendra quand les conditions seront réunies.</Stage_Anestrus_Desc>
|
||||
<!-- EN: The womb is between cycles. The cycle will resume after enough time has passed. -->
|
||||
<Stage_Anestrus_Periodic_Desc>L’utérus est entre deux cycles. Le cycle reprendra après un certain temps.</Stage_Anestrus_Periodic_Desc>
|
||||
<!-- EN: Status -->
|
||||
<Button_HealthTab>État</Button_HealthTab>
|
||||
<!-- EN: Lactate self -->
|
||||
<Button_MilkTooltip>Allaitement</Button_MilkTooltip>
|
||||
<!-- EN: State -->
|
||||
<Dialog_WombInfo01>État</Dialog_WombInfo01>
|
||||
<!-- EN: Fetus -->
|
||||
<Dialog_WombInfo02>Fœtus</Dialog_WombInfo02>
|
||||
<!-- EN: Father -->
|
||||
<Dialog_WombInfo03>Père</Dialog_WombInfo03>
|
||||
<!-- EN: Cum list -->
|
||||
<Dialog_WombInfo04>Liste de sperme</Dialog_WombInfo04>
|
||||
<!-- EN: Fertilized -->
|
||||
<Dialog_WombInfo05>Fécondé</Dialog_WombInfo05>
|
||||
<!-- EN: Fertilizing -->
|
||||
<Dialog_WombInfo06>En fécondation</Dialog_WombInfo06>
|
||||
<!-- EN: Ovulated -->
|
||||
<Dialog_WombInfo07>Ovulé</Dialog_WombInfo07>
|
||||
<Dialog_WombInfo08></Dialog_WombInfo08>
|
||||
<Dialog_WombInfo09></Dialog_WombInfo09>
|
||||
<!-- EN: Unknown -->
|
||||
<Dialog_FatherUnknown>Père inconnu</Dialog_FatherUnknown>
|
||||
<!-- EN: Absorbed -->
|
||||
<Description_Absorbed>Absorbé</Description_Absorbed>
|
||||
|
||||
|
||||
<!-- EN: Enable womb icon -->
|
||||
<Option1_Label_1>Activer l’icône utérus</Option1_Label_1>
|
||||
<!-- EN: Enable button in health tab -->
|
||||
<Option1_Label_2>Activer le bouton dans l’onglet santé</Option1_Label_2>
|
||||
<!-- EN: Enable animal cycle -->
|
||||
<Option2_Label>Activer le cycle animal</Option2_Label>
|
||||
<!-- EN: Simulate animal cycles.
|
||||
Not recommended. -->
|
||||
<Option2_Desc>Simuler les cycles animaux. Non recommandé.</Option2_Desc>
|
||||
<!-- EN: Implantation chance -->
|
||||
<Option3_Label>Chance d’implantation</Option3_Label>
|
||||
<!-- EN: Base implantation chance of fertilized egg
|
||||
This value affects the chance of impregnation. -->
|
||||
<Option3_Desc>Chance de base d’implantation de l’ovule fécondé. Affecte la probabilité de grossesse.</Option3_Desc>
|
||||
<!-- EN: Fertilization chance -->
|
||||
<Option4_Label>Chance de fécondation</Option4_Label>
|
||||
<!-- EN: The fertilization chance per ml of sperm per hour
|
||||
This value affects the chance of impregnation. -->
|
||||
<Option4_Desc>Chance de fécondation par ml de sperme par heure. Affecte la probabilité de grossesse.</Option4_Desc>
|
||||
<!-- EN: Cum decay ratio per hour -->
|
||||
<Option5_Label>Perte de sperme par heure</Option5_Label>
|
||||
<!-- EN: The amount of cum in the womb will drop by this amount every hour
|
||||
This value affects the chance of impregnation. -->
|
||||
<Option5_Desc>La quantité de sperme dans l’utérus diminue de ce montant chaque heure. Affecte la probabilité de grossesse.</Option5_Desc>
|
||||
<!-- EN: Cum fertility decay ratio per hour -->
|
||||
<Option6_Label>Perte de fertilité du sperme par heure</Option6_Label>
|
||||
<!-- EN: Cum will lose fertility by this amount every hour
|
||||
This value affects fertilization chance indirectly. -->
|
||||
<Option6_Desc>Le sperme perd sa fertilité de ce montant chaque heure. Affecte indirectement la chance de fécondation.</Option6_Desc>
|
||||
<!-- EN: Cycle acceleration -->
|
||||
<Option7_Label>Accélération du cycle</Option7_Label>
|
||||
<!-- EN: Accelerate menstruation cycle
|
||||
This can cause early menopause and infertility.
|
||||
Setting this lower than x12 is recommended.
|
||||
Rimworld's timescale: x6(default) -->
|
||||
<Option7_Desc>Accélérer le cycle menstruel. Peut causer ménopause précoce et infertilité. Recommandé : ne pas descendre en dessous de x12. Échelle de temps Rimworld : x6 (par défaut).</Option7_Desc>
|
||||
<!-- EN: Colonist update interval -->
|
||||
<Option_ColonistUpdateInterval_Label>Intervalle mise à jour colones</Option_ColonistUpdateInterval_Label>
|
||||
<!-- EN: How often the womb of each of your colonists, prisoners, and slaves update.
|
||||
Lowering this will improve accuracy, increasing this can improve performance. -->
|
||||
<Option_ColonistUpdateInterval_Desc>Fréquence de mise à jour des utérus de vos colones, prisonnières et esclaves. Réduire améliore la précision, augmenter améliore la performance.</Option_ColonistUpdateInterval_Desc>
|
||||
<!-- EN: Non-colonist update interval -->
|
||||
<Option_NonColonistUpdateInterval_Label>Intervalle mise à jour non-colones</Option_NonColonistUpdateInterval_Label>
|
||||
<!-- EN: How often the womb of humans you don't control update.
|
||||
Lowering this will improve accuracy, increasing this can improve performance. -->
|
||||
<Option_NonColonistUpdateInterval_Desc>Fréquence de mise à jour des utérus des humains non contrôlés. Réduire améliore la précision, augmenter améliore la performance.</Option_NonColonistUpdateInterval_Desc>
|
||||
<!-- EN: Animal update interval -->
|
||||
<Option_AnimalUpdateInterval_Label>Intervalle mise à jour animaux</Option_AnimalUpdateInterval_Label>
|
||||
<!-- EN: How often the womb of animals update.
|
||||
Lowering this will improve accuracy, increasing this can improve performance. -->
|
||||
<Option_AnimalUpdateInterval_Desc>Fréquence de mise à jour des utérus des animaux. Réduire améliore la précision, augmenter améliore la performance.</Option_AnimalUpdateInterval_Desc>
|
||||
<!-- EN: Debug -->
|
||||
<Option8_Label>Débogage</Option8_Label>
|
||||
<!-- EN: Show debug information. -->
|
||||
<Option8_Desc>Afficher les informations de débogage.</Option8_Desc>
|
||||
<!-- EN: Womb status -->
|
||||
<Option9_Label>État de l’utérus</Option9_Label>
|
||||
<!-- EN: Draw womb icon in status window. -->
|
||||
<Option9_Desc>Afficher l’icône utérus dans la fenêtre d’état.</Option9_Desc>
|
||||
<!-- EN: Vagina and breast status -->
|
||||
<Option10_Label>État vagin et seins</Option10_Label>
|
||||
<!-- EN: Draw vagina, anus and breast icons in the status window. -->
|
||||
<Option10_Desc>Afficher les icônes vagin, anus et seins dans la fenêtre d’état.</Option10_Desc>
|
||||
<!-- EN: Fetus information level -->
|
||||
<Option11_Label>Niveau information fœtus</Option11_Label>
|
||||
<!-- EN: Show all information about a fetus. -->
|
||||
<Option11_Desc_1>Afficher toutes les informations sur le fœtus.</Option11_Desc_1>
|
||||
<!-- EN: Show all information about a fetus after discovered pregnancy. -->
|
||||
<Option11_Desc_2>Afficher toutes les informations sur le fœtus après découverte de la grossesse.</Option11_Desc_2>
|
||||
<!-- EN: Show only image of a fetus after discovered pregnancy. -->
|
||||
<Option11_Desc_3>Afficher seulement l’image du fœtus après découverte de la grossesse.</Option11_Desc_3>
|
||||
<!-- EN: Do not show any information about a fetus. -->
|
||||
<Option11_Desc_4>Ne pas afficher d’information sur le fœtus.</Option11_Desc_4>
|
||||
<!-- EN: Enable menopause -->
|
||||
<Option12_Label>Activer ménopause</Option12_Label>
|
||||
<!-- EN: Enable menopause effect that makes pawn infertile when they run out of eggs.
|
||||
If you have problems with long lived races, turn off this option. -->
|
||||
<Option12_Desc>Activer l’effet ménopause qui rend infertile lorsque les ovules sont épuisés. Désactiver pour races longévives.</Option12_Desc>
|
||||
<!-- EN: Enable pheromones -->
|
||||
<Option_EnablePheromones_Label>Activer phéromones</Option_EnablePheromones_Label>
|
||||
<!-- EN: Allow humanlikes in visible estrus to increase the sex drive of nearby humanlike males. -->
|
||||
<Option_EnablePheromones_Desc>Autoriser les humanoïdes en œstrus visible à augmenter le désir sexuel des mâles proches.</Option_EnablePheromones_Desc>
|
||||
<!-- EN: Animal pheromone effect -->
|
||||
<Option_AnimalPheromoneEffect_Label>Effet phéromones animaux</Option_AnimalPheromoneEffect_Label>
|
||||
<!-- EN: Set the effect that animals in visible estrus have on humanlikes. -->
|
||||
<Option_AnimalPheromoneEffect_Desc>Définir l’effet des animaux en œstrus visible sur les humanoïdes.</Option_AnimalPheromoneEffect_Desc>
|
||||
<!-- EN: Use multiple pregnancy -->
|
||||
<Option13_Label>Activer grossesses multiples</Option13_Label>
|
||||
<!-- EN: Use multiple pregnancy instead RJW's default pregnancy
|
||||
Disable this option if you are in trouble with impregnation
|
||||
RJW pregnancy should be turned on. -->
|
||||
<Option13_Desc>Utiliser grossesses multiples au lieu de la grossesse RJW par défaut. Désactiver si problème d’implantation. RJW doit rester activé.</Option13_Desc>
|
||||
<!-- EN: Enable hetero ovular twins -->
|
||||
<Option14_Label>Activer jumeaux hétéro-ovulaires</Option14_Label>
|
||||
<!-- EN: Allow pregnancy from multiple eggs at the same time. -->
|
||||
<Option14_Desc>Autoriser la grossesse à partir de plusieurs ovules en même temps.</Option14_Desc>
|
||||
<!-- EN: Enable enzygotic twins -->
|
||||
<Option15_Label>Activer jumeaux enzygotiques</Option15_Label>
|
||||
<!-- EN: Enable a single egg to result in multiple identical offspring. -->
|
||||
<Option15_Desc>Autoriser un ovule unique à produire plusieurs enfants identiques.</Option15_Desc>
|
||||
<!-- EN: Enzygotic twins chance -->
|
||||
<Option16_Label>Chance jumeaux enzygotiques</Option16_Label>
|
||||
<!-- EN: The chance of identical twins. -->
|
||||
<Option16_Desc>Chance d’avoir des jumeaux identiques.</Option16_Desc>
|
||||
<!-- EN: Max enzygotic twins -->
|
||||
<Option17_Label>Nombre max jumeaux identiques</Option17_Label>
|
||||
<!-- EN: The maximum number of identical siblings. -->
|
||||
<Option17_Desc>Nombre maximum de frères et sœurs identiques.</Option17_Desc>
|
||||
<!-- EN: Enable egg overlay -->
|
||||
<Option18_Label>Activer superposition ovule</Option18_Label>
|
||||
<!-- EN: Enable egg overlay on womb icon. -->
|
||||
<Option18_Desc>Afficher superposition des ovules sur icône utérus.</Option18_Desc>
|
||||
<!-- EN: Bleeding amount -->
|
||||
<Option19_Label_1>Quantité de saignement</Option19_Label_1>
|
||||
<!-- EN: Estimated total bleeding amount -->
|
||||
<Option19_Label_2>Quantité totale estimée</Option19_Label_2>
|
||||
<!-- EN: The approximate bleeding amount.
|
||||
The normal bleeding amount of a human is about 20~80ml per cycle. -->
|
||||
<Option19_Desc>Quantité approximative de saignement. Normale : 20~80 ml par cycle.</Option19_Desc>
|
||||
<!-- EN: Colonist -->
|
||||
<Option20_Label_1>Colone</Option20_Label_1>
|
||||
<!-- EN: Prisoner -->
|
||||
<Option20_Label_2>Prisonnière</Option20_Label_2>
|
||||
<!-- EN: Allied Faction -->
|
||||
<Option20_Label_3>Faction alliée</Option20_Label_3>
|
||||
<!-- EN: Neutral -->
|
||||
<Option20_Label_4>Neutre</Option20_Label_4>
|
||||
<!-- EN: Hostile Faction -->
|
||||
<Option20_Label_5>Faction hostile</Option20_Label_5>
|
||||
<!-- EN: Target pawns: -->
|
||||
<Option21_Label>Cibles :</Option21_Label>
|
||||
<!-- EN: The gizmo and button will appear for these pawns -->
|
||||
<Option21_Desc>Le gizmo et le bouton apparaîtront pour ces pions.</Option21_Desc>
|
||||
<!-- EN: Use hybrid extension -->
|
||||
<Option22_Label>Activer extension hybride</Option22_Label>
|
||||
<!-- EN: Overrides RJW and RaceSupport's hybrid definition.
|
||||
Dominant hybrid extension determines whose definition used first. Not recommended to change this. -->
|
||||
<Option22_Desc>Remplace les définitions hybrides RJW et RaceSupport. L’extension dominante est prioritaire. Ne pas modifier.</Option22_Desc>
|
||||
<!-- EN: Dominant hybrid extension -->
|
||||
<Option23_Label>Extension hybride dominante</Option23_Label>
|
||||
<!-- EN: Mother -->
|
||||
<Option23_Label_1>Mère</Option23_Label_1>
|
||||
<!-- EN: Father -->
|
||||
<Option23_Label_2>Père</Option23_Label_2>
|
||||
<!-- EN: Breast growth during pregnancy -->
|
||||
<Option_MaxBreastIncrementFactor_Label>Croissance des seins pendant la grossesse</Option_MaxBreastIncrementFactor_Label>
|
||||
<!-- EN: Change how much a pregnant pawn's breasts will grow when pregnant. Some pawns will grow more than others. -->
|
||||
<Option_MaxBreastIncrementFactor_Desc>Modifier combien les seins d’une femme enceinte vont grandir. Certaines croîtront plus que d’autres.</Option_MaxBreastIncrementFactor_Desc>
|
||||
<!-- EN: Nipple change during pregnancy -->
|
||||
<Option_MaxNippleIncrementFactor_Label>Changement des tétons pendant la grossesse</Option_MaxNippleIncrementFactor_Label>
|
||||
<!-- EN: Change how much a pregnant pawn's nipples will change during pregnancy. -->
|
||||
<Option_MaxNippleIncrementFactor_Desc>Modifier combien les tétons d’une femme enceinte vont changer.</Option_MaxNippleIncrementFactor_Desc>
|
||||
<!-- EN: Permanent nipple change after pregnancy -->
|
||||
<Option_PermanentNippleChange_Label>Changement permanent des tétons après la grossesse</Option_PermanentNippleChange_Label>
|
||||
<!-- EN: Adjusts approximately how much of a pregnant pawn's nipples will remain changed after the pregnancy ends. -->
|
||||
<Option_PermanentNippleChange_Desc>Modifie combien des changements des tétons restent après la grossesse.</Option_PermanentNippleChange_Desc>
|
||||
<!-- EN: Customize Hybrids -->
|
||||
<Option28_Label>Personnaliser hybrides</Option28_Label>
|
||||
<!-- EN: Open custom hybrid editor.
|
||||
This will overrides hybrid definitions of XML files. -->
|
||||
<Option28_Tooltip>Ouvrir éditeur hybride personnalisé. Remplace les définitions hybrides XML.</Option28_Tooltip>
|
||||
<!-- EN: Allow shrink icon -->
|
||||
<Option29_Label>Autoriser la réduction de l’icône</Option29_Label>
|
||||
<!-- EN: Let icon become smaller if needed. -->
|
||||
<Option29_Desc>Permet à l’icône de devenir plus petite si nécessaire.</Option29_Desc>
|
||||
<!-- EN: Egg lifespan multiplier -->
|
||||
<Option30_Label>Multiplicateur durée ovule</Option30_Label>
|
||||
<!-- EN: Multiply egg's lifespan.
|
||||
All non-implanted eggs will die at end of luteal stage regardless of this setting. -->
|
||||
<Option30_Desc>Multiplie la durée de vie des ovules. Tous les ovules non implantés meurent à la fin de la phase lutéale.</Option30_Desc>
|
||||
<!-- EN: Enable vagina morph after birth -->
|
||||
<Option31_Label>Activer métamorphose du vagin post-partum</Option31_Label>
|
||||
<!-- EN: Enable permanent vagina stretch after birth.
|
||||
If you are using another mod handling this, turn off this option. -->
|
||||
<Option31_Desc>Activer l’étirement permanent du vagin après la naissance. Désactiver si un autre mod gère cela.</Option31_Desc>
|
||||
<!-- EN: Morph power -->
|
||||
<Option32_Label>Puissance de la métamorphose</Option32_Label>
|
||||
<!-- EN: Set morph power. -->
|
||||
<Option32_Desc>Définir la puissance de la métamorphose.</Option32_Desc>
|
||||
<!-- EN: Estrus overrides RJW hookup settings -->
|
||||
<Option_EstrusOverride_Label>Œstrus remplace RJW</Option_EstrusOverride_Label>
|
||||
<!-- EN: If enabled, a pawn in visible estrus will use these settings for potential impregnation hookups instead of the RJW settings.
|
||||
All settings default to their RJW counterparts. -->
|
||||
<Option_EstrusOverride_Desc>Si activé, une femme en œstrus visible utilisera ces réglages pour la fécondation au lieu de RJW. Tous les autres restent par défaut.</Option_EstrusOverride_Desc>
|
||||
<!-- EN: Hookup minimum fuckability in estrus -->
|
||||
<Option_EstrusFuckability_Label>Baisabilité minimale pendant l’œstrus</Option_EstrusFuckability_Label>
|
||||
<!-- EN: Hookup minimum attractability in estrus -->
|
||||
<Option_EstrusAttractability_Label>Attractivité minimale pendant l’œstrus</Option_EstrusAttractability_Label>
|
||||
<!-- EN: Hookup minimum opinion in estrus -->
|
||||
<Option_EstrusRelationship_Label>Opinion minimale pendant l’œstrus</Option_EstrusRelationship_Label>
|
||||
<!-- EN: Estimated sperm lifespan -->
|
||||
<EstimatedCumLifespan>Durée de vie du sperme estimée</EstimatedCumLifespan>
|
||||
<!-- EN: Estimated egg lifespan -->
|
||||
<EstimatedEggLifespan>Durée de vie de l’ovule estimée</EstimatedEggLifespan>
|
||||
<!-- EN: Ovulation {0} -->
|
||||
<OvulationChanceLabel>Ovulation {0}</OvulationChanceLabel>
|
||||
<!-- EN: Chance of each egg being released during ovulation. -->
|
||||
<OvulationChanceDesc>Chance que chaque ovule soit libéré à l’ovulation.</OvulationChanceDesc>
|
||||
<!-- EN: Implantation chance of fertilized eggs.
|
||||
Chance of fertilization this hour: {0}% -->
|
||||
<FertilityDesc>Chance d’implantation des ovules fécondés. Chance de fécondation cette heure : {0}%</FertilityDesc>
|
||||
<!-- EN: Use basic RJW pregnancy -->
|
||||
<Option_PregnancyFromBaseRJW_Label>Utiliser grossesse RJW de base</Option_PregnancyFromBaseRJW_Label>
|
||||
<!-- EN: Use menstruation multiple pregnancy -->
|
||||
<Option_PregnancyFromMultiplePregnancy_Label>Utiliser grossesses multiples menstruelles</Option_PregnancyFromMultiplePregnancy_Label>
|
||||
<!-- EN: Use Biotech pregnancy -->
|
||||
<Option_PregnancyFromBiotech_Label>Utiliser grossesse Biotech</Option_PregnancyFromBiotech_Label>
|
||||
<!-- EN: Enable multiple babies/twins in a single Biotech pregnancy. -->
|
||||
<Option_EnableBiotechTwins_Label>Autoriser jumeaux/plusieurs bébés pour une seule grossesse Biotech</Option_EnableBiotechTwins_Label>
|
||||
<!-- EN: Enabling this option will allow identical and hetero ovular twins with Biotech.
|
||||
Also allows the hybrid system, but two humanlikes cannot produce an animal. -->
|
||||
<Option_EnableBiotechTwins_Desc>Autorise jumeaux identiques et hétéro-ovulaires avec Biotech. Permet aussi système hybride, mais deux humanoïdes ne peuvent produire un animal.</Option_EnableBiotechTwins_Desc>
|
||||
<!-- EN: Show womb status when drafted -->
|
||||
<Option_EnableDraftedIcon_Label>Afficher le statut de l’utérus en cours de mobilisation</Option_EnableDraftedIcon_Label>
|
||||
<!-- EN: Draw womb icon for drafted pawns -->
|
||||
<Option_EnableDraftedIcon_Desc>Afficher l’icône de l’utérus en cours de mobilisation</Option_EnableDraftedIcon_Desc>
|
||||
<!-- EN: Show womb status when infertile -->
|
||||
<Option_ShowInfertileIcon_Label>Afficher le statut d’un utérus infertile</Option_ShowInfertileIcon_Label>
|
||||
<!-- EN: Draw womb icon for infertile wombs -->
|
||||
<Option_ShowInfertileIcon_Desc>Afficher l’icône d’un utérus infertile</Option_ShowInfertileIcon_Desc>
|
||||
<!-- EN: Reset to default -->
|
||||
<Button_ResetToDefault>Réinitialiser par défaut</Button_ResetToDefault>
|
||||
|
||||
<!-- EN: Vaginal washing -->
|
||||
<FloatMenu_CleanSelf>Nettoyage vaginal</FloatMenu_CleanSelf>
|
||||
|
||||
<!-- EN: Custom Hybrid Editor -->
|
||||
<CustomHybrid_List_Title>Éditeur Hybrides Personnalisé</CustomHybrid_List_Title>
|
||||
<!-- EN: Hybrids of {0} -->
|
||||
<CustomHybrid_Title>Hybrides de {0}</CustomHybrid_Title>
|
||||
<!-- EN: When {0} breed with {1}, {2} will be born at {3} chance.
|
||||
If both races have hybrid definitions for each other, the father's definition will be used. -->
|
||||
<CustomHybrid_Tooltip>Lorsque {0} se reproduit avec {1}, {2} naîtra avec une chance de {3}. Si les deux races ont des définitions hybrides, celle du père est utilisée.</CustomHybrid_Tooltip>
|
||||
|
||||
<!-- EN: No eggs -->
|
||||
<CannotNoEggs>Pas d’ovules</CannotNoEggs>
|
||||
<!-- EN: Must have a womb -->
|
||||
<CannotNoWomb>Doit avoir un utérus</CannotNoWomb>
|
||||
<!-- EN: {PAWN_labelShort} has completed {PAWN_possessive} egg restoration cycle. -->
|
||||
<EggRestorationCompleted>{PAWN_labelShort} a terminé son cycle de restauration des ovules.</EggRestorationCompleted>
|
||||
|
||||
</LanguageData>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Patch>
|
||||
<Operation Class="PatchOperationSequence">
|
||||
<operations>
|
||||
<li Class="PatchOperationInsert">
|
||||
<xpath>/Defs/PawnTableDef[defName="RJW_PawnTable_Colonists"]/columns/li[text()="Pregnant"]</xpath>
|
||||
<value>
|
||||
<li>RJWMenstruation_Womb</li>
|
||||
</value>
|
||||
</li>
|
||||
<li Class="PatchOperationInsert">
|
||||
<xpath>/Defs/PawnTableDef[defName="RJW_PawnTable_Property"]/columns/li[text()="Pregnant"]</xpath>
|
||||
<value>
|
||||
<li>RJWMenstruation_Womb</li>
|
||||
</value>
|
||||
</li>
|
||||
</operations>
|
||||
</Operation>
|
||||
</Patch>
|
||||
Binary file not shown.
|
|
@ -1,14 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Defs>
|
||||
<RJWQuirks.QuirkDef>
|
||||
<defName>RedWings</defName>
|
||||
<label>Red Wings</label>
|
||||
<description>{pawn} enjoys partners who are menstruating and enjoys having menstrual blood on {pawn_possessive} penis</description>
|
||||
<satisfiedBy Class="RJW_Menstruation_Quirks.RedWingsCondition" />
|
||||
<requirements>
|
||||
<li Class="RJW_Menstruation_Quirks.RedWingsRequirement" />
|
||||
</requirements>
|
||||
<ignoreIllegalLabelCharacterConfigError>true</ignoreIllegalLabelCharacterConfigError>
|
||||
</RJWQuirks.QuirkDef>
|
||||
</Defs>
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
using rjw;
|
||||
using rjw.Modules.Interactions;
|
||||
using RJW_Menstruation;
|
||||
using RJWQuirks.Condition;
|
||||
using RJWQuirks.Requirement;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Verse;
|
||||
|
||||
namespace RJW_Menstruation_Quirks
|
||||
{
|
||||
public class RedWingsRequirement : RequirementBase
|
||||
{
|
||||
public override bool Satisfied(Pawn pawn)
|
||||
{
|
||||
return pawn.GetGenitalsList().Any(genital => (genital.def as HediffDef_SexPart)?.genitalFamily == GenitalFamily.Penis);
|
||||
}
|
||||
}
|
||||
|
||||
public class RedWingsCondition : ConditionBase
|
||||
{
|
||||
public override bool SatisfiedByPartner(Pawn pawn, Pawn partner)
|
||||
{
|
||||
if (!partner.ShouldCycle()) return false;
|
||||
return partner.GetMenstruationComps().Any(comp => comp.curStage == HediffComp_Menstruation.Stage.Bleeding);
|
||||
}
|
||||
|
||||
public override bool SatisfiedBySex(SexProps sexProps)
|
||||
{
|
||||
if (!sexProps.hasPartner()) return false;
|
||||
List<ILewdablePart> partnerParts = sexProps.IsInitiator() ? sexProps.resolved.RecipientParts : sexProps.resolved.InitiatorParts;
|
||||
return partnerParts.Any(part => part.Family == LewdablePartFamily.Vagina) && SatisfiedByPartner(sexProps.pawn, sexProps.partner);
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
1.6/Quirks/assemblies/Quirks.dll
Normal file
BIN
1.6/Quirks/assemblies/Quirks.dll
Normal file
Binary file not shown.
33
1.6/Quirks/source/Quirks/Properties/AssemblyInfo.cs
Normal file
33
1.6/Quirks/source/Quirks/Properties/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("Quirks")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Quirks")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2025")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("d9363a87-bbc4-456d-9880-07414944c02a")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||
<OutputPath>..\..\assemblies\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
<ItemGroup>
|
||||
<Compile Include="Harmony.cs" />
|
||||
<Compile Include="QuirksCompatibility.cs" />
|
||||
<Compile Include="RedWings.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="packages.config" />
|
||||
|
|
@ -71,8 +71,5 @@
|
|||
<Private>False</Private>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Properties\" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
|
|
@ -1,21 +1,15 @@
|
|||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using rjw;
|
||||
using RJW_Menstruation;
|
||||
using rjw;
|
||||
using RJWQuirks;
|
||||
using RJWQuirks.Condition;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Verse;
|
||||
|
||||
namespace RJW_Menstruation_Quirks
|
||||
{
|
||||
[DefOf]
|
||||
public static class QuirkDefs
|
||||
{
|
||||
public static readonly QuirkDef Teratophile;
|
||||
public static readonly QuirkDef RedWings;
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(QuirkUtility), nameof(QuirkUtility.HasQuirk))]
|
||||
public static class HasQuirk_Patch
|
||||
{
|
||||
|
|
@ -24,24 +18,26 @@ namespace RJW_Menstruation_Quirks
|
|||
switch (quirk)
|
||||
{
|
||||
case QuirkUtility.Quirks.Breeder:
|
||||
__result = pawn.HasQuirk(RqDefOf.Quirk.Breeder);
|
||||
__result = pawn.HasQuirk(Breeder);
|
||||
return;
|
||||
case QuirkUtility.Quirks.ImpregnationFetish:
|
||||
__result = pawn.HasQuirk(RqDefOf.Quirk.ImpregnationFetish);
|
||||
__result = pawn.HasQuirk(Impregnation);
|
||||
return;
|
||||
case QuirkUtility.Quirks.Messy:
|
||||
__result = pawn.HasQuirk(RqDefOf.Quirk.Messy);
|
||||
__result = pawn.HasQuirk(Messy);
|
||||
return;
|
||||
case QuirkUtility.Quirks.Teratophile:
|
||||
__result = pawn.HasQuirk(QuirkDefs.Teratophile);
|
||||
return;
|
||||
case QuirkUtility.Quirks.RedWingsFetish:
|
||||
__result = pawn.HasQuirk(QuirkDefs.RedWings);
|
||||
__result = pawn.HasQuirk(Teratophile);
|
||||
return;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
private static QuirkDef Breeder = DefDatabase<QuirkDef>.GetNamed("Breeder");
|
||||
private static QuirkDef Impregnation = DefDatabase<QuirkDef>.GetNamed("ImpregnationFetish");
|
||||
private static QuirkDef Messy = DefDatabase<QuirkDef>.GetNamed("Messy");
|
||||
private static QuirkDef Teratophile = DefDatabase<QuirkDef>.GetNamed("Teratophile");
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(PartnerCanImpregnatePawn), nameof(PartnerCanImpregnatePawn.SatisfiedByPartner))]
|
||||
Binary file not shown.
|
|
@ -25,7 +25,7 @@
|
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>..\..\Assemblies\</OutputPath>
|
||||
<OutputPath>..\..\assemblies\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
4
1.6/Vanilla Expanded Core/source/VECore/packages.config
Normal file
4
1.6/Vanilla Expanded Core/source/VECore/packages.config
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="Lib.Harmony" version="2.3.6" targetFramework="net48" />
|
||||
</packages>
|
||||
|
|
@ -169,13 +169,6 @@ namespace RJW_Menstruation
|
|||
Scribe_Values.Look(ref useCustomColor, "useCustomColor", false);
|
||||
Scribe_Values.Look(ref customColor, "customColor", default);
|
||||
Scribe_Defs.Look(ref filthDef, "filthDef");
|
||||
if (Scribe.mode == LoadSaveMode.PostLoadInit &&
|
||||
(Single.IsInfinity(FertVolume) || Single.IsNaN(FertVolume) || volume < 0f))
|
||||
{
|
||||
Log.Error($"Invalid amount of {pawn}'s cum in a womb");
|
||||
volume = 0;
|
||||
fertility = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void MakeThinner(float speed)
|
||||
|
|
|
|||
|
|
@ -111,10 +111,8 @@ namespace RJW_Menstruation
|
|||
}
|
||||
public override IEnumerable<SexPreference> GetPreferences(Pawn pawn, Pawn partner, SexProps props)
|
||||
{
|
||||
float preferenceAmount = pawn.HasRedWingsFetish() ? Preference.Need : Preference.Despise;
|
||||
|
||||
yield return new PenetratingPreference(Preference.Neutral)
|
||||
.IfSatisfied(new PartnerPartPreference(rjw.Modules.Interactions.LewdablePartFamily.Vagina, preferenceAmount));
|
||||
.IfSatisfied(new PartnerPartPreference(rjw.Modules.Interactions.LewdablePartFamily.Vagina, Preference.Despise));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -126,7 +126,7 @@ namespace RJW_Menstruation
|
|||
protected int? opcache = null;
|
||||
protected float antisperm = 0.0f;
|
||||
// RJW pregnancy, or Biotech pregnancy/labor/laborpushing
|
||||
protected Hediff pregnancy = null; // Remove, instead reference per-genital pregnancy list
|
||||
protected Hediff pregnancy = null;
|
||||
|
||||
protected int eggLifeSpanTicks = GenDate.DaysToTicks(2);
|
||||
protected EstrusLevel estrusLevel = EstrusLevel.Visible;
|
||||
|
|
@ -188,13 +188,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
else return pregnancy;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
pregnancy = value;
|
||||
if (pregnancy != null && curStage != Stage.Pregnant)
|
||||
GoNextStage(Stage.Pregnant);
|
||||
}
|
||||
set => pregnancy = value;
|
||||
}
|
||||
|
||||
public int OvaryPowerThreshold
|
||||
|
|
@ -267,7 +261,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
public float TotalCumPercent
|
||||
{
|
||||
get => cums?.Sum(cum => cum.Volume) / (Props.maxCumCapacity * Pawn.BodySize) ?? 0;
|
||||
get => cums?.Sum(cum => cum.Volume) / Props.maxCumCapacity ?? 0;
|
||||
}
|
||||
public float CumCapacity
|
||||
{
|
||||
|
|
@ -313,7 +307,7 @@ namespace RJW_Menstruation
|
|||
{
|
||||
StatDefOf.Fertility.Worker.ClearCacheForThing(Pawn); // No effect for now, but a future RW update might add caching for this
|
||||
calculatingOvulationChance = true;
|
||||
ovulationChance *= PawnCapacityUtility.CalculateCapacityLevel(Pawn.health.hediffSet, xxx.reproduction); // Add genital fertility
|
||||
ovulationChance *= PawnCapacityUtility.CalculateCapacityLevel(Pawn.health.hediffSet, xxx.reproduction);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
|
@ -672,16 +666,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
}
|
||||
|
||||
private void ProcessExtension(MenstruationModExtension extension)
|
||||
{
|
||||
eggLifeSpanTicks = (int)(eggLifeSpanTicks * extension.eggLifeTimeFactor);
|
||||
if (extension.alwaysEstrus) estrusLevel = EstrusLevel.Visible;
|
||||
else if (extension.neverEstrus) estrusLevel = EstrusLevel.None;
|
||||
ovulationFactor *= extension.ovulationFactor;
|
||||
if (extension.noBleeding) noBleeding = true;
|
||||
}
|
||||
|
||||
public void DirtyStats()
|
||||
public void Notify_UpdatedGenes()
|
||||
{
|
||||
eggLifeSpanTicks = GenDate.DaysToTicks(Props.eggLifespanDays);
|
||||
estrusLevel = Props.concealedEstrus ? EstrusLevel.Concealed : EstrusLevel.Visible;
|
||||
|
|
@ -689,31 +674,19 @@ namespace RJW_Menstruation
|
|||
noBleeding = false;
|
||||
opcache = null;
|
||||
|
||||
MenstruationModExtension thingExtension = Pawn.def.GetModExtension<MenstruationModExtension>();
|
||||
if (thingExtension != null)
|
||||
ProcessExtension(thingExtension);
|
||||
|
||||
if (Pawn.genes != null && ModsConfig.BiotechActive)
|
||||
foreach (MenstruationModExtension geneExtension in Pawn.genes.GenesListForReading.Where(gene => gene.Active).Select(gene => gene.def.GetModExtension<MenstruationModExtension>()).Where(ext => ext != null))
|
||||
ProcessExtension(geneExtension);
|
||||
|
||||
foreach (MenstruationModExtension hediffExtension in Pawn.health.hediffSet.hediffs.Select(hediff => hediff.def.GetModExtension<MenstruationModExtension>()).Where(ext => ext != null))
|
||||
ProcessExtension(hediffExtension);
|
||||
|
||||
if (Pawn.genes == null || !ModsConfig.BiotechActive) return;
|
||||
foreach (MenstruationModExtension extension in Pawn.genes.GenesListForReading.Where(gene => gene.Active).Select(gene => gene.def.GetModExtension<MenstruationModExtension>()).Where(ext => ext != null))
|
||||
{
|
||||
eggLifeSpanTicks = (int)(eggLifeSpanTicks * extension.eggLifeTimeFactor);
|
||||
if (extension.alwaysEstrus) estrusLevel = EstrusLevel.Visible;
|
||||
else if (extension.neverEstrus) estrusLevel = EstrusLevel.None;
|
||||
ovulationFactor *= extension.ovulationFactor;
|
||||
if (extension.noBleeding) noBleeding = true;
|
||||
}
|
||||
if (eggLifeSpanTicks < 0) eggLifeSpanTicks = 0;
|
||||
if (ovulationFactor < 0f) ovulationFactor = 0f;
|
||||
}
|
||||
|
||||
public void Notify_UpdatedGenes()
|
||||
{
|
||||
DirtyStats();
|
||||
}
|
||||
|
||||
public void Notify_HediffsChanged()
|
||||
{
|
||||
DirtyStats();
|
||||
}
|
||||
|
||||
public bool ShouldSimulate()
|
||||
{
|
||||
if (!Pawn.ShouldCycle()) return false;
|
||||
|
|
@ -810,10 +783,10 @@ namespace RJW_Menstruation
|
|||
Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({Pawn}).");
|
||||
return;
|
||||
}
|
||||
if (Pregnancy.IsMechanoidPregnant()) return;
|
||||
switch (Pregnancy)
|
||||
switch (pregnancy)
|
||||
{
|
||||
case null:
|
||||
case Hediff_MechanoidPregnancy _:
|
||||
break;
|
||||
case Hediff_BasePregnancy rjw_preg:
|
||||
rjw_preg.Miscarry();
|
||||
|
|
@ -822,6 +795,8 @@ namespace RJW_Menstruation
|
|||
vanilla_preg.Miscarry();
|
||||
break;
|
||||
}
|
||||
|
||||
base.CompPostPostRemoved();
|
||||
}
|
||||
|
||||
public override string CompTipStringExtra
|
||||
|
|
@ -882,11 +857,6 @@ namespace RJW_Menstruation
|
|||
return cums?.Find(cum => !cum.notcum && cum.pawn == pawn);
|
||||
}
|
||||
|
||||
public IEnumerable<Cum> GetFluids()
|
||||
{
|
||||
return cums ?? Enumerable.Empty<Cum>();
|
||||
}
|
||||
|
||||
public IEnumerable<Cum> GetFluids(Pawn pawn)
|
||||
{
|
||||
return cums?.Where(cum => cum.pawn == pawn) ?? Enumerable.Empty<Cum>();
|
||||
|
|
@ -1255,7 +1225,7 @@ namespace RJW_Menstruation
|
|||
|
||||
protected virtual void PreInitialize()
|
||||
{
|
||||
DirtyStats();
|
||||
Notify_UpdatedGenes();
|
||||
}
|
||||
|
||||
protected virtual void PostInitialize()
|
||||
|
|
@ -1415,7 +1385,7 @@ namespace RJW_Menstruation
|
|||
return !cum.notcum &&
|
||||
cum.FertVolume > 0 &&
|
||||
!(cum.pawn?.Destroyed ?? true) &&
|
||||
(PregnancyHelper.BeastialPregnancyPossible(parent.pawn, cum.pawn) || xxx.is_animal(Pawn) == xxx.is_animal(cum.pawn));
|
||||
(RJWPregnancySettings.bestial_pregnancy_enabled || xxx.is_animal(Pawn) == xxx.is_animal(cum.pawn));
|
||||
}
|
||||
|
||||
protected Pawn Fertilize()
|
||||
|
|
@ -1464,7 +1434,7 @@ namespace RJW_Menstruation
|
|||
deadeggs.Add(egg);
|
||||
continue;
|
||||
}
|
||||
else if (Pawn.health.hediffSet.GetFirstHediff<Hediff_InsectEgg>() != null || pregnancy.IsMechanoidPregnant())
|
||||
else if (Pawn.health.hediffSet.GetFirstHediff<Hediff_InsectEgg>() != null || pregnancy is Hediff_MechanoidPregnancy)
|
||||
{
|
||||
if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to insect or mechanoid pregnancy");
|
||||
deadeggs.Add(egg);
|
||||
|
|
@ -1481,7 +1451,7 @@ namespace RJW_Menstruation
|
|||
try
|
||||
{
|
||||
if (Configurations.Debug) Log.Message($"Implanting fertilized egg of {Pawn} into {parent}, father {egg.fertilizer}");
|
||||
if (pregnancy == null) // Support pregnancy list, maybe split off into function
|
||||
if (pregnancy == null)
|
||||
{
|
||||
Configurations.PregnancyType usePregnancy = xxx.is_human(Pawn) ? Configurations.PregnancySource : Configurations.PregnancyType.MultiplePregnancy;
|
||||
switch (usePregnancy)
|
||||
|
|
@ -1499,7 +1469,7 @@ namespace RJW_Menstruation
|
|||
|
||||
case Configurations.PregnancyType.MultiplePregnancy:
|
||||
if (Configurations.Debug) Log.Message($"Creating new menstruation pregnancy");
|
||||
pregnancy = Hediff_BasePregnancy.Create<Hediff_MultiplePregnancy>(Pawn, egg.fertilizer); // Add fertility comp of mother
|
||||
pregnancy = Hediff_BasePregnancy.Create<Hediff_MultiplePregnancy>(Pawn, egg.fertilizer);
|
||||
pregnant = true;
|
||||
deadeggs.Add(egg);
|
||||
break;
|
||||
|
|
@ -1856,7 +1826,6 @@ namespace RJW_Menstruation
|
|||
|
||||
protected virtual void ThoughtCumInside(Pawn cummer)
|
||||
{
|
||||
const int haterThreshold = -5;
|
||||
MemoryThoughtHandler cummerMemories = cummer?.needs?.mood?.thoughts.memories;
|
||||
MemoryThoughtHandler pawnMemories = Pawn?.needs?.mood?.thoughts.memories;
|
||||
|
||||
|
|
@ -1864,7 +1833,7 @@ namespace RJW_Menstruation
|
|||
|
||||
if (cummer.IsProPregnancy(out Precept preceptm) || (cummer.IsTeratophile() != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)))
|
||||
{
|
||||
if (cummer.relations.OpinionOf(Pawn) <= haterThreshold)
|
||||
if (cummer.relations.OpinionOf(Pawn) <= -5)
|
||||
cummerMemories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn);
|
||||
else if (preceptm != null)
|
||||
cummerMemories.TryGainMemory(VariousDefOf.CameInsideMIdeo, Pawn, preceptm);
|
||||
|
|
@ -1878,14 +1847,14 @@ namespace RJW_Menstruation
|
|||
{
|
||||
if (preceptf != null)
|
||||
{
|
||||
if (Pawn.relations.OpinionOf(cummer) <= haterThreshold)
|
||||
if (Pawn.relations.OpinionOf(cummer) <= -5)
|
||||
pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFIdeo, cummer, preceptf);
|
||||
else
|
||||
pawnMemories.TryGainMemory(VariousDefOf.CameInsideFIdeo, cummer, preceptf);
|
||||
}
|
||||
else pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer);
|
||||
}
|
||||
else if (Pawn.relations.OpinionOf(cummer) <= haterThreshold)
|
||||
else if (Pawn.relations.OpinionOf(cummer) <= -5)
|
||||
pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer);
|
||||
else if (Pawn.IsInEstrus() && Pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup)
|
||||
pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer);
|
||||
|
|
@ -1899,7 +1868,7 @@ namespace RJW_Menstruation
|
|||
{
|
||||
if (Pawn.IsProPregnancy(out Precept _))
|
||||
pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer);
|
||||
else if (Pawn.relations.OpinionOf(cummer) <= haterThreshold)
|
||||
else if (Pawn.relations.OpinionOf(cummer) <= -5)
|
||||
pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,10 +78,10 @@ namespace RJW_Menstruation
|
|||
if (!PawnCapacityUtility.BodyCanEverDoCapacity(body, PawnCapacityDefOf.Breathing)) return 0.0f;
|
||||
HediffSet hediffs = target.health.hediffSet;
|
||||
float breathingEffect = PawnCapacityUtility.CalculateCapacityLevel(hediffs, PawnCapacityDefOf.Breathing);
|
||||
// if the body doesn't have a nose but still breathes, then let it be affected
|
||||
float noseEffect = body.GetPartsWithDef(VariousDefOf.Nose).
|
||||
Select(nose => PawnCapacityUtility.CalculatePartEfficiency(hediffs, nose)).
|
||||
DefaultIfEmpty(1.0f).Average();
|
||||
float noseEffect = 1.0f;
|
||||
List<BodyPartRecord> noses = body.GetPartsWithDef(VariousDefOf.Nose);
|
||||
if (noses.Any()) // if the body doesn't have a nose but still breathes, then let it be affected
|
||||
noseEffect = noses.Average(nose => PawnCapacityUtility.CalculatePartEfficiency(hediffs, nose));
|
||||
|
||||
return penisEffect * breathingEffect * noseEffect;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ namespace RJW_Menstruation
|
|||
public static HediffComp_Menstruation GetRandomMenstruationComp(this Pawn pawn, bool preferDangerDay = false)
|
||||
{
|
||||
List<HediffComp_Menstruation> comps = pawn.GetMenstruationComps().ToList();
|
||||
return comps.Where(comp => !preferDangerDay || comp.IsDangerDay).RandomElementWithFallback() ?? comps.RandomElementWithFallback();
|
||||
return pawn.GetMenstruationComps().Where(comp => !preferDangerDay || comp.IsDangerDay).RandomElementWithFallback() ?? comps.RandomElementWithFallback();
|
||||
}
|
||||
|
||||
public static HediffComp_Menstruation GetMenstruationCompFromVagina(this Hediff vagina)
|
||||
|
|
@ -87,27 +87,35 @@ namespace RJW_Menstruation
|
|||
return 1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, comp.TotalFertCum * comp.Props.basefertilizationChanceFactor);
|
||||
}
|
||||
|
||||
public static string GetSingleBabyImage(HediffComp_Menstruation comp, Hediff pregnancy)
|
||||
{
|
||||
ThingDef babydef;
|
||||
HediffComp_PregeneratedBabies babiescomp = pregnancy?.TryGetComp<HediffComp_PregeneratedBabies>();
|
||||
if (pregnancy.IsMechanoidPregnant()) babydef = (pregnancy as Hediff_BasePregnancy)?.babies?.FirstOrDefault()?.def ?? VariousDefOf.Scyther;
|
||||
else if (pregnancy is Hediff_BasePregnancy preg) babydef = preg.babies?.FirstOrDefault()?.def ?? ThingDefOf.Human;
|
||||
else if (babiescomp?.HasBaby ?? false) babydef = babiescomp.PeekBaby().def;
|
||||
else babydef = comp.Pawn.def;
|
||||
|
||||
return babydef.GetModExtension<PawnDNAModExtension>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
||||
}
|
||||
|
||||
public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
|
||||
{
|
||||
float gestationProgress = comp.StageProgress;
|
||||
|
||||
ThingDef babydef;
|
||||
int babycount;
|
||||
if (hediff is Hediff_BasePregnancy preg) babycount = preg.babies?.Count ?? 1;
|
||||
else babycount = hediff?.TryGetComp<HediffComp_PregeneratedBabies>()?.BabyCount ?? 1;
|
||||
HediffComp_PregeneratedBabies babiescomp = hediff?.TryGetComp<HediffComp_PregeneratedBabies>();
|
||||
if (hediff is Hediff_MechanoidPregnancy)
|
||||
{
|
||||
babydef = VariousDefOf.Scyther;
|
||||
babycount = 1;
|
||||
}
|
||||
else if (hediff is Hediff_BasePregnancy preg)
|
||||
{
|
||||
babydef = preg.babies?.FirstOrDefault()?.def ?? ThingDefOf.Human;
|
||||
babycount = preg.babies?.Count ?? 1;
|
||||
}
|
||||
else if (babiescomp?.HasBaby ?? false)
|
||||
{
|
||||
babydef = babiescomp.PeekBaby().def;
|
||||
babycount = babiescomp.BabyCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
babydef = comp.Pawn.def;
|
||||
babycount = 1;
|
||||
}
|
||||
|
||||
string fetustex = GetSingleBabyImage(comp, hediff);
|
||||
string fetustex = babydef.GetModExtension<PawnDNAModExtension>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
||||
string icon;
|
||||
if (gestationProgress < 0.2f) icon = comp.WombTex + "_Implanted";
|
||||
else if (gestationProgress < 0.4f) icon = fetustex + "00";
|
||||
|
|
@ -267,7 +275,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
else return ContentFinder<Texture2D>.Get("Eggs/Egg", true);
|
||||
case HediffComp_Menstruation.Stage.Pregnant:
|
||||
if (comp.Pregnancy.IsMechanoidPregnant()) break;
|
||||
if (comp.Pregnancy is Hediff_MechanoidPregnancy) break;
|
||||
else if (comp.GetPregnancyProgress() < 0.2f) return ContentFinder<Texture2D>.Get("Eggs/Egg_Implanted00", true);
|
||||
else break;
|
||||
}
|
||||
|
|
@ -308,11 +316,11 @@ namespace RJW_Menstruation
|
|||
return ContentFinder<Texture2D>.Get(icon, true);
|
||||
}
|
||||
|
||||
// comp used by Menstruation Fluids
|
||||
public static Texture2D GetAnalIcon(this Pawn pawn, HediffComp_Menstruation comp)
|
||||
public static Texture2D GetAnalIcon(this Pawn pawn)
|
||||
{
|
||||
if (!pawn.GetAnusList().Any()) return ContentFinder<Texture2D>.Get("Genitals/Anal00", true);
|
||||
Hediff hediff = pawn.GetAnusList().MaxBy(a => a.Severity);
|
||||
Hediff hediff = pawn.health.hediffSet.hediffs.FirstOrDefault(h => VariousDefOf.AllAnuses.Contains(h.def)) ??
|
||||
pawn.health.hediffSet.hediffs.FirstOrDefault(h => h.def.defName.ToLower().Contains("anus"));
|
||||
if (hediff == null) return ContentFinder<Texture2D>.Get("Genitals/Anal00", true);
|
||||
|
||||
string icon = ((CompProperties_Anus)hediff.GetAnusComp()?.props)?.analTex ?? "Genitals/Anal";
|
||||
float severity = hediff.Severity;
|
||||
|
|
@ -358,12 +366,11 @@ namespace RJW_Menstruation
|
|||
public static bool ShouldCycle(this Pawn pawn)
|
||||
{
|
||||
if (!Configurations.EnableAnimalCycle && pawn.IsAnimal()) return false;
|
||||
if (VariousDefOf.CycleDisableThings.Contains(pawn.def)) return false;
|
||||
if (pawn.health?.hediffSet?.hediffs.Select(hediff => hediff.def).Intersect(VariousDefOf.CycleDisableHediffs).Any() ?? false) return false;
|
||||
if (pawn.GetComp<CompEggLayer>() != null) return false;
|
||||
if (pawn.RaceHasOviPregnancy()) return false;
|
||||
|
||||
if (ModsConfig.BiotechActive && pawn.genes != null &&
|
||||
pawn.genes.GenesListForReading.Where(gene => gene.Active).Select(gene => gene.def).Intersect(VariousDefOf.CycleDisableGenes).Any()) return false;
|
||||
pawn.genes.GenesListForReading.Where(gene => gene.Active).Select(gene => gene.def).Intersect(VariousDefOf.EggLayerGenes).Any()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,12 +10,6 @@ namespace RJW_Menstruation
|
|||
{
|
||||
protected Dictionary<Pawn, Pawn> enzygoticSiblings = new Dictionary<Pawn, Pawn>(); // Each pawn and who they split from
|
||||
|
||||
// used by Eltoro's addons
|
||||
public override void PostMake()
|
||||
{
|
||||
base.PostMake();
|
||||
}
|
||||
|
||||
public override void DiscoverPregnancy()
|
||||
{
|
||||
PregnancyThought();
|
||||
|
|
@ -43,9 +37,7 @@ namespace RJW_Menstruation
|
|||
|
||||
public override void Miscarry()
|
||||
{
|
||||
HediffComp_Menstruation comp = this.GetMenstruationCompFromPregnancy();
|
||||
if (comp != null)
|
||||
comp.Pregnancy = null;
|
||||
this.GetMenstruationCompFromPregnancy().Pregnancy = null;
|
||||
if (babies != null)
|
||||
foreach (var baby in babies)
|
||||
baby.Destroy(DestroyMode.Vanish);
|
||||
|
|
@ -54,6 +46,7 @@ namespace RJW_Menstruation
|
|||
|
||||
public override void GiveBirth()
|
||||
{
|
||||
|
||||
if (babies.NullOrEmpty())
|
||||
{
|
||||
ModLog.Warning(" no babies (debug?) " + this.GetType().Name);
|
||||
|
|
@ -144,6 +137,7 @@ namespace RJW_Menstruation
|
|||
PostBirth(mother, father, baby);
|
||||
}
|
||||
|
||||
|
||||
private void BestialBirth(Pawn baby)
|
||||
{
|
||||
Pawn mother = pawn; Pawn father = Utility.GetFather(baby, pawn);
|
||||
|
|
@ -296,6 +290,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public bool AddNewBaby(Pawn mother, Pawn father)
|
||||
{
|
||||
string lastname;
|
||||
|
|
@ -538,4 +533,5 @@ namespace RJW_Menstruation
|
|||
return obj.def.GetHashCode();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,138 +0,0 @@
|
|||
using RimWorld;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
namespace RJW_Menstruation.MainTab
|
||||
{
|
||||
public class PawnColumnWorker_WombStatus : PawnColumnWorker
|
||||
{
|
||||
private const float CellIconSize = 24f;
|
||||
private const float ProgressBarHeight = 2f;
|
||||
private const float IconScale = 0.85f;
|
||||
private const int HasVisibleWombOffset = 100;
|
||||
|
||||
public override void DoCell(Rect rect, Pawn pawn, PawnTable table)
|
||||
{
|
||||
HediffComp_Menstruation comp = GetDisplayComp(pawn);
|
||||
if (comp == null) return;
|
||||
|
||||
Gizmo_Womb gizmo = Pawn_GetGizmos.CreateGizmo_WombStatus(pawn, comp);
|
||||
Rect iconRect = new Rect(
|
||||
rect.x + (rect.width - CellIconSize) / 2f,
|
||||
rect.y + Mathf.Max((rect.height - CellIconSize) / 2f, 0f),
|
||||
CellIconSize,
|
||||
CellIconSize);
|
||||
|
||||
DrawCellIcon(iconRect, gizmo);
|
||||
|
||||
if (Mouse.IsOver(iconRect) && !gizmo.defaultDesc.NullOrEmpty())
|
||||
{
|
||||
TooltipHandler.TipRegion(iconRect, gizmo.defaultDesc);
|
||||
}
|
||||
|
||||
if (Widgets.ButtonInvisible(iconRect, doMouseoverSound: false))
|
||||
{
|
||||
Dialog_WombStatus.ToggleWindow(pawn, comp);
|
||||
}
|
||||
}
|
||||
|
||||
public override int GetMinWidth(PawnTable table)
|
||||
{
|
||||
return 30;
|
||||
}
|
||||
|
||||
public override int GetMaxWidth(PawnTable table)
|
||||
{
|
||||
return GetMinWidth(table);
|
||||
}
|
||||
|
||||
public override int GetMinCellHeight(Pawn pawn)
|
||||
{
|
||||
return 30;
|
||||
}
|
||||
|
||||
public override int Compare(Pawn a, Pawn b)
|
||||
{
|
||||
int result = GetSortValue(a).CompareTo(GetSortValue(b));
|
||||
if (result != 0) return result;
|
||||
|
||||
return string.CompareOrdinal(a.LabelShortCap, b.LabelShortCap);
|
||||
}
|
||||
|
||||
private static HediffComp_Menstruation GetDisplayComp(Pawn pawn)
|
||||
{
|
||||
if (!pawn.ShowStatus() || !pawn.ShouldCycle()) return null;
|
||||
|
||||
HediffComp_Menstruation comp = pawn.GetFirstMenstruationComp();
|
||||
if (comp == null) return null;
|
||||
|
||||
if (!Configurations.ShowInfertileIcon &&
|
||||
(comp.CurrentVisibleStage == HediffComp_Menstruation.Stage.Infertile ||
|
||||
comp.CurrentVisibleStage == HediffComp_Menstruation.Stage.None))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return comp;
|
||||
}
|
||||
|
||||
private static int GetSortValue(Pawn pawn)
|
||||
{
|
||||
if (!pawn.ShowStatus() || !pawn.ShouldCycle()) return int.MinValue;
|
||||
|
||||
HediffComp_Menstruation comp = pawn.GetFirstMenstruationComp();
|
||||
if (comp == null) return int.MinValue + 1;
|
||||
|
||||
return HasVisibleWombOffset + GetStageSortValue(comp.CurrentVisibleStage);
|
||||
}
|
||||
|
||||
private static int GetStageSortValue(HediffComp_Menstruation.Stage stage)
|
||||
{
|
||||
switch (stage)
|
||||
{
|
||||
case HediffComp_Menstruation.Stage.Luteal:
|
||||
return 9;
|
||||
case HediffComp_Menstruation.Stage.Ovulatory:
|
||||
return 8;
|
||||
case HediffComp_Menstruation.Stage.Follicular:
|
||||
return 7;
|
||||
case HediffComp_Menstruation.Stage.Pregnant:
|
||||
return 6;
|
||||
case HediffComp_Menstruation.Stage.Bleeding:
|
||||
return 5;
|
||||
case HediffComp_Menstruation.Stage.Recover:
|
||||
return 4;
|
||||
case HediffComp_Menstruation.Stage.Anestrus:
|
||||
return 3;
|
||||
case HediffComp_Menstruation.Stage.Infertile:
|
||||
return 2;
|
||||
case HediffComp_Menstruation.Stage.None:
|
||||
return 1;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private static void DrawCellIcon(Rect rect, Gizmo_Womb gizmo)
|
||||
{
|
||||
Texture baseIcon = gizmo.icon ?? BaseContent.BadTex;
|
||||
Texture overlay = gizmo.icon_overlay ?? BaseContent.BadTex;
|
||||
|
||||
Widgets.DrawTextureFitted(rect, baseIcon, IconScale);
|
||||
|
||||
Color oldColor = GUI.color;
|
||||
GUI.color = gizmo.cumcolor;
|
||||
Widgets.DrawTextureFitted(rect, overlay, IconScale);
|
||||
GUI.color = Color.white;
|
||||
|
||||
if (Configurations.DrawEggOverlay)
|
||||
{
|
||||
gizmo.comp.DrawEggOverlay(rect, false);
|
||||
}
|
||||
|
||||
Rect progressRect = new Rect(rect.x + 2f, rect.y, rect.width - 4f, ProgressBarHeight);
|
||||
Widgets.FillableBar(progressRect, gizmo.comp.StageProgress, gizmo.comp.GetStageTexture);
|
||||
GUI.color = oldColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -79,7 +79,6 @@ namespace RJW_Menstruation
|
|||
__result = "CannotPregnant".Translate();
|
||||
return;
|
||||
}
|
||||
if (!pawn.ShouldCycle()) return;
|
||||
IEnumerable<HediffComp_Menstruation> comps = pawn.GetMenstruationComps();
|
||||
if (!comps.Any()) return;
|
||||
if (comps.All(comp => comp.ovarypower <= 0))
|
||||
|
|
@ -96,7 +95,6 @@ namespace RJW_Menstruation
|
|||
{
|
||||
public static void Postfix(Pawn pawn)
|
||||
{
|
||||
if (!pawn.ShouldCycle()) return;
|
||||
HediffComp_Menstruation mostEggs = pawn.GetMenstruationComps().MaxByWithFallback(comp => comp.ovarypower);
|
||||
if ((mostEggs?.ovarypower ?? 0) <= 0) return;
|
||||
mostEggs.ovarypower--;
|
||||
|
|
@ -204,17 +202,6 @@ namespace RJW_Menstruation
|
|||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Pawn_HealthTracker), nameof(Pawn_HealthTracker.CheckForStateChange))]
|
||||
public class CheckForStateChange_Patch
|
||||
{
|
||||
public static void Postfix(Pawn ___pawn, Hediff hediff)
|
||||
{
|
||||
if (hediff == null || !hediff.def.HasModExtension<MenstruationModExtension>()) return;
|
||||
foreach (HediffComp_Menstruation comp in ___pawn.GetMenstruationComps())
|
||||
comp.Notify_HediffsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(Pawn_GeneTracker), "Notify_GenesChanged")]
|
||||
public class Notify_GenesChanged_Patch
|
||||
{
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
|
||||
|
||||
internal static Gizmo_Womb CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp)
|
||||
private static Gizmo CreateGizmo_WombStatus(Pawn pawn, HediffComp_Menstruation comp)
|
||||
{
|
||||
if (!comp.loaded)
|
||||
comp.Initialize();
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace RJW_Menstruation
|
|||
|
||||
if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return true;
|
||||
if (!mother.ShouldCycle()) return true;
|
||||
if (!InteractionCanCausePregnancy(props)) return true;
|
||||
if (!InteractionCanCausePregnancy(props)) return false;
|
||||
|
||||
List<Hediff> pawnparts = Genital_Helper.get_PartsHediffList(father, Genital_Helper.get_genitalsBPR(father));
|
||||
|
||||
|
|
@ -166,7 +166,7 @@ namespace RJW_Menstruation
|
|||
if (!pawn.IsInEstrus(true)) return;
|
||||
|
||||
minimumFuckability = Mathf.Min(minimumFuckability, Configurations.EstrusFuckabilityToHookup);
|
||||
minimumRelationship = Mathf.Min(minimumRelationship, Configurations.EstrusRelationshipToHookup);
|
||||
minimumRelationship = Math.Min(minimumRelationship, Configurations.EstrusRelationshipToHookup);
|
||||
minimumAttractiveness = Mathf.Min(minimumAttractiveness, Configurations.EstrusAttractivenessToHookup);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ namespace RJW_Menstruation
|
|||
ImpregnationFetish,
|
||||
Messy,
|
||||
Teratophile,
|
||||
RedWingsFetish,
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
|
|
@ -28,6 +27,5 @@ namespace RJW_Menstruation
|
|||
public static bool HasImpregnationFetish(this Pawn pawn) => HasQuirk(pawn, Quirks.ImpregnationFetish);
|
||||
public static bool IsMessy(this Pawn pawn) => HasQuirk(pawn, Quirks.Messy);
|
||||
public static bool IsTeratophile(this Pawn pawn) => HasQuirk(pawn, Quirks.Teratophile);
|
||||
public static bool HasRedWingsFetish(this Pawn pawn) => HasQuirk(pawn, Quirks.RedWingsFetish);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@
|
|||
<Compile Include="Cum.cs" />
|
||||
<Compile Include="DebugActions.cs" />
|
||||
<Compile Include="DrugOutcomeDoers.cs" />
|
||||
<Compile Include="Preferences.cs" />
|
||||
<Compile Include="EstrusPreferences.cs" />
|
||||
<Compile Include="FloatMenuOptionVaginalWashing.cs" />
|
||||
<Compile Include="HediffComps\HediffComp_InducedOvulator.cs" />
|
||||
<Compile Include="HediffComps\HediffComp_PeriodicOvulator.cs" />
|
||||
|
|
@ -90,7 +90,6 @@
|
|||
<Compile Include="HediffComps\HediffComp_Breast.cs" />
|
||||
<Compile Include="Hediff_MultiplePregnancy.cs" />
|
||||
<Compile Include="JobDrivers.cs" />
|
||||
<Compile Include="MainTab\PawnColumnWorker_WombStatus.cs" />
|
||||
<Compile Include="UI\Gizmo_Womb.cs" />
|
||||
<Compile Include="Patch\Harmony.cs" />
|
||||
<Compile Include="HediffComps\HediffComp_Menstruation.cs" />
|
||||
|
|
|
|||
|
|
@ -390,7 +390,7 @@ namespace RJW_Menstruation
|
|||
Rect genitalAnusLabelRect = new Rect(rect.x, rect.y + fontheight + genitalRectHeight, genitalRectWidth, fontheight);
|
||||
|
||||
vagina = pawn.GetGenitalIcon(comp);
|
||||
anal = pawn.GetAnalIcon(comp);
|
||||
anal = pawn.GetAnalIcon();
|
||||
GUI.color = new Color(1.00f, 0.47f, 0.47f, 1);
|
||||
GUI.Box(rect, "", boxstyle);
|
||||
GUI.color = Utility.SafeSkinColor(pawn);
|
||||
|
|
|
|||
|
|
@ -141,11 +141,6 @@ namespace RJW_Menstruation
|
|||
return false;
|
||||
}
|
||||
|
||||
public static bool IsMechanoidPregnant(this Hediff hediff)
|
||||
{
|
||||
return hediff is Hediff_MechanoidPregnancy;
|
||||
}
|
||||
|
||||
public static float GetFarthestPregnancyProgress(this Pawn pawn)
|
||||
{
|
||||
if (ModsConfig.BiotechActive)
|
||||
|
|
@ -160,7 +155,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
List<Hediff_BasePregnancy> pregnancies = new List<Hediff_BasePregnancy>();
|
||||
pawn.health.hediffSet.GetHediffs(ref pregnancies);
|
||||
return pregnancies.Select(hediff => hediff.GestationProgress).DefaultIfEmpty(0.0f).Max();
|
||||
return pregnancies.MaxByWithFallback(hediff => hediff.GestationProgress)?.GestationProgress ?? 0;
|
||||
}
|
||||
|
||||
public static float GetPregnancyProgress(this HediffComp_Menstruation comp)
|
||||
|
|
@ -188,9 +183,60 @@ namespace RJW_Menstruation
|
|||
|
||||
public static void DrawBreastIcon(this Pawn pawn, Rect rect)
|
||||
{
|
||||
Hediff hediff = pawn.health.hediffSet.hediffs.FirstOrDefault(h => VariousDefOf.AllBreasts.Contains(h.def));
|
||||
Texture2D breast, nipple, areola;
|
||||
int breastCount = pawn.GetBreastList().Count();
|
||||
if (breastCount == 0)
|
||||
if (hediff != null)
|
||||
{
|
||||
HediffComp_Breast comp = hediff.TryGetComp<HediffComp_Breast>();
|
||||
string icon;
|
||||
if (comp != null) icon = comp.BreastTex ?? "Breasts/Breast_Breast";
|
||||
else
|
||||
{
|
||||
breast = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00", false);
|
||||
nipple = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Nipple00", false);
|
||||
areola = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Areola00", false);
|
||||
|
||||
GUI.color = SafeSkinColor(pawn);
|
||||
GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
|
||||
GUI.color = Color.white;
|
||||
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
|
||||
GUI.DrawTexture(rect, nipple, ScaleMode.ScaleToFit);
|
||||
return;
|
||||
}
|
||||
|
||||
if (hediff.Severity < 0.20f) icon += "_Breast00";
|
||||
else if (hediff.Severity < 0.40f) icon += "_Breast01";
|
||||
else if (hediff.Severity < 0.60f) icon += "_Breast02";
|
||||
else if (hediff.Severity < 0.80f) icon += "_Breast03";
|
||||
else if (hediff.Severity < 1.00f) icon += "_Breast04";
|
||||
else icon += "_Breast05";
|
||||
|
||||
string nippleicon, areolaicon;
|
||||
float nipplesize, areolasize;
|
||||
nipplesize = comp.NippleSize;
|
||||
areolasize = comp.AreolaSize;
|
||||
|
||||
nippleicon = icon + "_Nipple0" + GetNippleIndex(nipplesize);
|
||||
areolaicon = icon + "_Areola0" + GetAreolaIndex(areolasize);
|
||||
|
||||
|
||||
breast = ContentFinder<Texture2D>.Get(icon, false);
|
||||
areola = ContentFinder<Texture2D>.Get(areolaicon, false);
|
||||
nipple = ContentFinder<Texture2D>.Get(nippleicon, false);
|
||||
GUI.color = SafeSkinColor(pawn);
|
||||
GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
|
||||
|
||||
GUI.color = comp.NippleColor;
|
||||
|
||||
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
|
||||
|
||||
GUI.DrawTexture(rect, nipple, ScaleMode.ScaleToFit);
|
||||
|
||||
|
||||
if (Configurations.Debug) TooltipHandler.TipRegion(rect, comp.DebugInfo());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
breast = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00", false);
|
||||
nipple = ContentFinder<Texture2D>.Get("Breasts/Breast_Breast00_Nipple00", false);
|
||||
|
|
@ -201,41 +247,9 @@ namespace RJW_Menstruation
|
|||
GUI.color = Color.white;
|
||||
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
|
||||
GUI.DrawTexture(rect, nipple, ScaleMode.ScaleToFit);
|
||||
return;
|
||||
}
|
||||
|
||||
Hediff hediff = pawn.GetBreastList().MaxBy(h => h.Severity);
|
||||
HediffComp_Breast comp = hediff.TryGetComp<HediffComp_Breast>();
|
||||
string icon;
|
||||
if (breastCount > 1) icon = "Breasts_Udder/Breast";
|
||||
else icon = comp?.BreastTex ?? "Breasts/Breast";
|
||||
|
||||
if (hediff.Severity < 0.20f) icon += "_Breast00";
|
||||
else if (hediff.Severity < 0.40f) icon += "_Breast01";
|
||||
else if (hediff.Severity < 0.60f) icon += "_Breast02";
|
||||
else if (hediff.Severity < 0.80f) icon += "_Breast03";
|
||||
else if (hediff.Severity < 1.00f) icon += "_Breast04";
|
||||
else icon += "_Breast05";
|
||||
|
||||
string nippleicon, areolaicon;
|
||||
float nipplesize, areolasize;
|
||||
nipplesize = comp?.NippleSize ?? 0.4f;
|
||||
areolasize = comp?.AreolaSize ?? 0.4f;
|
||||
|
||||
nippleicon = icon + "_Nipple0" + GetNippleIndex(nipplesize);
|
||||
areolaicon = icon + "_Areola0" + GetAreolaIndex(areolasize);
|
||||
|
||||
breast = ContentFinder<Texture2D>.Get(icon, false);
|
||||
areola = ContentFinder<Texture2D>.Get(areolaicon, false);
|
||||
nipple = ContentFinder<Texture2D>.Get(nippleicon, false);
|
||||
|
||||
GUI.color = SafeSkinColor(pawn);
|
||||
GUI.DrawTexture(rect, breast, ScaleMode.ScaleToFit);
|
||||
GUI.color = comp?.NippleColor ?? Color.white;
|
||||
GUI.DrawTexture(rect, areola, ScaleMode.ScaleToFit);
|
||||
GUI.DrawTexture(rect, nipple, ScaleMode.ScaleToFit);
|
||||
|
||||
if (Configurations.Debug && comp != null) TooltipHandler.TipRegion(rect, comp.DebugInfo());
|
||||
}
|
||||
|
||||
public static int GetNippleIndex(float nipplesize)
|
||||
|
|
@ -339,7 +353,7 @@ namespace RJW_Menstruation
|
|||
}
|
||||
public static string GetBreastLabel(this Pawn pawn)
|
||||
{
|
||||
Hediff hediff = pawn.health.hediffSet.hediffs.Where(h => VariousDefOf.AllBreasts.Contains(h.def)).MaxByWithFallback(h => h.Severity);
|
||||
Hediff hediff = pawn.health.hediffSet.hediffs.FirstOrDefault(h => VariousDefOf.AllBreasts.Contains(h.def));
|
||||
if (hediff != null) return hediff.LabelBase.CapitalizeFirst() + "\n(" + hediff.LabelInBrackets + ")";
|
||||
else return "";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,9 +53,7 @@ namespace RJW_Menstruation
|
|||
private static HashSet<HediffDef> allvaginas = null;
|
||||
private static HashSet<HediffDef> allanuses = null;
|
||||
private static HashSet<HediffDef> allbreasts = null;
|
||||
private static HashSet<ThingDef> cycledisablethings = null;
|
||||
private static HashSet<HediffDef> cycledisablehediffs = null;
|
||||
private static HashSet<GeneDef> cycledisablegenes = null;
|
||||
private static HashSet<GeneDef> egglayergenes = null;
|
||||
|
||||
public static List<ThingDef> AllRaces
|
||||
{
|
||||
|
|
@ -108,40 +106,14 @@ namespace RJW_Menstruation
|
|||
return allbreasts;
|
||||
}
|
||||
}
|
||||
|
||||
private static HashSet<T> CycleDisableType<T>() where T: Def
|
||||
{
|
||||
return DefDatabase<T>.AllDefsListForReading.Where(def => def.GetModExtension<MenstruationModExtension>()?.disableCycle ?? false).ToHashSet();
|
||||
}
|
||||
public static HashSet<ThingDef> CycleDisableThings
|
||||
public static HashSet<GeneDef> EggLayerGenes
|
||||
{
|
||||
get
|
||||
{
|
||||
if (cycledisablethings != null) return cycledisablethings;
|
||||
cycledisablethings = CycleDisableType<ThingDef>();
|
||||
cycledisablethings.UnionWith(DefDatabase<ThingDef>.AllDefsListForReading.Where(thingdef => thingdef.HasComp<CompEggLayer>()));
|
||||
if (egglayergenes != null) return egglayergenes;
|
||||
egglayergenes = DefDatabase<GeneDef>.AllDefsListForReading.Where(geneDef => geneDef.GetModExtension<MenstruationModExtension>()?.disableCycle ?? false).ToHashSet();
|
||||
|
||||
return cycledisablethings;
|
||||
}
|
||||
}
|
||||
public static HashSet<HediffDef> CycleDisableHediffs
|
||||
{
|
||||
get
|
||||
{
|
||||
if (cycledisablehediffs != null) return cycledisablehediffs;
|
||||
cycledisablehediffs = CycleDisableType<HediffDef>();
|
||||
|
||||
return cycledisablehediffs;
|
||||
}
|
||||
}
|
||||
public static HashSet<GeneDef> CycleDisableGenes
|
||||
{
|
||||
get
|
||||
{
|
||||
if (cycledisablegenes != null) return cycledisablegenes;
|
||||
cycledisablegenes = CycleDisableType<GeneDef>();
|
||||
|
||||
return cycledisablegenes;
|
||||
return egglayergenes;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@
|
|||
<li>rim.job.world</li>
|
||||
<li>Abraxas.RJW.RaceSupport</li>
|
||||
<li>rjw.milk.humanoid</li>
|
||||
<li>rjw.quirks</li>
|
||||
</loadAfter>
|
||||
<incompatibleWithByVersion>
|
||||
<v1.4>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<Manifest>
|
||||
<identifier>RJW Menstruation</identifier>
|
||||
<version>1.6.2.4</version>
|
||||
<version>1.6.0.0</version>
|
||||
<dependencies>
|
||||
</dependencies>
|
||||
<incompatibleWith />
|
||||
|
|
|
|||
|
|
@ -1,31 +1,3 @@
|
|||
Version 1.6.2.4
|
||||
- Fix error on startup and missing womb status in RJW tab with RJW 6.1.4.
|
||||
|
||||
Version 1.6.2.3
|
||||
- Fix multiple breasts not appearing in the menstruation UI.
|
||||
- Status of wombs now appears in RJW main tab, contributed by GhostClinic.
|
||||
|
||||
Version 1.6.2.2
|
||||
- Pawns with multiple breasts will now display an udder in the menstruation UI.
|
||||
- Updated Traditional Chinese translation by Hydrogen.
|
||||
|
||||
Version 1.6.2.1
|
||||
- Modifiers in MenstruationModExtensions in ThingDefs and HediffDefs now function.
|
||||
|
||||
Version 1.6.2.0
|
||||
- Added support for adding the MenstruationModExtension to ThingDefs and HediffDefs.
|
||||
- This can be used to disable the menstrual cycle on pawns of particular types and with particular hediffs.
|
||||
- The other modifiers in MenstruationModExtension have no effect when used in a ThingDef or HediffDef for now.
|
||||
- Improved support for RJW Quirks.
|
||||
|
||||
Version 1.6.1.0
|
||||
- Compatibility update for RJW 6.0.1.
|
||||
- Requires RJW 6.0.1.
|
||||
- Added red wings quirk when using the quirks submod.
|
||||
- Improved compatibility with Eltoros Mechanoid Addon.
|
||||
- Fix error when removing a vagina with a menstruation pregnancy.
|
||||
- Added French translation by m4conazao
|
||||
|
||||
Version 1.6.0.0
|
||||
- Support for RimWorld 1.6. All future changes to Menstruation will only be for RimWorld 1.6.
|
||||
- New option added to the settings to hide wombs of infertile pawns.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue