diff --git a/About/Manifest.xml b/About/Manifest.xml new file mode 100644 index 0000000..1f531db --- /dev/null +++ b/About/Manifest.xml @@ -0,0 +1,12 @@ + + + RJW Menstruation + 1.0.0.1 + + + + + + + + \ No newline at end of file diff --git a/About/PublishedFileId.txt b/About/PublishedFileId.txt deleted file mode 100644 index 14cb048..0000000 --- a/About/PublishedFileId.txt +++ /dev/null @@ -1 +0,0 @@ -2084961349 \ No newline at end of file diff --git a/About/preview.PNG b/About/preview.PNG deleted file mode 100644 index be41043..0000000 Binary files a/About/preview.PNG and /dev/null differ diff --git a/Assemblies/RJW_Menstruation.dll b/Assemblies/RJW_Menstruation.dll index e2d663e..547c954 100644 Binary files a/Assemblies/RJW_Menstruation.dll and b/Assemblies/RJW_Menstruation.dll differ diff --git a/Languages/English/Keyed/RJW_Menstruation.xml b/Languages/English/Keyed/RJW_Menstruation.xml index cf72e2d..00a1509 100644 --- a/Languages/English/Keyed/RJW_Menstruation.xml +++ b/Languages/English/Keyed/RJW_Menstruation.xml @@ -11,6 +11,7 @@ Luteal Pregnant Recovering from birth + None State Fetus Father diff --git a/Languages/Korean/Keyed/RJW_Menstruation.xml b/Languages/Korean/Keyed/RJW_Menstruation.xml index 14caabb..cda3226 100644 --- a/Languages/Korean/Keyed/RJW_Menstruation.xml +++ b/Languages/Korean/Keyed/RJW_Menstruation.xml @@ -11,7 +11,8 @@ 황체기 임신 회복기 - 주기 + 없음 + 상태 태아 정액목록 diff --git a/Patches/Hediffs_PrivateParts.xml b/Patches/Hediffs_PrivateParts.xml index 356add0..d71c2aa 100644 --- a/Patches/Hediffs_PrivateParts.xml +++ b/Patches/Hediffs_PrivateParts.xml @@ -21,8 +21,108 @@ 10 3 Womb/Womb + Genitals/Vagina + + + Defs/rjw.HediffDef_PartBase[defName="HydraulicVagina"] + + +
  • + 500 + Womb/Womb + Genitals/BionicVagina + true +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="BionicVagina"] + + +
  • + 500 + Womb/Womb + Genitals/BionicVagina + true +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="ArchotechVagina"] + + +
  • + 500 + 1.0 + 1.0 + 0.05 + 14 + 14 + 0 + 0 + 3 + Womb/Womb + Genitals/Vagina +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="Anus"] + + +
  • + Genitals/Anal +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="HydraulicAnus"] + + +
  • + Genitals/BionicAnal +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="BionicAnus"] + + +
  • + Genitals/BionicAnal +
  • +
    +
    +
    + + + Defs/rjw.HediffDef_PartBase[defName="ArchotechAnus"] + + +
  • + Genitals/Anal +
  • +
    +
    +
    + + + + + + \ No newline at end of file diff --git a/Textures/Genitals/BionicAnal.psd b/Textures/Genitals/BionicAnal.psd new file mode 100644 index 0000000..9167093 Binary files /dev/null and b/Textures/Genitals/BionicAnal.psd differ diff --git a/Textures/Genitals/BionicAnal00.png b/Textures/Genitals/BionicAnal00.png new file mode 100644 index 0000000..a2d62e6 Binary files /dev/null and b/Textures/Genitals/BionicAnal00.png differ diff --git a/Textures/Genitals/BionicAnal01.png b/Textures/Genitals/BionicAnal01.png new file mode 100644 index 0000000..dcf807c Binary files /dev/null and b/Textures/Genitals/BionicAnal01.png differ diff --git a/Textures/Genitals/BionicAnal02.png b/Textures/Genitals/BionicAnal02.png new file mode 100644 index 0000000..b3e2bb1 Binary files /dev/null and b/Textures/Genitals/BionicAnal02.png differ diff --git a/Textures/Genitals/BionicAnal03.png b/Textures/Genitals/BionicAnal03.png new file mode 100644 index 0000000..b6f4197 Binary files /dev/null and b/Textures/Genitals/BionicAnal03.png differ diff --git a/Textures/Genitals/BionicAnal04.png b/Textures/Genitals/BionicAnal04.png new file mode 100644 index 0000000..fef6d85 Binary files /dev/null and b/Textures/Genitals/BionicAnal04.png differ diff --git a/Textures/Genitals/BionicAnal05.png b/Textures/Genitals/BionicAnal05.png new file mode 100644 index 0000000..d6b5c29 Binary files /dev/null and b/Textures/Genitals/BionicAnal05.png differ diff --git a/Textures/Genitals/BionicVagina.psd b/Textures/Genitals/BionicVagina.psd new file mode 100644 index 0000000..cea937c Binary files /dev/null and b/Textures/Genitals/BionicVagina.psd differ diff --git a/Textures/Genitals/BionicVagina00.png b/Textures/Genitals/BionicVagina00.png new file mode 100644 index 0000000..2287123 Binary files /dev/null and b/Textures/Genitals/BionicVagina00.png differ diff --git a/Textures/Genitals/BionicVagina01.png b/Textures/Genitals/BionicVagina01.png new file mode 100644 index 0000000..e5c76d0 Binary files /dev/null and b/Textures/Genitals/BionicVagina01.png differ diff --git a/Textures/Genitals/BionicVagina02.png b/Textures/Genitals/BionicVagina02.png new file mode 100644 index 0000000..7b6f3a3 Binary files /dev/null and b/Textures/Genitals/BionicVagina02.png differ diff --git a/Textures/Genitals/BionicVagina03.png b/Textures/Genitals/BionicVagina03.png new file mode 100644 index 0000000..bc63432 Binary files /dev/null and b/Textures/Genitals/BionicVagina03.png differ diff --git a/Textures/Genitals/BionicVagina04.png b/Textures/Genitals/BionicVagina04.png new file mode 100644 index 0000000..0034001 Binary files /dev/null and b/Textures/Genitals/BionicVagina04.png differ diff --git a/Textures/Genitals/BionicVagina05.png b/Textures/Genitals/BionicVagina05.png new file mode 100644 index 0000000..42c94d9 Binary files /dev/null and b/Textures/Genitals/BionicVagina05.png differ diff --git a/Textures/Genitals/BionicVagina06.png b/Textures/Genitals/BionicVagina06.png new file mode 100644 index 0000000..e5ef588 Binary files /dev/null and b/Textures/Genitals/BionicVagina06.png differ diff --git a/Textures/Genitals/BionicVagina07.png b/Textures/Genitals/BionicVagina07.png new file mode 100644 index 0000000..8198179 Binary files /dev/null and b/Textures/Genitals/BionicVagina07.png differ diff --git a/Textures/Genitals/BionicVagina08.png b/Textures/Genitals/BionicVagina08.png new file mode 100644 index 0000000..a4b81aa Binary files /dev/null and b/Textures/Genitals/BionicVagina08.png differ diff --git a/Textures/Genitals/BionicVagina09.png b/Textures/Genitals/BionicVagina09.png new file mode 100644 index 0000000..f0aac83 Binary files /dev/null and b/Textures/Genitals/BionicVagina09.png differ diff --git a/Textures/Genitals/BionicVagina10.png b/Textures/Genitals/BionicVagina10.png new file mode 100644 index 0000000..9edeba4 Binary files /dev/null and b/Textures/Genitals/BionicVagina10.png differ diff --git a/Textures/Genitals/BionicVagina11.png b/Textures/Genitals/BionicVagina11.png new file mode 100644 index 0000000..8577e1b Binary files /dev/null and b/Textures/Genitals/BionicVagina11.png differ diff --git a/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs b/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs index 3b7357a..ba71a73 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Dialog_WombStatus.cs @@ -30,7 +30,13 @@ namespace RJW_Menstruation private Texture2D anal; private Color cumcolor; - public override Vector2 InitialSize + private GUIStyle fontstylecenter = new GUIStyle() { alignment = TextAnchor.MiddleCenter }; + private GUIStyle fontstyleright = new GUIStyle() { alignment = TextAnchor.MiddleRight }; + private GUIStyle fontstyleleft = new GUIStyle() { alignment = TextAnchor.MiddleLeft }; + private GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea); + private GUIStyle buttonstyle = new GUIStyle(GUI.skin.button); + + public override Vector2 InitialSize { get { @@ -74,11 +80,7 @@ namespace RJW_Menstruation private void MainContents(Rect mainRect) { - GUIStyle fontstylecenter = new GUIStyle() { alignment = TextAnchor.MiddleCenter }; - GUIStyle fontstyleright = new GUIStyle() { alignment = TextAnchor.MiddleRight }; - GUIStyle fontstyleleft = new GUIStyle() { alignment = TextAnchor.MiddleLeft }; - GUIStyle boxstyle = new GUIStyle(GUI.skin.textArea); - GUIStyle buttonstyle = new GUIStyle(GUI.skin.button); + boxstyle.hover = boxstyle.normal; boxstyle.onHover = boxstyle.normal; boxstyle.onNormal = boxstyle.normal; @@ -162,29 +164,47 @@ namespace RJW_Menstruation GUI.Label(cumlistTitle,Translations.Dialog_WombInfo04); Rect cumlistRect = new Rect(pawnRectWidth, fontheight, wombRectWidth - pawnRectWidth, mainRect.yMax - wombRectHeight - fontheight); + DrawCumlist(cumlistRect); + + Rect genitalRect = new Rect(24, pawnRectHeight + 2*fontheight, genitalRectWidth, genitalRectHeight + fontheight*2); + DrawVagina(genitalRect); + + + + } + + + + + private void DrawCumlist(Rect rect) + { Listing_Standard cumlist = new Listing_Standard { maxOneColumn = true, ColumnWidth = wombRectWidth - pawnRectWidth }; - cumlist.Begin(cumlistRect); - Listing_Standard cumlistsection = cumlist.BeginSection_NewTemp(mainRect.yMax - wombRectHeight - 2 * fontheight - 12f); - foreach(string s in comp.GetCumsInfo) - { + cumlist.Begin(rect); + Listing_Standard cumlistsection = cumlist.BeginSection_NewTemp(rect.height - fontheight - 12f); + foreach (string s in comp.GetCumsInfo) + { cumlistsection.Label(s); - } + } cumlist.EndSection(cumlistsection); cumlist.End(); + } - Rect genitalRect = new Rect(24, pawnRectHeight + 2*fontheight, genitalRectWidth, genitalRectHeight + fontheight*2); - Rect genitalIconRect = new Rect(genitalRect.x,genitalRect.y + fontheight ,genitalRectWidth,genitalRectHeight); - Rect genitalVaginaLabelRect = new Rect(genitalRect.x,genitalRect.y,genitalRectWidth,fontheight); - Rect genitalAnusLabelRect = new Rect(genitalRect.x,genitalRect.y + fontheight + genitalRectHeight ,genitalRectWidth,fontheight); + + + private void DrawVagina(Rect rect) + { + Rect genitalIconRect = new Rect(rect.x, rect.y + fontheight, genitalRectWidth, genitalRectHeight); + 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); GUI.color = new Color(1.00f, 0.47f, 0.47f, 1); - GUI.Box(genitalRect, "", boxstyle); + GUI.Box(rect, "", boxstyle); GUI.color = pawn.story.SkinColor; //Widgets.DrawTextureFitted(genitalIconRect, anal, 1.0f); //Widgets.DrawTextureFitted(genitalIconRect, vagina, 1.0f); @@ -192,13 +212,11 @@ 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, Utility.GetVaginaLabel(pawn), fontstylecenter); + GUI.Label(genitalAnusLabelRect, Utility.GetAnusLabel(pawn), fontstylecenter); } - - } } diff --git a/source/RJW_Menstruation/RJW_Menstruation/GetGizmos.cs b/source/RJW_Menstruation/RJW_Menstruation/GetGizmos.cs index cc884c7..efd3ad3 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/GetGizmos.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/GetGizmos.cs @@ -47,19 +47,21 @@ namespace RJW_Menstruation private static void AddWombGizmos(Pawn __instance, ref List gizmoList) { - gizmoList.Add(CreateGizmo_WombStatus(__instance)); + //HediffComp_Menstruation comp = __instance.health.hediffSet.GetFirstHediffOfDef(Genital_Helper.average_vagina).TryGetComp(); + HediffComp_Menstruation comp = Utility.GetMenstruationComp(__instance); + + if (comp != null) gizmoList.Add(CreateGizmo_WombStatus(__instance, comp)); } - private static Gizmo CreateGizmo_WombStatus(Pawn pawn) + private static Gizmo CreateGizmo_WombStatus(Pawn pawn , HediffComp_Menstruation comp) { - HediffComp_Menstruation comp = pawn.health.hediffSet.GetFirstHediffOfDef(Genital_Helper.average_vagina).TryGetComp(); Texture2D icon,icon_overay; - Hediff hediff = PregnancyHelper.GetPregnancy(pawn); string description = ""; if (Configurations.Debug) description += comp.curStage + ": " + comp.curStageHrs + "\n" + "fertcums: " + comp.TotalFertCum; else description += comp.GetCurStageLabel + "\n"; if (pawn.IsPregnant()) { + Hediff hediff = PregnancyHelper.GetPregnancy(pawn); icon = Utility.GetPregnancyIcon(comp,hediff); if (hediff is Hediff_BasePregnancy) { diff --git a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs index 4737ac4..33f1d7a 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/HediffComp_Menstruation.cs @@ -23,7 +23,8 @@ namespace RJW_Menstruation 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 CompProperties_Menstruation() { @@ -32,6 +33,21 @@ namespace RJW_Menstruation } } + public class CompProperties_Anus : HediffCompProperties + { + public string analTex = "Genitals/Anal"; + + public CompProperties_Anus() + { + compClass = typeof(HediffComp_Anus); + } + } + + + + + + public class HediffComp_Menstruation : HediffComp { @@ -50,7 +66,8 @@ namespace RJW_Menstruation Bleeding, Fertilized, Pregnant, - Recover + Recover, + None } private List cums; @@ -191,6 +208,8 @@ namespace RJW_Menstruation return Translations.Stage_Pregnant; case Stage.Recover: return Translations.Stage_Recover; + case Stage.None: + return Translations.Stage_None; default: return ""; } @@ -248,29 +267,17 @@ namespace RJW_Menstruation } + public override void CompPostPostAdd(DamageInfo? dinfo) + { + Initialize(); + } + + public override void CompPostTick(ref float severityAdjustment) { if (!loaded) { - Props = (CompProperties_Menstruation)props; - if (follicularIntervalhours < 0) - { - follicularIntervalhours = PeriodRandomizer(Props.folicularIntervalDays*24,Props.deviationFactor); - curStage = RandomStage(); - } - - if (lutealIntervalhours < 0) lutealIntervalhours = PeriodRandomizer(Props.lutealIntervalDays*24, Props.deviationFactor); - if (bleedingIntervalhours < 0) bleedingIntervalhours = PeriodRandomizer(Props.bleedingIntervalDays*24, Props.deviationFactor); - if (recoveryIntervalhours < 0) recoveryIntervalhours = PeriodRandomizer(Props.recoveryIntervalDays * 24, Props.deviationFactor); - if (cums == null) cums = new List(); - if (eggs == null) eggs = new List(); - if (parent.pawn.IsPregnant()) curStage = Stage.Pregnant; - if (Configurations.EnableAnimalCycle) - { - HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); - } - else if (!parent.pawn.IsAnimal()) HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); - loaded = true; + Initialize(); } } @@ -282,6 +289,10 @@ namespace RJW_Menstruation } + + + + public Cum GetNotCum(string notcumlabel) { if (!cums.NullOrEmpty()) foreach (Cum cum in cums) @@ -470,6 +481,39 @@ namespace RJW_Menstruation else return false; } + private void Initialize() + { + Props = (CompProperties_Menstruation)props; + + if (!Props.infertile) + { + if (follicularIntervalhours < 0) + { + follicularIntervalhours = PeriodRandomizer(Props.folicularIntervalDays * 24, Props.deviationFactor); + curStage = RandomStage(); + } + + if (lutealIntervalhours < 0) lutealIntervalhours = PeriodRandomizer(Props.lutealIntervalDays * 24, Props.deviationFactor); + if (bleedingIntervalhours < 0) bleedingIntervalhours = PeriodRandomizer(Props.bleedingIntervalDays * 24, Props.deviationFactor); + if (recoveryIntervalhours < 0) recoveryIntervalhours = PeriodRandomizer(Props.recoveryIntervalDays * 24, Props.deviationFactor); + if (cums == null) cums = new List(); + if (eggs == null) eggs = new List(); + if (parent.pawn.IsPregnant()) curStage = Stage.Pregnant; + if (Configurations.EnableAnimalCycle) + { + HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); + } + else if (!parent.pawn.IsAnimal()) HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); + } + else + { + if (cums == null) cums = new List(); + curStage = Stage.None; + HugsLibController.Instance.TickDelayScheduler.ScheduleCallback(PeriodSimulator(curStage), tickInterval, parent.pawn, false); + } + loaded = true; + } + private Pawn Fertilize() { if (cums.NullOrEmpty()) return null; @@ -605,8 +649,16 @@ namespace RJW_Menstruation } else { - bleedingIntervalhours = PeriodRandomizer(bleedingIntervalhours, Props.deviationFactor); - GoNextStage(Stage.Bleeding); + if (Props.bleedingIntervalDays == 0) + { + follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor); + GoNextStage(Stage.Follicular); + } + else + { + bleedingIntervalhours = PeriodRandomizer(bleedingIntervalhours, Props.deviationFactor); + GoNextStage(Stage.Bleeding); + } } }; break; @@ -669,6 +721,12 @@ namespace RJW_Menstruation } }; break; + case Stage.None: + action = delegate + { + StayCurrentStageConst(Stage.None); + }; + break; default: curStage = Stage.Follicular; curStageHrs = 0; @@ -777,4 +835,12 @@ namespace RJW_Menstruation } + + public class HediffComp_Anus : HediffComp + { + public override void CompPostTick(ref float severityAdjustment) + { + } + } + } diff --git a/source/RJW_Menstruation/RJW_Menstruation/Translations.cs b/source/RJW_Menstruation/RJW_Menstruation/Translations.cs index 6e524ba..c6ace03 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Translations.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Translations.cs @@ -14,6 +14,7 @@ namespace RJW_Menstruation public static readonly string Stage_Fertilized = "Stage_Fertilized".Translate(); public static readonly string Stage_Pregnant = "Stage_Pregnant".Translate(); public static readonly string Stage_Recover = "Stage_Recover".Translate(); + public static readonly string Stage_None = "Stage_None".Translate(); public static readonly string Dialog_WombInfo01 = "Dialog_WombInfo01".Translate(); public static readonly string Dialog_WombInfo02 = "Dialog_WombInfo02".Translate(); diff --git a/source/RJW_Menstruation/RJW_Menstruation/Utility.cs b/source/RJW_Menstruation/RJW_Menstruation/Utility.cs index a7d1a22..d246825 100644 --- a/source/RJW_Menstruation/RJW_Menstruation/Utility.cs +++ b/source/RJW_Menstruation/RJW_Menstruation/Utility.cs @@ -174,19 +174,23 @@ namespace RJW_Menstruation public static Texture2D GetGenitalIcon(Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_genitalsBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("vagina")); - string icon = "Genitals/"; - if (hediff.Severity < 0.20f) icon += "Vagina00"; //micro - else if (hediff.Severity < 0.30f) icon += "Vagina01"; //tight - else if (hediff.Severity < 0.40f) icon += "Vagina02"; //tight - else if (hediff.Severity < 0.47f) icon += "Vagina03"; //average - else if (hediff.Severity < 0.53f) icon += "Vagina04"; //average - else if (hediff.Severity < 0.60f) icon += "Vagina05"; //average - else if (hediff.Severity < 0.70f) icon += "Vagina06"; //accomodating - else if (hediff.Severity < 0.80f) icon += "Vagina07"; //accomodating - else if (hediff.Severity < 0.87f) icon += "Vagina08"; //cavernous - else if (hediff.Severity < 0.94f) icon += "Vagina09"; //cavernous - else if (hediff.Severity < 1.01f) icon += "Vagina10"; //cavernous - else icon += "Vagina11"; //abyssal + CompProperties_Menstruation Props = (CompProperties_Menstruation)hediff.TryGetComp().props; + string icon; + if (Props != null) icon = Props.vagTex; + else icon = "Genitals/Vagina"; + + if (hediff.Severity < 0.20f) icon += "00"; //micro + else if (hediff.Severity < 0.30f) icon += "01"; //tight + else if (hediff.Severity < 0.40f) icon += "02"; //tight + else if (hediff.Severity < 0.47f) icon += "03"; //average + else if (hediff.Severity < 0.53f) icon += "04"; //average + else if (hediff.Severity < 0.60f) icon += "05"; //average + else if (hediff.Severity < 0.70f) icon += "06"; //accomodating + else if (hediff.Severity < 0.80f) icon += "07"; //accomodating + else if (hediff.Severity < 0.87f) icon += "08"; //cavernous + else if (hediff.Severity < 0.94f) icon += "09"; //cavernous + else if (hediff.Severity < 1.01f) icon += "10"; //cavernous + else icon += "11"; //abyssal return ContentFinder.Get((icon), true); } @@ -194,13 +198,16 @@ namespace RJW_Menstruation public static Texture2D GetAnalIcon(Pawn pawn) { var hediff = Genital_Helper.get_PartsHediffList(pawn, Genital_Helper.get_anusBPR(pawn)).Find((Hediff h) => h.def.defName.ToLower().Contains("anus")); - string icon = "Genitals/"; - if (hediff.Severity < 0.20f) icon += "Anal00"; //micro - else if (hediff.Severity < 0.40f) icon += "Anal01"; //tight - else if (hediff.Severity < 0.60f) icon += "Anal02"; //average - else if (hediff.Severity < 0.80f) icon += "Anal03"; //accomodating - else if (hediff.Severity < 1.01f) icon += "Anal04"; //cavernous - else icon += "Anal05"; //abyssal + CompProperties_Anus Props = (CompProperties_Anus)hediff.TryGetComp().props; + string icon; + if (Props != null) icon = Props.analTex; + else icon = "Genitals/Anal"; + if (hediff.Severity < 0.20f) icon += "00"; //micro + else if (hediff.Severity < 0.40f) icon += "01"; //tight + else if (hediff.Severity < 0.60f) icon += "02"; //average + else if (hediff.Severity < 0.80f) icon += "03"; //accomodating + else if (hediff.Severity < 1.01f) icon += "04"; //cavernous + else icon += "05"; //abyssal return ContentFinder.Get((icon), true); }