2021-03-06 13:32:33 +00:00
|
|
|
|
using System.Collections.Generic;
|
2021-02-13 09:45:22 +00:00
|
|
|
|
using Verse.AI;
|
|
|
|
|
|
|
|
|
|
namespace RJW_Menstruation
|
|
|
|
|
{
|
2021-03-06 13:32:33 +00:00
|
|
|
|
public class JobDriver_VaginaWashing : JobDriver
|
|
|
|
|
{
|
|
|
|
|
const int excretingTime = 300;//ticks - 120 = 2 real seconds, 3 in-game minutes
|
2021-02-13 09:45:22 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
public override bool TryMakePreToilReservations(bool errorOnFailed)
|
|
|
|
|
{
|
|
|
|
|
return pawn.Reserve(pawn, job, 1, -1, null, errorOnFailed);
|
|
|
|
|
}
|
2021-02-13 09:45:22 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
protected override IEnumerable<Toil> MakeNewToils()
|
|
|
|
|
{
|
2021-02-13 09:45:22 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
HediffComp_Menstruation Comp = Utility.GetMenstruationComp(pawn);
|
|
|
|
|
this.FailOn(delegate
|
|
|
|
|
{
|
|
|
|
|
return !(Comp.TotalCumPercent > 0.01);
|
|
|
|
|
});
|
|
|
|
|
Toil excreting = Toils_General.Wait(excretingTime, TargetIndex.None);//duration of
|
2021-02-13 09:45:22 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
excreting.WithProgressBarToilDelay(TargetIndex.A);
|
|
|
|
|
yield return excreting;
|
|
|
|
|
yield return new Toil()
|
|
|
|
|
{
|
|
|
|
|
initAction = delegate ()
|
|
|
|
|
{
|
|
|
|
|
Comp.CumOutForce(null, 0.5f);
|
|
|
|
|
if (Comp.TotalCumPercent > 0.01) this.JumpToToil(excreting);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
//yield return excreting;
|
2021-02-13 09:45:22 +00:00
|
|
|
|
|
2021-03-06 13:32:33 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2021-02-13 09:45:22 +00:00
|
|
|
|
}
|