Fix NRE when jobdriver partner is null
This commit is contained in:
parent
f9ebe8263f
commit
8888f76708
|
@ -501,14 +501,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);
|
||||
}
|
||||
|
||||
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()
|
||||
|
|
Loading…
Reference in New Issue