mirror of
https://gitgud.io/lutepickle/rjw_menstruation.git
synced 2024-08-14 22:46:52 +00:00
Add a short description when mousing over the phase in the womb dialog
This commit is contained in:
parent
871730ac3a
commit
0a7e80b353
7 changed files with 173 additions and 89 deletions
Binary file not shown.
|
@ -14,6 +14,16 @@
|
||||||
<Stage_None>None</Stage_None>
|
<Stage_None>None</Stage_None>
|
||||||
<Stage_Climacteric>Climacteric</Stage_Climacteric>
|
<Stage_Climacteric>Climacteric</Stage_Climacteric>
|
||||||
<Stage_Anestrus>Anestrus</Stage_Anestrus>
|
<Stage_Anestrus>Anestrus</Stage_Anestrus>
|
||||||
|
<Stage_Follicular_Desc>The ovaries are preparing to produce an egg. Ovulation will occur at the end of this phase.</Stage_Follicular_Desc>
|
||||||
|
<Stage_Follicular_Induced_Desc>The ovaries are preparing to produce an egg. Ovulation will occur if semen enters the womb.</Stage_Follicular_Induced_Desc>
|
||||||
|
<Stage_Ovulatory_Desc>The ovaries are producing an egg to release into the womb.</Stage_Ovulatory_Desc>
|
||||||
|
<Stage_Luteal_Desc>The womb is prepared to recieve a fertilized egg. Pregnancy will result if one implants before the end of the stage.</Stage_Luteal_Desc>
|
||||||
|
<Stage_Bleeding_Desc>The womb is shedding its lining, along with any eggs that failed to implant.</Stage_Bleeding_Desc>
|
||||||
|
<Stage_Pregnant_Desc>A baby is growing inside the womb. With time and care, it will become a new resident of this world.</Stage_Pregnant_Desc>
|
||||||
|
<Stage_Recover_Desc>The womb is recovering from its recent pregnancy.</Stage_Recover_Desc>
|
||||||
|
<Stage_None_Desc>The womb is not fertile and cannot become pregnant.</Stage_None_Desc>
|
||||||
|
<Stage_Climacteric_Desc>The ovaries have neared exhaustion and the menstrual cycle has become irregular.</Stage_Climacteric_Desc>
|
||||||
|
<Stage_Anestrus_Desc>The womb is out of breeding season. The cycle will resume once conditions are met.</Stage_Anestrus_Desc>
|
||||||
<Button_HealthTab>Status</Button_HealthTab>
|
<Button_HealthTab>Status</Button_HealthTab>
|
||||||
<Button_MilkTooltip>Lactate self</Button_MilkTooltip>
|
<Button_MilkTooltip>Lactate self</Button_MilkTooltip>
|
||||||
<Dialog_WombInfo01>State</Dialog_WombInfo01>
|
<Dialog_WombInfo01>State</Dialog_WombInfo01>
|
||||||
|
@ -29,6 +39,8 @@
|
||||||
<Dialog_DontCleanWomb_Tooltip>Store cum in womb</Dialog_DontCleanWomb_Tooltip>
|
<Dialog_DontCleanWomb_Tooltip>Store cum in womb</Dialog_DontCleanWomb_Tooltip>
|
||||||
<Dialog_FatherUnknown>Unknown</Dialog_FatherUnknown>
|
<Dialog_FatherUnknown>Unknown</Dialog_FatherUnknown>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<Option1_Label_1>Enable womb icon</Option1_Label_1>
|
<Option1_Label_1>Enable womb icon</Option1_Label_1>
|
||||||
<Option1_Label_2>Enable button in health tab</Option1_Label_2>
|
<Option1_Label_2>Enable button in health tab</Option1_Label_2>
|
||||||
<Option2_Label>Enable animal cycle</Option2_Label>
|
<Option2_Label>Enable animal cycle</Option2_Label>
|
||||||
|
|
|
@ -20,6 +20,22 @@ namespace RJW_Menstruation
|
||||||
|
|
||||||
public class HediffComp_InducedOvulator : HediffComp_Menstruation
|
public class HediffComp_InducedOvulator : HediffComp_Menstruation
|
||||||
{
|
{
|
||||||
|
public override string GetCurStageDesc
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
switch (CurrentVisibleStage)
|
||||||
|
{
|
||||||
|
case Stage.Follicular:
|
||||||
|
return Translations.Stage_Follicular_Induced_Desc;
|
||||||
|
case Stage.ClimactericFollicular:
|
||||||
|
return Translations.Stage_Follicular_Induced_Desc + " " + Translations.Stage_Climacteric_Desc;
|
||||||
|
default:
|
||||||
|
return base.GetCurStageDesc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void FollicularAction()
|
protected override void FollicularAction()
|
||||||
{
|
{
|
||||||
if (!IsBreedingSeason())
|
if (!IsBreedingSeason())
|
||||||
|
|
|
@ -302,6 +302,43 @@ namespace RJW_Menstruation
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public virtual string GetCurStageDesc
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
switch (CurrentVisibleStage)
|
||||||
|
{
|
||||||
|
case Stage.Follicular:
|
||||||
|
return Translations.Stage_Follicular_Desc;
|
||||||
|
case Stage.Ovulatory:
|
||||||
|
return Translations.Stage_Ovulatory_Desc;
|
||||||
|
case Stage.Luteal:
|
||||||
|
return Translations.Stage_Luteal_Desc;
|
||||||
|
case Stage.Bleeding:
|
||||||
|
return Translations.Stage_Bleeding_Desc;
|
||||||
|
case Stage.Fertilized:
|
||||||
|
return Translations.Stage_Luteal_Desc;
|
||||||
|
case Stage.Pregnant:
|
||||||
|
return Translations.Stage_Pregnant_Desc;
|
||||||
|
case Stage.Recover:
|
||||||
|
return Translations.Stage_Recover_Desc;
|
||||||
|
case Stage.None:
|
||||||
|
case Stage.Young:
|
||||||
|
return Translations.Stage_None_Desc;
|
||||||
|
case Stage.ClimactericFollicular:
|
||||||
|
return Translations.Stage_Follicular_Desc + " " + Translations.Stage_Climacteric_Desc;
|
||||||
|
case Stage.ClimactericLuteal:
|
||||||
|
return Translations.Stage_Luteal_Desc + " " + Translations.Stage_Climacteric_Desc;
|
||||||
|
case Stage.ClimactericBleeding:
|
||||||
|
return Translations.Stage_Bleeding_Desc + " " + Translations.Stage_Climacteric_Desc;
|
||||||
|
case Stage.Anestrus:
|
||||||
|
return Translations.Stage_Anestrus_Desc;
|
||||||
|
default:
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public string WombTex
|
public string WombTex
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
@ -1440,6 +1477,97 @@ namespace RJW_Menstruation
|
||||||
else GoNextStage(Stage.Follicular);
|
else GoNextStage(Stage.Follicular);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected virtual void ClimactericFollicularAction()
|
||||||
|
{
|
||||||
|
if (!Configurations.EnableMenopause)
|
||||||
|
{
|
||||||
|
RemoveClimactericEffect();
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
else if (curStageHrs >= (follicularIntervalhours - bleedingIntervalhours) * CycleFactor)
|
||||||
|
{
|
||||||
|
GoNextStage(Stage.Ovulatory);
|
||||||
|
}
|
||||||
|
else if (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) //skips ovulatory
|
||||||
|
{
|
||||||
|
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
||||||
|
GoNextStage(Stage.ClimactericLuteal);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curStageHrs += Configurations.CycleAcceleration;
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void ClimactericLutealAction()
|
||||||
|
{
|
||||||
|
if (!Configurations.EnableMenopause)
|
||||||
|
{
|
||||||
|
RemoveClimactericEffect();
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
else if (!eggs.NullOrEmpty())
|
||||||
|
{
|
||||||
|
FertilizationCheck();
|
||||||
|
EggDecay();
|
||||||
|
if (Implant()) GoNextStage(Stage.Pregnant);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curStageHrs += Configurations.CycleAcceleration;
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (curStageHrs <= lutealIntervalhours)
|
||||||
|
{
|
||||||
|
curStageHrs += Configurations.CycleAcceleration;
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
eggs.Clear();
|
||||||
|
if (Props.bleedingIntervalDays == 0)
|
||||||
|
{
|
||||||
|
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
||||||
|
GoNextStage(Stage.ClimactericFollicular);
|
||||||
|
}
|
||||||
|
else if (ovarypower < OvaryPowerThreshold / 4 || (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.3f)) //skips bleeding
|
||||||
|
{
|
||||||
|
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
||||||
|
GoNextStage(Stage.ClimactericFollicular);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bleedingIntervalhours = PeriodRandomizer(bleedingIntervalhours, Props.deviationFactor);
|
||||||
|
if (crampPain >= 0.05f)
|
||||||
|
{
|
||||||
|
AddCrampPain();
|
||||||
|
}
|
||||||
|
GoNextStage(Stage.ClimactericBleeding);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected virtual void ClimactericBleedingAction()
|
||||||
|
{
|
||||||
|
if (!Configurations.EnableMenopause)
|
||||||
|
{
|
||||||
|
RemoveClimactericEffect();
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
else if (curStageHrs >= bleedingIntervalhours)
|
||||||
|
{
|
||||||
|
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
||||||
|
GoNextStage(Stage.ClimactericFollicular);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (curStageHrs < bleedingIntervalhours / 6) for (int i = 0; i < Configurations.CycleAcceleration; i++) BleedOut();
|
||||||
|
curStageHrs += Configurations.CycleAcceleration;
|
||||||
|
StayCurrentStage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected virtual void AnestrusAction()
|
protected virtual void AnestrusAction()
|
||||||
{
|
{
|
||||||
if (IsBreedingSeason())
|
if (IsBreedingSeason())
|
||||||
|
@ -1569,99 +1697,13 @@ namespace RJW_Menstruation
|
||||||
action = YoungAction;
|
action = YoungAction;
|
||||||
break;
|
break;
|
||||||
case Stage.ClimactericFollicular:
|
case Stage.ClimactericFollicular:
|
||||||
action = delegate
|
action = ClimactericFollicularAction;
|
||||||
{
|
|
||||||
if (!Configurations.EnableMenopause)
|
|
||||||
{
|
|
||||||
RemoveClimactericEffect();
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
else if (curStageHrs >= (follicularIntervalhours - bleedingIntervalhours) * CycleFactor)
|
|
||||||
{
|
|
||||||
GoNextStage(Stage.Ovulatory);
|
|
||||||
}
|
|
||||||
else if (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.2f) //skips ovulatory
|
|
||||||
{
|
|
||||||
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
|
||||||
GoNextStage(Stage.ClimactericLuteal);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
curStageHrs += Configurations.CycleAcceleration;
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
break;
|
break;
|
||||||
case Stage.ClimactericLuteal:
|
case Stage.ClimactericLuteal:
|
||||||
action = delegate
|
action = ClimactericLutealAction;
|
||||||
{
|
|
||||||
if (!Configurations.EnableMenopause)
|
|
||||||
{
|
|
||||||
RemoveClimactericEffect();
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
else if (!eggs.NullOrEmpty())
|
|
||||||
{
|
|
||||||
FertilizationCheck();
|
|
||||||
EggDecay();
|
|
||||||
if (Implant()) GoNextStage(Stage.Pregnant);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
curStageHrs += Configurations.CycleAcceleration;
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (curStageHrs <= lutealIntervalhours)
|
|
||||||
{
|
|
||||||
curStageHrs += Configurations.CycleAcceleration;
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
eggs.Clear();
|
|
||||||
if (Props.bleedingIntervalDays == 0)
|
|
||||||
{
|
|
||||||
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
|
||||||
GoNextStage(Stage.ClimactericFollicular);
|
|
||||||
}
|
|
||||||
else if (ovarypower < OvaryPowerThreshold / 4 || (ovarypower < OvaryPowerThreshold / 3 && Rand.Range(0.0f, 1.0f) < 0.3f)) //skips bleeding
|
|
||||||
{
|
|
||||||
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
|
||||||
GoNextStage(Stage.ClimactericFollicular);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bleedingIntervalhours = PeriodRandomizer(bleedingIntervalhours, Props.deviationFactor);
|
|
||||||
if (crampPain >= 0.05f)
|
|
||||||
{
|
|
||||||
AddCrampPain();
|
|
||||||
}
|
|
||||||
GoNextStage(Stage.ClimactericBleeding);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
break;
|
break;
|
||||||
case Stage.ClimactericBleeding:
|
case Stage.ClimactericBleeding:
|
||||||
action = delegate
|
action = ClimactericBleedingAction;
|
||||||
{
|
|
||||||
if (!Configurations.EnableMenopause)
|
|
||||||
{
|
|
||||||
RemoveClimactericEffect();
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
else if (curStageHrs >= bleedingIntervalhours)
|
|
||||||
{
|
|
||||||
follicularIntervalhours = PeriodRandomizer(follicularIntervalhours, Props.deviationFactor * 6);
|
|
||||||
GoNextStage(Stage.ClimactericFollicular);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (curStageHrs < bleedingIntervalhours / 6) for (int i = 0; i < Configurations.CycleAcceleration; i++) BleedOut();
|
|
||||||
curStageHrs += Configurations.CycleAcceleration;
|
|
||||||
StayCurrentStage();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
break;
|
break;
|
||||||
case Stage.Anestrus:
|
case Stage.Anestrus:
|
||||||
action = AnestrusAction;
|
action = AnestrusAction;
|
||||||
|
|
|
@ -17,6 +17,16 @@ namespace RJW_Menstruation
|
||||||
public static readonly string Stage_None = "Stage_None".Translate();
|
public static readonly string Stage_None = "Stage_None".Translate();
|
||||||
public static readonly string Stage_Climacteric = "Stage_Climacteric".Translate();
|
public static readonly string Stage_Climacteric = "Stage_Climacteric".Translate();
|
||||||
public static readonly string Stage_Anestrus = "Stage_Anestrus".Translate();
|
public static readonly string Stage_Anestrus = "Stage_Anestrus".Translate();
|
||||||
|
public static readonly string Stage_Follicular_Desc = "Stage_Follicular_Desc".Translate();
|
||||||
|
public static readonly string Stage_Follicular_Induced_Desc = "Stage_Follicular_Induced_Desc".Translate();
|
||||||
|
public static readonly string Stage_Ovulatory_Desc = "Stage_Ovulatory_Desc".Translate();
|
||||||
|
public static readonly string Stage_Luteal_Desc = "Stage_Luteal_Desc".Translate();
|
||||||
|
public static readonly string Stage_Bleeding_Desc = "Stage_Bleeding_Desc".Translate();
|
||||||
|
public static readonly string Stage_Pregnant_Desc = "Stage_Pregnant_Desc".Translate();
|
||||||
|
public static readonly string Stage_Recover_Desc = "Stage_Recover_Desc".Translate();
|
||||||
|
public static readonly string Stage_None_Desc = "Stage_None_Desc".Translate();
|
||||||
|
public static readonly string Stage_Climacteric_Desc = "Stage_Climacteric_Desc".Translate();
|
||||||
|
public static readonly string Stage_Anestrus_Desc = "Stage_Anestrus_Desc".Translate();
|
||||||
public static readonly string Button_HealthTab = "Button_HealthTab".Translate();
|
public static readonly string Button_HealthTab = "Button_HealthTab".Translate();
|
||||||
public static readonly string Button_MilkTooltip = "Button_MilkTooltip".Translate();
|
public static readonly string Button_MilkTooltip = "Button_MilkTooltip".Translate();
|
||||||
public static readonly string Dialog_DoCleanWomb_Tooltip = "Dialog_DoCleanWomb_Tooltip".Translate();
|
public static readonly string Dialog_DoCleanWomb_Tooltip = "Dialog_DoCleanWomb_Tooltip".Translate();
|
||||||
|
|
|
@ -257,6 +257,7 @@ namespace RJW_Menstruation
|
||||||
GUI.Box(wombInfoRect, Translations.Dialog_WombInfo01 + ": " + comp.GetCurStageLabel, buttonstyle);
|
GUI.Box(wombInfoRect, Translations.Dialog_WombInfo01 + ": " + comp.GetCurStageLabel, buttonstyle);
|
||||||
Widgets.FillableBar(progressRect, comp.StageProgress, comp.GetStageTexture);
|
Widgets.FillableBar(progressRect, comp.StageProgress, comp.GetStageTexture);
|
||||||
GUI.color = Color.white;
|
GUI.color = Color.white;
|
||||||
|
TooltipHandler.TipRegion(wombInfoRect, comp.GetCurStageDesc);
|
||||||
|
|
||||||
|
|
||||||
fontstyleright.normal.textColor = Color.red;
|
fontstyleright.normal.textColor = Color.red;
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
Version 1.0.6.5
|
||||||
|
- Add a brief description when mousing over the current phase in the womb dialog.
|
||||||
|
|
||||||
Version 1.0.6.4
|
Version 1.0.6.4
|
||||||
- Fix a bug with pawns not being generated.
|
- Fix a bug with pawns not being generated.
|
||||||
- Fix ovary initialization for races with invalid litter sizes.
|
- Fix ovary initialization for races with invalid litter sizes.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue