1. **核心架构重构**:
* 将硬编码的 AutonomousWorkMode 枚举替换为基于 XML 定义的 DroneWorkModeDef,以提高扩展性。
* 定义了基础工作模式:工作、充电、休眠、自动战斗。
* 重构了 CompAutonomousMech 以支持新的 Def 系统。
2. **UI 增强**:
* 添加了 DroneGizmo:为选中的机械体提供控制面板,显示能量水平并允许切换模式。
* 添加了 PawnColumnWorker_DroneWorkMode 和 PawnColumnWorker_DroneEnergy:在机械体列表中显示工作模式图标和能量条。
* 通过 Harmony 补丁 Patch_MainTabWindow_Mechs_Pawns 将自主机械体集成到原版机械体主标签页中。
* 扩展了 PawnTableDefOf.Mechs 以包含新的自定义列。
3. **AI 与行为改进**:
* 实现了 JobDriver_DroneSelfShutdown 和 JobGiver_DroneSelfShutdown:机械体现在会在低电量或被命令时寻找安全地点休眠。
* 添加了 ThinkNode_ConditionalWorkMode_Drone 和 ThinkNode_ConditionalLowEnergy_Drone 用于行为树逻辑。
4. **兼容性与修复**:
* 添加了 Patch_MechanitorUtility_EverControllable:确保自主机械体始终可控,防止在没有监管者时失去控制。
* 修复了机械体缺少监管者警报的误报问题。
93 lines
2.2 KiB
C#
93 lines
2.2 KiB
C#
using RimWorld;
|
|
using Verse;
|
|
|
|
namespace WulaFallenEmpire
|
|
{
|
|
|
|
[DefOf]
|
|
public static class ThingDefOf_WULA
|
|
{
|
|
public static ThingDef WULA_MaintenancePod;
|
|
public static ThingDef WULA_Charging_Station_Synth;
|
|
public static ThingDef WULA_PocketMapExit;
|
|
public static ThingDef Hyperweave;
|
|
|
|
static ThingDefOf_WULA()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(ThingDefOf_WULA));
|
|
}
|
|
}
|
|
|
|
[DefOf]
|
|
public static class JobDefOf_WULA
|
|
{
|
|
public static JobDef WULA_EnterMaintenancePod;
|
|
public static JobDef WULA_HaulToMaintenancePod;
|
|
|
|
static JobDefOf_WULA()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(JobDefOf_WULA));
|
|
}
|
|
}
|
|
|
|
[DefOf]
|
|
public static class WulaStatDefOf
|
|
{
|
|
public static StatDef WulaEnergyMaxLevelOffset;
|
|
public static StatDef WulaEnergyFallRateFactor;
|
|
|
|
static WulaStatDefOf()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(WulaStatDefOf));
|
|
}
|
|
}
|
|
|
|
[DefOf]
|
|
public static class WulaNeedDefOf
|
|
{
|
|
public static NeedDef WULA_Energy;
|
|
|
|
static WulaNeedDefOf()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(WulaNeedDefOf));
|
|
}
|
|
}
|
|
|
|
|
|
[DefOf]
|
|
public static class WulaStatCategoryDefOf
|
|
{
|
|
public static StatCategoryDef WULA_Synth;
|
|
|
|
static WulaStatCategoryDefOf()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(WulaStatCategoryDefOf));
|
|
}
|
|
}
|
|
|
|
[DefOf]
|
|
public static class WulaDamageDefOf
|
|
{
|
|
public static DamageDef Wula_Dark_Matter_Flame;
|
|
|
|
static WulaDamageDefOf()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(WulaDamageDefOf));
|
|
}
|
|
}
|
|
|
|
[DefOf]
|
|
public static class WulaDefOf
|
|
{
|
|
public static JobDef WULA_DroneSelfShutdown;
|
|
public static DroneWorkModeDef Work;
|
|
public static DroneWorkModeDef Recharge;
|
|
public static DroneWorkModeDef Shutdown;
|
|
public static DroneWorkModeDef AutoFight;
|
|
|
|
static WulaDefOf()
|
|
{
|
|
DefOfHelper.EnsureInitializedInCtor(typeof(WulaDefOf));
|
|
}
|
|
}
|
|
} |