diff --git a/About/About.xml b/About/About.xml index 32a15a0..35023f0 100644 --- a/About/About.xml +++ b/About/About.xml @@ -1,6 +1,6 @@ - RJW Menstrution Cycle + RJW Menstruation Cycle a
  • 1.2
  • @@ -29,6 +29,6 @@
  • brrainz.harmony
  • rim.job.world
  • - rjw.menstrution + rjw.menstruation yes yes
    \ No newline at end of file diff --git a/About/Manifest.xml b/About/Manifest.xml index 2b37343..04a4ef7 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@ RJW Menstruation - 1.0.1.2 + 1.0.1.3 diff --git a/Assemblies/RJW_Menstruation.dll b/Assemblies/RJW_Menstruation.dll index e176b9c..1a50d99 100644 Binary files a/Assemblies/RJW_Menstruation.dll and b/Assemblies/RJW_Menstruation.dll differ diff --git a/Defs/ThoughtDefs/Thoughts_sex.xml b/Defs/ThoughtDefs/Thoughts_sex.xml new file mode 100644 index 0000000..77b7ba6 --- /dev/null +++ b/Defs/ThoughtDefs/Thoughts_sex.xml @@ -0,0 +1,160 @@ + + + + + LeakingFluids + Thought_Memory + 0.05 + 1 + 0.4 + +
  • + + It bothers me. + -2 +
  • +
    +
    + + + CameInsideF + Thought_Memory + 7.0 + 5 + 0.1 + +
  • + + I'm worried i might get pregnant. + -5 + -2 +
  • +
    +
    + + + CameInsideFLowFert + Thought_Memory + 7.0 + 5 + 0.1 + +
  • + + I'm worried i might get pregnant. The chance is low, but... + -2 +
  • +
    +
    + + + CameInsideFFetish + Thought_Memory + 3.0 + 5 + 0.1 + +
  • + + I might get pregnant. + 15 + 5 +
  • +
    +
    + + + CameInsideFFetishSafe + Thought_Memory + 3.0 + 5 + 0.1 + +
  • + + I loved it. + 5 + 1 +
  • +
    +
    + + + CameInsideM + Thought_Memory + 1.0 + 5 + 0.4 + +
  • + + Feel so good. + 2 +
  • +
    +
    + + + HaterCameInsideFSafe + Thought_Memory + 3.0 + 5 + 0.1 + +
  • + + That son of bitch came inside of me! + -5 + -5 +
  • +
    +
    + + + HaterCameInsideF + Thought_Memory + 7.0 + 5 + 0.1 + +
  • + + That son of bitch came inside of me! I don't want to be pregnant with his baby + -10 + -10 +
  • +
    +
    + + + HaterCameInsideM + Thought_Memory + 1.0 + 5 + 0.4 + +
  • + + i came inside of that bitch + 5 +
  • +
    +
    + + + UnwantedPregnancy + Thought_Memory + 14.0 + 5 + 0.1 + +
  • + + How do i... + -15 +
  • +
    +
    + + +
    diff --git a/Languages/Korean/DefInjected/ThoughtDef/RJWMenstruation.xml b/Languages/Korean/DefInjected/ThoughtDef/RJWMenstruation.xml new file mode 100644 index 0000000..7d503c0 --- /dev/null +++ b/Languages/Korean/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/Patches/Item_Resource_Stuffs.xml b/Patches/Item_Resource_Stuffs.xml new file mode 100644 index 0000000..9a4a571 --- /dev/null +++ b/Patches/Item_Resource_Stuffs.xml @@ -0,0 +1,38 @@ + + + + + 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/Textures/Fetus/Fetus_Brown00.png b/Textures/Fetus/Fetus_Brown00.png deleted file mode 100644 index 3df90a7..0000000 Binary files a/Textures/Fetus/Fetus_Brown00.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Brown01.png b/Textures/Fetus/Fetus_Brown01.png deleted file mode 100644 index b4e25bb..0000000 Binary files a/Textures/Fetus/Fetus_Brown01.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Brown02.png b/Textures/Fetus/Fetus_Brown02.png deleted file mode 100644 index b40e3e7..0000000 Binary files a/Textures/Fetus/Fetus_Brown02.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Brown03.png b/Textures/Fetus/Fetus_Brown03.png deleted file mode 100644 index 40e1742..0000000 Binary files a/Textures/Fetus/Fetus_Brown03.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Green00.png b/Textures/Fetus/Fetus_Green00.png deleted file mode 100644 index cdf8600..0000000 Binary files a/Textures/Fetus/Fetus_Green00.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Green01.png b/Textures/Fetus/Fetus_Green01.png deleted file mode 100644 index fac6c7e..0000000 Binary files a/Textures/Fetus/Fetus_Green01.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Green02.png b/Textures/Fetus/Fetus_Green02.png deleted file mode 100644 index 30f7ae5..0000000 Binary files a/Textures/Fetus/Fetus_Green02.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Green03.png b/Textures/Fetus/Fetus_Green03.png deleted file mode 100644 index 9ef6076..0000000 Binary files a/Textures/Fetus/Fetus_Green03.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Orc00.png b/Textures/Fetus/Fetus_Orc00.png deleted file mode 100644 index 9e4bdbd..0000000 Binary files a/Textures/Fetus/Fetus_Orc00.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Orc01.png b/Textures/Fetus/Fetus_Orc01.png deleted file mode 100644 index 90cffe0..0000000 Binary files a/Textures/Fetus/Fetus_Orc01.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Orc02.png b/Textures/Fetus/Fetus_Orc02.png deleted file mode 100644 index ac28262..0000000 Binary files a/Textures/Fetus/Fetus_Orc02.png and /dev/null differ diff --git a/Textures/Fetus/Fetus_Orc03.png b/Textures/Fetus/Fetus_Orc03.png deleted file mode 100644 index c736b55..0000000 Binary files a/Textures/Fetus/Fetus_Orc03.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Abomi02.png b/Textures/Fetus/Slime_Abomi02.png deleted file mode 100644 index 612481f..0000000 Binary files a/Textures/Fetus/Slime_Abomi02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Black02.png b/Textures/Fetus/Slime_Black02.png deleted file mode 100644 index 8094fc6..0000000 Binary files a/Textures/Fetus/Slime_Black02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Blue02.png b/Textures/Fetus/Slime_Blue02.png deleted file mode 100644 index 6ee8a45..0000000 Binary files a/Textures/Fetus/Slime_Blue02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Default00.png b/Textures/Fetus/Slime_Default00.png deleted file mode 100644 index db17277..0000000 Binary files a/Textures/Fetus/Slime_Default00.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Default01.png b/Textures/Fetus/Slime_Default01.png deleted file mode 100644 index 817f77d..0000000 Binary files a/Textures/Fetus/Slime_Default01.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Default02.png b/Textures/Fetus/Slime_Default02.png deleted file mode 100644 index fa3805b..0000000 Binary files a/Textures/Fetus/Slime_Default02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Pink02.png b/Textures/Fetus/Slime_Pink02.png deleted file mode 100644 index eb560c5..0000000 Binary files a/Textures/Fetus/Slime_Pink02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Red02.png b/Textures/Fetus/Slime_Red02.png deleted file mode 100644 index 0ecb289..0000000 Binary files a/Textures/Fetus/Slime_Red02.png and /dev/null differ diff --git a/Textures/Fetus/Slime_Yellow02.png b/Textures/Fetus/Slime_Yellow02.png deleted file mode 100644 index 818f2d0..0000000 Binary files a/Textures/Fetus/Slime_Yellow02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Brown00.png b/Textures/Fetus_small/Fetus_Brown00.png deleted file mode 100644 index 3df90a7..0000000 Binary files a/Textures/Fetus_small/Fetus_Brown00.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Brown01.png b/Textures/Fetus_small/Fetus_Brown01.png deleted file mode 100644 index b4e25bb..0000000 Binary files a/Textures/Fetus_small/Fetus_Brown01.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Brown02.png b/Textures/Fetus_small/Fetus_Brown02.png deleted file mode 100644 index b40e3e7..0000000 Binary files a/Textures/Fetus_small/Fetus_Brown02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Brown03.png b/Textures/Fetus_small/Fetus_Brown03.png deleted file mode 100644 index 40e1742..0000000 Binary files a/Textures/Fetus_small/Fetus_Brown03.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Default00.png b/Textures/Fetus_small/Fetus_Default00.png deleted file mode 100644 index b56cde5..0000000 Binary files a/Textures/Fetus_small/Fetus_Default00.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Default01.png b/Textures/Fetus_small/Fetus_Default01.png deleted file mode 100644 index f11d1ae..0000000 Binary files a/Textures/Fetus_small/Fetus_Default01.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Default02.png b/Textures/Fetus_small/Fetus_Default02.png deleted file mode 100644 index 7ef4239..0000000 Binary files a/Textures/Fetus_small/Fetus_Default02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Default03.png b/Textures/Fetus_small/Fetus_Default03.png deleted file mode 100644 index 8197f1c..0000000 Binary files a/Textures/Fetus_small/Fetus_Default03.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Early00.png b/Textures/Fetus_small/Fetus_Early00.png deleted file mode 100644 index 232cdb4..0000000 Binary files a/Textures/Fetus_small/Fetus_Early00.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Early01.png b/Textures/Fetus_small/Fetus_Early01.png deleted file mode 100644 index c884fdc..0000000 Binary files a/Textures/Fetus_small/Fetus_Early01.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Early02.png b/Textures/Fetus_small/Fetus_Early02.png deleted file mode 100644 index f52b5f3..0000000 Binary files a/Textures/Fetus_small/Fetus_Early02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Green00.png b/Textures/Fetus_small/Fetus_Green00.png deleted file mode 100644 index cdf8600..0000000 Binary files a/Textures/Fetus_small/Fetus_Green00.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Green01.png b/Textures/Fetus_small/Fetus_Green01.png deleted file mode 100644 index fac6c7e..0000000 Binary files a/Textures/Fetus_small/Fetus_Green01.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Green02.png b/Textures/Fetus_small/Fetus_Green02.png deleted file mode 100644 index 30f7ae5..0000000 Binary files a/Textures/Fetus_small/Fetus_Green02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Green03.png b/Textures/Fetus_small/Fetus_Green03.png deleted file mode 100644 index 9ef6076..0000000 Binary files a/Textures/Fetus_small/Fetus_Green03.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Orc00.png b/Textures/Fetus_small/Fetus_Orc00.png deleted file mode 100644 index 3637251..0000000 Binary files a/Textures/Fetus_small/Fetus_Orc00.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Orc01.png b/Textures/Fetus_small/Fetus_Orc01.png deleted file mode 100644 index 769edba..0000000 Binary files a/Textures/Fetus_small/Fetus_Orc01.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Orc02.png b/Textures/Fetus_small/Fetus_Orc02.png deleted file mode 100644 index 939af97..0000000 Binary files a/Textures/Fetus_small/Fetus_Orc02.png and /dev/null differ diff --git a/Textures/Fetus_small/Fetus_Orc03.png b/Textures/Fetus_small/Fetus_Orc03.png deleted file mode 100644 index 6e9d9cb..0000000 Binary files a/Textures/Fetus_small/Fetus_Orc03.png and /dev/null differ diff --git a/Textures/Fetus_small/ImplantedEgg.png b/Textures/Fetus_small/ImplantedEgg.png deleted file mode 100644 index 3b5769c..0000000 Binary files a/Textures/Fetus_small/ImplantedEgg.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Abomi02.png b/Textures/Fetus_small/Slime_Abomi02.png deleted file mode 100644 index 325d613..0000000 Binary files a/Textures/Fetus_small/Slime_Abomi02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Black02.png b/Textures/Fetus_small/Slime_Black02.png deleted file mode 100644 index 8094fc6..0000000 Binary files a/Textures/Fetus_small/Slime_Black02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Blue02.png b/Textures/Fetus_small/Slime_Blue02.png deleted file mode 100644 index 754909d..0000000 Binary files a/Textures/Fetus_small/Slime_Blue02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Default00.png b/Textures/Fetus_small/Slime_Default00.png deleted file mode 100644 index b20b609..0000000 Binary files a/Textures/Fetus_small/Slime_Default00.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Default01.png b/Textures/Fetus_small/Slime_Default01.png deleted file mode 100644 index 9b9d95c..0000000 Binary files a/Textures/Fetus_small/Slime_Default01.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Default02.png b/Textures/Fetus_small/Slime_Default02.png deleted file mode 100644 index b05119e..0000000 Binary files a/Textures/Fetus_small/Slime_Default02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Pink02.png b/Textures/Fetus_small/Slime_Pink02.png deleted file mode 100644 index eb560c5..0000000 Binary files a/Textures/Fetus_small/Slime_Pink02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Red02.png b/Textures/Fetus_small/Slime_Red02.png deleted file mode 100644 index 0ecb289..0000000 Binary files a/Textures/Fetus_small/Slime_Red02.png and /dev/null differ diff --git a/Textures/Fetus_small/Slime_Yellow02.png b/Textures/Fetus_small/Slime_Yellow02.png deleted file mode 100644 index 818f2d0..0000000 Binary files a/Textures/Fetus_small/Slime_Yellow02.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal00.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal00.png deleted file mode 100644 index 2923a23..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal00.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal01.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal01.png deleted file mode 100644 index 432b0b8..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal01.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal02.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal02.png deleted file mode 100644 index a251d81..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal02.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal03.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal03.png deleted file mode 100644 index 2f81bd1..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal03.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal04.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal04.png deleted file mode 100644 index 02459be..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal04.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal05.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal05.png deleted file mode 100644 index 10541df..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal05.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal2_00.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal2_00.png deleted file mode 100644 index abe20b9..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Anal2_00.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina00.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina00.png deleted file mode 100644 index fd028b4..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina00.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina01.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina01.png deleted file mode 100644 index f21f123..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina01.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina02.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina02.png deleted file mode 100644 index 37f6830..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina02.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina03.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina03.png deleted file mode 100644 index 53ab1cb..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina03.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina04.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina04.png deleted file mode 100644 index 70eba1f..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina04.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina05.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina05.png deleted file mode 100644 index c19e597..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina05.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina06.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina06.png deleted file mode 100644 index d381cb1..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina06.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina07.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina07.png deleted file mode 100644 index 7565f91..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina07.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina08.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina08.png deleted file mode 100644 index 99d1def..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina08.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina09.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina09.png deleted file mode 100644 index 99d1def..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina09.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina10.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina10.png deleted file mode 100644 index 0c70534..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina10.png and /dev/null differ diff --git a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina11.png b/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina11.png deleted file mode 100644 index d90afad..0000000 Binary files a/Textures/Genitals_old(RGB)(noise_scale)(Level1)(x2.000000)(16bit)/Vagina11.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal00.png b/Textures/Genitals_old/Anal00.png deleted file mode 100644 index 3e4a0df..0000000 Binary files a/Textures/Genitals_old/Anal00.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal01.png b/Textures/Genitals_old/Anal01.png deleted file mode 100644 index dd2e2b7..0000000 Binary files a/Textures/Genitals_old/Anal01.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal02.png b/Textures/Genitals_old/Anal02.png deleted file mode 100644 index 97ce6a0..0000000 Binary files a/Textures/Genitals_old/Anal02.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal03.png b/Textures/Genitals_old/Anal03.png deleted file mode 100644 index b55f8d3..0000000 Binary files a/Textures/Genitals_old/Anal03.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal04.png b/Textures/Genitals_old/Anal04.png deleted file mode 100644 index 21b6fb5..0000000 Binary files a/Textures/Genitals_old/Anal04.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal05.png b/Textures/Genitals_old/Anal05.png deleted file mode 100644 index adf9ba5..0000000 Binary files a/Textures/Genitals_old/Anal05.png and /dev/null differ diff --git a/Textures/Genitals_old/Anal2_00.png b/Textures/Genitals_old/Anal2_00.png deleted file mode 100644 index cb175a6..0000000 Binary files a/Textures/Genitals_old/Anal2_00.png and /dev/null differ diff --git a/Textures/Genitals_old/Genitals.zip b/Textures/Genitals_old/Genitals.zip deleted file mode 100644 index ccd7cc9..0000000 Binary files a/Textures/Genitals_old/Genitals.zip and /dev/null differ diff --git a/Textures/Genitals_old/Vagina00.png b/Textures/Genitals_old/Vagina00.png deleted file mode 100644 index f8f2ec3..0000000 Binary files a/Textures/Genitals_old/Vagina00.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina01.png b/Textures/Genitals_old/Vagina01.png deleted file mode 100644 index 7c966bb..0000000 Binary files a/Textures/Genitals_old/Vagina01.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina02.png b/Textures/Genitals_old/Vagina02.png deleted file mode 100644 index 496c1b6..0000000 Binary files a/Textures/Genitals_old/Vagina02.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina03.png b/Textures/Genitals_old/Vagina03.png deleted file mode 100644 index 8ef46dd..0000000 Binary files a/Textures/Genitals_old/Vagina03.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina04.png b/Textures/Genitals_old/Vagina04.png deleted file mode 100644 index badddf8..0000000 Binary files a/Textures/Genitals_old/Vagina04.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina05.png b/Textures/Genitals_old/Vagina05.png deleted file mode 100644 index b790cf4..0000000 Binary files a/Textures/Genitals_old/Vagina05.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina06.png b/Textures/Genitals_old/Vagina06.png deleted file mode 100644 index 1328f40..0000000 Binary files a/Textures/Genitals_old/Vagina06.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina07.png b/Textures/Genitals_old/Vagina07.png deleted file mode 100644 index db8afb7..0000000 Binary files a/Textures/Genitals_old/Vagina07.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina08.png b/Textures/Genitals_old/Vagina08.png deleted file mode 100644 index e2cb3fe..0000000 Binary files a/Textures/Genitals_old/Vagina08.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina09.png b/Textures/Genitals_old/Vagina09.png deleted file mode 100644 index ff16fb4..0000000 Binary files a/Textures/Genitals_old/Vagina09.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina10.png b/Textures/Genitals_old/Vagina10.png deleted file mode 100644 index 0ab5f78..0000000 Binary files a/Textures/Genitals_old/Vagina10.png and /dev/null differ diff --git a/Textures/Genitals_old/Vagina11.png b/Textures/Genitals_old/Vagina11.png deleted file mode 100644 index b493620..0000000 Binary files a/Textures/Genitals_old/Vagina11.png and /dev/null differ diff --git a/Textures/Womb_old/Cum.psd b/Textures/Womb_old/Cum.psd deleted file mode 100644 index f163dfc..0000000 Binary files a/Textures/Womb_old/Cum.psd and /dev/null differ diff --git a/Textures/Womb_old/Cum_00.png b/Textures/Womb_old/Cum_00.png deleted file mode 100644 index e399317..0000000 Binary files a/Textures/Womb_old/Cum_00.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_01.png b/Textures/Womb_old/Cum_01.png deleted file mode 100644 index cccb471..0000000 Binary files a/Textures/Womb_old/Cum_01.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_02.png b/Textures/Womb_old/Cum_02.png deleted file mode 100644 index ed4f690..0000000 Binary files a/Textures/Womb_old/Cum_02.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_03.png b/Textures/Womb_old/Cum_03.png deleted file mode 100644 index cd6cbff..0000000 Binary files a/Textures/Womb_old/Cum_03.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_04.png b/Textures/Womb_old/Cum_04.png deleted file mode 100644 index 48a5101..0000000 Binary files a/Textures/Womb_old/Cum_04.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_05.png b/Textures/Womb_old/Cum_05.png deleted file mode 100644 index 8bd5f29..0000000 Binary files a/Textures/Womb_old/Cum_05.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_06.png b/Textures/Womb_old/Cum_06.png deleted file mode 100644 index 76e94c1..0000000 Binary files a/Textures/Womb_old/Cum_06.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_07.png b/Textures/Womb_old/Cum_07.png deleted file mode 100644 index d4629d4..0000000 Binary files a/Textures/Womb_old/Cum_07.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_08.png b/Textures/Womb_old/Cum_08.png deleted file mode 100644 index 9bb7992..0000000 Binary files a/Textures/Womb_old/Cum_08.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_09.png b/Textures/Womb_old/Cum_09.png deleted file mode 100644 index fb5c539..0000000 Binary files a/Textures/Womb_old/Cum_09.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_10.png b/Textures/Womb_old/Cum_10.png deleted file mode 100644 index 314753a..0000000 Binary files a/Textures/Womb_old/Cum_10.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_11.png b/Textures/Womb_old/Cum_11.png deleted file mode 100644 index 241760f..0000000 Binary files a/Textures/Womb_old/Cum_11.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_12.png b/Textures/Womb_old/Cum_12.png deleted file mode 100644 index 7872f5f..0000000 Binary files a/Textures/Womb_old/Cum_12.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_13.png b/Textures/Womb_old/Cum_13.png deleted file mode 100644 index 3bae9d9..0000000 Binary files a/Textures/Womb_old/Cum_13.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_14.png b/Textures/Womb_old/Cum_14.png deleted file mode 100644 index 0bbac57..0000000 Binary files a/Textures/Womb_old/Cum_14.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_15.png b/Textures/Womb_old/Cum_15.png deleted file mode 100644 index b472b16..0000000 Binary files a/Textures/Womb_old/Cum_15.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_16.png b/Textures/Womb_old/Cum_16.png deleted file mode 100644 index 0b5a949..0000000 Binary files a/Textures/Womb_old/Cum_16.png and /dev/null differ diff --git a/Textures/Womb_old/Cum_17.png b/Textures/Womb_old/Cum_17.png deleted file mode 100644 index e62bc70..0000000 Binary files a/Textures/Womb_old/Cum_17.png and /dev/null differ diff --git a/Textures/Womb_old/Empty.png b/Textures/Womb_old/Empty.png deleted file mode 100644 index 1aa9036..0000000 Binary files a/Textures/Womb_old/Empty.png and /dev/null differ diff --git a/Textures/Womb_old/ImplantedEgg.png b/Textures/Womb_old/ImplantedEgg.png deleted file mode 100644 index a109402..0000000 Binary files a/Textures/Womb_old/ImplantedEgg.png and /dev/null differ diff --git a/Textures/Womb_old/Womb.7z b/Textures/Womb_old/Womb.7z deleted file mode 100644 index 9041c54..0000000 Binary files a/Textures/Womb_old/Womb.7z and /dev/null differ diff --git a/Textures/Womb_old/Womb.png b/Textures/Womb_old/Womb.png deleted file mode 100644 index 99cc7c9..0000000 Binary files a/Textures/Womb_old/Womb.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Bleeding.png b/Textures/Womb_old/Womb_Bleeding.png deleted file mode 100644 index 005c530..0000000 Binary files a/Textures/Womb_old/Womb_Bleeding.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum.psd b/Textures/Womb_old/Womb_Cum.psd deleted file mode 100644 index 8867b14..0000000 Binary files a/Textures/Womb_old/Womb_Cum.psd and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum00.png b/Textures/Womb_old/Womb_Cum00.png deleted file mode 100644 index 7788477..0000000 Binary files a/Textures/Womb_old/Womb_Cum00.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum01.png b/Textures/Womb_old/Womb_Cum01.png deleted file mode 100644 index 0538950..0000000 Binary files a/Textures/Womb_old/Womb_Cum01.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum02.png b/Textures/Womb_old/Womb_Cum02.png deleted file mode 100644 index 6cbdbef..0000000 Binary files a/Textures/Womb_old/Womb_Cum02.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum03.png b/Textures/Womb_old/Womb_Cum03.png deleted file mode 100644 index b5eb038..0000000 Binary files a/Textures/Womb_old/Womb_Cum03.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum04.png b/Textures/Womb_old/Womb_Cum04.png deleted file mode 100644 index cf3331c..0000000 Binary files a/Textures/Womb_old/Womb_Cum04.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum05.png b/Textures/Womb_old/Womb_Cum05.png deleted file mode 100644 index d6c211e..0000000 Binary files a/Textures/Womb_old/Womb_Cum05.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum06.png b/Textures/Womb_old/Womb_Cum06.png deleted file mode 100644 index 1a4c741..0000000 Binary files a/Textures/Womb_old/Womb_Cum06.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum07.png b/Textures/Womb_old/Womb_Cum07.png deleted file mode 100644 index 17c9eed..0000000 Binary files a/Textures/Womb_old/Womb_Cum07.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum08.png b/Textures/Womb_old/Womb_Cum08.png deleted file mode 100644 index b2c785f..0000000 Binary files a/Textures/Womb_old/Womb_Cum08.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum09.png b/Textures/Womb_old/Womb_Cum09.png deleted file mode 100644 index d90fcbc..0000000 Binary files a/Textures/Womb_old/Womb_Cum09.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum10.png b/Textures/Womb_old/Womb_Cum10.png deleted file mode 100644 index 6405442..0000000 Binary files a/Textures/Womb_old/Womb_Cum10.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum11.png b/Textures/Womb_old/Womb_Cum11.png deleted file mode 100644 index 4708645..0000000 Binary files a/Textures/Womb_old/Womb_Cum11.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum12.png b/Textures/Womb_old/Womb_Cum12.png deleted file mode 100644 index de7a045..0000000 Binary files a/Textures/Womb_old/Womb_Cum12.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum13.png b/Textures/Womb_old/Womb_Cum13.png deleted file mode 100644 index f085f10..0000000 Binary files a/Textures/Womb_old/Womb_Cum13.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum14.png b/Textures/Womb_old/Womb_Cum14.png deleted file mode 100644 index 25a94d7..0000000 Binary files a/Textures/Womb_old/Womb_Cum14.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum15.png b/Textures/Womb_old/Womb_Cum15.png deleted file mode 100644 index 995ae80..0000000 Binary files a/Textures/Womb_old/Womb_Cum15.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum16.png b/Textures/Womb_old/Womb_Cum16.png deleted file mode 100644 index 5c70d4d..0000000 Binary files a/Textures/Womb_old/Womb_Cum16.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Cum17.png b/Textures/Womb_old/Womb_Cum17.png deleted file mode 100644 index 0687db2..0000000 Binary files a/Textures/Womb_old/Womb_Cum17.png and /dev/null differ diff --git a/Textures/Womb_old/Womb_Implanted.png b/Textures/Womb_old/Womb_Implanted.png deleted file mode 100644 index 33b72cc..0000000 Binary files a/Textures/Womb_old/Womb_Implanted.png and /dev/null differ diff --git a/changelogs.txt b/changelogs.txt index 4117b79..d194a01 100644 --- a/changelogs.txt +++ b/changelogs.txt @@ -1,4 +1,23 @@ +Version 1.0.1.3 + *Note* you should update mod list + - requires RJW 4.6.1 or later + - max absorbable statbase added to vanilla fabrics. + - added thoughts for cum inside + - male pawn get mood buff if his partner is not ugly or he has breeder or impregnation fetish quirk + - female pawn get mood buff if she has breeder or impregnation fetish quirk + - female pawn get mood debuff if she is in fertile window or hates her partner + - added thought for leaking fluids + - absorbers can prevent this + - added thought for pregnancy + - female pawn without breeder quirk get mood debuff when pregnant without spouse or fiance + - mestrual blood color is determined by race's blood color + - absorber's color change gradually + - fixed bugs with enzygotic twins + - enzigotic twins will get same appearance + - added HAR compatibllity + - Version 1.0.1.2 + - requires RJW 4.6.1 or later - reduced sex satisfaction debuffs - if pawn is climacteric or menopause sex need recover to 50%. - added vaginal washing diff --git a/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs b/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs index 842e017..3b05f48 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Configurations.cs @@ -47,6 +47,10 @@ namespace RJW_Menstruation public static int MaxEnzygoticTwins = MaxEnzygoticTwinsDefault; + + public static bool HARActivated = false; + public static bool LLActivated = false; + public enum DetailLevel { All, @@ -111,10 +115,12 @@ namespace RJW_Menstruation private readonly Configurations config; private static Vector2 scroll; + public RJW_Menstruation(ModContentPack content) : base(content) { config = GetSettings(); - + Configurations.HARActivated = ModLister.HasActiveModWithName("Humanoid Alien Races 2.0"); + Configurations.LLActivated = ModLister.HasActiveModWithName("RimJobWorld - Licentia Labs"); } diff --git a/source/RJW_Menstruation/RJW_Menstruation/Cum.cs b/source/RJW_Menstruation/RJW_Menstruation/Cum.cs index 5495527..b77fbb2 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Cum.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Cum.cs @@ -36,6 +36,7 @@ namespace RJW_Menstruation } } private Color customColor; + public DNADef DNA { get @@ -90,6 +91,7 @@ namespace RJW_Menstruation volume = 1.0f; fertvolume = 1.0f; decayresist = 0; + } public Cum(Pawn pawn, float volume, string notcumlabel, float decayresist = 0, ThingDef filthDef = null) diff --git a/source/RJW_Menstruation/RJW_Menstruation/DNADef.cs b/source/RJW_Menstruation/RJW_Menstruation/DNADef.cs index 2f71ff7..65f4d80 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/DNADef.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/DNADef.cs @@ -12,9 +12,9 @@ namespace RJW_Menstruation { public class DNADef : Def { - public bool IsNone => string.IsNullOrEmpty(defName); - public static readonly DNADef None = new DNADef(); - + //public bool IsNone => string.IsNullOrEmpty(defName); + //public static readonly DNADef None = new DNADef(); + public string fetusTexPath; public ColorInt cumColor; public Color CumColor => cumColor.ToColor; @@ -24,4 +24,8 @@ namespace RJW_Menstruation + + + + } diff --git a/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs b/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs index f8bc12d..5509517 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs @@ -17,7 +17,7 @@ namespace RJW_Menstruation private const float windowMargin = 20f; private const float pawnRectWidth = 150f; private const float pawnRectHeight = 150f; - private const float wombRectHeight = 270f; + private const float wombRectHeight = 300f; private const float wombRectWidth = 300f; private const float fontheight = 30; private const float genitalRectWidth = 102; @@ -104,9 +104,9 @@ namespace RJW_Menstruation if (hediff is Hediff_MultiplePregnancy) { Hediff_MultiplePregnancy h = (Hediff_MultiplePregnancy)hediff; - if (h.GestationProgress < 0.2f) cum = Utility.GetCumIcon(comp); + if (h.GestationProgress < 0.2f) cum = comp.GetCumIcon(); else cum = ContentFinder.Get(("Womb/Empty"), true); - Pawn fetus = Utility.GetFetus(pawn); + Pawn fetus = pawn.GetFetus(); if (fetus != null && Utility.ShowFetusInfo()) { string feinfo = h.GetBabyInfo(); @@ -133,9 +133,9 @@ namespace RJW_Menstruation else if (hediff is Hediff_BasePregnancy) { Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff; - if (h.GestationProgress < 0.2f) cum = Utility.GetCumIcon(comp); + if (h.GestationProgress < 0.2f) cum = comp.GetCumIcon(); else cum = ContentFinder.Get(("Womb/Empty"), true); - Pawn fetus = Utility.GetFetus(pawn); + Pawn fetus = pawn.GetFetus(); if (fetus != null && Utility.ShowFetusInfo()) { @@ -154,8 +154,8 @@ namespace RJW_Menstruation } else { - womb = Utility.GetWombIcon(comp); - cum = Utility.GetCumIcon(comp); + womb = comp.GetWombIcon(); + cum = comp.GetCumIcon(); } @@ -173,7 +173,7 @@ namespace RJW_Menstruation { wombrecth = wombRectHeight; cumcolor = comp.GetCumMixtureColor; - Rect wombRect = new Rect(0f, mainRect.yMax - wombRectHeight + preginfoheight, wombRectWidth, wombRectHeight); + Rect wombRect = new Rect(0f, mainRect.yMax - wombRectHeight + preginfoheight, wombRectWidth, wombRectWidth*0.9f); DrawWomb(wombRect); } @@ -257,8 +257,8 @@ namespace RJW_Menstruation Rect genitalVaginaLabelRect = new Rect(rect.x, rect.y, genitalRectWidth, fontheight); Rect genitalAnusLabelRect = new Rect(rect.x, rect.y + fontheight + genitalRectHeight, genitalRectWidth, fontheight); - vagina = Utility.GetGenitalIcon(pawn); - anal = Utility.GetAnalIcon(pawn); + vagina = pawn.GetGenitalIcon(); + anal = pawn.GetAnalIcon(); GUI.color = new Color(1.00f, 0.47f, 0.47f, 1); GUI.Box(rect, "", boxstyle); GUI.color = pawn.story.SkinColor; @@ -268,8 +268,8 @@ namespace RJW_Menstruation GUI.DrawTexture(genitalIconRect, vagina, ScaleMode.ScaleToFit); GUI.color = Color.white; - GUI.Label(genitalVaginaLabelRect, Utility.GetVaginaLabel(pawn), fontstylecenter); - GUI.Label(genitalAnusLabelRect, Utility.GetAnusLabel(pawn), fontstylecenter); + GUI.Label(genitalVaginaLabelRect, pawn.GetVaginaLabel(), fontstylecenter); + GUI.Label(genitalAnusLabelRect, pawn.GetAnusLabel(), fontstylecenter); } diff --git a/source/RJW_Menstruation/RJW_Menstruation/HARCompatibility.cs b/source/RJW_Menstruation/RJW_Menstruation/HARCompatibility.cs new file mode 100644 index 0000000..fb35a52 --- /dev/null +++ b/source/RJW_Menstruation/RJW_Menstruation/HARCompatibility.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + +namespace RJW_Menstruation +{ + public static class HARCompatibility + { + + public static bool IsHAR(this Pawn pawn) + { + return pawn.def.GetType().ToString().StartsWith("AlienRace"); + } + + public static ThingComp GetHARComp(this Pawn pawn) + { + return pawn?.GetComps()?.First(x => x.GetType().Namespace.EqualsIgnoreCase("AlienRace") && x.GetType().Name.EndsWith("AlienComp")); + } + + public static string GetHARCrown(this Pawn pawn) + { + return (string)pawn.GetHARComp().GetMemberValue("crownType"); + } + + public static void SetHARCrown(this Pawn pawn, string crown) + { + pawn.GetHARComp().SetMemberValue("crownType", crown); + } + + + } +} diff --git a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs index 7e92489..e626bc1 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs @@ -194,7 +194,7 @@ namespace RJW_Menstruation float mixedsofar = 0; foreach (Cum cum in cums) { - mixedcolor = Color.LerpUnclamped(mixedcolor, cum.color, cum.volume/(mixedsofar + cum.volume)); + mixedcolor = Colors.CMYKLerp(mixedcolor, cum.color, cum.volume/(mixedsofar + cum.volume)); mixedsofar += cum.volume; } } @@ -258,7 +258,7 @@ namespace RJW_Menstruation string res = ""; if (!eggs.NullOrEmpty()) { - if (cums.NullOrEmpty()) return eggs.Count + " " + Translations.Dialog_WombInfo07; + if (cums.NullOrEmpty() || TotalFertCum == 0) return eggs.Count + " " + Translations.Dialog_WombInfo07; else { int fertilized = 0; @@ -309,7 +309,22 @@ namespace RJW_Menstruation return !eggs.NullOrEmpty(); } } - + public bool IsDangerDay + { + get + { + if (curStage == Stage.Follicular || curStage == Stage.ClimactericFollicular) + { + if (curStageHrs > 0.7f * (follicularIntervalhours - bleedingIntervalhours)) return true; + } + else if (curStage == Stage.Luteal || curStage == Stage.ClimactericLuteal) + { + if (curStageHrs < Props.eggLifespanDays * 24) return true; + } + else if (curStage == Stage.Ovulatory) return true; + return false; + } + } public int GetNumofEggs { get @@ -319,6 +334,23 @@ namespace RJW_Menstruation } } + public Color BloodColor + { + get + { + try + { + Color c = parent.pawn.def.race.BloodDef.graphicData.color; + return c; + } + catch + { + return Colors.blood; + } + + } + } + public override void CompExposeData() { base.CompExposeData(); @@ -437,7 +469,7 @@ namespace RJW_Menstruation } if (!merged) cums.Add(new Cum(pawn, volume, fertility, filthdef)); } - AfterCumIn(); + AfterCumIn(pawn); } /// @@ -487,12 +519,58 @@ namespace RJW_Menstruation } if (!merged) cums.Add(new Cum(pawn, volume, notcumlabel,decayresist, filthdef)); } - AfterCumIn(); + AfterNotCumIn(); } - public void AfterCumIn() + public void AfterCumIn(Pawn cummer) { - + if (xxx.is_human(parent.pawn) && xxx.is_human(cummer)) + { + if (parent.pawn.GetStatValue(StatDefOf.PawnBeauty) >= 0 || cummer.Has(Quirk.ImpregnationFetish) || cummer.Has(Quirk.Breeder)) + { + if (cummer.relations.OpinionOf(parent.pawn) <= -25) + { + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideM, parent.pawn); + } + else + { + cummer.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideM, parent.pawn); + } + } + + if (IsDangerDay) + { + if (parent.pawn.Has(Quirk.Breeder) || parent.pawn.Has(Quirk.ImpregnationFetish)) + { + parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetish, cummer); + } + else if (!parent.pawn.relations.DirectRelationExists(PawnRelationDefOf.Spouse, cummer) && !parent.pawn.relations.DirectRelationExists(PawnRelationDefOf.Fiance, cummer)) + { + if (parent.pawn.health.capacities.GetLevel(xxx.reproduction) < 0.50f) parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFLowFert, cummer); + else parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideF, cummer); + } + else if (parent.pawn.relations.OpinionOf(cummer) <= -5) + { + parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideF, cummer); + } + } + else + { + if (parent.pawn.Has(Quirk.Breeder) || parent.pawn.Has(Quirk.ImpregnationFetish)) + { + parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.CameInsideFFetishSafe, cummer); + } + else if (parent.pawn.relations.OpinionOf(cummer) <= -5) + { + parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.HaterCameInsideFSafe, cummer); + } + } + } + } + + public void AfterNotCumIn() + { + } public void BeforeCumOut(out Absorber absorber) @@ -500,16 +578,24 @@ namespace RJW_Menstruation absorber = (Absorber)parent.pawn.apparel?.WornApparel?.Find(x => x.def.apparel.tags.Contains("Absorber")); if (absorber != null) { + absorber.WearEffect(); if (absorber.dirty && absorber.EffectAfterDirty) absorber.DirtyEffect(); } } + + public void AfterCumOut() + { + parent.pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.LeakingFluids); + } + /// /// Excrete cums in womb naturally /// public void CumOut() { float leakfactor = 1.0f; + float totalleak = 0f; Absorber absorber; BeforeCumOut(out absorber); if (cums.NullOrEmpty()) return; @@ -520,7 +606,8 @@ namespace RJW_Menstruation float vd = cum.volume; cum.volume *= Math.Max(0, (1 - (Configurations.CumDecayRatio * (1 - cum.decayresist)) * leakfactor)); cum.fertvolume *= Math.Max(0, (1 - (Configurations.CumDecayRatio * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist)))); - MakeCumFilth(cum, vd - cum.volume, absorber); + vd -= cum.volume; + totalleak += MakeCumFilth(cum, vd, absorber); if (cum.fertvolume < 0.01f) cum.fertvolume = 0; if (cum.volume < 0.01f) removecums.Add(cum); } @@ -529,10 +616,11 @@ namespace RJW_Menstruation cums.Remove(cum); } removecums.Clear(); + if (totalleak >= 1.0f) AfterCumOut(); } /// - /// Excrete cums in womb and get excreted amount of specific cum + /// Force excrete cums in womb and get excreted amount of specific cum. /// /// /// @@ -540,10 +628,7 @@ namespace RJW_Menstruation public float CumOut(Cum targetcum, float portion = 0.1f) { float leakfactor = 1.0f; - Absorber absorber; - BeforeCumOut(out absorber); if (cums.NullOrEmpty()) return 0; - else if (absorber != null && absorber.dirty && !absorber.LeakAfterDirty) leakfactor = 0; float outcum = 0; List removecums = new List(); foreach (Cum cum in cums) @@ -552,7 +637,7 @@ namespace RJW_Menstruation if (cum.Equals(targetcum)) outcum = cum.volume * (portion * (1 - cum.decayresist)); cum.volume *= Math.Max(0, 1 - (portion * (1 - cum.decayresist)) * leakfactor); cum.fertvolume *= Math.Max(0, (1 - (portion * (1 - cum.decayresist)) * leakfactor) * (1 - (Configurations.CumFertilityDecayRatio * (1 - cum.decayresist)))); - MakeCumFilth(cum, vd - cum.volume,absorber); + MakeCumFilth(cum, vd - cum.volume); if (cum.fertvolume < 0.01f) cum.fertvolume = 0; if (cum.volume < 0.01f) removecums.Add(cum); } @@ -696,10 +781,27 @@ namespace RJW_Menstruation if (sexNeed == null) sexNeed = parent.pawn.needs.TryGetNeed(VariousDefOf.SexNeed); else { - if (sexNeed.CurLevel < 0.5) sexNeed.CurLevel += 0.02f; + if (sexNeed.CurLevel < 0.5) sexNeed.CurLevel += 0.01f; } } + //if (Configurations.LLActivated) + //{ + // float tcp = TotalCumPercent; + // if (tcp > 2.0f) + // { + // Hediff hediff = parent.pawn.health.hediffSet.GetFirstHediffOfDef(VariousDefOf.Cumflation); + // if (hediff != null) + // { + // + // } + // else + // { + // + // } + // } + // + //} } @@ -742,11 +844,11 @@ namespace RJW_Menstruation { Hediff_BasePregnancy.Create(parent.pawn, egg.fertilizer); Hediff hediff = PregnancyHelper.GetPregnancy(parent.pawn); - if (hediff is Hediff_BasePregnancy) - { - Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff; - if (h.babies.Count > 1) h.babies.RemoveRange(1, h.babies.Count - 1); - } + //if (hediff is Hediff_BasePregnancy) + //{ + // Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff; + // if (h.babies.Count > 1) h.babies.RemoveRange(1, h.babies.Count - 1); + //} pregnant = true; deadeggs.Add(egg); } @@ -794,31 +896,55 @@ namespace RJW_Menstruation { //FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, ThingDefOf.Filth_Blood,parent.pawn.Label); CumIn(parent.pawn, Rand.Range(1f, 2f), Translations.Menstrual_Blood,-5.0f,ThingDefOf.Filth_Blood); - GetNotCum(Translations.Menstrual_Blood).color = Colors.blood; + GetNotCum(Translations.Menstrual_Blood).color = BloodColor; } - private void MakeCumFilth(Cum cum, float amount, Absorber absorber = null) + /// + /// Make filth ignoring absorber + /// + /// + /// + private void MakeCumFilth(Cum cum, float amount) + { + if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + } + + /// + /// Make filth from considering absorber + /// + /// + /// + /// + /// + private float MakeCumFilth(Cum cum, float amount, Absorber absorber) { if (absorber != null) { + float absorbable = absorber.GetStatValue(VariousDefOf.MaxAbsorbable); + absorber.SetColor(Colors.CMYKLerp(GetCumMixtureColor, absorber.DrawColor, 1f - amount/absorbable)); if (!absorber.dirty) { absorber.absorbedfluids += amount; - if (absorber.absorbedfluids > absorber.GetStatValue(VariousDefOf.MaxAbsorbable)) + if (absorber.absorbedfluids > absorbable) { absorber.def = absorber.DirtyDef; //absorber.fluidColor = GetCumMixtureColor; - absorber.SetColor(GetCumMixtureColor); absorber.dirty = true; } } else { if (absorber.LeakAfterDirty) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + return amount; } } - else if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + else + { + if (amount >= minmakefilthvalue) FilthMaker.TryMakeFilth(parent.pawn.Position, parent.pawn.Map, cum.FilthDef, cum.pawn.LabelShort); + return amount; + } + return 0; } diff --git a/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs b/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs index eff1dcb..f878905 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Hediff_MultiplePregnancy.cs @@ -7,19 +7,25 @@ using System.Reflection; using rjw; using Verse; using RimWorld; - +using UnityEngine; namespace RJW_Menstruation { public class Hediff_MultiplePregnancy : Hediff_BasePregnancy { - - - - - public override void GiveBirth() + public override void DiscoverPregnancy() { + if (!is_discovered && xxx.is_human(pawn) && !pawn.Has(Quirk.Breeder) && pawn.relations?.DirectRelations?.Find(x => x.def.Equals(PawnRelationDefOf.Spouse) || x.def.Equals(PawnRelationDefOf.Fiance)) == null) + { + pawn.needs.mood.thoughts.memories.TryGainMemory(VariousDefOf.UnwantedPregnancy); + } + base.DiscoverPregnancy(); + } + + public override void GiveBirth() + { + if (babies.NullOrEmpty()) { ModLog.Warning(" no babies (debug?) " + this.GetType().Name); @@ -155,9 +161,6 @@ namespace RJW_Menstruation //restore melanin, LastName for when baby reset by other mod on spawn/backstorychange //baby.story.melanin = skin_whiteness; //baby.story.birthLastName = last_name; - - - } protected override void GenerateBabies() @@ -209,9 +212,15 @@ namespace RJW_Menstruation melanin = father.story.melanin; lastname = NameTriple.FromString(father.Name.ToStringFull).Last; } - else melanin = Rand.Range(0, 1.0f); + else + { + melanin = Rand.Range(0, 1.0f); + lastname = NameTriple.FromString(mother.Name.ToStringFull).Last; + } } + + PawnGenerationRequest request = new PawnGenerationRequest( newborn: true, allowDowned: true, @@ -221,17 +230,82 @@ namespace RJW_Menstruation allowAddictions: false, relationWithExtraPawnChanceFactor: 0, fixedMelanin: melanin, + fixedLastName: lastname, kind: BabyPawnKindDecider(mother, father) ); + + int division = 1; + HairDef firsthair = null; + Color firsthaircolor = Color.white; + BodyTypeDef firstbody = null; + CrownType firstcrown = CrownType.Undefined; + string firstheadpath = null; + string firstHARcrown = null; + while (Rand.Chance(Configurations.EnzygoticTwinsChance) && division < Configurations.MaxEnzygoticTwins) division++; + for (int i = 0; i < division; i++) + { + Pawn baby = GenerateBaby(request, mother, father); + if (division > 1) + { + if (i == 0 && baby.story != null) + { + firsthair = baby.story.hairDef; + firsthaircolor = baby.story.hairColor; + request.FixedGender = baby.gender; + firstbody = baby.story.bodyType; + firstcrown = baby.story.crownType; + firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath"); + if (firstheadpath == null) + { + baby.story.SetMemberValue("headGraphicPath", GraphicDatabaseHeadRecords.GetHeadRandom(baby.gender, baby.story.SkinColor, baby.story.crownType).GraphicPath); + firstheadpath = (string)baby.story.GetMemberValue("headGraphicPath"); + } + if (Configurations.HARActivated && baby.IsHAR()) + { + firstHARcrown = baby.GetHARCrown(); + } + + } + else + { + if (baby.story != null) + { + baby.story.hairDef = firsthair; + baby.story.hairColor = firsthaircolor; + baby.story.bodyType = firstbody; + baby.story.crownType = firstcrown; + baby.story.SetMemberValue("headGraphicPath", firstheadpath); + + if (Configurations.HARActivated && baby.IsHAR()) + { + baby.SetHARCrown(firstHARcrown); + } + } + } + } + + if (baby != null) babies.Add(baby); + } + + + + + return true; + + } + + public Pawn GenerateBaby(PawnGenerationRequest request, Pawn mother, Pawn father) + { + Pawn baby = PawnGenerator.GeneratePawn(request); if (baby != null) - { + { if (xxx.is_human(baby)) { List traitpool = new List(); baby.SetMother(mother); if (mother != father) baby.SetFather(father); - + if (xxx.has_traits(pawn) && pawn.RaceProps.Humanlike) { foreach (Trait momtrait in pawn.story.traits.allTraits) @@ -252,7 +326,7 @@ namespace RJW_Menstruation } else - { + { baby.relations.AddDirectRelation(VariousDefOf.Relation_birthgiver, mother); mother.relations.AddDirectRelation(VariousDefOf.Relation_spawn, baby); if (mother != father) @@ -260,20 +334,10 @@ namespace RJW_Menstruation baby.relations.AddDirectRelation(VariousDefOf.Relation_birthgiver, father); father.relations.AddDirectRelation(VariousDefOf.Relation_spawn, baby); } - } - - int division = 1; - while (Rand.Chance(Configurations.EnzygoticTwinsChance) && division < Configurations.MaxEnzygoticTwins) division++; - for (int i = 0; i < division; i++) babies.Add(baby); - return true; - } - - - return false; - - } - - + } + } + return baby; + } /// /// Decide pawnkind from mother and father diff --git a/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs b/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs index 9c9f7cf..f4fb544 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Patch/GetGizmos.cs @@ -46,7 +46,7 @@ namespace RJW_Menstruation private static void AddWombGizmos(Pawn __instance, ref List gizmoList) { - HediffComp_Menstruation comp = Utility.GetMenstruationComp(__instance); + HediffComp_Menstruation comp = __instance.GetMenstruationComp(); if (comp != null) gizmoList.Add(CreateGizmo_WombStatus(__instance, comp)); @@ -72,21 +72,21 @@ namespace RJW_Menstruation if (hediff is Hediff_BasePregnancy && Utility.ShowFetusImage((Hediff_BasePregnancy)hediff)) { Hediff_BasePregnancy h = (Hediff_BasePregnancy)hediff; - if (h.GestationProgress < 0.2f) icon_overay = Utility.GetCumIcon(comp); + if (h.GestationProgress < 0.2f) icon_overay = comp.GetCumIcon(); else icon_overay = ContentFinder.Get(("Womb/Empty"), true); } else icon_overay = ContentFinder.Get(("Womb/Empty"), true); } else { - icon = Utility.GetWombIcon(comp); - icon_overay = Utility.GetCumIcon(comp); + icon = comp.GetWombIcon(); + icon_overay = comp.GetCumIcon(); } } else { - icon = Utility.GetWombIcon(comp); - icon_overay = Utility.GetCumIcon(comp); + icon = comp.GetWombIcon(); + icon_overay = comp.GetCumIcon(); } foreach (string s in comp.GetCumsInfo) description += s + "\n"; diff --git a/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs b/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs index 5863ac9..137d6aa 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Patch/RJW_Patch.cs @@ -34,7 +34,7 @@ namespace RJW_Menstruation PregnancyHelper.Doimpregnate(pawn, partner); return false; } - else comp.CumIn(pawn, Utility.GetCumVolume(pawn), 0); + else comp.CumIn(pawn, pawn.GetCumVolume(), 0); } } else if (Genital_Helper.has_vagina(pawn, pawnparts)) @@ -48,7 +48,7 @@ namespace RJW_Menstruation PregnancyHelper.Doimpregnate(partner, pawn); return false; } - else comp.CumIn(partner, Utility.GetCumVolume(partner), 0); + else comp.CumIn(partner, partner.GetCumVolume(), 0); } } } @@ -64,15 +64,15 @@ namespace RJW_Menstruation public static bool Prefix(Pawn pawn, Pawn partner) // partner has vagina { if (partner.IsAnimal() && !Configurations.EnableAnimalCycle) return true; - HediffComp_Menstruation comp = Utility.GetMenstruationComp(partner); + HediffComp_Menstruation comp = partner.GetMenstruationComp(); if (comp != null) { if (AndroidsCompatibility.IsAndroid(pawn) && !AndroidsCompatibility.AndroidPenisFertility(pawn)) { - comp.CumIn(pawn, Utility.GetCumVolume(pawn),0); + comp.CumIn(pawn, pawn.GetCumVolume(), 0); return false; } - else comp.CumIn(pawn, Utility.GetCumVolume(pawn), pawn.health.capacities.GetLevel(xxx.reproduction)); + else comp.CumIn(pawn, pawn.GetCumVolume(), pawn.health.capacities.GetLevel(xxx.reproduction)); return false; } ModLog.Message("used original rjw method: Comp missing"); @@ -80,6 +80,7 @@ namespace RJW_Menstruation } } + diff --git a/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj b/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj index c9fb7b2..c1d1ff9 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj +++ b/source/RJW_Menstruation/RJW_Menstruation/RJW_Menstruation.csproj @@ -60,6 +60,7 @@ + @@ -68,6 +69,7 @@ + diff --git a/source/RJW_Menstruation/RJW_Menstruation/Reflect.cs b/source/RJW_Menstruation/RJW_Menstruation/Reflect.cs new file mode 100644 index 0000000..50d8fb8 --- /dev/null +++ b/source/RJW_Menstruation/RJW_Menstruation/Reflect.cs @@ -0,0 +1,47 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Reflection; + +namespace RJW_Menstruation +{ + public static class Reflector + { + public static object GetMemberValue(this Type type, string name) + { + BindingFlags flags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; + FieldInfo fieldInfo = (type != null) ? type.GetField(name, flags) : null; + return fieldInfo?.GetValue(null); + } + + public static object GetMemberValue(this object obj, string name) + { + BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + FieldInfo fieldInfo = (obj != null) ? obj.GetType().GetField(name, flags) : null; + return fieldInfo?.GetValue(obj); + } + + public static void SetMemberValue(this Type type, string name, object value) + { + BindingFlags flags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; + FieldInfo fieldInfo = type?.GetField(name, flags); + if (fieldInfo != null) + { + fieldInfo.SetValue(null, value); + } + } + + public static void SetMemberValue(this object obj, string name, object value) + { + BindingFlags flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic; + FieldInfo fieldInfo = obj?.GetType().GetField(name, flags); + if (fieldInfo != null) + { + fieldInfo.SetValue(obj, value); + } + } + + } +} diff --git a/source/RJW_Menstruation/RJW_Menstruation/Things.cs b/source/RJW_Menstruation/RJW_Menstruation/Things.cs index c17a413..35c598e 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Things.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Things.cs @@ -38,6 +38,7 @@ namespace RJW_Menstruation public virtual void WearEffect() { + absorbedfluids+=0.1f; wearhours++; } @@ -59,8 +60,8 @@ namespace RJW_Menstruation public override void WearEffect() { - base.WearEffect(); - absorbedfluids += 0.1f; + wearhours++; + absorbedfluids += 0.5f; } public override void DirtyEffect() diff --git a/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index c7204ff..4a5d194 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -13,13 +13,39 @@ namespace RJW_Menstruation public static class Colors { public static Color blood = new Color(0.78f, 0, 0); + + + public static Color CMYKLerp(Color a, Color b, float t) + { + RGBtoCMYK(a, out float ac, out float am, out float ay, out float ak); + RGBtoCMYK(b, out float bc, out float bm, out float by, out float bk); + + return CMYKtoRGB(Mathf.Lerp(ac, bc, t), Mathf.Lerp(am, bm, t), Mathf.Lerp(ay, by, t), Mathf.Lerp(ak, bk, t)); + } + + public static void RGBtoCMYK(Color rgb, out float c, out float m, out float y, out float k) + { + k = 1 - Math.Max(rgb.r,Math.Max(rgb.g,rgb.b)); + c = (1 - rgb.r - k) / (1 - k); + m = (1 - rgb.g - k) / (1 - k); + y = (1 - rgb.b - k) / (1 - k); + + } + + public static Color CMYKtoRGB(float c,float m, float y, float k) + { + return new Color((1 - c) * (1 - k), (1 - m) * (1 - k), (1 - y) * (1 - k)); + } + + + } public static class Utility { - public static float GetCumVolume(Pawn pawn) + public static float GetCumVolume(this Pawn pawn) { CompHediffBodyPart part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("penis")).InRandomOrder().FirstOrDefault().TryGetComp(); if (part == null) part = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff hed) => hed.def.defName.ToLower().Contains("ovipositorf")).InRandomOrder().FirstOrDefault().TryGetComp(); @@ -32,7 +58,7 @@ namespace RJW_Menstruation return res; } - public static HediffComp_Menstruation GetMenstruationComp(Pawn pawn) + public static HediffComp_Menstruation GetMenstruationComp(this Pawn pawn) { var hedifflist = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff h) => h.def.defName.ToLower().Contains("vagina")); HediffComp_Menstruation result; @@ -48,7 +74,7 @@ namespace RJW_Menstruation return null; } - public static bool HasMenstruationComp(Pawn pawn) + public static bool HasMenstruationComp(this Pawn pawn) { var hedifflist = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn))?.FindAll((Hediff h) => h.def.defName.ToLower().Contains("vagina")); HediffComp_Menstruation result; @@ -64,13 +90,13 @@ namespace RJW_Menstruation return false; } - public static HediffComp_Menstruation.Stage GetCurStage(Pawn pawn) + public static HediffComp_Menstruation.Stage GetCurStage(this Pawn pawn) { return GetMenstruationComp(pawn)?.curStage ?? HediffComp_Menstruation.Stage.Bleeding; } - public static float GetPregnancyProgress(Pawn pawn) + public static float GetPregnancyProgress(this Pawn pawn) { Hediff hediff = PregnancyHelper.GetPregnancy(pawn); if (hediff is Hediff_BasePregnancy) @@ -81,7 +107,7 @@ namespace RJW_Menstruation return -1; } - public static Pawn GetFetus(Pawn pawn) + public static Pawn GetFetus(this Pawn pawn) { Hediff hediff = PregnancyHelper.GetPregnancy(pawn); if (hediff is Hediff_BasePregnancy) @@ -135,7 +161,7 @@ namespace RJW_Menstruation return ContentFinder.Get((icon), true); } - public static Texture2D GetCumIcon(HediffComp_Menstruation comp) + public static Texture2D GetCumIcon(this HediffComp_Menstruation comp) { string icon = comp.wombTex; float cumpercent = comp.TotalCumPercent; @@ -162,7 +188,7 @@ namespace RJW_Menstruation return cumtex; } - public static Texture2D GetWombIcon(HediffComp_Menstruation comp) + public static Texture2D GetWombIcon(this HediffComp_Menstruation comp) { string icon = comp.wombTex; HediffComp_Menstruation.Stage stage = comp.curStage; @@ -173,7 +199,7 @@ namespace RJW_Menstruation return wombtex; } - public static Texture2D GetGenitalIcon(Pawn pawn) + public static Texture2D GetGenitalIcon(this Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("vagina")); CompProperties_Menstruation Props = (CompProperties_Menstruation)hediff.TryGetComp().props; @@ -197,7 +223,7 @@ namespace RJW_Menstruation return ContentFinder.Get((icon), true); } - public static Texture2D GetAnalIcon(Pawn pawn) + public static Texture2D GetAnalIcon(this Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("anus")); CompProperties_Anus Props = (CompProperties_Anus)hediff.TryGetComp().props; @@ -214,18 +240,18 @@ namespace RJW_Menstruation return ContentFinder.Get((icon), true); } - public static string GetVaginaLabel(Pawn pawn) + public static string GetVaginaLabel(this Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("vagina")); - return hediff.LabelBase + "\n(" + hediff.LabelInBrackets + ")"; + return hediff.LabelBase.CapitalizeFirst() + "\n(" + hediff.LabelInBrackets + ")"; } - public static string GetAnusLabel(Pawn pawn) + public static string GetAnusLabel(this Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("anus")); - return hediff.LabelBase + "\n(" + hediff.LabelInBrackets + ")"; + return hediff.LabelBase.CapitalizeFirst() + "\n(" + hediff.LabelInBrackets + ")"; } - public static bool ShowFetusImage(Hediff_BasePregnancy hediff) + public static bool ShowFetusImage(this Hediff_BasePregnancy hediff) { if (Configurations.InfoDetail == Configurations.DetailLevel.All) return true; else if (Configurations.InfoDetail == Configurations.DetailLevel.Hide) return false; @@ -248,13 +274,10 @@ namespace RJW_Menstruation res = pawn.relations?.GetFirstDirectRelationPawn(VariousDefOf.Relation_birthgiver, x => !x.Equals(mother)) ?? null; return res; } - - - - } + } } diff --git a/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs b/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs index d9f234a..b67b68b 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/VariousDefOf.cs @@ -31,6 +31,26 @@ namespace RJW_Menstruation public static readonly PawnRelationDef Relation_spawn = DefDatabase.AllDefs.FirstOrDefault(d => d.defName == "RJW_Pup"); public static readonly NeedDef SexNeed = DefDatabase.GetNamed("Sex"); public static readonly JobDef VaginaWashing = DefDatabase.GetNamed("VaginaWashing"); + public static readonly ThoughtDef LeakingFluids = DefDatabase.GetNamed("LeakingFluids"); + public static readonly ThoughtDef CameInsideF = DefDatabase.GetNamed("CameInsideF"); + public static readonly ThoughtDef CameInsideFLowFert = DefDatabase.GetNamed("CameInsideFLowFert"); + public static readonly ThoughtDef CameInsideFFetish = DefDatabase.GetNamed("CameInsideFFetish"); + public static readonly ThoughtDef CameInsideFFetishSafe = DefDatabase.GetNamed("CameInsideFFetishSafe"); + public static readonly ThoughtDef HaterCameInsideFSafe = DefDatabase.GetNamed("HaterCameInsideFSafe"); + public static readonly ThoughtDef HaterCameInsideF = DefDatabase.GetNamed("HaterCameInsideF"); + public static readonly ThoughtDef CameInsideM = DefDatabase.GetNamed("CameInsideM"); + public static readonly ThoughtDef HaterCameInsideM = DefDatabase.GetNamed("HaterCameInsideM"); + public static readonly ThoughtDef UnwantedPregnancy = DefDatabase.GetNamed("UnwantedPregnancy"); + + + + + // Defs from Licentia Labs + public static readonly HediffDef Cumflation = DefDatabase.GetNamedSilentFail("Cumflation"); + + + + } }