1.0.1.8
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<Manifest>
|
<Manifest>
|
||||||
<identifier>RJW Menstruation</identifier>
|
<identifier>RJW Menstruation</identifier>
|
||||||
<version>1.0.1.6</version>
|
<version>1.0.1.8</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<incompatibleWith />
|
<incompatibleWith />
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<JobDef Name="VaginaWashing">
|
<JobDef Name="VaginaWashing">
|
||||||
<defName>VaginaWashing</defName>
|
<defName>VaginaWashing</defName>
|
||||||
<driverClass>RJW_Menstruation.JobDriver_VaginaWashing</driverClass>
|
<driverClass>RJW_Menstruation.JobDriver_VaginaWashing</driverClass>
|
||||||
<reportString>wasing vagina</reportString>
|
<reportString>washing vagina</reportString>
|
||||||
<casualInterruptible>true</casualInterruptible>
|
<casualInterruptible>true</casualInterruptible>
|
||||||
</JobDef>
|
</JobDef>
|
||||||
</Defs>
|
</Defs>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<Absorber.label>生殖器</Absorber.label>
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LanguageData>
|
||||||
|
<Hediff_MenstrualCramp.label>中枢性疼痛</Hediff_MenstrualCramp.label>
|
||||||
|
<Hediff_MenstrualCramp.description>经期中</Hediff_MenstrualCramp.description>
|
||||||
|
<Hediff_MenstrualCramp.stages.0.label>不快</Hediff_MenstrualCramp.stages.0.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.1.label>恼人</Hediff_MenstrualCramp.stages.1.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.2.label>疼痛</Hediff_MenstrualCramp.stages.2.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.3.label>痛苦</Hediff_MenstrualCramp.stages.3.label>
|
||||||
|
<Hediff_Climacteric.label>更年期</Hediff_Climacteric.label>
|
||||||
|
<Hediff_Climacteric.description>到了更年期</Hediff_Climacteric.description>
|
||||||
|
<Hediff_Climacteric.stages.0.label>初期</Hediff_Climacteric.stages.0.label>
|
||||||
|
<Hediff_Climacteric.stages.1.label>中期</Hediff_Climacteric.stages.1.label>
|
||||||
|
<Hediff_Climacteric.stages.2.label>后期</Hediff_Climacteric.stages.2.label>
|
||||||
|
<Hediff_Climacteric.stages.3.label>更年期</Hediff_Climacteric.stages.3.label>
|
||||||
|
<Hediff_Menopause.label>更年期</Hediff_Menopause.label>
|
||||||
|
<Hediff_Menopause.description>不孕</Hediff_Menopause.description>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<VaginaWashing.reportString>清洗阴道</VaginaWashing.reportString>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<MaxAbsorbable.label>可吸收量</MaxAbsorbable.label>
|
||||||
|
<MaxAbsorbable.description>最大可吸收的液体量</MaxAbsorbable.description>
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<LanguageData>
|
||||||
|
|
||||||
|
<Absorber_Tampon.label>卫生棉条</Absorber_Tampon.label>
|
||||||
|
|
||||||
|
<Absorber_Tampon.description>从阴道吸收液体的卫生棉条</Absorber_Tampon.description>
|
||||||
|
|
||||||
|
<Absorber_Tampon_Dirty.label>湿的卫生棉条</Absorber_Tampon_Dirty.label>
|
||||||
|
|
||||||
|
<Absorber_Tampon_Dirty.description>使用过的湿卫生棉条</Absorber_Tampon_Dirty.description>
|
||||||
|
|
||||||
|
<Absorber_Pad.label>卫生棉</Absorber_Pad.label>
|
||||||
|
|
||||||
|
<Absorber_Pad.description>从阴道吸收液体的卫生棉</Absorber_Pad.description>
|
||||||
|
|
||||||
|
<Absorber_Pad_Dirty.label>湿的卫生棉</Absorber_Pad_Dirty.label>
|
||||||
|
|
||||||
|
<Absorber_Pad_Dirty.description>使用过的湿卫生棉</Absorber_Pad_Dirty.description>
|
||||||
|
|
||||||
|
<OvaryRegenerationPill.label>卵巢再生药物</OvaryRegenerationPill.label>
|
||||||
|
|
||||||
|
<OvaryRegenerationPill.description>使卵巢再生以增加可排卵的卵子 卵子消耗量越大,效果越差 不能缓解更年期症状</OvaryRegenerationPill.description>
|
||||||
|
|
||||||
|
<SuperovulationInducingAgent.label>排卵药</SuperovulationInducingAgent.label>
|
||||||
|
|
||||||
|
<SuperovulationInducingAgent.description>诱导排卵的药物 可导致更年期提前</SuperovulationInducingAgent.description>
|
||||||
|
|
||||||
|
<FilthMixture.label>混合物</FilthMixture.label>
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<LeakingFluids.stages.0.label>裤湿啦</LeakingFluids.stages.0.label>
|
||||||
|
<LeakingFluids.stages.0.description>真让人困恼... </LeakingFluids.stages.0.description>
|
||||||
|
<CameInsideF.stages.0.label>被{0}中出了</CameInsideF.stages.0.label>
|
||||||
|
<CameInsideF.stages.0.description>我担心我可能会怀孕... </CameInsideF.stages.0.description>
|
||||||
|
<CameInsideFLowFert.stages.0.label>被{0}中出了</CameInsideFLowFert.stages.0.label>
|
||||||
|
<CameInsideFLowFert.stages.0.description>虽然几率很低,但我还是担心怀孕... </CameInsideFLowFert.stages.0.description>
|
||||||
|
<CameInsideFFetish.stages.0.label>被{0}中出了</CameInsideFFetish.stages.0.label>
|
||||||
|
<CameInsideFFetish.stages.0.description>我想我怀孕了</CameInsideFFetish.stages.0.description>
|
||||||
|
<CameInsideFFetishSafe.stages.0.label>被{0}中出了</CameInsideFFetishSafe.stages.0.label>
|
||||||
|
<CameInsideFFetishSafe.stages.0.description>我爱做爱</CameInsideFFetishSafe.stages.0.description>
|
||||||
|
<CameInsideM.stages.0.label>中出了{0}</CameInsideM.stages.0.label>
|
||||||
|
<CameInsideM.stages.0.description>超爽的</CameInsideM.stages.0.description>
|
||||||
|
<HaterCameInsideF.stages.0.label>被{0}中出了</HaterCameInsideF.stages.0.label>
|
||||||
|
<HaterCameInsideF.stages.0.description>那龟孙子上了我,我不想怀上他的孩子...</HaterCameInsideF.stages.0.description>
|
||||||
|
<HaterCameInsideFSafe.stages.0.label>被{0}中出了</HaterCameInsideFSafe.stages.0.label>
|
||||||
|
<HaterCameInsideFSafe.stages.0.description>那龟孙子上了我....</HaterCameInsideFSafe.stages.0.description>
|
||||||
|
<HaterCameInsideM.stages.0.label>中出了{0}</HaterCameInsideM.stages.0.label>
|
||||||
|
<HaterCameInsideM.stages.0.description>我上了一个婊子</HaterCameInsideM.stages.0.description>
|
||||||
|
<UnwantedPregnancy.stages.0.label>不想要的怀孕</UnwantedPregnancy.stages.0.label>
|
||||||
|
<UnwantedPregnancy.stages.0.description>我该怎麽办?... </UnwantedPregnancy.stages.0.description>
|
||||||
|
</LanguageData>
|
66
Languages/ChineseSimplified/Keyed/RJW_Menstruation.xml
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<Mod_Title>RJW Menstruation Cycle</Mod_Title>
|
||||||
|
|
||||||
|
<Menstrual_Blood>月经血</Menstrual_Blood>
|
||||||
|
<Info_noCum>清空</Info_noCum>
|
||||||
|
<Stage_Follicular>卵泡期</Stage_Follicular>
|
||||||
|
<Stage_Ovulatory>排卵</Stage_Ovulatory>
|
||||||
|
<Stage_Luteal>黄体期</Stage_Luteal>
|
||||||
|
<Stage_Bleeding>月经来潮</Stage_Bleeding>
|
||||||
|
<Stage_Fertilized>已受精</Stage_Fertilized>
|
||||||
|
<Stage_Pregnant>怀孕</Stage_Pregnant>
|
||||||
|
<Stage_Recover>从出生中恢复</Stage_Recover>
|
||||||
|
<Stage_None>无</Stage_None>
|
||||||
|
<Stage_Climacteric>更年期</Stage_Climacteric>
|
||||||
|
<Dialog_WombInfo01>状态</Dialog_WombInfo01>
|
||||||
|
<Dialog_WombInfo02>胎儿</Dialog_WombInfo02>
|
||||||
|
<Dialog_WombInfo03>父亲</Dialog_WombInfo03>
|
||||||
|
<Dialog_WombInfo04>阴道精液列表</Dialog_WombInfo04>
|
||||||
|
<Dialog_WombInfo05>已受精</Dialog_WombInfo05>
|
||||||
|
<Dialog_WombInfo06>受精中</Dialog_WombInfo06>
|
||||||
|
<Dialog_WombInfo07>排卵</Dialog_WombInfo07>
|
||||||
|
<Dialog_WombInfo08></Dialog_WombInfo08>
|
||||||
|
<Dialog_WombInfo09></Dialog_WombInfo09>
|
||||||
|
|
||||||
|
<Option1_Label>激活子宫图标</Option1_Label>
|
||||||
|
<Option1_Desc>激活子宫图标框</Option1_Desc>
|
||||||
|
<Option2_Label>激活动物经期</Option2_Label>
|
||||||
|
<Option2_Desc>仿真动物的经期. 此选项将在保存读取后生效 不推荐开启此选项</Option2_Desc>
|
||||||
|
<Option3_Label>植入机会</Option3_Label>
|
||||||
|
<Option3_Desc>设置受精卵的植入机会</Option3_Desc>
|
||||||
|
<Option4_Label>受精的机会</Option4_Label>
|
||||||
|
<Option4_Desc>设置每小时受精的机会</Option4_Desc>
|
||||||
|
<Option5_Label>每小时阴道中的精液量衰减率</Option5_Label>
|
||||||
|
<Option5_Desc>阴道中的精液量将以这个比率减少</Option5_Desc>
|
||||||
|
<Option6_Label>每小时生育率衰减率</Option6_Label>
|
||||||
|
<Option6_Desc>精液列表的生育率将以这个比率减少</Option6_Desc>
|
||||||
|
<Option7_Label>循环加速</Option7_Label>
|
||||||
|
<Option7_Desc>加快月经周期</Option7_Desc>
|
||||||
|
<Option8_Label>调试</Option8_Label>
|
||||||
|
<Option8_Desc>显示调试信息</Option8_Desc>
|
||||||
|
<Option9_Label>子宫状态</Option9_Label>
|
||||||
|
<Option9_Desc>在状态窗口中绘制子宫图标</Option9_Desc>
|
||||||
|
<Option10_Label>阴道状态</Option10_Label>
|
||||||
|
<Option10_Desc>在状态窗口中绘制阴道和肛门图标</Option10_Desc>
|
||||||
|
<Option11_Label>胎儿信息级别</Option11_Label>
|
||||||
|
<Option11_Desc_1>显示有关胎儿的所有信息</Option11_Desc_1>
|
||||||
|
<Option11_Desc_2>显示妊娠後胎儿的所有信息</Option11_Desc_2>
|
||||||
|
<Option11_Desc_3>不显示有关胎儿的信息,但显示怀孕後胎儿的图象</Option11_Desc_3>
|
||||||
|
<Option11_Desc_4>不显示胎儿图象和信息</Option11_Desc_4>
|
||||||
|
<Option12_Label>激活更年期</Option12_Label>
|
||||||
|
<Option12_Desc>激活更年期效果,使小人随着时间的推移而变得不育 如果您较长寿的外星人种族有碰到任何问题,请关闭此选项. 此选项将在保存读取后生效</Option12_Desc>
|
||||||
|
<Option13_Label>多重怀孕</Option13_Label>
|
||||||
|
<Option13_Desc>使用多重怀孕代替RJW的默认怀孕</Option13_Desc>
|
||||||
|
<Option14_Label>激活异卵双胞胎</Option14_Label>
|
||||||
|
<Option14_Desc>激活复数个卵子可以个别受精</Option14_Desc>
|
||||||
|
<Option15_Label>激活双胞胎</Option15_Label>
|
||||||
|
<Option15_Desc>允许单个卵子生成多个后代</Option15_Desc>
|
||||||
|
<Option16_Label>双胞胎出现率</Option16_Label>
|
||||||
|
<Option16_Desc>设置双胞胎的出现率</Option16_Desc>
|
||||||
|
<Option17_Label>最大双胞胎数量</Option17_Label>
|
||||||
|
<Option17_Desc>设置最大双胞胎数量</Option17_Desc>
|
||||||
|
|
||||||
|
<FloatMenu_CleanSelf>清洗阴道</FloatMenu_CleanSelf>
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<Absorber.label>生殖器</Absorber.label>
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<LanguageData>
|
||||||
|
<Hediff_MenstrualCramp.label>中樞性疼痛</Hediff_MenstrualCramp.label>
|
||||||
|
<Hediff_MenstrualCramp.description>經期中</Hediff_MenstrualCramp.description>
|
||||||
|
<Hediff_MenstrualCramp.stages.0.label>不快</Hediff_MenstrualCramp.stages.0.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.1.label>惱人</Hediff_MenstrualCramp.stages.1.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.2.label>疼痛</Hediff_MenstrualCramp.stages.2.label>
|
||||||
|
<Hediff_MenstrualCramp.stages.3.label>痛苦</Hediff_MenstrualCramp.stages.3.label>
|
||||||
|
<Hediff_Climacteric.label>更年期</Hediff_Climacteric.label>
|
||||||
|
<Hediff_Climacteric.description>到了更年期</Hediff_Climacteric.description>
|
||||||
|
<Hediff_Climacteric.stages.0.label>初期</Hediff_Climacteric.stages.0.label>
|
||||||
|
<Hediff_Climacteric.stages.1.label>中期</Hediff_Climacteric.stages.1.label>
|
||||||
|
<Hediff_Climacteric.stages.2.label>後期</Hediff_Climacteric.stages.2.label>
|
||||||
|
<Hediff_Climacteric.stages.3.label>更年期</Hediff_Climacteric.stages.3.label>
|
||||||
|
<Hediff_Menopause.label>更年期</Hediff_Menopause.label>
|
||||||
|
<Hediff_Menopause.description>不孕</Hediff_Menopause.description>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<VaginaWashing.reportString>清洗陰道</VaginaWashing.reportString>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<MaxAbsorbable.label>可吸收量</MaxAbsorbable.label>
|
||||||
|
<MaxAbsorbable.description>最大可吸收的液體量</MaxAbsorbable.description>
|
||||||
|
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<LanguageData>
|
||||||
|
|
||||||
|
<Absorber_Tampon.label>衛生棉條</Absorber_Tampon.label>
|
||||||
|
|
||||||
|
<Absorber_Tampon.description>從陰道吸收液體的衛生棉條</Absorber_Tampon.description>
|
||||||
|
|
||||||
|
<Absorber_Tampon_Dirty.label>濕的衛生棉條</Absorber_Tampon_Dirty.label>
|
||||||
|
|
||||||
|
<Absorber_Tampon_Dirty.description>使用過的濕衛生棉條</Absorber_Tampon_Dirty.description>
|
||||||
|
|
||||||
|
<Absorber_Pad.label>衛生棉</Absorber_Pad.label>
|
||||||
|
|
||||||
|
<Absorber_Pad.description>從陰道吸收液體的衛生棉</Absorber_Pad.description>
|
||||||
|
|
||||||
|
<Absorber_Pad_Dirty.label>濕的衛生棉</Absorber_Pad_Dirty.label>
|
||||||
|
|
||||||
|
<Absorber_Pad_Dirty.description>使用過的濕衛生棉</Absorber_Pad_Dirty.description>
|
||||||
|
|
||||||
|
<OvaryRegenerationPill.label>卵巢再生藥物</OvaryRegenerationPill.label>
|
||||||
|
|
||||||
|
<OvaryRegenerationPill.description>使卵巢再生以增加可排卵的卵子 卵子消耗量越大,效果越差 不能緩解更年期症狀</OvaryRegenerationPill.description>
|
||||||
|
|
||||||
|
<SuperovulationInducingAgent.label>排卵藥</SuperovulationInducingAgent.label>
|
||||||
|
|
||||||
|
<SuperovulationInducingAgent.description>誘導排卵的藥物 可導致更年期提前</SuperovulationInducingAgent.description>
|
||||||
|
|
||||||
|
<FilthMixture.label>混合物</FilthMixture.label>
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<LeakingFluids.stages.0.label>褲濕啦</LeakingFluids.stages.0.label>
|
||||||
|
<LeakingFluids.stages.0.description>真讓人困惱... </LeakingFluids.stages.0.description>
|
||||||
|
<CameInsideF.stages.0.label>被{0}中出了</CameInsideF.stages.0.label>
|
||||||
|
<CameInsideF.stages.0.description>我擔心我可能會懷孕... </CameInsideF.stages.0.description>
|
||||||
|
<CameInsideFLowFert.stages.0.label>被{0}中出了</CameInsideFLowFert.stages.0.label>
|
||||||
|
<CameInsideFLowFert.stages.0.description>雖然機率很低,但我還是擔心懷孕... </CameInsideFLowFert.stages.0.description>
|
||||||
|
<CameInsideFFetish.stages.0.label>被{0}中出了</CameInsideFFetish.stages.0.label>
|
||||||
|
<CameInsideFFetish.stages.0.description>我想我懷孕了</CameInsideFFetish.stages.0.description>
|
||||||
|
<CameInsideFFetishSafe.stages.0.label>被{0}中出了</CameInsideFFetishSafe.stages.0.label>
|
||||||
|
<CameInsideFFetishSafe.stages.0.description>我愛做愛</CameInsideFFetishSafe.stages.0.description>
|
||||||
|
<CameInsideM.stages.0.label>中出了{0}</CameInsideM.stages.0.label>
|
||||||
|
<CameInsideM.stages.0.description>超爽的</CameInsideM.stages.0.description>
|
||||||
|
<HaterCameInsideF.stages.0.label>被{0}中出了</HaterCameInsideF.stages.0.label>
|
||||||
|
<HaterCameInsideF.stages.0.description>那龜孫子上了我,我不想懷上他的孩子...</HaterCameInsideF.stages.0.description>
|
||||||
|
<HaterCameInsideFSafe.stages.0.label>被{0}中出了</HaterCameInsideFSafe.stages.0.label>
|
||||||
|
<HaterCameInsideFSafe.stages.0.description>那龜孫子上了我....</HaterCameInsideFSafe.stages.0.description>
|
||||||
|
<HaterCameInsideM.stages.0.label>中出了{0}</HaterCameInsideM.stages.0.label>
|
||||||
|
<HaterCameInsideM.stages.0.description>我上了一個婊子</HaterCameInsideM.stages.0.description>
|
||||||
|
<UnwantedPregnancy.stages.0.label>不想要的懷孕</UnwantedPregnancy.stages.0.label>
|
||||||
|
<UnwantedPregnancy.stages.0.description>我該怎麼辦?... </UnwantedPregnancy.stages.0.description>
|
||||||
|
</LanguageData>
|
66
Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LanguageData>
|
||||||
|
<Mod_Title>RJW Menstruation Cycle</Mod_Title>
|
||||||
|
|
||||||
|
<Menstrual_Blood>月經血</Menstrual_Blood>
|
||||||
|
<Info_noCum>清空</Info_noCum>
|
||||||
|
<Stage_Follicular>卵泡期</Stage_Follicular>
|
||||||
|
<Stage_Ovulatory>排卵</Stage_Ovulatory>
|
||||||
|
<Stage_Luteal>黃體期</Stage_Luteal>
|
||||||
|
<Stage_Bleeding>月經來潮</Stage_Bleeding>
|
||||||
|
<Stage_Fertilized>已受精</Stage_Fertilized>
|
||||||
|
<Stage_Pregnant>懷孕</Stage_Pregnant>
|
||||||
|
<Stage_Recover>從出生中恢復</Stage_Recover>
|
||||||
|
<Stage_None>無</Stage_None>
|
||||||
|
<Stage_Climacteric>更年期</Stage_Climacteric>
|
||||||
|
<Dialog_WombInfo01>狀態</Dialog_WombInfo01>
|
||||||
|
<Dialog_WombInfo02>胎兒</Dialog_WombInfo02>
|
||||||
|
<Dialog_WombInfo03>父親</Dialog_WombInfo03>
|
||||||
|
<Dialog_WombInfo04>陰道精液列表</Dialog_WombInfo04>
|
||||||
|
<Dialog_WombInfo05>已受精</Dialog_WombInfo05>
|
||||||
|
<Dialog_WombInfo06>受精中</Dialog_WombInfo06>
|
||||||
|
<Dialog_WombInfo07>排卵</Dialog_WombInfo07>
|
||||||
|
<Dialog_WombInfo08></Dialog_WombInfo08>
|
||||||
|
<Dialog_WombInfo09></Dialog_WombInfo09>
|
||||||
|
|
||||||
|
<Option1_Label>啟用子宮圖標</Option1_Label>
|
||||||
|
<Option1_Desc>啟用子宮圖標框</Option1_Desc>
|
||||||
|
<Option2_Label>啟用動物經期</Option2_Label>
|
||||||
|
<Option2_Desc>模擬動物的經期. 此選項將在保存讀取後生效 不推薦開啟此選項</Option2_Desc>
|
||||||
|
<Option3_Label>植入機會</Option3_Label>
|
||||||
|
<Option3_Desc>設置受精卵的植入機會</Option3_Desc>
|
||||||
|
<Option4_Label>受精的機會</Option4_Label>
|
||||||
|
<Option4_Desc>設置每小時受精的機會</Option4_Desc>
|
||||||
|
<Option5_Label>每小時陰道中的精液量衰減率</Option5_Label>
|
||||||
|
<Option5_Desc>陰道中的精液量將以這個比率減少</Option5_Desc>
|
||||||
|
<Option6_Label>每小時生育率衰減率</Option6_Label>
|
||||||
|
<Option6_Desc>精液列表的生育率將以這個比率減少</Option6_Desc>
|
||||||
|
<Option7_Label>循環加速</Option7_Label>
|
||||||
|
<Option7_Desc>加快月經週期</Option7_Desc>
|
||||||
|
<Option8_Label>除錯</Option8_Label>
|
||||||
|
<Option8_Desc>顯示除錯資訊</Option8_Desc>
|
||||||
|
<Option9_Label>子宮狀態</Option9_Label>
|
||||||
|
<Option9_Desc>在狀態窗口中繪製子宮圖標</Option9_Desc>
|
||||||
|
<Option10_Label>陰道狀態</Option10_Label>
|
||||||
|
<Option10_Desc>在狀態窗口中繪製陰道和肛門圖標</Option10_Desc>
|
||||||
|
<Option11_Label>胎兒信息級別</Option11_Label>
|
||||||
|
<Option11_Desc_1>顯示有關胎兒的所有信息</Option11_Desc_1>
|
||||||
|
<Option11_Desc_2>顯示妊娠後胎兒的所有信息</Option11_Desc_2>
|
||||||
|
<Option11_Desc_3>不顯示有關胎兒的信息,但顯示懷孕後胎兒的圖像</Option11_Desc_3>
|
||||||
|
<Option11_Desc_4>不顯示胎兒圖像和信息</Option11_Desc_4>
|
||||||
|
<Option12_Label>啟用更年期</Option12_Label>
|
||||||
|
<Option12_Desc>啟用更年期效果,使小人隨著時間的推移而變得不育 如果您較長壽的外星人種族有碰到任何問題,請關閉此選項. 此選項將在保存讀取後生效</Option12_Desc>
|
||||||
|
<Option13_Label>多重懷孕</Option13_Label>
|
||||||
|
<Option13_Desc>使用多重懷孕代替RJW的默認懷孕</Option13_Desc>
|
||||||
|
<Option14_Label>啟用異卵雙胞胎</Option14_Label>
|
||||||
|
<Option14_Desc>啟用複數個卵子可以個別受精</Option14_Desc>
|
||||||
|
<Option15_Label>啟用雙胞胎</Option15_Label>
|
||||||
|
<Option15_Desc>允許單個卵子產生多個後代</Option15_Desc>
|
||||||
|
<Option16_Label>雙胞胎出現率</Option16_Label>
|
||||||
|
<Option16_Desc>設置雙胞胎的出現率</Option16_Desc>
|
||||||
|
<Option17_Label>最大雙胞胎數量</Option17_Label>
|
||||||
|
<Option17_Desc>設置最大雙胞胎數量</Option17_Desc>
|
||||||
|
|
||||||
|
<FloatMenu_CleanSelf>清洗陰道</FloatMenu_CleanSelf>
|
||||||
|
|
||||||
|
</LanguageData>
|
|
@ -60,6 +60,8 @@
|
||||||
<Option16_Desc>set chance of twins</Option16_Desc>
|
<Option16_Desc>set chance of twins</Option16_Desc>
|
||||||
<Option17_Label>max enzygotic twins</Option17_Label>
|
<Option17_Label>max enzygotic twins</Option17_Label>
|
||||||
<Option17_Desc>set max number of twins</Option17_Desc>
|
<Option17_Desc>set max number of twins</Option17_Desc>
|
||||||
|
<Option18_Label>enable egg overlay</Option18_Label>
|
||||||
|
<Option18_Desc>enable egg overlay on womb icon</Option18_Desc>
|
||||||
|
|
||||||
<FloatMenu_CleanSelf>Vaginal washing</FloatMenu_CleanSelf>
|
<FloatMenu_CleanSelf>Vaginal washing</FloatMenu_CleanSelf>
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,8 @@
|
||||||
<Option16_Desc>일란성 쌍둥이가 발생할 확률을 설정합니다.</Option16_Desc>
|
<Option16_Desc>일란성 쌍둥이가 발생할 확률을 설정합니다.</Option16_Desc>
|
||||||
<Option17_Label>최대 일란성 쌍둥이 수</Option17_Label>
|
<Option17_Label>최대 일란성 쌍둥이 수</Option17_Label>
|
||||||
<Option17_Desc>일란성 쌍둥이의 수를 제한합니다.</Option17_Desc>
|
<Option17_Desc>일란성 쌍둥이의 수를 제한합니다.</Option17_Desc>
|
||||||
|
<Option18_Label>난자 오버레이</Option18_Label>
|
||||||
|
<Option18_Desc>자궁그림 위에 난자그림를 표시합니다.</Option18_Desc>
|
||||||
|
|
||||||
<FloatMenu_CleanSelf>질세척</FloatMenu_CleanSelf>
|
<FloatMenu_CleanSelf>질세척</FloatMenu_CleanSelf>
|
||||||
|
|
||||||
|
|
BIN
Textures/Eggs/Egg.png
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
Textures/Eggs/Egg.psd
Normal file
BIN
Textures/Eggs/Egg_Fertilized00.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
Textures/Eggs/Egg_Fertilized01.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
Textures/Eggs/Egg_Fertilized02.png
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
Textures/Eggs/Egg_Fertilizing00.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
Textures/Eggs/Egg_Fertilizing01.png
Normal file
After Width: | Height: | Size: 76 KiB |
BIN
Textures/Eggs/Egg_Fertilizing02.png
Normal file
After Width: | Height: | Size: 81 KiB |
BIN
Textures/Eggs/Egg_Implanted00.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
Textures/Eggs/Eggs.zip
Normal file
|
@ -1,3 +1,13 @@
|
||||||
|
Version 1.0.1.8
|
||||||
|
- fixed problems with animal status window
|
||||||
|
- fixed RMB menu crash
|
||||||
|
- added egg overlay
|
||||||
|
- default implantation chance changed to 65%
|
||||||
|
- now fertilized eggs are implanted after 7 days later
|
||||||
|
Version 1.0.1.7
|
||||||
|
- added chinese translations
|
||||||
|
- major bug fixes
|
||||||
|
- minor bug fixes
|
||||||
Version 1.0.1.6
|
Version 1.0.1.6
|
||||||
- fixed bugs when display fetus image
|
- fixed bugs when display fetus image
|
||||||
- fixed futa female was not set as parent
|
- fixed futa female was not set as parent
|
||||||
|
|
|
@ -10,12 +10,12 @@ namespace RJW_Menstruation
|
||||||
{
|
{
|
||||||
public class Configurations : ModSettings
|
public class Configurations : ModSettings
|
||||||
{
|
{
|
||||||
public const float ImplantationChanceDefault = 0.25f;
|
public const float ImplantationChanceDefault = 0.65f;
|
||||||
public const int ImplantationChanceAdjustDefault = 25;
|
public const int ImplantationChanceAdjustDefault = 65;
|
||||||
public const float FertilizeChanceDefault = 0.05f;
|
public const float FertilizeChanceDefault = 0.05f;
|
||||||
public const int FertilizeChanceAdjustDefault = 50;
|
public const int FertilizeChanceAdjustDefault = 50;
|
||||||
public const float CumDecayRatioDefault = 0.05f;
|
public const float CumDecayRatioDefault = 0.15f;
|
||||||
public const int CumDecayRatioAdjustDefault = 50;
|
public const int CumDecayRatioAdjustDefault = 150;
|
||||||
public const float CumFertilityDecayRatioDefault = 0.2f;
|
public const float CumFertilityDecayRatioDefault = 0.2f;
|
||||||
public const int CumFertilityDecayRatioAdjustDefault = 200;
|
public const int CumFertilityDecayRatioAdjustDefault = 200;
|
||||||
public const int CycleAccelerationDefault = 6;
|
public const int CycleAccelerationDefault = 6;
|
||||||
|
@ -36,6 +36,7 @@ namespace RJW_Menstruation
|
||||||
public static bool EnableAnimalCycle = false;
|
public static bool EnableAnimalCycle = false;
|
||||||
public static bool DrawWombStatus = true;
|
public static bool DrawWombStatus = true;
|
||||||
public static bool DrawVaginaStatus = true;
|
public static bool DrawVaginaStatus = true;
|
||||||
|
public static bool DrawEggOverlay = true;
|
||||||
public static bool Debug = false;
|
public static bool Debug = false;
|
||||||
public static bool EnableMenopause = true;
|
public static bool EnableMenopause = true;
|
||||||
public static DetailLevel InfoDetail = DetailLevel.All;
|
public static DetailLevel InfoDetail = DetailLevel.All;
|
||||||
|
@ -94,6 +95,7 @@ namespace RJW_Menstruation
|
||||||
Scribe_Values.Look(ref EnableAnimalCycle, "EnableAnimalCycle", EnableAnimalCycle, true);
|
Scribe_Values.Look(ref EnableAnimalCycle, "EnableAnimalCycle", EnableAnimalCycle, true);
|
||||||
Scribe_Values.Look(ref DrawWombStatus, "DrawWombStatus", DrawWombStatus, true);
|
Scribe_Values.Look(ref DrawWombStatus, "DrawWombStatus", DrawWombStatus, true);
|
||||||
Scribe_Values.Look(ref DrawVaginaStatus, "DrawVaginaStatus", DrawVaginaStatus, true);
|
Scribe_Values.Look(ref DrawVaginaStatus, "DrawVaginaStatus", DrawVaginaStatus, true);
|
||||||
|
Scribe_Values.Look(ref DrawEggOverlay, "DrawEggOvray", DrawEggOverlay, true);
|
||||||
Scribe_Values.Look(ref Debug, "Debug", Debug, true);
|
Scribe_Values.Look(ref Debug, "Debug", Debug, true);
|
||||||
Scribe_Values.Look(ref InfoDetail, "InfoDetail", InfoDetail, true);
|
Scribe_Values.Look(ref InfoDetail, "InfoDetail", InfoDetail, true);
|
||||||
Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", EnableMenopause, true);
|
Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", EnableMenopause, true);
|
||||||
|
@ -143,8 +145,12 @@ namespace RJW_Menstruation
|
||||||
listmain.CheckboxLabeled(Translations.Option1_Label, ref Configurations.EnableWombIcon, Translations.Option1_Desc);
|
listmain.CheckboxLabeled(Translations.Option1_Label, ref Configurations.EnableWombIcon, Translations.Option1_Desc);
|
||||||
if (Configurations.EnableWombIcon)
|
if (Configurations.EnableWombIcon)
|
||||||
{
|
{
|
||||||
Listing_Standard wombsection = listmain.BeginSection_NewTemp(111);
|
Listing_Standard wombsection = listmain.BeginSection_NewTemp(131);
|
||||||
wombsection.CheckboxLabeled(Translations.Option9_Label, ref Configurations.DrawWombStatus, Translations.Option9_Desc);
|
wombsection.CheckboxLabeled(Translations.Option9_Label, ref Configurations.DrawWombStatus, Translations.Option9_Desc);
|
||||||
|
if (Configurations.DrawWombStatus)
|
||||||
|
{
|
||||||
|
wombsection.CheckboxLabeled(Translations.Option18_Label, ref Configurations.DrawEggOverlay, Translations.Option18_Desc);
|
||||||
|
}
|
||||||
wombsection.CheckboxLabeled(Translations.Option10_Label, ref Configurations.DrawVaginaStatus, Translations.Option10_Desc);
|
wombsection.CheckboxLabeled(Translations.Option10_Label, ref Configurations.DrawVaginaStatus, Translations.Option10_Desc);
|
||||||
if (wombsection.ButtonText(Translations.Option11_Label + ": " + Configurations.LevelString(Configurations.InfoDetail)))
|
if (wombsection.ButtonText(Translations.Option11_Label + ": " + Configurations.LevelString(Configurations.InfoDetail)))
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,7 +42,14 @@ namespace RJW_Menstruation
|
||||||
{
|
{
|
||||||
if (DNAcache == null)
|
if (DNAcache == null)
|
||||||
{
|
{
|
||||||
DNAcache = pawn.def.GetModExtension<PawnDNAModExtention>();
|
try
|
||||||
|
{
|
||||||
|
DNAcache = pawn.def.GetModExtension<PawnDNAModExtention>();
|
||||||
|
}
|
||||||
|
catch (NullReferenceException)
|
||||||
|
{
|
||||||
|
DNAcache = ThingDefOf.Human.GetModExtension<PawnDNAModExtention>();
|
||||||
|
}
|
||||||
if (DNAcache == null)
|
if (DNAcache == null)
|
||||||
{
|
{
|
||||||
DNAcache = ThingDefOf.Human.GetModExtension<PawnDNAModExtention>();
|
DNAcache = ThingDefOf.Human.GetModExtension<PawnDNAModExtention>();
|
||||||
|
@ -89,9 +96,6 @@ namespace RJW_Menstruation
|
||||||
this.pawn = pawn;
|
this.pawn = pawn;
|
||||||
volume = 1.0f;
|
volume = 1.0f;
|
||||||
fertvolume = 1.0f;
|
fertvolume = 1.0f;
|
||||||
decayresist = 0;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Cum(Pawn pawn, float volume, string notcumlabel, float decayresist = 0, ThingDef filthDef = null)
|
public Cum(Pawn pawn, float volume, string notcumlabel, float decayresist = 0, ThingDef filthDef = null)
|
||||||
|
|
|
@ -23,7 +23,6 @@ namespace RJW_Menstruation
|
||||||
private const float genitalRectWidth = 102;
|
private const float genitalRectWidth = 102;
|
||||||
private const float genitalRectHeight = 140;
|
private const float genitalRectHeight = 140;
|
||||||
|
|
||||||
|
|
||||||
private Texture2D womb;
|
private Texture2D womb;
|
||||||
private Texture2D cum;
|
private Texture2D cum;
|
||||||
private Texture2D vagina;
|
private Texture2D vagina;
|
||||||
|
@ -36,7 +35,7 @@ namespace RJW_Menstruation
|
||||||
private GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea);
|
private GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea);
|
||||||
private GUIStyle buttonstyle = new GUIStyle(GUI.skin.button);
|
private GUIStyle buttonstyle = new GUIStyle(GUI.skin.button);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public override Vector2 InitialSize
|
public override Vector2 InitialSize
|
||||||
|
@ -97,8 +96,9 @@ namespace RJW_Menstruation
|
||||||
boxstyle.border.left = 4; boxstyle.border.right = 4; boxstyle.border.bottom = 4; boxstyle.border.top = 4;
|
boxstyle.border.left = 4; boxstyle.border.right = 4; boxstyle.border.bottom = 4; boxstyle.border.top = 4;
|
||||||
|
|
||||||
float preginfoheight = 0f;
|
float preginfoheight = 0f;
|
||||||
|
bool pregnant = pawn.IsPregnant();
|
||||||
Hediff hediff = PregnancyHelper.GetPregnancy(pawn);
|
Hediff hediff = PregnancyHelper.GetPregnancy(pawn);
|
||||||
if (pawn.IsPregnant() && Utility.ShowFetusImage((Hediff_BasePregnancy)hediff))
|
if (pregnant && Utility.ShowFetusImage((Hediff_BasePregnancy)hediff))
|
||||||
{
|
{
|
||||||
womb = Utility.GetPregnancyIcon(comp, hediff);
|
womb = Utility.GetPregnancyIcon(comp, hediff);
|
||||||
if (hediff is Hediff_MultiplePregnancy)
|
if (hediff is Hediff_MultiplePregnancy)
|
||||||
|
@ -165,7 +165,7 @@ namespace RJW_Menstruation
|
||||||
Rect pawnLabel2Rect = new Rect(0, pawnRectHeight + fontheight - 10, pawnRectWidth, fontheight - 10);
|
Rect pawnLabel2Rect = new Rect(0, pawnRectHeight + fontheight - 10, pawnRectWidth, fontheight - 10);
|
||||||
fontstylecenter.normal.textColor = pawn.DrawColor;
|
fontstylecenter.normal.textColor = pawn.DrawColor;
|
||||||
GUI.Label(pawnLabelRect, pawn.Name.ToStringFull, fontstylecenter);
|
GUI.Label(pawnLabelRect, pawn.Name.ToStringFull, fontstylecenter);
|
||||||
GUI.Label(pawnLabel2Rect, pawn.story.Title, fontstylecenter);
|
if (pawn.story != null)GUI.Label(pawnLabel2Rect, pawn.story.Title, fontstylecenter);
|
||||||
GUI.color = Color.white;
|
GUI.color = Color.white;
|
||||||
|
|
||||||
float wombrecth = 0;
|
float wombrecth = 0;
|
||||||
|
@ -175,6 +175,14 @@ namespace RJW_Menstruation
|
||||||
cumcolor = comp.GetCumMixtureColor;
|
cumcolor = comp.GetCumMixtureColor;
|
||||||
Rect wombRect = new Rect(0f, mainRect.yMax - wombRectHeight + preginfoheight, wombRectWidth, wombRectWidth*0.9f);
|
Rect wombRect = new Rect(0f, mainRect.yMax - wombRectHeight + preginfoheight, wombRectWidth, wombRectWidth*0.9f);
|
||||||
DrawWomb(wombRect);
|
DrawWomb(wombRect);
|
||||||
|
|
||||||
|
|
||||||
|
if (Configurations.DrawEggOverlay)
|
||||||
|
{
|
||||||
|
comp.DrawEggOverlay(wombRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Rect wombInfoRect = new Rect(0f, mainRect.yMax - wombrecth - fontheight - 2, wombRectWidth, fontheight);
|
Rect wombInfoRect = new Rect(0f, mainRect.yMax - wombrecth - fontheight - 2, wombRectWidth, fontheight);
|
||||||
|
@ -197,7 +205,7 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
//Widgets.Label(wombInfoRect,Translations.Dialog_WombInfo01 + ": " + comp.GetCurStageLabel);
|
//Widgets.Label(wombInfoRect,Translations.Dialog_WombInfo01 + ": " + comp.GetCurStageLabel);
|
||||||
|
|
||||||
if (Configurations.DrawVaginaStatus)
|
if (Configurations.DrawVaginaStatus && !pawn.IsAnimal())
|
||||||
{
|
{
|
||||||
Rect genitalRect = new Rect(24, pawnRectHeight + 2 * fontheight, genitalRectWidth, genitalRectHeight + fontheight * 2);
|
Rect genitalRect = new Rect(24, pawnRectHeight + 2 * fontheight, genitalRectWidth, genitalRectHeight + fontheight * 2);
|
||||||
DrawVagina(genitalRect);
|
DrawVagina(genitalRect);
|
||||||
|
@ -249,8 +257,12 @@ namespace RJW_Menstruation
|
||||||
GUI.DrawTexture(rect, womb, ScaleMode.ScaleToFit, true, 0, Color.white, 0, 0);
|
GUI.DrawTexture(rect, womb, ScaleMode.ScaleToFit, true, 0, Color.white, 0, 0);
|
||||||
GUI.DrawTexture(rect, cum, ScaleMode.ScaleToFit, true, 0, cumcolor, 0, 0);
|
GUI.DrawTexture(rect, cum, ScaleMode.ScaleToFit, true, 0, cumcolor, 0, 0);
|
||||||
GUI.color = Color.white;
|
GUI.color = Color.white;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void DrawVagina(Rect rect)
|
private void DrawVagina(Rect rect)
|
||||||
{
|
{
|
||||||
Rect genitalIconRect = new Rect(rect.x, rect.y + fontheight, genitalRectWidth, genitalRectHeight);
|
Rect genitalIconRect = new Rect(rect.x, rect.y + fontheight, genitalRectWidth, genitalRectHeight);
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace RJW_Menstruation
|
||||||
{
|
{
|
||||||
public Texture2D icon_overay;
|
public Texture2D icon_overay;
|
||||||
public Color cumcolor;
|
public Color cumcolor;
|
||||||
|
public HediffComp_Menstruation comp;
|
||||||
|
|
||||||
protected override void DrawIcon(Rect rect, Material buttonMat = null)
|
protected override void DrawIcon(Rect rect, Material buttonMat = null)
|
||||||
{
|
{
|
||||||
|
@ -36,6 +37,8 @@ namespace RJW_Menstruation
|
||||||
GUI.color = color;
|
GUI.color = color;
|
||||||
Widgets.DrawTextureFitted(rect, overay, iconDrawScale * 0.85f, iconProportions, iconTexCoords, iconAngle, buttonMat);
|
Widgets.DrawTextureFitted(rect, overay, iconDrawScale * 0.85f, iconProportions, iconTexCoords, iconAngle, buttonMat);
|
||||||
GUI.color = Color.white;
|
GUI.color = Color.white;
|
||||||
|
if (Configurations.DrawEggOverlay) comp.DrawEggOverlay(rect);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -289,7 +289,7 @@ namespace RJW_Menstruation
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool GetEggFertilizing
|
public bool IsEggFertilizing
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@ -305,18 +305,22 @@ namespace RJW_Menstruation
|
||||||
else return false;
|
else return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool GetFertilization
|
|
||||||
|
/// <summary>
|
||||||
|
/// returns fertstage. if not fertilized returns -1
|
||||||
|
/// </summary>
|
||||||
|
public int IsFertilized
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (!eggs.NullOrEmpty()) foreach(Egg egg in eggs)
|
if (!eggs.NullOrEmpty()) foreach(Egg egg in eggs)
|
||||||
{
|
{
|
||||||
if (egg.fertilized) return true;
|
if (egg.fertilized) return egg.fertstage;
|
||||||
}
|
}
|
||||||
return false;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public bool GetEgg
|
public bool IsEggExist
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
|
@ -655,7 +659,7 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
public void BeforeCumOut(out Absorber absorber)
|
public void BeforeCumOut(out Absorber absorber)
|
||||||
{
|
{
|
||||||
absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x.def.apparel.tags.Contains("Absorber"));
|
absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x is Absorber);
|
||||||
if (absorber != null)
|
if (absorber != null)
|
||||||
{
|
{
|
||||||
absorber.WearEffect();
|
absorber.WearEffect();
|
||||||
|
@ -706,7 +710,7 @@ namespace RJW_Menstruation
|
||||||
cum.fertvolume *= Math.Max(0, (1 - (Configurations.CumDecayRatio * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist))));
|
cum.fertvolume *= Math.Max(0, (1 - (Configurations.CumDecayRatio * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist))));
|
||||||
vd -= cum.volume;
|
vd -= cum.volume;
|
||||||
totalleak += AbsorbCum(cum, vd, absorber);
|
totalleak += AbsorbCum(cum, vd, absorber);
|
||||||
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn.LabelShort, 1.ToString());
|
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
|
||||||
filthlabels.Add(tmp.Replace(" x1",""));
|
filthlabels.Add(tmp.Replace(" x1",""));
|
||||||
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
||||||
if (cum.volume < 0.01f) removecums.Add(cum);
|
if (cum.volume < 0.01f) removecums.Add(cum);
|
||||||
|
@ -746,7 +750,7 @@ namespace RJW_Menstruation
|
||||||
cum.volume *= Math.Max(0, 1 - (portion * (1 - cum.decayresist)) * leakfactor);
|
cum.volume *= Math.Max(0, 1 - (portion * (1 - cum.decayresist)) * leakfactor);
|
||||||
cum.fertvolume *= Math.Max(0, (1 - (portion * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist))));
|
cum.fertvolume *= Math.Max(0, (1 - (portion * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist))));
|
||||||
//MakeCumFilth(cum, vd - cum.volume);
|
//MakeCumFilth(cum, vd - cum.volume);
|
||||||
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn.LabelShort, 1.ToString());
|
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
|
||||||
filthlabels.Add(tmp.Replace(" x1", ""));
|
filthlabels.Add(tmp.Replace(" x1", ""));
|
||||||
totalleak += vd - cum.volume;
|
totalleak += vd - cum.volume;
|
||||||
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
||||||
|
@ -785,7 +789,7 @@ namespace RJW_Menstruation
|
||||||
cum.volume *= 1 - (portion);
|
cum.volume *= 1 - (portion);
|
||||||
cum.fertvolume *= (1 - (portion)) * (1 - (Configurations.CumFertilityDecayRatio));
|
cum.fertvolume *= (1 - (portion)) * (1 - (Configurations.CumFertilityDecayRatio));
|
||||||
//MakeCumFilth(cum, vd - cum.volume);
|
//MakeCumFilth(cum, vd - cum.volume);
|
||||||
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn.LabelShort, 1.ToString());
|
string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
|
||||||
filthlabels.Add(tmp.Replace(" x1", ""));
|
filthlabels.Add(tmp.Replace(" x1", ""));
|
||||||
totalleak += vd - cum.volume;
|
totalleak += vd - cum.volume;
|
||||||
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
if (cum.fertvolume < 0.01f) cum.fertvolume = 0;
|
||||||
|
@ -821,6 +825,7 @@ namespace RJW_Menstruation
|
||||||
if (!egg.fertilized) egg.fertilizer = Fertilize();
|
if (!egg.fertilized) egg.fertilizer = Fertilize();
|
||||||
if (egg.fertilizer != null) {
|
if (egg.fertilizer != null) {
|
||||||
egg.fertilized = true;
|
egg.fertilized = true;
|
||||||
|
egg.lifespanhrs += 240;
|
||||||
onefertilized = true;
|
onefertilized = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -918,7 +923,7 @@ namespace RJW_Menstruation
|
||||||
foreach (Cum cum in cums)
|
foreach (Cum cum in cums)
|
||||||
{
|
{
|
||||||
float rand = Rand.Range(0.0f, 1.0f);
|
float rand = Rand.Range(0.0f, 1.0f);
|
||||||
if (!cum.notcum && rand < cum.fertvolume * cum.fertFactor * Configurations.FertilizeChance * Props.basefertilizationChanceFactor)
|
if (cum.pawn != null && !cum.notcum && rand < cum.fertvolume * cum.fertFactor * Configurations.FertilizeChance * Props.basefertilizationChanceFactor)
|
||||||
{
|
{
|
||||||
if (!RJWPregnancySettings.bestial_pregnancy_enabled && (xxx.is_animal(parent.pawn) ^ xxx.is_animal(cum.pawn))) continue;
|
if (!RJWPregnancySettings.bestial_pregnancy_enabled && (xxx.is_animal(parent.pawn) ^ xxx.is_animal(cum.pawn))) continue;
|
||||||
return cum.pawn;
|
return cum.pawn;
|
||||||
|
@ -936,7 +941,7 @@ namespace RJW_Menstruation
|
||||||
bool pregnant = false;
|
bool pregnant = false;
|
||||||
foreach(Egg egg in eggs)
|
foreach(Egg egg in eggs)
|
||||||
{
|
{
|
||||||
if (egg.position < 24 || !egg.fertilized) continue;
|
if (!egg.fertilized || egg.fertstage < 168) continue;
|
||||||
else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * Props.baseImplantationChanceFactor * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer))
|
else if (Rand.Range(0.0f, 1.0f) <= Configurations.ImplantationChance * Props.baseImplantationChanceFactor * ImplantFactor * InterspeciesImplantFactor(egg.fertilizer))
|
||||||
{
|
{
|
||||||
if (!parent.pawn.IsPregnant())
|
if (!parent.pawn.IsPregnant())
|
||||||
|
@ -1013,7 +1018,7 @@ namespace RJW_Menstruation
|
||||||
/// <param name="amount"></param>
|
/// <param name="amount"></param>
|
||||||
private void MakeCumFilth(Cum cum, float amount)
|
private void MakeCumFilth(Cum cum, float amount)
|
||||||
{
|
{
|
||||||
if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort);
|
if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn?.LabelShort ?? "Unknown");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1076,6 +1081,7 @@ namespace RJW_Menstruation
|
||||||
egg.lifespanhrs -= Configurations.CycleAcceleration;
|
egg.lifespanhrs -= Configurations.CycleAcceleration;
|
||||||
egg.position += Configurations.CycleAcceleration;
|
egg.position += Configurations.CycleAcceleration;
|
||||||
if (egg.lifespanhrs < 0) deadeggs.Add(egg);
|
if (egg.lifespanhrs < 0) deadeggs.Add(egg);
|
||||||
|
if (egg.fertilized) egg.fertstage += Configurations.CycleAcceleration;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!deadeggs.NullOrEmpty())
|
if (!deadeggs.NullOrEmpty())
|
||||||
|
@ -1463,6 +1469,7 @@ namespace RJW_Menstruation
|
||||||
public int lifespanhrs;
|
public int lifespanhrs;
|
||||||
public Pawn fertilizer;
|
public Pawn fertilizer;
|
||||||
public int position;
|
public int position;
|
||||||
|
public int fertstage = 0;
|
||||||
|
|
||||||
public Egg()
|
public Egg()
|
||||||
{
|
{
|
||||||
|
@ -1486,6 +1493,7 @@ namespace RJW_Menstruation
|
||||||
Scribe_Values.Look(ref fertilized, "fertilized", fertilized, true);
|
Scribe_Values.Look(ref fertilized, "fertilized", fertilized, true);
|
||||||
Scribe_Values.Look(ref lifespanhrs, "lifespanhrs", lifespanhrs, true);
|
Scribe_Values.Look(ref lifespanhrs, "lifespanhrs", lifespanhrs, true);
|
||||||
Scribe_Values.Look(ref position, "position", position, true);
|
Scribe_Values.Look(ref position, "position", position, true);
|
||||||
|
Scribe_Values.Look(ref fertstage, "fertstage", fertstage, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,7 @@ namespace RJW_Menstruation
|
||||||
icon = icon,
|
icon = icon,
|
||||||
icon_overay = icon_overay,
|
icon_overay = icon_overay,
|
||||||
cumcolor = c,
|
cumcolor = c,
|
||||||
|
comp = comp,
|
||||||
order = 100,
|
order = 100,
|
||||||
action = delegate
|
action = delegate
|
||||||
{
|
{
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
foreach (LocalTargetInfo t in selftargets)
|
foreach (LocalTargetInfo t in selftargets)
|
||||||
{
|
{
|
||||||
opts.AddDistinct(MakeSelfMenu(pawn, t));
|
if (Utility.HasMenstruationComp(pawn)) opts.AddDistinct(MakeSelfMenu(pawn, t));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,15 +48,10 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
public static FloatMenuOption MakeSelfMenu(Pawn pawn, LocalTargetInfo target)
|
public static FloatMenuOption MakeSelfMenu(Pawn pawn, LocalTargetInfo target)
|
||||||
{
|
{
|
||||||
FloatMenuOption option = null;
|
FloatMenuOption option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Translations.FloatMenu_CleanSelf, delegate ()
|
||||||
if (Utility.HasMenstruationComp(pawn))
|
|
||||||
{
|
|
||||||
option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Translations.FloatMenu_CleanSelf, delegate ()
|
|
||||||
{
|
{
|
||||||
pawn.jobs.TryTakeOrderedJob_NewTemp(new Verse.AI.Job(VariousDefOf.VaginaWashing, null, null, target.Cell));
|
pawn.jobs.TryTakeOrderedJob_NewTemp(new Verse.AI.Job(VariousDefOf.VaginaWashing, null, null, target.Cell));
|
||||||
}, MenuOptionPriority.Low), pawn, target);
|
}, MenuOptionPriority.Low), pawn, target);
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return option;
|
return option;
|
||||||
}
|
}
|
||||||
|
@ -65,7 +60,20 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//[HarmonyPatch(typeof(JobGiver_OptimizeApparel), "ApparelScoreGain_NewTmp")]
|
||||||
|
//public class OptimizeApparel_Patch
|
||||||
|
//{
|
||||||
|
// public static bool Prefix(ref float __result, Pawn pawn, Apparel ap, List<float> wornScoresCache)
|
||||||
|
// {
|
||||||
|
// if (ap is Absorber)
|
||||||
|
// {
|
||||||
|
// __result = -1000f;
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
//}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ namespace RJW_Menstruation
|
||||||
public ColorInt cumColor;
|
public ColorInt cumColor;
|
||||||
public Color CumColor => cumColor.ToColor;
|
public Color CumColor => cumColor.ToColor;
|
||||||
public float cumThickness = 0f;
|
public float cumThickness = 0f;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,8 @@ namespace RJW_Menstruation
|
||||||
public static readonly string Option16_Desc = "Option16_Desc".Translate();
|
public static readonly string Option16_Desc = "Option16_Desc".Translate();
|
||||||
public static readonly string Option17_Label = "Option17_Label".Translate();
|
public static readonly string Option17_Label = "Option17_Label".Translate();
|
||||||
public static readonly string Option17_Desc = "Option17_Desc".Translate();
|
public static readonly string Option17_Desc = "Option17_Desc".Translate();
|
||||||
|
public static readonly string Option18_Label = "Option18_Label".Translate();
|
||||||
|
public static readonly string Option18_Desc = "Option18_Desc".Translate();
|
||||||
|
|
||||||
public static readonly string FloatMenu_CleanSelf = "FloatMenu_CleanSelf".Translate();
|
public static readonly string FloatMenu_CleanSelf = "FloatMenu_CleanSelf".Translate();
|
||||||
|
|
||||||
|
|
|
@ -46,15 +46,25 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
public static class Utility
|
public static class Utility
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static float GetCumVolume(this Pawn pawn)
|
public static float GetCumVolume(this Pawn pawn)
|
||||||
{
|
{
|
||||||
CompHediffBodyPart part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("penis")).InRandomOrder().FirstOrDefault().TryGetComp<rjw.CompHediffBodyPart>();
|
CompHediffBodyPart part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("penis")).InRandomOrder().FirstOrDefault()?.TryGetComp<CompHediffBodyPart>();
|
||||||
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorf")).InRandomOrder().FirstOrDefault().TryGetComp<rjw.CompHediffBodyPart>();
|
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorf")).InRandomOrder().FirstOrDefault()?.TryGetComp<CompHediffBodyPart>();
|
||||||
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorm")).InRandomOrder().FirstOrDefault().TryGetComp<rjw.CompHediffBodyPart>();
|
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorm")).InRandomOrder().FirstOrDefault()?.TryGetComp<CompHediffBodyPart>();
|
||||||
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("tentacle")).InRandomOrder().FirstOrDefault().TryGetComp<rjw.CompHediffBodyPart>();
|
if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("tentacle")).InRandomOrder().FirstOrDefault()?.TryGetComp<CompHediffBodyPart>();
|
||||||
|
|
||||||
float res = part?.FluidAmmount * part.FluidModifier * pawn.BodySize * Rand.Range(0.8f, 1.2f) * RJWSettings.cum_on_body_amount_adjust * 0.3f ?? 0.0f;
|
float res = 0;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
res = part.FluidAmmount * part.FluidModifier * pawn.BodySize * Rand.Range(0.8f, 1.2f) * RJWSettings.cum_on_body_amount_adjust * 0.3f;
|
||||||
|
}
|
||||||
|
catch (NullReferenceException)
|
||||||
|
{
|
||||||
|
res = 0.0f;
|
||||||
|
}
|
||||||
if (pawn.Has(Quirk.Messy)) res *= Rand.Range(4.0f,8.0f);
|
if (pawn.Has(Quirk.Messy)) res *= Rand.Range(4.0f,8.0f);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
@ -149,7 +159,7 @@ namespace RJW_Menstruation
|
||||||
else if (hediff is Hediff_BasePregnancy)
|
else if (hediff is Hediff_BasePregnancy)
|
||||||
{
|
{
|
||||||
Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff;
|
Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff;
|
||||||
string fetustex = h.babies?.First()?.def.GetModExtension<PawnDNAModExtention>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
string fetustex = h.babies?.FirstOrDefault()?.def.GetModExtension<PawnDNAModExtention>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
||||||
if (h.GestationProgress < 0.2f) icon = comp.wombTex + "_Implanted";
|
if (h.GestationProgress < 0.2f) icon = comp.wombTex + "_Implanted";
|
||||||
else if (h.GestationProgress < 0.3f) icon += "Fetus/Fetus_Early00";
|
else if (h.GestationProgress < 0.3f) icon += "Fetus/Fetus_Early00";
|
||||||
else if (h.GestationProgress < 0.4f) icon += fetustex + "00";
|
else if (h.GestationProgress < 0.4f) icon += fetustex + "00";
|
||||||
|
@ -167,7 +177,7 @@ namespace RJW_Menstruation
|
||||||
{
|
{
|
||||||
string icon = comp.wombTex;
|
string icon = comp.wombTex;
|
||||||
float cumpercent = comp.TotalCumPercent;
|
float cumpercent = comp.TotalCumPercent;
|
||||||
if (cumpercent < 0.001f) icon = "Womb/Empty";
|
if (cumpercent < 0.001f) return ContentFinder<Texture2D>.Get("Womb/Empty", true);
|
||||||
else if (cumpercent < 0.01f) icon += "_Cum_00";
|
else if (cumpercent < 0.01f) icon += "_Cum_00";
|
||||||
else if (cumpercent < 0.05f) icon += "_Cum_01";
|
else if (cumpercent < 0.05f) icon += "_Cum_01";
|
||||||
else if (cumpercent < 0.11f) icon += "_Cum_02";
|
else if (cumpercent < 0.11f) icon += "_Cum_02";
|
||||||
|
@ -230,7 +240,7 @@ namespace RJW_Menstruation
|
||||||
var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("anus"));
|
var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("anus"));
|
||||||
CompProperties_Anus Props = (CompProperties_Anus)hediff.TryGetComp<HediffComp_Anus>().props;
|
CompProperties_Anus Props = (CompProperties_Anus)hediff.TryGetComp<HediffComp_Anus>().props;
|
||||||
string icon;
|
string icon;
|
||||||
if (Props != null) icon = Props.analTex;
|
if (Props != null) icon = Props.analTex ?? "Genitals/Anal";
|
||||||
else icon = "Genitals/Anal";
|
else icon = "Genitals/Anal";
|
||||||
if (hediff.Severity < 0.20f) icon += "00"; //micro
|
if (hediff.Severity < 0.20f) icon += "00"; //micro
|
||||||
else if (hediff.Severity < 0.40f) icon += "01"; //tight
|
else if (hediff.Severity < 0.40f) icon += "01"; //tight
|
||||||
|
@ -278,7 +288,34 @@ namespace RJW_Menstruation
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void DrawEggOverlay(this HediffComp_Menstruation comp, Rect wombRect)
|
||||||
|
{
|
||||||
|
Rect rect = new Rect(wombRect.xMax - wombRect.width/3, wombRect.y, wombRect.width / 3, wombRect.width / 3);
|
||||||
|
GUI.color = Color.white;
|
||||||
|
GUI.DrawTexture(rect, comp.GetEggIcon(), ScaleMode.ScaleToFit);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Texture2D GetEggIcon(this HediffComp_Menstruation comp)
|
||||||
|
{
|
||||||
|
if (comp.parent.pawn.IsPregnant())
|
||||||
|
{
|
||||||
|
if (comp.parent.pawn.GetPregnancyProgress() < 0.2f) return ContentFinder<Texture2D>.Get("Eggs/Egg_Implanted00", true);
|
||||||
|
else return ContentFinder<Texture2D>.Get("Womb/Empty", true);
|
||||||
|
}
|
||||||
|
else if (!comp.IsEggExist) return ContentFinder<Texture2D>.Get("Womb/Empty", true);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int fertstage = comp.IsFertilized;
|
||||||
|
if (fertstage >= 0)
|
||||||
|
{
|
||||||
|
if (fertstage < 1) return ContentFinder<Texture2D>.Get("Eggs/Egg_Fertilized00", true);
|
||||||
|
else if (fertstage < 24) return ContentFinder<Texture2D>.Get("Eggs/Egg_Fertilized01", true);
|
||||||
|
else return ContentFinder<Texture2D>.Get("Eggs/Egg_Fertilized02", true);
|
||||||
|
}
|
||||||
|
else if (comp.IsEggFertilizing) return ContentFinder<Texture2D>.Get("Eggs/Egg_Fertilizing01", true);
|
||||||
|
else return ContentFinder<Texture2D>.Get("Eggs/Egg", true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|