mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Compare commits
2 commits
31c3026ca0
...
592cb361ad
Author | SHA1 | Date | |
---|---|---|---|
|
592cb361ad | ||
|
c72ff42da1 |
7 changed files with 50 additions and 29 deletions
Binary file not shown.
Binary file not shown.
|
@ -550,8 +550,7 @@ namespace RJW_Menstruation
|
||||||
break;
|
break;
|
||||||
case Hediff_Labor _:
|
case Hediff_Labor _:
|
||||||
case Hediff_LaborPushing _:
|
case Hediff_LaborPushing _:
|
||||||
is_discovered = true;
|
return 1.0f;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_discovered || Configurations.infoDetail == Configurations.DetailLevel.All) return pregnancy.Severity;
|
if (is_discovered || Configurations.infoDetail == Configurations.DetailLevel.All) return pregnancy.Severity;
|
||||||
|
|
|
@ -89,31 +89,34 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
|
public static Texture2D GetPregnancyIcon(this HediffComp_Menstruation comp, Hediff hediff)
|
||||||
{
|
{
|
||||||
string icon = "";
|
|
||||||
int babycount = 1;
|
|
||||||
if (hediff is Hediff_MechanoidPregnancy)
|
if (hediff is Hediff_MechanoidPregnancy)
|
||||||
{
|
|
||||||
return ContentFinder<Texture2D>.Get(("Womb/Mechanoid_Fluid"), true);
|
return ContentFinder<Texture2D>.Get(("Womb/Mechanoid_Fluid"), true);
|
||||||
}
|
|
||||||
else if (hediff is Hediff_BasePregnancy h)
|
string icon = "Fetus/Slime_Abomi02";
|
||||||
|
string fetustex = "Fetus/Fetus_Default";
|
||||||
|
ThingDef babydef = comp.Pawn.def; // TODO: Pregenerated babies
|
||||||
|
|
||||||
|
float gestationProgress = comp.StageProgress;
|
||||||
|
int babycount = hediff is Hediff_BasePregnancy preg ? preg.babies.Count : 1;
|
||||||
|
|
||||||
|
if (hediff is Hediff_BasePregnancy h)
|
||||||
{
|
{
|
||||||
babycount = h.babies.Count;
|
babydef = h.babies?.FirstOrDefault()?.def ?? ThingDefOf.Human;
|
||||||
string fetustex = h.babies?.FirstOrDefault()?.def.GetModExtension<PawnDNAModExtension>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
|
||||||
if (h.GestationProgress < 0.2f) icon = comp.WombTex + "_Implanted";
|
|
||||||
else if (h.GestationProgress < 0.3f)
|
|
||||||
{
|
|
||||||
if (h.babies?.First()?.def?.race?.FleshType == FleshTypeDefOf.Insectoid) icon += "Fetus/Insects/Insect_Early00";
|
|
||||||
else icon += "Fetus/Fetus_Early00";
|
|
||||||
}
|
|
||||||
else if (h.GestationProgress < 0.4f) icon += fetustex + "00";
|
|
||||||
else if (h.GestationProgress < 0.5f) icon += fetustex + "01";
|
|
||||||
else if (h.GestationProgress < 0.6f) icon += fetustex + "02";
|
|
||||||
else if (h.GestationProgress < 0.7f) icon += fetustex + "03";
|
|
||||||
else if (h.GestationProgress < 0.8f) icon += fetustex + "04";
|
|
||||||
else icon += fetustex + "05";
|
|
||||||
}
|
}
|
||||||
// TODO: Biotech
|
|
||||||
else icon = "Fetus/Slime_Abomi02";
|
fetustex = babydef.GetModExtension<PawnDNAModExtension>()?.fetusTexPath ?? "Fetus/Fetus_Default";
|
||||||
|
if (gestationProgress < 0.2f) icon = comp.WombTex + "_Implanted";
|
||||||
|
else if (gestationProgress < 0.3f)
|
||||||
|
{
|
||||||
|
if (babydef.race?.FleshType == FleshTypeDefOf.Insectoid) icon = "Fetus/Insects/Insect_Early00";
|
||||||
|
else icon = "Fetus/Fetus_Early00";
|
||||||
|
}
|
||||||
|
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";
|
||||||
|
|
||||||
Texture2D result = TryGetTwinsIcon(icon, babycount);
|
Texture2D result = TryGetTwinsIcon(icon, babycount);
|
||||||
|
|
||||||
|
|
|
@ -57,15 +57,16 @@ namespace RJW_Menstruation
|
||||||
comp.TotalFertCum, comp.ovarypower, comp.GetNumOfEggs);
|
comp.TotalFertCum, comp.ovarypower, comp.GetNumOfEggs);
|
||||||
}
|
}
|
||||||
else description.AppendFormat("{0}\n", comp.GetCurStageLabel);
|
else description.AppendFormat("{0}\n", comp.GetCurStageLabel);
|
||||||
if (pawn.IsRJWPregnant())
|
if (pawn.IsRJWPregnant() || pawn.IsBiotechPregnant())
|
||||||
{
|
{
|
||||||
Hediff_BasePregnancy hediff = comp.Pregnancy;
|
Hediff hediff = comp.Pregnancy;
|
||||||
if (hediff != null && Utility.ShowFetusImage(hediff))
|
if (hediff != null && Utility.ShowFetusImage(hediff))
|
||||||
{
|
{
|
||||||
icon = comp.GetPregnancyIcon(hediff);
|
icon = comp.GetPregnancyIcon(hediff);
|
||||||
if (hediff is Hediff_BasePregnancy h)
|
float gestationProgress = comp.StageProgress;
|
||||||
|
if (hediff is Hediff_BasePregnancy || hediff is HediffWithParents)
|
||||||
{
|
{
|
||||||
if (h.GestationProgress < 0.2f) icon_overay = comp.GetCumIcon();
|
if (gestationProgress < 0.2f) icon_overay = comp.GetCumIcon();
|
||||||
else icon_overay = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
else icon_overay = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
||||||
}
|
}
|
||||||
else icon_overay = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
else icon_overay = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
||||||
|
|
|
@ -217,8 +217,26 @@ namespace RJW_Menstruation
|
||||||
GUI.Label(preginfo, Translations.Dialog_WombInfo03 + ": " + father + " ", fontstyleright);
|
GUI.Label(preginfo, Translations.Dialog_WombInfo03 + ": " + father + " ", fontstyleright);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (hediff is HediffWithParents p)
|
||||||
|
{
|
||||||
|
if (p is Hediff_Pregnant hp && hp.Severity < 0.2f) cum = comp.GetCumIcon();
|
||||||
|
else cum = ContentFinder<Texture2D>.Get("Womb/Empty", true);
|
||||||
|
// TODO: Pregenerated babies (base on multiplepregnancy)
|
||||||
|
if (Utility.ShowFetusInfo())
|
||||||
|
{
|
||||||
|
preginfoheight = fontheight;
|
||||||
|
Rect preginfo = new Rect(0f, mainRect.yMax - wombRectHeight - 2, wombRectWidth, preginfoheight);
|
||||||
|
fontstyleright.normal.textColor = Color.white;
|
||||||
|
fontstyleright.alignment = TextAnchor.MiddleRight;
|
||||||
|
buttonstyle.alignment = TextAnchor.MiddleLeft;
|
||||||
|
|
||||||
|
string father = p.Father.LabelShort;
|
||||||
|
|
||||||
|
GUI.Box(preginfo, "1 " + p.Mother.def.label + " " + Translations.Dialog_WombInfo02, buttonstyle);
|
||||||
|
GUI.Label(preginfo, Translations.Dialog_WombInfo03 + ": " + father + " ", fontstyleright);
|
||||||
|
}
|
||||||
|
}
|
||||||
else cum = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
else cum = ContentFinder<Texture2D>.Get(("Womb/Empty"), true);
|
||||||
// TODO: Biotech pregnancy
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -188,7 +188,7 @@ namespace RJW_Menstruation
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// TODO: Biotech
|
// TODO: Biotech pregenerated babies
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue