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()