diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll
index 8da2bf6e..67db11af 100644
Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ
diff --git a/1.6/1.6/Defs/ThinkTreeDefs/WULA_AutonomousMech.xml b/1.6/1.6/Defs/ThinkTreeDefs/WULA_AutonomousMech.xml
index 13a053cf..0b0c2cfb 100644
--- a/1.6/1.6/Defs/ThinkTreeDefs/WULA_AutonomousMech.xml
+++ b/1.6/1.6/Defs/ThinkTreeDefs/WULA_AutonomousMech.xml
@@ -28,7 +28,7 @@
-
+
@@ -164,10 +164,10 @@
- Shutdown
+ SelfShutdown
-
+
diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/CompAutonomousMech.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/CompAutonomousMech.cs
index fa958b1c..ef406cf1 100644
--- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/CompAutonomousMech.cs
+++ b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/CompAutonomousMech.cs
@@ -43,7 +43,7 @@ namespace WulaFallenEmpire
public float criticalEnergyThreshold = 0.1f; // 临界能量阈值
public float rechargeCompleteThreshold = 0.9f; // 充电完成阈值
- public DroneWorkModeDef initialWorkMode;
+ public MechWorkModeDef initialWorkMode;
public CompProperties_AutonomousMech()
{
@@ -57,7 +57,7 @@ namespace WulaFallenEmpire
public Pawn MechPawn => parent as Pawn;
- private DroneWorkModeDef currentWorkMode;
+ private MechWorkModeDef currentWorkMode;
public bool CanBeAutonomous
{
@@ -142,7 +142,7 @@ namespace WulaFallenEmpire
}
}
- public DroneWorkModeDef CurrentWorkMode => currentWorkMode;
+ public MechWorkModeDef CurrentWorkMode => currentWorkMode;
// 新增:能量状态检查方法
public float GetEnergyLevel()
@@ -161,7 +161,7 @@ namespace WulaFallenEmpire
if (currentWorkMode == null)
{
- currentWorkMode = Props.initialWorkMode ?? WulaDefOf.Work;
+ currentWorkMode = Props.initialWorkMode ?? MechWorkModeDefOf.Work;
}
// 确保使用独立战斗系统
@@ -347,7 +347,7 @@ namespace WulaFallenEmpire
return availableWeapons.RandomElement();
}
- public void SetWorkMode(DroneWorkModeDef mode)
+ public void SetWorkMode(MechWorkModeDef mode)
{
currentWorkMode = mode;
diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneGizmo.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneGizmo.cs
index d73d3ef4..46e5c408 100644
--- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneGizmo.cs
+++ b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneGizmo.cs
@@ -74,7 +74,7 @@ namespace WulaFallenEmpire
public static IEnumerable GetWorkModeOptions(CompAutonomousMech comp, HashSet groupedComps = null)
{
- foreach (DroneWorkModeDef mode in DefDatabase.AllDefs.OrderBy(d => d.uiOrder))
+ foreach (MechWorkModeDef mode in DefDatabase.AllDefs.OrderBy(d => d.uiOrder))
{
yield return new FloatMenuOption(mode.LabelCap, delegate
{
diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneWorkModeDef.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneWorkModeDef.cs
deleted file mode 100644
index bd13d310..00000000
--- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/DroneWorkModeDef.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using UnityEngine;
-using Verse;
-
-namespace WulaFallenEmpire
-{
- public class DroneWorkModeDef : Def
- {
- [NoTranslate]
- public string iconPath;
-
- public Texture2D uiIcon;
-
- public int uiOrder;
-
- public override void PostLoad()
- {
- if (!string.IsNullOrEmpty(iconPath))
- {
- LongEventHandler.ExecuteWhenFinished(delegate
- {
- uiIcon = ContentFinder.Get(iconPath);
- });
- }
- }
- }
-}
\ No newline at end of file
diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs
index 51ca3b9e..9c2fe585 100644
--- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs
+++ b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs
@@ -6,7 +6,7 @@ namespace WulaFallenEmpire
{
public class ThinkNode_ConditionalAutonomousWorkMode : ThinkNode_Conditional
{
- public DroneWorkModeDef requiredMode;
+ public MechWorkModeDef requiredMode;
protected override bool Satisfied(Pawn pawn)
{
@@ -24,40 +24,6 @@ namespace WulaFallenEmpire
if (comp.CurrentWorkMode != requiredMode)
return false;
- // 额外的安全检查:确保pawn有工作设置
- if (pawn.workSettings == null)
- {
- Log.Warning($"[WULA] {pawn.LabelShort} has no workSettings in ThinkNode_ConditionalAutonomousWorkMode");
- return false;
- }
-
- // 检查是否启用了工作
- if (!pawn.workSettings.EverWork)
- {
- Log.Warning($"[WULA] {pawn.LabelShort} has EverWork=false in ThinkNode_ConditionalAutonomousWorkMode");
- return false;
- }
-
- // 检查是否有工作给予器
- var workGivers = pawn.workSettings.WorkGiversInOrderNormal;
- if (workGivers == null || workGivers.Count == 0)
- {
- Log.Warning($"[WULA] {pawn.LabelShort} has no work givers in ThinkNode_ConditionalAutonomousWorkMode");
- return false;
- }
-
- // 检查是否为机械体且具有机械体能力
- if (pawn.RaceProps.IsMechanoid)
- {
- // 检查是否有操纵能力
- var manipulation = pawn.health?.capacities?.GetLevel(PawnCapacityDefOf.Manipulation);
- if (manipulation < 0.1f)
- {
- Log.Warning($"[WULA] {pawn.LabelShort} has insufficient manipulation capacity: {manipulation}");
- return false;
- }
- }
-
return true;
}
catch (System.Exception ex)
diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalWorkMode_Drone.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalWorkMode_Drone.cs
index 3634844d..58382b6b 100644
--- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalWorkMode_Drone.cs
+++ b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalWorkMode_Drone.cs
@@ -6,7 +6,7 @@ namespace WulaFallenEmpire
{
public class ThinkNode_ConditionalWorkMode_Drone : ThinkNode_Conditional
{
- public DroneWorkModeDef workMode;
+ public MechWorkModeDef workMode;
public override ThinkNode DeepCopy(bool resolve = true)
{
diff --git a/Source/WulaFallenEmpire/WulaDefOf.cs b/Source/WulaFallenEmpire/WulaDefOf.cs
index 9d545ef0..954f262e 100644
--- a/Source/WulaFallenEmpire/WulaDefOf.cs
+++ b/Source/WulaFallenEmpire/WulaDefOf.cs
@@ -80,10 +80,6 @@ namespace WulaFallenEmpire
[DefOf]
public static class WulaDefOf
{
- public static DroneWorkModeDef Work;
- public static DroneWorkModeDef Recharge;
- public static DroneWorkModeDef Shutdown;
- //public static DroneWorkModeDef AutoFight;
// public static PawnTableDef WULA_AutonomousMechs;
static WulaDefOf()