- Replace all references of `DroneWorkModeDef` with `MechWorkModeDef` in components and gizmos - Delete `DroneWorkModeDef.cs` and remove related fields from `WulaDefOf` - Update `WULA_AutonomousMech.xml` to use `JobGiver_DroneSelfShutdown` and correct mode names - Remove redundant safety checks in `ThinkNode_ConditionalAutonomousWorkMode` - Update WulaFallenEmpire assembly
37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
using RimWorld;
|
|
using Verse;
|
|
using Verse.AI;
|
|
|
|
namespace WulaFallenEmpire
|
|
{
|
|
public class ThinkNode_ConditionalAutonomousWorkMode : ThinkNode_Conditional
|
|
{
|
|
public MechWorkModeDef requiredMode;
|
|
|
|
protected override bool Satisfied(Pawn pawn)
|
|
{
|
|
try
|
|
{
|
|
if (pawn == null || pawn.Dead || pawn.Downed)
|
|
return false;
|
|
|
|
// 检查是否有自主机械组件
|
|
var comp = pawn.GetComp<CompAutonomousMech>();
|
|
if (comp == null)
|
|
return false;
|
|
|
|
// 检查当前工作模式是否匹配要求
|
|
if (comp.CurrentWorkMode != requiredMode)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
catch (System.Exception ex)
|
|
{
|
|
Log.Error($"[WULA] Exception in ThinkNode_ConditionalAutonomousWorkMode.Satisfied for pawn {pawn?.LabelShort}: {ex}");
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|