diff --git a/.gitignore b/.gitignore
index b14b0f8..2236aa5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -343,6 +343,3 @@ healthchecksdb
*.psd
*.dds
*.pdn
-
-Directory.Build.props
-Directory.Build.targets
diff --git a/1.3/Defs/TaleDefs/Tales_Cum.xml b/1.3/Defs/TaleDefs/Tales_Cum.xml
index ff70353..105f2b2 100644
--- a/1.3/Defs/TaleDefs/Tales_Cum.xml
+++ b/1.3/Defs/TaleDefs/Tales_Cum.xml
@@ -14,7 +14,7 @@
image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]
- image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]
+ image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]
circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth
circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk
circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy
diff --git a/1.4/Defs/TaleDefs/Tales_Cum.xml b/1.4/Defs/TaleDefs/Tales_Cum.xml
index ff70353..105f2b2 100644
--- a/1.4/Defs/TaleDefs/Tales_Cum.xml
+++ b/1.4/Defs/TaleDefs/Tales_Cum.xml
@@ -14,7 +14,7 @@
image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]
- image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]
+ image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]
circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth
circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk
circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy
diff --git a/1.5/Assemblies/RJW_Menstruation.dll b/1.5/Assemblies/RJW_Menstruation.dll
index aca8e4e..2efb79c 100644
Binary files a/1.5/Assemblies/RJW_Menstruation.dll and b/1.5/Assemblies/RJW_Menstruation.dll differ
diff --git a/1.5/Defs/TaleDefs/Tales_Cum.xml b/1.5/Defs/TaleDefs/Tales_Cum.xml
index ff70353..105f2b2 100644
--- a/1.5/Defs/TaleDefs/Tales_Cum.xml
+++ b/1.5/Defs/TaleDefs/Tales_Cum.xml
@@ -14,7 +14,7 @@
image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]
image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]
- image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]
+ image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [cirsumstance_group]
circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth
circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk
circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy
diff --git a/1.5/Defs/ThingDefs/Apparel_Absorbers.xml b/1.5/Defs/ThingDefs/Apparel_Absorbers.xml
index 541dbed..87fa765 100644
--- a/1.5/Defs/ThingDefs/Apparel_Absorbers.xml
+++ b/1.5/Defs/ThingDefs/Apparel_Absorbers.xml
@@ -73,7 +73,6 @@
true
10
Absorber_Tampon_Dirty
- 100.0
@@ -129,7 +128,6 @@
true
8
Absorber_Tampon_Dirty
- 100.0
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/ApparelLayerDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/RJWMenstruation.xml
similarity index 51%
rename from 1.6/Languages/ChineseSimplified/DefInjected/ApparelLayerDef/RJWMenstruation.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/RJWMenstruation.xml
index bd0c960..a90d863 100644
--- a/1.6/Languages/ChineseSimplified/DefInjected/ApparelLayerDef/RJWMenstruation.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/RJWMenstruation.xml
@@ -1,4 +1,4 @@
-
+
生殖器
\ No newline at end of file
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/Drugs/Pills_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/Drugs/Pills_Menstruation.xml
new file mode 100644
index 0000000..437c98e
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/Drugs/Pills_Menstruation.xml
@@ -0,0 +1,11 @@
+
+
+ 止痛藥
+ 在接下來的24小時內舒緩痛經。
+
+亦作用於其他類型的疼痛。
+ 環孢素
+ 一種免疫抑製劑。
+
+用以清除體內的精子抗體,但會在24小時期間降低身體的免疫力。
+
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
deleted file mode 100644
index 3cf1a52..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 生理週期
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml
deleted file mode 100644
index 6977f06..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- 較短卵細胞壽命
- 未受精卵細胞存活時長僅有原先的3/4
- 雙倍卵細胞壽命
- 未受精卵細胞可存活至原先的2倍之久
- 四倍卵細胞壽命
- 未受精卵細胞可存活至原先的4倍之久
- 永不發情
- 基因攜帶者永遠不會進入發情期。
- 始終發情
- 基因攜帶者的每一個月經週期均具備發情期,無論陰道類型為何。
- 雙倍排卵
- 基因攜帶者的子宮可以在每個排卵週期產生雙倍的卵子。
- 四倍排卵
- 基因攜帶者的子宮可以在每個排卵週期產生四倍的卵子。
- 無經血
- 基因攜帶者的子宮內膜不會脫落出血。
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/GeneDefs/GeneDefs_Menstruation.xml
similarity index 97%
rename from 1.6/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/GeneDefs/GeneDefs_Menstruation.xml
index 6977f06..377a6b5 100644
--- a/1.6/Languages/ChineseTraditional/DefInjected/GeneDef/GeneDefs_Menstruation.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/GeneDefs/GeneDefs_Menstruation.xml
@@ -1,5 +1,6 @@
+ 月經週期
較短卵細胞壽命
未受精卵細胞存活時長僅有原先的3/4
雙倍卵細胞壽命
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml
index bfd31ac..fef8db8 100644
--- a/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml
@@ -19,12 +19,4 @@
弱
中
強
-
- 陰道會於經期結束時出血。
-此時常常感到劇痛。
- 忍受痛經
- 稍感不適
- 隱隱作痛
- 苦不堪言
- 鑽心剜骨
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/HediffDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/RJWMenstruation.xml
similarity index 57%
rename from 1.6/Languages/ChineseSimplified/DefInjected/HediffDef/RJWMenstruation.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/HediffDef/RJWMenstruation.xml
index c1baebe..3cce982 100644
--- a/1.6/Languages/ChineseSimplified/DefInjected/HediffDef/RJWMenstruation.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/HediffDef/RJWMenstruation.xml
@@ -1,10 +1,10 @@
-
+
- 中枢性疼痛
- 经期中
+ 中樞性疼痛
+ 經期中
不快
- 恼人
+ 惱人
疼痛
痛苦
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml b/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml
deleted file mode 100644
index 9a1418b..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 正清洗陰道
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml b/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml
deleted file mode 100644
index abc1278..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 正自行擠奶
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/JobDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/JobDef/RJWMenstruation.xml
new file mode 100644
index 0000000..fc04f3d
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/JobDef/RJWMenstruation.xml
@@ -0,0 +1,7 @@
+
+
+ 清洗陰道
+
+
+
+
\ No newline at end of file
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml b/1.5/Languages/ChineseTraditional/DefInjected/JobDefs/Jobs_MilkSelf.xml
similarity index 51%
rename from 1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/JobDefs/Jobs_MilkSelf.xml
index 7e8cdaf..7d17897 100644
--- a/1.5/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/JobDefs/Jobs_MilkSelf.xml
@@ -1,4 +1,4 @@
- 生殖器
+ 自行擠奶
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/KeyBindings/KeyBindings_Menstruation.xml
similarity index 100%
rename from 1.5/Languages/ChineseTraditional/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/KeyBindings/KeyBindings_Menstruation.xml
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml b/1.5/Languages/ChineseTraditional/DefInjected/RecordDefs/Records_Womb.xml
similarity index 75%
rename from 1.5/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/RecordDefs/Records_Womb.xml
index ba123a0..3393215 100644
--- a/1.5/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml
+++ b/1.5/Languages/ChineseTraditional/DefInjected/RecordDefs/Records_Womb.xml
@@ -1,7 +1,7 @@
- 我子宮中的精液。(以毫升計)
體內射精
- 我體內同精子結合的卵子數。
+ 我子宮中的精液,以毫升計。
受精卵
+ 我體內同精子結合的卵子數。
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/StatDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/StatDef/RJWMenstruation.xml
new file mode 100644
index 0000000..d485637
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/StatDef/RJWMenstruation.xml
@@ -0,0 +1,7 @@
+
+
+ 可吸收量
+ 最大可吸收的液體量
+
+
+
\ No newline at end of file
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml b/1.5/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml
deleted file mode 100644
index bdcec06..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- 此物可吸收液體的最大量
- {0}毫升
- 可吸收量
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/TaleDef/Tales_Cum.xml b/1.5/Languages/ChineseTraditional/DefInjected/TaleDefs/Tales_Cum.xml
similarity index 100%
rename from 1.5/Languages/ChineseTraditional/DefInjected/TaleDef/Tales_Cum.xml
rename to 1.5/Languages/ChineseTraditional/DefInjected/TaleDefs/Tales_Cum.xml
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml
deleted file mode 100644
index 9336332..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- 用於從陰道吸收液體。
- 衛生棉
- 濕的衛生棉
- 已經使用過的衛生棉
-
- 用於從陰道吸收液體。
-配戴過久容易引發陰道感染。
- 衛生棉條
-
- 已經使用過的衛生棉條。
-繼續滯留在內會引發陰道感染。
- 濕的衛生棉條
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml
deleted file mode 100644
index c7db4fd..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 混合物
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml
deleted file mode 100644
index da8e883..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- 免疫抑制劑。
-可用於治療精子抗體,但會降低身體對感染和疾病的抵抗力。有效期24小時。
- 環孢素
-
- 恢復卵巢的活力,令一部分卵子甦生。
-對卵子所剩無幾之人作用微乎其微。
-不能令人從絕經中恢復。
- 卵巢甦生劑
-
- 舒緩痛經。有效期24小時。
-
-對其他來源的疼痛亦生效。
- 止痛藥
-
- 誘發超量排卵:使下一次排卵時額外排出1-4枚卵細胞。
-
-很可能導致提前閉經。
- 超量排卵藥劑
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/RJWMenstruation.xml
new file mode 100644
index 0000000..9404fb7
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/ThingDef/RJWMenstruation.xml
@@ -0,0 +1,31 @@
+
+
+
+
+衛生棉條
+
+從陰道吸收液體的衛生棉條
+
+濕的衛生棉條
+
+使用過的濕衛生棉條
+
+衛生棉
+
+從陰道吸收液體的衛生棉
+
+濕的衛生棉
+
+使用過的濕衛生棉
+
+卵巢再生藥物
+
+使卵巢再生以增加可排卵的卵子
卵子消耗量越大,效果越差
不能緩解更年期症狀
+
+排卵藥
+
+誘導排卵的藥物
可導致更年期提前
+
+混合物
+
+
\ No newline at end of file
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/RJWMenstruation.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/RJWMenstruation.xml
new file mode 100644
index 0000000..e793dd3
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/RJWMenstruation.xml
@@ -0,0 +1,23 @@
+
+
+ 褲濕啦
+ 能不能有什麼東西來吸體液啊?
+ 被{0}中出了
+ 我擔心我可能會懷孕...
+ 被{0}中出了
+ 雖然機率很低,但我還是擔心懷孕...
+ 被{0}中出了
+ 好期待懷孕啊!
+ 被{0}中出了
+ 雖說不太可能懷孕,但是這個幻想真的好有趣!
+ 中出了{0}
+ 超爽的
+ 被{0}中出了
+ 我不想要他的孩子!
+ 被{0}中出了
+ 雖說不太可能懷上,但是這真的很噁!
+ 中出了{0}
+ 我上了那個婊子...哈!
+ 不想要的懷孕
+ 我該怎麼照顧寶寶?怎麼辦怎麼辦怎麼辦...
+
\ No newline at end of file
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml
deleted file mode 100644
index 32296ae..0000000
--- a/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- 被{0}中出了
- 我擔心我可能會懷孕...
- 被{0}中出了
- 好期待懷孕啊!
- 被{0}中出了
- 雖說不太可能懷孕,但是幻想懷孕真的好有趣!
- {0}內射了我
- 我希望這次能懷上,讓我盡到責任。
- 被{0}中出了
- 雖然機率很低,但我還是擔心懷孕...
- 中出了{0}
- 超爽的
- 內射了{0}
- 讓她懷孕正是我的職責所在。
- 卵母細胞再生術
- 我可以繼續繁衍一小段時間了!
- 吃了避孕藥
- 我想要個寶寶!
- 服用避孕藥
- 我的信仰要求我能夠懷孕。
- 被{0}中出了
- 我不想要他的孩子!
- {0}內射了
- 我著了什麼魔,竟然讓他做出了這種事!
- {0}內射了我
- 我知道我有生育的義務,但是難道非他不可嗎?
- 被{0}中出了
- 雖說不太可能懷上,但是這真的很噁!
- 中出了{0}
- 我上了那個婊子...哈!
- 褲濕啦
- 能不能有什麼東西來吸體液啊?
- 吃了避孕藥
- 一切都會過去。會好起來的。
- 不情願的妊娠
- 我該怎麼照顧寶寶?怎麼辦怎麼辦怎麼辦...
- 忐忑不安的妊娠
- 有個寶寶在我肚子裡。但願我能照看好他。
-
diff --git a/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDefs/Thoughts_sex.xml b/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDefs/Thoughts_sex.xml
new file mode 100644
index 0000000..86e27de
--- /dev/null
+++ b/1.5/Languages/ChineseTraditional/DefInjected/ThoughtDefs/Thoughts_sex.xml
@@ -0,0 +1,23 @@
+
+
+ {0}內射了
+ 我著了什麼魔,竟然讓他做出了這種事!
+ 不情願的妊娠
+ 有個寶寶在我肚子裡。但願我能搞定這事。
+ 吃了避孕藥
+ 總算把這事了結了。
+ 吃了避孕藥
+ 我想要小孩!
+
+ 卵母細胞再生術
+ 我可以繼續繁衍一小段時間了!
+
+ 內射了{0}
+ 讓她懷孕正是我的職責所在。
+ {0}內射了我
+ 我希望這次能懷上,讓我盡到責任。
+ {0}內射了我
+ 我知道我有生育的義務,但是難道非他不可嗎?
+ 服用避孕藥
+ 我的信仰要求我能夠懷孕。
+
diff --git a/1.5/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml b/1.5/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
index 99bf5f0..65811b4 100644
--- a/1.5/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
+++ b/1.5/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
@@ -164,6 +164,4 @@
選定擁有發情期的動物在發情期內對類人生物的影響。
已吸收
-
- 子宮處於月經週期之外。經過足夠的時間後,月經週期會恢復。
diff --git a/1.5/Languages/English/Keyed/RJW_Menstruation.xml b/1.5/Languages/English/Keyed/RJW_Menstruation.xml
index 19eac31..08b7327 100644
--- a/1.5/Languages/English/Keyed/RJW_Menstruation.xml
+++ b/1.5/Languages/English/Keyed/RJW_Menstruation.xml
@@ -25,7 +25,6 @@
The ovaries have neared exhaustion and the menstrual cycle has become irregular.
The ovaries have been exhausted and the womb can no longer produce eggs.
The womb is out of breeding season. The cycle will resume once conditions are met.
- The womb is between cycles. The cycle will resume after enough time has passed.
Status
Lactate self
State
diff --git a/1.5/Patches/Hediffs_PrivateParts.xml b/1.5/Patches/Hediffs_PrivateParts.xml
index f1fbfe4..58bd529 100644
--- a/1.5/Patches/Hediffs_PrivateParts.xml
+++ b/1.5/Patches/Hediffs_PrivateParts.xml
@@ -9,7 +9,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="Vagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="Vagina"]
@@ -31,7 +31,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GenericVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="GenericVagina"]
@@ -51,7 +51,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="HydraulicVagina"]
@@ -66,7 +66,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="BionicVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="BionicVagina"]
@@ -81,7 +81,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="ArchotechVagina"]
@@ -103,7 +103,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="Anus"]
+ /Defs/rjw.HediffDef_PartBase[defName="Anus"]
@@ -114,7 +114,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="HydraulicAnus"]
@@ -125,7 +125,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="BionicAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="BionicAnus"]
@@ -136,7 +136,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="ArchotechAnus"]
diff --git a/1.5/Patches/Hediffs_PrivateParts_Animal.xml b/1.5/Patches/Hediffs_PrivateParts_Animal.xml
index 0d3e585..63b12b5 100644
--- a/1.5/Patches/Hediffs_PrivateParts_Animal.xml
+++ b/1.5/Patches/Hediffs_PrivateParts_Animal.xml
@@ -11,7 +11,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="DogVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="DogVagina"]
@@ -33,7 +33,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="CatVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="CatVagina"]
@@ -55,7 +55,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="HorseVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="HorseVagina"]
@@ -78,7 +78,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="DragonVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="DragonVagina"]
@@ -99,7 +99,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="NarrowVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="NarrowVagina"]
@@ -120,7 +120,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="RodentVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="RodentVagina"]
@@ -141,7 +141,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="SlimeVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="SlimeVagina"]
@@ -162,7 +162,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="DemonVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="DemonVagina"]
diff --git a/1.5/Patches/Hediffs_PrivateParts_Breasts.xml b/1.5/Patches/Hediffs_PrivateParts_Breasts.xml
index 8e88099..b3ef231 100644
--- a/1.5/Patches/Hediffs_PrivateParts_Breasts.xml
+++ b/1.5/Patches/Hediffs_PrivateParts_Breasts.xml
@@ -3,7 +3,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="Breasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="Breasts"]
@@ -15,7 +15,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="HydraulicBreasts"]
@@ -27,7 +27,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="BionicBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="BionicBreasts"]
@@ -39,7 +39,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="ArchotechBreasts"]
@@ -51,7 +51,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="SlimeBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="SlimeBreasts"]
@@ -63,7 +63,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="UdderBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="UdderBreasts"]
diff --git a/1.5/Patches/PawnModExtensions_Animals.xml b/1.5/Patches/PawnModExtensions_Animals.xml
index 3dc63cd..19172ac 100644
--- a/1.5/Patches/PawnModExtensions_Animals.xml
+++ b/1.5/Patches/PawnModExtensions_Animals.xml
@@ -148,7 +148,7 @@
/Defs/ThingDef[@Name="ThingBaseFox"]
- Fetus/Canines/Fetus_Canine_V
+ Fetus/Canines/Fetus_CanineV
(255,255,255,255)
0.05
diff --git a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml
index e45f65d..e63d625 100644
--- a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml
+++ b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml
@@ -11,7 +11,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="BovineVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="BovineVagina"]
@@ -52,7 +52,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="CactoidVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="CactoidVagina"]
@@ -73,7 +73,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ElephantVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="ElephantVagina"]
@@ -93,7 +93,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="HyenaVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="HyenaVagina"]
@@ -114,7 +114,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="MammalVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="MammalVagina"]
@@ -134,7 +134,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="MarineVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="MarineVagina"]
@@ -154,7 +154,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="PigVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="PigVagina"]
@@ -174,7 +174,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="PistilVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="PistilVagina"]
@@ -195,7 +195,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GhostVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="GhostVagina"]
diff --git a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml
index 82c40eb..b5f0a5e 100644
--- a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml
+++ b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml
@@ -4,7 +4,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="MammalBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="MammalBreasts"]
@@ -16,7 +16,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GhostBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="CatBreasts"]
@@ -27,7 +27,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="CactoidBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="GhostBreasts"]
@@ -38,7 +38,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GhoulBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="CactoidBreasts"]
@@ -49,7 +49,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="NecroBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="GhoulBreasts"]
@@ -60,7 +60,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="OrcBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="NecroBreasts"]
@@ -71,7 +71,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ScaleBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="OrcBreasts"]
@@ -82,7 +82,18 @@
- /Defs/rjw.HediffDef_SexPart[defName="TreeBreasts"]
+ /Defs/rjw.HediffDef_PartBase[defName="ScaleBreasts"]
+
+
+
+ Breasts/Breast
+ (55,20,0)
+
+
+
+
+
+ /Defs/rjw.HediffDef_PartBase[defName="TreeBreasts"]
diff --git a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml
index eee765b..8f83940 100644
--- a/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml
+++ b/1.5/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml
@@ -9,7 +9,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ElfVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="ElfVagina"]
@@ -30,7 +30,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="ElfAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="ElfAnus"]
@@ -41,7 +41,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="OrcVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="OrcVagina"]
@@ -62,7 +62,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="OrcAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="OrcAnus"]
@@ -75,7 +75,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GhoulVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="GhoulVagina"]
@@ -96,7 +96,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="GhoulAnus"]
+ /Defs/rjw.HediffDef_PartBase[defName="GhoulAnus"]
@@ -107,7 +107,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="NecroVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="NecroVagina"]
@@ -128,7 +128,7 @@
- /Defs/rjw.HediffDef_SexPart[defName="TreeVagina"]
+ /Defs/rjw.HediffDef_PartBase[defName="TreeVagina"]
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs
index 4205e89..766e532 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs
@@ -48,8 +48,6 @@ namespace RJW_Menstruation
public CompProperties_Breast Props;
- HediffComp_SexPart sexPartComp;
-
protected long ageOfLastBirth = 0;
protected float maxBreastIncrement = -1f;
protected float breastSizeIncreased = 0f;
@@ -87,9 +85,7 @@ namespace RJW_Menstruation
float shrinkRate = tickInterval * MaxBreastIncrement / (BabyHalfAge * GenDate.TicksPerYear);
float shrinkAmount = Mathf.Min(shrinkRate, breastSizeIncreased);
breastSizeIncreased -= shrinkAmount;
- sexPartComp.baseSize -= shrinkAmount;
- if (sexPartComp.baseSize < 0.01f) sexPartComp.baseSize = 0.01f;
- sexPartComp.UpdateSeverity();
+ parent.Severity -= shrinkAmount;
}
protected float MaxBreastIncrement
@@ -118,14 +114,14 @@ namespace RJW_Menstruation
{
get
{
- return cachedNipple * sexPartComp.baseSize;
+ return cachedNipple * parent.Severity;
}
}
public float AreolaSize
{
get
{
- return cachedAreola * sexPartComp.baseSize;
+ return cachedAreola * parent.Severity;
}
}
@@ -203,7 +199,7 @@ namespace RJW_Menstruation
{
long youngestAge = -1;
- if (Pawn.relations == null) return youngestAge;
+ if ((Pawn.relations == null)) return youngestAge;
List rjwPregnancies = new List();
Pawn.health.hediffSet.GetHediffs(ref rjwPregnancies);
@@ -221,9 +217,6 @@ namespace RJW_Menstruation
public void Initialize()
{
Props = (CompProperties_Breast)props;
- sexPartComp = parent.TryGetComp();
- if (sexPartComp == null)
- Log.Error($"Could not get breast SexPart comp of {Pawn}");
if (maxBreastIncrement <= 0f)
{
@@ -263,8 +256,7 @@ namespace RJW_Menstruation
debugGrowthStatus = "Full size due to young child";
if (breastSizeIncreased < MaxBreastIncrement)
{
- sexPartComp.baseSize += (MaxBreastIncrement - breastSizeIncreased);
- sexPartComp.UpdateSeverity();
+ parent.Severity += (MaxBreastIncrement - breastSizeIncreased);
breastSizeIncreased = MaxBreastIncrement;
}
}
@@ -287,8 +279,7 @@ namespace RJW_Menstruation
else
debugGrowthStatus = "Pregnant, but not time to grow";
breastSizeIncreased += growAmount;
- sexPartComp.baseSize += growAmount;
- sexPartComp.UpdateSeverity();
+ parent.Severity += growAmount;
}
else debugGrowthStatus = "Pregnant and full size";
}
@@ -386,7 +377,7 @@ namespace RJW_Menstruation
public string DebugInfo()
{
- return "Size: " + sexPartComp.baseSize +
+ return "Size: " + parent.Severity +
"\nIncrease: " + breastSizeIncreased +
"\n" + debugGrowthStatus +
"\nNipple progress: " + nippleProgress +
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs
index 3201091..b9fba68 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs
@@ -66,7 +66,7 @@ namespace RJW_Menstruation
const float minmakefilthvalue = 1.0f;
const int maxImplantDelayHours = 30 * GenDate.HoursPerDay;
const int minImplantAgeHours = 3 * GenDate.HoursPerDay;
- const float fluidLeakThreshold = 3.5f; // ml per filth produced
+ const float fluidLeakThreshold = 3.5f;
const float pulloutSuccessRate = 0.8f;
const float fetishPulloutSuccessModifier = 0.25f;
@@ -307,15 +307,10 @@ namespace RJW_Menstruation
if (Pawn.IsBreeder()) ovulationChance *= 10.0f;
try
{
- 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);
}
- finally
- {
- calculatingOvulationChance = false;
- StatDefOf.Fertility.Worker.ClearCacheForThing(Pawn);
- }
+ finally { calculatingOvulationChance = false; }
}
return ovulationChance;
}
@@ -561,9 +556,9 @@ namespace RJW_Menstruation
{
return Utility.BloodDef(Pawn).graphicData.color;
}
- catch (Exception ex)
+ catch
{
- Log.WarningOnce($"Error when fetching blood color of {Pawn}: {ex}", Pawn.thingIDNumber + 657493519);
+ Log.WarningOnce($"Error when fetching BloodDef of {Pawn}", Pawn.thingIDNumber + 657493519);
return Colors.blood;
}
}
@@ -642,15 +637,7 @@ namespace RJW_Menstruation
Scribe_Values.Look(ref DoCleanWomb, "DoCleanWomb", false);
Scribe_References.Look(ref pregnancy, "pregnancy");
if (Scribe.mode == LoadSaveMode.PostLoadInit)
- {
Initialize();
- // Biotech labor errors if the mother is also the father, so don't let that happen
- if (pregnancy is HediffWithParents vanillaPreg && vanillaPreg.Mother == vanillaPreg.Father && vanillaPreg.Mother != null)
- {
- Log.Warning($"Pregnancy of {Pawn} has same mother and father, setting father to null");
- vanillaPreg.SetParents(vanillaPreg.Mother, null, vanillaPreg.geneSet);
- }
- }
}
@@ -799,7 +786,7 @@ namespace RJW_Menstruation
{
get
{
- if (Pawn.Dead || !Pawn.ShouldCycle()) return null;
+ if (Pawn.Dead) return null;
StringBuilder tip = new StringBuilder();
tip.Append(Translations.Dialog_WombInfo01);
tip.Append(": ");
@@ -821,11 +808,7 @@ namespace RJW_Menstruation
public override string CompDebugString()
{
- if (Pawn.Dead ||
- !Pawn.ShouldCycle() ||
- curStage == Stage.None ||
- curStage == Stage.Infertile ||
- curStage == Stage.Pregnant) return null;
+ if (Pawn.Dead || curStage == Stage.None || curStage == Stage.Infertile || curStage == Stage.Pregnant) return null;
StringBuilder debugString = new StringBuilder();
debugString.Append($"Time to next state: ");
debugString.Append(GenDate.ToStringTicksToPeriod(TicksToNextStage()));
@@ -861,11 +844,7 @@ namespace RJW_Menstruation
///
public void CumIn(Pawn cummer, float volume, float fertility = 1.0f, bool precum = false)
{
- if (volume <= 0)
- {
- if (!precum) Log.Warning($"{cummer} trying to cum inside of {Pawn} with 0 fluid");
- return;
- }
+ if (volume <= 0) return;
if (!precum && fertility > 0 && IsDangerDay && cummer.relations.GetPregnancyApproachForPartner(Pawn) == PregnancyApproach.AvoidPregnancy)
{
float successChance = pulloutSuccessRate;
@@ -925,11 +904,7 @@ namespace RJW_Menstruation
///
public void CumIn(Pawn cummer, float volume, string notcumlabel, float decayresist = 0, ThingDef filthdef = null)
{
- if (volume <= 0)
- {
- Log.Warning($"{cummer} trying to cum {notcumlabel} inside of {Pawn} with 0 fluid");
- return;
- }
+ if (volume <= 0) return;
float tmp = TotalCum + volume;
float cumd = TotalCumPercent;
if (tmp > CumCapacity)
@@ -1454,9 +1429,7 @@ namespace RJW_Menstruation
pregnancy = HediffMaker.MakeHediff(HediffDefOf.PregnantHuman, Pawn);
if (Configurations.EnableBiotechTwins)
pregnancy.TryGetComp().AddNewBaby(Pawn, egg.fertilizer);
- Pawn father = egg.fertilizer;
- if (Pawn == father) father = null;
- ((Hediff_Pregnant)pregnancy).SetParents(Pawn, father, PregnancyUtility.GetInheritedGeneSet(father, Pawn));
+ ((Hediff_Pregnant)pregnancy).SetParents(Pawn, egg.fertilizer, PregnancyUtility.GetInheritedGeneSet(egg.fertilizer, Pawn));
Pawn.health.AddHediff(pregnancy);
pregnant = true;
deadeggs.Add(egg);
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs
index 9a5dd1b..78b3516 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs
@@ -41,21 +41,6 @@ namespace RJW_Menstruation
}
}
- public override string GetCurStageDesc
- {
- get
- {
- switch (CurrentVisibleStage)
- {
- case Stage.Anestrus:
- if (IsBreedingSeason()) return Translations.Stage_Anestrus_Periodic_Desc;
- else goto default;
- default:
- return base.GetCurStageDesc;
- }
- }
- }
-
protected override float RaceCyclesPerYear()
{
// Don't bother trying to work seasonal breeding into the math
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs
index bd00c93..e687cb7 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs
@@ -234,11 +234,9 @@ namespace RJW_Menstruation
{
Pawn baby = comp.PeekBaby();
Pawn thisFather = baby.GetFather() ?? father;
- if (thisFather == geneticMother || thisFather == mother) thisFather = null;
- bool preventOneLetter = preventLetter || !(baby.Name is NameTriple);
baby.relations.ClearAllRelations(); // To keep ApplyBirthOutcome from erroring when it tries to set up relations
- PregnancyUtility.ApplyBirthOutcome_NewTemp(thisOutcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments, preventOneLetter);
+ PregnancyUtility.ApplyBirthOutcome_NewTemp(thisOutcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments, preventLetter);
// No more babies if mom dies halfway through. Unrealistic maybe, but saves a lot of headache in ApplyBirthOutcome
if (mother.Dead) break;
if (xxx.is_human(baby))
@@ -295,11 +293,9 @@ namespace RJW_Menstruation
{
Pawn baby = comp.PeekBaby();
Pawn thisFather = baby.GetFather() ?? father;
- if (thisFather == geneticMother || thisFather == mother) thisFather = null;
- bool preventOneLetter = !(baby.Name is NameTriple);
baby.relations.ClearAllRelations();
- PregnancyUtility.ApplyBirthOutcome_NewTemp(outcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments, preventLetter: preventOneLetter);
+ PregnancyUtility.ApplyBirthOutcome(outcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments);
if (mother.Dead) break;
if (xxx.is_human(baby))
mother.records.Increment(xxx.CountOfBirthHuman);
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
index d7de88e..db4bd06 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
@@ -67,13 +67,18 @@ namespace RJW_Menstruation
{
switch (hediff)
{
- case Hediff_BasePregnancy _:
- case Hediff_Pregnant _:
- case Hediff_Labor _:
- case Hediff_LaborPushing _:
- return hediff.GetMenstruationCompFromPregnancy();
- case ISexPartHediff _:
- return hediff.GetMenstruationCompFromVagina();
+ case Hediff_BasePregnancy rjwPreg:
+ return rjwPreg.GetMenstruationCompFromPregnancy();
+ case Hediff_Pregnant vanillaPreg:
+ return vanillaPreg.GetMenstruationCompFromPregnancy();
+ case Hediff_Labor vanillaLabor:
+ return vanillaLabor.GetMenstruationCompFromPregnancy();
+ case Hediff_LaborPushing vanillaLaborPushing:
+ return vanillaLaborPushing.GetMenstruationCompFromPregnancy();
+ case Hediff_PartBaseNatural rjwNatrual:
+ return rjwNatrual.GetMenstruationCompFromVagina();
+ case Hediff_PartBaseArtifical rjwArtificial:
+ return rjwArtificial.GetMenstruationCompFromVagina();
default:
Log.Warning("Obsolete GetMenstruationComp called with unknown hediff. Ensure your submods are up to date.");
return null;
@@ -82,7 +87,7 @@ namespace RJW_Menstruation
public static HediffComp_Anus GetAnusComp(this Hediff hediff)
{
- if (hediff is ISexPartHediff)
+ if (hediff is Hediff_PartBaseNatural || hediff is Hediff_PartBaseArtifical)
{
return hediff.TryGetComp();
}
@@ -237,7 +242,7 @@ namespace RJW_Menstruation
bool isInduced = comp is HediffComp_InducedOvulator;
if (comp.curStage == HediffComp_Menstruation.Stage.Follicular &&
isInduced &&
- comp.Pawn.jobs?.curDriver is JobDriver_Sex job &&
+ comp.Pawn.jobs.curDriver is JobDriver_Sex job &&
job.Sexprops != null &&
!UsingCondom(comp.Pawn, job.Partner) &&
(job.Sexprops.sexType == xxx.rjwSextype.Vaginal || job.Sexprops.sexType == xxx.rjwSextype.DoublePenetration))
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Biotech_Patch.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Biotech_Patch.cs
index 5ac79a2..f9525df 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Biotech_Patch.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Biotech_Patch.cs
@@ -15,7 +15,7 @@ namespace RJW_Menstruation
public static void Postfix(Hediff_Pregnant __instance)
{
HediffComp_PregeneratedBabies babiesComp = __instance.TryGetComp();
- babiesComp?.Miscarried();
+ if (babiesComp != null) babiesComp.Miscarried();
HediffComp_Menstruation menstruationComp = __instance.GetMenstruationCompFromPregnancy();
if (menstruationComp != null) menstruationComp.Pregnancy = null;
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs
index ef1c8b3..26a66eb 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/Pawn_Patch.cs
@@ -33,12 +33,8 @@ namespace RJW_Menstruation
foreach (LocalTargetInfo t in selftargets)
{
- if (t.Pawn == pawn)
- {
- if (pawn.HasMenstruationComp() && pawn.ShouldCycle())
- opts.AddDistinct(MakeSelfMenu(pawn, t));
- break;
- }
+ if (t.Pawn == pawn && pawn.HasMenstruationComp()) opts.AddDistinct(MakeSelfMenu(pawn, t));
+ break;
}
}
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs
index 58fa95e..e580ccf 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs
@@ -20,45 +20,45 @@ namespace RJW_Menstruation
public static bool Prefix(SexProps props)
{
xxx.rjwSextype sextype = props.sexType;
- Pawn father = props.pawn;
- Pawn mother = props.partner;
+ Pawn pawn = props.pawn; // Penis
+ Pawn partner = props.partner; // Womb
if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return true;
- if (!mother.ShouldCycle()) return true;
+ if (!partner.ShouldCycle()) return true;
if (!InteractionCanCausePregnancy(props)) return false;
- List pawnparts = Genital_Helper.get_PartsHediffList(father, Genital_Helper.get_genitalsBPR(father));
+ List pawnparts = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn));
HediffComp_Menstruation comp;
- if (father.HasImpregnationFetish() || mother.HasImpregnationFetish() || mother.IsInEstrus())
- comp = mother.GetFertileMenstruationComp();
- else comp = mother.GetRandomMenstruationComp();
+ if (pawn.HasImpregnationFetish() || partner.HasImpregnationFetish() || partner.IsInEstrus())
+ comp = partner.GetFertileMenstruationComp();
+ else comp = partner.GetRandomMenstruationComp();
if (comp == null) return true;
- if (Genital_Helper.has_penis_fertile(father, pawnparts) && PregnancyHelper.CanImpregnate(father, mother, sextype))
+ if (Genital_Helper.has_penis_fertile(pawn, pawnparts) && PregnancyHelper.CanImpregnate(pawn, partner, sextype))
{
- if (MenstruationUtility.UsingCondom(father, mother)) return false; // Probably unnecessary
+ if (MenstruationUtility.UsingCondom(pawn, partner)) return false; // Probably unnecessary
- PregnancyHelper.DoImpregnate(father, mother);
+ PregnancyHelper.DoImpregnate(pawn, partner);
return false;
}
- else if (Genital_Helper.has_ovipositorM(father, pawnparts))
+ else if (Genital_Helper.has_ovipositorM(pawn, pawnparts))
{
- comp.CumIn(father, Rand.Range(0.75f, 4.5f) * father.BodySize, father.SterileGenes() ? 0.0f : 1.0f);
+ comp.CumIn(pawn, Rand.Range(0.75f, 4.5f) * pawn.BodySize, pawn.SterileGenes() ? 0.0f : 1.0f);
}
- else comp.CumIn(father, father.GetCumVolume(pawnparts), 0);
+ else comp.CumIn(pawn, pawn.GetCumVolume(pawnparts), 0);
return true;
}
public static void Postfix(SexProps props)
{
- Pawn mother = props.partner;
+ Pawn pawn = props.partner;
- if (props.sexType != xxx.rjwSextype.MechImplant && mother.health.hediffSet.GetFirstHediff() == null) return;
+ if (props.sexType != xxx.rjwSextype.MechImplant && pawn.health.hediffSet.GetFirstHediff() == null) return;
// The existing pregnancies might have been destroyed, so go through see if any new mech pregnancies need to be picked up
- foreach (HediffComp_Menstruation comp in mother.GetMenstruationComps())
+ foreach (HediffComp_Menstruation comp in pawn.GetMenstruationComps())
{
_ = comp.Pregnancy; // get_Pregnancy will do any removals
comp.TakeLoosePregnancy();
@@ -99,26 +99,23 @@ namespace RJW_Menstruation
[HarmonyPatch(typeof(PregnancyHelper), nameof(PregnancyHelper.DoImpregnate))]
public static class DoImpregnate_Patch
{
- public static bool Prefix(Pawn pawn, Pawn partner)
+ public static bool Prefix(Pawn pawn, Pawn partner) // partner has vagina
{
- Pawn father = pawn;
- Pawn mother = partner;
-
- if (!mother.ShouldCycle()) return true;
+ if (!partner.ShouldCycle()) return true;
HediffComp_Menstruation comp;
- if (father.HasImpregnationFetish() || mother.HasImpregnationFetish() || mother.IsInEstrus())
- comp = mother.GetFertileMenstruationComp();
- else comp = mother.GetRandomMenstruationComp();
+ if (pawn.HasImpregnationFetish() || partner.HasImpregnationFetish() || partner.IsInEstrus())
+ comp = partner.GetFertileMenstruationComp();
+ else comp = partner.GetRandomMenstruationComp();
if (comp == null)
{
return true;
}
- else if (AndroidsCompatibility.IsAndroid(father) && !AndroidsCompatibility.AndroidPenisFertility(father))
+ else if (AndroidsCompatibility.IsAndroid(pawn) && !AndroidsCompatibility.AndroidPenisFertility(pawn))
{
- comp.CumIn(father, father.GetCumVolume(), 0);
+ comp.CumIn(pawn, pawn.GetCumVolume(), 0);
return false;
}
- else comp.CumIn(father, father.GetCumVolume(), father.SterileGenes() ? 0.0f : father.health.capacities.GetLevel(xxx.reproduction));
+ else comp.CumIn(pawn, pawn.GetCumVolume(), pawn.SterileGenes() ? 0.0f : pawn.health.capacities.GetLevel(xxx.reproduction));
return false;
}
}
@@ -159,11 +156,9 @@ namespace RJW_Menstruation
{
// The comp still has the pregnancy attached at this point in the process
Hediff vagina = (__instance.GetMenstruationCompFromPregnancy()?.parent) ?? mother.health.hediffSet.hediffs.FirstOrFallback(x => VariousDefOf.AllVaginas.Contains(x.def));
- HediffComp_SexPart vaginaComp = vagina?.TryGetComp();
- if (vaginaComp == null) return;
- float morph = Mathf.Max(baby.BodySize - Mathf.Pow(vaginaComp.Size, 2), 0f);
- vaginaComp.baseSize += morph * Configurations.VaginaMorphPower;
- vaginaComp.UpdateSeverity();
+ if (vagina == null) return;
+ float morph = Mathf.Max(baby.BodySize - Mathf.Pow(vagina.Severity * mother.BodySize, 2), 0f);
+ vagina.Severity += morph * Configurations.VaginaMorphPower;
}
}
}
@@ -359,42 +354,39 @@ namespace RJW_Menstruation
public static void Postfix(JobDriver_Sex __instance, Pawn pawn, Thing target)
{
- Pawn father = pawn;
- if (!father.IsHashIntervalTick(__instance.ticks_between_thrusts)) return;
+ if (!pawn.IsHashIntervalTick(__instance.ticks_between_thrusts)) return;
xxx.rjwSextype sextype = __instance.Sexprops.sexType;
- if (!(target is Pawn mother)) return;
+ if (!(target is Pawn partner)) return;
if (sextype != xxx.rjwSextype.Vaginal && sextype != xxx.rjwSextype.DoublePenetration) return;
- if (MenstruationUtility.UsingCondom(father, mother)) return;
- if (AndroidsCompatibility.IsAndroid(father)) return;
+ if (MenstruationUtility.UsingCondom(pawn, partner)) return;
+ if (AndroidsCompatibility.IsAndroid(pawn)) return;
if (!Impregnate_Patch.InteractionCanCausePregnancy(__instance.Sexprops)) return;
- if (!mother.ShouldCycle()) return;
+ if (!partner.ShouldCycle()) return;
- HediffComp_SexPart penisComp = Genital_Helper.get_PartsHediffList(father, Genital_Helper.get_genitalsBPR(father)).
- Select(hed => hed.TryGetComp()).
- Where(p => p?.Def.genitalFamily == GenitalFamily.Penis).
- RandomElementWithFallback();
+ // Archotech penises have more control. Or something.
+ CompHediffBodyPart penisComp = pawn.GetGenitalsList()?.Find(genital => (genital as Hediff_PartBaseNatural)?.def.defName.ToLower().Contains("penis") ?? false)?.TryGetComp();
if (penisComp == null || Rand.ChanceSeeded(1.0f - fertilePrecummersPercentage, Gen.HashOffset(penisComp.parent.loadID))) return;
- HediffComp_Menstruation vaginaComp = mother.GetRandomMenstruationComp();
+ HediffComp_Menstruation vaginaComp = partner.GetRandomMenstruationComp();
if (vaginaComp == null) return;
- float precumAmount = father.GetCumVolume(penisComp) * precumRatio * __instance.ticks_between_thrusts / expectedDurationTicks;
- vaginaComp.CumIn(father, precumAmount, father.SterileGenes() ? 0.0f : precumFertility * father.health.capacities.GetLevel(xxx.reproduction), true);
+ float precumAmount = pawn.GetCumVolume(penisComp) * precumRatio * __instance.ticks_between_thrusts / expectedDurationTicks;
+ vaginaComp.CumIn(pawn, precumAmount, pawn.SterileGenes() ? 0.0f : precumFertility * pawn.health.capacities.GetLevel(xxx.reproduction), true);
}
}
- //[HarmonyPatch(typeof(HediffComp_SexPart), "get_Size")]
- //public static class SexPart_Size_Patch
- //{
- // public static void Postfix(ref float __result, HediffComp_SexPart __instance)
- // {
- // HediffComp_Breast comp = __instance.parent.GetBreastComp();
- // if (comp != null)
- // {
- // __result += comp.BreastSizeIncreased;
- // }
+ [HarmonyPatch(typeof(CompHediffBodyPart), nameof(CompHediffBodyPart.updatesize))]
+ public static class Updatesize_Patch
+ {
+ public static void Postfix(CompHediffBodyPart __instance)
+ {
+ HediffComp_Breast comp = __instance.parent.GetBreastComp();
+ if (comp != null)
+ {
+ __instance.parent.Severity += comp.BreastSizeIncreased;
+ }
- // }
- //}
+ }
+ }
[HarmonyPatch(typeof(PawnCapacityWorker_Fertility), "CalculateAgeImpact")]
public static class PawnCapacityWorker_Fertility_Age_Patch
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs
index 13b8b48..893a9cc 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/PregnancyCommon.cs
@@ -170,10 +170,7 @@ namespace RJW_Menstruation
// Normally not a problem, but with the hybrid system, two humanlikes might produce an animal
// So override it and force the child to be human
if (noAnimalsFromHumanlikes && mother.genes != null && father?.genes != null && !spawn_kind_def.race.race.Humanlike)
- {
- Log.Warning($"{mother}: cannot produce an animal from two humanlikes with Biotech pregnancy, setting child to humanlike");
spawn_kind_def = Rand.Chance(RJWPregnancySettings.humanlike_DNA_from_mother) ? motherKindDef : fatherKindDef;
- }
return spawn_kind_def;
@@ -244,16 +241,18 @@ namespace RJW_Menstruation
private static void CopyBodyPartProperties(Hediff part, Hediff originalPart)
{
- HediffComp_SexPart comp = part.TryGetComp();
- HediffComp_SexPart originalComp = originalPart.TryGetComp();
+ CompHediffBodyPart comp = part.TryGetComp();
+ CompHediffBodyPart originalComp = originalPart.TryGetComp();
if (comp != null && originalComp != null)
{
- comp.baseSize = originalComp.baseSize;
- comp.partFluidMultiplier = originalComp.partFluidMultiplier;
- comp.Fluid = originalComp.Fluid;
- comp.discovered = originalComp.discovered;
- comp.UpdateSeverity();
+ // the string properties should be the same between both pawns anyways, besides the name of the owner
+ part.Severity = originalPart.Severity;
+ comp.SizeBase = originalComp.SizeBase;
+ comp.SizeOwner = originalComp.SizeOwner;
+ comp.EffSize = originalComp.EffSize;
+ comp.FluidAmmount = originalComp.FluidAmmount;
+ comp.FluidModifier = originalComp.FluidModifier;
}
HediffComp_Menstruation originalMenstruationComp = originalPart.GetMenstruationCompFromVagina();
@@ -289,6 +288,7 @@ namespace RJW_Menstruation
// A bit wasteful since Hediff_BasePregnancy.PostBirth already redid the genitals
CopyBodyPartRecord(baby, original, Genital_Helper.get_genitalsBPR(baby), Genital_Helper.get_genitalsBPR(original));
CopyBodyPartRecord(baby, original, Genital_Helper.get_breastsBPR(baby), Genital_Helper.get_breastsBPR(original));
+ CopyBodyPartRecord(baby, original, Genital_Helper.get_uddersBPR(baby), Genital_Helper.get_uddersBPR(original));
CopyBodyPartRecord(baby, original, Genital_Helper.get_anusBPR(baby), Genital_Helper.get_anusBPR(original));
}
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj b/1.5/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj
index 2888fcc..eaddf37 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj
@@ -110,6 +110,10 @@
..\..\..\..\..\..\..\..\workshop\content\294100\2830943477\1.5\Assemblies\AnimalGenetics.dll
False
+
+ ..\..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
+ False
+
..\..\..\..\..\rjw\1.5\Assemblies\RJW.dll
False
@@ -174,9 +178,6 @@
-
- 1.5.4409
-
2.3.2
runtime
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Recipe_Surgery.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Recipe_Surgery.cs
index 4b878ce..6473ac4 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Recipe_Surgery.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Recipe_Surgery.cs
@@ -10,7 +10,7 @@ namespace RJW_Menstruation
{
public override IEnumerable GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
{
- BodyPartRecord part = Genital_Helper.get_breastsBPR(pawn);
+ BodyPartRecord part = Genital_Helper.get_breastsBPR(pawn) ?? Genital_Helper.get_uddersBPR(pawn);
if (part != null)
{
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs
index eb53a0e..d266480 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Things.cs
@@ -192,7 +192,6 @@ namespace RJW_Menstruation
public bool effectsAfterDirty = false;
public ThingDef dirtyDef = null;
public int minHourstoDirtyEffect = 0;
- public float dirtyEffectMTBHrs = 100.0f;
}
public class Absorber : Apparel
@@ -206,7 +205,6 @@ namespace RJW_Menstruation
public virtual bool EffectAfterDirty => def.GetModExtension().effectsAfterDirty;
public virtual ThingDef DirtyDef => def.GetModExtension().dirtyDef;
public virtual int MinHrstoDirtyEffect => def.GetModExtension().minHourstoDirtyEffect;
- public virtual float DirtyEffectMTBHrs => def.GetModExtension().dirtyEffectMTBHrs;
public Color fluidColor = Color.white;
@@ -268,7 +266,7 @@ namespace RJW_Menstruation
public override void DirtyEffect(int tickInterval)
{
- if (wearTicks > MinHrstoDirtyEffect * GenDate.TicksPerHour && Rand.MTBEventOccurs(DirtyEffectMTBHrs, GenDate.TicksPerHour, tickInterval) && !(Wearer.apparel?.IsLocked(this) ?? false))
+ if (wearTicks > MinHrstoDirtyEffect * GenDate.TicksPerHour && Rand.MTBEventOccurs(100.0f, GenDate.TicksPerHour, tickInterval) && !(Wearer.apparel?.IsLocked(this) ?? false))
{
Wearer.health.AddHediff(HediffDefOf.WoundInfection, Genital_Helper.get_genitalsBPR(Wearer));
}
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Translations.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Translations.cs
index 340a5dc..6c511cc 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Translations.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Translations.cs
@@ -28,7 +28,6 @@ namespace RJW_Menstruation
public static readonly string Stage_Menopause_Desc = "Stage_Menopause_Desc".Translate();
public static readonly string Stage_Climacteric_Desc = "Stage_Climacteric_Desc".Translate();
public static readonly string Stage_Anestrus_Desc = "Stage_Anestrus_Desc".Translate();
- public static readonly string Stage_Anestrus_Periodic_Desc = "Stage_Anestrus_Periodic_Desc".Translate();
public static readonly string Button_HealthTab = "Button_HealthTab".Translate();
public static readonly string Button_MilkTooltip = "Button_MilkTooltip".Translate();
public static readonly string Dialog_DoCleanWomb_Tooltip = "Dialog_DoCleanWomb_Tooltip".Translate();
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/Utility.cs
index f172e7b..3202a92 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/Utility.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/Utility.cs
@@ -57,16 +57,6 @@ namespace RJW_Menstruation
pawn.kindDef;
}
- public static HediffComp_SexPart GetPenisSexPart(this Pawn pawn, List hediffs)
- {
- List parts = hediffs.Select(hed => hed.TryGetComp()).Where(p => p != null).ToList();
-
- return
- parts.Where(p => p.Def.genitalFamily == GenitalFamily.Penis).RandomElementWithFallback() ??
- parts.Where(p => p.Def.genitalFamily == GenitalFamily.FemaleOvipositor).RandomElementWithFallback() ??
- parts.Where(p => p.Def.genitalFamily == GenitalFamily.MaleOvipositor).RandomElementWithFallback();
- }
-
public static float GetCumVolume(this Pawn pawn)
{
List hediffs = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn));
@@ -76,16 +66,26 @@ namespace RJW_Menstruation
public static float GetCumVolume(this Pawn pawn, List hediffs)
{
- if (hediffs.NullOrEmpty()) return 0.0f;
- return pawn.GetCumVolume(pawn.GetPenisSexPart(hediffs));
+ CompHediffBodyPart part = (((hediffs?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("penis")).InRandomOrder().FirstOrDefault()?.TryGetComp()) ??
+ (hediffs?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorf")).InRandomOrder().FirstOrDefault()?.TryGetComp())) ??
+ (hediffs?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorm")).InRandomOrder().FirstOrDefault()?.TryGetComp())) ??
+ (hediffs?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("tentacle")).InRandomOrder().FirstOrDefault()?.TryGetComp());
+ return pawn.GetCumVolume(part);
}
- public static float GetCumVolume(this Pawn pawn, HediffComp_SexPart part)
+ public static float GetCumVolume(this Pawn pawn, CompHediffBodyPart part)
{
- if (part == null) return 0.0f;
+ float res;
- float res = VariationRange(part.FluidAmount, 0.2f);
+ try
+ {
+ res = VariationRange(part.FluidAmmount * part.FluidModifier * pawn.BodySize / pawn.RaceProps.baseBodySize, 0.2f);
+ }
+ catch (NullReferenceException)
+ {
+ res = 0.0f;
+ }
if (pawn.IsMessy()) res *= Rand.Range(4.0f, 8.0f);
return res;
@@ -100,7 +100,7 @@ namespace RJW_Menstruation
public static HediffComp_Breast GetBreastComp(this Hediff hediff)
{
- if (hediff is Hediff_NaturalSexPart)
+ if (hediff is Hediff_PartBaseNatural)
{
return hediff.TryGetComp();
}
@@ -120,7 +120,7 @@ namespace RJW_Menstruation
public static bool HasMenstruationComp(this Hediff hediff)
{
- if ((hediff is ISexPartHediff) && hediff.TryGetComp() != null)
+ if ((hediff is Hediff_PartBaseNatural || hediff is Hediff_PartBaseArtifical) && hediff.TryGetComp() != null)
return true;
else return false;
}
@@ -461,18 +461,18 @@ namespace RJW_Menstruation
public static ThingDef BloodDef(Pawn pawn)
{
if (pawn == null) return ThingDefOf.Filth_Blood;
- if (Configurations.VEFActivated)
- {
- ThingDef VEBloodDef = VECompatibility.VEGeneBloodDef(pawn);
- if (VEBloodDef != null) return VEBloodDef;
- }
+ ThingDef bloodDef = null;
+ if (Configurations.VEFActivated) bloodDef = VECompatibility.VEGeneBloodDef(pawn);
+ if (bloodDef != null) return bloodDef;
if (pawn.Dead && pawn.IsShambler) return MutantDefOf.Shambler.bloodDef;
if (pawn.IsMutant)
{
- ThingDef MutantBloodDef = pawn.mutant.Def.bloodDef;
- if (MutantBloodDef != null) return MutantBloodDef;
+ ThingDef mutantBloodDef = pawn.mutant.Def.bloodDef;
+ if (mutantBloodDef != null) return mutantBloodDef;
}
- return pawn.RaceProps?.BloodDef ?? ThingDefOf.Filth_Blood;
+ bloodDef = pawn.RaceProps?.BloodDef;
+ if (bloodDef != null) return bloodDef;
+ return ThingDefOf.Filth_Blood;
}
}
}
diff --git a/1.5/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs b/1.5/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs
index 2852366..997db3c 100644
--- a/1.5/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs
+++ b/1.5/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs
@@ -60,7 +60,7 @@ namespace RJW_Menstruation
get
{
if (allraces != null) return allraces;
- allraces = DefDatabase.AllDefsListForReading.Where(thingdef => (thingdef.race?.IsFlesh ?? false) && !thingdef.IsCorpse).ToList();
+ allraces = DefDatabase.AllDefsListForReading.Where(thingdef => thingdef.race?.IsFlesh ?? false).ToList();
return allraces;
}
@@ -77,7 +77,18 @@ namespace RJW_Menstruation
}
private static HashSet GetCompHashSet(Type type)
{
- return DefDatabase.AllDefsListForReading.Where(hediffdef => hediffdef.comps?.Any(comp => type.IsAssignableFrom(comp.compClass)) ?? false).ToHashSet();
+ HashSet set = new HashSet();
+ foreach (HediffDef hediffDef in DefDatabase.AllDefsListForReading)
+ {
+ if (hediffDef.comps.NullOrEmpty()) continue;
+ foreach (HediffCompProperties comp in hediffDef.comps)
+ if (comp.compClass == type || (comp.compClass?.IsSubclassOf(type) ?? false))
+ {
+ set.Add(hediffDef);
+ break;
+ }
+ }
+ return set;
}
public static HashSet AllVaginas
{
diff --git a/1.6/Animal Genetics/Assemblies/Animal Genetics.dll b/1.6/Animal Genetics/Assemblies/Animal Genetics.dll
deleted file mode 100644
index e28598f..0000000
Binary files a/1.6/Animal Genetics/Assemblies/Animal Genetics.dll and /dev/null differ
diff --git a/1.6/Animal Genetics/Source/Animal Genetics/AGCompatibility.cs b/1.6/Animal Genetics/Source/Animal Genetics/AGCompatibility.cs
deleted file mode 100644
index c1841db..0000000
--- a/1.6/Animal Genetics/Source/Animal Genetics/AGCompatibility.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-using AnimalGenetics;
-using HarmonyLib;
-using RimWorld;
-using RJW_Menstruation;
-using System.Collections.Generic;
-using Verse;
-
-namespace RJW_Menstruation_Animal_Genetics
-{
- [HarmonyPatch(typeof(AnimalGeneticsCompatibility), nameof(AnimalGeneticsCompatibility.PreConception))]
- public static class PreConception_Patch
- {
- static void Postfix(Pawn mother, Pawn father)
- {
- GeneticInformation motherGeneticInformation = mother?.AnimalGenetics();
- GeneticInformation fatherGeneticInformation = father?.AnimalGenetics();
-
- ParentReferences.Push(new ParentReferences.Record { Mother = motherGeneticInformation, Father = fatherGeneticInformation });
- }
- }
-
- [HarmonyPatch(typeof(AnimalGeneticsCompatibility), nameof(AnimalGeneticsCompatibility.PostConception))]
- public static class PostConception_Patch
- {
- static void Postfix()
- {
- ParentReferences.Pop();
- }
- }
-
- [HarmonyPatch(typeof(AnimalGeneticsCompatibility), nameof(AnimalGeneticsCompatibility.CopyGenes))]
- public static class CopyGenes_Patch
- {
- static void Postfix(Pawn baby, Pawn original)
- {
- Dictionary babyRecords = baby.AnimalGenetics()?.GeneRecords;
- Dictionary originalRecords = original.AnimalGenetics()?.GeneRecords;
-
- if (babyRecords == null || originalRecords == null) return;
-
- foreach (KeyValuePair record in originalRecords)
- {
- GeneRecord originalRecord = record.Value;
- if (!babyRecords.TryGetValue(record.Key, out GeneRecord babyRecord)) continue; // Shouldn't fail, but best to be safe
-
- babyRecord.Parent = originalRecord.Parent;
- babyRecord.Value = originalRecord.Value;
- }
- }
- }
-}
diff --git a/1.6/Animal Genetics/Source/Animal Genetics/Animal Genetics.csproj b/1.6/Animal Genetics/Source/Animal Genetics/Animal Genetics.csproj
deleted file mode 100644
index f4e6293..0000000
--- a/1.6/Animal Genetics/Source/Animal Genetics/Animal Genetics.csproj
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {07A63534-EF4E-489D-8EA9-84B24E1BA944}
- Library
- Properties
- Animal_Genetics
- Animal Genetics
- v4.8.1
- 512
- true
-
-
- true
- full
- false
- ..\..\assemblies\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- ..\..\Assemblies\
- TRACE
- prompt
- 4
-
-
-
- ..\..\..\source\RJW_Menstruation\packages\Lib.Harmony.2.3.6\lib\net48\0Harmony.dll
- False
-
-
- ..\..\..\..\..\..\..\..\workshop\content\294100\2830943477\1.6\Assemblies\AnimalGenetics.dll
- False
-
-
- ..\..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {eed2f3b9-8c20-4194-919e-8d151b29f70b}
- RJW_Menstruation
- False
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Animal Genetics/Source/Animal Genetics/Harmony.cs b/1.6/Animal Genetics/Source/Animal Genetics/Harmony.cs
deleted file mode 100644
index e91e655..0000000
--- a/1.6/Animal Genetics/Source/Animal Genetics/Harmony.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using HarmonyLib;
-using System.Reflection;
-using Verse;
-
-namespace RJW_Menstruation_Animal_Genetics
-{
- [StaticConstructorOnStartup]
- internal static class First
- {
- static First()
- {
- Harmony har = new Harmony("RJW_Menstruation.AG");
- har.PatchAll(Assembly.GetExecutingAssembly());
- }
- }
-}
diff --git a/1.6/Animal Genetics/Source/Animal Genetics/packages.config b/1.6/Animal Genetics/Source/Animal Genetics/packages.config
deleted file mode 100644
index dd3bf9a..0000000
--- a/1.6/Animal Genetics/Source/Animal Genetics/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Assemblies/RJW_Menstruation.dll b/1.6/Assemblies/RJW_Menstruation.dll
deleted file mode 100644
index 86b2376..0000000
Binary files a/1.6/Assemblies/RJW_Menstruation.dll and /dev/null differ
diff --git a/1.6/Assemblies/RJW_Menstruation.dll.config b/1.6/Assemblies/RJW_Menstruation.dll.config
deleted file mode 100644
index 4bfa005..0000000
--- a/1.6/Assemblies/RJW_Menstruation.dll.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/1.6/Defs/Drugs/Pills_Menstruation.xml b/1.6/Defs/Drugs/Pills_Menstruation.xml
deleted file mode 100644
index 9f65c17..0000000
--- a/1.6/Defs/Drugs/Pills_Menstruation.xml
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
-
- OvaryRegenerationPill
- Ovary regeneration pill
- Recovers the ovaries' health, restoring some quantity of eggs.
Less effective on ovaries with few eggs remaining.
Cannot recover menopause.
-
- Things/Item/ORPill
- Graphic_StackCount
-
- false
-
- 2400
- 160
- 0.05
-
- Industrial
-
- Medical
-
-
- 0.3
-
-
-
-
- DrugProduction
-
- DrugLab
-
-
-
- 10
- 4
- 8
-
-
-
- 0
- 1000
-
- 0.08
- 0.14
-
-
-
-
-
-
- SuperovulationInducingAgent
- Superovulation inducing agent
- Induce superovulation, causing the next ovulation to produce 1-4 extra eggs.
May hasten the onset of menopause.
-
- Things/Item/SIA
- Graphic_StackCount
-
- false
-
- 2400
- 140
- 0.05
-
- Industrial
-
- Medical
-
-
-
-
-
-
- DrugProduction
-
- DrugLab
-
-
-
- 12
- 6
-
-
-
- 0
- 1000
-
- 0.08
- 0.14
-
-
-
-
-
-
- PainReliever
- Pain reliever
- Relieves menstrual pain for 24 hours.
Also effective on other sources of pain.
-
- Things/Item/PainReliever
- Graphic_StackCount
-
- false
-
- 1000
- 12
- 0.01
-
- Industrial
-
- Medical
-
-
- Hediff_PainReliever
- 1.0
-
-
-
-
- DrugProduction
-
- DrugLab
-
-
-
- 1
-
-
-
- 0
- 1000
-
- 0.08
- 0.14
-
-
-
-
-
-
- Cyclosporine
- cyclosporine
- An immunosuppressant.
Can cure antisperm antibody, but reduces the body's ability to fight off infection and disease for 24 hours.
-
- Things/Item/Cyclosporine
- Graphic_StackCount
-
- false
-
- 1000
- 12
- 0.01
-
- Industrial
-
- Medical
-
-
- Hediff_Cyclosporine
- 1.0
-
-
- Hediff_ASA
- -0.20
-
-
-
-
- DrugProduction
-
- DrugLab
-
-
-
- 1
-
-
-
- 0
- 1000
-
- 0.08
- 0.14
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/GeneDefs/GeneDefs_Menstruation.xml b/1.6/Defs/GeneDefs/GeneDefs_Menstruation.xml
deleted file mode 100644
index 0b788e7..0000000
--- a/1.6/Defs/GeneDefs/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
- Menstruation
- menstruation
- 402
-
-
-
- Menstruation
- UI/Genes/Placeholder
-
- Menstruation_EggLifetime
-
-
-
-
- Menstruation_ShortEggLifetime
- short egg lifetime
- Unfertilized eggs with this gene last three-quarters as long.
- UI/Genes/ShortEggLifetime
- 1
- 10
-
-
- 0.75
-
-
-
-
-
- Menstruation_DoubleEggLifetime
- double egg lifetime
- Unfertilized eggs with this gene last twice as long.
- UI/Genes/DoubleEggLifetime
- -1
- 12
-
-
- 2.0
-
-
-
-
-
- Menstruation_QuadEggLifetime
- quadrule egg lifetime
- Eggs with this gene last four times as long.
- UI/Genes/QuadEggLifetime
- -2
- 1
- 16
-
-
- 4.0
-
-
-
-
-
- Menstruation
- UI/Genes/Placeholder
-
- Menstruation_Estrus
-
-
-
-
- Menstruation_NeverEstrus
- never estrus
- Carriers of this gene will never go into estrus.
- UI/Genes/NeverEstrus
- 1
- 20
-
-
- true
-
-
-
-
-
- Menstruation_FullEstrus
- full estrus
- Carriers of this gene will enter full estrus every menstrual cycle, regardless of vagina type.
- UI/Genes/FullEstrus
- -1
- 1
- 25
-
-
- true
-
-
-
-
-
- Menstruation
- UI/Genes/Placeholder
-
- Menstruation_Ovulation
-
-
-
-
- Menstruation_DoubleOvulation
- double ovulation
- Carriers of this gene will ovulate twice as many eggs.
- UI/Genes/DoubleOvulation
- -1
- 30
-
-
- 2
-
-
-
-
-
- Menstruation_QuadOvulation
- quadruple ovulation
- Carriers of this gene will ovulate four times as many eggs.
- UI/Genes/QuadOvulation
- -1
- 35
-
-
- 4
-
-
-
-
-
- Menstruation_NoBleeding
- no bleeding
- Menstruation
- Carriers of this gene will not bleed at the end of their cycle.
- UI/Genes/NoBleeding
- -1
- 40
-
-
- true
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/HediffDef/Hediffs_Cum.xml b/1.6/Defs/HediffDef/Hediffs_Cum.xml
deleted file mode 100644
index 8ad5b54..0000000
--- a/1.6/Defs/HediffDef/Hediffs_Cum.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
- HediffWithComps
- Hediff_ASA
- Antisperm antibody
- antisperm antibody
- Antisperm antibody.
Increases death rate of sperm.
- {0} has an antisperm antibody
- (0.8,0.1,0.1)
- false
- false
- false
- true
- 1
- 0.1
-
- true
-
-
-
- false
-
-
- 0.40
- true
-
-
-
-
-
-
-
- HediffWithComps
- Hediff_ForceFertile
- Fertile
- fertile
- fertile
- {0} is fertile
- (0.3,0.3,0.8)
- false
- false
- false
- true
- 3
- 0.1
-
- true
-
-
-
- false
-
-
- RJW_Fertility
- 0.05
-
-
-
-
- 0.20
- false
-
-
- RJW_Fertility
- 0.25
-
-
-
-
- 0.40
- true
-
-
- RJW_Fertility
- 0.50
-
-
-
-
- 0.60
- true
-
-
- RJW_Fertility
- 0.75
-
-
-
-
- 0.80
- true
-
-
- RJW_Fertility
- 1.00
-
-
-
-
-
-
- -1.0
- true
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/HediffDef/Hediffs_Menstruation.xml b/1.6/Defs/HediffDef/Hediffs_Menstruation.xml
deleted file mode 100644
index 4d20585..0000000
--- a/1.6/Defs/HediffDef/Hediffs_Menstruation.xml
+++ /dev/null
@@ -1,218 +0,0 @@
-
-
-
- HediffWithComps
- Hediff_MenstrualCramp
- In period
- in period
- Bleeding from the vagina at the end of the menstrual cycle.
Often painful.
- (0.70,0.00,0.00)
- true
- false
- false
- false
- 1
- 0.1
-
- true
-
- Genitals
-
-
- unpleasant
-
- 0.50
- 0.95
-
- 0.005
-
-
- 0.2
- annoying
-
- 0.40
- 0.95
-
- 0.01
-
-
- 0.4
- aching
-
- 0.20
- 0.95
-
- 0.10
-
-
- 0.6
- painful
-
- 0.0
- 0.95
-
- 0.20
-
-
-
-
- -0.1
-
-
-
-
-
- RJW_Menstruation.Hediff_Estrus
- Hediff_Estrus
- Estrus
- estrus
- 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.
Increased chance of vaginal sex occurring and potentially lower standards in mate selection.
- (1.00,0.60,0.75)
- false
- false
- false
- false
- 10000
- 1.0
-
- true
-
-
-
-
- 5.0
- 1.5
-
-
-
-
-
- 0.25
- 6
-
-
-
-
-
- RJW_Menstruation.Hediff_Estrus
- Hediff_Estrus_Concealed
- Estrus (concealed)
- estrus
- A condition caused by a womb its most fertile phase of the menstrual cycle. Sexual arousal and desire increase slightly.
Slightly increased chance of vaginal sex.
- (1.00,0.60,0.75)
- false
- false
- false
- false
- 10000
- 1.0
-
- true
-
-
-
- false
-
- 1.10
- 1.05
-
-
-
-
-
-
- HediffWithComps
- Hediff_AffectedByPheromones
- Affected by pheromones
- A condition caused by being around someone in estrus. Sex drive and satisfaction is increased by the scent of heat.
- (1.00,0.60,0.75)
- false
- false
- false
- false
- 1.0
-
- true
-
-
-
- weak
-
- 1.1
-
-
-
- 0.4
- moderate
-
- 1.4
- 1.1
-
-
-
- 0.8
- strong
-
- 2.0
- 1.2
-
-
-
-
-
- -1.0
-
-
-
-
-
-
- HediffWithComps
- Hediff_PainReliever
- Pain reliever
- A mild reprieve from menstrual (and other) sources of pain.
- (0.75,0.75,1.0)
- false
- false
- false
- false
- 5
- 1.0
-
-
- -0.1
-
-
-
-
- -1.0
-
-
-
-
-
- HediffWithComps
- Hediff_Cyclosporine
- Cyclosporine
- Under the effect of an immunosuppressant, hampering the body's ability to fight off infection and disease.
- (0.75,0.75,1.0)
- false
- false
- false
- false
- 10
- 1.0
-
-
-
- -0.25
-
-
-
-
-
- -1.0
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/JobDefs/Jobs_CleanSelf.xml b/1.6/Defs/JobDefs/Jobs_CleanSelf.xml
deleted file mode 100644
index fbfaad1..0000000
--- a/1.6/Defs/JobDefs/Jobs_CleanSelf.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- VaginaWashing
- RJW_Menstruation.JobDriver_VaginaWashing
- washing vagina
- true
-
-
\ No newline at end of file
diff --git a/1.6/Defs/JobDefs/Jobs_MilkSelf.xml b/1.6/Defs/JobDefs/Jobs_MilkSelf.xml
deleted file mode 100644
index 79df022..0000000
--- a/1.6/Defs/JobDefs/Jobs_MilkSelf.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- LactateSelf
- RJW_Menstruation.JobDriver_MilkSelf
- lactating self
- true
-
-
diff --git a/1.6/Defs/KeyBindings/KeyBindings_Menstruation.xml b/1.6/Defs/KeyBindings/KeyBindings_Menstruation.xml
deleted file mode 100644
index 6044f12..0000000
--- a/1.6/Defs/KeyBindings/KeyBindings_Menstruation.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- OpenStatusWindow
- Menstruation: open status window
- Q
-
-
diff --git a/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml b/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml
deleted file mode 100644
index 1ef4a86..0000000
--- a/1.6/Defs/RJWTab/PawnColumnDefs_Menstruation.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
- RJWMenstruation_Womb
- Womb/Womb
- Open womb status. Click the header to sort by womb presence and cycle stage.
- RJW_Menstruation.MainTab.PawnColumnWorker_WombStatus
- true
- 34
-
-
diff --git a/1.6/Defs/Recipe_Surgery/Recipes_Surgery_Breast.xml b/1.6/Defs/Recipe_Surgery/Recipes_Surgery_Breast.xml
deleted file mode 100644
index e19496d..0000000
--- a/1.6/Defs/Recipe_Surgery/Recipes_Surgery_Breast.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
- Surgery
- Recipe_Surgery
- MedicalOperationSpeed
- Medicine
- 0.2
- 400
- false
-
- Human
-
- 100
-
-
-
-
- Medicine
-
-
- 1
-
-
-
-
- Medicine
-
-
-
-
-
- Surgery_ExpandAreola
- expand areolae
- Expand the areolae.
- RJW_Menstruation.Recipe_ExpandAreola
- expanding areolae
-
-
-
- Surgery_ContractAreola
- contract areolae
- Contract the areolae.
- RJW_Menstruation.Recipe_ContractAreola
- contracting areolae
-
-
-
- Surgery_ExpandNipple
- Expand nipple
- Expand the nipples.
- RJW_Menstruation.Recipe_ExpandNipple
- expanding nipples
-
-
-
- Surgery_ContractNipple
- Contract nipples
- Contract the nipples.
- RJW_Menstruation.Recipe_ContractNipple
- contracting nipples
-
-
-
- Surgery_DarkenNipple
- Darken nipples
- Darken the nipples.
- RJW_Menstruation.Recipe_DarkenNipple
- darkening nipples
-
-
-
- Surgery_LightenNipple
- Lighten nipples
- Lighten the nipples.
- RJW_Menstruation.Recipe_LightenNipple
- lightening nipples
-
-
-
diff --git a/1.6/Defs/RecordDefs/Records_Womb.xml b/1.6/Defs/RecordDefs/Records_Womb.xml
deleted file mode 100644
index 6228687..0000000
--- a/1.6/Defs/RecordDefs/Records_Womb.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- AmountofCreampied
- creampied
- The milliliters of cum that's been ejaculated into my womb.
- Float
-
-
-
- AmountofFertilizedEggs
- fertilized eggs
- The number of my eggs that sperm has fertilized.
- Int
-
-
-
-
diff --git a/1.6/Defs/Stats/Stats_Absorber.xml b/1.6/Defs/Stats/Stats_Absorber.xml
deleted file mode 100644
index b45fda3..0000000
--- a/1.6/Defs/Stats/Stats_Absorber.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- MaxAbsorbable
- Absorbable
- Maximum amount of fluid that this item can absorb.
- Apparel
- 0
- FloatOne
- {0} ml
- false
- 60
-
-
- 0.5
- 0.8
- 1
- 1.2
- 1.4
- 2.0
- 5.0
-
-
-
-
-
diff --git a/1.6/Defs/TaleDefs/Tales_Cum.xml b/1.6/Defs/TaleDefs/Tales_Cum.xml
deleted file mode 100644
index ff70353..0000000
--- a/1.6/Defs/TaleDefs/Tales_Cum.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- CameInside
- came inside
- Tale_DoublePawn
- Volatile
- FUCKER
- FUCKED
- 1.5
-
-
- tale_noun->[FUCKER_nameDef] coming inside of [FUCKED_nameDef]
- image->[FUCKER_nameFull]'s penis deep inside of [FUCKED_nameFull]'s vagina [circumstance_group]
- image->[FUCKER_nameFull]'s penis vanishing into [FUCKED_nameFull]'s vagina [circumstance_group]
- image->[FUCKED_nameFull]'s vagina being filled by [FUCKER_nameFull]'s penis [circumstance_group]
- image->[FUCKED_nameFull]'s vagina gripping [FUCKER_nameFull]'s penis tight [circumstance_group]
- circumstance_phrase->while [FUCKER_nameDef] grits [FUCKER_possessive] teeth
- circumstance_phrase->while [FUCKER_nameDef] wears a triumphant smirk
- circumstance_phrase->as [FUCKED_nameDef] shudders in ecstasy
- circumstance_phrase->as [FUCKER_nameDef] shoots [FUCKER_possessive] load into [FUCKED_nameDef]
- circumstance_phrase->while [FUCKED_nameDef] looks into [FUCKER_nameDef]'s eyes with a smile
- desc_sentence->[FUCKER_nameDef]'s cum oozes out of [FUCKED_nameDef]'s vagina and drips onto the floor.
- desc_sentence->[FUCKER_nameDef]'s sperm races into [FUCKED_nameDef]'s womb and enters [FUCKED_possessive] egg.
- desc_sentence->[FUCKER_nameDef]'s cum shoots into [FUCKED_nameDef]'s womb.
- desc_sentence->[FUCKED_nameDef]'s womb is filled with cum.
- desc_sentence->Sweat runs down [FUCKER_nameDef]'s face.
- desc_sentence->[FUCKED_nameDef] is panting heavily.
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/ThingDefs/ApparelLayerDefs_Absorber.xml b/1.6/Defs/ThingDefs/ApparelLayerDefs_Absorber.xml
deleted file mode 100644
index 85fec8c..0000000
--- a/1.6/Defs/ThingDefs/ApparelLayerDefs_Absorber.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Absorber
- genital
- 500
-
-
diff --git a/1.6/Defs/ThingDefs/Apparel_Absorbers.xml b/1.6/Defs/ThingDefs/Apparel_Absorbers.xml
deleted file mode 100644
index 541dbed..0000000
--- a/1.6/Defs/ThingDefs/Apparel_Absorbers.xml
+++ /dev/null
@@ -1,280 +0,0 @@
-
-
-
-
- Absorber_Tampon
- tampon
- A tampon for absorbing fluids from a vagina.
May cause an infection if worn for too long.
- RJW_Menstruation.Absorber_Tampon
-
- Things/Item/Tampon
- Graphic_Single
-
- Never
- false
- Sellable
-
- 20
- 0.01
- 1000
- 1.0
- 2
- 10
-
- 5
-
- Fabric
-
-
- UnfinishedApparel
- ComplexClothing
- GeneralLaborSpeed
- Crafting
- Tailor
- Recipe_Tailor
-
- ElectricTailoringBench
- HandTailoringBench
-
- true
-
- 4
-
-
-
- ApparelUtility
-
-
- true
- false
- false
- 0
- Female
-
- GenitalsBPG
-
-
- Absorber
-
-
- Absorber
-
-
- Worker
- Soldier
- Nudist
- Slave
-
-
-
-
- 0.2
- false
- true
- 10
- Absorber_Tampon_Dirty
- 100.0
-
-
-
-
-
- Absorber_Tampon_Dirty
- dirty tampon
- A wet used tampon.
May cause infection if left in.
- RJW_Menstruation.Absorber_Tampon
-
- Things/Item/Tampon
- Graphic_Single
-
- Never
- false
- None
-
- 20
- 0.05
- 0
- 1000
- 0.2
- 2
- 10
- -5
-
-
- Fabric
-
-
- ApparelUtility
-
-
- true
- false
- false
- 0
- Female
-
- GenitalsBPG
-
-
- Absorber
-
-
- Absorber
-
-
-
-
- 0.2
- false
- true
- 8
- Absorber_Tampon_Dirty
- 100.0
-
-
-
-
-
-
- Absorber_Pad
- sanitary pad
- A pad for absorbing fluids from a vagina.
- RJW_Menstruation.Absorber
-
- Things/Item/Pad
- Graphic_Single
-
- Never
- false
- Sellable
-
- 40
- 0.02
- 1000
- 1.0
- 4
- 25
- 0.02
- 0.02
- 0.05
- 0.01
- 0.04
- 0.05
- 1
- -1
-
- 10
-
- Fabric
-
-
- UnfinishedApparel
- GeneralLaborSpeed
- Crafting
- Tailor
- Recipe_Tailor
-
- ElectricTailoringBench
- HandTailoringBench
-
- true
-
- 4
-
-
-
- ApparelUtility
-
-
- true
- true
- false
- 0
- Female
-
- GenitalsBPG
-
-
- Absorber
-
-
- Absorber
-
-
- Worker
- Soldier
- Slave
-
-
-
-
- 0.04
- true
- false
- Absorber_Pad_Dirty
-
-
-
-
-
- Absorber_Pad_Dirty
- wet sanitary pad
- A wet used pad.
- RJW_Menstruation.Absorber
-
- Things/Item/Pad
- Graphic_Single
-
- Never
- false
- None
-
- 40
- 0.10
- 0
- 1000
- 0.2
- 4
- 25
- -5
- 0.02
- 0.02
- 0.05
- 0.01
- 0.04
- 0.1
- -4
- 2
-
-
- Fabric
-
-
- ApparelUtility
-
-
- true
- true
- false
- 0
- Female
-
- GenitalsBPG
-
-
- Absorber
-
-
- Absorber
-
-
-
-
- 0.04
- true
- false
- Absorber_Pad_Dirty
-
-
-
-
diff --git a/1.6/Defs/ThingDefs/Filth_Mixture.xml b/1.6/Defs/ThingDefs/Filth_Mixture.xml
deleted file mode 100644
index fda4e41..0000000
--- a/1.6/Defs/ThingDefs/Filth_Mixture.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
- FilthMixture
- mixture
- RJW_Menstruation.Filth_Colored
-
- -30
- -10
-
-
- Graphic_Random
- Things/Filth/PoolSoft
- (255, 255, 255, 180)
-
-
- true
- 40
- true
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Defs/ThoughtDefs/Thoughts_sex.xml b/1.6/Defs/ThoughtDefs/Thoughts_sex.xml
deleted file mode 100644
index fdc7d55..0000000
--- a/1.6/Defs/ThoughtDefs/Thoughts_sex.xml
+++ /dev/null
@@ -1,367 +0,0 @@
-
-
-
-
- LeakingFluids
- Thought_Memory
- 0.05
- 1
- 0.4
-
-
- dripping fluids
- Can't I get something to absorb this?
- -2
-
-
-
-
-
- HaterCameInsideM
- Thought_MemorySocial
- 1.0
- 5
- 0.4
-
-
- came inside of {0}
- I came inside of my rival!
- 5
- 1
-
-
-
- CameInsideMIdeo
- CameInsideM
-
-
-
-
- CameInsideM
- Thought_MemorySocial
- 1.0
- 5
- 0.4
-
-
- came inside of {0}
- That felt so good.
- 2
- 1
-
-
-
-
-
- CameInsideFFetish
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I hope I get pregnant.
- 10
- 5
-
-
-
- CameInsideFIdeo
-
-
-
-
- HaterCameInsideF
- Thought_MemorySocial
- 7.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I don't want to be pregnant with his baby!
- -5
- -10
-
-
-
- HaterCameInsideFEstrus
- CameInsideF
- HaterCameInsideFSafe
- CameInsideFLowFert
- CameInsideFFetishSafe
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- HaterCameInsideFEstrus
- Thought_MemorySocial
- 7.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- What was I thinking, letting him do that?
- -3
- -5
-
-
-
- CameInsideF
- HaterCameInsideFSafe
- CameInsideFLowFert
- CameInsideFFetishSafe
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- CameInsideFLowFert
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I'm worried I might get pregnant.
The chance is low, but...
- -1
-
-
-
- CameInsideFFetishSafe
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- CameInsideF
- Thought_MemorySocial
- 7.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I'm worried I might get pregnant.
- -3
- -2
-
-
-
- HaterCameInsideFSafe
- CameInsideFLowFert
- CameInsideFFetishSafe
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- CameInsideFFetishSafe
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I don't think I'll get pregnant, but it's fun to fantasize.
- 3
- 1
-
-
-
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- HaterCameInsideFSafe
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I probably won't get pregnant, but I still don't like it.
- -2
- -5
-
-
-
- CameInsideFLowFert
- CameInsideFFetishSafe
- HaterCameInsideFIdeo
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- UnwantedPregnancy
- Thought_Memory
- 14.0
- 5
- 0.1
-
-
- unwanted pregnancy
- How will I take care of a baby? What am I going to do?
- -10
-
-
-
-
-
- UnwantedPregnancyMild
- Thought_Memory
- 14.0
- 5
- 0.1
-
-
- unwanted pregnancy
- I'm having a baby. I hope I can manage.
- -3
-
-
-
-
-
- TookContraceptivePill
- Thought_Memory
- 7.0
- 5
- 0.1
-
-
- took contraceptive pill
- Everything will be okay now.
- 1
-
-
-
-
-
- HateTookContraceptivePill
- Thought_Memory
- 7.0
- 5
- 0.1
-
-
- took contraceptive pill
- I want to get pregnant.
- -3
-
-
-
-
-
- EggRestorationReceived
- Thought_Memory
- 4
- 1
-
-
- egg restoration received
- I can breed for a little longer now.
- 2
-
-
-
-
-
- CameInsideMIdeo
- Thought_MemorySocial
- 1.0
- 5
- 0.4
-
-
- came inside of {0}
- It is my duty to make her pregnant.
- 3
- 2
-
-
-
- CameInsideM
-
-
-
-
- CameInsideFIdeo
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I hope this makes me pregnant like I should be.
- 15
- 10
-
-
-
-
-
- HaterCameInsideFIdeo
- Thought_MemorySocial
- 3.0
- 5
- 0.1
- 1
-
-
- {0} came inside
- I know I should become pregnant, but does it have to be his?
- 5
- 2
-
-
-
- CameInsideFFetish
- CameInsideFIdeo
-
-
-
-
- HateTookContraceptivePillIdeo
- Thought_Memory
- 7.0
- 5
- 0.1
-
-
- took contraceptive pill
- My beliefs demand I become pregnant.
- -5
-
-
-
-
-
diff --git a/1.6/Humanoid Alien Races/Assemblies/HAR.dll b/1.6/Humanoid Alien Races/Assemblies/HAR.dll
deleted file mode 100644
index 611da42..0000000
Binary files a/1.6/Humanoid Alien Races/Assemblies/HAR.dll and /dev/null differ
diff --git a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/HARCompatibility.cs b/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/HARCompatibility.cs
deleted file mode 100644
index 865045e..0000000
--- a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/HARCompatibility.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using AlienRace;
-using HarmonyLib;
-using RJW_Menstruation;
-using Verse;
-
-namespace RJW_Menstruation_HAR
-{
- [HarmonyPatch(typeof(HARCompatibility), nameof(HARCompatibility.IsHAR))]
- public static class IsHAR_Patch
- {
- static void Postfix(ref bool __result, Pawn pawn)
- {
- __result = pawn?.def is ThingDef_AlienRace;
- }
- }
-
- [HarmonyPatch(typeof(HARCompatibility), nameof(HARCompatibility.CopyHARProperties))]
- public static class CopyHARProperties_Patch
- {
- static void Postfix(Pawn baby, Pawn original)
- {
- if (!baby.HasComp() || !original.HasComp()) return;
- AlienPartGenerator.AlienComp.CopyAlienData(original, baby);
- }
- }
-
- // HAR patches ApplyBirthOutcome to produce multiple babies based on the mother's littersize. But the pregenerated babies system already makes multiple babies
- // So make it always consider the mother to have one baby
- [HarmonyPatch(typeof(HarmonyPatches), nameof(HarmonyPatches.BirthOutcomeMultiplier))]
- public static class HAR_LitterSize_Undo
- {
- public static void Postfix(ref int __result, Pawn mother)
- {
- if (!(mother?.ShouldCycle() ?? false)) return;
- if (Configurations.PregnancySource == Configurations.PregnancyType.Biotech && Configurations.EnableBiotechTwins)
- __result = 0;
- return;
- }
- }
-}
diff --git a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Harmony.cs b/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Harmony.cs
deleted file mode 100644
index 8e1f621..0000000
--- a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Harmony.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using HarmonyLib;
-using System.Reflection;
-using Verse;
-
-namespace RJW_Menstruation_HAR
-{
- [StaticConstructorOnStartup]
- internal static class First
- {
- static First()
- {
- Harmony har = new Harmony("RJW_Menstruation.HAR");
- har.PatchAll(Assembly.GetExecutingAssembly());
- }
- }
-}
diff --git a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Humanoid Alien Races.csproj b/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Humanoid Alien Races.csproj
deleted file mode 100644
index ed75f73..0000000
--- a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/Humanoid Alien Races.csproj
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {F9DFB070-9C28-43C5-8226-F4C0B4047CC5}
- Library
- Properties
- HAR
- HAR
- v4.8
- 512
- true
-
-
- true
- full
- false
- ..\..\assemblies\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- ..\..\Assemblies\
- TRACE
- prompt
- 4
-
-
-
- ..\..\..\source\RJW_Menstruation\packages\Lib.Harmony.2.3.6\lib\net48\0Harmony.dll
- False
-
-
- ..\..\..\..\..\..\..\..\workshop\content\294100\839005762\1.6\Assemblies\AlienRace.dll
- False
-
-
- ..\..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {eed2f3b9-8c20-4194-919e-8d151b29f70b}
- RJW_Menstruation
- False
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/packages.config b/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/packages.config
deleted file mode 100644
index dd3bf9a..0000000
--- a/1.6/Humanoid Alien Races/Source/Humanoid Alien Races/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/JobDef/RJWMenstruation.xml b/1.6/Languages/ChineseSimplified/DefInjected/JobDef/RJWMenstruation.xml
deleted file mode 100644
index 6d73d1d..0000000
--- a/1.6/Languages/ChineseSimplified/DefInjected/JobDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 清洗阴道
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/StatDef/RJWMenstruation.xml b/1.6/Languages/ChineseSimplified/DefInjected/StatDef/RJWMenstruation.xml
deleted file mode 100644
index 6c2c93a..0000000
--- a/1.6/Languages/ChineseSimplified/DefInjected/StatDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 可吸收量
- 最大可吸收的液体量
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/ThingDef/RJWMenstruation.xml b/1.6/Languages/ChineseSimplified/DefInjected/ThingDef/RJWMenstruation.xml
deleted file mode 100644
index 75ebeeb..0000000
--- a/1.6/Languages/ChineseSimplified/DefInjected/ThingDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-卫生棉条
-
-从阴道吸收液体的卫生棉条
-
-湿的卫生棉条
-
-使用过的湿卫生棉条
-
-卫生棉
-
-从阴道吸收液体的卫生棉
-
-湿的卫生棉
-
-使用过的湿卫生棉
-
-卵巢再生药物
-
-使卵巢再生以增加可排卵的卵子
卵子消耗量越大,效果越差
不能缓解更年期症状
-
-排卵药
-
-诱导排卵的药物
可导致更年期提前
-
-混合物
-
-
\ No newline at end of file
diff --git a/1.6/Languages/ChineseSimplified/DefInjected/ThoughtDef/RJWMenstruation.xml b/1.6/Languages/ChineseSimplified/DefInjected/ThoughtDef/RJWMenstruation.xml
deleted file mode 100644
index 48c020b..0000000
--- a/1.6/Languages/ChineseSimplified/DefInjected/ThoughtDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- 裤湿啦
- 真让人困恼...
- 被{0}中出了
- 我担心我可能会怀孕...
- 被{0}中出了
- 虽然几率很低,但我还是担心怀孕...
- 被{0}中出了
- 我想我怀孕了
- 被{0}中出了
- 我爱做爱
- 中出了{0}
- 超爽的
- 被{0}中出了
- 那龟孙子上了我,我不想怀上他的孩子...
- 被{0}中出了
- 那龟孙子上了我....
- 中出了{0}
- 我上了一个婊子
- 不想要的怀孕
- 我该怎麽办?...
-
\ No newline at end of file
diff --git a/1.6/Languages/ChineseSimplified/Keyed/RJW_Menstruation.xml b/1.6/Languages/ChineseSimplified/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index d10b3fe..0000000
--- a/1.6/Languages/ChineseSimplified/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
- RJW Menstruation Cycle
-
- 月经血
- 空
- 卵泡期
- 排卵
- 黄体期
- 月经来潮
- 怀孕
- 产后恢复
- 无
- 更年期
- 非发情期
- 状态
- 挤自己奶
- 状态
- 胎儿
- 父亲
- 阴道精液列表
- 已受精
- 受精中
- 排卵
-
-
-
- 激活子宫图标
- 激活子宫图标框
- 激活动物经期
- 仿真动物的经期.
此选项将在保存读取后生效
不推荐开启此选项
- 植入机会
- 设置受精卵的植入机会
- 受精的机会
- 设置每小时受精的机会
- 每小时阴道中的精液量衰减率
- 阴道中的精液量将以这个比率减少
- 每小时生育率衰减率
- 精液列表的生育率将以这个比率减少
- 循环加速
- 加快月经周期
- 调试
- 显示调试信息
- 子宫状态
- 在状态窗口中绘制子宫图标
- 阴道状态
- 在状态窗口中绘制阴道和肛门图标
- 胎儿信息级别
- 显示有关胎儿的所有信息
- 显示妊娠后胎儿的所有信息
- 不显示有关胎儿的信息,但显示怀孕後胎儿的图象
- 不显示胎儿图象和信息
- 激活更年期
- 激活更年期效果,使小人随着时间的推移而变得不育
如果您较长寿的外星人种族有碰到任何问题,请关闭此选项.
此选项将在保存读取后生效
- 多重怀孕
- 使用多重怀孕代替RJW的默认怀孕
- 激活异卵双胞胎
- 激活复数个卵子可以个别受精
- 激活双胞胎
- 允许单个卵子生成多个后代
- 双胞胎出现率
- 设置双胞胎的出现率
- 最大双胞胎数量
- 设置最大双胞胎数量
- 启用卵子图标
- 启用覆盖在子宫图标上的卵子图标
- 经血数量
- 预计经血总量
- 设置经血量
根据阴道不同出血量有变化
通常人类女性的经血量为20-80ml左右每月
- 殖民者
- 囚犯
- 盟友派系
- 中立者
- 敌对派系
- 目标小人
- 按钮和图标会出现在这些人物上
- 使用杂交扩展
- 覆盖RJW and RaceSupport的杂交定义
主杂交决定了谁的定义用在前面,不建议改变此项
- 主杂交扩展
- 母方
- 父方
- 怀孕后乳头动态变化
- 设定每次怀孕,乳头/乳晕变得更深色/宽大的程度。
- 怀孕后乳头固定变化
- 设定每次怀孕,乳头/乳晕永久性变得更深色/宽大的程度。
- 最大变化
- 乳头/乳晕不会变得比这个值更深色/宽大。
- 乳头变化速度
- 设定乳头/乳晕的变化速度。
1 = 立刻变化
- 自定义杂交
- 打开自定义杂交编辑器
该项会覆盖XML文件定义的杂交。
- 允许缩放图标
- 如有需要,允许图标缩小。
- 卵子生命周期倍增
- 倍增卵子生命周期。
在已受精阶段结束后,卵子将无视该选项死去。
- 启用产后阴道变化
- 启用产后永久阴道扩张。
如果你在用另一mod处理该项,关闭该选项。
- 变形力度
- 设置变形力度。
- 预计精子生命周期
- 预计卵子生命周期
- 1小时内受精几率: {0}%
受精卵着床几率。
白色覆盖层表示子宫内精子受精的几率。
-
- 清洗阴道
-
- 自定义杂交编辑器
- {0}的杂交种
- 当{0}与{1}交配,将有{3}几率生出{2}。
如果两个种族都有对方的杂交定义,将会使用父方的定义。
-
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml b/1.6/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
deleted file mode 100644
index 7e8cdaf..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 生殖器
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml b/1.6/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
deleted file mode 100644
index 3cf1a52..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 生理週期
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Cum.xml b/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Cum.xml
deleted file mode 100644
index 8402405..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Cum.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- 精子抗體
- 精子抗體
- 精子抗體。
-增加精子的失活率。
- {0}體內存有精子抗體。
- 多產
- 多產
- 多產。
- {0}有著多產的身體。
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml b/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml
deleted file mode 100644
index bfd31ac..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/HediffDef/Hediffs_Menstruation.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- 月經來潮
- 發情期
- 發情期
- 由於子宮進入月經週期中最多產的階段,身體受激素影響而變得渴望懷孕。性慾急遽膨脹。
-增加發生陰道性交的頻率,並且對性伴侶的選擇標準降低。
- 發情期(隱性)
- 發情期
- 由於子宮進入月經週期中最多產的階段,身體受激素影響而變得渴望懷孕。輕微增加性慾。
-輕微增加發生陰道性交的頻率。
- 止痛藥
- 緩解源自於痛經及此類神經痛的苦楚。
- 環孢素
- 由於免疫抑製劑的作用,身體抵抗感染和疾病的能力受扼制。
-
- 受費洛蒙影響
- 受附近某人處於發情期之故,此人的性需求及娛樂需求正急遽上升。
- 弱
- 中
- 強
-
- 陰道會於經期結束時出血。
-此時常常感到劇痛。
- 忍受痛經
- 稍感不適
- 隱隱作痛
- 苦不堪言
- 鑽心剜骨
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml b/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml
deleted file mode 100644
index 9a1418b..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_CleanSelf.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 正清洗陰道
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml b/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml
deleted file mode 100644
index abc1278..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/JobDef/Jobs_MilkSelf.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 正自行擠奶
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml b/1.6/Languages/ChineseTraditional/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml
deleted file mode 100644
index 5b95326..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 月經週期: 開啟狀態視窗
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml b/1.6/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml
deleted file mode 100644
index 7477d9d..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- 增大乳暈
- 增大乳暈。
- 正通過手術增大乳暈
- 縮小乳暈
- 縮小乳暈。
- 正通過手術縮小乳暈
- 增大乳頭
- 增大乳頭。
- 正通過手術增大乳頭。
- 縮小乳頭
- 縮小乳頭。
- 正通過手術縮小乳頭
- 染黑乳頭
- 染黑乳頭。
- 正通過手術染黑乳頭
- 白化乳頭
- 使乳頭顏色變粉。
- 正通過手術粉化乳頭
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml b/1.6/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml
deleted file mode 100644
index ba123a0..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/RecordDef/Records_Womb.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 我子宮中的精液。(以毫升計)
- 體內射精
- 我體內同精子結合的卵子數。
- 受精卵
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml b/1.6/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml
deleted file mode 100644
index bdcec06..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/StatDef/Stats_Absorber.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- 此物可吸收液體的最大量
- {0}毫升
- 可吸收量
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/Stats/Stats_Absorber.xml b/1.6/Languages/ChineseTraditional/DefInjected/Stats/Stats_Absorber.xml
deleted file mode 100644
index 801727f..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/Stats/Stats_Absorber.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- {0}毫升
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/TaleDef/Tales_Cum.xml b/1.6/Languages/ChineseTraditional/DefInjected/TaleDef/Tales_Cum.xml
deleted file mode 100644
index da44ed4..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/TaleDef/Tales_Cum.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- 體內射精
- tale_noun->[FUCKER_nameDef]在[FUCKED_nameDef]體內射了精。
- image->[FUCKER_nameFull]的陰莖深深刺入了[FUCKED_nameFull]的陰道[circumstance_group]
- image->[FUCKER_nameFull]的陰莖消失在了[FUCKED_nameFull]的黑洞中[circumstance_group]
- image->[FUCKED_nameFull]的陰道被[FUCKER_nameFull]的陰莖灌得滿滿的[circumstance_group]
- image->[FUCKED_nameFull]的陰道緊緊吸住了[FUCKER_nameFull]的陰莖[circumstance_group]
- circumstance_phrase->,於是[FUCKER_nameDef]不得不咬緊牙關
- circumstance_phrase->,但[FUCKER_nameDef]卻滿臉傻笑
- circumstance_phrase->,整得[FUCKED_nameDef]在狂喜中不停顫抖
- circumstance_phrase->,而後[FUCKER_nameDef]將[FUCKER_possessive]濃稠精液射入[FUCKED_nameDef]的體內
- circumstance_phrase->。接著,[FUCKED_nameDef]深情地看著[FUCKER_nameDef]的眼眸。
- desc_sentence->[FUCKER_nameDef]的精液緩緩流出[FUCKED_nameDef]的陰道,順著大腿滴到了地上。
- desc_sentence->[FUCKER_nameDef]的精液衝進了[FUCKED_nameDef]的子宮,同[FUCKED_possessive]的卵子結合了。
- desc_sentence->[FUCKER_nameDef]的精液射入了[FUCKED_nameDef]的子宮。
- desc_sentence->[FUCKED_nameDef]的子宮被精液灌得滿滿的。
- desc_sentence->汗水從[FUCKER_nameDef]的臉上滴落。
- desc_sentence->[FUCKED_nameDef]氣喘吁吁。
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml b/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml
deleted file mode 100644
index 9336332..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Apparel_Absorbers.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- 用於從陰道吸收液體。
- 衛生棉
- 濕的衛生棉
- 已經使用過的衛生棉
-
- 用於從陰道吸收液體。
-配戴過久容易引發陰道感染。
- 衛生棉條
-
- 已經使用過的衛生棉條。
-繼續滯留在內會引發陰道感染。
- 濕的衛生棉條
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml b/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml
deleted file mode 100644
index c7db4fd..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Filth_Mixture.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 混合物
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml b/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml
deleted file mode 100644
index da8e883..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/ThingDef/Pills_Menstruation.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- 免疫抑制劑。
-可用於治療精子抗體,但會降低身體對感染和疾病的抵抗力。有效期24小時。
- 環孢素
-
- 恢復卵巢的活力,令一部分卵子甦生。
-對卵子所剩無幾之人作用微乎其微。
-不能令人從絕經中恢復。
- 卵巢甦生劑
-
- 舒緩痛經。有效期24小時。
-
-對其他來源的疼痛亦生效。
- 止痛藥
-
- 誘發超量排卵:使下一次排卵時額外排出1-4枚卵細胞。
-
-很可能導致提前閉經。
- 超量排卵藥劑
-
diff --git a/1.6/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml b/1.6/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml
deleted file mode 100644
index 32296ae..0000000
--- a/1.6/Languages/ChineseTraditional/DefInjected/ThoughtDef/Thoughts_sex.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
- 被{0}中出了
- 我擔心我可能會懷孕...
- 被{0}中出了
- 好期待懷孕啊!
- 被{0}中出了
- 雖說不太可能懷孕,但是幻想懷孕真的好有趣!
- {0}內射了我
- 我希望這次能懷上,讓我盡到責任。
- 被{0}中出了
- 雖然機率很低,但我還是擔心懷孕...
- 中出了{0}
- 超爽的
- 內射了{0}
- 讓她懷孕正是我的職責所在。
- 卵母細胞再生術
- 我可以繼續繁衍一小段時間了!
- 吃了避孕藥
- 我想要個寶寶!
- 服用避孕藥
- 我的信仰要求我能夠懷孕。
- 被{0}中出了
- 我不想要他的孩子!
- {0}內射了
- 我著了什麼魔,竟然讓他做出了這種事!
- {0}內射了我
- 我知道我有生育的義務,但是難道非他不可嗎?
- 被{0}中出了
- 雖說不太可能懷上,但是這真的很噁!
- 中出了{0}
- 我上了那個婊子...哈!
- 褲濕啦
- 能不能有什麼東西來吸體液啊?
- 吃了避孕藥
- 一切都會過去。會好起來的。
- 不情願的妊娠
- 我該怎麼照顧寶寶?怎麼辦怎麼辦怎麼辦...
- 忐忑不安的妊娠
- 有個寶寶在我肚子裡。但願我能照看好他。
-
diff --git a/1.6/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml b/1.6/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index d61c6b9..0000000
--- a/1.6/Languages/ChineseTraditional/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-
-
- RJW-月經週期
- 經血
- 空
- 卵泡期
- 排卵
- 黃體期
- 月經來潮
- 妊娠
- 從生產中恢復
- 無
- 更年期
- 狀態
- 胎兒
- 父親
- 陰道精液列表
- 已受精
- 受精中
- 排卵
-
-
- 啟用動物經期
- 模擬動物的經期.
-此選項將在保存讀取後生效
-不推薦開啟此選項
- 著床機會
- 設置受精卵的著床機會
- 受精的機會
- 設置每小時受精的機會
- 每小時陰道中的精液量衰減率
- 陰道中的精液量將以這個比率減少
- 每小時精子活力衰減率
- 列表中精液的活力將按此比率減少。該值間接影響生育率。
- 月經加速
- 加快月經週期
- 除錯
- 顯示除錯資訊
-啟用時會令「胎兒信息級別」選項調至「全部細節」。
- 子宮狀態
- 在狀態窗口中繪製子宮圖標
- 陰道狀態
- 在狀態窗口中繪製陰道和肛門圖標
- 胎兒信息級別
- 顯示有關胎兒的所有信息
- 顯示妊娠後胎兒的所有信息
- 不顯示有關胎兒的信息,但顯示懷孕後胎兒的圖像
- 不顯示胎兒圖像和信息
- 啟用更年期
- 啟用更年期效果,使小人隨著時間的推移而變得不育
-如果您較長壽的外星人種族有碰到任何問題,請關閉此選項.
-此選項將在保存讀取後生效
- 啟用多胎妊娠
- 使用多胎妊娠代替RJW的默認懷孕
- 啟用異卵雙胞胎
- 啟用複數個卵子分別受精
- 啟用同卵雙胞胎
- 允許單個卵子產生多個後代
- 雙胞胎出現率
- 設置雙胞胎的出現率
- 最大雙胞胎數量
- 設置最大雙胞胎數量
- 清洗陰道
-
- 絕經
- 乏情期
- 卵巢正準備釋放卵子。排卵將在此階段結束時發生。
- 卵巢正準備釋放卵子。如果精液進入子宮,就會發生排卵。
- 卵巢正在將卵子釋放至子宮中。
- 子宮已準備好接受受精卵。如果在該階段結束之前有受精卵著床,將進入懷孕階段。
- 子宮內膜正在脫落,並將所有未能著床的受精卵排出。
- 寶寶正在子宮中茁壯成長。假以時日,這個世界將會迎來一個新居民。
- 子宮正從最近的妊娠中恢復。
- 子宮處於不孕的狀態。
- 隨著卵巢枯竭,月經週期變得不規則。
- 卵巢枯竭,身體已經無法再產生卵子。
- 處於繁殖季節之外。月經週期會在時機到來時恢復。
- 狀態
- 自行擠奶
- 不明
- 啟用子宮圖標
- 啟用健康面板中的按鈕
- 啟用卵細胞覆蓋層
- 在子宮圖示上顯示卵細胞狀態
- 出血量
- 預估總出血量
- 預估的出血量。
-正常人類女性在月經週期內大約會流失20~80毫升的血。
- 殖民者
- 囚犯
- 同盟派系
- 中立
- 敵對派系
- 本模組作用於:
- 這些小人的「RJW月經週期」工具欄對玩家可見。
- 使用進階雜交定義
- 覆寫RJW和RaceSupport插件的雜交定義。Overrides RJW and RaceSupport's hybrid definition.
-主導混合擴展決定了首先使用誰的定義。不建議更改此設置。Dominant hybrid extension determines whose definition used first. Not recommended to change this.
- 主導混合擴展Dominant hybrid extension
- 母本
- 父本
- 胸部在孕期增大
- 調整小人的乳房在懷孕期間的增長幅度。有些小人可能會比其他人長得更大。
- 乳頭在孕期間改變
- 變更乳頭在孕期間的改變幅度。
- 永久改變乳頭
- 乳頭在孕期間的改變會在孕期結束後保留多少?
- 客製化雜交細節
- 開啟雜交編輯器
-該選項會覆寫XML文件中的雜交定義。
- 允許圖標縮小
- 允許圖標在特殊場合縮小。
- 卵細胞生命期乘數
- 以倍數延長卵細胞的生命期
-無論此數值為何,所有未著床的卵子都會在黃體期結束時死亡。
- 啟用產後陰道擴張
- 令陰道在產後永久擴張。
-若存在其他模組擁有類似功能,請關閉此功能。
- 擴張力度
- 調節擴張力度。
- 令「發情期」機制覆寫RJW的濫交選項
- 啟用時,處於顯式發情期的小人將會使用以下選項來選定床伴。RJW的原始設定會被忽略。
-所有數值與RJW的對應選項相同。
- 發情期床伴:最低fuckability
- 發情期床伴:最低吸引度
- 發情期床伴:最低態度值
- 預估精子壽命
- 預估卵子壽命
- 受精卵著床機率。
-本小時內受精機率:{0}%
- 回歸預設值
- 客製化雜交編輯器
- {0}之雜交
- 當{0}與{1}產生後代,有{3}的概率生出{2}。
-若兩個種族相互間皆存在雜交定義,則以父本的定義為準。
-
- 使用RJW的簡單懷孕系統
- 使用本模組的多重懷孕
- 使用「生機」(Biotech)追加的懷孕機制
- 於「徵召」狀態下仍顯示子宮狀態
- 角色處於被徵召狀態時,子宮圖標不予隱藏。
- 沒有卵細胞
- 必須擁有子宮
- {PAWN_labelShort}完成了{PAWN_possessive}卵母細胞再生術(cycle)
-
- 排卵機率:{0}
- 排卵期內每個卵子的獨立排卵機率。
- (測試中!) 允許在「生機」(Biotech)追加的懷孕機制中出現多胞胎。
- 啟用這個選項將允許同卵或異卵雙胞胎出現在「生機」(Biotech)追加的懷孕機制中。
-一併將啟用雜交系統;然而兩個類人(humanlikes)生物絕不可能生出動物。
-
- 玩家小人刷新間隔
- 殖民者、囚犯和奴隸的子宮狀態應該每隔多久刷新一次?
-較小的刷新間隔可以更精確地模擬真實子宮;較大的刷新間隔可以提升遊戲流暢度
- 非玩家小人刷新間隔
- 非玩家勢力控制下的小人的子宮應該每隔多久刷新一次?
-較小的刷新間隔可以更精確地模擬真實子宮;較大的刷新間隔可以提升遊戲流暢度
- 動物子宮刷新間隔
- 動物們的子宮應該多久刷新一次?
-較小的刷新間隔可以更精確地模擬真實子宮;較大的刷新間隔可以提升遊戲流暢度
- 啟用費洛蒙機制
- 擁有發情期的類人生物在發情期將刺激附近的雄性類人生物,使其性慾大增。
- 動物費洛蒙效果
- 選定擁有發情期的動物在發情期內對類人生物的影響。
-
- 已吸收
-
- 子宮處於月經週期之外。經過足夠的時間後,月經週期會恢復。
-
- 對已經不育的子宮顯示子宮圖示
- 仍然展示不育的子宮狀態
-
diff --git a/1.6/Languages/English/Keyed/RJW_Menstruation.xml b/1.6/Languages/English/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index dd846a2..0000000
--- a/1.6/Languages/English/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,155 +0,0 @@
-
-
- RJW Menstruation Cycle
-
- menstrual blood
- Empty
- Follicular
- Ovulation
- Luteal
- In period
- Pregnant
- Recovering from birth
- None
- Climacteric
- Menopause
- Anestrus
- The ovaries are preparing to release an egg. Ovulation will occur at the end of this phase.
- The ovaries are preparing to release an egg. Ovulation will occur if semen enters the womb.
- The ovaries are releasing an egg into the womb.
- The womb is prepared to recieve a fertilized egg. Pregnancy will result if one implants before the end of the stage.
- The womb is shedding its lining, along with any eggs that failed to implant.
- A baby is growing inside the womb. With time and care, it will become a new resident of this world.
- The womb is recovering from its recent pregnancy.
- The womb is not fertile and cannot become pregnant.
- The ovaries have neared exhaustion and the menstrual cycle has become irregular.
- The ovaries have been exhausted and the womb can no longer produce eggs.
- The womb is out of breeding season. The cycle will resume once conditions are met.
- The womb is between cycles. The cycle will resume after enough time has passed.
- Status
- Lactate self
- State
- Fetus
- Father
- Cum list
- Fertilized
- Fertilizing
- Ovulated
-
-
- Unknown
- Absorbed
-
-
- Enable womb icon
- Enable button in health tab
- Enable animal cycle
- Simulate animal cycles.
Not recommended.
- Implantation chance
- Base implantation chance of fertilized egg
This value affects the chance of impregnation.
- Fertilization chance
- The fertilization chance per ml of sperm per hour
This value affects the chance of impregnation.
- Cum decay ratio per hour
- The amount of cum in the womb will drop by this amount every hour
This value affects the chance of impregnation.
- Cum fertility decay ratio per hour
- Cum will lose fertility by this amount every hour
This value affects fertilization chance indirectly.
- Cycle acceleration
- Accelerate menstruation cycle
This can cause early menopause and infertility.
Setting this lower than x12 is recommended.
Rimworld's timescale: x6(default)
- Colonist update interval
- How often the womb of each of your colonists, prisoners, and slaves update.
Lowering this will improve accuracy, increasing this can improve performance.
- Non-colonist update interval
- How often the womb of humans you don't control update.
Lowering this will improve accuracy, increasing this can improve performance.
- Animal update interval
- How often the womb of animals update.
Lowering this will improve accuracy, increasing this can improve performance.
- Debug
- Show debug information.
- Womb status
- Draw womb icon in status window.
- Vagina and breast status
- Draw vagina, anus and breast icons in the status window.
- Fetus information level
- Show all information about a fetus.
- Show all information about a fetus after discovered pregnancy.
- Show only image of a fetus after discovered pregnancy.
- Do not show any information about a fetus.
- Enable menopause
- 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.
- Enable pheromones
- Allow humanlikes in visible estrus to increase the sex drive of nearby humanlike males.
- Animal pheromone effect
- Set the effect that animals in visible estrus have on humanlikes.
- Use multiple pregnancy
- Use multiple pregnancy instead RJW's default pregnancy
Disable this option if you are in trouble with impregnation
RJW pregnancy should be turned on.
- Enable hetero ovular twins
- Allow pregnancy from multiple eggs at the same time.
- Enable enzygotic twins
- Enable a single egg to result in multiple identical offspring.
- Enzygotic twins chance
- The chance of identical twins.
- Max enzygotic twins
- The maximum number of identical siblings.
- Enable egg overlay
- Enable egg overlay on womb icon.
- Bleeding amount
- Estimated total bleeding amount
- The approximate bleeding amount.
The normal bleeding amount of a human is about 20~80ml per cycle.
- Colonist
- Prisoner
- Allied Faction
- Neutral
- Hostile Faction
- Target pawns:
- The gizmo and button will appear for these pawns
- Use hybrid extension
- Overrides RJW and RaceSupport's hybrid definition.
Dominant hybrid extension determines whose definition used first. Not recommended to change this.
- Dominant hybrid extension
- Mother
- Father
- Breast growth during pregnancy
- Change how much a pregnant pawn's breasts will grow when pregnant. Some pawns will grow more than others.
- Nipple change during pregnancy
- Change how much a pregnant pawn's nipples will change during pregnancy.
- Permanent nipple change after pregnancy
- Adjusts approximately how much of a pregnant pawn's nipples will remain changed after the pregnancy ends.
- Customize Hybrids
- Open custom hybrid editor.
This will overrides hybrid definitions of XML files.
- Allow shrink icon
- Let icon become smaller if needed.
- Egg lifespan multiplier
- Multiply egg's lifespan.
All non-implanted eggs will die at end of luteal stage regardless of this setting.
- Enable vagina morph after birth
- Enable permanent vagina stretch after birth.
If you are using another mod handling this, turn off this option.
- Morph power
- Set morph power.
- Estrus overrides RJW hookup settings
- 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.
- Hookup minimum fuckability in estrus
- Hookup minimum attractability in estrus
- Hookup minimum opinion in estrus
- Estimated sperm lifespan
- Estimated egg lifespan
- Ovulation {0}
- Chance of each egg being released during ovulation.
- Implantation chance of fertilized eggs.
Chance of fertilization this hour: {0}%
- Use basic RJW pregnancy
- Use menstruation multiple pregnancy
- Use Biotech pregnancy
- Enable multiple babies/twins in a single Biotech pregnancy.
- Enabling this option will allow identical and hetero ovular twins with Biotech.
Also allows the hybrid system, but two humanlikes cannot produce an animal.
- Show womb status when drafted
- Draw womb icon for drafted pawns
- Show womb status when infertile
- Draw womb icon for infertile wombs
- Reset to default
-
- Vaginal washing
-
- Custom Hybrid Editor
- Hybrids of {0}
- 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.
-
- No eggs
- Must have a womb
- {PAWN_labelShort} has completed {PAWN_possessive} egg restoration cycle.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml b/1.6/Languages/French/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
deleted file mode 100644
index 74738f1..0000000
--- a/1.6/Languages/French/DefInjected/ApparelLayerDef/ApparelLayerDefs_Absorber.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- génital
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml b/1.6/Languages/French/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
deleted file mode 100644
index 3989412..0000000
--- a/1.6/Languages/French/DefInjected/GeneCategoryDef/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- menstruation
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/GeneDef/GeneDefs_Menstruation.xml b/1.6/Languages/French/DefInjected/GeneDef/GeneDefs_Menstruation.xml
deleted file mode 100644
index dba149c..0000000
--- a/1.6/Languages/French/DefInjected/GeneDef/GeneDefs_Menstruation.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
-
- Durée ovule double
-
- Les ovules non fécondés avec ce gène durent deux fois plus longtemps.
-
-
- Ovulation double
-
- Les porteuses de ce gène ovuleront deux fois plus d’ovules.
-
-
- Œstrus complet
-
- Les porteuses de ce gène entreront en œstrus complet à chaque cycle menstruel, quel que soit le type de vagin.
-
-
- Jamais en œstrus
-
- Les porteuses de ce gène ne seront jamais en œstrus.
-
-
- Pas de saignement
-
- Les porteuses de ce gène ne saigneront pas à la fin de leur cycle.
-
-
- Durée ovule quadruple
-
- Les ovules avec ce gène durent quatre fois plus longtemps.
-
-
- Ovulation quadruple
-
- Les porteuses de ce gène ovuleront quatre fois plus d’ovules.
-
-
- Durée ovule courte
-
- Les ovules non fécondés avec ce gène durent les trois quarts de la durée normale.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Cum.xml b/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Cum.xml
deleted file mode 100644
index 7fd74f0..0000000
--- a/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Cum.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- Anticorps anti-sperme
-
- Anticorps anti-sperme. Augmente le taux de mortalité des spermatozoïdes.
-
- anticorps anti-sperme
-
- {0} possède un anticorps anti-sperme
-
-
- Fertile
-
- fertile
-
- fertile
-
- {0} est fertile
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Menstruation.xml b/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Menstruation.xml
deleted file mode 100644
index 2527648..0000000
--- a/1.6/Languages/French/DefInjected/HediffDef/Hediffs_Menstruation.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
- Influencé par les phéromones
-
- 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.
-
- faible
-
- modéré
-
- fort
-
-
- Cyclosporine
-
- Sous l’effet d’un immunosuppresseur, réduisant la capacité du corps à combattre infections et maladies.
-
-
- Œstrus
-
- 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.
-
- œstrus
-
-
- Œstrus caché
-
- 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.
-
- œstrus
-
-
- En période
-
- Saignement vaginal à la fin du cycle menstruel. Souvent douloureux.
-
- en période
-
- désagréable
-
- gênant
-
- courbaturé
-
- douleur intense
-
-
- Antidouleur
-
- Soulagement léger de la douleur menstruelle (et autres sources de douleur).
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/JobDef/Jobs_CleanSelf.xml b/1.6/Languages/French/DefInjected/JobDef/Jobs_CleanSelf.xml
deleted file mode 100644
index 3e9ca77..0000000
--- a/1.6/Languages/French/DefInjected/JobDef/Jobs_CleanSelf.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- Lavage du vagin
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/JobDef/Jobs_MilkSelf.xml b/1.6/Languages/French/DefInjected/JobDef/Jobs_MilkSelf.xml
deleted file mode 100644
index 9c6086f..0000000
--- a/1.6/Languages/French/DefInjected/JobDef/Jobs_MilkSelf.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- Allaitement
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml b/1.6/Languages/French/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml
deleted file mode 100644
index fed2bf6..0000000
--- a/1.6/Languages/French/DefInjected/KeyBindingDef/KeyBindings_Menstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- Menstruation : ouvrir la fenêtre d’état
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml b/1.6/Languages/French/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml
deleted file mode 100644
index 38b89f9..0000000
--- a/1.6/Languages/French/DefInjected/RecipeDef/Recipes_Surgery_Breast.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
- Contracter les aréoles
-
- Contracter les aréoles.
-
- Contraction des aréoles
-
-
- Contracter les tétons
-
- Contracter les tétons.
-
- Contraction des tétons
-
-
- Assombrir les tétons
-
- Assombrir les tétons.
-
- Assombrissement des tétons
-
-
- Élargir les aréoles
-
- Élargir les aréoles.
-
- Élargissement des aréoles
-
-
- Élargir les tétons
-
- Élargir les tétons.
-
- Élargissement des tétons
-
-
- Éclaircir les tétons
-
- Éclaircir les tétons.
-
- Éclaircissement des tétons
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/RecordDef/Records_Womb.xml b/1.6/Languages/French/DefInjected/RecordDef/Records_Womb.xml
deleted file mode 100644
index d34f3c1..0000000
--- a/1.6/Languages/French/DefInjected/RecordDef/Records_Womb.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- Éjaculation interne
-
- Millilitres de sperme éjaculés dans mon utérus.
-
-
- Œufs fécondés
-
- Nombre de mes œufs fécondés par des spermatozoïdes.
-
-
diff --git a/1.6/Languages/French/DefInjected/StatDef/Stats_Absorber.xml b/1.6/Languages/French/DefInjected/StatDef/Stats_Absorber.xml
deleted file mode 100644
index 21cf86e..0000000
--- a/1.6/Languages/French/DefInjected/StatDef/Stats_Absorber.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Absorbable
-
- Quantité maximale de liquide que cet objet peut absorber.
-
- {0} ml
-
-
diff --git a/1.6/Languages/French/DefInjected/TaleDef/Tales_Cum.xml b/1.6/Languages/French/DefInjected/TaleDef/Tales_Cum.xml
deleted file mode 100644
index 85b6442..0000000
--- a/1.6/Languages/French/DefInjected/TaleDef/Tales_Cum.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
- Éjaculation interne
-
-
- tale_noun->[FUCKER_nameDef] éjacule dans [FUCKED_nameDef]
- image->[FUCKER_nameFull] a son pénis profondément dans le vagin de [FUCKED_nameFull] [circumstance_group]
- image->[FUCKER_nameFull] voit son pénis disparaître dans le vagin de [FUCKED_nameFull] [circumstance_group]
- image->[FUCKED_nameFull] voit son vagin se remplir du pénis de [FUCKER_nameFull] [circumstance_group]
- image->[FUCKED_nameFull] voit son vagin serrer fortement le pénis de [FUCKER_nameFull] [circumstance_group]
- circumstance_phrase->pendant que [FUCKER_nameDef] serre ses dents
- circumstance_phrase->pendant que [FUCKER_nameDef] arbore un sourire triomphant
- circumstance_phrase->alors que [FUCKED_nameDef] frissonne de plaisir
- circumstance_phrase->alors que [FUCKER_nameDef] éjacule dans [FUCKED_nameDef]
- circumstance_phrase->pendant que [FUCKED_nameDef] regarde [FUCKER_nameDef] dans les yeux en souriant
- desc_sentence->Le sperme de [FUCKER_nameDef] s’écoule du vagin de [FUCKED_nameDef] et tombe sur le sol.
- 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].
- desc_sentence->Le sperme de [FUCKER_nameDef] est éjaculé dans l’utérus de [FUCKED_nameDef].
- desc_sentence->L’utérus de [FUCKED_nameDef] est rempli de sperme.
- desc_sentence->De la sueur coule sur le visage de [FUCKER_nameDef].
- desc_sentence->[FUCKED_nameDef] halète lourdement.
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/ThingDef/Apparel_Absorbers.xml b/1.6/Languages/French/DefInjected/ThingDef/Apparel_Absorbers.xml
deleted file mode 100644
index 08f3d45..0000000
--- a/1.6/Languages/French/DefInjected/ThingDef/Apparel_Absorbers.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- Serviette hygiénique
-
- Une serviette pour absorber les fluides du vagin.
-
-
- Serviette hygiénique humide
-
- Une serviette utilisée et humide.
-
-
- Tampon
-
- Un tampon pour absorber les fluides du vagin. Peut provoquer une infection s’il est porté trop longtemps.
-
-
- Tampon sale
-
- Un tampon utilisé et humide. Peut provoquer une infection s’il est laissé en place.
-
-
diff --git a/1.6/Languages/French/DefInjected/ThingDef/Filth_Mixture.xml b/1.6/Languages/French/DefInjected/ThingDef/Filth_Mixture.xml
deleted file mode 100644
index 5f5f148..0000000
--- a/1.6/Languages/French/DefInjected/ThingDef/Filth_Mixture.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- mélange
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/ThingDef/Pills_Menstruation.xml b/1.6/Languages/French/DefInjected/ThingDef/Pills_Menstruation.xml
deleted file mode 100644
index 8e5047f..0000000
--- a/1.6/Languages/French/DefInjected/ThingDef/Pills_Menstruation.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
- Cyclosporine
-
- Un immunosuppresseur. Peut soigner l’anticorps antispermatozoïde, mais réduit la capacité du corps à combattre infections et maladies pendant 24 heures.
-
- Prendre {0}
-
- Prise de {0}.
-
-
- Comprimé de régénération ovarienne
-
- Restaure la santé des ovaires et une partie des ovules. Moins efficace sur des ovaires presque vides. Ne peut pas inverser la ménopause.
-
- Prendre {0}
-
- Prise de {0}.
-
-
- Antidouleur
-
- Soulage les douleurs menstruelles pendant 24 heures. Également efficace contre d’autres douleurs.
-
- Prendre {0}
-
- Prise de {0}.
-
-
- Agent de superovulation
-
- 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.
-
- Prendre {0}
-
- Prise de {0}.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/DefInjected/ThoughtDef/Thoughts_sex.xml b/1.6/Languages/French/DefInjected/ThoughtDef/Thoughts_sex.xml
deleted file mode 100644
index bcb230a..0000000
--- a/1.6/Languages/French/DefInjected/ThoughtDef/Thoughts_sex.xml
+++ /dev/null
@@ -1,99 +0,0 @@
-
-
-
-
- {0} a éjaculé à l'intérieur
-
- Je suis inquiète de pouvoir tomber enceinte.
-
-
- {0} a éjaculé à l'intérieur
-
- J'espère tomber enceinte.
-
-
- {0} a éjaculé à l'intérieur
-
- Je ne pense pas tomber enceinte, mais c'est amusant de fantasmer.
-
-
- {0} a éjaculé à l'intérieur
-
- J'espère que cela me rendra enceinte comme je devrais l'être.
-
-
- {0} a éjaculé à l'intérieur
-
- Je suis inquiète de pouvoir tomber enceinte. La chance est faible, mais…
-
-
- a éjaculé à l'intérieur de {0}
-
- Cela faisait tellement de bien.
-
-
- a éjaculé à l'intérieur de {0}
-
- C'est mon devoir de la rendre enceinte.
-
-
- Restauration des ovules reçue
-
- Je peux encore produire des ovules un peu plus longtemps.
-
-
- {0} a éjaculé à l'intérieur
-
- Je ne veux pas être enceinte de son bébé !
-
-
- {0} a éjaculé à l'intérieur
-
- À quoi pensais-je, en le laissant faire ça ?
-
-
- {0} a éjaculé à l'intérieur
-
- Je sais que je devrais devenir enceinte, mais est-ce que ça doit être avec lui ?
-
-
- {0} a éjaculé à l'intérieur
-
- Je ne tomberai probablement pas enceinte, mais ça ne me plaît toujours pas.
-
-
- a éjaculé à l'intérieur de {0}
-
- J'ai éjaculé à l'intérieur de ma rivale !
-
-
- a pris une pilule contraceptive
-
- Je veux tomber enceinte.
-
-
- a pris une pilule contraceptive
-
- Mes convictions exigent que je devienne enceinte.
-
-
- écoulement de fluides
-
- Ne puis-je rien utiliser pour absorber ça ?
-
-
- a pris la pilule contraceptive
-
- Tout ira bien maintenant.
-
-
- grossesse non désirée
-
- Comment vais-je m'occuper d'un bébé ? Que vais-je faire ?
-
-
- grossesse non désirée
-
- Je vais avoir un bébé. J'espère que je pourrai gérer.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/French/Keyed/RJW_Menstruation.xml b/1.6/Languages/French/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index d1b4bac..0000000
--- a/1.6/Languages/French/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,321 +0,0 @@
-
-
-
- Cycle menstruel RJW
-
-
- Sang menstruel
-
- Vide
-
- Folliculaire
-
- Ovulation
-
- Lutéale
-
- Menstruations
-
- Enceinte
-
- Récupération post-partum
-
- Aucune
-
- Climatérique
-
- Ménopause
-
- Anœstrus
-
- Les ovaires se préparent à libérer un ovule. L’ovulation aura lieu à la fin de cette phase.
-
- Les ovaires se préparent à libérer un ovule. L’ovulation aura lieu si du sperme entre dans l’utérus.
-
- Les ovaires libèrent un ovule dans l’utérus.
-
- 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.
-
- L’utérus se débarrasse de sa muqueuse, ainsi que des ovules non fécondés.
-
- Un bébé grandit dans l’utérus. Avec du temps et des soins, il deviendra un nouvel habitant de ce monde.
-
- L’utérus se rétablit de sa récente grossesse.
-
- L’utérus n’est pas fertile et ne peut pas concevoir.
-
- Les ovaires approchent de l’épuisement et le cycle devient irrégulier.
-
- Les ovaires sont épuisés et l’utérus ne peut plus produire d’ovules.
-
- L’utérus est hors saison de reproduction. Le cycle reprendra quand les conditions seront réunies.
-
- L’utérus est entre deux cycles. Le cycle reprendra après un certain temps.
-
- État
-
- Allaitement
-
- État
-
- Fœtus
-
- Père
-
- Liste de sperme
-
- Fécondé
-
- En fécondation
-
- Ovulé
-
-
-
- Père inconnu
-
- Absorbé
-
-
-
- Activer l’icône utérus
-
- Activer le bouton dans l’onglet santé
-
- Activer le cycle animal
-
- Simuler les cycles animaux. Non recommandé.
-
- Chance d’implantation
-
- Chance de base d’implantation de l’ovule fécondé. Affecte la probabilité de grossesse.
-
- Chance de fécondation
-
- Chance de fécondation par ml de sperme par heure. Affecte la probabilité de grossesse.
-
- Perte de sperme par heure
-
- La quantité de sperme dans l’utérus diminue de ce montant chaque heure. Affecte la probabilité de grossesse.
-
- Perte de fertilité du sperme par heure
-
- Le sperme perd sa fertilité de ce montant chaque heure. Affecte indirectement la chance de fécondation.
-
- Accélération du cycle
-
- 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).
-
- Intervalle mise à jour colones
-
- 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.
-
- Intervalle mise à jour non-colones
-
- 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.
-
- Intervalle mise à jour animaux
-
- Fréquence de mise à jour des utérus des animaux. Réduire améliore la précision, augmenter améliore la performance.
-
- Débogage
-
- Afficher les informations de débogage.
-
- État de l’utérus
-
- Afficher l’icône utérus dans la fenêtre d’état.
-
- État vagin et seins
-
- Afficher les icônes vagin, anus et seins dans la fenêtre d’état.
-
- Niveau information fœtus
-
- Afficher toutes les informations sur le fœtus.
-
- Afficher toutes les informations sur le fœtus après découverte de la grossesse.
-
- Afficher seulement l’image du fœtus après découverte de la grossesse.
-
- Ne pas afficher d’information sur le fœtus.
-
- Activer ménopause
-
- Activer l’effet ménopause qui rend infertile lorsque les ovules sont épuisés. Désactiver pour races longévives.
-
- Activer phéromones
-
- Autoriser les humanoïdes en œstrus visible à augmenter le désir sexuel des mâles proches.
-
- Effet phéromones animaux
-
- Définir l’effet des animaux en œstrus visible sur les humanoïdes.
-
- Activer grossesses multiples
-
- Utiliser grossesses multiples au lieu de la grossesse RJW par défaut. Désactiver si problème d’implantation. RJW doit rester activé.
-
- Activer jumeaux hétéro-ovulaires
-
- Autoriser la grossesse à partir de plusieurs ovules en même temps.
-
- Activer jumeaux enzygotiques
-
- Autoriser un ovule unique à produire plusieurs enfants identiques.
-
- Chance jumeaux enzygotiques
-
- Chance d’avoir des jumeaux identiques.
-
- Nombre max jumeaux identiques
-
- Nombre maximum de frères et sœurs identiques.
-
- Activer superposition ovule
-
- Afficher superposition des ovules sur icône utérus.
-
- Quantité de saignement
-
- Quantité totale estimée
-
- Quantité approximative de saignement. Normale : 20~80 ml par cycle.
-
- Colone
-
- Prisonnière
-
- Faction alliée
-
- Neutre
-
- Faction hostile
-
- Cibles :
-
- Le gizmo et le bouton apparaîtront pour ces pions.
-
- Activer extension hybride
-
- Remplace les définitions hybrides RJW et RaceSupport. L’extension dominante est prioritaire. Ne pas modifier.
-
- Extension hybride dominante
-
- Mère
-
- Père
-
- Croissance des seins pendant la grossesse
-
- Modifier combien les seins d’une femme enceinte vont grandir. Certaines croîtront plus que d’autres.
-
- Changement des tétons pendant la grossesse
-
- Modifier combien les tétons d’une femme enceinte vont changer.
-
- Changement permanent des tétons après la grossesse
-
- Modifie combien des changements des tétons restent après la grossesse.
-
- Personnaliser hybrides
-
- Ouvrir éditeur hybride personnalisé. Remplace les définitions hybrides XML.
-
- Autoriser la réduction de l’icône
-
- Permet à l’icône de devenir plus petite si nécessaire.
-
- Multiplicateur durée ovule
-
- Multiplie la durée de vie des ovules. Tous les ovules non implantés meurent à la fin de la phase lutéale.
-
- Activer métamorphose du vagin post-partum
-
- Activer l’étirement permanent du vagin après la naissance. Désactiver si un autre mod gère cela.
-
- Puissance de la métamorphose
-
- Définir la puissance de la métamorphose.
-
- Œstrus remplace RJW
-
- 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.
-
- Baisabilité minimale pendant l’œstrus
-
- Attractivité minimale pendant l’œstrus
-
- Opinion minimale pendant l’œstrus
-
- Durée de vie du sperme estimée
-
- Durée de vie de l’ovule estimée
-
- Ovulation {0}
-
- Chance que chaque ovule soit libéré à l’ovulation.
-
- Chance d’implantation des ovules fécondés. Chance de fécondation cette heure : {0}%
-
- Utiliser grossesse RJW de base
-
- Utiliser grossesses multiples menstruelles
-
- Utiliser grossesse Biotech
-
- Autoriser jumeaux/plusieurs bébés pour une seule grossesse Biotech
-
- Autorise jumeaux identiques et hétéro-ovulaires avec Biotech. Permet aussi système hybride, mais deux humanoïdes ne peuvent produire un animal.
-
- Afficher le statut de l’utérus en cours de mobilisation
-
- Afficher l’icône de l’utérus en cours de mobilisation
-
- Afficher le statut d’un utérus infertile
-
- Afficher l’icône d’un utérus infertile
-
- Réinitialiser par défaut
-
-
- Nettoyage vaginal
-
-
- Éditeur Hybrides Personnalisé
-
- Hybrides de {0}
-
- 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.
-
-
- Pas d’ovules
-
- Doit avoir un utérus
-
- {PAWN_labelShort} a terminé son cycle de restauration des ovules.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/ApparelLayerDef/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/ApparelLayerDef/RJWMenstruation.xml
deleted file mode 100644
index cf5232e..0000000
--- a/1.6/Languages/Japanese/DefInjected/ApparelLayerDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 性器
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/Drugs/Pills_Menstruation.xml b/1.6/Languages/Japanese/DefInjected/Drugs/Pills_Menstruation.xml
deleted file mode 100644
index a801670..0000000
--- a/1.6/Languages/Japanese/DefInjected/Drugs/Pills_Menstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 鎮痛剤
- 生理痛を24時間和らげます。
その他の痛みにも効果あり。
- シクロスポリン
- 免疫抑制剤。
抗精子抗体を直すことができるが、24時間の間、体の免疫力は低下する。
-
diff --git a/1.6/Languages/Japanese/DefInjected/HediffDef/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/HediffDef/RJWMenstruation.xml
deleted file mode 100644
index e066065..0000000
--- a/1.6/Languages/Japanese/DefInjected/HediffDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
- 生理中
- 月経周期の終わりに膣からの出血。よく痛い。
- 不快
- 痒い
- 痛い
- 苦痛
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/JobDef/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/JobDef/RJWMenstruation.xml
deleted file mode 100644
index abd8a16..0000000
--- a/1.6/Languages/Japanese/DefInjected/JobDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 膣を洗っている
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/StatDef/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/StatDef/RJWMenstruation.xml
deleted file mode 100644
index c5ce3d0..0000000
--- a/1.6/Languages/Japanese/DefInjected/StatDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 吸収量
- 吸収可能な液体の最大量。
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/ThingDef/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/ThingDef/RJWMenstruation.xml
deleted file mode 100644
index 76f4ba9..0000000
--- a/1.6/Languages/Japanese/DefInjected/ThingDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-タンポン
-
-膣内の体液を吸収するタンポン。長時間に着けて感染症を引き起こすことがある。
-
-汚れたタンポン
-
-濡れた使用済みタンポン。そのままにしておくと感染症を引き起こす可能性がある。
-
-生理用品
-
-膣からの体液を吸収するためのナプキン。
-
-汚れた生理用品
-
-濡れた使用済みナプキン
-
-卵巣再生薬
-
-卵巣を回復させ、卵子の数をある程度を回復させる。
卵子がほとんど残っていない卵巣にはあまり効果がない。
更年期の回復はできない。
-
-排卵剤
-
-過排卵を誘発し、次の排卵で卵子を1~4個余分に産生させる。
更年期を早める可能性がある。
-
-混じった物
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Japanese/DefInjected/ThoughtDefs/RJWMenstruation.xml b/1.6/Languages/Japanese/DefInjected/ThoughtDefs/RJWMenstruation.xml
deleted file mode 100644
index 7092dde..0000000
--- a/1.6/Languages/Japanese/DefInjected/ThoughtDefs/RJWMenstruation.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
- ぽたぽた
- これを吸収するものはないのかな?
- {0}に中出した
- ライバルに中出した
- {0}に中出した
- 気持ちよかった。
- {0}に中出した
- 妊娠するといいな。
- {0}に中出された
- あいつの子を妊娠したくない!
- {0}に中出された
- そんなことをさせるなんて、私は何を考えていたんだろう?
- {0}に中出された
- 可能性は低いけど、妊娠できるかどうか心配で...
- {0}に中出された
- 妊娠しないか心配なんだ。
- {0}に中出された
- 妊娠するとは思わないけど、妄想するのは楽しい。
- {0}に中出された
- 妊娠することはないだろうけど、やっぱり嫌だ。
- 望まない妊娠
- 赤ん坊の世話なんてできるか?どうすればいい?
- 望まない妊娠
- 赤ちゃんが生まれる。なんとかなるといいな。
- 避妊ピルを飲んだ
- もう大丈夫です。
- 避妊ピルを飲んだ
- 妊娠したい。
- 卵巣復活を得た
- もう少しの間、繁殖ことができる。
-
diff --git a/1.6/Languages/Japanese/Keyed/RJW_Menstruation.xml b/1.6/Languages/Japanese/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index 538bdc3..0000000
--- a/1.6/Languages/Japanese/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
- RJW Menstruation Cycle
-
- 経血
- 空っぽ
- 卵胞期
- 排卵期
- 黄体期
- 月経期
- 妊娠
- 出産後
- 無し
- クリマクテリック
- 更年期
- 無発情期
- 卵巣は卵子を放出するの準備をしています。この時期の終わりに排卵が起こります。
- 卵巣は卵子を放出するの準備をしています。精液が子宮に入ると排卵が起こります。
- 卵巣が卵子を子宮に放出しています。
- 子宮は受精卵を受け入れる準備ができている。この時期が終る前に受精卵が着床すれば妊娠となります。
- 子宮内膜は剥がれ落ち、着床できなかった受精卵を排出します。
- 子宮に赤ちゃんがいます。時間とケアによって、この世界の新しい住人となる。
- 子宮は最近の妊娠から回復しています。
- 子宮は繁殖能力がなく、妊娠することはできない。
- 卵巣が枯渇すると、月経周期が不規則になる。
- 。卵巣が枯渇し、子宮が卵子を産み出せなくなる。
- 繁殖期を過ぎた。時期が来れば発情周期は再開する。
- ステータス
- 自分を搾乳する
- ステータス
- 胎児
- 父親
- 精液リスト
- 受精卵
- 受精中
- 排卵済み
-
-
- 精液をバケッツに集める
- 子宮に精液をためる
- 不明
-
-
-
- Enable womb icon
- Enable button in health tab
- Enable animal cycle
- Simulate animal cycles.
Not recommended.
- Implantation chance
- Base implantation chance of fertilized egg
This value affects the chance of impregnation.
- Fertilization chance
- The fertilization chance per ml of sperm per hour
This value affects the chance of impregnation.
- Cum decay ratio per hour
- The amount of cum in the womb will drop by this amount every hour
This value affects the chance of impregnation.
- Cum fertility decay ratio per hour
- Cum will lose fertility by this amount every hour
This value affects fertilization chance indirectly.
- Cycle acceleration
- Accelerate menstruation cycle
This can cause early menopause and infertility.
Setting this lower than x12 is recommended.
Rimworld's timescale: x6(default)
- Colonist update interval
- How often the womb of each of your colonists, prisoners, and slaves update.
Lowering this will improve accuracy, increasing this can improve performance.
- Non-colonist update interval
- How often the womb of humans you don't control update.
Lowering this will improve accuracy, increasing this can improve performance.
- Animal update interval
- How often the womb of animals update.
Lowering this will improve accuracy, increasing this can improve performance.
- Debug
- Show debug information.
- Womb status
- Draw womb icon in status window.
- Vagina and breast status
- Draw vagina, anus and breast icons in the status window.
- Fetus information level
- Show all information about a fetus.
- Show all information about a fetus after discovered pregnancy.
- Show only image of a fetus after discovered pregnancy.
- Do not show any information about a fetus.
- Enable menopause
- 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.
- Use multiple pregnancy
- Use multiple pregnancy instead RJW's default pregnancy
Disable this option if you are in trouble with impregnation
RJW pregnancy should be turned on.
- Enable hetero ovular twins
- Allow pregnancy from multiple eggs at the same time.
- Enable enzygotic twins
- Enable a single egg to result in multiple identical offspring.
- Enzygotic twins chance
- The chance of identical twins.
- Max enzygotic twins
- The maximum number of identical siblings.
- Enable egg overlay
- Enable egg overlay on womb icon.
- Bleeding amount
- Estimated total bleeding amount
- The approximate bleeding amount.
The normal bleeding amount of a human is about 20~80ml per cycle.
- Colonist
- Prisoner
- Allied Faction
- Neutral
- Hostile Faction
- Target pawns:
- The gizmo and button will appear for these pawns
- Use hybrid extension
- Overrides RJW and RaceSupport's hybrid definition.
Dominant hybrid extension determines whose definition used first. Not recommended to change this.
- Dominant hybrid extension
- 母
- 父
- Breast growth during pregnancy
- Change how much a pregnant pawn's breasts will grow when pregnant. Some pawns will grow more than others.
- Nipple change during pregnancy
- Change how much a pregnant pawn's nipples will change during pregnancy.
- Permanent nipple change after pregnancy
- Adjusts approximately how much of a pregnant pawn's nipples will remain changed after the pregnancy ends.
- Customize Hybrids
- Open custom hybrid editor.
This will overrides hybrid definitions of XML files.
- Allow shrink icon
- Let icon become smaller if needed.
- Egg lifespan multiplier
- Multiply egg's lifespan.
All non-implanted eggs will die at end of luteal stage regardless of this setting.
- Enable vagina morph after birth
- Enable permanent vagina stretch after birth.
If you are using another mod handling this, turn off this option.
- Morph power
- Set morph power.
- Enable gather cum gizmo
- Estrus overrides RJW hookup settings
- 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.
- Hookup minimum fuckability in estrus
- Hookup minimum attractability in estrus
- Hookup minimum opinion in estrus
- Estimated sperm lifespan
- Estimated egg lifespan
- 排卵 {0}
- 排卵時に各卵が放出される確率。
- 受精卵の着床確率。
この時間に受精する確率{0}%
- Use basic RJW pregnancy
- Use menstruation multiple pregnancy
- Use Biotech pregnancy
- (EXPERIMENTAL) Enable multiple babies/twins in a single Biotech pregnancy.
- Enabling this option will allow identical and hetero ovular twins with Biotech.
Also allows the hybrid system, but two humanlikes cannot produce an animal.
- Show womb status when drafted
- Draw womb icon for drafted pawns
- Reset to default
-
- 精液を収集
- 膣を洗う
-
- Custom Hybrid Editor
- Hybrids of {0}
- 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.
-
- 卵子がない
- 子宮が必要
- {PAWN_labelShort} has completed {PAWN_possessive} egg restoration cycle.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/ApparelLayerDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/ApparelLayerDef/RJWMenstruation.xml
deleted file mode 100644
index 9c687e3..0000000
--- a/1.6/Languages/Korean/DefInjected/ApparelLayerDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- 성기
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/HediffDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/HediffDef/RJWMenstruation.xml
deleted file mode 100644
index 0b9539a..0000000
--- a/1.6/Languages/Korean/DefInjected/HediffDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
- 생리통
- 생리중입니다.
- 불편함
- 짜증남
- 아픔
- 고통스러움
- 발정기
- 발정기입니다.
- 발정기(숨김)
- 발정기입니다.
- 진통제
- 약간의 고통을 줄여줍니다.
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/JobDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/JobDef/RJWMenstruation.xml
deleted file mode 100644
index 67ae283..0000000
--- a/1.6/Languages/Korean/DefInjected/JobDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 질세척 하는중
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/RecipeDef/BreastSurgeries.xml b/1.6/Languages/Korean/DefInjected/RecipeDef/BreastSurgeries.xml
deleted file mode 100644
index 8c501f4..0000000
--- a/1.6/Languages/Korean/DefInjected/RecipeDef/BreastSurgeries.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- 유륜확대 수술
- 유륜을 크게만듭니다.
- 유륜확대 수술중
- 유륜축소 수술
- 유륜을 작게만듭니다.
- 유륜축소 수술중
- 유두확대 수술
- 유두를 크게만듭니다.
- 유두확대 수술중
- 유두축소 수술
- 유두를 작게만듭니다.
- 유두축소 수술중
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/RecordDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/RecordDef/RJWMenstruation.xml
deleted file mode 100644
index b807e13..0000000
--- a/1.6/Languages/Korean/DefInjected/RecordDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- 질내사정
- 질내사정당한 정액 양
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/StatDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/StatDef/RJWMenstruation.xml
deleted file mode 100644
index f92112e..0000000
--- a/1.6/Languages/Korean/DefInjected/StatDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
- 흡수량
- 액체를 흡수할수 있는 정도입니다.
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/ThingDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/ThingDef/RJWMenstruation.xml
deleted file mode 100644
index c48a975..0000000
--- a/1.6/Languages/Korean/DefInjected/ThingDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
- 탐폰
- 보지에서 나오는 액체를 흡수하는 탐폰입니다.
오래 착용하고 있을 경우 감염이 발생할수도 있습니다.
- 더러운 탐폰
- 사용된 축축한 탐폰입니다.
- 생리대
- 보지에서 나오는 액체를 흡수하는 생리대입니다.
흡수량 이상의 액체가 나올경우 샐수있습니다.
- 젖은 생리대
- 사용된 축축한 생리대입니다.
- 난소 재생약
- 난소를 재생시켜 배출할수있는 난자의 양을 증가시킵니다.
난자 소모량이 클수록 효과가 줄어듭니다.
폐경을 회복시키지 않습니다.
- 과배란 유도제
- 과배란을 유도하는 약물입니다.
조기폐경을 초래할수도 있습니다.
- 진통제
- 하루동안 약간의 통증을 줄여줍니다.
- 혼합물
-
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/DefInjected/ThoughtDef/RJWMenstruation.xml b/1.6/Languages/Korean/DefInjected/ThoughtDef/RJWMenstruation.xml
deleted file mode 100644
index 9509437..0000000
--- a/1.6/Languages/Korean/DefInjected/ThoughtDef/RJWMenstruation.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- 가랑이가 축축함
- 찝찝해...
- {0}에게 질내사정당함
- 임신할까봐 걱정돼...
- {0}에게 질내사정당함
- 확률은 낮겠지만 임신할까봐 걱정돼...
- {0}에게 질내사정당함
- 임신할것 같아
- {0}에게 질내사정당함
- 좋았어...
- {0}에게 질내사정함
- 질싸를하니 기분이 좋네
- {0}에게 질내사정당함
- 그새끼의 자식을 임신하고 싶지 않아...
- {0}에게 질내사정당함
- 안전일이였지만 기분나빠
- {0}에게 질내사정함
- 그년한테 질싸를했어
- 원치않은 임신
- 어떻게 해야하지?... 그년한테 질싸를했어
- 원치않은 임신
- 어떻게 해야하지?...
- 피임약 복용
- 괜찮을거야
- 피임약 복용
- 임신하고싶어
-
\ No newline at end of file
diff --git a/1.6/Languages/Korean/Keyed/RJW_Menstruation.xml b/1.6/Languages/Korean/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index 829fcf5..0000000
--- a/1.6/Languages/Korean/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
- RJW Menstruation Cycle
-
- 생리혈
- 없음
- 난포기
- 배란
- 황체기
- 생리중
- 임신
- 회복기
- 없음
- 갱년기
- 휴지기
- 상태창
- 모유 짜기
- 상태
- 태아
- 부
- 정액목록
- 수정됨
- 수정중
- 배란
-
-
-
- 자궁아이콘 활성화
- 건강탭에 버튼 추가
- 동물주기 활성화
- 동물의 월경주기를 시뮬레이션합니다.
변경한후에 세이브로드가 필요합니다.
not recommended
- 착상확률
- 수정란의 착상확률을 설정합니다.
- 수정확률
- 1시간마다 정자가 난자를 수정시킬확률을 설정합니다.
- 시간당 정액배출비율
- 이 비율만큼 매 시간마다 정액이 배출됩니다.
- 시간당 정자 사망비율
- 이 비율만큼 매 시간마다 정자가 사망해 정액이 생식능력을 잃습니다.
정자 예상수명: 정액이 대부분의 생식능력을 잃는 시간입니다.
- 주기 가속
- 월경주기를 더 빠르게합니다.
이 설정은 조기폐경과 난임을 유발할수도 있습니다.
12배속 이하로 설정하는것을 권장합니다.
림월드의 시간배율: x6(default)
- Debug
- 디버그정보를 보여줍니다.
- 자궁 그림
- 상태창에 자궁그림을 표시합니다.
- 가슴, 보지 그림
- 상태창에 가슴, 보지와 항문그림을 표시합니다.
- 태아 정보
- 태아에 대한 모든 정보를 표시합니다.
- 임신을 발견한 이후에 태아에 대한 모든 정보를 표시합니다.
- 태아에 대한 정보를 표시하지 않지만, 임신한 이후 태아이미지를 표시합니다.
- 태아에 대한 어떠한 정보도 표시하지 않습니다.
- 폐경기 활성화
- 시간이 지남에따라 불임상태로 만드는 폐경기를 활성화합니다.
수명이 긴 종족을 사용할때 문제가 있으면 이 옵션을 끄세요.
변경한후에 세이브로드가 필요합니다.
- 다중임신
- RJW의 기본임신 대신 다중임신을 사용합니다.
임신에 문제가 있다면 이 기능을 끄는것으로 해결될수도 있습니다.
RJW 임신이 활성화 되어야 합니다.
- 이란성 쌍둥이 활성화
- 다수의 난자가 임신으로 이어지게 합니다.
- 일란성 쌍둥이 활성화
- 하나의 난자가 다수의 태아로 나뉘게 합니다.
- 일란성 쌍둥이 확률
- 일란성 쌍둥이가 발생할 확률을 설정합니다.
- 최대 일란성 쌍둥이 수
- 일란성 쌍둥이의 수를 제한합니다.
- 난자 오버레이
- 자궁그림 위에 난자그림를 표시합니다.
- 생리양
- 예상되는 총 생리양
- 생리혈의 양을 설정합니다.
실제 생리양은 보지에따라 다를수 있습니다.
일반적인 인간 여성의 생리량은 약 20~80ml입니다.
- 정착민
- 죄수
- 동맹관계
- 중립
- 적대관계
- 표시 대상
- 아이콘과 버튼을 표시할 대상입니다.
- 잡종 정의 대체
- RJW와 RaceSupport의 잡종정의를 대체합니다.
우선순위는 누구의 잡종 정의를 우선으로 사용할지 정합니다. 변경하지 않는것을 추천합니다.
- 우선순위
- 모
- 부
- 임신후 유두 변화량
- 임신후에 유두가 얼마나 어두워지고 커지는지 설정합니다.
- 유두 영구변화량
- 매번 임신할때마다 유두가 얼마나 영구적으로 어두워지고 커지는지 설정합니다.
- 최대 변화량
- 유두는 이 값 이상으로 변하지 않습니다.
- 유두 변화 속도
- 유두가 얼마나 빨리 변하는지 설정합니다.
- 잡종 정의 변경하기
- 사용자 지정 잡종 편집기를 엽니다.
이 설정은 XML파일의 잡종 정의를 대체합니다.
- 아이콘 축소 허용
- 아이콘 축소를 허용합니다.
- 난자 수명 배수
- 난자 수명을 늘립니다.
이 설정에 관계없이 황체기가 끝나면 난자는 죽습니다.
- 출산 이후 보지 변화 활성화
- 출산 이후 보지가 영구적으로 늘어나게 합니다.
만약 이 설정을 다루고있는 다른 모드가 있다면, 이 설정을 끄세요.
- 변화 강도
- 변화 강도를 설정합니다.
- 정자 예상수명
- 난자 예상수명
- 한시간 안에 수정될 확률: {0}%
수정란이 임신으로 진행될 확률입니다.
흰색 오버레이는 정자가 난자를 수정시킬 확률을 표시하는 것입니다.
-
- 질세척
-
- 사용자 지정 잡종 편집기
- {0}의 잡종설정
- {0}이(가) {1}와(과) 교미했을 때, {2}이(가) {3}의 확률로 태어납니다.
만약 두 종족이 서로에 대한 잡종 정의가 있을경우 아버지 쪽의 정의가 우선적으로 사용됩니다.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Russian/Keyed/RJW_Menstruation.xml b/1.6/Languages/Russian/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index 05ad4dc..0000000
--- a/1.6/Languages/Russian/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
- RJW Menstruation Cycle
-
- менструальная кровь
- Пусто
- Фолликулярная
- Овуляция
- Лютеиновая
- В периоде
- Беременная
- Восстановление после родов
- Отсутствует
- Климакс
- Менопауза
- Анеструс
- Яичники готовятся к выходу яйцеклетки. Овуляция произойдет в конце этой фазы.
- Яичники готовятся к выходу яйцеклетки. Овуляция произойдет, если сперма попадет в матку.
- Яичники выделяют яйцеклетку в матку.
- Матка подготавливается к приему оплодотворенной яйцеклетки. Беременность наступит, если яйцеклетка имплантируется до конца этапа.
- Матка избавляется от своей оболочки, а также от яйцеклеток, которые не смогли имплантироваться.
- В утробе матери растет ребенок. Со временем и заботой он станет новым жителем этого мира.
- Матка восстанавливается после недавней беременности.
- Матка не плодородна и не может забеременеть.
- Яичники близки к истощению, а менструальный цикл стал нерегулярным.
- Яичники истощены, и матка больше не может производить яйцеклетки.
- Матка находится вне сезона размножения. Цикл возобновится, как только будут соблюдены необходимые условия.
- Статус
- Самостоятельная лактация
- Состояние
- Плод
- Отец
- Список Спермы
- Оплодотворена
- Оплодотворение
- Овулирована
-
-
- Неизвестно
- Поглощено
-
-
- Включить значок матки
- Включить кнопку на вкладке Здоровье
- Включить цикл животных
- Моделируйте циклы животных.
Не рекомендуется.
- Шанс имплантации
- Базовая вероятность имплантации оплодотворенной яйцеклетки
This value affects the chance of impregnation.
- Шанс оплодотворения
- Шанс оплодотворения на 1 мл спермы в час
Это значение влияет на вероятность пропитки.
- Коэффициент распада спермы в час
- Количество спермы в утробе будет уменьшаться на это количество каждый час
Это значение влияет на шанс пропитки.
- Снижения продородия спермы каждый час
- Сперма будет терять плодовитость на это значение каждый час
Это значение косвенно влияет на шанс оплодотворения.
- Ускорение цикла
- Ускорение менструального цикла
Это может привести к ранней менопаузе и бесплодию.
Установите этот показатель ниже, чем x12 рекомендуется.
Rimworld's timescale: x6(по умолчанию)
- Интервал обновления колониста
- Как часто обновляется утроба каждого из ваших колонистов, заключенных и рабов.
Снижение этого показателя повысит точность, увеличение этого показателя может повысить производительность.
- Интервал обновления не колонистов
- Как часто обновляются утробы людей, которых вы не контролируете.
Снижение этого показателя повысит точность, увеличение этого показателя может повысить производительность.
- Интервал обновления животных
- Как часто обновляются утробы животных.
Снижение этого показателя повысит точность, увеличение этого показателя может повысить производительность.
- Отладка
- Показать информацию отладки.
- Состояние матки
- Нарисуйте иконку матки в окне статуса.
- Стастус Вагины и Груди
- Нарисуйте значки вагины, ануса и груди в окне статуса.
- Fetus information level
- Показать всю информацию о зародыше.
- Показать всю информацию о зародыше после обнаружения беременности.
- Покажите только изображение зародыша после обнаружения беременности.
- Не показывайте никакой информации о зародыше.
- Включить менопаузу
- Включить эффект менопаузы, который делает пешек бесплодными, когда у них заканчиваются яйцеклетки.
Если у вас есть проблемы с долгоживущими расами, отключите эту опцию.
- Включить феромоны
- Позволяет человекоподобным самкам в видимой течке, повысить половое влечение близлежащих человекоподобных самцов.
- Действие феромонов на животных
- Установите эффект, который позволяет животным в видимой течке оказывать эффект на людей.
- Использовать многоплодную беременность
- Использовать многоплодную беременность вместо беременности по умолчанию в RJW
Отключите эту опцию, если у вас проблемы с пропиткой
Беременность RJW следует включить.
- Включить гетеро-овулярных близнецов
- Позволяет забеременеть от нескольких яйцеклеток одновременно.
- Включить энзиготные близнецы
- Включить что из одной яйцеклетки можно получить несколько идентичных потомков.
- Шанс появления энзиготных близнецов
- Шанс появления однояйцевых близнецов.
- Максимум энзиготных близнецов
- Максимальное количество одинаковых братьев и сестер.
- Включить оверлей яиц
- Включите оверлей яйца на иконку матки.
- Объём кровотечения
- Предполагаемая общая сумма кровотечения
- Примерный объем кровотечения.
Нормальный объем кровотечения у человека составляет около 20-80 мл за цикл.
- Колонист
- Заключенный
- Союзные фракции
- Нейтральные
- Враждебные фракции
- Целевая пешка:
- The gizmo and button will appear for these pawns
- Использовать гибридное расширение
- Отменяет определение гибрида RJW и RaceSupport.
Доминирующее гибридное расширение определяет, чье определение используется первым. Не рекомендуется изменять это.
- Доминантное гибридное расширение
- Мать
- Отец
- Увеличение груди во время беременности
- Измените, насколько вырастет грудь беременной пешки во время беременности. У некоторых пешек она будет расти больше, чем у других.
- Изменение сосков во время беременности
- Измените, насколько сильно изменятся соски беременной пешки во время беременности.
- Постоянное изменение сосков после беременности
- Регулирует, насколько измененными останутся соски беременной пешки после окончания беременности.
- Настроить гибридов
- Откройте пользовательский гибридный редактор.
Это отменяет гибридные определения XML-файлов.
- Разрешить уменьшать иконку
- При необходимости дайте иконе стать меньше.
- Множитель продолжительности жизни яиц
- Продолжительность жизни яйца.
Все неимплантированные яйцеклетки погибнут в конце лютеиновой фазы независимо от этого параметра.
- Включить морф вагины после беременности
- Включить постоянное растяжение влагалища после родов.
Если вы используете другой мод, который справляется с этой задачей, отключите эту опцию.
- Сила Морфа
- Установите силу морфа.
- Течка отменяет настройки подключения RJW
- Если эта опция включена, пешка в видимом течке будет использовать эти настройки для потенциального оплодотворения вместо настроек RJW.
Все настройки по умолчанию соответствуют аналогам RJW.
- Минимальная трахабельность в течке
- Минимальная привлекательность в течке
- Мнение о минимальном сексе в течке
- Предполагаемая продолжительность жизни сперматозоидов
- Предполагаемая продолжительность жизни яйц
- Овуляция {0}
- Вероятность выхода каждой яйцеклетки во время овуляции.
- Шанс имплантации оплодотворенного яйца.
Chance of fertilization this hour: {0}%
- Использовать базовую беременность RJW
- Использовать менструационную многоплодную беременность
- Использовать биотехнологическую беременность
- (EXPERIMENTAL) Включить рождения нескольких детей/близнецов во время одной биотехнологической беременности.
- Включение этой опции позволит рождение однояйцевых и гетерояйцевых близнецов с помощью технологии Biotech.
Также позволяет использовать гибридную систему, но два человекоподобных существа не могут создать животное.
- Показывать состояние матки при разработке
- Draw womb icon for drafted pawns
- Reset to default
-
- Опустошить Вагину
-
- Пользовательский редактор гибридов
- Гибрид {0}
- Когда {0} размножаться с {1}, {2} появится на свет {3} шанс.
Если обе расы имеют гибридные определения друг для друга, будет использоваться определение отца.
-
- Нет яиц
- Должен иметь матку
- {PAWN_labelShort} завершил {PAWN_possessive} цикл восстановления яйцеклеток.
-
-
\ No newline at end of file
diff --git a/1.6/Languages/Spanish/Keyed/RJW_Menstruation.xml b/1.6/Languages/Spanish/Keyed/RJW_Menstruation.xml
deleted file mode 100644
index e428b7d..0000000
--- a/1.6/Languages/Spanish/Keyed/RJW_Menstruation.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
- RJW Ciclo menstrual
-
- sangre menstrual
- Vacía
- Folicular
- Ovulación
- Luteal
- En periodo
- Embarazada
- Recuperándose del nacimiento
- Ninguna
- Climaterio
- Anestro
- Estado
- Estado
- Fetos
- Padre
- Semen lista
- Fecundada
- Fertil
- Ovulación
-
-
-
- habilitar icono de útero
- habilitar el botón en la pestaña de salud
- habilitar ciclo animal
- simular el ciclo del animal.
esta opción se aplicará después del cargado
no recomendado
- posibilidad de implantación
- establecer la posibilidad de implantación del óvulo fertilizado
este valor determina la posibilidad de finalización de la impregnación
- oportunidad de fertilización
- establecer la posibilidad de fertilización de 1 ml de esperma cada hora
este valor determina la posibilidad inicial de impregnación
- Relación de descomposición semen por hora
- el semen disminuirá en esta proporción
este valor afecta indirectamente al cambio de fertilidad
- índice de descomposición de la fertilidad acumulada por hora
- el semen perderá la fertilidad en esta proporción
este valor afecta indirectamente a la probabilidad de fertilidad
- acelerar el ciclo X
- acelerar el ciclo de la menstruación
- Depurar
- mostrar información de depuración.
- estado del útero
- dibujar icono de útero en la ventana de estado
- estado de la vagina
- dibujar el icono de vagina y ano en la ventana de estado
- Nivel de información del feto
- Mostrar toda la información sobre el feto
- Mostrar toda la información sobre el feto después de un embarazo notado
- No muestre información sobre el feto, pero muestre la imagen del feto después de un embarazo notado
- No mostrar la imagen ni la información del feto.
- permitir la menopausia
- Permitir el efecto de la menopausia que hace que el peón sea infértil con el paso del tiempo.
Si tiene problemas con las carreras de larga duración, desactive esta opción.
esta opción se aplicará después de guardar cargado
- usar embarazo múltiple
- use embarazo múltiple en lugar del embarazo predeterminado de RJW
deshabilite esta opción si tiene problemas con la impregnación
- permitir gemelos hetero ovulares
- permitir que varios óvulos puedan quedar embarazadas
- permitir gemelos enzimáticos
- permitir que un solo huevo dé como resultado múltiples crías
- posibilidad de gemelos enzimáticos
- Establecer la posibilidad de gemel@s
- gemelos enzimáticos max
- Establecer el número máximo de gemelos
- habilitar la superposición de huevos
- habilitar la superposición de huevos en el icono del útero
- cantidad de sangrado
- cantidad total estimada de sangrado
- establecer la cantidad de sangrado
la cantidad de sangrado real puede ser diferente dependiendo de la vagina
la cantidad de sangrado genérico de una mujer humana es de aproximadamente 20 ~ 80 ml por mes
- Colonos
- Prisionero
- todas las Facciones
- Neutral
- Facción enemiga
- objetivo de colonos
- el artilugio y el botón aparecerán para estos peones
- usar extensión híbrida
- anula la definición híbrida de RJW y RaceSupport
La extensión híbrida dominante determina qué definición se usa primero. No se recomienda cambiar esto
- Extensión híbrida dominante
- Madre
- Padre
-
- Lavado Vaginal
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Biosculpter_Patch.xml b/1.6/Patches/Biosculpter_Patch.xml
deleted file mode 100644
index 558f4b7..0000000
--- a/1.6/Patches/Biosculpter_Patch.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
-
- Ideology
-
-
- /Defs/ThingDef[defName="BiosculpterPod"]/comps
-
-
- eggRestoration
- egg restoration
- Restore one year worth of eggs in each womb.
- UI/Icon/EggRegeneration
- 4
-
-
- (0.867, 0.373, 0.396)
- 1.0
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/CycleDisabledGenes.xml b/1.6/Patches/CycleDisabledGenes.xml
deleted file mode 100644
index 01f8827..0000000
--- a/1.6/Patches/CycleDisabledGenes.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
-
- Alpha Genes
-
-
- /Defs/GeneDef[defName="AG_EggLaying"]
-
-
- true
-
-
-
-
-
-
-
- Vanilla Races Expanded - Saurid
-
-
- /Defs/GeneDef[defName="VRESaurids_Oviparous"]
-
-
- true
-
-
-
-
-
-
-
- Vanilla Races Expanded - Phytokin
-
-
- /Defs/GeneDef[defName="VRE_SaplingBirth"]
-
-
- true
-
-
-
-
-
-
-
- Erin's Corvyia
-
-
- /Defs/GeneDef[defName="ERN_EggLayer"]
-
-
- true
-
-
-
-
-
-
-
- Outland - Genetics
-
-
- /Defs/GeneDef[defName="Outland_EggLayer"]
-
-
- true
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Drugs.xml b/1.6/Patches/Drugs.xml
deleted file mode 100644
index 6f53daf..0000000
--- a/1.6/Patches/Drugs.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- /Defs/ThingDef[defName="RJW_FertPill"]/ingestible/outcomeDoers
-
-
-
-
-
-
- /Defs/ThingDef[defName="RJW_Contraceptive"]/ingestible/outcomeDoers
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Hediffs_PrivateParts.xml b/1.6/Patches/Hediffs_PrivateParts.xml
deleted file mode 100644
index f1fbfe4..0000000
--- a/1.6/Patches/Hediffs_PrivateParts.xml
+++ /dev/null
@@ -1,148 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="Vagina"]
-
-
-
- 10
- 1.0
- 1.0
- 14
- 14
- 6
- 30
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GenericVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 14
- 14
- 0
- 30
- 3
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicVagina"]
-
-
-
- 10
- Womb/Womb
- Genitals/BionicVagina
- true
- 0
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="BionicVagina"]
-
-
-
- 10
- Womb/Womb
- Genitals/BionicVagina
- true
- 0
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechVagina"]
-
-
-
- 10
- 2.0
- 2.0
- 14
- 14
- 0
- 0
- 3
- Womb/Womb
- Genitals/Vagina
- true
- 4
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="Anus"]
-
-
-
- Genitals/Anal
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicAnus"]
-
-
-
- Genitals/BionicAnal
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="BionicAnus"]
-
-
-
- Genitals/BionicAnal
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechAnus"]
-
-
-
- Genitals/Anal
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Hediffs_PrivateParts_Animal.xml b/1.6/Patches/Hediffs_PrivateParts_Animal.xml
deleted file mode 100644
index 0d3e585..0000000
--- a/1.6/Patches/Hediffs_PrivateParts_Animal.xml
+++ /dev/null
@@ -1,186 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="DogVagina"]
-
-
-
- 8
- 1.0
- 1.0
- 14
- 36
- 8
- 15
- 4
- Womb/Womb
- Genitals/Vagina
- 9
- 180~360
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="CatVagina"]
-
-
-
- 6
- 1.0
- 2.0
- 9
- 10
- 0
- 15
- 1
- Womb/Womb
- Genitals/Vagina
- FirstHalf
- 9
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="HorseVagina"]
-
-
-
- 25
- 1.0
- 1.0
- 7
- 14
- 0
- 30
- 1
- Womb/Womb
- Genitals/Vagina
- FirstHalf
- 5
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="DragonVagina"]
-
-
-
- 50
- 0.5
- 0.2
- 270
- 30
- 0
- 300
- 30
- Womb/Womb
- Genitals/Vagina
- 0
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="NarrowVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 5
- 16
- 0
- 15
- 2
- Womb/Womb
- Genitals/Vagina
- 1
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="RodentVagina"]
-
-
-
- 5
- 1.0
- 2.0
- 6
- 9
- 0
- 3
- 1
- Womb/Womb
- Genitals/Vagina
- 6
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="SlimeVagina"]
-
-
-
- 5
- 2.0
- 2.0
- 12
- 9
- 0
- 3
- 1
- Womb/Womb
- Genitals/Vagina
- 6
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="DemonVagina"]
-
-
-
- 10
- 2.0
- 2.0
- 14
- 14
- 0
- 3
- 1
- Womb/Womb
- Genitals/Vagina
- 6
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Hediffs_PrivateParts_Breasts.xml b/1.6/Patches/Hediffs_PrivateParts_Breasts.xml
deleted file mode 100644
index 8e88099..0000000
--- a/1.6/Patches/Hediffs_PrivateParts_Breasts.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="Breasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="HydraulicBreasts"]
-
-
-
- Breasts_Artificial/Breast
- (255,255,255)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="BionicBreasts"]
-
-
-
- Breasts_Artificial/Breast
- (255,255,255)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ArchotechBreasts"]
-
-
-
- Breasts/Breast
- (255,255,255)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="SlimeBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="UdderBreasts"]
-
-
-
- Breasts_Udder/Breast
- (55,20,0)
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Item_Resource_Stuffs.xml b/1.6/Patches/Item_Resource_Stuffs.xml
deleted file mode 100644
index 2bdc062..0000000
--- a/1.6/Patches/Item_Resource_Stuffs.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
- /Defs/ThingDef[defName="Cloth"]/stuffProps/statFactors
-
- 1.0
-
-
-
-
- /Defs/ThingDef[defName="Synthread"]/stuffProps/statFactors
-
- 2.0
-
-
-
-
- /Defs/ThingDef[defName="DevilstrandCloth"]/stuffProps/statFactors
-
- 0.5
-
-
-
-
- /Defs/ThingDef[defName="Hyperweave"]/stuffProps/statFactors
-
- 0.25
-
-
-
-
- /Defs/ThingDef[@Name="WoolBase"]/stuffProps/statFactors
-
- 1.5
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/PawnModExtensions.xml b/1.6/Patches/PawnModExtensions.xml
deleted file mode 100644
index 4daadde..0000000
--- a/1.6/Patches/PawnModExtensions.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Human"]
-
-
- Fetus/Fetus_Default
- (255,255,255,255)
- 0.2
-
-
- 0.005
- Hediff_ASA
- 0.01
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/PawnModExtensions_Animals.xml b/1.6/Patches/PawnModExtensions_Animals.xml
deleted file mode 100644
index 3dc63cd..0000000
--- a/1.6/Patches/PawnModExtensions_Animals.xml
+++ /dev/null
@@ -1,859 +0,0 @@
-
-
-
-
-
-
- /Defs/ThingDef[@Name="BigBirdThingBase"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Chicken"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Duck"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Goose"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Husky"]
-
-
- Fetus/Canines/Fetus_Canine
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="LabradorRetriever"]
-
-
- Fetus/Canines/Fetus_Canine
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="YorkshireTerrier"]
-
-
- Fetus/Canines/Fetus_Canine
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Warg"]
-
-
- Fetus/Canines/Fetus_Canine
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
- /Defs/ThingDef[@Name="ThingBaseWolf"]
-
-
- Fetus/Canines/Fetus_Canine
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
- /Defs/ThingDef[@Name="ThingBaseFox"]
-
-
- Fetus/Canines/Fetus_Canine_V
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="Pig"]
-
-
- Fetus/Pigs/Fetus_Pig
- (255,255,255,255)
- 0.8
-
-
-
-
-
-
-
- /Defs/ThingDef[defName="WildBoar"]
-
-
- Fetus/Pigs/Fetus_Pig
- (255,255,255,255)
- 0.8
-
-
-
-
-
-
-
- /Defs/ThingDef[@Name="BaseInsect"]
-
-
- Fetus/Insects/Fetus_Insect
- (153,212,89,255)
- 0.5
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Turkey"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Sheep"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Goat"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Ibex"]
-
-
- Fetus/Cervines/Fetus_Cervine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Deer"]
-
-
- Fetus/Cervines/Fetus_Cervine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Gazelle"]
-
-
- Fetus/Cervines/Fetus_Cervine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Alpaca"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Yak"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.3
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Elk"]
-
-
- Fetus/Cervines/Fetus_Cervine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Caribou"]
-
-
- Fetus/Cervines/Fetus_Cervine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Horse"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Donkey"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Cow"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Boomalope"]
-
-
- Fetus/Boomies/Fetus_Boomalope
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Muffalo"]
-
-
- Fetus/Muffalos/Fetus_Muffalo
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Bison"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Dromedary"]
-
-
- Fetus/Bovines/Fetus_Bovine
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Elephant"]
-
-
- Fetus/Elephants/Fetus_Elephant
- (255,255,255,255)
- 0.5
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Rhinoceros"]
-
-
- Fetus/Rhinoceroses/Fetus_Rhinoceros
- (255,255,255,255)
- 0.5
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Cat"]
-
-
- Fetus/Felines/Fetus_Feline_D
- (255,255,255,255)
- 0.1
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[@Name="BigCatThingBase"]
-
-
- Fetus/Felines/Fetus_Feline_W
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Cougar"]
-
-
- Fetus/Felines/Fetus_Feline_W
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Panther"]
-
-
- Fetus/Felines/Fetus_Feline_D
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Iguana"]
-
-
- Fetus/Reptiles/Fetus_Reptile
- (255,255,255,255)
- 0.5
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Tortoise"]
-
-
- Fetus/Reptiles/Fetus_Reptile
- (255,255,255,255)
- 0.5
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Cobra"]
-
-
- Fetus/Snakes/Fetus_Snake
- (255,255,255,255)
- 0.5
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[@Name="BaseHare"]
-
-
- Fetus/Lagomorphs/Fetus_Lagomorph
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Rat"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Boomrat"]
-
-
- Fetus/Boomies/Fetus_Boomrat
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="GuineaPig"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Chinchilla"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Snowhare"]
-
-
- Fetus/Lagomorphs/Fetus_Lagomorph
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Capybara"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Raccoon"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Alphabeaver"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Squirrel"]
-
-
- Fetus/Rodents/Fetus_Rodent
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Monkey"]
-
-
- Fetus/Primate/Fetus_Primate
- (255,255,255,255)
- 0.2
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Megasloth"]
-
-
- Fetus/Megasloths/Fetus_Megasloth
- (255,255,255,255)
- 0.9
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Thrumbo"]
-
-
- Fetus/Thrumbos/Fetus_Thrumbo
- (255,255,255,255)
- 0.7
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[@Name="BaseMechanoid"]
-
-
- Fetus/Mechanoids/Fetus_Mechanoid
- (255,255,255,255)
- 0.9
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[@Name="BaseMechanoidWalker"]
-
-
- Fetus/Mechanoids/Fetus_Mechanoid
- (255,255,255,255)
- 0.9
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Cassowary"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- Defs/ThingDef[defName="Emu"]
-
-
- Fetus/Birds/Fetus_Bird
- (255,255,255,255)
- 0.4
-
-
-
-
-
-
-
-
-
- /Defs/ThingDef[@Name="BaseBear"]
-
-
- Fetus/Ursids/Fetus_Ursid
- (255,255,255,255)
- 0.05
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/Pregenerated_Babies.xml b/1.6/Patches/Pregenerated_Babies.xml
deleted file mode 100644
index 07d05b3..0000000
--- a/1.6/Patches/Pregenerated_Babies.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- Biotech
-
-
- /Defs/HediffDef[defName="PregnantHuman" or defName="PregnancyLabor" or defName="PregnancyLaborPushing"]/comps
-
-
- RJW_Menstruation.HediffComp_PregeneratedBabies
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Patches/RJW_PawnTableDefs.xml b/1.6/Patches/RJW_PawnTableDefs.xml
deleted file mode 100644
index edbc555..0000000
--- a/1.6/Patches/RJW_PawnTableDefs.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
- /Defs/PawnTableDef[defName="RJW_PawnTable_Colonists"]/columns/li[text()="Pregnant"]
-
- RJWMenstruation_Womb
-
-
-
- /Defs/PawnTableDef[defName="RJW_PawnTable_Property"]/columns/li[text()="Pregnant"]
-
- RJWMenstruation_Womb
-
-
-
-
-
diff --git a/1.6/Patches/RJW_StatDefs.xml b/1.6/Patches/RJW_StatDefs.xml
deleted file mode 100644
index f83365a..0000000
--- a/1.6/Patches/RJW_StatDefs.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- /Defs/StatDef[defName="SexFrequency"]/parts
-
-
-
-
-
-
-
- /Defs/StatDef[defName="SexSatisfaction"]/parts
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Quirks/Assemblies/Quirks.dll b/1.6/Quirks/Assemblies/Quirks.dll
deleted file mode 100644
index 91a4a19..0000000
Binary files a/1.6/Quirks/Assemblies/Quirks.dll and /dev/null differ
diff --git a/1.6/Quirks/Defs/RJWQuirks.QuirkDef/RedWings.xml b/1.6/Quirks/Defs/RJWQuirks.QuirkDef/RedWings.xml
deleted file mode 100644
index 93d41ec..0000000
--- a/1.6/Quirks/Defs/RJWQuirks.QuirkDef/RedWings.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
- RedWings
- Red Wings
- {pawn} enjoys partners who are menstruating and enjoys having menstrual blood on {pawn_possessive} penis
-
-
-
-
- true
-
-
\ No newline at end of file
diff --git a/1.6/Quirks/Source/Quirks/Harmony.cs b/1.6/Quirks/Source/Quirks/Harmony.cs
deleted file mode 100644
index b707e3a..0000000
--- a/1.6/Quirks/Source/Quirks/Harmony.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using HarmonyLib;
-using System.Reflection;
-using Verse;
-
-namespace RJW_Menstruation_Quirks
-{
- [StaticConstructorOnStartup]
- internal static class First
- {
- static First()
- {
- Harmony har = new Harmony("RJW_Menstruation.Quirks");
- har.PatchAll(Assembly.GetExecutingAssembly());
- }
- }
-}
diff --git a/1.6/Quirks/Source/Quirks/Quirks.csproj b/1.6/Quirks/Source/Quirks/Quirks.csproj
deleted file mode 100644
index 405ea2b..0000000
--- a/1.6/Quirks/Source/Quirks/Quirks.csproj
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {D9363A87-BBC4-456D-9880-07414944C02A}
- Library
- Properties
- Quirks
- Quirks
- v4.8
- 512
- true
-
-
- true
- full
- false
- ..\..\assemblies\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- ..\..\Assemblies\
- TRACE
- prompt
- 4
-
-
-
- ..\..\..\source\RJW_Menstruation\packages\Lib.Harmony.2.3.6\lib\net48\0Harmony.dll
- False
-
-
- ..\..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
- False
-
-
- ..\..\..\..\..\rjw\1.6\Assemblies\RJW.dll
- False
-
-
- ..\..\..\..\..\rjw-quirks\1.6\Assemblies\RJWQuirks.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {eed2f3b9-8c20-4194-919e-8d151b29f70b}
- RJW_Menstruation
- False
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Quirks/Source/Quirks/QuirksCompatibility.cs b/1.6/Quirks/Source/Quirks/QuirksCompatibility.cs
deleted file mode 100644
index c4da198..0000000
--- a/1.6/Quirks/Source/Quirks/QuirksCompatibility.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-using HarmonyLib;
-using RimWorld;
-using rjw;
-using RJW_Menstruation;
-using RJWQuirks;
-using RJWQuirks.Condition;
-using System.Linq;
-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
- {
- public static void Postfix(ref bool __result, Pawn pawn, QuirkUtility.Quirks quirk)
- {
- switch (quirk)
- {
- case QuirkUtility.Quirks.Breeder:
- __result = pawn.HasQuirk(RqDefOf.Quirk.Breeder);
- return;
- case QuirkUtility.Quirks.ImpregnationFetish:
- __result = pawn.HasQuirk(RqDefOf.Quirk.ImpregnationFetish);
- return;
- case QuirkUtility.Quirks.Messy:
- __result = pawn.HasQuirk(RqDefOf.Quirk.Messy);
- return;
- case QuirkUtility.Quirks.Teratophile:
- __result = pawn.HasQuirk(QuirkDefs.Teratophile);
- return;
- case QuirkUtility.Quirks.RedWingsFetish:
- __result = pawn.HasQuirk(QuirkDefs.RedWings);
- return;
- default:
- return;
- }
- }
- }
-
- [HarmonyPatch(typeof(PartnerCanImpregnatePawn), nameof(PartnerCanImpregnatePawn.SatisfiedByPartner))]
- public static class PartnerCanImpregnatePawn_ByPartner_Patch
- {
- public static void Postfix(ref bool __result, Pawn pawn)
- {
- if (!pawn.ShouldCycle()) return;
- __result &= pawn.GetMenstruationComps().Any(comp => comp.IsDangerDay);
- }
- }
-
- [HarmonyPatch(typeof(PartnerCanImpregnatePawn), nameof(PartnerCanImpregnatePawn.SatisfiedBySex))]
- public static class PartnerCanImpregnatePawn_BySex_Patch
- {
- public static void Postfix(ref bool __result, SexProps sexProps)
- {
- Pawn pawn = sexProps.pawn;
- if (!pawn.ShouldCycle()) return;
- __result &= pawn.GetMenstruationComps().Any(comp => comp.IsDangerDay);
- }
- }
-
- [HarmonyPatch(typeof(PartnerCanImpregnatePawn), nameof(PartnerCanBeImpregnatedByPawn.SatisfiedByPartner))]
- public static class PartnerCanBeImpregnatedByPawn_ByPartner_Patch
- {
- public static void Postfix(ref bool __result, Pawn partner)
- {
- if (!partner.ShouldCycle()) return;
- __result &= partner.GetMenstruationComps().Any(comp => comp.IsDangerDay);
- }
- }
-
- [HarmonyPatch(typeof(PartnerCanImpregnatePawn), nameof(PartnerCanBeImpregnatedByPawn.SatisfiedBySex))]
- public static class PartnerCanBeImpregnatedByPawn_BySex_Patch
- {
- public static void Postfix(ref bool __result, SexProps sexProps)
- {
- Pawn partner = sexProps.partner;
- if (!partner.ShouldCycle()) return;
- __result &= partner.GetMenstruationComps().Any(comp => comp.IsDangerDay);
- }
- }
-}
diff --git a/1.6/Quirks/Source/Quirks/RedWings.cs b/1.6/Quirks/Source/Quirks/RedWings.cs
deleted file mode 100644
index 0623748..0000000
--- a/1.6/Quirks/Source/Quirks/RedWings.cs
+++ /dev/null
@@ -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 partnerParts = sexProps.IsInitiator() ? sexProps.resolved.RecipientParts : sexProps.resolved.InitiatorParts;
- return partnerParts.Any(part => part.Family == LewdablePartFamily.Vagina) && SatisfiedByPartner(sexProps.pawn, sexProps.partner);
- }
- }
-}
diff --git a/1.6/Quirks/Source/Quirks/packages.config b/1.6/Quirks/Source/Quirks/packages.config
deleted file mode 100644
index dd3bf9a..0000000
--- a/1.6/Quirks/Source/Quirks/packages.config
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/1.6/RJW Menstruation Race Support/About/About.xml b/1.6/RJW Menstruation Race Support/About/About.xml
deleted file mode 100644
index b3aa6ce..0000000
--- a/1.6/RJW Menstruation Race Support/About/About.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
- RJW Menstruation Cycle Race Support
- a
-
- 1.2
-
-
-
- rjw.menstruation
- RJW Menstruation
- https://github.com/moreoreganostodump/RJW_Menstruation
-
-
- Abraxas.RJW.RaceSupport
- RJW - RaceSupport
- https://gitgud.io/Abraxas/rjw-race-support
-
-
-
- Abraxas.RJW.RaceSupport
- rjw.menstruation
-
- rjw.menstruation.racesupport
- good good
-
\ No newline at end of file
diff --git a/1.6/RJW Menstruation Race Support/About/Manifest.xml b/1.6/RJW Menstruation Race Support/About/Manifest.xml
deleted file mode 100644
index 1904137..0000000
--- a/1.6/RJW Menstruation Race Support/About/Manifest.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- RJW Menstruation Race Support
- 8.9.0
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml b/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml
deleted file mode 100644
index e45f65d..0000000
--- a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Animal_RaceSupport.xml
+++ /dev/null
@@ -1,217 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="BovineVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 4
- 17
- 0
- 90
- 2
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="CactoidVagina"]
-
-
-
- 8
- 1.0
- 1.0
- 8
- 12
- 0
- 0
- 2
- Womb/Womb
- Genitals/Vagina
- Summer
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ElephantVagina"]
-
-
-
- 18
- 1.0
- 1.0
- 35
- 63
- 0
- 30
- 3
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="HyenaVagina"]
-
-
-
- 18
- 1.0
- 1.0
- 7
- 7
- 0
- 30
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="MammalVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 14
- 14
- 0
- 30
- 3
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="MarineVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 10
- 20
- 0
- 30
- 2
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="PigVagina"]
-
-
-
- 18
- 1.0
- 1.0
- 6
- 14
- 0
- 24
- 2
- Womb/Womb
- Genitals/Vagina
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="PistilVagina"]
-
-
-
- 8
- 1.0
- 1.0
- 6
- 12
- 0
- 30
- 2
- Womb/Womb
- Genitals/Vagina
- Fall
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GhostVagina"]
-
-
-
- 2
- 0.1
- 0.1
- 14
- 14
- 0
- 0
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml b/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml
deleted file mode 100644
index 82c40eb..0000000
--- a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Breasts_RaceSupport.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="MammalBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GhostBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="CactoidBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GhoulBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="NecroBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="OrcBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ScaleBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="TreeBreasts"]
-
-
-
- Breasts/Breast
- (55,20,0)
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml b/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml
deleted file mode 100644
index eee765b..0000000
--- a/1.6/RJW Menstruation Race Support/Patches/Hediffs_PrivateParts_Humanlike_RaceSupport.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ElfVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 1800
- 1800
- 6
- 30
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="ElfAnus"]
-
-
-
- Genitals/Anal
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="OrcVagina"]
-
-
-
- 10
- 1.0
- 1.0
- 7
- 10
- 0
- 10
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="OrcAnus"]
-
-
-
- Genitals/Anal
-
-
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GhoulVagina"]
-
-
-
- 10
- 0.2
- 0.2
- 14
- 14
- 0
- 10
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="GhoulAnus"]
-
-
-
- Genitals/Anal
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="NecroVagina"]
-
-
-
- 10
- 0.1
- 0.1
- 14
- 14
- 0
- 0
- 1
- Womb/Womb
- Genitals/Vagina
- true
-
-
-
-
-
-
- /Defs/rjw.HediffDef_SexPart[defName="TreeVagina"]
-
-
-
- 15
- 1.0
- 1.0
- 10
- 12
- 0
- 30
- 2
- Womb/Womb
- Genitals/Vagina
- Fall
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/Textures/Breasts/Breast_Breast00.png b/1.6/Textures/Breasts/Breast_Breast00.png
deleted file mode 100644
index ee9235e..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Areola00.png b/1.6/Textures/Breasts/Breast_Breast00_Areola00.png
deleted file mode 100644
index 886d752..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Areola01.png b/1.6/Textures/Breasts/Breast_Breast00_Areola01.png
deleted file mode 100644
index 128b260..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Areola02.png b/1.6/Textures/Breasts/Breast_Breast00_Areola02.png
deleted file mode 100644
index 925b105..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Areola03.png b/1.6/Textures/Breasts/Breast_Breast00_Areola03.png
deleted file mode 100644
index c4030d9..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Areola04.png b/1.6/Textures/Breasts/Breast_Breast00_Areola04.png
deleted file mode 100644
index c4030d9..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast00_Nipple00.png
deleted file mode 100644
index 180bfab..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast00_Nipple01.png
deleted file mode 100644
index d52d303..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast00_Nipple02.png
deleted file mode 100644
index a317c52..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast00_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast00_Nipple03.png
deleted file mode 100644
index dbbfb78..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast00_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01.png b/1.6/Textures/Breasts/Breast_Breast01.png
deleted file mode 100644
index 2e4f27f..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Areola00.png b/1.6/Textures/Breasts/Breast_Breast01_Areola00.png
deleted file mode 100644
index e9e4958..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Areola01.png b/1.6/Textures/Breasts/Breast_Breast01_Areola01.png
deleted file mode 100644
index a42aff7..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Areola02.png b/1.6/Textures/Breasts/Breast_Breast01_Areola02.png
deleted file mode 100644
index e5b9cf0..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Areola03.png b/1.6/Textures/Breasts/Breast_Breast01_Areola03.png
deleted file mode 100644
index d40a30c..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Areola04.png b/1.6/Textures/Breasts/Breast_Breast01_Areola04.png
deleted file mode 100644
index d40a30c..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast01_Nipple00.png
deleted file mode 100644
index c970cd6..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast01_Nipple01.png
deleted file mode 100644
index 0b2fc35..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast01_Nipple02.png
deleted file mode 100644
index a8966bf..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast01_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast01_Nipple03.png
deleted file mode 100644
index ce7523d..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast01_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02.png b/1.6/Textures/Breasts/Breast_Breast02.png
deleted file mode 100644
index 26883a9..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Areola00.png b/1.6/Textures/Breasts/Breast_Breast02_Areola00.png
deleted file mode 100644
index 93e1843..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Areola01.png b/1.6/Textures/Breasts/Breast_Breast02_Areola01.png
deleted file mode 100644
index 0c17fad..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Areola02.png b/1.6/Textures/Breasts/Breast_Breast02_Areola02.png
deleted file mode 100644
index 3a154ef..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Areola03.png b/1.6/Textures/Breasts/Breast_Breast02_Areola03.png
deleted file mode 100644
index 7c70961..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Areola04.png b/1.6/Textures/Breasts/Breast_Breast02_Areola04.png
deleted file mode 100644
index 7c70961..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast02_Nipple00.png
deleted file mode 100644
index 4798891..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast02_Nipple01.png
deleted file mode 100644
index d865a8b..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast02_Nipple02.png
deleted file mode 100644
index 4e96c84..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast02_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast02_Nipple03.png
deleted file mode 100644
index 591e6ea..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast02_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03.png b/1.6/Textures/Breasts/Breast_Breast03.png
deleted file mode 100644
index 141ee81..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Areola00.png b/1.6/Textures/Breasts/Breast_Breast03_Areola00.png
deleted file mode 100644
index 884558e..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Areola01.png b/1.6/Textures/Breasts/Breast_Breast03_Areola01.png
deleted file mode 100644
index 376d40e..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Areola02.png b/1.6/Textures/Breasts/Breast_Breast03_Areola02.png
deleted file mode 100644
index 833219a..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Areola03.png b/1.6/Textures/Breasts/Breast_Breast03_Areola03.png
deleted file mode 100644
index d272a38..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Areola04.png b/1.6/Textures/Breasts/Breast_Breast03_Areola04.png
deleted file mode 100644
index ef80b45..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast03_Nipple00.png
deleted file mode 100644
index 77b2a31..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast03_Nipple01.png
deleted file mode 100644
index 1f6a50c..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast03_Nipple02.png
deleted file mode 100644
index 91b5ff9..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast03_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast03_Nipple03.png
deleted file mode 100644
index 0663d61..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast03_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04.png b/1.6/Textures/Breasts/Breast_Breast04.png
deleted file mode 100644
index 49e3fdd..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Areola00.png b/1.6/Textures/Breasts/Breast_Breast04_Areola00.png
deleted file mode 100644
index f829fe3..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Areola01.png b/1.6/Textures/Breasts/Breast_Breast04_Areola01.png
deleted file mode 100644
index 41015e1..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Areola02.png b/1.6/Textures/Breasts/Breast_Breast04_Areola02.png
deleted file mode 100644
index 43807cd..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Areola03.png b/1.6/Textures/Breasts/Breast_Breast04_Areola03.png
deleted file mode 100644
index fececfc..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Areola04.png b/1.6/Textures/Breasts/Breast_Breast04_Areola04.png
deleted file mode 100644
index aee0036..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast04_Nipple00.png
deleted file mode 100644
index 64dd9ab..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast04_Nipple01.png
deleted file mode 100644
index 767399f..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast04_Nipple02.png
deleted file mode 100644
index ea44548..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast04_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast04_Nipple03.png
deleted file mode 100644
index 2638747..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast04_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05.png b/1.6/Textures/Breasts/Breast_Breast05.png
deleted file mode 100644
index 21c932f..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Areola00.png b/1.6/Textures/Breasts/Breast_Breast05_Areola00.png
deleted file mode 100644
index 4ed1442..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Areola01.png b/1.6/Textures/Breasts/Breast_Breast05_Areola01.png
deleted file mode 100644
index 888f2f0..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Areola02.png b/1.6/Textures/Breasts/Breast_Breast05_Areola02.png
deleted file mode 100644
index ca0182d..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Areola03.png b/1.6/Textures/Breasts/Breast_Breast05_Areola03.png
deleted file mode 100644
index aa7384d..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Areola04.png b/1.6/Textures/Breasts/Breast_Breast05_Areola04.png
deleted file mode 100644
index 052d759..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Nipple00.png b/1.6/Textures/Breasts/Breast_Breast05_Nipple00.png
deleted file mode 100644
index 62ff534..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Nipple01.png b/1.6/Textures/Breasts/Breast_Breast05_Nipple01.png
deleted file mode 100644
index 359195a..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Nipple02.png b/1.6/Textures/Breasts/Breast_Breast05_Nipple02.png
deleted file mode 100644
index 620b81f..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/Breast_Breast05_Nipple03.png b/1.6/Textures/Breasts/Breast_Breast05_Nipple03.png
deleted file mode 100644
index 9720601..0000000
Binary files a/1.6/Textures/Breasts/Breast_Breast05_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/average_nip_2.png b/1.6/Textures/Breasts/average_nip_2.png
deleted file mode 100644
index 5ae33c6..0000000
Binary files a/1.6/Textures/Breasts/average_nip_2.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/average_nip_preg.png b/1.6/Textures/Breasts/average_nip_preg.png
deleted file mode 100644
index ad126e1..0000000
Binary files a/1.6/Textures/Breasts/average_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/enormous_nip_gray.png b/1.6/Textures/Breasts/enormous_nip_gray.png
deleted file mode 100644
index 74ea39f..0000000
Binary files a/1.6/Textures/Breasts/enormous_nip_gray.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/enormous_nip_pink.png b/1.6/Textures/Breasts/enormous_nip_pink.png
deleted file mode 100644
index eab90a6..0000000
Binary files a/1.6/Textures/Breasts/enormous_nip_pink.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/enormous_nip_preg.png b/1.6/Textures/Breasts/enormous_nip_preg.png
deleted file mode 100644
index ba664fc..0000000
Binary files a/1.6/Textures/Breasts/enormous_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/enoromous_nip.png b/1.6/Textures/Breasts/enoromous_nip.png
deleted file mode 100644
index e199f9a..0000000
Binary files a/1.6/Textures/Breasts/enoromous_nip.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/huge_nip_preg.png b/1.6/Textures/Breasts/huge_nip_preg.png
deleted file mode 100644
index c4091f3..0000000
Binary files a/1.6/Textures/Breasts/huge_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/large_nip_2.png b/1.6/Textures/Breasts/large_nip_2.png
deleted file mode 100644
index 3a06e22..0000000
Binary files a/1.6/Textures/Breasts/large_nip_2.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/large_nip_preg.png b/1.6/Textures/Breasts/large_nip_preg.png
deleted file mode 100644
index 78d7200..0000000
Binary files a/1.6/Textures/Breasts/large_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/small_nip_2.png b/1.6/Textures/Breasts/small_nip_2.png
deleted file mode 100644
index 8729d10..0000000
Binary files a/1.6/Textures/Breasts/small_nip_2.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/small_nip_preg.png b/1.6/Textures/Breasts/small_nip_preg.png
deleted file mode 100644
index 0f3d5e3..0000000
Binary files a/1.6/Textures/Breasts/small_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/tiny_nip.png b/1.6/Textures/Breasts/tiny_nip.png
deleted file mode 100644
index bd9d889..0000000
Binary files a/1.6/Textures/Breasts/tiny_nip.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/tiny_nip_2.png b/1.6/Textures/Breasts/tiny_nip_2.png
deleted file mode 100644
index 8c43665..0000000
Binary files a/1.6/Textures/Breasts/tiny_nip_2.png and /dev/null differ
diff --git a/1.6/Textures/Breasts/tiny_nip_preg.png b/1.6/Textures/Breasts/tiny_nip_preg.png
deleted file mode 100644
index c5a31be..0000000
Binary files a/1.6/Textures/Breasts/tiny_nip_preg.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00.png
deleted file mode 100644
index ee9235e..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola00.png
deleted file mode 100644
index acb5453..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola01.png
deleted file mode 100644
index 1ae974f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola02.png
deleted file mode 100644
index 35baf43..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola03.png
deleted file mode 100644
index 870ba5b..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola04.png
deleted file mode 100644
index 870ba5b..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple00.png
deleted file mode 100644
index 0eeaef9..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple01.png
deleted file mode 100644
index edf140f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple02.png
deleted file mode 100644
index c686b77..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple03.png
deleted file mode 100644
index c362ffb..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast00_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01.png
deleted file mode 100644
index 2e4f27f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola00.png
deleted file mode 100644
index a41b708..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola01.png
deleted file mode 100644
index 7241cde..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola02.png
deleted file mode 100644
index 3a8b32c..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola03.png
deleted file mode 100644
index 51d837d..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola04.png
deleted file mode 100644
index 51d837d..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple00.png
deleted file mode 100644
index 925fa07..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple01.png
deleted file mode 100644
index 5c16fdc..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple02.png
deleted file mode 100644
index 32f1b03..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple03.png
deleted file mode 100644
index 2c6b39b..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast01_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02.png
deleted file mode 100644
index 26883a9..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola00.png
deleted file mode 100644
index 77ee749..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola01.png
deleted file mode 100644
index cb4f23e..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola02.png
deleted file mode 100644
index 269a022..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola03.png
deleted file mode 100644
index fee88bb..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola04.png
deleted file mode 100644
index fee88bb..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple00.png
deleted file mode 100644
index dda7f7f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple01.png
deleted file mode 100644
index 356da01..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple02.png
deleted file mode 100644
index e996dc2..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple03.png
deleted file mode 100644
index 84ec360..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast02_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03.png
deleted file mode 100644
index 141ee81..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola00.png
deleted file mode 100644
index 56ae6af..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola01.png
deleted file mode 100644
index 4af61d3..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola02.png
deleted file mode 100644
index 53c3fa8..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola03.png
deleted file mode 100644
index a949a84..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola04.png
deleted file mode 100644
index 0b04d4e..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple00.png
deleted file mode 100644
index fad8835..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple01.png
deleted file mode 100644
index c96fd06..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple02.png
deleted file mode 100644
index 0382854..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple03.png
deleted file mode 100644
index 864a699..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast03_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04.png
deleted file mode 100644
index 49e3fdd..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola00.png
deleted file mode 100644
index d0b67f7..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola01.png
deleted file mode 100644
index e1c73f9..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola02.png
deleted file mode 100644
index f768581..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola03.png
deleted file mode 100644
index 23fac43..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola04.png
deleted file mode 100644
index 53d5b32..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple00.png
deleted file mode 100644
index 1f24792..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple01.png
deleted file mode 100644
index a2d84df..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple02.png
deleted file mode 100644
index a85b31d..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple03.png
deleted file mode 100644
index 1bc64ef..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast04_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05.png
deleted file mode 100644
index 21c932f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola00.png
deleted file mode 100644
index 5c5d7cd..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola01.png
deleted file mode 100644
index 5d2a33f..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola02.png
deleted file mode 100644
index aaef70d..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola03.png
deleted file mode 100644
index c323c27..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola04.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola04.png
deleted file mode 100644
index fc51719..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple00.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple00.png
deleted file mode 100644
index 1980de9..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple01.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple01.png
deleted file mode 100644
index 605ff53..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple02.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple02.png
deleted file mode 100644
index 5a55d4b..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple03.png b/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple03.png
deleted file mode 100644
index e763dfa..0000000
Binary files a/1.6/Textures/Breasts_Artificial/Breast_Breast05_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00.png b/1.6/Textures/Breasts_Udder/Breast_Breast00.png
deleted file mode 100644
index ee9235e..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola00.png
deleted file mode 100644
index 210f4a8..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola01.png
deleted file mode 100644
index 096a002..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola02.png
deleted file mode 100644
index bfe8297..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola03.png
deleted file mode 100644
index 1634915..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola04.png
deleted file mode 100644
index 1634915..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple00.png
deleted file mode 100644
index 3ab60e2..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple01.png
deleted file mode 100644
index 40df850..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple02.png
deleted file mode 100644
index 0f0b928..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple03.png
deleted file mode 100644
index 7c72603..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast00_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01.png b/1.6/Textures/Breasts_Udder/Breast_Breast01.png
deleted file mode 100644
index 2e4f27f..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola00.png
deleted file mode 100644
index e72a4a3..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola01.png
deleted file mode 100644
index 7055e66..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola02.png
deleted file mode 100644
index 6504f43..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola03.png
deleted file mode 100644
index 5ebbca8..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola04.png
deleted file mode 100644
index 5ebbca8..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple00.png
deleted file mode 100644
index 5586e76..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple01.png
deleted file mode 100644
index e5680b6..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple02.png
deleted file mode 100644
index d721b2a..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple03.png
deleted file mode 100644
index 0103315..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast01_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02.png b/1.6/Textures/Breasts_Udder/Breast_Breast02.png
deleted file mode 100644
index 25fd7ab..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola00.png
deleted file mode 100644
index 8747424..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola01.png
deleted file mode 100644
index 7f8345e..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola02.png
deleted file mode 100644
index c6d56b8..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola03.png
deleted file mode 100644
index 59b8885..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola04.png
deleted file mode 100644
index 59b8885..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple00.png
deleted file mode 100644
index a066c73..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple01.png
deleted file mode 100644
index 8ca0f9f..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple02.png
deleted file mode 100644
index 57e3437..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple03.png
deleted file mode 100644
index 116d12c..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast02_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03.png b/1.6/Textures/Breasts_Udder/Breast_Breast03.png
deleted file mode 100644
index 28a8181..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola00.png
deleted file mode 100644
index 6f8b10a..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola01.png
deleted file mode 100644
index 0fcd4ca..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola02.png
deleted file mode 100644
index 1e0800e..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola03.png
deleted file mode 100644
index 6881a20..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola04.png
deleted file mode 100644
index 353e0c2..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple00.png
deleted file mode 100644
index 909c923..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple01.png
deleted file mode 100644
index 93b21a4..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple02.png
deleted file mode 100644
index cd83448..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple03.png
deleted file mode 100644
index 0cc58e6..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast03_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04.png b/1.6/Textures/Breasts_Udder/Breast_Breast04.png
deleted file mode 100644
index 1d14007..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola00.png
deleted file mode 100644
index 19e1413..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola01.png
deleted file mode 100644
index ad00df1..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola02.png
deleted file mode 100644
index b6d43e2..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola03.png
deleted file mode 100644
index d92dae1..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola04.png
deleted file mode 100644
index 31a9a80..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple00.png
deleted file mode 100644
index b5cf61f..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple01.png
deleted file mode 100644
index ad7c1b4..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple02.png
deleted file mode 100644
index 52973d1..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple03.png
deleted file mode 100644
index 3c85301..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast04_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05.png b/1.6/Textures/Breasts_Udder/Breast_Breast05.png
deleted file mode 100644
index 250ee5d..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola00.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola00.png
deleted file mode 100644
index d89d1a2..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola01.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola01.png
deleted file mode 100644
index fdc27b3..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola02.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola02.png
deleted file mode 100644
index 3244b0f..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola03.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola03.png
deleted file mode 100644
index fd55a82..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola03.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola04.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola04.png
deleted file mode 100644
index 70c6aca..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Areola04.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple00.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple00.png
deleted file mode 100644
index 1ade575..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple00.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple01.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple01.png
deleted file mode 100644
index a0a3b3f..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple01.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple02.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple02.png
deleted file mode 100644
index 9760461..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple02.png and /dev/null differ
diff --git a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple03.png b/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple03.png
deleted file mode 100644
index 15ac682..0000000
Binary files a/1.6/Textures/Breasts_Udder/Breast_Breast05_Nipple03.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg.png b/1.6/Textures/Eggs/Egg.png
deleted file mode 100644
index 8bb2ad4..0000000
Binary files a/1.6/Textures/Eggs/Egg.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilized00.png b/1.6/Textures/Eggs/Egg_Fertilized00.png
deleted file mode 100644
index 49592c7..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilized00.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilized01.png b/1.6/Textures/Eggs/Egg_Fertilized01.png
deleted file mode 100644
index 5e7481a..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilized01.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilized02.png b/1.6/Textures/Eggs/Egg_Fertilized02.png
deleted file mode 100644
index c0d7d24..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilized02.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilizing00.png b/1.6/Textures/Eggs/Egg_Fertilizing00.png
deleted file mode 100644
index 121180e..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilizing00.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilizing01.png b/1.6/Textures/Eggs/Egg_Fertilizing01.png
deleted file mode 100644
index 1f94f86..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilizing01.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Fertilizing02.png b/1.6/Textures/Eggs/Egg_Fertilizing02.png
deleted file mode 100644
index bdea1d1..0000000
Binary files a/1.6/Textures/Eggs/Egg_Fertilizing02.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Egg_Implanted00.png b/1.6/Textures/Eggs/Egg_Implanted00.png
deleted file mode 100644
index 21f74b2..0000000
Binary files a/1.6/Textures/Eggs/Egg_Implanted00.png and /dev/null differ
diff --git a/1.6/Textures/Eggs/Eggs.zip b/1.6/Textures/Eggs/Eggs.zip
deleted file mode 100644
index 7d60763..0000000
Binary files a/1.6/Textures/Eggs/Eggs.zip and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird00.png b/1.6/Textures/Fetus/Birds/Fetus_Bird00.png
deleted file mode 100644
index 91c2a8f..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird01.png b/1.6/Textures/Fetus/Birds/Fetus_Bird01.png
deleted file mode 100644
index a6a391c..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird02.png b/1.6/Textures/Fetus/Birds/Fetus_Bird02.png
deleted file mode 100644
index 140fe14..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird03.png b/1.6/Textures/Fetus/Birds/Fetus_Bird03.png
deleted file mode 100644
index 07b5afb..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird04.png b/1.6/Textures/Fetus/Birds/Fetus_Bird04.png
deleted file mode 100644
index f884958..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Birds/Fetus_Bird05.png b/1.6/Textures/Fetus/Birds/Fetus_Bird05.png
deleted file mode 100644
index c11fff4..0000000
Binary files a/1.6/Textures/Fetus/Birds/Fetus_Bird05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar00.png b/1.6/Textures/Fetus/Boars/Fetus_Boar00.png
deleted file mode 100644
index 762788e..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar01.png b/1.6/Textures/Fetus/Boars/Fetus_Boar01.png
deleted file mode 100644
index bc6164f..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar02.png b/1.6/Textures/Fetus/Boars/Fetus_Boar02.png
deleted file mode 100644
index b423c71..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar03.png b/1.6/Textures/Fetus/Boars/Fetus_Boar03.png
deleted file mode 100644
index b594dd0..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar04.png b/1.6/Textures/Fetus/Boars/Fetus_Boar04.png
deleted file mode 100644
index b576ca8..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boars/Fetus_Boar05.png b/1.6/Textures/Fetus/Boars/Fetus_Boar05.png
deleted file mode 100644
index 7859a53..0000000
Binary files a/1.6/Textures/Fetus/Boars/Fetus_Boar05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope00.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope00.png
deleted file mode 100644
index f6db1ee..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope01.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope01.png
deleted file mode 100644
index 6f52148..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope02.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope02.png
deleted file mode 100644
index 8ce8b84..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope03.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope03.png
deleted file mode 100644
index 928d5e3..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope04.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope04.png
deleted file mode 100644
index 55444f8..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope05.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomalope05.png
deleted file mode 100644
index 767be38..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomalope05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat00.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat00.png
deleted file mode 100644
index 468fd46..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat01.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat01.png
deleted file mode 100644
index 1279edc..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat02.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat02.png
deleted file mode 100644
index a32f0c2..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat03.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat03.png
deleted file mode 100644
index 4ab4f90..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat04.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat04.png
deleted file mode 100644
index f1cc6b6..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat05.png b/1.6/Textures/Fetus/Boomies/Fetus_Boomrat05.png
deleted file mode 100644
index c81532b..0000000
Binary files a/1.6/Textures/Fetus/Boomies/Fetus_Boomrat05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine00.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine00.png
deleted file mode 100644
index f6db1ee..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine01.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine01.png
deleted file mode 100644
index 6f52148..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine02.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine02.png
deleted file mode 100644
index e698b3c..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine03.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine03.png
deleted file mode 100644
index 23fb87e..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine04.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine04.png
deleted file mode 100644
index 2f30e24..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Bovines/Fetus_Bovine05.png b/1.6/Textures/Fetus/Bovines/Fetus_Bovine05.png
deleted file mode 100644
index 1678309..0000000
Binary files a/1.6/Textures/Fetus/Bovines/Fetus_Bovine05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine00.png b/1.6/Textures/Fetus/Canines/Fetus_Canine00.png
deleted file mode 100644
index 224db15..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine00_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine00_Multiplet_2.png
deleted file mode 100644
index 4a61ebf..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine00_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine01.png b/1.6/Textures/Fetus/Canines/Fetus_Canine01.png
deleted file mode 100644
index 2c891e8..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine01_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine01_Multiplet_2.png
deleted file mode 100644
index 03822f6..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine01_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine02.png b/1.6/Textures/Fetus/Canines/Fetus_Canine02.png
deleted file mode 100644
index 549e42a..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine02_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine02_Multiplet_2.png
deleted file mode 100644
index 8b16978..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine02_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine03.png b/1.6/Textures/Fetus/Canines/Fetus_Canine03.png
deleted file mode 100644
index 1ada107..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine03_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine03_Multiplet_2.png
deleted file mode 100644
index 57633cf..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine03_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine04.png b/1.6/Textures/Fetus/Canines/Fetus_Canine04.png
deleted file mode 100644
index 5fe5776..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine04_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine04_Multiplet_2.png
deleted file mode 100644
index 2567e78..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine04_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine05.png b/1.6/Textures/Fetus/Canines/Fetus_Canine05.png
deleted file mode 100644
index f658ced..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine05_Multiplet_2.png b/1.6/Textures/Fetus/Canines/Fetus_Canine05_Multiplet_2.png
deleted file mode 100644
index d13fae9..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine05_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V00.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V00.png
deleted file mode 100644
index 224db15..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V01.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V01.png
deleted file mode 100644
index 2c891e8..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V02.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V02.png
deleted file mode 100644
index 549e42a..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V03.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V03.png
deleted file mode 100644
index 1ada107..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V04.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V04.png
deleted file mode 100644
index 5fe5776..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Canines/Fetus_Canine_V05.png b/1.6/Textures/Fetus/Canines/Fetus_Canine_V05.png
deleted file mode 100644
index 019a873..0000000
Binary files a/1.6/Textures/Fetus/Canines/Fetus_Canine_V05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine00.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine00.png
deleted file mode 100644
index 762788e..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine01.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine01.png
deleted file mode 100644
index bc6164f..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine02.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine02.png
deleted file mode 100644
index a6cb3e2..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine03.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine03.png
deleted file mode 100644
index 9438482..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine04.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine04.png
deleted file mode 100644
index 69cc8d7..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Cervines/Fetus_Cervine05.png b/1.6/Textures/Fetus/Cervines/Fetus_Cervine05.png
deleted file mode 100644
index 1b191c6..0000000
Binary files a/1.6/Textures/Fetus/Cervines/Fetus_Cervine05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant00.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant00.png
deleted file mode 100644
index f6db1ee..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant01.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant01.png
deleted file mode 100644
index 3bc43c0..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant02.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant02.png
deleted file mode 100644
index d86e95c..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant03.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant03.png
deleted file mode 100644
index 301dc81..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant04.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant04.png
deleted file mode 100644
index b1c7d0c..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Elephants/Fetus_Elephant05.png b/1.6/Textures/Fetus/Elephants/Fetus_Elephant05.png
deleted file mode 100644
index ee571c9..0000000
Binary files a/1.6/Textures/Fetus/Elephants/Fetus_Elephant05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D00.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D00.png
deleted file mode 100644
index f6db1ee..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D01.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D01.png
deleted file mode 100644
index 6f52148..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D02.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D02.png
deleted file mode 100644
index ebc33af..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D03.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D03.png
deleted file mode 100644
index f28392f..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D04.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D04.png
deleted file mode 100644
index 9ffdc22..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_D05.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_D05.png
deleted file mode 100644
index ad7c81e..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_D05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W00.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W00.png
deleted file mode 100644
index f6db1ee..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W01.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W01.png
deleted file mode 100644
index 6f52148..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W02.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W02.png
deleted file mode 100644
index ebc33af..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W03.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W03.png
deleted file mode 100644
index f28392f..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W04.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W04.png
deleted file mode 100644
index 9ffdc22..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Felines/Fetus_Feline_W05.png b/1.6/Textures/Fetus/Felines/Fetus_Feline_W05.png
deleted file mode 100644
index 16de334..0000000
Binary files a/1.6/Textures/Fetus/Felines/Fetus_Feline_W05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default00.png b/1.6/Textures/Fetus/Fetus_Default00.png
deleted file mode 100644
index b7911a9..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default00_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default00_Multiplet_2.png
deleted file mode 100644
index ec24f44..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default00_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default01.png b/1.6/Textures/Fetus/Fetus_Default01.png
deleted file mode 100644
index 56f5728..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default01_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default01_Multiplet_2.png
deleted file mode 100644
index a34d830..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default01_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default02.png b/1.6/Textures/Fetus/Fetus_Default02.png
deleted file mode 100644
index 70fed44..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default02_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default02_Multiplet_2.png
deleted file mode 100644
index 84ea4f6..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default02_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default03.png b/1.6/Textures/Fetus/Fetus_Default03.png
deleted file mode 100644
index 96e9e7f..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default03_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default03_Multiplet_2.png
deleted file mode 100644
index 67417fb..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default03_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default04.png b/1.6/Textures/Fetus/Fetus_Default04.png
deleted file mode 100644
index 8f84cec..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default04_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default04_Multiplet_2.png
deleted file mode 100644
index fdb4380..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default04_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default05.png b/1.6/Textures/Fetus/Fetus_Default05.png
deleted file mode 100644
index 8f67056..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Default05_Multiplet_2.png b/1.6/Textures/Fetus/Fetus_Default05_Multiplet_2.png
deleted file mode 100644
index f4e2581..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Default05_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fetus_Old.zip b/1.6/Textures/Fetus/Fetus_Old.zip
deleted file mode 100644
index 90f4e17..0000000
Binary files a/1.6/Textures/Fetus/Fetus_Old.zip and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi00.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi00.png
deleted file mode 100644
index e2365e2..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi01.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi01.png
deleted file mode 100644
index 5ebdc74..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi02.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi02.png
deleted file mode 100644
index d26b66c..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi03.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi03.png
deleted file mode 100644
index b8c6486..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi04.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi04.png
deleted file mode 100644
index f9a6728..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi05.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi05.png
deleted file mode 100644
index cce729f..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A00.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A00.png
deleted file mode 100644
index 80b6c8e..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A01.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A01.png
deleted file mode 100644
index 15cbd76..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A02.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A02.png
deleted file mode 100644
index 675400d..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A03.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A03.png
deleted file mode 100644
index 3a60357..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A04.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A04.png
deleted file mode 100644
index f9a6728..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A05.png b/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A05.png
deleted file mode 100644
index cce729f..0000000
Binary files a/1.6/Textures/Fetus/Fungi/Fetus_Fungi_A05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine00.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine00.png
deleted file mode 100644
index 06f17e5..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine01.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine01.png
deleted file mode 100644
index 384d2c3..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine02.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine02.png
deleted file mode 100644
index b16c556..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine03.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine03.png
deleted file mode 100644
index 3cad627..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine04.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine04.png
deleted file mode 100644
index bc3ed7f..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine05.png b/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine05.png
deleted file mode 100644
index 183886c..0000000
Binary files a/1.6/Textures/Fetus/Humanoids/Fetus_Humanoid_Canine05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect00.png b/1.6/Textures/Fetus/Insects/Fetus_Insect00.png
deleted file mode 100644
index bfbf0ad..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect01.png b/1.6/Textures/Fetus/Insects/Fetus_Insect01.png
deleted file mode 100644
index 0b14746..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect02.png b/1.6/Textures/Fetus/Insects/Fetus_Insect02.png
deleted file mode 100644
index 13d5264..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect03.png b/1.6/Textures/Fetus/Insects/Fetus_Insect03.png
deleted file mode 100644
index acc2e56..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect04.png b/1.6/Textures/Fetus/Insects/Fetus_Insect04.png
deleted file mode 100644
index 7b92a2f..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Insects/Fetus_Insect05.png b/1.6/Textures/Fetus/Insects/Fetus_Insect05.png
deleted file mode 100644
index 9af559c..0000000
Binary files a/1.6/Textures/Fetus/Insects/Fetus_Insect05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph00.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph00.png
deleted file mode 100644
index 523884e..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph01.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph01.png
deleted file mode 100644
index 351c68d..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph02.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph02.png
deleted file mode 100644
index 6181c3a..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph03.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph03.png
deleted file mode 100644
index cbf8f47..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph04.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph04.png
deleted file mode 100644
index fdd26df..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph05.png b/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph05.png
deleted file mode 100644
index 188c808..0000000
Binary files a/1.6/Textures/Fetus/Lagomorphs/Fetus_Lagomorph05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid00.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid00.png
deleted file mode 100644
index fdccd4d..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid01.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid01.png
deleted file mode 100644
index 8ce0ba8..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid02.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid02.png
deleted file mode 100644
index 077f2d1..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid03.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid03.png
deleted file mode 100644
index cd38ccd..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid04.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid04.png
deleted file mode 100644
index c597052..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid05.png b/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid05.png
deleted file mode 100644
index b2c02d5..0000000
Binary files a/1.6/Textures/Fetus/Mechanoids/Fetus_Mechanoid05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth00.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth00.png
deleted file mode 100644
index 468fd46..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth01.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth01.png
deleted file mode 100644
index 1279edc..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth02.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth02.png
deleted file mode 100644
index cabb343..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth03.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth03.png
deleted file mode 100644
index fd80bd7..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth04.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth04.png
deleted file mode 100644
index 05a9474..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth05.png b/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth05.png
deleted file mode 100644
index d82229f..0000000
Binary files a/1.6/Textures/Fetus/Megasloths/Fetus_Megasloth05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo00.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo00.png
deleted file mode 100644
index 762788e..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo01.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo01.png
deleted file mode 100644
index bc6164f..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo02.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo02.png
deleted file mode 100644
index 8f3e65d..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo03.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo03.png
deleted file mode 100644
index 183d540..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo04.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo04.png
deleted file mode 100644
index fd5beec..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo05.png b/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo05.png
deleted file mode 100644
index 8f38bcc..0000000
Binary files a/1.6/Textures/Fetus/Muffalos/Fetus_Muffalo05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig00.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig00.png
deleted file mode 100644
index c99d2ac..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig01.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig01.png
deleted file mode 100644
index c2841e5..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig02.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig02.png
deleted file mode 100644
index 604c67d..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig03.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig03.png
deleted file mode 100644
index ccb7598..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig04.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig04.png
deleted file mode 100644
index 711eb14..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Pigs/Fetus_Pig05.png b/1.6/Textures/Fetus/Pigs/Fetus_Pig05.png
deleted file mode 100644
index 4563e8e..0000000
Binary files a/1.6/Textures/Fetus/Pigs/Fetus_Pig05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F00.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F00.png
deleted file mode 100644
index 22e9036..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F01.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F01.png
deleted file mode 100644
index d70c396..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F02.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F02.png
deleted file mode 100644
index 5532eeb..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F03.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F03.png
deleted file mode 100644
index aab4b91..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F04.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F04.png
deleted file mode 100644
index 0f1f9d3..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_F05.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_F05.png
deleted file mode 100644
index e4f2039..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_F05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G00.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G00.png
deleted file mode 100644
index 86be5df..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G01.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G01.png
deleted file mode 100644
index 1350bd0..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G02.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G02.png
deleted file mode 100644
index 4dcce18..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G03.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G03.png
deleted file mode 100644
index 201aa10..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G04.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G04.png
deleted file mode 100644
index 2dcc968..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Plants/Fetus_Plant_G05.png b/1.6/Textures/Fetus/Plants/Fetus_Plant_G05.png
deleted file mode 100644
index c4286b4..0000000
Binary files a/1.6/Textures/Fetus/Plants/Fetus_Plant_G05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate00.png b/1.6/Textures/Fetus/Primate/Fetus_Primate00.png
deleted file mode 100644
index 843b61f..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate01.png b/1.6/Textures/Fetus/Primate/Fetus_Primate01.png
deleted file mode 100644
index e2974ad..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate02.png b/1.6/Textures/Fetus/Primate/Fetus_Primate02.png
deleted file mode 100644
index e2c5295..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate03.png b/1.6/Textures/Fetus/Primate/Fetus_Primate03.png
deleted file mode 100644
index d8d78d5..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate04.png b/1.6/Textures/Fetus/Primate/Fetus_Primate04.png
deleted file mode 100644
index e87e09b..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Primate/Fetus_Primate05.png b/1.6/Textures/Fetus/Primate/Fetus_Primate05.png
deleted file mode 100644
index fcb6b8b..0000000
Binary files a/1.6/Textures/Fetus/Primate/Fetus_Primate05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile00.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile00.png
deleted file mode 100644
index f46a6b4..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile01.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile01.png
deleted file mode 100644
index 620ecc0..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile02.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile02.png
deleted file mode 100644
index 1e24ea2..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile03.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile03.png
deleted file mode 100644
index 1dc1dee..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile04.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile04.png
deleted file mode 100644
index 42df9bf..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile05.png b/1.6/Textures/Fetus/Reptiles/Fetus_Reptile05.png
deleted file mode 100644
index 2c5827f..0000000
Binary files a/1.6/Textures/Fetus/Reptiles/Fetus_Reptile05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros00.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros00.png
deleted file mode 100644
index 762788e..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros01.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros01.png
deleted file mode 100644
index bc6164f..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros02.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros02.png
deleted file mode 100644
index 9db4a3d..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros03.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros03.png
deleted file mode 100644
index 3d89f12..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros04.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros04.png
deleted file mode 100644
index 8fcbfaa..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros05.png b/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros05.png
deleted file mode 100644
index 904eb4b..0000000
Binary files a/1.6/Textures/Fetus/Rhinoceroses/Fetus_Rhinoceros05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent00.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent00.png
deleted file mode 100644
index 919de6c..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent01.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent01.png
deleted file mode 100644
index bd28845..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent02.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent02.png
deleted file mode 100644
index a2f43eb..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent03.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent03.png
deleted file mode 100644
index e92e044..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent04.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent04.png
deleted file mode 100644
index f249348..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Rodents/Fetus_Rodent05.png b/1.6/Textures/Fetus/Rodents/Fetus_Rodent05.png
deleted file mode 100644
index 0301628..0000000
Binary files a/1.6/Textures/Fetus/Rodents/Fetus_Rodent05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Slime_Abomi02.png b/1.6/Textures/Fetus/Slime_Abomi02.png
deleted file mode 100644
index ebc1722..0000000
Binary files a/1.6/Textures/Fetus/Slime_Abomi02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake00.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake00.png
deleted file mode 100644
index ef39c1c..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake01.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake01.png
deleted file mode 100644
index 39c82ea..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake02.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake02.png
deleted file mode 100644
index c9d2661..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake03.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake03.png
deleted file mode 100644
index 3d508c8..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake04.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake04.png
deleted file mode 100644
index 38d21f0..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Snakes/Fetus_Snake05.png b/1.6/Textures/Fetus/Snakes/Fetus_Snake05.png
deleted file mode 100644
index adbe992..0000000
Binary files a/1.6/Textures/Fetus/Snakes/Fetus_Snake05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo00.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo00.png
deleted file mode 100644
index 74bd164..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo01.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo01.png
deleted file mode 100644
index 864a2fb..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo02.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo02.png
deleted file mode 100644
index 0add0b4..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo03.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo03.png
deleted file mode 100644
index 7cd26b2..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo04.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo04.png
deleted file mode 100644
index 0b79b69..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo05.png b/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo05.png
deleted file mode 100644
index 2d3770b..0000000
Binary files a/1.6/Textures/Fetus/Thrumbos/Fetus_Thrumbo05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid00.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid00.png
deleted file mode 100644
index 0c9e061..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid01.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid01.png
deleted file mode 100644
index 0b8ffe8..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid02.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid02.png
deleted file mode 100644
index 3d1460e..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid03.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid03.png
deleted file mode 100644
index d8db475..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid04.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid04.png
deleted file mode 100644
index a479abe..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid05.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid05.png
deleted file mode 100644
index a2fbedb..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/Ursids/Fetus_Ursid05_ALT.png b/1.6/Textures/Fetus/Ursids/Fetus_Ursid05_ALT.png
deleted file mode 100644
index 9e15468..0000000
Binary files a/1.6/Textures/Fetus/Ursids/Fetus_Ursid05_ALT.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/00.png b/1.6/Textures/Fetus/~Dev/00.png
deleted file mode 100644
index 4fa4235..0000000
Binary files a/1.6/Textures/Fetus/~Dev/00.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/01.png b/1.6/Textures/Fetus/~Dev/01.png
deleted file mode 100644
index 36f6a9e..0000000
Binary files a/1.6/Textures/Fetus/~Dev/01.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/02.png b/1.6/Textures/Fetus/~Dev/02.png
deleted file mode 100644
index 6c7c436..0000000
Binary files a/1.6/Textures/Fetus/~Dev/02.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/03.png b/1.6/Textures/Fetus/~Dev/03.png
deleted file mode 100644
index aaf4b75..0000000
Binary files a/1.6/Textures/Fetus/~Dev/03.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/04.png b/1.6/Textures/Fetus/~Dev/04.png
deleted file mode 100644
index 6011650..0000000
Binary files a/1.6/Textures/Fetus/~Dev/04.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/05.png b/1.6/Textures/Fetus/~Dev/05.png
deleted file mode 100644
index d799f8b..0000000
Binary files a/1.6/Textures/Fetus/~Dev/05.png and /dev/null differ
diff --git a/1.6/Textures/Fetus/~Dev/~00.png b/1.6/Textures/Fetus/~Dev/~00.png
deleted file mode 100644
index 492db0b..0000000
Binary files a/1.6/Textures/Fetus/~Dev/~00.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal00.png b/1.6/Textures/Genitals/Anal00.png
deleted file mode 100644
index 56a35c6..0000000
Binary files a/1.6/Textures/Genitals/Anal00.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal01.png b/1.6/Textures/Genitals/Anal01.png
deleted file mode 100644
index 0d7e6fe..0000000
Binary files a/1.6/Textures/Genitals/Anal01.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal02.png b/1.6/Textures/Genitals/Anal02.png
deleted file mode 100644
index e6ccd30..0000000
Binary files a/1.6/Textures/Genitals/Anal02.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal03.png b/1.6/Textures/Genitals/Anal03.png
deleted file mode 100644
index 24230a2..0000000
Binary files a/1.6/Textures/Genitals/Anal03.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal04.png b/1.6/Textures/Genitals/Anal04.png
deleted file mode 100644
index d4a601e..0000000
Binary files a/1.6/Textures/Genitals/Anal04.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Anal05.png b/1.6/Textures/Genitals/Anal05.png
deleted file mode 100644
index fcf61a1..0000000
Binary files a/1.6/Textures/Genitals/Anal05.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal00.png b/1.6/Textures/Genitals/BionicAnal00.png
deleted file mode 100644
index 4bf820a..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal00.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal01.png b/1.6/Textures/Genitals/BionicAnal01.png
deleted file mode 100644
index 056e118..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal01.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal02.png b/1.6/Textures/Genitals/BionicAnal02.png
deleted file mode 100644
index 55f158f..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal02.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal03.png b/1.6/Textures/Genitals/BionicAnal03.png
deleted file mode 100644
index 0d499db..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal03.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal04.png b/1.6/Textures/Genitals/BionicAnal04.png
deleted file mode 100644
index 123ac48..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal04.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicAnal05.png b/1.6/Textures/Genitals/BionicAnal05.png
deleted file mode 100644
index d3d7282..0000000
Binary files a/1.6/Textures/Genitals/BionicAnal05.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina00.png b/1.6/Textures/Genitals/BionicVagina00.png
deleted file mode 100644
index ba2f7ef..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina00.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina01.png b/1.6/Textures/Genitals/BionicVagina01.png
deleted file mode 100644
index 1d0fa81..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina01.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina02.png b/1.6/Textures/Genitals/BionicVagina02.png
deleted file mode 100644
index 79513d0..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina02.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina03.png b/1.6/Textures/Genitals/BionicVagina03.png
deleted file mode 100644
index 02b9cd7..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina03.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina04.png b/1.6/Textures/Genitals/BionicVagina04.png
deleted file mode 100644
index 4c55740..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina04.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina05.png b/1.6/Textures/Genitals/BionicVagina05.png
deleted file mode 100644
index 63e8e69..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina05.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina06.png b/1.6/Textures/Genitals/BionicVagina06.png
deleted file mode 100644
index ace296e..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina06.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina07.png b/1.6/Textures/Genitals/BionicVagina07.png
deleted file mode 100644
index 8626639..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina07.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina08.png b/1.6/Textures/Genitals/BionicVagina08.png
deleted file mode 100644
index fc1f753..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina08.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina09.png b/1.6/Textures/Genitals/BionicVagina09.png
deleted file mode 100644
index 88e8b4d..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina09.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina10.png b/1.6/Textures/Genitals/BionicVagina10.png
deleted file mode 100644
index 528b599..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina10.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/BionicVagina11.png b/1.6/Textures/Genitals/BionicVagina11.png
deleted file mode 100644
index ecd46bf..0000000
Binary files a/1.6/Textures/Genitals/BionicVagina11.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Genitals_Old.zip b/1.6/Textures/Genitals/Genitals_Old.zip
deleted file mode 100644
index bda9dd3..0000000
Binary files a/1.6/Textures/Genitals/Genitals_Old.zip and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina00.png b/1.6/Textures/Genitals/Vagina00.png
deleted file mode 100644
index cb44e12..0000000
Binary files a/1.6/Textures/Genitals/Vagina00.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina01.png b/1.6/Textures/Genitals/Vagina01.png
deleted file mode 100644
index ca2f66e..0000000
Binary files a/1.6/Textures/Genitals/Vagina01.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina02.png b/1.6/Textures/Genitals/Vagina02.png
deleted file mode 100644
index bbeb801..0000000
Binary files a/1.6/Textures/Genitals/Vagina02.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina03.png b/1.6/Textures/Genitals/Vagina03.png
deleted file mode 100644
index ded7dc7..0000000
Binary files a/1.6/Textures/Genitals/Vagina03.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina04.png b/1.6/Textures/Genitals/Vagina04.png
deleted file mode 100644
index 741d8d1..0000000
Binary files a/1.6/Textures/Genitals/Vagina04.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina05.png b/1.6/Textures/Genitals/Vagina05.png
deleted file mode 100644
index 7488b12..0000000
Binary files a/1.6/Textures/Genitals/Vagina05.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina06.png b/1.6/Textures/Genitals/Vagina06.png
deleted file mode 100644
index 619d0ec..0000000
Binary files a/1.6/Textures/Genitals/Vagina06.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina07.png b/1.6/Textures/Genitals/Vagina07.png
deleted file mode 100644
index 6a3fcaa..0000000
Binary files a/1.6/Textures/Genitals/Vagina07.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina08.png b/1.6/Textures/Genitals/Vagina08.png
deleted file mode 100644
index 7e80d92..0000000
Binary files a/1.6/Textures/Genitals/Vagina08.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina09.png b/1.6/Textures/Genitals/Vagina09.png
deleted file mode 100644
index 64e778a..0000000
Binary files a/1.6/Textures/Genitals/Vagina09.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina10.png b/1.6/Textures/Genitals/Vagina10.png
deleted file mode 100644
index 6c738a8..0000000
Binary files a/1.6/Textures/Genitals/Vagina10.png and /dev/null differ
diff --git a/1.6/Textures/Genitals/Vagina11.png b/1.6/Textures/Genitals/Vagina11.png
deleted file mode 100644
index 5fa6410..0000000
Binary files a/1.6/Textures/Genitals/Vagina11.png and /dev/null differ
diff --git a/1.6/Textures/Milk/Milkbottle_Large.png b/1.6/Textures/Milk/Milkbottle_Large.png
deleted file mode 100644
index e84f80a..0000000
Binary files a/1.6/Textures/Milk/Milkbottle_Large.png and /dev/null differ
diff --git a/1.6/Textures/Milk/Milkbottle_Medium.png b/1.6/Textures/Milk/Milkbottle_Medium.png
deleted file mode 100644
index 133b635..0000000
Binary files a/1.6/Textures/Milk/Milkbottle_Medium.png and /dev/null differ
diff --git a/1.6/Textures/Milk/Milkbottle_Small.png b/1.6/Textures/Milk/Milkbottle_Small.png
deleted file mode 100644
index 352428c..0000000
Binary files a/1.6/Textures/Milk/Milkbottle_Small.png and /dev/null differ
diff --git a/1.6/Textures/Ovaries/Ovary_00.png b/1.6/Textures/Ovaries/Ovary_00.png
deleted file mode 100644
index 4f939ed..0000000
Binary files a/1.6/Textures/Ovaries/Ovary_00.png and /dev/null differ
diff --git a/1.6/Textures/Ovaries/Ovary_01.png b/1.6/Textures/Ovaries/Ovary_01.png
deleted file mode 100644
index 6853246..0000000
Binary files a/1.6/Textures/Ovaries/Ovary_01.png and /dev/null differ
diff --git a/1.6/Textures/Ovaries/Ovary_02.png b/1.6/Textures/Ovaries/Ovary_02.png
deleted file mode 100644
index 423223d..0000000
Binary files a/1.6/Textures/Ovaries/Ovary_02.png and /dev/null differ
diff --git a/1.6/Textures/Textures_old.7z b/1.6/Textures/Textures_old.7z
deleted file mode 100644
index a967dfb..0000000
Binary files a/1.6/Textures/Textures_old.7z and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_a.png b/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_a.png
deleted file mode 100644
index 1984d94..0000000
Binary files a/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_a.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_b.png b/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_b.png
deleted file mode 100644
index 6a22bf4..0000000
Binary files a/1.6/Textures/Things/Item/Cyclosporine/Cyclosporine_b.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/ORPill/ORPill_a.png b/1.6/Textures/Things/Item/ORPill/ORPill_a.png
deleted file mode 100644
index 641fa33..0000000
Binary files a/1.6/Textures/Things/Item/ORPill/ORPill_a.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/ORPill/ORPill_b.png b/1.6/Textures/Things/Item/ORPill/ORPill_b.png
deleted file mode 100644
index 2c9261f..0000000
Binary files a/1.6/Textures/Things/Item/ORPill/ORPill_b.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Pad.png b/1.6/Textures/Things/Item/Pad.png
deleted file mode 100644
index 5cc5bb6..0000000
Binary files a/1.6/Textures/Things/Item/Pad.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/PainReliever/PainReliever_a.png b/1.6/Textures/Things/Item/PainReliever/PainReliever_a.png
deleted file mode 100644
index d9f48a9..0000000
Binary files a/1.6/Textures/Things/Item/PainReliever/PainReliever_a.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/PainReliever/PainReliever_b.png b/1.6/Textures/Things/Item/PainReliever/PainReliever_b.png
deleted file mode 100644
index c1fedaa..0000000
Binary files a/1.6/Textures/Things/Item/PainReliever/PainReliever_b.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/SIA/SIA_a.png b/1.6/Textures/Things/Item/SIA/SIA_a.png
deleted file mode 100644
index 3cb46be..0000000
Binary files a/1.6/Textures/Things/Item/SIA/SIA_a.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/SIA/SIA_b.png b/1.6/Textures/Things/Item/SIA/SIA_b.png
deleted file mode 100644
index 46d30ed..0000000
Binary files a/1.6/Textures/Things/Item/SIA/SIA_b.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Tampon.png b/1.6/Textures/Things/Item/Tampon.png
deleted file mode 100644
index fadac31..0000000
Binary files a/1.6/Textures/Things/Item/Tampon.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Tampon/Tampon_a.png b/1.6/Textures/Things/Item/Tampon/Tampon_a.png
deleted file mode 100644
index fadac31..0000000
Binary files a/1.6/Textures/Things/Item/Tampon/Tampon_a.png and /dev/null differ
diff --git a/1.6/Textures/Things/Item/Tampon/Tampon_b.png b/1.6/Textures/Things/Item/Tampon/Tampon_b.png
deleted file mode 100644
index fdb575d..0000000
Binary files a/1.6/Textures/Things/Item/Tampon/Tampon_b.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/DoubleEggLifetime.png b/1.6/Textures/UI/Genes/DoubleEggLifetime.png
deleted file mode 100644
index 4fce3ef..0000000
Binary files a/1.6/Textures/UI/Genes/DoubleEggLifetime.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/DoubleOvulation.png b/1.6/Textures/UI/Genes/DoubleOvulation.png
deleted file mode 100644
index 114aff7..0000000
Binary files a/1.6/Textures/UI/Genes/DoubleOvulation.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/Files.zip b/1.6/Textures/UI/Genes/Files.zip
deleted file mode 100644
index b569056..0000000
Binary files a/1.6/Textures/UI/Genes/Files.zip and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/FullEstrus.png b/1.6/Textures/UI/Genes/FullEstrus.png
deleted file mode 100644
index 1126439..0000000
Binary files a/1.6/Textures/UI/Genes/FullEstrus.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/NeverEstrus.png b/1.6/Textures/UI/Genes/NeverEstrus.png
deleted file mode 100644
index 0b093e7..0000000
Binary files a/1.6/Textures/UI/Genes/NeverEstrus.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/NoBleeding.png b/1.6/Textures/UI/Genes/NoBleeding.png
deleted file mode 100644
index aa845f6..0000000
Binary files a/1.6/Textures/UI/Genes/NoBleeding.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/Placeholder.png b/1.6/Textures/UI/Genes/Placeholder.png
deleted file mode 100644
index 9927017..0000000
Binary files a/1.6/Textures/UI/Genes/Placeholder.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/QuadEggLifetime.png b/1.6/Textures/UI/Genes/QuadEggLifetime.png
deleted file mode 100644
index 872740e..0000000
Binary files a/1.6/Textures/UI/Genes/QuadEggLifetime.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/QuadOvulation.png b/1.6/Textures/UI/Genes/QuadOvulation.png
deleted file mode 100644
index fb8bb04..0000000
Binary files a/1.6/Textures/UI/Genes/QuadOvulation.png and /dev/null differ
diff --git a/1.6/Textures/UI/Genes/ShortEggLifetime.png b/1.6/Textures/UI/Genes/ShortEggLifetime.png
deleted file mode 100644
index 375a8c3..0000000
Binary files a/1.6/Textures/UI/Genes/ShortEggLifetime.png and /dev/null differ
diff --git a/1.6/Textures/UI/Icon/EggRegeneration.png b/1.6/Textures/UI/Icon/EggRegeneration.png
deleted file mode 100644
index af60909..0000000
Binary files a/1.6/Textures/UI/Icon/EggRegeneration.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Empty.png b/1.6/Textures/Womb/Empty.png
deleted file mode 100644
index 4d6978c..0000000
Binary files a/1.6/Textures/Womb/Empty.png and /dev/null differ
diff --git a/1.6/Textures/Womb/ImplantedEgg.png b/1.6/Textures/Womb/ImplantedEgg.png
deleted file mode 100644
index 8fbb580..0000000
Binary files a/1.6/Textures/Womb/ImplantedEgg.png and /dev/null differ
diff --git a/1.6/Textures/Womb/ImplantedEgg_Multiplet_2.png b/1.6/Textures/Womb/ImplantedEgg_Multiplet_2.png
deleted file mode 100644
index ead613b..0000000
Binary files a/1.6/Textures/Womb/ImplantedEgg_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Womb/ImplantedEgg_triplet_3.png b/1.6/Textures/Womb/ImplantedEgg_triplet_3.png
deleted file mode 100644
index f419977..0000000
Binary files a/1.6/Textures/Womb/ImplantedEgg_triplet_3.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L00.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L00.png
deleted file mode 100644
index 3ee5737..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L00.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L01.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L01.png
deleted file mode 100644
index 95cd300..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L01.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L02.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L02.png
deleted file mode 100644
index e104e56..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_L02.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S00.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S00.png
deleted file mode 100644
index baa0fb7..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S00.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S01.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S01.png
deleted file mode 100644
index e636380..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S01.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S02.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S02.png
deleted file mode 100644
index 2cdb78b..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S02.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S03.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S03.png
deleted file mode 100644
index 5d0cb9c..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S03.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S04.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S04.png
deleted file mode 100644
index 4a6eb29..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_S04.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_00.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_00.png
deleted file mode 100644
index a7b547a..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_00.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_01.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_01.png
deleted file mode 100644
index caf66ec..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_01.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_02.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_02.png
deleted file mode 100644
index c24716a..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_02.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_03.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_03.png
deleted file mode 100644
index 3abc96e..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_03.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_04.png b/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_04.png
deleted file mode 100644
index 055c699..0000000
Binary files a/1.6/Textures/Womb/Insect_Egged/Womb_Egged_Stuffed_04.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb.png b/1.6/Textures/Womb/Womb.png
deleted file mode 100644
index 4fa4235..0000000
Binary files a/1.6/Textures/Womb/Womb.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb.zip b/1.6/Textures/Womb/Womb.zip
deleted file mode 100644
index 475b690..0000000
Binary files a/1.6/Textures/Womb/Womb.zip and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Bleeding.png b/1.6/Textures/Womb/Womb_Bleeding.png
deleted file mode 100644
index 6669b0e..0000000
Binary files a/1.6/Textures/Womb/Womb_Bleeding.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_00.png b/1.6/Textures/Womb/Womb_Cum_00.png
deleted file mode 100644
index ec656b9..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_00.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_01.png b/1.6/Textures/Womb/Womb_Cum_01.png
deleted file mode 100644
index 0c07275..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_01.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_02.png b/1.6/Textures/Womb/Womb_Cum_02.png
deleted file mode 100644
index 74d73c7..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_02.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_03.png b/1.6/Textures/Womb/Womb_Cum_03.png
deleted file mode 100644
index b7dd6b5..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_03.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_04.png b/1.6/Textures/Womb/Womb_Cum_04.png
deleted file mode 100644
index 530401e..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_04.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_05.png b/1.6/Textures/Womb/Womb_Cum_05.png
deleted file mode 100644
index 610220b..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_05.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_06.png b/1.6/Textures/Womb/Womb_Cum_06.png
deleted file mode 100644
index ed1d9be..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_06.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_07.png b/1.6/Textures/Womb/Womb_Cum_07.png
deleted file mode 100644
index 05f1d6e..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_07.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_08.png b/1.6/Textures/Womb/Womb_Cum_08.png
deleted file mode 100644
index 790c90e..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_08.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_09.png b/1.6/Textures/Womb/Womb_Cum_09.png
deleted file mode 100644
index 79535b2..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_09.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_10.png b/1.6/Textures/Womb/Womb_Cum_10.png
deleted file mode 100644
index f4b5dad..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_10.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_11.png b/1.6/Textures/Womb/Womb_Cum_11.png
deleted file mode 100644
index c338860..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_11.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_12.png b/1.6/Textures/Womb/Womb_Cum_12.png
deleted file mode 100644
index f7a2d46..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_12.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_13.png b/1.6/Textures/Womb/Womb_Cum_13.png
deleted file mode 100644
index 3e21af2..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_13.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_14.png b/1.6/Textures/Womb/Womb_Cum_14.png
deleted file mode 100644
index 5afc08b..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_14.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_15.png b/1.6/Textures/Womb/Womb_Cum_15.png
deleted file mode 100644
index 43092eb..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_15.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_16.png b/1.6/Textures/Womb/Womb_Cum_16.png
deleted file mode 100644
index 74cfdf7..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_16.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Cum_17.png b/1.6/Textures/Womb/Womb_Cum_17.png
deleted file mode 100644
index bf62126..0000000
Binary files a/1.6/Textures/Womb/Womb_Cum_17.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Implanted.png b/1.6/Textures/Womb/Womb_Implanted.png
deleted file mode 100644
index e43e714..0000000
Binary files a/1.6/Textures/Womb/Womb_Implanted.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Implanted_Multiplet_2.png b/1.6/Textures/Womb/Womb_Implanted_Multiplet_2.png
deleted file mode 100644
index 79e712a..0000000
Binary files a/1.6/Textures/Womb/Womb_Implanted_Multiplet_2.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Implanted_Multiplet_3.png b/1.6/Textures/Womb/Womb_Implanted_Multiplet_3.png
deleted file mode 100644
index 95398da..0000000
Binary files a/1.6/Textures/Womb/Womb_Implanted_Multiplet_3.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Implanted_Multiplet_4.png b/1.6/Textures/Womb/Womb_Implanted_Multiplet_4.png
deleted file mode 100644
index 4b4e3d5..0000000
Binary files a/1.6/Textures/Womb/Womb_Implanted_Multiplet_4.png and /dev/null differ
diff --git a/1.6/Textures/Womb/Womb_Implanted_Multiplet_5.png b/1.6/Textures/Womb/Womb_Implanted_Multiplet_5.png
deleted file mode 100644
index d2be223..0000000
Binary files a/1.6/Textures/Womb/Womb_Implanted_Multiplet_5.png and /dev/null differ
diff --git a/1.6/Vanilla Expanded Core/Assemblies/VECore.dll b/1.6/Vanilla Expanded Core/Assemblies/VECore.dll
deleted file mode 100644
index f47a501..0000000
Binary files a/1.6/Vanilla Expanded Core/Assemblies/VECore.dll and /dev/null differ
diff --git a/1.6/Vanilla Expanded Core/Source/VECore/Harmony.cs b/1.6/Vanilla Expanded Core/Source/VECore/Harmony.cs
deleted file mode 100644
index 094fdc5..0000000
--- a/1.6/Vanilla Expanded Core/Source/VECore/Harmony.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using HarmonyLib;
-using System.Reflection;
-using Verse;
-
-namespace RJW_Menstruation_VECore
-{
- [StaticConstructorOnStartup]
- internal static class First
- {
- static First()
- {
- Harmony har = new Harmony("RJW_Menstruation.VECore");
- har.PatchAll(Assembly.GetExecutingAssembly());
- }
- }
-}
diff --git a/1.6/Vanilla Expanded Core/Source/VECore/VECompatibility.cs b/1.6/Vanilla Expanded Core/Source/VECore/VECompatibility.cs
deleted file mode 100644
index 0cd4f9e..0000000
--- a/1.6/Vanilla Expanded Core/Source/VECore/VECompatibility.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using HarmonyLib;
-using RJW_Menstruation;
-using System.Linq;
-using VEF.Genes;
-using Verse;
-
-namespace RJW_Menstruation_VECore
-{
- [HarmonyPatch(typeof(VECompatibility), nameof(VECompatibility.VEGeneBloodDef))]
- public static class VEGeneBloodDef_Patch
- {
- static void PostFix(ThingDef __result, Pawn pawn)
- {
- if (!ModsConfig.BiotechActive || pawn?.genes == null) return;
- foreach(Gene gene in pawn.genes.GenesListForReading.Where(gene => gene.Active))
- {
- __result = gene.def.GetModExtension()?.customBloodThingDef;
- if (__result != null) return;
- }
- }
- }
-}
diff --git a/1.6/Vanilla Expanded Core/Source/VECore/VECore.csproj b/1.6/Vanilla Expanded Core/Source/VECore/VECore.csproj
deleted file mode 100644
index b582d79..0000000
--- a/1.6/Vanilla Expanded Core/Source/VECore/VECore.csproj
+++ /dev/null
@@ -1,73 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}
- Library
- Properties
- VECore
- VECore
- v4.8
- 512
- true
-
-
- true
- full
- false
- ..\..\assemblies\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- ..\..\Assemblies\
- TRACE
- prompt
- 4
-
-
-
- ..\..\..\source\RJW_Menstruation\packages\Lib.Harmony.2.3.6\lib\net48\0Harmony.dll
- False
-
-
- ..\..\..\..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
- False
-
-
-
-
-
-
-
-
-
-
- ..\..\..\..\..\..\..\..\workshop\content\294100\2023507013\1.6\Assemblies\VEF.dll
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {eed2f3b9-8c20-4194-919e-8d151b29f70b}
- RJW_Menstruation
- False
-
-
-
-
\ No newline at end of file
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation.sln b/1.6/source/RJW_Menstruation/RJW_Menstruation.sln
deleted file mode 100644
index e553ab3..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation.sln
+++ /dev/null
@@ -1,49 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.3.32929.385
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RJW_Menstruation", "RJW_Menstruation\RJW_Menstruation.csproj", "{EED2F3B9-8C20-4194-919E-8D151B29F70B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Humanoid Alien Races", "..\..\Humanoid Alien Races\source\Humanoid Alien Races\Humanoid Alien Races.csproj", "{F9DFB070-9C28-43C5-8226-F4C0B4047CC5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECore", "..\..\Vanilla Expanded Core\source\VECore\VECore.csproj", "{95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Animal Genetics", "..\..\Animal Genetics\source\Animal Genetics\Animal Genetics.csproj", "{07A63534-EF4E-489D-8EA9-84B24E1BA944}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Quirks", "..\..\Quirks\source\Quirks\Quirks.csproj", "{D9363A87-BBC4-456D-9880-07414944C02A}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EED2F3B9-8C20-4194-919E-8D151B29F70B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EED2F3B9-8C20-4194-919E-8D151B29F70B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EED2F3B9-8C20-4194-919E-8D151B29F70B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EED2F3B9-8C20-4194-919E-8D151B29F70B}.Release|Any CPU.Build.0 = Release|Any CPU
- {F9DFB070-9C28-43C5-8226-F4C0B4047CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F9DFB070-9C28-43C5-8226-F4C0B4047CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F9DFB070-9C28-43C5-8226-F4C0B4047CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F9DFB070-9C28-43C5-8226-F4C0B4047CC5}.Release|Any CPU.Build.0 = Release|Any CPU
- {95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95FFDB37-6D81-47CC-8F21-2EAD54C0FD2D}.Release|Any CPU.Build.0 = Release|Any CPU
- {07A63534-EF4E-489D-8EA9-84B24E1BA944}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {07A63534-EF4E-489D-8EA9-84B24E1BA944}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {07A63534-EF4E-489D-8EA9-84B24E1BA944}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {07A63534-EF4E-489D-8EA9-84B24E1BA944}.Release|Any CPU.Build.0 = Release|Any CPU
- {D9363A87-BBC4-456D-9880-07414944C02A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D9363A87-BBC4-456D-9880-07414944C02A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D9363A87-BBC4-456D-9880-07414944C02A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D9363A87-BBC4-456D-9880-07414944C02A}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {0E4B1D09-2A81-4440-AC1E-32ACCECBEE0B}
- EndGlobalSection
-EndGlobal
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/App.config b/1.6/source/RJW_Menstruation/RJW_Menstruation/App.config
deleted file mode 100644
index 4bfa005..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs
deleted file mode 100644
index b7656c8..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/CompBiosculpterPod_EggRestorationCycle.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using RimWorld;
-using System.Linq;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class CompProperties_BiosculpterPod_EggRestorationCycle : CompProperties_BiosculpterPod_BaseCycle
- {
- public CompProperties_BiosculpterPod_EggRestorationCycle()
- {
- compClass = typeof(CompBiosculpterPod_EggRestorationCycle);
- }
-
- public float yearsToRestore;
- }
-
- public class CompBiosculpterPod_EggRestorationCycle : CompBiosculpterPod_Cycle
- {
-
- public override void CycleCompleted(Pawn occupant)
- {
- foreach (HediffComp_Menstruation comp in occupant.GetMenstruationComps())
- comp.RestoreEggs(((CompProperties_BiosculpterPod_EggRestorationCycle)Props).yearsToRestore);
-
- Messages.Message(Translations.EggRestorationCompleted(occupant.Named("PAWN")), occupant, MessageTypeDefOf.PositiveEvent);
- if (occupant.GetMenstruationComps().Any())
- occupant.needs.mood?.thoughts?.memories?.TryGainMemoryFast(VariousDefOf.EggRestorationReceived);
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/AnimalGeneticsCompatibility.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/AnimalGeneticsCompatibility.cs
deleted file mode 100644
index d71f4b5..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/AnimalGeneticsCompatibility.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Runtime.CompilerServices;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public static class AnimalGeneticsCompatibility
- {
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void PreConception(Pawn mother, Pawn father)
- {
- return;
- }
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void PostConception()
- {
- return;
- }
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void CopyGenes(Pawn baby, Pawn original)
- {
- return;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/HARCompatibility.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/HARCompatibility.cs
deleted file mode 100644
index d87aac7..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/HARCompatibility.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using System.Runtime.CompilerServices;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public static class HARCompatibility
- {
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static bool IsHAR(this Pawn pawn)
- {
- return false;
- }
-
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static void CopyHARProperties(Pawn baby, Pawn original)
- {
- return;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/VECompatibility.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/VECompatibility.cs
deleted file mode 100644
index 52c28f1..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Compatibility/VECompatibility.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.Runtime.CompilerServices;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public static class VECompatibility
- {
- [MethodImpl(MethodImplOptions.NoInlining)]
- public static ThingDef VEGeneBloodDef(Pawn pawn)
- {
- return null;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs
deleted file mode 100644
index cb333d9..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs
+++ /dev/null
@@ -1,551 +0,0 @@
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class Configurations : ModSettings
- {
- public const float ImplantationChanceDefault = 0.65f;
- public const int ImplantationChanceAdjustDefault = 65;
- public const float FertilizeChanceDefault = 0.15f;
- public const int FertilizeChanceAdjustDefault = 150;
- public const float CumDecayRatioDefault = 0.15f;
- public const int CumDecayRatioAdjustDefault = 150;
- public const float CumFertilityDecayRatioDefault = 0.05f;
- public const int CumFertilityDecayRatioAdjustDefault = 50;
- public const int CycleAccelerationDefault = 6;
- public const int ColonistTickIntervalDefault = GenDate.TicksPerHour;
- public const int NonColonistTickIntervalDefault = GenDate.TicksPerHour;
- public const int AnimalTickIntervalDefault = GenDate.TicksPerHour;
- public const int TickIntervalMinimum = GenTicks.TicksPerRealSecond / 3;
- public const int TickIntervalMaximum = 4 * GenDate.TicksPerHour;
- public const float EnzygoticTwinsChanceDefault = 0.002f;
- public const int EnzygoticTwinsChanceAdjustDefault = 2;
- public const int MaxEnzygoticTwinsDefault = 9;
- public const int BleedingAmountDefault = 50;
- public const float MaxBreastIncrementFactorDefault = 1.0f;
- public const float MaxBreastIncrementFactorMax = 2.5f;
- public const float MaxNippleIncrementFactorDefault = 1.0f;
- public const float MaxNippleIncrementFactorMax = 2.5f;
- public const float PermanentNippleChangeDefault = 0.1f;
- public const float PermanentNippleChangeMax = 0.25f;
- public const float EggLifespanMultiplierDefault = 1.0f;
- public const float VaginaMorphPowerDefault = 0.2f;
-
- public static DetailLevel infoDetail = DetailLevel.All;
-
- public static float ImplantationChance = ImplantationChanceDefault;
- public static int ImplantationChanceAdjust = ImplantationChanceAdjustDefault;
- public static float FertilizeChance = FertilizeChanceDefault;
- public static int FertilizeChanceAdjust = FertilizeChanceAdjustDefault;
- public static float CumDecayRatio = CumDecayRatioDefault;
- public static int CumDecayRatioAdjust = CumDecayRatioAdjustDefault;
- public static float CumFertilityDecayRatio = CumFertilityDecayRatioDefault;
- public static int CumFertilityDecayRatioAdjust = CumFertilityDecayRatioAdjustDefault;
- public static int CycleAcceleration = CycleAccelerationDefault;
- public static int ColonistTickInterval = ColonistTickIntervalDefault;
- public static int NonColonistTickInterval = NonColonistTickIntervalDefault;
- public static int AnimalTickInterval = AnimalTickIntervalDefault;
- public static bool EnableWombIcon = true;
- public static bool EnableDraftedIcon = true;
- public static bool ShowInfertileIcon = true;
- public static bool EnableAnimalCycle = false;
- public static bool DrawWombStatus = true;
- public static bool DrawVaginaStatus = true;
- public static bool DrawEggOverlay = true;
- public static bool Debug = false;
- public static bool EnableMenopause = true;
- public static bool EnablePheromones = true;
- public static float AnimalPheromoneEffect = 0.0f;
- public static DetailLevel InfoDetail => infoDetail;
- public static bool EstrusOverridesHookupSettings = false;
- public static float EstrusFuckabilityToHookup = RJWHookupSettings.MinimumFuckabilityToHookup;
- public static float EstrusAttractivenessToHookup = RJWHookupSettings.MinimumAttractivenessToHookup;
- public static int EstrusRelationshipToHookup = RJWHookupSettings.MinimumRelationshipToHookup;
- public static PregnancyType PregnancySource = PregnancyType.MultiplePregnancy;
- public static bool EnableBiotechTwins = false;
- public static bool EnableHeteroOvularTwins = true;
- public static bool EnableEnzygoticTwins = true;
- public static float EnzygoticTwinsChance = EnzygoticTwinsChanceDefault;
- public static int EnzygoticTwinsChanceAdjust = EnzygoticTwinsChanceAdjustDefault;
- public static int MaxEnzygoticTwins = MaxEnzygoticTwinsDefault;
- public static int BleedingAmount = BleedingAmountDefault;
- public static bool EnableButtonInHT = false;
- public static PawnFlags ShowFlag = PawnFlags.Colonist | PawnFlags.Prisoner;
- public static bool UseHybridExtention = true;
- public static bool AllowShrinkIcon = false;
- public static float EggLifespanMultiplier = EggLifespanMultiplierDefault;
- public static bool EnableBirthVaginaMorph = false;
- public static float VaginaMorphPower = VaginaMorphPowerDefault;
- public static float MaxBreastIncrementFactor = MaxBreastIncrementFactorDefault;
- public static float MaxNippleIncrementFactor = MaxNippleIncrementFactorDefault;
- public static float PermanentNippleChange = PermanentNippleChangeDefault;
- public static void SetToDefault()
- {
- ImplantationChanceAdjust = ImplantationChanceAdjustDefault;
- FertilizeChanceAdjust = FertilizeChanceAdjustDefault;
- CumDecayRatioAdjust = CumDecayRatioAdjustDefault;
- CumFertilityDecayRatioAdjust = CumFertilityDecayRatioAdjustDefault;
- EnableWombIcon = true;
- EnableDraftedIcon = true;
- ShowInfertileIcon = true;
- EnableAnimalCycle = false;
- EnableMenopause = true;
- EnablePheromones = true;
- AnimalPheromoneEffect = 0.0f;
- CycleAcceleration = CycleAccelerationDefault;
- ColonistTickInterval = ColonistTickIntervalDefault;
- NonColonistTickInterval = NonColonistTickIntervalDefault;
- AnimalTickInterval = AnimalTickIntervalDefault;
- EstrusOverridesHookupSettings = false;
- EstrusFuckabilityToHookup = RJWHookupSettings.MinimumFuckabilityToHookup;
- EstrusAttractivenessToHookup = RJWHookupSettings.MinimumAttractivenessToHookup;
- EstrusRelationshipToHookup = RJWHookupSettings.MinimumRelationshipToHookup;
- EnzygoticTwinsChanceAdjust = EnzygoticTwinsChanceAdjustDefault;
- EnableBiotechTwins = false;
- EnableEnzygoticTwins = true;
- EnableHeteroOvularTwins = true;
- PregnancySource = PregnancyType.MultiplePregnancy;
- MaxEnzygoticTwins = MaxEnzygoticTwinsDefault;
- BleedingAmount = BleedingAmountDefault;
- MaxBreastIncrementFactor = MaxBreastIncrementFactorDefault;
- MaxNippleIncrementFactor= MaxNippleIncrementFactorDefault;
- PermanentNippleChange = PermanentNippleChangeDefault;
- EggLifespanMultiplier = EggLifespanMultiplierDefault;
- VaginaMorphPower = VaginaMorphPowerDefault;
- }
-
-
- public static List HybridOverride = new List();
-
- public enum DetailLevel
- {
- All,
- OnReveal,
- HideFetusInfo,
- Hide
- }
-
- public static string LevelString(DetailLevel level)
- {
- switch (level)
- {
- case DetailLevel.All:
- return "All";
- case DetailLevel.OnReveal:
- return "On reveal";
- case DetailLevel.HideFetusInfo:
- return "Hide fetus info";
- case DetailLevel.Hide:
- return "Hide";
- default:
- return "";
- }
-
-
- }
- public static string HybridString(bool b)
- {
- if (b) return Translations.Option23_Label_1;
- else return Translations.Option23_Label_2;
- }
-
- public static bool IsOverrideExist(ThingDef def)
- {
- List removeList = new List();
- if (!HybridOverride.NullOrEmpty())
- foreach (HybridInformations o in HybridOverride)
- {
- if (o.IsNull) removeList.Add(o);
- if (o.DefName == def.defName) return true;
- }
- foreach (HybridInformations o in removeList)
- {
- HybridOverride.Remove(o);
- }
- return false;
- }
-
- [Flags]
- public enum PawnFlags
- {
- None = 0,
- Colonist = 1,
- Prisoner = 2,
- Ally = 4,
- Neutral = 8,
- Hostile = 16
- }
-
- public enum PregnancyType
- {
- BaseRJW,
- MultiplePregnancy,
- Biotech
- }
-
- public override void ExposeData()
- {
- Scribe_Values.Look(ref ImplantationChanceAdjust, "ImplantationChanceAdjust", ImplantationChanceAdjustDefault);
- Scribe_Values.Look(ref ImplantationChance, "ImplantationChance", ImplantationChanceDefault);
- Scribe_Values.Look(ref FertilizeChanceAdjust, "FertilizeChanceAdjust", FertilizeChanceAdjustDefault);
- Scribe_Values.Look(ref FertilizeChance, "FertilizeChance", FertilizeChanceDefault);
- Scribe_Values.Look(ref CumDecayRatioAdjust, "CumDecayRatioAdjust", CumDecayRatioAdjustDefault);
- Scribe_Values.Look(ref CumDecayRatio, "CumDecayRatio", CumDecayRatioDefault);
- Scribe_Values.Look(ref CumFertilityDecayRatioAdjust, "CumFertilityDecayRatioAdjust", CumFertilityDecayRatioAdjustDefault);
- Scribe_Values.Look(ref CumFertilityDecayRatio, "CumFertilityDecayRatio", CumFertilityDecayRatioDefault);
- Scribe_Values.Look(ref CycleAcceleration, "CycleAcceleration", CycleAccelerationDefault);
- Scribe_Values.Look(ref ColonistTickInterval, "ColonistTickInterval", ColonistTickIntervalDefault);
- Scribe_Values.Look(ref NonColonistTickInterval, "NonColonistTickInterval", NonColonistTickIntervalDefault);
- Scribe_Values.Look(ref AnimalTickInterval, "AnimalTickInterval", AnimalTickIntervalDefault);
- Scribe_Values.Look(ref EnableWombIcon, "EnableWombIcon", true);
- Scribe_Values.Look(ref EnableDraftedIcon, "EnableDraftedIcon", true);
- Scribe_Values.Look(ref ShowInfertileIcon, "ShowInfertileIcon", true);
- Scribe_Values.Look(ref EnableAnimalCycle, "EnableAnimalCycle", false);
- Scribe_Values.Look(ref DrawWombStatus, "DrawWombStatus", true);
- Scribe_Values.Look(ref DrawVaginaStatus, "DrawVaginaStatus", true);
- Scribe_Values.Look(ref DrawEggOverlay, "DrawEggOvray", true);
- Scribe_Values.Look(ref Debug, "Debug", false);
- Scribe_Values.Look(ref infoDetail, "InfoDetail", DetailLevel.All);
- Scribe_Values.Look(ref EnableMenopause, "EnableMenopause", true);
- Scribe_Values.Look(ref EnablePheromones, "EnablePheromones", true);
- Scribe_Values.Look(ref AnimalPheromoneEffect, "AnimalPheromoneEffect", 0.0f);
- Scribe_Values.Look(ref EstrusOverridesHookupSettings, "EstrusOverridesHookupSettings", false);
- Scribe_Values.Look(ref EstrusFuckabilityToHookup, "EstrusFuckabilityToHookup", EstrusFuckabilityToHookup, true);
- Scribe_Values.Look(ref EstrusAttractivenessToHookup, "EstrusAttractivenessToHookup", EstrusAttractivenessToHookup, true);
- Scribe_Values.Look(ref EstrusRelationshipToHookup, "EstrusRelationshipToHookup", EstrusRelationshipToHookup, true);
- Scribe_Values.Look(ref PregnancySource, "PregnancySource", PregnancyType.MultiplePregnancy);
- Scribe_Values.Look(ref EnableBiotechTwins, "EnableBiotechTwins", false);
- Scribe_Values.Look(ref EnableHeteroOvularTwins, "EnableHeteroOvularTwins", true);
- Scribe_Values.Look(ref EnableEnzygoticTwins, "EnableEnzygoticTwins", true);
- Scribe_Values.Look(ref EnzygoticTwinsChance, "EnzygoticTwinsChance", EnzygoticTwinsChanceDefault);
- Scribe_Values.Look(ref EnzygoticTwinsChanceAdjust, "EnzygoticTwinsChanceAdjust", EnzygoticTwinsChanceAdjustDefault);
- Scribe_Values.Look(ref MaxEnzygoticTwins, "MaxEnzygoticTwins", MaxEnzygoticTwinsDefault);
- Scribe_Values.Look(ref BleedingAmount, "BleedingAmount", BleedingAmountDefault);
- Scribe_Values.Look(ref EnableButtonInHT, "EnableButtonInHT", false);
- Scribe_Values.Look(ref ShowFlag, "ShowFlag", PawnFlags.Colonist | PawnFlags.Prisoner);
- Scribe_Values.Look(ref UseHybridExtention, "UseHybridExtention", true);
- Scribe_Values.Look(ref MaxBreastIncrementFactor, "MaxBreastIncrementFactor", MaxBreastIncrementFactorDefault);
- Scribe_Values.Look(ref MaxNippleIncrementFactor, "MaxNippleIncrementFactor", MaxNippleIncrementFactorDefault);
- Scribe_Values.Look(ref PermanentNippleChange, "PermanentNippleChange", PermanentNippleChangeDefault);
- Scribe_Values.Look(ref AllowShrinkIcon, "AllowShrinkIcon", false);
- Scribe_Values.Look(ref EggLifespanMultiplier, "EggLifespanMultiplier", EggLifespanMultiplierDefault);
- Scribe_Values.Look(ref EnableBirthVaginaMorph, "EnableBirthVaginaMorph", false);
- Scribe_Values.Look(ref VaginaMorphPower, "VaginaMorphPower", VaginaMorphPowerDefault);
- Scribe_Collections.Look(ref HybridOverride, saveDestroyedThings: true, label: "HybridOverride", lookMode: LookMode.Deep, ctorArgs: new object[0]);
- base.ExposeData();
- }
-
-
-
- }
-
-
- public class RJW_Menstruation : Mod
- {
-
- private static Vector2 scroll;
-
-
-
- public static float EstimatedBleedingAmount
- {
- get
- {
- int days = VariousDefOf.HumanVaginaCompProperties.bleedingIntervalDays;
- return days * 0.03f * Configurations.BleedingAmount * 6;
- }
- }
-
- public static float EstimatedBleedingAmountPerHour
- {
- get
- {
- return 0.03f * Configurations.BleedingAmount * Configurations.CycleAcceleration;
- }
- }
-
-
- public RJW_Menstruation(ModContentPack content) : base(content)
- {
- GetSettings();
- if (!ModsConfig.BiotechActive && Configurations.PregnancySource == Configurations.PregnancyType.Biotech)
- Configurations.PregnancySource = Configurations.PregnancyType.MultiplePregnancy;
- }
-
-
-
- public override string SettingsCategory()
- {
- return Translations.Mod_Title;
- }
-
- public override void DoSettingsWindowContents(Rect inRect)
- {
- Rect outRect = new Rect(0f, 30f, inRect.width, inRect.height - 30f);
- float mainRectHeight = 126f +
- (Configurations.EnableWombIcon || Configurations.EnableButtonInHT ? 430f : 0f) +
- (Configurations.EnableAnimalCycle ? 48f : 0f) +
- (Configurations.EnableAnimalCycle && Configurations.EnablePheromones ? 48f : 0f) +
- (Configurations.EstrusOverridesHookupSettings ? 144f : 0f) +
- (Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy ? (Configurations.EnableEnzygoticTwins ? 175f : 75f) : 0f) +
- (Configurations.PregnancySource == Configurations.PregnancyType.Biotech ? 75f : 0f) +
- (Configurations.PregnancySource == Configurations.PregnancyType.Biotech ? (Configurations.EnableBiotechTwins ? 175f : 75f) : 0f) +
- (Configurations.EnableBirthVaginaMorph ? 48f : 0f);
- Rect mainRect = new Rect(0f, 0f, inRect.width - 30f, Math.Max(inRect.height + mainRectHeight, 1f));
- int Adjust;
- Listing_Standard listmain = new Listing_Standard
- {
- maxOneColumn = true
- };
- Widgets.BeginScrollView(outRect, ref scroll, mainRect);
- listmain.Begin(mainRect);
- listmain.Gap(20f);
- Rect firstLine = listmain.GetRect(30f);
- firstLine.SplitVertically(firstLine.width / 3, out Rect leftCell, out Rect middleAndRightCells);
- Widgets.CheckboxLabeled(leftCell, Translations.Option1_Label_1, ref Configurations.EnableWombIcon, false, null, null, true);
- Widgets.CheckboxLabeled(middleAndRightCells.LeftHalf(), Translations.Option1_Label_2, ref Configurations.EnableButtonInHT, false, null, null, true);
- if (Configurations.EnableWombIcon || Configurations.EnableButtonInHT)
- {
- Listing_Standard wombsection = listmain.BeginSection(380);
- 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.Option29_Label, ref Configurations.AllowShrinkIcon, Translations.Option29_Desc);
- wombsection.CheckboxLabeled(Translations.Option_EnableDraftedIcon_Label, ref Configurations.EnableDraftedIcon, Translations.Option_EnableDraftedIcon_Desc);
- wombsection.CheckboxLabeled(Translations.Option_ShowInfertileIcon_Label, ref Configurations.ShowInfertileIcon, Translations.Option_ShowInfertileIcon_Desc);
- if (wombsection.ButtonText(Translations.Option11_Label + ": " + Configurations.LevelString(Configurations.infoDetail)))
- {
- if (Configurations.infoDetail == Configurations.DetailLevel.Hide) Configurations.infoDetail = Configurations.DetailLevel.All;
- else Configurations.infoDetail++;
- }
- switch (Configurations.infoDetail)
- {
- case Configurations.DetailLevel.All:
- wombsection.Label(Translations.Option11_Desc_1);
- break;
- case Configurations.DetailLevel.OnReveal:
- wombsection.Label(Translations.Option11_Desc_2);
- break;
- case Configurations.DetailLevel.HideFetusInfo:
- wombsection.Label(Translations.Option11_Desc_3);
- break;
- case Configurations.DetailLevel.Hide:
- wombsection.Label(Translations.Option11_Desc_4);
- break;
- }
- wombsection.Label(Translations.Option21_Label + " " + Configurations.ShowFlag, -1, tipSignal: Translations.Option21_Desc);
- Rect flagrect = wombsection.GetRect(30f);
- Rect[] flagrects = new Rect[5];
- for (int i = 0; i < 5; i++)
- {
- flagrects[i] = new Rect(flagrect.x + (flagrect.width / 5) * i, flagrect.y, flagrect.width / 5, flagrect.height);
- }
-
- if (Widgets.ButtonText(flagrects[0], Translations.Option20_Label_1 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Colonist)))
- {
- Configurations.ShowFlag ^= Configurations.PawnFlags.Colonist;
- }
- if (Widgets.ButtonText(flagrects[1], Translations.Option20_Label_2 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Prisoner)))
- {
- Configurations.ShowFlag ^= Configurations.PawnFlags.Prisoner;
- }
- if (Widgets.ButtonText(flagrects[2], Translations.Option20_Label_3 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Ally)))
- {
- Configurations.ShowFlag ^= Configurations.PawnFlags.Ally;
- }
- if (Widgets.ButtonText(flagrects[3], Translations.Option20_Label_4 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Neutral)))
- {
- Configurations.ShowFlag ^= Configurations.PawnFlags.Neutral;
- }
- if (Widgets.ButtonText(flagrects[4], Translations.Option20_Label_5 + ": " + Configurations.ShowFlag.HasFlag(Configurations.PawnFlags.Hostile)))
- {
- Configurations.ShowFlag ^= Configurations.PawnFlags.Hostile;
- }
-
- Adjust = (int)(Configurations.MaxBreastIncrementFactor * 1000 / Configurations.MaxBreastIncrementFactorMax);
- wombsection.Label(Translations.Option_MaxBreastIncrementFactor_Label + " " + Configurations.MaxBreastIncrementFactor * 100 + "%", -1, tipSignal: Translations.Option_MaxBreastIncrementFactor_Desc);
- Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
- Configurations.MaxBreastIncrementFactor = (float)Adjust / (1000 / Configurations.MaxBreastIncrementFactorMax);
-
- Adjust = (int)(Configurations.MaxNippleIncrementFactor * 1000 / Configurations.MaxNippleIncrementFactorMax);
- wombsection.Label(Translations.Option_MaxNippleIncrementFactor_Label + " " + Configurations.MaxNippleIncrementFactor * 100 + "%", -1, tipSignal: Translations.Option_MaxNippleIncrementFactor_Desc);
- Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
- Configurations.MaxNippleIncrementFactor = (float)Adjust / (1000 / Configurations.MaxNippleIncrementFactorMax);
-
- Adjust = (int)(Configurations.PermanentNippleChange * 1000 / Configurations.PermanentNippleChangeMax);
- wombsection.Label(Translations.Option_PermanentNippleChange_Label + " " + Configurations.PermanentNippleChange, -1, tipSignal: Translations.Option_PermanentNippleChange_Desc);
- Adjust = (int)wombsection.Slider(Adjust, 0, 1000);
- Configurations.PermanentNippleChange = (float)Adjust / (1000 / Configurations.PermanentNippleChangeMax);
-
- listmain.EndSection(wombsection);
- }
-
- listmain.CheckboxLabeled(Translations.Option2_Label, ref Configurations.EnableAnimalCycle, Translations.Option2_Desc);
-
- listmain.CheckboxLabeled(Translations.Option12_Label, ref Configurations.EnableMenopause, Translations.Option12_Desc);
-
- listmain.CheckboxLabeled(Translations.Option_EnablePheromones_Label, ref Configurations.EnablePheromones, Translations.Option_EnablePheromones_Desc);
- if (Configurations.EnablePheromones && Configurations.EnableAnimalCycle)
- {
- Adjust = (int)(Configurations.AnimalPheromoneEffect * 1000);
- listmain.Label(Translations.Option_AnimalPheromoneEffect_Label + " " + Configurations.AnimalPheromoneEffect * 100 + "%", -1, tipSignal: Translations.Option_AnimalPheromoneEffect_Desc);
- Adjust = (int)listmain.Slider(Adjust, 0, 1000);
- Configurations.AnimalPheromoneEffect = (float)Adjust / 1000f;
- }
- else Configurations.AnimalPheromoneEffect = 0.0f;
-
- listmain.Label(Translations.Option3_Label + " " + Configurations.ImplantationChance * 100 + "%", -1, tipSignal: Translations.Option3_Desc);
- Configurations.ImplantationChanceAdjust = (int)listmain.Slider(Configurations.ImplantationChanceAdjust, 0, 1000);
- Configurations.ImplantationChance = (float)Configurations.ImplantationChanceAdjust / 100;
-
- string tenMl = String.Format("10 ml: {0:0}%", (1.0f - Mathf.Pow(1.0f - Configurations.FertilizeChance, 10)) * 100f);
- listmain.LabelDouble(Translations.Option4_Label + " " + Configurations.FertilizeChance * 100 + "%", tenMl, Translations.Option4_Desc);
- Configurations.FertilizeChanceAdjust = (int)listmain.Slider(Configurations.FertilizeChanceAdjust, 0, 1000);
- Configurations.FertilizeChance = (float)Configurations.FertilizeChanceAdjust / 1000;
-
- listmain.Label(Translations.Option5_Label + " " + Configurations.CumDecayRatio * 100 + "%", -1, tipSignal: Translations.Option5_Desc);
- Configurations.CumDecayRatioAdjust = (int)listmain.Slider(Configurations.CumDecayRatioAdjust, 0, 1000);
- Configurations.CumDecayRatio = (float)Configurations.CumDecayRatioAdjust / 1000;
-
-
- Adjust = (int)(Configurations.EggLifespanMultiplier * 20);
- float lifespan = (24f / Configurations.CycleAcceleration * Configurations.EggLifespanMultiplier);
- listmain.LabelDouble(Translations.Option30_Label + " x" + Configurations.EggLifespanMultiplier, Translations.EstimatedEggLifespan + String.Format(": {0:0}h", (int)lifespan), Translations.Option30_Desc);
- Adjust = (int)listmain.Slider(Adjust, 20, 1000);
- Configurations.EggLifespanMultiplier = (float)Adjust / 20;
-
-
- int semenlifespan = (int)(-5 / ((float)Math.Log10((1 - Configurations.CumFertilityDecayRatio) * (1 - Configurations.CumDecayRatio) * 10) - 1)) + 1;
- string estimatedlifespan;
- if (semenlifespan < 0)
- {
- estimatedlifespan = string.Format(": Infinite", semenlifespan);
- }
- else
- {
- estimatedlifespan = string.Format(": {0:0}h", semenlifespan);
- }
- listmain.LabelDouble(Translations.Option6_Label + " " + Configurations.CumFertilityDecayRatio * 100 + "%", Translations.EstimatedCumLifespan + estimatedlifespan, Translations.Option6_Desc);
- Configurations.CumFertilityDecayRatioAdjust = (int)listmain.Slider(Configurations.CumFertilityDecayRatioAdjust, 0, 1000);
- Configurations.CumFertilityDecayRatio = (float)Configurations.CumFertilityDecayRatioAdjust / 1000;
-
- listmain.Label(Translations.Option7_Label + " x" + Configurations.CycleAcceleration, -1, tipSignal: Translations.Option7_Desc);
- Configurations.CycleAcceleration = (int)listmain.Slider(Configurations.CycleAcceleration, 1, 50);
-
- listmain.LabelDouble(Translations.Option_ColonistUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.ColonistTickInterval), Translations.Option_ColonistUpdateInterval_Desc);
- Configurations.ColonistTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.ColonistTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(Configurations.TickIntervalMaximum)));
-
- listmain.LabelDouble(Translations.Option_NonColonistUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.NonColonistTickInterval), Translations.Option_NonColonistUpdateInterval_Desc);
- Configurations.NonColonistTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.NonColonistTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(Configurations.TickIntervalMaximum)));
-
- if(Configurations.EnableAnimalCycle)
- {
- listmain.LabelDouble(Translations.Option_AnimalUpdateInterval_Label, GenDate.ToStringTicksToPeriod(Configurations.AnimalTickInterval), Translations.Option_AnimalUpdateInterval_Desc);
- Configurations.AnimalTickInterval = (int)Mathf.Exp(listmain.Slider(Mathf.Log(Configurations.AnimalTickInterval), Mathf.Log(Configurations.TickIntervalMinimum), Mathf.Log(Configurations.TickIntervalMaximum)));
- }
-
- float var2 = EstimatedBleedingAmountPerHour;
- float var1 = Math.Max(EstimatedBleedingAmount, var2);
- listmain.LabelDouble(Translations.Option19_Label_1, Translations.Option19_Label_2 + ": " + var1 + "ml, " + var2 + "ml/h", Translations.Option19_Desc);
- Configurations.BleedingAmount = (int)listmain.Slider(Configurations.BleedingAmount, 0, 200);
-
- listmain.CheckboxLabeled(Translations.Option_EstrusOverride_Label, ref Configurations.EstrusOverridesHookupSettings, Translations.Option_EstrusOverride_Desc);
- if (Configurations.EstrusOverridesHookupSettings)
- {
- listmain.Label(Translations.Option_EstrusFuckability_Label + ": " + (int)(Configurations.EstrusFuckabilityToHookup * 100) + "%");
- Configurations.EstrusFuckabilityToHookup = listmain.Slider(Configurations.EstrusFuckabilityToHookup, 0.1f, 1.0f);
- listmain.Label(Translations.Option_EstrusAttractability_Label + ": " + (int)(Configurations.EstrusAttractivenessToHookup * 100) + "%");
- Configurations.EstrusAttractivenessToHookup = listmain.Slider(Configurations.EstrusAttractivenessToHookup, 0.0f, 1.0f);
- listmain.Label(Translations.Option_EstrusRelationship_Label + ": " + Configurations.EstrusRelationshipToHookup);
- Configurations.EstrusRelationshipToHookup = (int)listmain.Slider(Configurations.EstrusRelationshipToHookup, -100f, 100f);
- }
-
- if (listmain.RadioButton(Translations.Option_PregnancyFromBaseRJW_Label, Configurations.PregnancySource == Configurations.PregnancyType.BaseRJW))
- Configurations.PregnancySource = Configurations.PregnancyType.BaseRJW;
- if (listmain.RadioButton(Translations.Option_PregnancyFromMultiplePregnancy_Label, Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy))
- Configurations.PregnancySource = Configurations.PregnancyType.MultiplePregnancy;
- if (ModsConfig.BiotechActive && listmain.RadioButton(Translations.Option_PregnancyFromBiotech_Label, Configurations.PregnancySource == Configurations.PregnancyType.Biotech))
- Configurations.PregnancySource = Configurations.PregnancyType.Biotech;
- if (Configurations.PregnancySource == Configurations.PregnancyType.Biotech)
- listmain.CheckboxLabeled(Translations.Option_EnableBiotechTwins_Label, ref Configurations.EnableBiotechTwins, Translations.Option_EnableBiotechTwins_Desc);
- if (Configurations.PregnancySource == Configurations.PregnancyType.MultiplePregnancy ||
- (Configurations.PregnancySource == Configurations.PregnancyType.Biotech && Configurations.EnableBiotechTwins))
- {
- float sectionheight = 75f;
- if (Configurations.EnableEnzygoticTwins) sectionheight += 100;
- Listing_Standard twinsection = listmain.BeginSection(sectionheight);
- Rect hybridrect = twinsection.GetRect(25);
- Widgets.CheckboxLabeled(hybridrect.LeftHalf(), Translations.Option22_Label, ref Configurations.UseHybridExtention, false, null, null, true);
- if (Widgets.ButtonText(hybridrect.RightHalf(), Translations.Option28_Label))
- {
- Dialog_HybridCustom.ToggleWindow();
- //Configurations.MotherFirst = !Configurations.MotherFirst;
- }
- TooltipHandler.TipRegion(hybridrect, Translations.Option28_Tooltip);
-
- twinsection.CheckboxLabeled(Translations.Option14_Label, ref Configurations.EnableHeteroOvularTwins, Translations.Option14_Desc);
- twinsection.CheckboxLabeled(Translations.Option15_Label, ref Configurations.EnableEnzygoticTwins, Translations.Option15_Desc);
- if (Configurations.EnableEnzygoticTwins)
- {
- twinsection.Label(Translations.Option16_Label + " " + Configurations.EnzygoticTwinsChance * 100 + "%", -1, tipSignal: Translations.Option16_Desc);
- Configurations.EnzygoticTwinsChanceAdjust = (int)twinsection.Slider(Configurations.EnzygoticTwinsChanceAdjust, 0, 1000);
- Configurations.EnzygoticTwinsChance = (float)Configurations.EnzygoticTwinsChanceAdjust / 1000;
-
- twinsection.Label(Translations.Option17_Label + " " + Configurations.MaxEnzygoticTwins, -1, tipSignal: Translations.Option17_Desc);
- Configurations.MaxEnzygoticTwins = (int)twinsection.Slider(Configurations.MaxEnzygoticTwins, 2, 100);
- }
- listmain.EndSection(twinsection);
- }
-
- listmain.CheckboxLabeled(Translations.Option31_Label, ref Configurations.EnableBirthVaginaMorph, Translations.Option31_Desc);
- if (Configurations.EnableBirthVaginaMorph)
- {
- float sectionheight = 48f;
- Listing_Standard vmsection = listmain.BeginSection(sectionheight);
-
- LabelwithTextfield(vmsection.GetRect(24f), Translations.Option32_Label, Translations.Option32_Desc, ref Configurations.VaginaMorphPower, 0, 100f);
- Adjust = (int)(Configurations.VaginaMorphPower * 1000);
- Adjust = (int)vmsection.Slider(Adjust, 0, 1000);
- Configurations.VaginaMorphPower = Adjust / 1000f;
-
-
- listmain.EndSection(vmsection);
- }
-
- listmain.CheckboxLabeled(Translations.Option8_Label, ref Configurations.Debug, Translations.Option8_Desc);
- if (listmain.ButtonText(Translations.Button_ResetToDefault))
- {
- Configurations.SetToDefault();
- }
-
- listmain.End();
- Widgets.EndScrollView();
- }
-
-
- public void LabelwithTextfield(Rect rect, string label, string tooltip, ref float value, float min, float max)
- {
- Rect textfieldRect = new Rect(rect.xMax - 100f, rect.y, 100f, rect.height);
- string valuestr = value.ToString();
- Widgets.Label(rect, label);
- Widgets.TextFieldNumeric(textfieldRect, ref value, ref valuestr, min, max);
- Widgets.DrawHighlightIfMouseover(rect);
- TooltipHandler.TipRegion(rect, tooltip);
- }
-
-
- }
-
-
-
-
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs
deleted file mode 100644
index 94eecdb..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Cum.cs
+++ /dev/null
@@ -1,285 +0,0 @@
-using RimWorld;
-using System;
-using System.Collections.Generic;
-using System.Text;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class Cum : IExposable
- {
- public Pawn pawn;
-
- protected float volume; // ml
- public float fertility = 1.0f;
- public bool notcum = false; // for other fluids
- public string notcumLabel = "";
- protected bool useCustomColor = false;
- protected float notcumthickness = 0;
- protected float cumthickness = 1.0f;
- protected Thing internalThing;
-
- public float Volume
- {
- get
- {
- return volume;
- }
- }
-
- public float FertVolume
- {
- get
- {
- return volume * fertility;
- }
- }
-
- public float CumThickness
- {
- get
- {
- return cumthickness;
- }
- }
-
- public float DecayResist
- {
- get
- {
- if (!notcum) return DNA.cumThickness;
- else return notcumthickness;
- }
- set
- {
- notcumthickness = value;
- }
- }
- protected Color customColor;
-
- public PawnDNAModExtension DNA
- {
- get
- {
- if (DNAcache != null) return DNAcache;
- try
- {
- DNAcache = pawn.def.GetModExtension();
- }
- catch (NullReferenceException)
- {
- DNAcache = ThingDefOf.Human.GetModExtension();
- }
- if (DNAcache == null)
- {
- DNAcache = ThingDefOf.Human.GetModExtension();
- }
- return DNAcache;
- }
- }
- protected PawnDNAModExtension DNAcache = null;
- public ThingDef FilthDef
- {
- get
- {
- return filthDef ?? VariousDefOf.CumFilth;
- }
- set
- {
- filthDef = value;
- }
- }
- protected ThingDef filthDef = null;
- public Color Color
- {
- get
- {
- if (!useCustomColor) return DNA.CumColor;
- else return customColor;
- }
-
- set
- {
- useCustomColor = true;
- customColor = value;
- }
- }
-
- public Thing CumThing
- {
- get
- {
- if (internalThing == null)
- {
- internalThing = ThingMaker.MakeThing(VariousDefOf.CumFilth);
- internalThing.stackCount = (int)volume;
- }
- internalThing.stackCount = (int)volume;
- return internalThing;
- }
- }
-
- public Cum() { }
-
- public Cum(Pawn pawn)
- {
- this.pawn = pawn;
- volume = 1.0f;
- fertility = 1.0f;
- }
-
- ///
- /// Not Cum
- ///
- ///
- ///
- ///
- ///
- ///
- public Cum(Pawn pawn, float volume, string notcumlabel, float decayresist = 0, ThingDef filthDef = null)
- {
- this.pawn = pawn;
- this.volume = volume;
- this.fertility = 0f;
- this.notcum = true;
- this.notcumLabel = notcumlabel;
- this.notcumthickness = decayresist;
- this.filthDef = filthDef;
- }
-
- public Cum(Pawn pawn, float volume, float fertility, ThingDef filthDef = null)
- {
- this.pawn = pawn;
- this.volume = volume;
- this.fertility = fertility;
- this.filthDef = filthDef;
- }
-
-
-
- public virtual void ExposeData()
- {
- Scribe_References.Look(ref pawn, "pawn", true);
- Scribe_Values.Look(ref volume, "volume", volume, true);
- Scribe_Values.Look(ref fertility, "fertility", fertility, true);
- Scribe_Values.Look(ref notcumthickness, "notcumthickness", 0);
- Scribe_Values.Look(ref notcum, "notcum", false);
- Scribe_Values.Look(ref notcumLabel, "notcumLabel", "");
- 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)
- {
- cumthickness = cumthickness.LerpMultiple(DecayResist, 0.3f, speed);
- }
-
- public void MergeWithCum(float volumein, float fertility, ThingDef updatefilthDef = null)
- {
- if (updatefilthDef != null) filthDef = updatefilthDef;
- volume += volumein;
- this.fertility = (this.volume * this.fertility + volumein * fertility) / (this.volume + volumein);
- cumthickness = Mathf.Lerp(cumthickness, 1.0f, volumein / volume);
- }
-
- public void MergeWithFluid(float volumein, float thickness, ThingDef updatefilthDef = null)
- {
- if (updatefilthDef != null) filthDef = updatefilthDef;
- volume += volumein;
- fertility = volume * fertility / (volume + volumein);
- notcumthickness = Mathf.Lerp(notcumthickness, thickness, volumein / volume);
- }
-
- public bool ShouldRemove()
- {
- if ((notcum || FertVolume < 0.001f) && volume < 0.01f) return true;
- return false;
- }
-
- public float DismishNatural(float leakfactor, HediffComp_Menstruation comp, float antisperm = 0.0f)
- {
- // comp is used for Hydrogen's RJW Muscle Injury
- float totalleak = volume;
- float decayPerInterval = 1 - Mathf.Pow(1 - Configurations.CumDecayRatio, comp.HoursBetweenSimulations);
- float fertilityDecayPerInterval = 1 - Mathf.Pow(1 - Configurations.CumFertilityDecayRatio, comp.HoursBetweenSimulations);
- antisperm *= comp.HoursBetweenSimulations;
- volume *= Math.Max(0, 1 - decayPerInterval * (1 - DecayResist) * leakfactor);
- fertility *= Math.Max(0, 1 - (fertilityDecayPerInterval * (1 - DecayResist) + antisperm));
- CutMinor();
- totalleak -= volume;
- return totalleak;
- }
-
- public float DismishForce(float portion, float leakfactor = 1.0f)
- {
- float totalleak = volume;
- volume *= Math.Max(0, 1 - (portion * (1 - DecayResist / 10)) * leakfactor);
- CutMinor();
- totalleak -= volume;
- return totalleak;
- }
-
- public void CumEffects(Pawn pawn)
- {
- if (notcum || DNA?.ingestionOutcomeDoers == null || volume < 1.0f) return;
-
- foreach (IngestionOutcomeDoer doer in DNA.ingestionOutcomeDoers)
- doer.DoIngestionOutcome(pawn, CumThing, 1);
- }
-
- protected void CutMinor()
- {
- if (volume < 0.01f) volume = 0f;
- }
- }
-
- public class CumMixture : Cum
- {
- protected List cums;
- public bool ispurecum = true;
- public List Getingredients => cums;
-
- public CumMixture()
- {
- notcum = true;
- cums = new List();
- }
-
- public CumMixture(Pawn pawn, float volume, List cums, Color color, ThingDef mixtureDef, bool pure)
- {
- this.pawn = pawn;
- this.volume = volume;
- this.cums = cums;
- this.customColor = color;
- this.useCustomColor = true;
- ispurecum = pure;
- }
-
- public override void ExposeData()
- {
- base.ExposeData();
- Scribe_Collections.Look(ref cums, "cumslabel", LookMode.Value, new object[0]);
- }
-
- public string GetIngredients()
- {
- StringBuilder res = new StringBuilder();
-
- if (!cums.NullOrEmpty()) for (int i = 0; i < cums.Count; i++)
- {
- res.Append(cums[i]);
- if (i < cums.Count - 1) res.Append(", ");
- }
- return res.ToString();
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/DebugActions.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/DebugActions.cs
deleted file mode 100644
index 001322d..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/DebugActions.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using LudeonTK;
-using RimWorld;
-using Verse;
-
-#pragma warning disable IDE0051 // Remove unused private members
-namespace RJW_Menstruation
-{
- public static class DebugToolsMenstruation
- {
- [DebugAction("RJW Menstruation", "Set pawn's state to follicular", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void SetFollicular(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- {
- comp.GoNextStage(HediffComp_Menstruation.Stage.Follicular);
- comp.RemoveAllEggs();
- }
- Messages.Message($"{p} is now follicular", p, MessageTypeDefOf.NeutralEvent, false);
- }
-
- [DebugAction("RJW Menstruation", "Set pawn's state to ovulatory", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void SetOvulatory(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.GoNextStage(HediffComp_Menstruation.Stage.Ovulatory);
- Messages.Message($"{p} is now ovulatory", p, MessageTypeDefOf.NeutralEvent, false);
- }
-
- [DebugAction("RJW Menstruation", "Set pawn's state to luteal", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void SetLuteal(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.GoNextStage(HediffComp_Menstruation.Stage.Luteal);
- Messages.Message($"{p} is now luteal", p, MessageTypeDefOf.NeutralEvent, false);
- }
-
- [DebugAction("RJW Menstruation", "Set pawn's state to bleeding", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void SetBleeding(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- {
- comp.GoNextStage(HediffComp_Menstruation.Stage.Bleeding);
- comp.RemoveAllEggs();
- }
- Messages.Message($"{p} is now bleeding", p, MessageTypeDefOf.NeutralEvent, false);
- }
- /*
- [DebugAction("RJW Menstruation", "Set pawn's state to recovering", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void setRecover(Pawn p)
- {
- p.GetMenstruationComp().curStage = HediffComp_Menstruation.Stage.Recover;
- }
-
- [DebugAction("RJW Menstruation", "Set pawn's state to young", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void setYoung(Pawn p)
- {
- p.GetMenstruationComp().curStage = HediffComp_Menstruation.Stage.Young;
- }
- */
- [DebugAction("RJW Menstruation", "Remove all cum from pawn's womb", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void RemoveCums(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.RemoveAllCums();
- Messages.Message($"All cum removed from {p}'s womb", p, MessageTypeDefOf.NeutralEvent, false);
- }
- [DebugAction("RJW Menstruation", "Remove all eggs from pawn's womb", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void RemoveEggs(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.RemoveAllEggs();
- Messages.Message($"All eggs removed from {p}'s womb", p, MessageTypeDefOf.NeutralEvent, false);
- }
- [DebugAction("RJW Menstruation", "Add egg to pawn's next ovulation", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void AddEgg(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.eggstack++;
- Messages.Message($"1 egg added to {p}'s next ovulation ({p.GetFirstMenstruationComp().eggstack})", p, MessageTypeDefOf.NeutralEvent, false);
- }
-
- [DebugAction("RJW Menstruation", "Recalculate pawn's ovary power", false, false, actionType = DebugActionType.ToolMapForPawns, allowedGameStates = AllowedGameStates.Playing)]
- private static void RecalculateOvaryPower(Pawn p)
- {
- foreach (HediffComp_Menstruation comp in p.GetMenstruationComps())
- comp.ovarypower = comp.GetOvaryPowerByAge();
- Messages.Message($"{p}'s ovarypower recalculated ({p.GetFirstMenstruationComp().ovarypower})", p, MessageTypeDefOf.NeutralEvent, false);
- }
- }
-}
-#pragma warning restore IDE0051 // Remove unused private members
\ No newline at end of file
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs
deleted file mode 100644
index 244ee48..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/DrugOutcomeDoers.cs
+++ /dev/null
@@ -1,95 +0,0 @@
-using RimWorld;
-using System.Collections.Generic;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class FertPillOutcomeDoer : IngestionOutcomeDoer
- {
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- foreach (HediffComp_Menstruation comp in pawn.GetMenstruationComps())
- if (comp.curStage.Equals(HediffComp_Menstruation.Stage.Follicular)
- || comp.curStage.Equals(HediffComp_Menstruation.Stage.Luteal)
- || comp.curStage.Equals(HediffComp_Menstruation.Stage.Anestrus)
- )
- {
- comp.SetEstrus();
- comp.GoNextStage(HediffComp_Menstruation.Stage.Ovulatory);
- comp.ovarypower--;
- }
- }
- }
-
- public class InduceOvulationOutcomeDoer : IngestionOutcomeDoer
- {
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- foreach (HediffComp_Menstruation comp in pawn.GetMenstruationComps())
- if (comp.curStage.Equals(HediffComp_Menstruation.Stage.Follicular)
- || comp.curStage.Equals(HediffComp_Menstruation.Stage.Anestrus)
- )
- {
- comp.SetEstrus();
- comp.GoNextStage(HediffComp_Menstruation.Stage.Ovulatory);
- comp.eggstack += ingestedcount - 1;
- }
- }
- }
-
- public class IngestionOutcomeDoer_AdjustSeverity : IngestionOutcomeDoer
- {
- public HediffDef hediffDef;
- public float severity;
-
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- Hediff hediff = pawn.health.hediffSet.GetFirstHediffOfDef(hediffDef);
- if (hediff != null) hediff.Severity += severity * ingestedcount;
- }
-
- }
-
- public class OvaryPillOutcomeDoer : IngestionOutcomeDoer
- {
- public float effectOffset;
-
-
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- foreach (HediffComp_Menstruation comp in pawn.GetMenstruationComps())
- if (Configurations.EnableMenopause) comp.RecoverOvary(1 + effectOffset);
- }
- }
-
- public class SuperOvulationOutcomeDoer : IngestionOutcomeDoer
- {
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- foreach (HediffComp_Menstruation comp in pawn.GetMenstruationComps())
- comp.eggstack += Rand.Range(ingestedcount, 4 * ingestedcount);
- }
- }
-
- public class ContraceptiveOutcomeDoer : IngestionOutcomeDoer
- {
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
-
- List memories = pawn.needs?.mood?.thoughts?.memories?.Memories.FindAll(
- x =>
- x.def == VariousDefOf.CameInsideF
- || x.def == VariousDefOf.CameInsideFFetish
- || x.def == VariousDefOf.HaterCameInsideF);
- if (memories.NullOrEmpty()) return;
- foreach (Thought_Memory m in memories)
- {
- if (m.def == VariousDefOf.HaterCameInsideF) m.moodPowerFactor = 0.5f;
- else m.moodPowerFactor = 0.3f;
-
- }
- if (pawn.IsProPregnancy(out _)) pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.HateTookContraceptivePill);
- else pawn.needs.mood.thoughts.memories.TryGainMemoryFast(VariousDefOf.TookContraceptivePill);
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/FilthMaker_Colored.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/FilthMaker_Colored.cs
deleted file mode 100644
index fbb4723..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/FilthMaker_Colored.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using RimWorld;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class FilthMaker_Colored
- {
-
- public static bool TryMakeFilth(IntVec3 c, Map map, ThingDef filthDef, IEnumerable sources, Color color, bool shouldPropagate, FilthSourceFlags additionalFlags = FilthSourceFlags.None)
- {
- Filth_Colored filth = (Filth_Colored)(from t in c.GetThingList(map)
- where t.def == filthDef
- select t).FirstOrDefault();
- if (!c.Walkable(map) || (filth != null && !filth.CanBeThickened))
- {
- if (shouldPropagate)
- {
- List list = GenAdj.AdjacentCells8WayRandomized();
- for (int i = 0; i < 8; i++)
- {
- IntVec3 c2 = c + list[i];
- if (c2.InBounds(map) && TryMakeFilth(c2, map, filthDef, sources, color, false, FilthSourceFlags.None))
- {
- return true;
- }
- }
- }
- filth?.AddSources(sources);
- return false;
- }
- if (filth != null)
- {
- filth.ThickenFilth();
- filth.AddSources(sources);
- }
- else
- {
- if (!FilthMaker.CanMakeFilth(c, map, filthDef, additionalFlags))
- {
- return false;
- }
- Filth_Colored filth2 = (Filth_Colored)ThingMaker.MakeThing(filthDef, null);
- filth2.DrawColor = color;
- filth2.AddSources(sources);
- GenSpawn.Spawn(filth2, c, map, WipeMode.Vanish);
- }
- //FilthMonitor.Notify_FilthSpawned();
- return true;
- }
-
-
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/FloatMenuOptionVaginalWashing.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/FloatMenuOptionVaginalWashing.cs
deleted file mode 100644
index dfc77da..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/FloatMenuOptionVaginalWashing.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-using RimWorld;
-using System.Linq;
-using Verse;
-using Verse.AI;
-
-namespace RJW_Menstruation
-{
- public class FloatMenuOptionVaginalWashing : FloatMenuOptionProvider
- {
- protected override bool Drafted => true;
-
- protected override bool Undrafted => true;
-
- protected override bool Multiselect => false;
-
- protected override bool RequiresManipulation => true;
-
- protected override bool MechanoidCanDo => true;
-
- protected override bool CanSelfTarget => true;
-
- public override bool TargetPawnValid(Pawn pawn, FloatMenuContext context)
- {
- if (!base.TargetPawnValid(pawn, context)) return false;
- return pawn.GetMenstruationComps().Any() && pawn.ShouldCycle();
- }
-
- protected override FloatMenuOption GetSingleOptionFor(Pawn clickedPawn, FloatMenuContext context)
- {
- Pawn pawn = context.FirstSelectedPawn;
- if (pawn != clickedPawn) return null;
- FloatMenuOption option = FloatMenuUtility.DecoratePrioritizedTask(new FloatMenuOption(Translations.FloatMenu_CleanSelf, delegate ()
- {
- pawn.jobs.TryTakeOrderedJob(new Job(VariousDefOf.VaginaWashing, null, null, clickedPawn.Position));
- }, MenuOptionPriority.Low), pawn, clickedPawn);
-
- return option;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs
deleted file mode 100644
index aa7606a..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Breast.cs
+++ /dev/null
@@ -1,410 +0,0 @@
-using RimWorld;
-using RimWorld.Planet;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class CompProperties_Breast : HediffCompProperties
- {
- public static readonly ColorInt DefaultBlacknippleColor = new ColorInt(55, 20, 0);
- public string BreastTex = "Breasts/Breast";
- public ColorInt BlacknippleColor = new ColorInt(55, 20, 0);
-
-
- public Color BlackNippleColor
- {
- get
- {
- return BlacknippleColor.ToColor;
- }
- }
-
-
- public CompProperties_Breast()
- {
- compClass = typeof(HediffComp_Breast);
- }
- }
-
- public class HediffComp_Breast : HediffComp
- {
- public const int tickInterval = GenDate.TicksPerHour * 3 / 2;
- public const float breastGrowthStart = 1f / 6f;
- public const float breastGrowthEnd = 1f / 3f;
- public static readonly SimpleCurve nippleTransitions = new SimpleCurve()
- {
- new CurvePoint(0f,0f),
- new CurvePoint(0.1f,0f),
- new CurvePoint(0.333f,0.167f),
- new CurvePoint(0.667f,0.833f),
- new CurvePoint(1.0f,1.0f)
- };
- public const float nippleChange = 0.2f;
-
- public CompProperties_Breast Props;
-
- HediffComp_SexPart sexPartComp;
-
- protected long ageOfLastBirth = 0;
- protected float maxBreastIncrement = -1f;
- protected float breastSizeIncreased = 0f;
- protected string debugGrowthStatus = "(Growth/shrink not yet calculated; run for 1.5h to update)";
- protected float nippleProgress = 0f;
- protected float baseAlpha = -1f; // Will grow in response to pregnancy
- protected float baseAreola = -1f;
- protected float baseNipple = -1f;
- protected float cachedAlpha = -1f; // Calculated dynamically instead of saved
- protected float cachedAreola = -1f; // Actual size = these * breast size
- protected float cachedNipple = -1f;
- protected float babyHalfAge = -1f;
-
- protected string customBreastTex = null;
- protected Color cachedColor;
- protected bool loaded = false;
-
- public string BreastTex
- {
- get => customBreastTex ?? Props.BreastTex;
- set => customBreastTex = value;
- }
-
- protected float BabyHalfAge
- {
- get
- {
- if (babyHalfAge > 0f) return babyHalfAge;
- List ages = Pawn.RaceProps.lifeStageAges;
- if (ages?.Count > 1)
- babyHalfAge = ages[1].minAge / 2;
-
- if (babyHalfAge <= 0) babyHalfAge = 1.2f / 2; // Default to human
-
- return babyHalfAge;
- }
- }
-
- protected void ShrinkBreasts()
- {
- // The natural rate will take them from full to empty during the second half of their child's babyhood
- float shrinkRate = tickInterval * MaxBreastIncrement / (BabyHalfAge * GenDate.TicksPerYear);
- float shrinkAmount = Mathf.Min(shrinkRate, breastSizeIncreased);
- breastSizeIncreased -= shrinkAmount;
- sexPartComp.baseSize -= shrinkAmount;
- if (sexPartComp.baseSize < 0.01f) sexPartComp.baseSize = 0.01f;
- sexPartComp.UpdateSeverity();
- }
-
- protected float MaxBreastIncrement
- {
- get
- {
- return maxBreastIncrement * Configurations.MaxBreastIncrementFactor;
- }
- }
-
- public Color NippleColor
- {
- get
- {
- return cachedColor;
- }
- }
- public float Alpha
- {
- get
- {
- return cachedAlpha;
- }
- }
- public float NippleSize
- {
- get
- {
- return cachedNipple * sexPartComp.baseSize;
- }
- }
- public float AreolaSize
- {
- get
- {
- return cachedAreola * sexPartComp.baseSize;
- }
- }
-
- public float BreastSizeIncreased
- {
- get
- {
- return breastSizeIncreased;
- }
- }
-
- public override void CompExposeData()
- {
- base.CompExposeData();
- Scribe_Values.Look(ref ageOfLastBirth, "ageOfLastBirth", -1);
- Scribe_Values.Look(ref maxBreastIncrement, "maxBreastIncrement", maxBreastIncrement, true);
- Scribe_Values.Look(ref breastSizeIncreased, "breastSizeIncreased", 0.0f);
- Scribe_Values.Look(ref nippleProgress, "nippleProgress", 0.0f);
- Scribe_Values.Look(ref baseAlpha, "baseAlpha", baseAlpha, true);
- Scribe_Values.Look(ref baseAreola, "baseAreola", baseAreola, true);
- Scribe_Values.Look(ref baseNipple, "baseNipple", baseNipple, true);
- if (Scribe.mode == LoadSaveMode.PostLoadInit)
- Initialize();
- }
-
- public bool ShouldSimulate()
- {
- if (!Pawn.ShouldCycle()) return false;
- if (Pawn.SpawnedOrAnyParentSpawned || Pawn.IsCaravanMember() || PawnUtility.IsTravelingInTransportPodWorldObject(Pawn)) return true;
-
- return false;
- }
-
- public override void CompPostTick(ref float severityAdjustment)
- {
- base.CompPostTick(ref severityAdjustment);
- // If an exception makes it out, RW will remove the hediff, so catch it here
- try
- {
- if (
- !Pawn.IsHashIntervalTick(tickInterval) ||
- !ShouldSimulate()
- )
- {
- return;
- }
- CalculateBreastSize();
- CalculateNipples();
- UpdateNipples();
- }
- catch (Exception ex)
- {
- Log.Error($"Error processing breasts of {Pawn}: {ex}");
- }
-
- }
-
- public override void CompPostPostAdd(DamageInfo? dinfo)
- {
- if (!loaded) Initialize();
- if (ageOfLastBirth > Pawn.ageTracker.AgeChronologicalTicks) ageOfLastBirth = CalculateLastBirth(); // catch transplant issues
- }
-
- public override void CompPostPostRemoved()
- {
- if (Pawn.health.hediffSet.hediffs.Contains(parent))
- {
- Log.Warning($"Attempted to remove breast comp from wrong pawn ({Pawn}).");
- return;
- }
- base.CompPostPostRemoved();
- }
-
- protected long CalculateLastBirth()
- {
- long youngestAge = -1;
-
- if (Pawn.relations == null) return youngestAge;
-
- List rjwPregnancies = new List();
- Pawn.health.hediffSet.GetHediffs(ref rjwPregnancies);
-
- bool hasChild = Pawn.relations.Children.
- Where(child => !rjwPregnancies.Any(preg => preg.babies.Contains(child))). // no fetuses
- Where(child => child.GetMother() == Pawn). // not Dad
- TryMinBy(child => child.ageTracker.AgeBiologicalTicks, out Pawn youngest);
-
- if (hasChild) youngestAge = Math.Max(Pawn.ageTracker.AgeBiologicalTicks - youngest.ageTracker.AgeBiologicalTicks, -1);
-
- return youngestAge;
- }
-
- public void Initialize()
- {
- Props = (CompProperties_Breast)props;
- sexPartComp = parent.TryGetComp();
- if (sexPartComp == null)
- Log.Error($"Could not get breast SexPart comp of {Pawn}");
-
- if (maxBreastIncrement <= 0f)
- {
- maxBreastIncrement = Utility.RandGaussianLike(0.088f, 0.202f);
- }
- if (ageOfLastBirth == 0 || ageOfLastBirth < -1)
- {
- ageOfLastBirth = CalculateLastBirth();
- }
- if (baseAlpha <= 0f)
- {
- baseAlpha = Utility.RandGaussianLike(0.0f, 0.3f) + Rand.Range(0.0f, 0.5f);
- }
- if (baseAreola <= 0f)
- {
- baseAreola = Utility.RandGaussianLike(0.0f, 1.0f);
- }
- if (baseNipple <= 0f)
- {
- baseNipple = Utility.RandGaussianLike(0.0f, 1.0f);
- }
- UpdateNipples();
- loaded = true;
- }
-
- protected void CalculateBreastSize()
- {
- // Ageless pawns can't depend on the chrono age, so just disable their growth entirely
- if (Pawn.ageTracker.BiologicalTicksPerTick <= 0f && breastSizeIncreased > 0)
- {
- ShrinkBreasts();
- debugGrowthStatus = "Base size (ageless)";
- }
- // The youngest child is less than halfway into babyhood: Full size
- else if (ageOfLastBirth > 0 && ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks)
- {
- debugGrowthStatus = "Full size due to young child";
- if (breastSizeIncreased < MaxBreastIncrement)
- {
- sexPartComp.baseSize += (MaxBreastIncrement - breastSizeIncreased);
- sexPartComp.UpdateSeverity();
- breastSizeIncreased = MaxBreastIncrement;
- }
- }
- // Pregnant, grow in the second half of first trimester
- else if (Pawn.IsRJWPregnant() || Pawn.IsBiotechPregnant())
- {
- float pregnancySize = Mathf.InverseLerp(breastGrowthStart, breastGrowthEnd, Pawn.GetFarthestPregnancyProgress()) * MaxBreastIncrement;
- if (breastSizeIncreased > pregnancySize)
- {
- debugGrowthStatus = "Shrinking due to being oversize for pregnancy";
- // Breasts still large from the last kid
- ShrinkBreasts();
- }
- else if (breastSizeIncreased < MaxBreastIncrement)
- {
- // Time to grow
- float growAmount = pregnancySize - breastSizeIncreased;
- if (growAmount != 0)
- debugGrowthStatus = "Growing due to pregnancy";
- else
- debugGrowthStatus = "Pregnant, but not time to grow";
- breastSizeIncreased += growAmount;
- sexPartComp.baseSize += growAmount;
- sexPartComp.UpdateSeverity();
- }
- else debugGrowthStatus = "Pregnant and full size";
- }
- // Not (or very early) pregnant and youngest child nonexistent or more than halfway into babyhood, time to shrink
- else if (breastSizeIncreased > 0)
- {
- debugGrowthStatus = "Shrinking due to no pregnancy nor young child";
- ShrinkBreasts();
- }
- else debugGrowthStatus = "Base size";
- }
-
- protected void CalculateNipples()
- {
- float newNippleProgress;
- if (Pawn.ageTracker.BiologicalTicksPerTick <= 0f)
- newNippleProgress = 0f;
- else if (ageOfLastBirth > 0 && ageOfLastBirth + BabyHalfAge * GenDate.TicksPerYear > Pawn.ageTracker.AgeBiologicalTicks)
- newNippleProgress = 1f;
- else if (Pawn.IsRJWPregnant() || Pawn.IsBiotechPregnant())
- newNippleProgress = nippleTransitions.Evaluate(Pawn.GetFarthestPregnancyProgress());
- else
- newNippleProgress = 0f;
-
- if (newNippleProgress < 0) newNippleProgress = 0;
-
- if (newNippleProgress == nippleProgress) return; // Nothing to change
- else if (newNippleProgress > nippleProgress)
- {
- float progressDifference = newNippleProgress - nippleProgress;
- // All nipple growth has a slight effect on the base
- // Not mathematically precise in hitting the goal at the end of the term, but close enough
- baseAlpha *= 1.0f + progressDifference * Configurations.PermanentNippleChange;
- if (baseAlpha > 1.0f) baseAlpha = 1.0f;
- baseAreola *= 1.0f + progressDifference * Configurations.PermanentNippleChange;
- if (baseAreola > 1.0f) baseAreola = 1.0f;
- baseNipple *= 1.0f + progressDifference * Configurations.PermanentNippleChange;
- if (baseNipple > 1.0f) baseNipple = 1.0f;
- nippleProgress = newNippleProgress;
- }
- else
- {
- nippleProgress -= tickInterval / (BabyHalfAge * GenDate.TicksPerYear);
- if (nippleProgress < newNippleProgress) nippleProgress = newNippleProgress;
- }
- }
-
- public void GaveBirth()
- {
- ageOfLastBirth = Pawn.ageTracker.AgeBiologicalTicks;
- }
-
- public void AdjustNippleProgress(float amount)
- {
- nippleProgress = Mathf.Clamp01(nippleProgress + amount);
- UpdateNipples();
- }
-
- public void AdjustNippleSizeImmediately(float amount)
- {
- baseNipple = Mathf.Clamp01(baseNipple + amount);
- UpdateNipples();
- }
-
- public void AdjustNippleColorImmediately(float amount)
- {
- baseAlpha = Mathf.Clamp01(baseAlpha + amount);
- UpdateNipples();
- }
-
- public void AdjustAreolaSizeImmediately(float amount)
- {
- baseAreola = Mathf.Clamp01(baseAreola + amount);
- UpdateNipples();
- }
-
- public void UpdateNipples()
- {
- cachedAlpha = baseAlpha + nippleProgress * nippleChange;
- cachedAreola = baseAreola + nippleProgress * nippleChange;
- cachedNipple = baseNipple + nippleProgress * nippleChange;
-
- // For some reason, Props can go null when RJW relocates the chest (e.g. some animals), so catch that
- cachedColor = Colors.CMYKLerp(Utility.SafeSkinColor(Pawn), (Props?.BlackNippleColor ?? CompProperties_Breast.DefaultBlacknippleColor.ToColor), Alpha);
- }
-
- public void CopyBreastProperties(HediffComp_Breast original)
- {
- maxBreastIncrement = original.maxBreastIncrement;
- baseAlpha = original.baseAlpha;
- baseAreola = original.baseAreola;
- baseNipple = original.baseNipple;
- UpdateNipples();
- }
-
- public string DebugInfo()
- {
- return "Size: " + sexPartComp.baseSize +
- "\nIncrease: " + breastSizeIncreased +
- "\n" + debugGrowthStatus +
- "\nNipple progress: " + nippleProgress +
- "\nBase alpha: " + baseAlpha +
- "\nAlpha: " + cachedAlpha +
- "\nBase areola: " + baseAreola +
- "\nAreola: " + cachedAreola +
- "\nDisplayed areola: " + AreolaSize +
- "\nBase nipple: " + baseNipple +
- "\nNipple: " + cachedNipple +
- "\nDisplayed nipple: " + NippleSize;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs
deleted file mode 100644
index 7f008f0..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_InducedOvulator.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-using RimWorld;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class CompProperties_InducedOvulator : CompProperties_Menstruation
- {
- public CompProperties_InducedOvulator()
- {
- compClass = typeof(HediffComp_InducedOvulator);
- }
-
- }
-
- public class HediffComp_InducedOvulator : HediffComp_Menstruation
- {
- protected bool hadOvulatoryStage = false; // Regardless of whether an egg was actually produced
-
- protected override void PostInitialize()
- {
- base.PostInitialize();
- hadOvulatoryStage |= IsEggExist;
- }
-
- public override string GetCurStageDesc
- {
- get
- {
- switch (CurrentVisibleStage)
- {
- case Stage.Follicular:
- return Translations.Stage_Follicular_Induced_Desc + (EggHealth < 1f ? " " + Translations.Stage_Climacteric_Desc : "");
- default:
- return base.GetCurStageDesc;
- }
- }
- }
-
- // In an induced ovulator, about 65% of eggs ovulated will become pregnancies, so the expected lifetime supply
- // is the number of pregnancies they could have, with some extra to be sure.
- // An IUD or a poor fertility mate could run this down quicker. Oh well.
- protected override float RaceCyclesPerYear()
- {
- // Don't bother with breeding season, since so much time is planned to be spent pregnant.
- float pregnanciesPerYear = GenDate.DaysPerYear / Mathf.Max(1, Pawn.RaceProps.gestationPeriodDays);
-
- return 2 * pregnanciesPerYear / Configurations.ImplantationChanceDefault;
- }
-
- // There's really no good way to estimate the number of times it's been induced, so this is all we can do
- protected override int PawnEggsUsed(float pawnCyclesElapsed, float avglittersize)
- {
- return Mathf.CeilToInt((Pawn.relations?.ChildrenCount ?? 0) / Configurations.ImplantationChanceDefault);
- }
-
- public override void CompExposeData()
- {
- base.CompExposeData();
- Scribe_Values.Look(ref hadOvulatoryStage, "hadOvulatoryStage", false);
- }
-
- protected override void PostFollicularStage()
- {
- estrusflag = false;
- hadOvulatoryStage = false;
- GoNextStage(Stage.Luteal);
- }
-
- protected override void OvulatoryAction()
- {
- base.OvulatoryAction();
- hadOvulatoryStage = true;
- }
-
- protected override void LutealAction()
- {
- base.LutealAction();
- if (curStage != Stage.Luteal) hadOvulatoryStage = false;
- }
-
- protected override void AfterCumIn(Pawn cummer)
- {
- base.AfterCumIn(cummer);
- if (curStage == Stage.Follicular) GoNextStage(Stage.Ovulatory);
- }
-
- public override bool IsDangerDay
- {
- get
- {
- if (Pawn.HasIUD()) return false;
-
- switch (curStage)
- {
- case Stage.Follicular:
- case Stage.Ovulatory:
- return true;
- case Stage.Luteal:
- return hadOvulatoryStage && curStageTicks < EggLifespanTicks;
- default:
- return false;
- }
- }
- }
-
- protected override bool ShouldBeInEstrus()
- {
- if (curStage == Stage.Luteal && !hadOvulatoryStage) return false;
- else return base.ShouldBeInEstrus();
- }
-
- protected override float RandomOvulationChance => 0;
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs
deleted file mode 100644
index afca25e..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Menstruation.cs
+++ /dev/null
@@ -1,2098 +0,0 @@
-using RimWorld;
-using RimWorld.Planet;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- [Flags]
- public enum SeasonalBreed
- {
- Always = 0,
- Spring = 1,
- Summer = 2,
- Fall = 4,
- Winter = 8,
- FirstHalf = Spring | Summer,
- SecondHalf = Fall | Winter
- }
-
-
- public class CompProperties_Menstruation : HediffCompProperties
- {
- public float maxCumCapacity; // ml
- public float baseImplantationChanceFactor;
- public float basefertilizationChanceFactor;
- public int follicularIntervalDays = 14; //before ovulation including beginning of bleeding
- public int ovulationIntervalHours = 12; //between the end of follicular and the egg emerging
- public int lutealIntervalDays = 14; //after ovulation until bleeding
- public int bleedingIntervalDays = 6; //must be less than folicularIntervalDays
- public int recoveryIntervalDays = 10; //additional infertile days after gave birth
- public int eggLifespanDays = 2; //fertiledays = ovaluationday - spermlifespan ~ ovaluationday + egglifespanday
- public string wombTex = "Womb/Womb"; //fertiledays = ovaluationday - spermlifespan ~ ovaluationday + egglifespanday
- public string vagTex = "Genitals/Vagina"; //fertiledays = ovaluationday - spermlifespan ~ ovaluationday + egglifespanday
- public bool infertile = false;
- public bool concealedEstrus = false;
- public SeasonalBreed breedingSeason = SeasonalBreed.Always;
- public int estrusDaysBeforeOvulation = 3;
- public int eggMultiplier = 1;
-
-
- public CompProperties_Menstruation()
- {
-
- compClass = typeof(HediffComp_Menstruation);
- }
- }
-
-
- public class CompProperties_Anus : HediffCompProperties
- {
- public string analTex = "Genitals/Anal";
-
- public CompProperties_Anus()
- {
- compClass = typeof(HediffComp_Anus);
- }
- }
-
- public class HediffComp_Menstruation : HediffComp
- {
- const float minmakefilthvalue = 1.0f;
- const int maxImplantDelayHours = 30 * GenDate.HoursPerDay;
- const int minImplantAgeHours = 3 * GenDate.HoursPerDay;
- const float fluidLeakThreshold = 3.5f; // ml per filth produced
-
- public CompProperties_Menstruation Props => (CompProperties_Menstruation)props;
- public Stage curStage = Stage.Follicular;
- public int curStageTicks = 0; // Actual number of ticks equals this / cycleAcceleration
- private int tickInterval = -1;
- const int recalculateTickInterval = GenTicks.TickLongInterval;
- public bool loaded = false;
- public bool initError = false;
- public int ovarypower = -100000;
- public int eggstack = 0;
- public bool DoCleanWomb = false;
-
- public enum Stage
- {
- Follicular,
- Ovulatory,
- Luteal,
- Bleeding,
- Pregnant,
- Recover,
- None,
- Infertile,
- Anestrus
- }
-
- public enum EstrusLevel
- {
- None,
- Concealed,
- Visible
- }
-
- public static readonly Dictionary StageTexture = new Dictionary()
- {
- { Stage.Follicular, TextureCache.FollicularTexture },
- { Stage.Ovulatory, TextureCache.OvulatoryTexture },
- { Stage.Luteal, TextureCache.LutealTexture },
- { Stage.Bleeding, TextureCache.BleedingTexture },
- { Stage.Pregnant, TextureCache.PregnantTexture },
- { Stage.Recover, TextureCache.RecoverTexture }
- };
-
-
- protected List cums;
- protected List eggs;
- protected float cycleSpeed = -1;
- protected float cycleVariability = -1;
- protected int currentIntervalTicks = -1; // Actual number of ticks equals this / cycleAcceleration
- protected float crampPain = -1;
- protected float fluidToLeak = 0;
- protected Need sexNeed = null;
- protected string customwombtex = null;
- protected string customvagtex = null;
- protected bool estrusflag = false;
- protected float? ovulationChanceCache = null; // Dirtied every simulation
- protected float? implantationChanceCache = null;
- 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 int eggLifeSpanTicks = GenDate.DaysToTicks(2);
- protected EstrusLevel estrusLevel = EstrusLevel.Visible;
- protected float ovulationFactor = 1f;
- protected bool noBleeding = false;
-
- private static readonly SimpleCurve SexFrequencyCurve = new SimpleCurve()
- {
- new CurvePoint(0.4f,0.05f),
- new CurvePoint(0.6f,0.1f),
- new CurvePoint(0.8f,0.25f),
- new CurvePoint(1.0f,0.5f)
- };
-
- private static readonly SimpleCurve SexSatisfactionCurve = new SimpleCurve()
- {
- new CurvePoint(0.4f,0.5f),
- new CurvePoint(0.6f,0.6f),
- new CurvePoint(0.8f,0.7f),
- new CurvePoint(1.0f,0.8f)
- };
-
- private static readonly SimpleCurve FertilityCurve = new SimpleCurve()
- {
- new CurvePoint(0.4f,0.01f),
- new CurvePoint(0.6f,0.1f),
- new CurvePoint(0.8f,0.25f),
- new CurvePoint(1.0f,0.5f)
- };
-
- protected int TickInterval
- {
- get
- {
- if (tickInterval <= 0)
- {
- if (Pawn.IsAnimal()) tickInterval = Configurations.AnimalTickInterval;
- else if (Pawn.IsColonist || Pawn.IsPrisonerOfColony || Pawn.IsSlaveOfColony) tickInterval = Configurations.ColonistTickInterval;
- else tickInterval = Configurations.NonColonistTickInterval;
- if (tickInterval < Configurations.TickIntervalMinimum) tickInterval = Configurations.TickIntervalMinimum;
- else if (tickInterval > Configurations.TickIntervalMaximum) tickInterval = Configurations.TickIntervalMaximum;
- }
- return tickInterval;
- }
- set => tickInterval = value;
- }
-
- public float HoursBetweenSimulations => (float)TickInterval / GenDate.TicksPerHour;
-
- public Hediff Pregnancy
- {
- get
- {
- if (pregnancy == null) return null;
- else if (!Pawn.health.hediffSet.hediffs.Contains(pregnancy))
- {
- pregnancy = null;
- return null;
- }
- else return pregnancy;
- }
-
- set
- {
- pregnancy = value;
- if (pregnancy != null && curStage != Stage.Pregnant)
- GoNextStage(Stage.Pregnant);
- }
- }
-
- public int OvaryPowerThreshold
- {
- get
- {
- if (opcache.HasValue) return opcache.Value;
- const float yearsBeforeMenopause = 6.0f;
- opcache = (int)(RaceCyclesPerYear() *
- AverageLitterSize() *
- yearsBeforeMenopause *
- (Pawn.RaceProps.lifeExpectancy / ThingDefOf.Human.race.lifeExpectancy));
- if (opcache <= 0) opcache = 1;
- return opcache.Value;
- }
- }
-
- // >= 1: Normal cycles
- // 1 - 0: Climacteric
- // <= 0: Menopause
- public float EggHealth
- {
- get
- {
- if (!Configurations.EnableMenopause || Props.infertile) return Mathf.Max(1.0f, ovarypower / OvaryPowerThreshold);
- else return (float)ovarypower / OvaryPowerThreshold;
- }
- }
-
- public float SexFrequencyModifier
- {
- get
- {
- float eggHealth = EggHealth;
- if (eggHealth >= 1) return 1.0f;
- else if (eggHealth <= 0) return 0.01f;
- else return SexFrequencyCurve.Evaluate(eggHealth);
- }
- }
-
- public float SexSatisfactionModifier
- {
- get
- {
- float eggHealth = EggHealth;
- if (eggHealth >= 1) return 1.0f;
- else if (eggHealth <= 0) return 0.5f;
- else return SexSatisfactionCurve.Evaluate(eggHealth);
- }
- }
-
- public float FertilityModifier
- {
- get
- {
- float eggHealth = EggHealth;
- if (eggHealth >= 1) return 1.0f;
- else if (eggHealth <= 0) return 0.0f;
- else return FertilityCurve.Evaluate(eggHealth);
- }
- }
-
- public float TotalCum
- {
- get => cums?.Sum(cum => cum.Volume) ?? 0;
- }
- public float TotalFertCum
- {
- get => cums?.Where(cum => CumCanFertilize(cum)).Sum(cum => cum.FertVolume) ?? 0;
- }
- public float TotalCumPercent
- {
- get => cums?.Sum(cum => cum.Volume) / (Props.maxCumCapacity * Pawn.BodySize) ?? 0;
- }
- public float CumCapacity
- {
- get
- {
- float res = Props.maxCumCapacity * Pawn.BodySize;
- if (curStage != Stage.Pregnant || (pregnancy?.Severity ?? 0f) < 0.175f) res *= 500f;
- return res;
- }
- }
- //make follicular interval into half and double egg lifespan
- public float CycleFactor
- {
- get
- {
- if (Pawn.IsBreeder()) return 0.5f;
-
- return 1.0f;
- }
- }
-
- // I hate doing this, but it's the least bad option
- private bool calculatingOvulationChance = false;
- public bool CalculatingOvulationChance { get => calculatingOvulationChance; }
-
- private float CalculatedOvulationChance()
- {
- float ovulationChance = 1.0f;
- if (EggHealth <= 0.0f) return 0.0f;
- if (EggHealth < 1.0f / 3.0f) ovulationChance = 0.8f;
- if (ModsConfig.BiotechActive && xxx.is_human(Pawn))
- {
- if (Pawn.SterileGenes()) return 0.0f;
- if (!Pawn.RaceHasFertility()) return 0.0f;
- if (AndroidsCompatibility.IsAndroid(Pawn) && parent.def != Genital_Helper.archotech_vagina) return 0.0f;
-
- float ageFactor = 1.0f;
- StatDefOf.Fertility.GetStatPart()?.TransformValue(StatRequest.For(Pawn), ref ageFactor);
- if (ageFactor <= 0.0f) return 0.0f; // Too young or too old
-
- if (Pawn.IsBreeder()) ovulationChance *= 10.0f;
- try
- {
- 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
- }
- finally
- {
- calculatingOvulationChance = false;
- StatDefOf.Fertility.Worker.ClearCacheForThing(Pawn);
- }
- }
- return ovulationChance;
- }
-
- private float CalculatedImplantChance()
- {
- if (ModsConfig.BiotechActive && xxx.is_human(Pawn))
- {
- // Implant factor will be based solely on pawn age, plus any rollover from ovulation chance
- float factor = 1.0f;
- StatDefOf.Fertility.GetStatPart()?.TransformValue(StatRequest.For(Pawn), ref factor);
- if (factor <= 0.0f) return 0.0f;
- if (OvulationChance > 1.0f) factor *= OvulationChance;
- return Props.baseImplantationChanceFactor * FertilityModifier * factor;
- }
- else
- {
- return Pawn.health.capacities.GetLevel(xxx.reproduction) * Props.baseImplantationChanceFactor * FertilityModifier * (Pawn.IsBreeder() ? 10.0f : 1.0f);
- }
- }
-
- public float OvulationChance
- {
- get
- {
- if (ovulationChanceCache == null) ovulationChanceCache = CalculatedOvulationChance();
- return ovulationChanceCache.Value;
- }
- }
-
- // Before configuration setting
- public float ImplantChance
- {
- get
- {
- if (implantationChanceCache == null) implantationChanceCache = CalculatedImplantChance();
- return implantationChanceCache.Value;
- }
- }
-
- public void ClearOvulationImplantationCache()
- {
- ovulationChanceCache = null;
- implantationChanceCache = null;
- }
-
- public IEnumerable GetCumsInfo
- {
- get
- {
- if (cums.NullOrEmpty()) yield return Translations.Info_noCum;
- else foreach (Cum cum in cums)
- yield return string.Format("{0}: {1:0.##}ml", cum.notcum ? cum.notcumLabel : cum.pawn?.Label, cum.Volume);
- }
- }
- public Color GetCumMixtureColor
- {
- get
- {
- Color mixedcolor = Color.white;
-
- if (cums.NullOrEmpty()) return mixedcolor;
-
- float mixedsofar = 0;
- foreach (Cum cum in cums)
- {
- if (cum.Volume > 0)
- {
- mixedcolor = Colors.CMYKLerp(mixedcolor, cum.Color, cum.Volume / (mixedsofar + cum.Volume));
- mixedsofar += cum.Volume;
- }
- }
- return mixedcolor;
- }
- }
-
- public Stage CurrentVisibleStage
- {
- get
- {
- if (curStage == Stage.Pregnant)
- {
- if (Configurations.InfoDetail == Configurations.DetailLevel.All || (pregnancy?.Visible ?? false))
- return Stage.Pregnant;
- else
- return Stage.Luteal;
- }
- return curStage;
- }
- }
-
- public string GetCurStageLabel
- {
- get
- {
- switch (CurrentVisibleStage)
- {
- case Stage.Follicular:
- return Translations.Stage_Follicular + (EggHealth < 1f ? " " + Translations.Stage_Climacteric : "");
- case Stage.Ovulatory:
- return Translations.Stage_Ovulatory + (EggHealth < 1f ? " " + Translations.Stage_Climacteric : "");
- case Stage.Luteal:
- return Translations.Stage_Luteal + (EggHealth < 1f ? " " + Translations.Stage_Climacteric : "");
- case Stage.Bleeding:
- return Translations.Stage_Bleeding + (EggHealth < 1f ? " " + Translations.Stage_Climacteric : "");
- case Stage.Pregnant:
- return Translations.Stage_Pregnant;
- case Stage.Recover:
- return Translations.Stage_Recover;
- case Stage.None:
- case Stage.Infertile:
- if (EggHealth <= 0f) return Translations.Stage_Menopause;
- else return Translations.Stage_None;
- case Stage.Anestrus:
- return Translations.Stage_Anestrus;
- default:
- return "";
- }
- }
-
- }
- public virtual string GetCurStageDesc
- {
- get
- {
- switch (CurrentVisibleStage)
- {
- case Stage.Follicular:
- return Translations.Stage_Follicular_Desc + (EggHealth < 1f ? " " + Translations.Stage_Climacteric_Desc : "");
- case Stage.Ovulatory:
- return Translations.Stage_Ovulatory_Desc + (EggHealth < 1f ? " " + Translations.Stage_Climacteric_Desc : "");
- case Stage.Luteal:
- return Translations.Stage_Luteal_Desc + (EggHealth < 1f ? " " + Translations.Stage_Climacteric_Desc : "");
- case Stage.Bleeding:
- return Translations.Stage_Bleeding_Desc + (EggHealth < 1f ? " " + Translations.Stage_Climacteric_Desc : "");
- case Stage.Pregnant:
- return Translations.Stage_Pregnant_Desc;
- case Stage.Recover:
- return Translations.Stage_Recover_Desc;
- case Stage.None:
- case Stage.Infertile:
- if (EggHealth <= 0f) return Translations.Stage_Menopause_Desc;
- else return Translations.Stage_None_Desc;
- case Stage.Anestrus:
- return Translations.Stage_Anestrus_Desc;
- default:
- return "";
- }
- }
- }
-
- public string WombTex
- {
- get => customwombtex ?? Props.wombTex;
- set => customwombtex = value;
- }
- public string VagTex
- {
- get => customvagtex ?? Props.vagTex;
- set => customvagtex = value;
- }
- public string GetFertilizingInfo
- {
- get
- {
- if (eggs.NullOrEmpty()) return "";
-
- StringBuilder res = new StringBuilder();
- int fertilized = eggs.Count(egg => egg.fertilized);
- if (fertilized != 0) res.AppendFormat("{0} {1}", fertilized, Translations.Dialog_WombInfo05);
- if (fertilized != 0 && eggs.Count - fertilized != 0) res.Append(", ");
- if (cums.NullOrEmpty() || TotalFertCum == 0)
- {
- if (eggs.Count - fertilized != 0) res.AppendFormat("{0} {1}", eggs.Count - fertilized, Translations.Dialog_WombInfo07);
- }
- else
- {
- if (eggs.Count - fertilized != 0) res.AppendFormat("{0} {1}", eggs.Count - fertilized, Translations.Dialog_WombInfo06);
- }
- return res.ToString();
- }
- }
- public bool IsEggFertilizing
- {
- get
- {
- if (eggs.NullOrEmpty()) return false;
- return cums?.Any(cum => cum.FertVolume > 0) ?? false;
- }
- }
- ///
- /// returns fertstage. if not fertilized returns -1
- ///
- public int EggFertilizedTime
- {
- get
- {
- if (eggs?.All(egg => !egg.fertilized) ?? true) return -1;
- return eggs.Max(egg => egg.ticksSinceFertilization);
- }
- }
- public IEnumerable GetCummersAndFertilizers()
- {
- if (!cums.NullOrEmpty())
- foreach (Cum cum in cums)
- yield return cum.pawn;
- if (!eggs.NullOrEmpty())
- foreach (Egg egg in eggs)
- yield return egg.fertilizer;
- }
- public bool IsEggExist
- {
- get => !eggs.NullOrEmpty();
- }
-
- public int EggLifespanTicks
- {
- get => eggLifeSpanTicks;
- }
-
- public virtual bool IsDangerDay
- {
- get
- {
- if (Pawn.HasIUD()) return false;
-
- switch (curStage)
- {
- case Stage.Follicular:
- return curStageTicks > 0.7f * currentIntervalTicks;
- case Stage.Ovulatory:
- return true;
- case Stage.Luteal:
- return curStageTicks < EggLifespanTicks;
- default:
- return false;
- }
- }
- }
- public int GetNumOfEggs
- {
- get => eggs?.Count ?? 0;
- }
- public Color BloodColor
- {
- get
- {
- try
- {
- return Utility.BloodDef(Pawn).graphicData.color;
- }
- catch (Exception ex)
- {
- Log.WarningOnce($"Error when fetching blood color of {Pawn}: {ex}", Pawn.thingIDNumber + 657493519);
- return Colors.blood;
- }
- }
- }
-
- public int CurStageIntervalTicks
- {
- get => currentIntervalTicks;
- }
-
- public float StageProgress
- {
- get
- {
- if (pregnancy == null) return Mathf.Clamp01((float)curStageTicks / currentIntervalTicks);
- bool is_discovered = false;
- switch (pregnancy)
- {
- case Hediff_BasePregnancy rjw_preg:
- is_discovered = rjw_preg.is_discovered;
- break;
- case Hediff_Pregnant vanilla_preg:
- is_discovered = vanilla_preg.Visible;
- break;
- case Hediff_Labor _:
- case Hediff_LaborPushing _:
- return 1.0f;
- }
-
- if (is_discovered || Configurations.infoDetail == Configurations.DetailLevel.All) return pregnancy.Severity;
-
- // Luteal will appear to progress, hitting the end of the phase when the pregnancy is discovered
- float discoveryTime = 0.5f;
- if (Pawn.story?.bodyType == BodyTypeDefOf.Thin) discoveryTime = 0.25f;
- else if (Pawn.story?.bodyType == BodyTypeDefOf.Female) discoveryTime = 0.35f;
- // Estimated; there's no way to get the exact value after the fact without writing it into the save
- float lutealProgressWhenImplanted = Math.Min(0.5f, maxImplantDelayHours / (Props.lutealIntervalDays * GenDate.HoursPerDay));
-
- return GenMath.LerpDouble(0, discoveryTime, lutealProgressWhenImplanted, 1.0f, pregnancy.Severity);
- }
- }
-
- public float StageProgessNextUpdate
- {
- get
- {
- if (pregnancy != null) return StageProgress;
- return Mathf.Clamp01((float)(curStageTicks + TickInterval * Configurations.CycleAcceleration) / currentIntervalTicks);
- }
- }
-
- public Texture2D GetStageTexture
- {
- get
- {
- if (!StageTexture.TryGetValue(CurrentVisibleStage, out Texture2D tex)) tex = TextureCache.PregnantTexture;
- return tex;
- }
- }
-
- public override void CompExposeData()
- {
- base.CompExposeData();
- Scribe_Collections.Look(ref cums, saveDestroyedThings: true, label: "cums", lookMode: LookMode.Deep, ctorArgs: new object[0]);
- Scribe_Collections.Look(ref eggs, saveDestroyedThings: true, label: "eggs", lookMode: LookMode.Deep, ctorArgs: new object[0]);
- Scribe_Values.Look(ref curStage, "curStage", curStage, true);
- Scribe_Values.Look(ref curStageTicks, "curStageTicks", curStageTicks, true);
- Scribe_Values.Look(ref cycleSpeed, "cycleSpeed", cycleSpeed, true);
- Scribe_Values.Look(ref cycleVariability, "cycleVariability", cycleVariability, true);
- Scribe_Values.Look(ref currentIntervalTicks, "currentIntervalTicks", currentIntervalTicks, true);
- Scribe_Values.Look(ref crampPain, "crampPain", crampPain, true);
- Scribe_Values.Look(ref fluidToLeak, "fluidToLeak", 0);
- Scribe_Values.Look(ref ovarypower, "ovarypower", ovarypower, true);
- Scribe_Values.Look(ref eggstack, "eggstack", 0);
- Scribe_Values.Look(ref estrusflag, "estrusflag", false);
- Scribe_Values.Look(ref DoCleanWomb, "DoCleanWomb", false);
- Scribe_References.Look(ref pregnancy, "pregnancy");
- if (Scribe.mode == LoadSaveMode.PostLoadInit)
- {
- Initialize();
- // Biotech labor errors if the mother is also the father, so don't let that happen
- if (pregnancy is HediffWithParents vanillaPreg && vanillaPreg.Mother == vanillaPreg.Father && vanillaPreg.Mother != null)
- {
- Log.Warning($"Pregnancy of {Pawn} has same mother and father, setting father to null");
- vanillaPreg.SetParents(vanillaPreg.Mother, null, vanillaPreg.geneSet);
- }
- }
- }
-
-
- public override void CompPostPostAdd(DamageInfo? dinfo)
- {
- if (!loaded)
- {
- Initialize();
- }
- }
-
- 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()
- {
- eggLifeSpanTicks = GenDate.DaysToTicks(Props.eggLifespanDays);
- estrusLevel = Props.concealedEstrus ? EstrusLevel.Concealed : EstrusLevel.Visible;
- ovulationFactor = 1f;
- noBleeding = false;
- opcache = null;
-
- MenstruationModExtension thingExtension = Pawn.def.GetModExtension();
- 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()).Where(ext => ext != null))
- ProcessExtension(geneExtension);
-
- foreach (MenstruationModExtension hediffExtension in Pawn.health.hediffSet.hediffs.Select(hediff => hediff.def.GetModExtension()).Where(ext => ext != null))
- ProcessExtension(hediffExtension);
-
- 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;
- if (Pawn.SpawnedOrAnyParentSpawned || Pawn.IsCaravanMember() || PawnUtility.IsTravelingInTransportPodWorldObject(Pawn)) return true;
-
- return false;
- }
-
- public bool ShouldBeInfertile()
- {
- if (pregnancy != null) return false;
- if (ImplantChance <= 0.0f) return true;
- // Give the last egg ovulated a chance to implant
- if (curStage == Stage.Luteal || curStage == Stage.Bleeding || curStage == Stage.Recover) return false;
- if (EggHealth <= 0.0f) return true;
- return false;
- }
-
- public override void CompPostTick(ref float severityAdjustment)
- {
- base.CompPostTick(ref severityAdjustment);
- // If an exception makes it out, RW will remove the hediff, so catch it here
- try
- {
- if (Pawn.IsHashIntervalTick(recalculateTickInterval)) TickInterval = -1; // Every so often, force TickInterval to be recalculated in case the pawn's status changed.
- if (!Pawn.IsHashIntervalTick(TickInterval)) return;
-
- if (!ShouldSimulate()) return;
-
- // Initialize immediately if needed, but if there's an error, then don't spam it every tick
- if (!loaded && !initError)
- {
- Log.Warning($"{Pawn}'s womb is ticking, but was not initialized first");
- Initialize();
- }
-
- if (initError) Log.Warning($"Attempting to process {Pawn}'s womb uninitialized");
-
- if (Pregnancy != null && curStage != Stage.Pregnant)
- {
- Log.Warning($"{Pawn}'s womb has a pregnancy, but was not in the pregnant stage");
- GoNextStage(Stage.Pregnant);
- }
-
- BeforeSimulator();
-
- switch (curStage)
- {
- case Stage.Follicular:
- FollicularAction();
- break;
- case Stage.Ovulatory:
- OvulatoryAction();
- break;
- case Stage.Luteal:
- LutealAction();
- break;
- case Stage.Bleeding:
- BleedingAction();
- break;
- case Stage.Pregnant:
- PregnantAction();
- break;
- case Stage.Recover:
- RecoverAction();
- break;
- case Stage.None:
- break;
- case Stage.Infertile:
- InfertileAction();
- break;
- case Stage.Anestrus:
- AnestrusAction();
- break;
- default:
- GoNextStage(Stage.Follicular);
- break;
- }
-
- AfterSimulator();
- }
- catch (Exception ex)
- {
- Log.Error($"Error processing womb of {Pawn}: {ex}");
- }
- }
-
- public override void CompPostPostRemoved()
- {
- // If a hediff is removed from a pawn that does not have it, CompPostPostRemoved is still called on the pawn that does.
- // If it was a legitimate removal, then it won't be in this pawn's hediff list anymore, as that removal occurs first
- if (Pawn.health.hediffSet.hediffs.Contains(parent))
- {
- Log.Warning($"Attempted to remove menstruation comp from wrong pawn ({Pawn}).");
- return;
- }
- if (Pregnancy.IsMechanoidPregnant()) return;
- switch (Pregnancy)
- {
- case null:
- break;
- case Hediff_BasePregnancy rjw_preg:
- rjw_preg.Miscarry();
- break;
- case Hediff_Pregnant vanilla_preg:
- vanilla_preg.Miscarry();
- break;
- }
- }
-
- public override string CompTipStringExtra
- {
- get
- {
- if (Pawn.Dead || !Pawn.ShouldCycle()) return null;
- StringBuilder tip = new StringBuilder();
- tip.Append(Translations.Dialog_WombInfo01);
- tip.Append(": ");
- tip.Append(GetCurStageLabel);
- string fertInfo = GetFertilizingInfo;
- if (CurrentVisibleStage == Stage.Luteal && fertInfo.Length > 0)
- {
- tip.AppendLine();
- tip.Append(fertInfo);
- }
- return tip.ToString();
- }
- }
-
- protected virtual int TicksToNextStage()
- {
- return Math.Max(0, (currentIntervalTicks - curStageTicks) / Configurations.CycleAcceleration);
- }
-
- public override string CompDebugString()
- {
- if (Pawn.Dead ||
- !Pawn.ShouldCycle() ||
- curStage == Stage.None ||
- curStage == Stage.Infertile ||
- curStage == Stage.Pregnant) return null;
- StringBuilder debugString = new StringBuilder();
- debugString.Append($"Time to next state: ");
- debugString.Append(GenDate.ToStringTicksToPeriod(TicksToNextStage()));
- return debugString.ToString();
- }
-
- ///
- /// Get fluid in womb that not a cum
- ///
- ///
- ///
- public Cum GetNotCum(string notcumlabel)
- {
- return cums?.Find(cum => cum.notcum && cum.notcumLabel.Equals(notcumlabel));
- }
-
- ///
- /// Get pawn's cum in womb
- ///
- ///
- ///
- /// Used by menstruation fluids integration hook mod
- public Cum GetCum(Pawn pawn)
- {
- return cums?.Find(cum => !cum.notcum && cum.pawn == pawn);
- }
-
- public IEnumerable GetFluids()
- {
- return cums ?? Enumerable.Empty();
- }
-
- public IEnumerable GetFluids(Pawn pawn)
- {
- return cums?.Where(cum => cum.pawn == pawn) ?? Enumerable.Empty();
- }
-
- protected float PulloutChance(Pawn cummer, float cumFertility)
- {
- if (cumFertility <= 0 ||
- !IsDangerDay ||
- cummer.relations.GetPregnancyApproachForPartner(Pawn) != PregnancyApproach.AvoidPregnancy ||
- Pawn.CurJobDef == xxx.knotted
- )
- return 0f;
-
- const float pulloutSuccessRate = 0.8f;
- const float fetishPulloutSuccessModifier = 0.25f;
- float successChance = pulloutSuccessRate;
- if (cummer.HasImpregnationFetish()) successChance *= fetishPulloutSuccessModifier;
- if (Pawn.HasImpregnationFetish() || Pawn.IsInEstrus()) successChance *= fetishPulloutSuccessModifier;
- return successChance;
- }
-
- ///
- /// Inject pawn's cum into womb
- ///
- ///
- ///
- ///
- ///
- public void CumIn(Pawn cummer, float volume, float fertility = 1.0f, bool precum = false)
- {
- if (volume <= 0 || float.IsNaN(volume) || float.IsInfinity(volume))
- {
- if (!precum) Log.Warning($"{cummer} trying to cum inside of {Pawn} with {volume} fluid");
- return;
- }
- if (!precum && Rand.Chance(PulloutChance(cummer, fertility))) return;
- if (Pawn.HasIUD()) fertility /= 100f;
- float cumd = TotalCumPercent;
- float tmp = TotalCum + volume;
- if (tmp > CumCapacity)
- {
- float cumoutrate = 1 - (CumCapacity / tmp);
- bool merged = false;
- if (!cums.NullOrEmpty()) foreach (Cum cum in cums)
- {
- if (cum.pawn?.Equals(cummer) ?? false)
- {
- cum.MergeWithCum(volume, fertility);
- merged = true;
- }
- cum.DismishForce(cumoutrate);
- }
- if (!merged) cums.Add(new Cum(cummer, volume * (1 - cumoutrate), fertility));
- }
- else
- {
-
- bool merged = false;
- if (!cums.NullOrEmpty()) foreach (Cum cum in cums)
- {
- if (cum.pawn?.Equals(cummer) ?? false)
- {
- cum.MergeWithCum(volume, fertility);
- merged = true;
- }
- }
- if (!merged) cums.Add(new Cum(cummer, volume, fertility));
- }
- cumd = TotalCumPercent - cumd;
-
- if (!precum)
- {
- Pawn.records.AddTo(VariousDefOf.AmountofCreampied, volume);
- AfterCumIn(cummer);
- AfterFluidIn(cumd);
- }
- }
-
- ///
- /// Inject pawn's fluid into womb
- ///
- ///
- ///
- ///
- ///
- ///
- public void CumIn(Pawn cummer, float volume, string notcumlabel, float decayresist = 0, ThingDef filthdef = null)
- {
- if (volume <= 0)
- {
- Log.Warning($"{cummer} trying to cum {notcumlabel} inside of {Pawn} with 0 fluid");
- return;
- }
- float tmp = TotalCum + volume;
- float cumd = TotalCumPercent;
- if (tmp > CumCapacity)
- {
- float cumoutrate = 1 - (CumCapacity / tmp);
- bool merged = false;
- if (!cums.NullOrEmpty()) foreach (Cum cum in cums)
- {
- if (cum.notcum && (cum.pawn?.Equals(cummer) ?? false) && cum.notcumLabel.Equals(notcumlabel))
- {
- cum.MergeWithFluid(volume, decayresist, filthdef);
- merged = true;
- }
- cum.DismishForce(cumoutrate);
- }
- if (!merged) cums.Add(new Cum(cummer, volume * (1 - cumoutrate), notcumlabel, decayresist, filthdef));
- }
- else
- {
-
- bool merged = false;
- if (!cums.NullOrEmpty()) foreach (Cum cum in cums)
- {
- if (cum.notcum && (cum.pawn?.Equals(cummer) ?? false) && cum.notcumLabel.Equals(notcumlabel))
- {
- cum.MergeWithFluid(volume, decayresist, filthdef);
- merged = true;
- }
- }
- if (!merged) cums.Add(new Cum(cummer, volume, notcumlabel, decayresist, filthdef));
- }
- cumd = TotalCumPercent - cumd;
- AfterNotCumIn();
- AfterFluidIn(cumd);
- }
-
- protected virtual void AfterCumIn(Pawn cummer)
- {
- ThoughtCumInside(cummer);
- TaleCumInside(cummer);
- }
-
- protected virtual void AfterNotCumIn()
- {
-
- }
-
- ///
- /// Action for both Cum and NotCum
- ///
- /// Fluid deviation
- protected virtual void AfterFluidIn(float fd)
- {
-
-
- }
-
- protected void BeforeCumOut(out Absorber absorber)
- {
- Hediff asa = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_ASA);
- float asafactor = asa?.Severity ?? 0f;
-
- if (Pawn.HasIUD()) antisperm = 0.70f + asafactor;
- else antisperm = 0.0f + asafactor;
-
- absorber = Pawn.apparel?.WornApparel.OfType().FirstOrDefault();
- if (absorber != null)
- {
- absorber.WearEffect(TickInterval);
- if (absorber.dirty && absorber.EffectAfterDirty) absorber.DirtyEffect(TickInterval);
- }
- }
-
- ///
- /// For natural leaking
- ///
- protected virtual void AfterCumOut(float amount, List filthlabels)
- {
- fluidToLeak += amount;
- if (fluidToLeak > fluidLeakThreshold) Pawn.needs?.mood?.thoughts?.memories?.TryGainMemory(VariousDefOf.LeakingFluids);
- for (; fluidToLeak > fluidLeakThreshold; fluidToLeak -= fluidLeakThreshold)
- {
- if (cums.Count > 1) MakeCumFilthMixture(fluidLeakThreshold, filthlabels);
- else if (cums.Count == 1) MakeCumFilth(cums.First(), fluidLeakThreshold);
- }
- }
-
- ///
- /// For all type of leaking
- ///
- ///
- protected virtual void AfterFluidOut(float fd)
- {
-
- }
-
- // Separate function for menstruation fluids integration hook mod
- protected virtual float LeakFactor(Cum cum)
- {
- if (Pawn.CurJobDef == xxx.knotted) return 0f;
- float leakFactor = 1.0f;
- if (TotalCum > Props.maxCumCapacity * Pawn.BodySize) leakFactor = Math.Min(1 + (TotalCum - Props.maxCumCapacity * Pawn.BodySize) / 10, 2f);
-
- return leakFactor;
- }
-
-
- ///
- /// Excrete cums in womb naturally
- ///
- public void CumOut()
- {
- float totalLeak = 0f;
- float cumd = TotalCumPercent;
- List filthLabels = new List(cums.Count);
- BeforeCumOut(out Absorber absorber);
- if (cums.NullOrEmpty()) return;
- foreach (Cum cum in cums)
- {
- if (Rand.Chance(HoursBetweenSimulations)) cum.CumEffects(Pawn);
- float vd = 0;
- if (absorber == null || !absorber.dirty || absorber.LeakAfterDirty)
- vd = cum.DismishNatural(LeakFactor(cum), this, antisperm);
- cum.MakeThinner(Configurations.CycleAcceleration * HoursBetweenSimulations);
- totalLeak += AbsorbCum(vd, absorber);
- string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
- filthLabels.Add(tmp.Replace(" x1", ""));
- }
- AfterCumOut(totalLeak, filthLabels);
- cums.RemoveAll(cum => cum.ShouldRemove());
- if (cums.NullOrEmpty()) fluidToLeak = 0;
- cumd = TotalCumPercent - cumd;
- AfterFluidOut(cumd);
- }
-
- ///
- /// Force excrete cums in womb and get excreted amount of specific cum.
- ///
- ///
- ///
- /// Amount of target cum
- public float CumOut(Cum targetcum, float portion = 0.1f)
- {
- if (cums.NullOrEmpty()) return 0;
- float totalLeak = 0;
- List filthLabels = new List(cums.Count);
- float outCum = 0;
- float cumd = TotalCumPercent;
- HashSet removeCums = new HashSet(cums.Count);
- foreach (Cum cum in cums)
- {
- float vd = cum.DismishForce(portion);
- if (cum.Equals(targetcum)) outCum = vd;
- //MakeCumFilth(cum, vd - cum.volume);
- string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
- filthLabels.Add(tmp.Replace(" x1", ""));
- totalLeak += vd;
- if (cum.ShouldRemove()) removeCums.Add(cum);
- }
- if (cums.Count > 1) MakeCumFilthMixture(totalLeak, filthLabels);
- else if (cums.Count == 1) MakeCumFilth(cums.First(), totalLeak);
- cums.RemoveAll(cum => removeCums.Contains(cum));
- if (cums.NullOrEmpty()) fluidToLeak = 0;
- cumd = TotalCumPercent - cumd;
- AfterFluidOut(cumd);
- return outCum;
- }
-
- ///
- /// Force excrete cums in womb and get mixture of cum.
- ///
- ///
- ///
- ///
- public CumMixture MixtureOut(ThingDef mixtureDef, float portion = 0.1f)
- {
- if (cums.NullOrEmpty()) return null;
- Color color = GetCumMixtureColor;
- float totalleak = 0;
- List cumlabels = new List(cums.Count);
- HashSet removecums = new HashSet(cums.Count);
- bool pure = true;
- foreach (Cum cum in cums)
- {
- float vd = cum.DismishForce(portion);
- string tmp = "FilthLabelWithSource".Translate(cum.FilthDef.label, cum.pawn?.LabelShort ?? "Unknown", 1.ToString());
- cumlabels.Add(tmp.Replace(" x1", ""));
- totalleak += vd;
- if (cum.ShouldRemove()) removecums.Add(cum);
- if (cum.notcum) pure = false;
- }
- cums.RemoveAll(cum => removecums.Contains(cum));
- if (cums.NullOrEmpty()) fluidToLeak = 0;
- return new CumMixture(Pawn, totalleak, cumlabels, color, mixtureDef, pure);
- }
-
- ///
- /// Debug: Remove all cums from a womb
- ///
- ///
- public void RemoveAllCums()
- {
- cums.Clear();
- }
-
- public void RemoveAllEggs()
- {
- eggs.Clear();
- }
-
-
- ///
- /// Fertilize eggs and return the result
- ///
- ///
- protected void FertilizationCheck()
- {
- if (eggs.NullOrEmpty()) return;
- foreach (Egg egg in eggs)
- {
- if (!egg.fertilized) egg.fertilizer = Fertilize();
- if (egg.fertilizer != null)
- {
- egg.fertilized = true;
- }
- }
- }
-
- public void Initialize()
- {
- initError = true;
-
- if (cums == null) cums = new List();
- if (eggs == null) eggs = new List();
-
- PreInitialize();
-
- if (Props.infertile)
- {
- curStage = Stage.None;
- loaded = true;
- initError = false;
- return;
- }
-
- if (cycleSpeed < 0f) cycleSpeed = Utility.RandGaussianLike(0.8f, 1.2f);
- if (cycleVariability < 0f) cycleVariability = MenstruationUtility.RandomVariabilityPercent();
-
- InitOvary();
-
- if (currentIntervalTicks < 0)
- {
- if (ShouldBeInfertile()) curStage = Stage.Infertile;
- else if (!IsBreedingSeason()) curStage = Stage.Anestrus;
- else curStage = RandomStage();
- if (curStage == Stage.Follicular)
- currentIntervalTicks = PeriodRandomizer(Stage.Follicular) - PeriodRandomizer(Stage.Bleeding);
- else
- currentIntervalTicks = PeriodRandomizer(curStage);
- if (currentIntervalTicks < 0) currentIntervalTicks = 0;
- else if (currentIntervalTicks < curStageTicks) curStageTicks = currentIntervalTicks;
- }
- if (crampPain < 0) crampPain = PainRandomizer();
- PostInitialize();
-
- TakeLoosePregnancy();
-
- //Log.Message(Pawn.Label + " - Initialized menstruation comp");
- loaded = true;
- initError = false;
- }
-
- protected virtual void PreInitialize()
- {
- DirtyStats();
- }
-
- protected virtual void PostInitialize()
- {
- }
-
- protected float AverageLitterSize()
- {
- float avglittersize;
- try
- {
- avglittersize = Mathf.Max(Rand.ByCurveAverage(Pawn.RaceProps.litterSizeCurve), 1.0f);
- }
- catch (NullReferenceException)
- {
- avglittersize = 1.0f;
- }
- avglittersize *= ovulationFactor;
- return avglittersize;
- }
-
- protected virtual float RaceCyclesPerYear()
- {
- int breedingSeasons = 0;
- if (Props.breedingSeason == SeasonalBreed.Always) breedingSeasons = 4;
- else
- {
- if ((Props.breedingSeason & SeasonalBreed.Spring) != 0) breedingSeasons++;
- if ((Props.breedingSeason & SeasonalBreed.Summer) != 0) breedingSeasons++;
- if ((Props.breedingSeason & SeasonalBreed.Fall) != 0) breedingSeasons++;
- if ((Props.breedingSeason & SeasonalBreed.Winter) != 0) breedingSeasons++;
- }
- float breedingRatio = breedingSeasons / 4.0f;
- return breedingRatio * GenDate.DaysPerYear / ((float)(Props.follicularIntervalDays + Props.lutealIntervalDays) / Configurations.CycleAccelerationDefault);
- }
-
- protected virtual int PawnEggsUsed(float pawnCyclesElapsed, float avglittersize)
- {
- return (int)(pawnCyclesElapsed * avglittersize);
- }
-
- public int GetOvaryPowerByAge()
- {
- float avglittersize = AverageLitterSize();
-
- float fertStartAge = Pawn.RaceProps.lifeStageAges?.Find(stage => stage.def.reproductive)?.minAge ?? 0.0f;
- float fertEndAge = Pawn.RaceProps.lifeExpectancy * (Pawn.IsAnimal() ? 0.96f : 0.58f); // RJW default fertility_endage for animal and humanlike
- if (fertEndAge < fertStartAge) fertEndAge = fertStartAge;
-
- float raceCyclesPerYear = RaceCyclesPerYear();
- int lifetimeCycles = (int)(raceCyclesPerYear * (fertEndAge - fertStartAge));
- int lifetimeEggs = (int)(lifetimeCycles * avglittersize * Props.eggMultiplier * Utility.RandGaussianLike(0.70f, 1.30f, 5));
-
- float pawnCyclesPerYear = raceCyclesPerYear * cycleSpeed;
- float pawnCyclesElapsed = Mathf.Max((Pawn.ageTracker.AgeBiologicalYearsFloat - fertStartAge) * pawnCyclesPerYear, 0.0f);
- int pawnEggsUsed = PawnEggsUsed(pawnCyclesElapsed, avglittersize);
-
- return Math.Max(lifetimeEggs - pawnEggsUsed, 0);
- }
-
- protected void InitOvary()
- {
- if (ovarypower < -50000)
- {
- ovarypower = GetOvaryPowerByAge();
- if (Props.infertile) curStage = Stage.None;
- else if (ovarypower < 1)
- {
- curStage = Stage.Infertile;
- }
- }
- }
-
- public void RecoverOvary(float multiply = 1.2f)
- {
- ovarypower = Math.Max(0, (int)(ovarypower * multiply));
- }
-
- protected virtual void BeforeSimulator()
- {
- ClearOvulationImplantationCache();
- CumOut();
- }
-
- protected virtual void AfterSimulator()
- {
- if (ShouldBeInfertile())
- {
- eggs.Clear();
- GoNextStage(Stage.Infertile);
- }
- if (EggHealth < 1f)
- {
- if (sexNeed == null) sexNeed = Pawn.needs.TryGetNeed(VariousDefOf.SexNeed);
- if (sexNeed == null) return;
- if (sexNeed.CurLevel < 0.5f) sexNeed.CurLevel += 0.01f * HoursBetweenSimulations / Math.Max(1, Pawn.GetMenstruationComps().Count());
- }
- }
-
- protected virtual bool ShouldBeInEstrus()
- {
- if (!loaded)
- Initialize();
- switch (curStage)
- {
- case Stage.Follicular:
- return curStageTicks > currentIntervalTicks - GenDate.DaysToTicks(Props.estrusDaysBeforeOvulation);
- case Stage.Ovulatory:
- return true;
- case Stage.Luteal:
- return curStageTicks < EggLifespanTicks;
- default:
- return false;
- }
- }
-
- public EstrusLevel GetEstrusLevel()
- {
- if (!ShouldBeInEstrus()) return EstrusLevel.None;
- else return estrusLevel;
- }
-
- public void SetEstrus()
- {
- if (estrusLevel == EstrusLevel.None) return;
- Hediff hediff = HediffMaker.MakeHediff(estrusLevel == EstrusLevel.Concealed ? VariousDefOf.Hediff_Estrus_Concealed : VariousDefOf.Hediff_Estrus, Pawn);
- Pawn.health.AddHediff(hediff);
- }
-
- public bool IsBreedingSeason()
- {
- if (Props.breedingSeason == SeasonalBreed.Always) return true;
-
- PlanetTile tile = Pawn.Tile;
- if (!tile.Valid) tile = Find.AnyPlayerHomeMap?.Tile ?? PlanetTile.Invalid;
- if (!tile.Valid) return true;
- if (tile.LayerDef.isSpace) return true;
- switch (GenLocalDate.Season(tile))
- {
- case Season.Spring:
- return (Props.breedingSeason & SeasonalBreed.Spring) != 0;
- case Season.Summer:
- case Season.PermanentSummer:
- return (Props.breedingSeason & SeasonalBreed.Summer) != 0;
- case Season.Fall:
- return (Props.breedingSeason & SeasonalBreed.Fall) != 0;
- case Season.Winter:
- case Season.PermanentWinter:
- return (Props.breedingSeason & SeasonalBreed.Winter) != 0;
- default:
- return true;
- }
- }
-
- public bool CumCanFertilize(Cum cum)
- {
- 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));
- }
-
- protected Pawn Fertilize()
- {
- if (cums == null) return null;
- List eligibleCum = cums.FindAll(cum => CumCanFertilize(cum));
- if (eligibleCum.Empty()) return null;
-
- float totalFertPower = eligibleCum.Sum(cum => cum.FertVolume);
-
- //float fertFailChancePerHour = Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor);
- //float fertFailChancePerInterval = Mathf.Pow(fertFailChancePerHour, (float)TickInterval / GenDate.TicksPerHour);
- float fertFailChancePerInterval = Mathf.Pow(1.0f - Configurations.FertilizeChance, totalFertPower * Props.basefertilizationChanceFactor * HoursBetweenSimulations);
-
- if (Rand.Chance(fertFailChancePerInterval)) return null;
-
- Pawn.records.AddTo(VariousDefOf.AmountofFertilizedEggs, 1);
- float selection = Rand.Range(0.0f, totalFertPower);
-
- foreach (Cum cum in eligibleCum)
- {
- selection -= cum.FertVolume;
- if (selection <= 0) return cum.pawn;
- }
-
- // We shouldn't reach here, but floating point errors exist, so just to be sure, select whomever came the most
- return eligibleCum.MaxBy(cum => cum.FertVolume).pawn;
- }
-
-
- protected bool Implant()
- {
- if (eggs.NullOrEmpty()) return false;
-
- HashSet deadeggs = new HashSet(eggs.Count);
- bool pregnant = false;
- foreach (Egg egg in eggs)
- {
- if (!egg.fertilized ||
- egg.ticksSinceFertilization < minImplantAgeHours * GenDate.TicksPerHour ||
- egg.ageTicks < Math.Min(GenDate.DaysToTicks(Props.lutealIntervalDays) / 2, maxImplantDelayHours * GenDate.TicksPerHour))
- continue;
- else if (egg.fertilizer == null || egg.fertilizer.Destroyed)
- {
- if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to null or destroyed father");
- deadeggs.Add(egg);
- continue;
- }
- else if (Pawn.health.hediffSet.GetFirstHediff() != null || pregnancy.IsMechanoidPregnant())
- {
- if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to insect or mechanoid pregnancy");
- deadeggs.Add(egg);
- continue;
- }
- else if (ModsConfig.BiotechActive && !Find.Storyteller.difficulty.ChildrenAllowed)
- {
- if (Configurations.Debug) Log.Message($"Could not implant {Pawn}'s egg due to children being disabled");
- deadeggs.Add(egg);
- continue;
- }
- else if (Rand.Chance(Configurations.ImplantationChance * ImplantChance * InterspeciesImplantFactor(egg.fertilizer)))
- {
- 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
- {
- Configurations.PregnancyType usePregnancy = xxx.is_human(Pawn) ? Configurations.PregnancySource : Configurations.PregnancyType.MultiplePregnancy;
- switch (usePregnancy)
- {
- case Configurations.PregnancyType.BaseRJW:
-
- if (Configurations.Debug) Log.Message($"Creating new base RJW pregnancy");
- PregnancyHelper.AddPregnancyHediff(Pawn, egg.fertilizer);
- // I hate having to do this, but it gets the newest pregnancy
- List pregnancies = new List();
- Pawn.health.hediffSet.GetHediffs(ref pregnancies);
- pregnancy = pregnancies.MaxBy(hediff => hediff.loadID);
- pregnant = true;
- break;
-
- case Configurations.PregnancyType.MultiplePregnancy:
- if (Configurations.Debug) Log.Message($"Creating new menstruation pregnancy");
- pregnancy = Hediff_BasePregnancy.Create(Pawn, egg.fertilizer); // Add fertility comp of mother
- pregnant = true;
- deadeggs.Add(egg);
- break;
-
- case Configurations.PregnancyType.Biotech:
- if (Configurations.Debug) Log.Message($"Creating new biotech pregnancy");
- pregnancy = HediffMaker.MakeHediff(HediffDefOf.PregnantHuman, Pawn);
- if (Configurations.EnableBiotechTwins)
- pregnancy.TryGetComp().AddNewBaby(Pawn, egg.fertilizer);
- Pawn father = egg.fertilizer;
- if (Pawn == father) father = null;
- ((Hediff_Pregnant)pregnancy).SetParents(Pawn, father, PregnancyUtility.GetInheritedGeneSet(father, Pawn));
- Pawn.health.AddHediff(pregnancy);
- pregnant = true;
- deadeggs.Add(egg);
- break;
- }
- if (pregnancy is Hediff_BasePregnancy rjw_preg)
- {
- // TODO: advance biotech pregnancy
- rjw_preg.p_start_tick -= egg.ticksSinceFertilization / Configurations.CycleAcceleration;
- rjw_preg.p_end_tick -= egg.ticksSinceFertilization / Configurations.CycleAcceleration;
- }
- }
- else
- {
- switch (pregnancy)
- {
- case Hediff_Pregnant vanillaPreg: // Not going to do the labor ones
- if (!Configurations.EnableBiotechTwins || !Configurations.EnableHeteroOvularTwins) goto default;
- if (Configurations.Debug) Log.Message($"Adding to existing Biotech pregnancy {vanillaPreg.GetUniqueLoadID()}");
- HediffComp_PregeneratedBabies comp = vanillaPreg.TryGetComp();
- if (comp == null) Log.Warning($"Trying to add Biotech egg to {Pawn}'s pregnancy without a pregenerated baby comp: {vanillaPreg.GetUniqueLoadID()}");
- else
- comp.AddNewBaby(Pawn, egg.fertilizer);
- pregnant = true;
- deadeggs.Add(egg);
- break;
- case Hediff_MultiplePregnancy multiPreg:
- if (!Configurations.EnableHeteroOvularTwins) goto default;
- if (Configurations.Debug) Log.Message($"Adding to existing pregnancy {multiPreg.GetUniqueLoadID()}");
- multiPreg.AddNewBaby(Pawn, egg.fertilizer);
- pregnant = true;
- deadeggs.Add(egg);
- break;
- case Hediff_BasePregnancy _:
- default:
- if (Configurations.Debug) Log.Message($"Not adding to existing pregnancy {pregnancy.GetUniqueLoadID()}");
- pregnant = true;
- deadeggs.Add(egg);
- break;
- }
- }
- }
- catch (Exception ex)
- {
- Log.Error($"Error creating pregnancy in {Pawn}'s womb, father {egg.fertilizer}: {ex}");
- TakeLoosePregnancy();
- deadeggs.Add(egg);
- }
- }
- else
- {
- if (Configurations.Debug)
- {
- float interspeciesFactor = InterspeciesImplantFactor(egg.fertilizer);
- float implantChance = Configurations.ImplantationChance * ImplantChance * interspeciesFactor;
- Log.Message($"Fertilized egg of {Pawn} failed to implant (chance {implantChance.ToStringPercent()}, " +
- ((!Mathf.Approximately(interspeciesFactor, 1.0f)) ? $"interspecies factor {interspeciesFactor.ToStringPercent()}, " : "") +
- $"father {egg.fertilizer})");
- }
- deadeggs.Add(egg);
- }
- }
-
- bool clearAllEggs = true;
- switch (Configurations.PregnancySource)
- {
- case Configurations.PregnancyType.BaseRJW:
- clearAllEggs = true;
- break;
- case Configurations.PregnancyType.MultiplePregnancy:
- clearAllEggs = !Configurations.EnableHeteroOvularTwins;
- break;
- case Configurations.PregnancyType.Biotech:
- clearAllEggs = !(Configurations.EnableBiotechTwins && Configurations.EnableHeteroOvularTwins);
- break;
- }
-
- if (pregnant && clearAllEggs)
- eggs.Clear();
- else
- eggs.RemoveAll(egg => deadeggs.Contains(egg));
- return pregnant;
- }
-
- protected void BleedOut()
- {
- // ~1.5 per hour times acceleration
- float bledAmount = Utility.VariationRange(0.03f * Configurations.BleedingAmount * Configurations.CycleAcceleration * HoursBetweenSimulations, 0.5f);
- CumIn(Pawn, bledAmount, Translations.Menstrual_Blood, -5.0f, Utility.BloodDef(Pawn));
- Cum blood = GetNotCum(Translations.Menstrual_Blood);
- if (blood != null) blood.Color = BloodColor;
- }
-
- ///
- /// Make filth ignoring absorber
- ///
- ///
- ///
- protected void MakeCumFilth(Cum cum, float amount)
- {
- if (Pawn.MapHeld == null) return;
- if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(Pawn.PositionHeld, Pawn.MapHeld, cum.FilthDef, cum.pawn?.LabelShort ?? "Unknown");
- }
-
- ///
- /// Absorb cum and return leaked amount
- ///
- ///
- ///
- ///
- ///
- protected float AbsorbCum(float amount, Absorber absorber)
- {
-
- if (absorber == null)
- {
- //if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(Pawn.Position, Pawn.Map, cum.FilthDef, cum.pawn.LabelShort);
- return amount;
- }
-
- float absorbable = absorber.GetStatValue(VariousDefOf.MaxAbsorbable);
- absorber.SetColor(Colors.CMYKLerp(GetCumMixtureColor, absorber.DrawColor, 1f - amount / absorbable));
- if (absorber.dirty)
- {
- //if (absorber.LeakAfterDirty) FilthMaker.TryMakeFilth(Pawn.Position, Pawn.Map, cum.FilthDef, cum.pawn.LabelShort);
- return amount;
- }
- absorber.absorbedfluids += amount;
- absorber.CheckDirty();
- return 0;
- }
-
- protected float MakeCumFilthMixture(float amount, List cumlabels)
- {
- if (Pawn.MapHeld == null) return 0;
- if (amount >= minmakefilthvalue)
- {
- FilthMaker_Colored.TryMakeFilth(Pawn.PositionHeld, Pawn.MapHeld, VariousDefOf.FilthMixture, cumlabels, GetCumMixtureColor, false);
- }
- return amount;
- }
-
- protected void EggDecay()
- {
- HashSet deadeggs = new HashSet(eggs.Count);
- foreach (Egg egg in eggs)
- {
- egg.ageTicks += TickInterval * Configurations.CycleAcceleration;
- if (egg.fertilized) egg.ticksSinceFertilization += TickInterval * Configurations.CycleAcceleration;
- else
- {
- egg.lifeSpanTicks -= TickInterval * Configurations.CycleAcceleration;
- if (egg.lifeSpanTicks < 0) deadeggs.Add(egg);
- }
- }
- eggs.RemoveAll(egg => deadeggs.Contains(egg));
- }
-
- protected void AddCrampPain()
- {
- Hediff hediff = HediffMaker.MakeHediff(VariousDefOf.Hediff_MenstrualCramp, Pawn);
- hediff.Severity = Utility.VariationRange(crampPain, 0.1f);
- HediffCompProperties_SeverityPerDay Props = (HediffCompProperties_SeverityPerDay)hediff.TryGetComp().props;
- Props.severityPerDay = -hediff.Severity / GenDate.TicksToDays(currentIntervalTicks) * Configurations.CycleAcceleration;
- Pawn.health.AddHediff(hediff, parent.Part);
- }
-
- protected void AdvanceStageTime()
- {
- curStageTicks += TickInterval * Configurations.CycleAcceleration;
- }
-
- protected virtual void FollicularAction()
- {
- if (!IsBreedingSeason())
- {
- estrusflag = false;
- GoNextStage(Stage.Anestrus);
- return;
- }
- else if (curStageTicks >= currentIntervalTicks)
- {
- PostFollicularStage();
- }
- else
- {
- AdvanceStageTime();
- if (!estrusflag && curStageTicks > currentIntervalTicks - GenDate.DaysToTicks(Props.estrusDaysBeforeOvulation))
- {
- estrusflag = true;
- SetEstrus();
- }
- }
- }
-
- protected virtual void OvulatoryAction()
- {
- if (curStageTicks < currentIntervalTicks)
- {
- AdvanceStageTime();
- return;
- }
- estrusflag = false;
- float eggnum;
- try
- {
- eggnum = Math.Max(Rand.ByCurve(Pawn.RaceProps.litterSizeCurve), 1f);
- }
- catch (NullReferenceException)
- {
- eggnum = 1f;
- }
- catch (ArgumentException e)
- {
- Log.WarningOnce($"Invalid litterSizeCurve for {Pawn.def}: {e}", 642201874 + Pawn.thingIDNumber);
- eggnum = 1f;
- }
- eggnum *= ovulationFactor;
- int toOvulate = Math.Max(1, (int)eggnum + eggstack);
-
- int ovulated = 0;
- for (int i = 0; i < toOvulate; i++)
- if (i < eggstack || Rand.Chance(OvulationChance)) // eggstack comes from drugs and are guaranteed ovulated
- {
- eggs.Add(new Egg((int)(EggLifespanTicks / CycleFactor)));
- ++ovulated;
- }
- ovarypower -= ovulated;
- eggstack = 0;
- if (Configurations.Debug && ovulated < toOvulate)
- Log.Message($"{Pawn} ovulated {ovulated}/{toOvulate} eggs ({OvulationChance.ToStringPercent()} chance)");
-
- GoNextStage(Stage.Luteal);
- }
-
- protected virtual void LutealAction()
- {
- if (curStageTicks >= currentIntervalTicks)
- {
- eggs.Clear();
- if (EggHealth < 1f / 4f || (EggHealth < 1f / 3f && Rand.Chance(0.3f))) //skips bleeding
- {
- GoNextStage(Stage.Follicular);
- }
- else
- {
- GoFollicularOrBleeding();
- }
- }
- else if (!eggs.NullOrEmpty())
- {
- FertilizationCheck();
- EggDecay();
- if (Implant())
- {
- GoNextStage(Stage.Pregnant);
- }
- else
- {
- AdvanceStageTime();
- }
- }
- else
- {
- AdvanceStageTime();
- }
-
- }
-
- protected virtual void BleedingAction()
- {
- if (curStageTicks >= currentIntervalTicks || noBleeding)
- {
- Hediff hediff = Pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_MenstrualCramp);
- if (hediff != null && !Pawn.GetMenstruationComps().Any(comp => comp != this && comp.curStage == Stage.Bleeding)) Pawn.health.RemoveHediff(hediff);
- int totalFollicularTicks = PeriodRandomizer(Stage.Follicular); // The total amount of time for both bleeding and follicular
- if (totalFollicularTicks <= currentIntervalTicks) // We've bled for so long that we completely missed the follicular phase
- PostFollicularStage();
- else
- {
- GoNextStage(Stage.Follicular, totalFollicularTicks - currentIntervalTicks); // I.e., the remaining follicular time equals the total minus the bleeding time elapsed
- }
- }
- else
- {
- if (curStageTicks < currentIntervalTicks / 4) BleedOut();
- AdvanceStageTime();
- }
- }
-
- protected virtual void PregnantAction()
- {
- if (!eggs.NullOrEmpty())
- {
- FertilizationCheck();
- EggDecay();
- Implant();
- }
-
- if (Pregnancy != null)
- curStageTicks += TickInterval;
- else
- GoNextStage(Stage.Recover);
- }
-
- protected virtual void RecoverAction()
- {
- if (curStageTicks >= currentIntervalTicks)
- {
- if (!IsBreedingSeason())
- {
- GoNextStage(Stage.Anestrus);
- }
- else
- {
- GoNextStage(Stage.Follicular);
- }
- }
- else
- {
- AdvanceStageTime();
- }
- }
-
- protected virtual void InfertileAction()
- {
- if (ShouldBeInfertile())
- return;
- else if (IsBreedingSeason())
- GoNextStage(Stage.Follicular);
- else
- GoNextStage(Stage.Anestrus);
- }
-
- protected virtual void AnestrusAction()
- {
- if (IsBreedingSeason())
- {
- GoFollicularOrBleeding();
- }
- }
-
- protected virtual void ThoughtCumInside(Pawn cummer)
- {
- const int haterThreshold = -5;
- MemoryThoughtHandler cummerMemories = cummer?.needs?.mood?.thoughts.memories;
- MemoryThoughtHandler pawnMemories = Pawn?.needs?.mood?.thoughts.memories;
-
- if (cummerMemories == null || pawnMemories == null) return;
-
- if (cummer.IsProPregnancy(out Precept preceptm) || (cummer.IsTeratophile() != (Pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0)))
- {
- if (cummer.relations.OpinionOf(Pawn) <= haterThreshold)
- cummerMemories.TryGainMemory(VariousDefOf.HaterCameInsideM, Pawn);
- else if (preceptm != null)
- cummerMemories.TryGainMemory(VariousDefOf.CameInsideMIdeo, Pawn, preceptm);
- else
- cummerMemories.TryGainMemory(VariousDefOf.CameInsideM, Pawn);
- }
-
- if (IsDangerDay)
- {
- if (Pawn.IsProPregnancy(out Precept preceptf))
- {
- if (preceptf != null)
- {
- if (Pawn.relations.OpinionOf(cummer) <= haterThreshold)
- 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)
- pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer);
- else if (Pawn.IsInEstrus() && Pawn.relations.OpinionOf(cummer) < RJWHookupSettings.MinimumRelationshipToHookup)
- pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFEstrus, cummer);
- else if (!Pawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, cummer) && !Pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, cummer))
- {
- if (Pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) pawnMemories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer);
- else pawnMemories.TryGainMemory(VariousDefOf.CameInsideF, cummer);
- }
- }
- else
- {
- if (Pawn.IsProPregnancy(out Precept _))
- pawnMemories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer);
- else if (Pawn.relations.OpinionOf(cummer) <= haterThreshold)
- pawnMemories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer);
- }
- }
-
- protected virtual void TaleCumInside(Pawn cummer)
- {
- // Only make the tale for human-on-human, consentual sex. Otherwise the art just gets too hard to phrase properly
- if (!xxx.is_human(Pawn) || !xxx.is_human(cummer) || Pawn == cummer) return;
- JobDef[] taleJobs = new JobDef[] { xxx.casual_sex, xxx.gettin_loved, xxx.whore_is_serving_visitors, xxx.quick_sex, xxx.getting_quickie };
- if (!taleJobs.Contains(Pawn.CurJobDef)) return;
- if (!(Pawn.IsColonist || Pawn.IsPrisonerOfColony) && !(cummer.IsColonist || cummer.IsPrisonerOfColony)) return;
- if (!IsDangerDay) return;
- TaleRecorder.RecordTale(VariousDefOf.TaleCameInside, new object[] { cummer, Pawn });
- }
-
- public void GoNextStage(Stage nextstage, int? stageTicks = null)
- {
- curStageTicks = 0;
- currentIntervalTicks = stageTicks ?? PeriodRandomizer(nextstage);
- curStage = nextstage;
- }
-
- protected virtual void PostFollicularStage()
- {
- GoNextStage(Stage.Ovulatory);
- }
-
- protected void GoFollicularOrBleeding()
- {
- if (Props.bleedingIntervalDays == 0 || noBleeding)
- {
- GoNextStage(Stage.Follicular);
- }
- else
- {
- GoNextStage(Stage.Bleeding);
- if (crampPain >= 0.05f)
- {
- AddCrampPain();
- }
- }
- }
-
- protected int PeriodRandomizer(Stage stage)
- {
- float variabilityFactor = (EggHealth < 1.0f) ? 6.0f : 1.0f;
-
- float CycleSkew(float factor) => 1 + (cycleSpeed - 1) * factor;
- int StageTicks(float days, float weight) =>
- (int)(Utility.VariationRange(GenDate.DaysToTicks(days), cycleVariability * weight * variabilityFactor) / CycleSkew(weight));
-
- // Most cycle lengthening or shortening occurs in the follicular phase, so weight towards that
- switch (stage)
- {
- case Stage.Follicular:
- return StageTicks(Props.follicularIntervalDays, 1.5f);
- case Stage.Ovulatory:
- return Props.ovulationIntervalHours * GenDate.TicksPerHour; // No variability for now
- case Stage.Luteal:
- return StageTicks(Props.lutealIntervalDays, 0.5f);
- case Stage.Bleeding:
- return StageTicks(Props.bleedingIntervalDays, 0.5f);
- case Stage.Recover:
- return (int)Utility.VariationRange(GenDate.DaysToTicks(Props.recoveryIntervalDays), 0.05f);
- case Stage.Pregnant:
- return (int)(MenstruationUtility.GestationHours(pregnancy) * GenDate.TicksPerHour);
- default:
- return 1;
- }
- }
-
- protected float InterspeciesImplantFactor(Pawn fertilizer)
- {
- if (fertilizer.def.defName == Pawn.def.defName) return 1.0f;
- else
- {
- if (RJWPregnancySettings.complex_interspecies) return SexUtility.BodySimilarity(Pawn, fertilizer);
- else return RJWPregnancySettings.interspecies_impregnation_modifier;
- }
- }
-
- protected float PainRandomizer()
- {
- float rand = Rand.Range(0.0f, 1.0f);
- if (rand < 0.01f) return Rand.Range(0.0f, 0.2f);
- else if (rand < 0.2f) return Rand.Range(0.1f, 0.2f);
- else if (rand < 0.8f) return Rand.Range(0.2f, 0.4f);
- else if (rand < 0.95f) return Rand.Range(0.4f, 0.6f);
- else return Rand.Range(0.6f, 1.0f);
- }
-
- protected virtual float RandomOvulationChance => (float)Props.ovulationIntervalHours / GenDate.HoursPerDay;
-
- protected Stage RandomStage()
- {
- Stage stage = Rand.ElementByWeight(
- Stage.Follicular, Props.follicularIntervalDays - Props.bleedingIntervalDays,
- Stage.Ovulatory, RandomOvulationChance,
- Stage.Luteal, Props.lutealIntervalDays,
- Stage.Bleeding, Props.bleedingIntervalDays);
-
- switch (stage)
- {
- case Stage.Follicular:
- curStageTicks = Rand.Range(0, GenDate.DaysToTicks(Props.follicularIntervalDays - Props.bleedingIntervalDays));
- break;
- case Stage.Ovulatory:
- curStageTicks = Rand.Range(0, Props.ovulationIntervalHours * GenDate.TicksPerHour);
- break;
- case Stage.Luteal:
- curStageTicks = Rand.Range(0, GenDate.DaysToTicks(Props.lutealIntervalDays));
- break;
- case Stage.Bleeding:
- curStageTicks = Rand.Range(0, GenDate.DaysToTicks(Props.bleedingIntervalDays));
- break;
- }
- return stage;
- }
-
- // Searches for a pregnancy unclaimed by any womb and put it in this one
- public void TakeLoosePregnancy()
- {
- if (pregnancy != null) return;
-
- IEnumerable pregnancies = Pawn.health.hediffSet.hediffs.Where(hediff =>
- hediff is Hediff_BasePregnancy ||
- hediff is Hediff_Pregnant ||
- hediff is Hediff_Labor ||
- hediff is Hediff_LaborPushing);
-
- pregnancy =
- pregnancies.Except(
- Pawn.GetMenstruationComps().Select(comp => comp.pregnancy).Where(preg => preg != null)
- ).FirstOrDefault();
- if (pregnancy != null)
- GoNextStage(Stage.Pregnant);
- }
-
- public virtual void CopyCycleProperties(HediffComp_Menstruation original)
- {
- cycleSpeed = original.cycleSpeed;
- cycleVariability = original.cycleVariability;
- ovarypower = original.ovarypower;
- crampPain = original.crampPain;
- }
-
- public int EggsRestoredPerBiosculptor(float yearsWorth)
- {
- return Math.Max(1, (int)(RaceCyclesPerYear() * yearsWorth * AverageLitterSize()));
- }
-
- public void RestoreEggs(float yearsWorth)
- {
- ovarypower += EggsRestoredPerBiosculptor(yearsWorth);
- }
-
- public class Egg : IExposable
- {
- public bool fertilized;
- public int lifeSpanTicks; // Actual ticks scaled by cycleAcceleration
- public Pawn fertilizer;
- public int ageTicks;
- public int ticksSinceFertilization = 0;
-
- public Egg()
- {
- fertilized = false;
- lifeSpanTicks = (int)(GenDate.DaysToTicks(VariousDefOf.HumanVaginaCompProperties.eggLifespanDays * Configurations.EggLifespanMultiplier));
- fertilizer = null;
- ageTicks = 0;
- }
-
- public Egg(int lifespanticks)
- {
- fertilized = false;
- lifeSpanTicks = (int)(lifespanticks * Configurations.EggLifespanMultiplier);
- fertilizer = null;
- ageTicks = 0;
- }
-
- public void ExposeData()
- {
- Scribe_References.Look(ref fertilizer, "fertilizer", true);
- Scribe_Values.Look(ref fertilized, "fertilized", false);
- Scribe_Values.Look(ref lifeSpanTicks, "lifeSpanTicks", lifeSpanTicks, true);
- Scribe_Values.Look(ref ageTicks, "ageTicks", ageTicks, true);
- Scribe_Values.Look(ref ticksSinceFertilization, "ticksSinceFertilization", 0);
- }
- }
- }
-
- public class HediffComp_Anus : HediffComp
- {
- public CompProperties_Anus Props => (CompProperties_Anus)props;
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs
deleted file mode 100644
index c4aa869..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PeriodicOvulator.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using RimWorld;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class CompProperties_PeriodicOvulator : CompProperties_Menstruation
- {
- public FloatRange cycleIntervalDays; // From the start of one cycle to the start of the next
-
- public CompProperties_PeriodicOvulator()
- {
- compClass = typeof(HediffComp_PeriodicOvulator);
- }
- }
-
- public class HediffComp_PeriodicOvulator : HediffComp_Menstruation
- {
- public int ticksToNextCycle = -100000;
- public int averageCycleIntervalTicks = -1;
-
- new CompProperties_PeriodicOvulator Props => (CompProperties_PeriodicOvulator)props;
-
- protected override void PostInitialize()
- {
- base.PostInitialize();
- if (averageCycleIntervalTicks < 0)
- {
- averageCycleIntervalTicks = (int)(GenDate.DaysToTicks(Props.cycleIntervalDays.RandomInRange) / cycleSpeed);
- if (ticksToNextCycle < -50000)
- ticksToNextCycle = Rand.Range(0, averageCycleIntervalTicks);
- // Make the cutoff halfway into cycle, just to be sure there isn't a double-cycle the first time
- if ((curStage == Stage.Follicular || curStage == Stage.Ovulatory || curStage == Stage.Luteal || curStage == Stage.Bleeding)
- && (averageCycleIntervalTicks - ticksToNextCycle) / 2 >= GenDate.DaysToTicks(Props.follicularIntervalDays + Props.lutealIntervalDays) / cycleSpeed)
- GoNextStage(Stage.Anestrus);
- }
- }
-
- public override string GetCurStageDesc
- {
- get
- {
- switch (CurrentVisibleStage)
- {
- case Stage.Anestrus:
- if (IsBreedingSeason()) return Translations.Stage_Anestrus_Periodic_Desc;
- else goto default;
- default:
- return base.GetCurStageDesc;
- }
- }
- }
-
- protected override float RaceCyclesPerYear()
- {
- // Don't bother trying to work seasonal breeding into the math
- // Base it off of the shortest cycle interval of the vagina
- return GenDate.DaysPerYear / (Props.cycleIntervalDays.TrueMin / Configurations.CycleAccelerationDefault);
- }
-
- protected override void BeforeSimulator()
- {
- base.BeforeSimulator();
- if (ticksToNextCycle > 0) ticksToNextCycle -= TickInterval * Configurations.CycleAcceleration;
- }
-
- public override void CompExposeData()
- {
- base.CompExposeData();
- Scribe_Values.Look(ref ticksToNextCycle, "ticksToNextCycle", ticksToNextCycle, true);
- Scribe_Values.Look(ref averageCycleIntervalTicks, "averageCycleIntervalTicks", averageCycleIntervalTicks, true);
- }
-
- protected override int TicksToNextStage()
- {
- if (curStage == Stage.Anestrus && ticksToNextCycle > 0) return ticksToNextCycle / Configurations.CycleAcceleration;
- else return base.TicksToNextStage();
- }
-
- protected override void LutealAction()
- {
- base.LutealAction();
- if (curStage == Stage.Follicular)
- GoNextStage(Stage.Anestrus);
- }
-
- protected override void BleedingAction()
- {
- base.BleedingAction();
- if (curStage != Stage.Bleeding)
- {
- estrusflag = false;
- GoNextStage(Stage.Anestrus);
- }
- }
-
- protected override void PregnantAction()
- {
- base.PregnantAction();
- if (curStage != Stage.Pregnant)
- // Go halfway into the cycle
- ticksToNextCycle = (int)Utility.VariationRange(averageCycleIntervalTicks, cycleVariability) / 2;
- }
-
- protected override void RecoverAction()
- {
- base.RecoverAction();
- if (curStage != Stage.Recover)
- GoNextStage(Stage.Anestrus);
- }
-
- protected override void AnestrusAction()
- {
- if (ticksToNextCycle <= 0 && IsBreedingSeason())
- {
- ticksToNextCycle = (int)Utility.VariationRange(averageCycleIntervalTicks, cycleVariability);
- GoNextStage(Stage.Follicular);
- }
- }
-
- public override void CopyCycleProperties(HediffComp_Menstruation original)
- {
- base.CopyCycleProperties(original);
- if (original is HediffComp_PeriodicOvulator comp)
- averageCycleIntervalTicks = comp.averageCycleIntervalTicks;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs
deleted file mode 100644
index d15d49b..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_Pheromones.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-using RimWorld;
-using RimWorld.Planet;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class CompProperties_Pheromones : HediffCompProperties
- {
- public float daysToMaxSeverity;
- public float range;
-
- public CompProperties_Pheromones()
- {
- compClass = typeof(HediffComp_Pheromones);
- }
- }
-
- public class HediffComp_Pheromones : HediffComp
- {
- public CompProperties_Pheromones Props => (CompProperties_Pheromones)props;
- public const int emitInterval = GenTicks.TickRareInterval;
- public const float emitRatio = (float)emitInterval / GenDate.TicksPerDay;
-
- public override void CompPostTick(ref float severityAdjustment)
- {
- try
- {
- if (!Configurations.EnablePheromones) return;
- if (!Pawn.RaceProps.Humanlike && (!Configurations.EnableAnimalCycle || Configurations.AnimalPheromoneEffect <= 0.0f)) return;
- if (!Pawn.IsHashIntervalTick(emitInterval)) return;
- if (!Pawn.SpawnedOrAnyParentSpawned) return;
-
- foreach (Pawn pawn in AffectedPawns())
- ApplyEffectToPawn(pawn);
- }
- catch (Exception ex)
- {
- Log.Error($"Error when trying to emit pheromones from pawn {Pawn}: {ex}");
- }
- }
-
- protected IEnumerable AffectedPawns()
- {
- if (Pawn.GetCaravan() is Caravan caravan)
- {
- foreach (Pawn p in caravan.PawnsListForReading.Where(p => p != Pawn)) yield return p;
- yield break;
- }
- Map mapHeld = Pawn.MapHeld;
- if (mapHeld == null) yield break;
- foreach (Pawn pawn in mapHeld.mapPawns.AllPawnsSpawned)
- {
- if (pawn == Pawn) continue;
- if (!pawn.RaceProps.Humanlike) continue;
- if (Pawn.PositionHeld.InHorDistOf(pawn.PositionHeld, Props.range) && Pawn.GetRoom() == pawn.GetRoom())
- yield return pawn;
- }
- }
-
- protected float GetEffectOnPawn(Pawn target)
- {
- if (target.Suspended || target.Dead) return 0.0f;
- if (target.needs?.TryGetNeed(VariousDefOf.SexNeed) == null) return 0.0f;
- if (!xxx.can_do_loving(target)) return 0.0f;
- if (target.story?.traits.HasTrait(TraitDefOf.Asexual) ?? true) return 0.0f;
- float penisEffect;
- if (Genital_Helper.has_penis_fertile(target)) penisEffect = 1.0f;
- else if (target.gender == Gender.Male) penisEffect = 0.25f;
- else return 0.0f;
-
- BodyDef body = target.RaceProps.body;
- 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();
-
- return penisEffect * breathingEffect * noseEffect;
- }
-
- protected void ApplyEffectToPawn(Pawn target)
- {
- float intensity = GetEffectOnPawn(target);
- if (intensity <= 0.0f) return;
- Hediff pheromones = target.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Hediff_AffectedByPheromones);
- float decay = VariousDefOf.Hediff_AffectedByPheromones.CompProps().severityPerDay;
- float raiseSeverityPerDay = intensity / Props.daysToMaxSeverity - decay; // Desired increase plus enough to overcome pheromone decay
- if (!Pawn.RaceProps.Humanlike) raiseSeverityPerDay *= Configurations.AnimalPheromoneEffect;
- float amountToApply = emitRatio * raiseSeverityPerDay;
- if (pheromones != null)
- pheromones.Severity += amountToApply;
- else
- {
- pheromones = HediffMaker.MakeHediff(VariousDefOf.Hediff_AffectedByPheromones, target);
- pheromones.Severity = amountToApply;
- target.health.AddHediff(pheromones);
- }
- return;
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs
deleted file mode 100644
index 2a8f65d..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/HediffComp_PregeneratedBabies.cs
+++ /dev/null
@@ -1,338 +0,0 @@
-using HarmonyLib;
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reflection;
-using System.Reflection.Emit;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class HediffComp_PregeneratedBabies : HediffComp
- {
- public List babies;
- // Unused, but can't hurt to track
- protected Dictionary enzygoticSiblings;
-
- protected static readonly MethodInfo RandomLastName = typeof(PregnancyUtility).GetMethod("RandomLastName", BindingFlags.Static | BindingFlags.NonPublic, null, new Type[] { typeof(Pawn), typeof(Pawn), typeof(Pawn) }, null)
- ?? throw new InvalidOperationException("PregnancyUtility.RandomLastName not found");
-
- public bool HasBaby
- {
- get => !babies.NullOrEmpty();
- }
-
- public int BabyCount
- {
- get
- {
- if (babies == null) return 0;
- else return babies.Count;
- }
- }
-
- public Pawn PeekBaby()
- {
- if (babies.NullOrEmpty()) return null;
- else return babies.First();
- }
-
- public Pawn PopBaby()
- {
- if (babies.NullOrEmpty()) return null;
-
- Pawn firstBaby = babies.First();
- babies.Remove(firstBaby);
- return firstBaby;
- }
-
- public override void CompPostPostRemoved()
- {
- // At this point in the hediff removal process, the new hediff is already on the pawn
- // But it is possible that there is no new hediff (be it a birth, miscarrage, or dev edit)
- base.CompPostPostRemoved();
-
- // Send the babies from this comp to the new one
- switch (parent)
- {
- case Hediff_Pregnant hediff_Pregnant:
- Hediff_Labor labor = Pawn.health.hediffSet.hediffs.OfType().MaxByWithFallback(hediff => hediff.loadID);
- HediffComp_PregeneratedBabies laborcomp = labor?.TryGetComp();
- if (laborcomp == null) return;
- laborcomp.babies = this.babies;
- laborcomp.enzygoticSiblings = this.enzygoticSiblings;
- break;
- case Hediff_Labor hediff_Labor:
- Hediff_LaborPushing pushing = Pawn.health.hediffSet.hediffs.OfType().MaxByWithFallback(hediff => hediff.loadID);
- HediffComp_PregeneratedBabies pushingcomp = pushing?.TryGetComp();
- if (pushingcomp == null) return;
- pushingcomp.babies = this.babies;
- pushingcomp.enzygoticSiblings = this.enzygoticSiblings;
- break;
- case Hediff_LaborPushing _:
- // Nothing to do, the laborpushing transpiler will pick it up
- break;
- }
- }
-
- public override void CompExposeData()
- {
- base.CompExposeData();
- Scribe_Collections.Look(ref babies, "babies", LookMode.Deep);
- Scribe_Collections.Look(ref enzygoticSiblings, "enzygoticSiblings", keyLookMode: LookMode.Reference, valueLookMode: LookMode.Reference);
- }
-
- public void AddNewBaby(Pawn mother, Pawn father)
- {
- if (babies == null) babies = new List();
- PawnKindDef babyPawnKind = PregnancyCommon.BabyPawnKindDecider(mother, father, true);
- PawnGenerationRequest request = new PawnGenerationRequest
- (
- kind: babyPawnKind,
- faction: mother.Faction,
- allowDowned: true,
- fixedLastName: (string)RandomLastName.Invoke(null, new object[] { mother, mother, (father?.Name is NameTriple) ? father : null }),
- forceNoIdeo: true,
- forcedEndogenes: PregnancyUtility.GetInheritedGenes(father, mother),
- forcedXenotype: XenotypeDefOf.Baseliner,
- developmentalStages: DevelopmentalStage.Newborn
- );
- int division = 1;
- Pawn firstbaby = null;
- while (Rand.Chance(Configurations.EnzygoticTwinsChance) && division < Configurations.MaxEnzygoticTwins) division++;
- if (division > 1 && enzygoticSiblings == null) enzygoticSiblings = new Dictionary();
- for (int i = 0; i < division; i++)
- {
- AnimalGeneticsCompatibility.PreConception(mother, father);
- Pawn baby = PawnGenerator.GeneratePawn(request);
- AnimalGeneticsCompatibility.PostConception();
- if (baby == null) break;
- PregnancyCommon.SetupBabyXenotype(mother, father, baby); // Probably redundant with Biotech post-birth xenotyping
- // HAR and some xenotype mods don't randomize graphics until it's rendered
- // So poke it early
- baby.Drawer.renderer.EnsureGraphicsInitialized();
-
- if (division > 1)
- {
- if (i == 0)
- {
- firstbaby = baby;
- request.FixedGender = baby.gender;
- }
- else
- {
- enzygoticSiblings.Add(baby, firstbaby);
-
- if (baby.story != null)
- {
- baby.story.headType = firstbaby.story.headType;
- baby.story.hairDef = firstbaby.story.hairDef;
- baby.story.HairColor = firstbaby.story.HairColor;
- baby.story.bodyType = firstbaby.story.bodyType;
- baby.story.furDef = firstbaby.story.furDef;
- baby.story.SkinColorBase = firstbaby.story.SkinColorBase;
- baby.story.skinColorOverride = firstbaby.story.skinColorOverride;
- }
-
- if (baby.genes != null)
- {
- baby.genes.SetXenotypeDirect(firstbaby.genes.Xenotype);
- baby.genes.xenotypeName = firstbaby.genes.xenotypeName;
- baby.genes.iconDef = firstbaby.genes.iconDef;
- baby.genes.hybrid = firstbaby.genes.hybrid;
- }
-
- if (baby.IsHAR())
- HARCompatibility.CopyHARProperties(baby, firstbaby);
-
- // MultiplePregnancy calls this post-birth because RJW resets private parts
- // So xenotype things shouldn't be shared
- PregnancyCommon.ProcessIdenticalSibling(baby, firstbaby);
- }
- }
- baby.Drawer.renderer.SetAllGraphicsDirty();
- AnimalGeneticsCompatibility.CopyGenes(baby, firstbaby);
- babies.Add(baby);
- // These get cleared out later, but setting the relations now will help keep track of things.
- baby.SetMother(mother);
- if (mother != father)
- {
- if (father.gender != Gender.Female) baby.SetFather(father);
- else baby.relations.AddDirectRelation(PawnRelationDefOf.Parent, father);
- }
- }
- }
-
- public void Miscarried()
- {
- if (babies == null) return;
- foreach (Pawn baby in babies)
- baby.Destroy(DestroyMode.Vanish);
- }
- }
-
- [HarmonyPatch(typeof(PregnancyUtility), nameof(PregnancyUtility.ApplyBirthOutcome))]
- public static class ApplyBirthOutcome_PregeneratedBabies_Patch
- {
- private static Pawn GetPregeneratedBaby(PawnGenerationRequest request, Thing birtherThing)
- {
- // Don't test for the config set here. We can do it at the functions that call ApplyBirthOutcome
- // Easier to work out twins that way
-
- // From e.g. a vat
- if (!(birtherThing is Pawn mother))
- return PawnGenerator.GeneratePawn(request);
-
- // No babies found. Could be an unmodified pregnancy
- HediffComp_PregeneratedBabies comp = mother.health.hediffSet.GetFirstHediff()?.TryGetComp();
- if (comp == null || !comp.HasBaby)
- return PawnGenerator.GeneratePawn(request);
-
- Pawn baby = comp.PopBaby();
- if (baby == null) return PawnGenerator.GeneratePawn(request); // Shouldn't happen
- if (!xxx.is_human(mother) || !mother.ShouldCycle()) return PawnGenerator.GeneratePawn(request); // Don't test this until here, just to be sure a baby gets popped
- baby.ageTracker.AgeBiologicalTicks = 0;
- baby.ageTracker.AgeChronologicalTicks = 0;
- baby.babyNamingDeadline = Find.TickManager.TicksGame + GenDate.DaysToTicks(1);
- if (request.ForceDead) baby.Kill(null, null);
- return baby;
- }
-
- private static readonly MethodInfo GeneratePawn = typeof(PawnGenerator).GetMethod(nameof(PawnGenerator.GeneratePawn), new Type[] {typeof (PawnGenerationRequest)});
- public static IEnumerable Transpiler(IEnumerable instructions, MethodBase original)
- {
- bool methodPatched = false;
- int birtherThing = original.GetParameters().FirstIndexOf(parameter => parameter.Name == "birtherThing" && parameter.ParameterType == typeof(Thing));
- if (birtherThing < 0) throw new InvalidOperationException("Could not locate index of birtherThing");
- if (GeneratePawn?.ReturnType != typeof(Pawn)) throw new InvalidOperationException("GeneratePawn not found");
- foreach (CodeInstruction instruction in instructions)
- {
- if (instruction.Calls(GeneratePawn))
- {
- yield return CodeInstruction.LoadArgument(birtherThing);
- yield return CodeInstruction.Call(typeof(ApplyBirthOutcome_PregeneratedBabies_Patch), nameof(GetPregeneratedBaby));
- methodPatched = true;
- }
- else yield return instruction;
- }
- if (!methodPatched) throw new InvalidOperationException("PregnancyUtility.ApplyBirthOutcome not patched");
- }
- }
-
- [HarmonyPatch(typeof(Hediff_LaborPushing), nameof(Hediff_LaborPushing.PreRemoved))]
- public static class Hediff_LaborPushing_PreRemoved_Patch
- {
- private static Thing ApplyBirthLoop(RitualOutcomePossibility outcome, float quality, Precept_Ritual ritual, List genes, Pawn geneticMother, Thing birtherThing, Pawn father, Pawn doctor, LordJob_Ritual lordJobRitual, RitualRoleAssignments assignments, bool preventLetter)
- {
- if (birtherThing is Pawn mother && mother.ShouldCycle())
- {
- HediffComp_PregeneratedBabies comp = mother.health.hediffSet.GetFirstHediff().TryGetComp();
- if (comp?.HasBaby ?? false)
- {
- RitualOutcomePossibility thisOutcome = outcome;
- Precept_Ritual precept_Ritual = (Precept_Ritual)comp.Pawn.Ideo.GetPrecept(RimWorld.PreceptDefOf.ChildBirth);
- float birthQuality = PregnancyUtility.GetBirthQualityFor(mother);
- do
- {
- Pawn baby = comp.PeekBaby();
- Pawn thisFather = baby.GetFather() ?? father;
- if (thisFather == geneticMother || thisFather == mother) thisFather = null;
- bool preventOneLetter = preventLetter || !(baby.Name is NameTriple);
- baby.relations.ClearAllRelations(); // To keep ApplyBirthOutcome from erroring when it tries to set up relations
-
- PregnancyUtility.ApplyBirthOutcome(thisOutcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments, preventOneLetter);
- // No more babies if mom dies halfway through. Unrealistic maybe, but saves a lot of headache in ApplyBirthOutcome
- if (mother.Dead) break;
- if (xxx.is_human(baby))
- mother.records.Increment(xxx.CountOfBirthHuman);
- else if (xxx.is_animal(baby))
- mother.records.Increment(xxx.CountOfBirthAnimal);
- thisOutcome = ((RitualOutcomeEffectWorker_ChildBirth)precept_Ritual.outcomeEffect).GetOutcome(birthQuality, null);
- } while (comp.HasBaby);
-
- // PreRemoved doesn't use the return value
- return null;
- }
- }
-
- return PregnancyUtility.ApplyBirthOutcome(outcome, quality, ritual, genes, geneticMother, birtherThing, father, doctor, lordJobRitual, assignments, preventLetter);
- }
-
- private static readonly MethodInfo ApplyBirthOutcome = typeof(PregnancyUtility).GetMethod(nameof(PregnancyUtility.ApplyBirthOutcome),
- new Type[] {typeof(RitualOutcomePossibility), typeof(float), typeof(Precept_Ritual), typeof(List), typeof(Pawn), typeof(Thing), typeof(Pawn), typeof(Pawn), typeof(LordJob_Ritual), typeof(RitualRoleAssignments), typeof(bool)});
- public static IEnumerable Transpiler(IEnumerable instructions)
- {
- bool methodPatched = false;
- if (ApplyBirthOutcome?.ReturnType != typeof(Thing)) throw new InvalidOperationException("ApplyBirthOutcome not found");
- foreach (CodeInstruction instruction in instructions)
- {
- if (instruction.Calls(ApplyBirthOutcome))
- {
- yield return CodeInstruction.Call(typeof(Hediff_LaborPushing_PreRemoved_Patch), nameof(Hediff_LaborPushing_PreRemoved_Patch.ApplyBirthLoop));
- methodPatched = true;
- }
- else yield return instruction;
- }
- if (!methodPatched) throw new InvalidOperationException("Hediff_LaborPushing.PreRemoved not patched");
- }
- }
-
- [HarmonyPatch(typeof(RitualOutcomeEffectWorker_ChildBirth), nameof (RitualOutcomeEffectWorker_ChildBirth.Apply))]
- public static class Ritual_ChildBirth_Apply_Patch
- {
- private static Thing ApplyBirthLoop(RitualOutcomePossibility outcome, float quality, Precept_Ritual ritual, List genes, Pawn geneticMother, Thing birtherThing, Pawn father, Pawn doctor, LordJob_Ritual lordJobRitual, RitualRoleAssignments assignments, bool preventLetter)
- {
- if (birtherThing is Pawn mother && mother.ShouldCycle())
- {
- HediffComp_PregeneratedBabies comp = mother.health.hediffSet.GetFirstHediff().TryGetComp();
- if (comp?.HasBaby ?? false)
- {
- // Much the same as the other one
-
- // Don't reroll the outcome every time, I think
- // This is all one ritual, so every baby has the same ritual outcome
- // I don't think this will add the ritual memory every time?
- // Though even if it does, that's probably okay. More babies more memories after all
- do
- {
- Pawn baby = comp.PeekBaby();
- Pawn thisFather = baby.GetFather() ?? father;
- if (thisFather == geneticMother || thisFather == mother) thisFather = null;
- bool preventOneLetter = preventLetter || !(baby.Name is NameTriple);
- baby.relations.ClearAllRelations();
-
- PregnancyUtility.ApplyBirthOutcome(outcome, quality, ritual, genes, geneticMother, birtherThing, thisFather, doctor, lordJobRitual, assignments, preventOneLetter);
- if (mother.Dead) break;
- if (xxx.is_human(baby))
- mother.records.Increment(xxx.CountOfBirthHuman);
- else if (xxx.is_animal(baby))
- mother.records.Increment(xxx.CountOfBirthAnimal);
- } while (comp.HasBaby);
-
- // The ritual version doesn't use the return value, either
- return null;
- }
- }
- return PregnancyUtility.ApplyBirthOutcome(outcome, quality, ritual, genes, geneticMother, birtherThing, father, doctor, lordJobRitual, assignments, preventLetter);
- }
- private static readonly MethodInfo ApplyBirthOutcome = typeof(PregnancyUtility).GetMethod(nameof(PregnancyUtility.ApplyBirthOutcome),
- new Type[] { typeof(RitualOutcomePossibility), typeof(float), typeof(Precept_Ritual), typeof(List), typeof(Pawn), typeof(Thing), typeof(Pawn), typeof(Pawn), typeof(LordJob_Ritual), typeof(RitualRoleAssignments), typeof(bool) });
- public static IEnumerable Transpiler(IEnumerable instructions)
- {
- bool methodPatched = false;
- if (ApplyBirthOutcome?.ReturnType != typeof(Thing)) throw new InvalidOperationException("ApplyBirthOutcome not found");
- foreach (CodeInstruction instruction in instructions)
- {
- if (instruction.Calls(ApplyBirthOutcome))
- {
- yield return CodeInstruction.Call(typeof(Ritual_ChildBirth_Apply_Patch), nameof(Ritual_ChildBirth_Apply_Patch.ApplyBirthLoop));
- methodPatched = true;
- }
- else yield return instruction;
- }
- if (!methodPatched) throw new InvalidOperationException("RitualOutcomeEffectWorker_ChildBirth.Apply not patched");
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
deleted file mode 100644
index 92f5dfc..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/HediffComps/MenstruationUtility.cs
+++ /dev/null
@@ -1,436 +0,0 @@
-using RimWorld;
-using rjw;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using UnityEngine;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public static class MenstruationUtility
- {
- [Obsolete("This method is obsolete. Use GetMenstruationComps or a related function instead", true)]
- public static HediffComp_Menstruation GetMenstruationComp(this Pawn pawn)
- {
- return pawn.GetFirstMenstruationComp();
- }
-
- public static IEnumerable GetMenstruationComps(this Pawn pawn)
- {
- foreach (Hediff hediff in pawn.health.hediffSet.hediffs.FindAll(h => VariousDefOf.AllVaginas.Contains(h.def)))
- {
- HediffComp_Menstruation result = hediff.TryGetComp();
- if (result != null) yield return result;
- }
- }
-
- public static HediffComp_Menstruation GetFirstMenstruationComp(this Pawn pawn)
- {
- return pawn.GetMenstruationComps().FirstOrDefault();
- }
-
- public static HediffComp_Menstruation GetRandomMenstruationComp(this Pawn pawn, bool preferDangerDay = false)
- {
- List comps = pawn.GetMenstruationComps().ToList();
- return comps.Where(comp => !preferDangerDay || comp.IsDangerDay).RandomElementWithFallback() ?? comps.RandomElementWithFallback();
- }
-
- public static HediffComp_Menstruation GetMenstruationCompFromVagina(this Hediff vagina)
- {
- if (VariousDefOf.AllVaginas.Contains(vagina?.def))
- {
- return vagina.TryGetComp();
- }
- return null;
- }
-
- public static HediffComp_Menstruation GetMenstruationCompFromPregnancy(this Hediff pregnancy)
- {
- return pregnancy?.pawn.GetMenstruationComps().FirstOrDefault(comp => comp.Pregnancy == pregnancy);
- }
-
- public static HediffComp_Anus GetAnusComp(this Pawn pawn)
- {
- return pawn.health.hediffSet.hediffs.FirstOrDefault((Hediff h) => VariousDefOf.AllAnuses.Contains(h.def))?.TryGetComp();
- }
-
- [Obsolete("This method is obsolete and can cause ambiguity. Use GetMenstruationCompFromVagina or GetMenstruationCompFromPregnancy instead.", true)]
- public static HediffComp_Menstruation GetMenstruationComp(Hediff hediff)
- {
- switch (hediff)
- {
- case Hediff_BasePregnancy _:
- case Hediff_Pregnant _:
- case Hediff_Labor _:
- case Hediff_LaborPushing _:
- return hediff.GetMenstruationCompFromPregnancy();
- case ISexPartHediff _:
- return hediff.GetMenstruationCompFromVagina();
- default:
- Log.Warning("Obsolete GetMenstruationComp called with unknown hediff. Ensure your submods are up to date.");
- return null;
- }
- }
-
- public static HediffComp_Anus GetAnusComp(this Hediff hediff)
- {
- if (hediff is ISexPartHediff)
- {
- return hediff.TryGetComp();
- }
- return null;
- }
-
- public static float GetFertilityChance(this HediffComp_Menstruation comp)
- {
- 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();
- 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()?.fetusTexPath ?? "Fetus/Fetus_Default";
- }
-
- public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
- {
- float gestationProgress = comp.StageProgress;
-
- int babycount;
- if (hediff is Hediff_BasePregnancy preg) babycount = preg.babies?.Count ?? 1;
- else babycount = hediff?.TryGetComp()?.BabyCount ?? 1;
-
- string fetustex = GetSingleBabyImage(comp, hediff);
- string icon;
- if (gestationProgress < 0.2f) icon = comp.WombTex + "_Implanted";
- else if (gestationProgress < 0.4f) icon = fetustex + "00";
- else if (gestationProgress < 0.5f) icon = fetustex + "01";
- else if (gestationProgress < 0.6f) icon = fetustex + "02";
- else if (gestationProgress < 0.7f) icon = fetustex + "03";
- else if (gestationProgress < 0.8f) icon = fetustex + "04";
- else icon = fetustex + "05";
-
- return TryGetTwinsIcon(icon, babycount) ?? ContentFinder.Get(icon, true);
- }
-
- public static Texture2D TryGetTwinsIcon(string path, int babycount)
- {
- for (int i = babycount; i > 1; i--)
- {
- Texture2D result = ContentFinder.Get(path + "_Multiplet_" + i, false);
- if (result != null) return result;
- }
- return null;
- }
-
- public static Texture2D GetCumIcon(this HediffComp_Menstruation comp)
- {
- Pawn pawn = comp.Pawn;
-
- List insectEggs = new List();
- comp.Pawn.health.hediffSet.GetHediffs(ref insectEggs);
- if (insectEggs?.Sum(hediff => hediff.eggssize) > 1.0f) return null; // same logic as "Stuffed" in GetInsectEggedIcon
-
- string icon = comp.WombTex;
- float cumpercent = comp.TotalCumPercent;
- if (cumpercent < 0.001f) return ContentFinder.Get("Womb/Empty", true);
- else if (cumpercent < 0.01f) icon += "_Cum_00";
- else if (cumpercent < 0.05f) icon += "_Cum_01";
- else if (cumpercent < 0.11f) icon += "_Cum_02";
- else if (cumpercent < 0.17f) icon += "_Cum_03";
- else if (cumpercent < 0.23f) icon += "_Cum_04";
- else if (cumpercent < 0.29f) icon += "_Cum_05";
- else if (cumpercent < 0.35f) icon += "_Cum_06";
- else if (cumpercent < 0.41f) icon += "_Cum_07";
- else if (cumpercent < 0.47f) icon += "_Cum_08";
- else if (cumpercent < 0.53f) icon += "_Cum_09";
- else if (cumpercent < 0.59f) icon += "_Cum_10";
- else if (cumpercent < 0.65f) icon += "_Cum_11";
- else if (cumpercent < 0.71f) icon += "_Cum_12";
- else if (cumpercent < 0.77f) icon += "_Cum_13";
- else if (cumpercent < 0.83f) icon += "_Cum_14";
- else if (cumpercent < 0.89f) icon += "_Cum_15";
- else if (cumpercent < 0.95f) icon += "_Cum_16";
- else icon += "_Cum_17";
- Texture2D cumtex = ContentFinder.Get(icon, true);
- return cumtex;
- }
- public static Texture2D GetInsectEggedIcon(this HediffComp_Menstruation comp)
- {
- List hediffs = new List();
- comp.Pawn.health.hediffSet.GetHediffs(ref hediffs);
-
- if (hediffs.NullOrEmpty()) return null;
- string path = "Womb/Insect_Egged/Womb_Egged_";
-
- float sumSize = hediffs.Sum(hediff => hediff.eggssize);
- if (sumSize > 1.0f)
- {
- path += "Stuffed_";
- if (sumSize < 1.0f) path += "00";
- else if (sumSize < 2.0f) path += "01";
- else if (sumSize < 2.5f) path += "02";
- else if (sumSize < 3.0f) path += "03";
- else path += "04";
- }
- else
- {
- if(hediffs.Max(hediff => hediff.eggssize) > 0.3f) // The threshold for "large egg" in the debug
- {
- path += "L";
- if (hediffs.Count == 1) path += "00";
- else if (hediffs.Count == 2) path += "01";
- else path += "02";
- }
- else
- {
- path += "S";
- if (hediffs.Count == 1) path += "00";
- else if (hediffs.Count == 2) path += "01";
- else if (hediffs.Count == 3) path += "02";
- else if (hediffs.Count == 4) path += "03";
- else path += "04";
- }
- }
-
- return ContentFinder.Get(path);
- }
- public static Texture2D GetWombIcon(this HediffComp_Menstruation comp)
- {
- Texture2D wombtex = comp.GetInsectEggedIcon();
- if (wombtex != null) return wombtex;
- string icon = comp.WombTex;
- HediffComp_Menstruation.Stage stage = comp.curStage;
- if (stage == HediffComp_Menstruation.Stage.Bleeding) icon += "_Bleeding";
-
- wombtex = ContentFinder.Get(icon, true);
-
- return wombtex;
- }
- public static Texture2D GetOvaryIcon(this HediffComp_Menstruation comp)
- {
- const float ovaryChanceToShow_01 = 0.2f;
- const float ovaryChanceToShow_02 = 0.8f;
- float ovulatoryProgress;
- bool isInduced = comp is HediffComp_InducedOvulator;
- if (comp.curStage == HediffComp_Menstruation.Stage.Follicular &&
- isInduced &&
- comp.Pawn.jobs?.curDriver is JobDriver_Sex job &&
- job.Sexprops != null &&
- !UsingCondom(comp.Pawn, job.Partner) &&
- (job.Sexprops.sexType == xxx.rjwSextype.Vaginal || job.Sexprops.sexType == xxx.rjwSextype.DoublePenetration))
- ovulatoryProgress = 0.0f;
- else if (comp.curStage == HediffComp_Menstruation.Stage.Ovulatory) ovulatoryProgress = isInduced ? Mathf.Max(ovaryChanceToShow_01, comp.StageProgessNextUpdate) : comp.StageProgessNextUpdate;
-// else if (comp.curStage == HediffComp_Menstruation.Stage.Luteal && comp.IsEggExist) return ContentFinder.Get("Ovaries/Ovary_02", true);
- else return ContentFinder.Get("Womb/Empty", true);
-
- float combinedAppearance = ovulatoryProgress * comp.OvulationChance;
- if (combinedAppearance >= ovaryChanceToShow_02 && comp.OvulationChance >= 1.0f) return ContentFinder.Get("Ovaries/Ovary_02", true);
- else if (combinedAppearance >= ovaryChanceToShow_01) return ContentFinder.Get("Ovaries/Ovary_01", true);
- else return ContentFinder.Get("Ovaries/Ovary_00", true);
- }
- public static Texture2D GetEggIcon(this HediffComp_Menstruation comp, bool includeOvary)
- {
- switch (comp.CurrentVisibleStage)
- {
- case HediffComp_Menstruation.Stage.Follicular:
- case HediffComp_Menstruation.Stage.Ovulatory:
- if (!includeOvary) break;
- else return GetOvaryIcon(comp);
- case HediffComp_Menstruation.Stage.Luteal:
- if (!comp.IsEggExist) break;
- int fertTime = comp.EggFertilizedTime;
- if (fertTime >= 0)
- {
- if (fertTime <= GenDate.TicksPerHour * Configurations.CycleAcceleration) return ContentFinder.Get("Eggs/Egg_Fertilizing02", true);
- else if (fertTime <= 18 * GenDate.TicksPerHour) return ContentFinder.Get("Eggs/Egg_Fertilized00", true);
- else if (fertTime <= 54 * GenDate.TicksPerHour) return ContentFinder.Get("Eggs/Egg_Fertilized01", true);
- else return ContentFinder.Get("Eggs/Egg_Fertilized02", true);
- }
- else if (includeOvary && comp.curStageTicks <= comp.Props.ovulationIntervalHours * 0.4f * GenDate.TicksPerHour) // Total about as long as it spent in Ovary_01
- {
- return ContentFinder.Get("Ovaries/Ovary_02", true);
- }
- else if (comp.IsEggFertilizing)
- {
- if (comp.GetFertilityChance() < 0.5f)
- return ContentFinder.Get("Eggs/Egg_Fertilizing00", true);
- else
- return ContentFinder.Get("Eggs/Egg_Fertilizing01", true);
- }
- else return ContentFinder.Get("Eggs/Egg", true);
- case HediffComp_Menstruation.Stage.Pregnant:
- if (comp.Pregnancy.IsMechanoidPregnant()) break;
- else if (comp.GetPregnancyProgress() < 0.2f) return ContentFinder.Get("Eggs/Egg_Implanted00", true);
- else break;
- }
- return ContentFinder.Get("Womb/Empty", true);
- }
-
- public static void DrawEggOverlay(this HediffComp_Menstruation comp, Rect wombRect, bool includeOvary)
- {
- 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(includeOvary), ScaleMode.ScaleToFit);
- }
-
-
- public static Texture2D GetGenitalIcon(this Pawn pawn, HediffComp_Menstruation comp)
- {
- Hediff hediff = comp?.parent;
- if (hediff == null) return ContentFinder.Get("Genitals/Vagina00", true);
- //HediffComp_Menstruation comp = hediff.GetMenstruationComp();
- string icon;
- float severity = hediff.Severity;
- if (comp != null) icon = comp.VagTex;
- else icon = "Genitals/Vagina";
-
- if (severity < 0.20f) icon += "00"; //micro
- else if (severity < 0.30f) icon += "01"; //tight
- else if (severity < 0.40f) icon += "02"; //tight
- else if (severity < 0.47f) icon += "03"; //average
- else if (severity < 0.53f) icon += "04"; //average
- else if (severity < 0.60f) icon += "05"; //average
- else if (severity < 0.70f) icon += "06"; //accomodating
- else if (severity < 0.80f) icon += "07"; //accomodating
- else if (severity < 0.87f) icon += "08"; //cavernous
- else if (severity < 0.94f) icon += "09"; //cavernous
- else if (severity < 1.01f) icon += "10"; //cavernous
- else icon += "11"; //abyssal
-
- return ContentFinder.Get(icon, true);
- }
-
- // comp used by Menstruation Fluids
- public static Texture2D GetAnalIcon(this Pawn pawn, HediffComp_Menstruation comp)
- {
- if (!pawn.GetAnusList().Any()) return ContentFinder.Get("Genitals/Anal00", true);
- Hediff hediff = pawn.GetAnusList().MaxBy(a => a.Severity);
-
- string icon = ((CompProperties_Anus)hediff.GetAnusComp()?.props)?.analTex ?? "Genitals/Anal";
- float severity = hediff.Severity;
-
- if (severity < 0.20f) icon += "00"; //micro
- else if (severity < 0.40f) icon += "01"; //tight
- else if (severity < 0.60f) icon += "02"; //average
- else if (severity < 0.80f) icon += "03"; //accomodating
- else if (severity < 1.01f) icon += "04"; //cavernous
- else icon += "05"; //abyssal
-
- return ContentFinder.Get(icon, true);
- }
-
- public static float GestationHours(this Hediff hediff)
- {
- if (hediff == null)
- {
- Log.Error("Tried to get gestation length without a pregnancy.");
- return 1f;
- }
- else if (hediff is Hediff_BasePregnancy rjw_preg)
- return (rjw_preg.p_end_tick - rjw_preg.p_start_tick) / GenDate.TicksPerHour;
- // TODO: Biotech pregnancy
- else return hediff.pawn.RaceProps.gestationPeriodDays * GenDate.HoursPerDay;
- }
-
- public static float RandomVariabilityPercent(int recursion = 0)
- {
- // Humans, in days
- const float mean = 1.635f;
- const float stddev = 0.9138f;
- const float lambda = 0.234f;
- if (recursion >= 10) return mean / (28 * 2);
-
- float variability = Rand.Gaussian(mean, stddev) - Mathf.Log(Rand.Value) / lambda;
- variability /= 28 * 2; // Convert to percentage
-
- if (variability < 0 || variability > 0.35f) return RandomVariabilityPercent(recursion + 1); // ~2% chance, about the limit on how far variability can go before things start to break
- else return variability;
- }
-
- 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.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;
-
- return true;
- }
-
- public static bool IsInEstrus(this Pawn pawn, bool visible = true)
- {
- if (pawn.Dead) return false;
- return pawn.health?.hediffSet?.HasHediff(visible ? VariousDefOf.Hediff_Estrus : VariousDefOf.Hediff_Estrus_Concealed) ?? false;
- }
-
- public static HediffComp_Menstruation.EstrusLevel HighestEstrus(this Pawn pawn)
- {
- if (!pawn.ShouldCycle()) return HediffComp_Menstruation.EstrusLevel.None;
- return pawn.GetMenstruationComps().
- Select(comp => comp.GetEstrusLevel()).
- DefaultIfEmpty(HediffComp_Menstruation.EstrusLevel.None).
- Max();
- }
-
- public static bool HasIUD(this Pawn pawn)
- {
- if (pawn.health.hediffSet.HasHediff(VariousDefOf.RJW_IUD)) return true;
- if (ModsConfig.BiotechActive && pawn.health.hediffSet.HasHediff(HediffDefOf.ImplantedIUD)) return true;
- return false;
- }
-
- public static bool IsProPregnancy(this Pawn pawn, out Precept precept)
- {
- precept = null;
-
- Ideo ideo = pawn.Ideo;
- if (ideo != null)
- {
- precept = ideo.GetPrecept(VariousDefOf.Pregnancy_Required) ??
- ideo.GetPrecept(VariousDefOf.Pregnancy_Holy) ??
- ideo.GetPrecept(VariousDefOf.Pregnancy_Elevated);
- }
- if (precept != null) return true;
-
- else return pawn.IsBreeder() ||
- pawn.HasImpregnationFetish();
- }
-
- public static float DamagePants(this Pawn pawn, float fluidAmount)
- {
- if (pawn.apparel == null) return 0;
- if (!pawn.apparel.WornApparel.
- Where(apparel => apparel.def.apparel.bodyPartGroups.Contains(BodyPartGroupDefOf.Legs)).
- TryMinBy(apparel => apparel.def.apparel.LastLayer.drawOrder, out Apparel pants))
- return 0;
-
- const float HPPerMl = 0.5f;
-
- DamageWorker.DamageResult damage = pants.TakeDamage(new DamageInfo(DamageDefOf.Deterioration, fluidAmount * HPPerMl, spawnFilth: false));
-
- if (pants.Destroyed && PawnUtility.ShouldSendNotificationAbout(pawn) && !pawn.Dead)
- Messages.Message("MessageWornApparelDeterioratedAway".Translate(GenLabel.ThingLabel(pants.def, pants.Stuff), pawn).CapitalizeFirst(), pawn, MessageTypeDefOf.NegativeEvent);
-
- return damage.totalDamageDealt;
- }
-
- public static bool UsingCondom(Pawn pawn, Pawn partner)
- {
- return
- ((pawn?.jobs?.curDriver as JobDriver_Sex)?.Sexprops.usedCondom ?? false)
- ||
- ((partner?.jobs?.curDriver as JobDriver_Sex)?.Sexprops.usedCondom ?? false);
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_Estrus.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_Estrus.cs
deleted file mode 100644
index 8c306a9..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_Estrus.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-using System.Collections.Generic;
-using System.Linq;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class Hediff_Estrus : HediffWithComps
- {
- const int checkInterval = GenTicks.TickRareInterval;
- private bool shouldRemove = false;
-
- public override bool ShouldRemove
- {
- get
- {
- return shouldRemove || base.ShouldRemove;
- }
- }
-
- protected bool IsVisible
- {
- get
- {
- return def == VariousDefOf.Hediff_Estrus;
- }
- }
-
- public override void PostAdd(DamageInfo? dinfo)
- {
- base.PostAdd(dinfo);
- if (IsVisible)
- {
- List removals = new List ();
- pawn.health.hediffSet.GetHediffs(ref removals, hediff => hediff.def == VariousDefOf.Hediff_Estrus_Concealed);
- foreach (Hediff concealedEstrus in removals)
- {
- pawn.health.RemoveHediff(concealedEstrus);
- }
- }
- }
-
- public override void PostTick()
- {
- base.PostTick();
- if (!pawn.IsHashIntervalTick(checkInterval)) return;
-
- if (IsVisible)
- {
- switch (pawn.HighestEstrus())
- {
- case HediffComp_Menstruation.EstrusLevel.None:
- shouldRemove = true;
- break;
- case HediffComp_Menstruation.EstrusLevel.Concealed:
- shouldRemove = true;
- pawn.health.AddHediff(VariousDefOf.Hediff_Estrus_Concealed);
- break;
- case HediffComp_Menstruation.EstrusLevel.Visible:
- break;
- }
- }
- else
- {
- // Adding a visible will remove this one, so we don't have to check it here
- if (pawn.HighestEstrus() == HediffComp_Menstruation.EstrusLevel.None) shouldRemove = true;
- }
- }
-
- public override bool TryMergeWith(Hediff other)
- {
- if (!(other is Hediff_Estrus otherEstrus)) return false;
-
- if (this.def == otherEstrus.def) return true;
- else if (!this.IsVisible && otherEstrus.IsVisible && !otherEstrus.shouldRemove) return true; // A concealed estrus won't be added if there's a visible
- // This is a visible estrus overwriting a concealed.
- else return false; // Since this is being added while hediffs are being looped through, it's not safe to remove the concealed yet. Do it in PostAdd.
- }
- }
-}
\ No newline at end of file
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs
deleted file mode 100644
index e67afc0..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs
+++ /dev/null
@@ -1,541 +0,0 @@
-using RimWorld;
-using rjw;
-using System.Collections.Generic;
-using System.Linq;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class Hediff_MultiplePregnancy : Hediff_BasePregnancy
- {
- protected Dictionary enzygoticSiblings = new Dictionary(); // Each pawn and who they split from
-
- // used by Eltoro's addons
- public override void PostMake()
- {
- base.PostMake();
- }
-
- public override void DiscoverPregnancy()
- {
- PregnancyThought();
- base.DiscoverPregnancy();
- }
-
- protected void PregnancyThought()
- {
- if (is_discovered ||
- !xxx.is_human(pawn) ||
- pawn.IsBreeder() || (pawn.Ideo?.HasPrecept(VariousDefOf.Pregnancy_Required) ?? false) ||
- (pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Spouse) ||
- x.def.Equals(PawnRelationDefOf.Fiance))) != null)
- return;
- if (pawn.IsProPregnancy(out Precept precept) || pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Lover)) != null)
- {
- if (precept != null)
- pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancyMild);
- }
- else
- {
- pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancy);
- }
- }
-
- public override void Miscarry()
- {
- HediffComp_Menstruation comp = this.GetMenstruationCompFromPregnancy();
- if (comp != null)
- comp.Pregnancy = null;
- if (babies != null)
- foreach (var baby in babies)
- baby.Destroy(DestroyMode.Vanish);
- base.Miscarry();
- }
-
- public override void GiveBirth()
- {
- if (babies.NullOrEmpty())
- {
- ModLog.Warning(" no babies (debug?) " + this.GetType().Name);
- if (father == null)
- {
- father = Trytogetfather(ref pawn);
- }
- Initialize(pawn, father, SelectDnaGivingParent(pawn, father));
- }
-
- foreach (Pawn baby in babies)
- {
- if (xxx.is_animal(baby))
- {
- BestialBirth(baby);
- }
- else
- {
- HumanlikeBirth(baby);
- }
-
- baby.ageTracker.AgeChronologicalTicks = 0;
- }
-
- pawn.health.RemoveHediff(this);
- HediffComp_Menstruation comp = this.GetMenstruationCompFromPregnancy();
- if(comp != null) comp.Pregnancy = null;
- HediffComp_Breast breastcomp = pawn.GetBreastComp();
- if (ModsConfig.BiotechActive && xxx.is_human(pawn) && breastcomp != null)
- pawn.health.AddHediff(HediffDefOf.Lactating);
- breastcomp?.GaveBirth();
- }
-
- private void HumanlikeBirth(Pawn baby)
- {
- Pawn mother = pawn; Pawn father = Utility.GetFather(baby, pawn);
- //backup melanin, LastName for when baby reset by other mod on spawn/backstorychange
- //var skin_whiteness = baby.story.melanin;
- //var last_name = baby.story.birthLastName;
-
- PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
-
- Need_Sex sex_need = mother.needs?.TryGetNeed();
- if (mother.Faction != null)
- {
- if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
- if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
- }
- if (mother.IsSlaveOfColony)
- {
- if (mother.SlaveFaction != null)
- baby.SetFaction(mother.SlaveFaction);
- else if (mother.HomeFaction != null)
- baby.SetFaction(mother.HomeFaction);
- else if (mother.Faction != null)
- baby.SetFaction(mother.Faction);
- else
- baby.SetFaction(Faction.OfPlayer);
- baby.guest.SetGuestStatus(Faction.OfPlayer, GuestStatus.Slave);
- }
- else if (mother.IsPrisonerOfColony)
- {
- if (mother.HomeFaction != null)
- baby.SetFaction(mother.HomeFaction);
- baby.guest.SetGuestStatus(Faction.OfPlayer, GuestStatus.Prisoner);
- }
-
- if (xxx.is_human(mother)) TaleRecorder.RecordTale(TaleDefOf.GaveBirth, new object[] { mother, baby });
-
- if (ModsConfig.BiotechActive)
- {
- // Ugly, but it'll have to do
- RitualOutcomePossibility bestOutcome = RitualOutcomeEffectDefOf.ChildBirth.BestOutcome;
-
- string label = bestOutcome.label;
- TaggedString description = bestOutcome.description.Formatted(mother.Named("MOTHER"));
- if (baby.genes?.HasActiveGene(GeneDefOf.Inbred) ?? false)
- description += "\n\n" + "InbredBabyBorn".Translate();
-
- baby.babyNamingDeadline = Find.TickManager.TicksGame + GenDate.DaysToTicks(1);
- ChoiceLetter_BabyBirth choiceLetter_BabyBirth = (ChoiceLetter_BabyBirth)LetterMaker.MakeLetter(
- label, description, LetterDefOf.BabyBirth, baby
- );
- choiceLetter_BabyBirth.Start();
- Find.LetterStack.ReceiveLetter(choiceLetter_BabyBirth);
- }
-
- PostBirth(mother, father, baby);
- }
-
- private void BestialBirth(Pawn baby)
- {
- Pawn mother = pawn; Pawn father = Utility.GetFather(baby, pawn);
- //backup melanin, LastName for when baby reset by other mod on spawn/backstorychange
- //var skin_whiteness = baby.story.melanin;
- //var last_name = baby.story.birthLastName;
-
- PawnUtility.TrySpawnHatchedOrBornPawn(baby, mother);
-
- Need_Sex sex_need = mother.needs?.TryGetNeed();
- if (mother.Faction != null)
- {
- if (!mother.Faction.IsPlayer && sex_need != null) sex_need.CurLevel = 1.0f;
- if (mother.Faction != baby.Faction) baby.SetFaction(mother.Faction);
- }
-
- Train(baby, mother);
-
- PostBirth(mother, father, baby);
-
- //restore melanin, LastName for when baby reset by other mod on spawn/backstorychange
- //baby.story.melanin = skin_whiteness;
- //baby.story.birthLastName = last_name;
- }
-
- public override void PostBirth(Pawn mother, Pawn father, Pawn baby)
- {
- base.PostBirth(mother, father, baby);
- // Has to happen on birth since RJW redoes the genitals at birth
- if (!enzygoticSiblings.NullOrEmpty() && enzygoticSiblings.TryGetValue(baby, out Pawn original) && baby != original)
- PregnancyCommon.ProcessIdenticalSibling(baby, original);
- }
-
- // From RJW's trait code
- protected List GetInheritableTraits(Pawn mother, Pawn father)
- {
- List traitpool = new List();
- List momtraits = new List();
- List poptraits = new List();
- List traits_to_inherit = new List();
- float max_num_momtraits_inherited = RJWPregnancySettings.max_num_momtraits_inherited;
- float max_num_poptraits_inherited = RJWPregnancySettings.max_num_poptraits_inherited;
- float max_num_traits_inherited = max_num_momtraits_inherited + max_num_poptraits_inherited;
- int i = 1;
- int j = 1;
- if (xxx.has_traits(mother) && mother.RaceProps.Humanlike)
- {
- foreach (Trait momtrait in mother.story.traits.allTraits)
- {
- if (!non_genetic_traits.Contains(momtrait.def.defName) && !momtrait.ScenForced)
- momtraits.Add(momtrait);
- }
- }
- if (father != null && xxx.has_traits(father) && father.RaceProps.Humanlike)
- {
- foreach (Trait poptrait in father.story.traits.allTraits)
- {
- if (!non_genetic_traits.Contains(poptrait.def.defName) && !poptrait.ScenForced)
- poptraits.Add(poptrait);
- }
- }
- int rand_trait_index;
- if (!momtraits.NullOrEmpty())
- {
- i = 1;
- while (momtraits.Count > 0 && i <= max_num_momtraits_inherited)
- {
- rand_trait_index = Rand.Range(0, momtraits.Count);
- traits_to_inherit.Add(momtraits[rand_trait_index]);
- momtraits.RemoveAt(rand_trait_index);
- }
- }
- if (!poptraits.NullOrEmpty())
- {
- j = 1;
- while (poptraits.Count > 0 && j <= max_num_poptraits_inherited)
- {
- rand_trait_index = Rand.Range(0, poptraits.Count);
- traits_to_inherit.Add(poptraits[rand_trait_index]);
- poptraits.RemoveAt(rand_trait_index);
- }
- }
-
- if (poptraits.NullOrEmpty() || momtraits.NullOrEmpty())
- {
- foreach (Trait traits in traits_to_inherit)
- {
- traitpool.Add(traits);
- }
- }
- else
- {
- if (traits_to_inherit.Count() != max_num_traits_inherited)
- {
- if (momtraits.Count != 0 && i != max_num_momtraits_inherited)
- {
- while (poptraits != null && momtraits.Count() > 0 && i <= max_num_momtraits_inherited)
- {
- rand_trait_index = Rand.Range(0, momtraits.Count);
- if (!traits_to_inherit.Contains(momtraits[rand_trait_index]))
- {
- traits_to_inherit.Add(momtraits[rand_trait_index]);
- }
- momtraits.RemoveAt(rand_trait_index);
- }
- }
- if (poptraits != null && poptraits.Count != 0 && j != max_num_poptraits_inherited)
- {
- while (poptraits.Count > 0 && i < max_num_poptraits_inherited)
- {
- rand_trait_index = Rand.Range(0, poptraits.Count);
- if (!traits_to_inherit.Contains(poptraits[rand_trait_index]))
- {
- traits_to_inherit.Add(poptraits[rand_trait_index]);
- }
- poptraits.RemoveAt(rand_trait_index);
- }
- }
- }
- foreach (Trait traits in traits_to_inherit)
- {
- traitpool.Add(traits);
- }
- }
- return traitpool;
- }
-
- public override void ExposeData()
- {
- base.ExposeData();
- Scribe_Collections.Look(ref enzygoticSiblings, "enzygoticSiblings", keyLookMode: LookMode.Reference, valueLookMode: LookMode.Reference);
- }
-
- protected override void GenerateBabies(DnaGivingParent _)
- {
- AddNewBaby(pawn, father);
- }
-
- protected void Train(Pawn baby, Pawn mother)
- {
- if (xxx.is_human(baby) || baby.Faction != Faction.OfPlayer) return;
-
- if (xxx.is_human(mother) && baby.Faction == Faction.OfPlayer && baby.training.CanAssignToTrain(TrainableDefOf.Obedience, out _).Accepted)
- {
- baby.training.Train(TrainableDefOf.Obedience, mother);
- }
- if (xxx.is_human(mother) && baby.Faction == Faction.OfPlayer && baby.training.CanAssignToTrain(TrainableDefOf.Tameness, out _).Accepted)
- {
- baby.training.Train(TrainableDefOf.Tameness, mother);
- }
- }
-
- public bool AddNewBaby(Pawn mother, Pawn father)
- {
- string lastname;
- if (xxx.is_human(mother)) lastname = NameTriple.FromString(mother.Name.ToStringFull).Last;
- else if (xxx.is_human(father)) lastname = NameTriple.FromString(father.Name.ToStringFull).Last;
- else lastname = "";
-
- PawnGenerationRequest request = new PawnGenerationRequest(
- developmentalStages: DevelopmentalStage.Newborn,
- allowDowned: true,
- faction: mother.Faction,
- canGeneratePawnRelations: false,
- forceGenerateNewPawn: true,
- colonistRelationChanceFactor: 0,
- allowFood: false,
- allowAddictions: false,
- relationWithExtraPawnChanceFactor: 0,
- fixedLastName: lastname,
- kind: PregnancyCommon.BabyPawnKindDecider(mother, father, false),
- //fixedIdeo: mother.Ideo,
- forbidAnyTitle: true,
- forcedEndogenes: PregnancyUtility.GetInheritedGenes(father, mother),
- forcedXenotype: ModsConfig.BiotechActive ? XenotypeDefOf.Baseliner : null
- );
-
- int division = 1;
- Pawn firstbaby = null;
- int traitSeed = Rand.Int;
- List parentTraits = GetInheritableTraits(mother, father);
- while (Rand.Chance(Configurations.EnzygoticTwinsChance) && division < Configurations.MaxEnzygoticTwins) division++;
- for (int i = 0; i < division; i++)
- {
- Pawn baby = GenerateBaby(request, mother, father, parentTraits, traitSeed);
- if (baby == null) break;
- PregnancyCommon.SetupBabyXenotype(mother, father, baby);
- // HAR and some xenotype mods don't randomize graphics until it's rendered
- // So poke it early
- baby.Drawer.renderer.EnsureGraphicsInitialized();
-
- if (division > 1)
- {
- if (i == 0)
- {
-
- firstbaby = baby;
- request.FixedGender = baby.gender;
- }
- else
- {
- enzygoticSiblings.Add(baby, firstbaby);
-
- if (baby.story != null)
- {
- baby.story.headType = firstbaby.story.headType;
- baby.story.hairDef = firstbaby.story.hairDef;
- baby.story.HairColor = firstbaby.story.HairColor;
- baby.story.bodyType = firstbaby.story.bodyType;
- baby.story.furDef = firstbaby.story.furDef;
- baby.story.SkinColorBase = firstbaby.story.SkinColorBase;
- baby.story.skinColorOverride = firstbaby.story.skinColorOverride;
- }
-
- if (baby.genes != null && ModsConfig.BiotechActive)
- {
- baby.genes.SetXenotypeDirect(firstbaby.genes.Xenotype);
- baby.genes.xenotypeName = firstbaby.genes.xenotypeName;
- baby.genes.iconDef = firstbaby.genes.iconDef;
- baby.genes.hybrid = firstbaby.genes.hybrid;
- }
-
- if (baby.IsHAR())
- HARCompatibility.CopyHARProperties(baby, firstbaby);
- AnimalGeneticsCompatibility.CopyGenes(baby, firstbaby);
- }
- }
- baby.Drawer.renderer.SetAllGraphicsDirty();
- babies.Add(baby);
- }
-
- return true;
-
- }
-
- public Pawn GenerateBaby(PawnGenerationRequest request, Pawn mother, Pawn father, List parentTraits, int traitSeed)
- {
- AnimalGeneticsCompatibility.PreConception(mother, father);
- Pawn baby = PawnGenerator.GeneratePawn(request);
- AnimalGeneticsCompatibility.PostConception();
- if (baby == null)
- {
- Log.Error("Baby not generated. Request: " + request.ToString());
- return null;
- }
- if (xxx.is_human(baby) || (baby.relations != null && !RJWSettings.Disable_bestiality_pregnancy_relations))
- {
- baby.SetMother(mother);
- if (mother != father)
- {
- if (father.gender != Gender.Female) baby.SetFather(father);
- else baby.relations.AddDirectRelation(PawnRelationDefOf.Parent, father);
- }
- }
- if (xxx.is_human(baby))
- {
- // Ensure the same inherited traits are chosen each run
- // Has to happen right here so GeneratePawn up there still gets unique results
- Rand.PushState(traitSeed); // With a seed just to make sure that fraternal twins *don't* get trait-duped
- UpdateTraits(baby, parentTraits);
- Rand.PopState();
- }
- return baby;
- }
-
- ///
- /// Copy from RJW
- ///
- ///
- ///
- ///
- public void UpdateTraits(Pawn pawn, List parentTraits)
- {
- if (pawn?.story?.traits == null)
- {
- return;
- }
-
- int traitLimit = pawn.story.traits.allTraits.Count;
-
- //Personal pool
- List personalTraitPool = new List(pawn.story.traits.allTraits);
- //Parents
- List parentTraitPool = new List(parentTraits);
- parentTraitPool.RemoveAll(x => x.ScenForced);
- int numberInherited;
- if (parentTraitPool != null)
- numberInherited = System.Math.Min(parentTraitPool.Count(), Rand.RangeInclusive(0, 2)); // Not 3; give a better chance for a natural trait to appear
- else
- numberInherited = 0;
-
- //Game suggested traits.
- IEnumerable forcedTraits = personalTraitPool
- .Where(x => x.ScenForced)
- .Distinct(new TraitComparer(ignoreDegree: true)); // result can be a mess, because game allows this mess to be created in scenario editor
-
- List selectedTraits = new List();
- TraitComparer comparer = new TraitComparer(); // trait comparision implementation, because without game compares traits *by reference*, makeing them all unique.
- selectedTraits.AddRange(forcedTraits); // enforcing scenario forced traits
- for (int i = 0; i < numberInherited; i++) // add parent traits first
- {
- int index = Rand.Range(0, parentTraitPool.Count);
- Trait trait = parentTraitPool[index];
- parentTraitPool.RemoveAt(index);
- if (!selectedTraits.Any(x => comparer.Equals(x, trait) ||
- x.def.ConflictsWith(trait)))
- selectedTraits.Add(new Trait(trait.def, trait.Degree, false));
- }
-
- while (selectedTraits.Count < traitLimit && personalTraitPool.Count > 0)
- {
- int index = Rand.Range(0, personalTraitPool.Count); // getting trait and removing from the pull
- Trait trait = personalTraitPool[index];
- personalTraitPool.RemoveAt(index);
-
- if (!selectedTraits.Any(x => comparer.Equals(x, trait) || // skipping traits conflicting with already added
- x.def.ConflictsWith(trait)))
- selectedTraits.Add(new Trait(trait.def, trait.Degree, false));
-
- }
-
- pawn.story.traits.allTraits = selectedTraits;
- }
-
- public override bool TryMergeWith(Hediff other)
- {
- return false;
- }
- }
-
- ///
- /// Copy from RJW
- ///
- public class TraitComparer : IEqualityComparer
- {
- readonly bool ignoreForced;
- readonly bool ignoreDegree;
-
- public TraitComparer(bool ignoreDegree = false, bool ignoreForced = true)
- {
- this.ignoreDegree = ignoreDegree;
- this.ignoreForced = ignoreForced;
- }
-
- public bool Equals(Trait x, Trait y)
- {
- return
- x.def == y.def &&
- (ignoreDegree || (x.Degree == y.Degree)) &&
- (ignoreForced || (x.ScenForced == y.ScenForced));
- }
-
- public int GetHashCode(Trait obj)
- {
- return
- (obj.def.GetHashCode() << 5) +
- (ignoreDegree ? 0 : obj.Degree) +
- ((ignoreForced || obj.ScenForced) ? 0 : 0x10);
- }
- }
-
- public class RaceComparer : IEqualityComparer
- {
- public bool Equals(Pawn x, Pawn y)
- {
- return x.def.Equals(y.def);
- }
-
- public int GetHashCode(Pawn obj)
- {
- return obj.def.GetHashCode();
- }
- }
-
- public class FatherComparer : IEqualityComparer
- {
- readonly Pawn mother;
-
- public FatherComparer(Pawn mother)
- {
- this.mother = mother;
- }
-
- public bool Equals(Pawn x, Pawn y)
- {
- if (Utility.GetFather(x, mother) == null && Utility.GetFather(y, mother) == null) return true;
- return Utility.GetFather(x, mother)?.Label.Equals(Utility.GetFather(y, mother)?.Label) ?? false;
- }
-
- public int GetHashCode(Pawn obj)
- {
- return obj.def.GetHashCode();
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/IngestionOutcomeDoers.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/IngestionOutcomeDoers.cs
deleted file mode 100644
index 98f9c06..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/IngestionOutcomeDoers.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using RimWorld;
-using Verse;
-
-namespace RJW_Menstruation
-{
- public class IngestionOutcomeDoer_GiveHediff_StackCount : IngestionOutcomeDoer_GiveHediff
- {
- protected override void DoIngestionOutcomeSpecial(Pawn pawn, Thing ingested, int ingestedcount)
- {
- Hediff hediff = HediffMaker.MakeHediff(hediffDef, pawn);
- float effect = ((!(severity > 0f)) ? hediffDef.initialSeverity : severity) * ingestedcount;
- AddictionUtility.ModifyChemicalEffectForToleranceAndBodySize(pawn, toleranceChemical, ref effect, multiplyByGeneToleranceFactors);
- hediff.Severity = effect;
- pawn.health.AddHediff(hediff);
- }
- }
-}
diff --git a/1.6/source/RJW_Menstruation/RJW_Menstruation/JobDrivers.cs b/1.6/source/RJW_Menstruation/RJW_Menstruation/JobDrivers.cs
deleted file mode 100644
index 99cae05..0000000
--- a/1.6/source/RJW_Menstruation/RJW_Menstruation/JobDrivers.cs
+++ /dev/null
@@ -1,125 +0,0 @@
-using RimWorld;
-using System.Collections.Generic;
-using System.Linq;
-using Verse;
-using Verse.AI;
-
-namespace RJW_Menstruation
-{
- public class JobDriver_VaginaWashing : JobDriver
- {
- const int excretingTime = 300;//ticks - 120 = 2 real seconds, 3 in-game minutes
-
- public override bool TryMakePreToilReservations(bool errorOnFailed)
- {
- return pawn.Reserve(pawn, job, 1, -1, null, errorOnFailed);
- }
-
- protected override IEnumerable MakeNewToils()
- {
- List comps = pawn.GetMenstruationComps().ToList();
- this.FailOn(delegate
- {
- return comps.All(comp => comp.TotalCumPercent < 0.001);
- });
- Toil excreting = Toils_General.Wait(excretingTime, TargetIndex.None);//duration of
-
- excreting.WithProgressBarToilDelay(TargetIndex.A);
- yield return excreting;
- yield return new Toil()
- {
- initAction = delegate ()
- {
- foreach (HediffComp_Menstruation comp in comps)
- comp.CumOut(null, 0.5f);
- if (comps.Any(comp => comp.TotalCumPercent > 0.001)) JumpToToil(excreting);
- }
- };
- //yield return excreting;
- yield break;
- }
- }
-
- public class JobDriver_MilkSelf : JobDriver
- {
- protected float progress = 0;
- protected float MilkingTime
- {
- get
- {
- return 250f * Fullness + 50f;
- }
- }
- protected virtual float Fullness
- {
- get
- {
- return comp?.Fullness ?? 0;
- }
- }
-
- private CompMilkable comp;
-
- public override bool TryMakePreToilReservations(bool errorOnFailed)
- {
- return pawn.Reserve(pawn, job, 1, -1, null, errorOnFailed);
- }
-
- protected virtual void PreMakeNewToils()
- {
- comp = pawn.GetComp