修复 WorkGiver_FeedWulaPatient 中的空引用问题,增强代码健壮性
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -16,7 +16,17 @@ namespace WulaFallenEmpire
|
|||||||
|
|
||||||
public override IEnumerable<Thing> PotentialWorkThingsGlobal(Pawn pawn)
|
public override IEnumerable<Thing> PotentialWorkThingsGlobal(Pawn pawn)
|
||||||
{
|
{
|
||||||
return pawn.Map.mapPawns.AllPawns.Where(p => p.needs.TryGetNeed<Need_WulaEnergy>() != null && p.InBed());
|
if (pawn?.Map?.mapPawns?.AllPawns == null)
|
||||||
|
{
|
||||||
|
return Enumerable.Empty<Thing>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return pawn.Map.mapPawns.AllPawns.Where(p =>
|
||||||
|
p != null &&
|
||||||
|
p.needs != null &&
|
||||||
|
p.health != null &&
|
||||||
|
p.needs.TryGetNeed<Need_WulaEnergy>() != null &&
|
||||||
|
p.InBed());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false)
|
public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false)
|
||||||
@@ -27,14 +37,19 @@ namespace WulaFallenEmpire
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 如果病患正在充能,则不需要喂食
|
// 如果病患正在充能,则不需要喂食
|
||||||
|
if (patient.health?.hediffSet == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (patient.health.hediffSet.HasHediff(DefDatabase<HediffDef>.GetNamed("WULA_ChargingHediff")))
|
if (patient.health.hediffSet.HasHediff(DefDatabase<HediffDef>.GetNamed("WULA_ChargingHediff")))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Need_WulaEnergy energyNeed = patient.needs.TryGetNeed<Need_WulaEnergy>();
|
Need_WulaEnergy energyNeed = patient.needs?.TryGetNeed<Need_WulaEnergy>();
|
||||||
var extension = def.GetModExtension<WorkGiverDefExtension_FeedWula>();
|
var extension = def.GetModExtension<WorkGiverDefExtension_FeedWula>();
|
||||||
if (energyNeed == null || energyNeed.CurLevelPercentage >= extension.feedThreshold)
|
if (energyNeed == null || extension == null || energyNeed.CurLevelPercentage >= extension.feedThreshold)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user