Compare commits

...

4 commits

Author SHA1 Message Date
Usagirei
cc87bbef68 Merge branch 'nre-partner' into 'master'
Fix NRE when jobdriver partner is null

See merge request c0ffeeeeeeee/rimworld-animations!5
2023-06-22 19:11:33 +00:00
c0ffeeeeeeee
5ef758c294 Merge branch 'gc-fix-orgasm-progress' into 'master'
Fix orgasm progress

See merge request c0ffeeeeeeee/rimworld-animations!13
2023-06-21 20:10:05 +00:00
ghostclinic3YTB
3a0b9deb11 Fix orgasm progress 2023-06-21 20:10:05 +00:00
Reisen Usagi
8888f76708
Fix NRE when jobdriver partner is null 2022-03-22 20:15:38 -03:00
3 changed files with 24 additions and 7 deletions

View file

@ -504,14 +504,29 @@ namespace Rimworld_Animations {
public bool LoopNeverending()
{
if(pawn?.jobs?.curDriver != null &&
(pawn.jobs.curDriver is JobDriver_Sex) && (pawn.jobs.curDriver as JobDriver_Sex).neverendingsex ||
(pawn.jobs.curDriver is JobDriver_SexBaseReciever) && (pawn.jobs.curDriver as JobDriver_Sex).Partner?.jobs?.curDriver != null && ((pawn.jobs.curDriver as JobDriver_Sex).Partner.jobs.curDriver as JobDriver_Sex).neverendingsex)
{
return true;
}
return IsNeverEndingSex(pawn) || IsNeverEndingSexPartner(pawn);
}
return false;
public static bool IsNeverEndingSex(Pawn pawn)
{
bool hasDriver = pawn?.jobs?.curDriver != null;
if (!hasDriver)
return false;
return (pawn.jobs.curDriver is JobDriver_Sex jds) && jds.neverendingsex;
}
public static bool IsNeverEndingSexPartner(Pawn pawn)
{
bool hasDriver = pawn?.jobs?.curDriver != null;
if (!hasDriver)
return false;
var partner = (pawn.jobs.curDriver is JobDriver_SexBaseReciever jds) ? jds.Partner : null;
if (partner == null)
return false;
return IsNeverEndingSex(partner);
}
public void ResetOnLoop()

View file

@ -109,6 +109,7 @@ namespace Rimworld_Animations {
int animTicks = anim.animationTimeTicks - (fastAnimForQuickie ? anim.animationStages[0].playTimeTicks : 0);
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).ticks_left = animTicks;
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).sex_ticks = animTicks;
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).orgasmStartTick = animTicks;
(pawnsToAnimate[i].jobs.curDriver as JobDriver_Sex).duration = animTicks;

View file

@ -59,6 +59,7 @@ namespace Patch_SexToysMasturbation
(pawn.jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
(pawn.jobs.curDriver as JobDriver_Sex).sex_ticks = anim.animationTimeTicks;
(pawn.jobs.curDriver as JobDriver_Sex).orgasmStartTick = anim.animationTimeTicks;
(pawn.jobs.curDriver as JobDriver_Sex).duration = anim.animationTimeTicks;
}
else