diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index 1ca89587..46941014 100644 Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ diff --git a/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompProperties_SkyfallerCaller.cs b/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompProperties_SkyfallerCaller.cs new file mode 100644 index 00000000..80b009f8 --- /dev/null +++ b/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompProperties_SkyfallerCaller.cs @@ -0,0 +1,23 @@ +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + public class CompProperties_SkyfallerCaller : CompProperties + { + public ThingDef skyfallerDef; + public bool destroyBuilding = true; + public int delayTicks = 0; + + // 新增:是否需要 FlyOver 作为前提条件 + public bool requireFlyOver = false; // 默认不需要 FlyOver + + public bool allowThinRoof = true; // 允许砸穿薄屋顶 + public bool allowThickRoof = false; // 是否允许在厚岩顶下空投 + + public CompProperties_SkyfallerCaller() + { + compClass = typeof(CompSkyfallerCaller); + } + } +} diff --git a/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompSkyfallerCaller.cs b/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompSkyfallerCaller.cs index 35cb5a7e..ffdfa3bc 100644 --- a/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompSkyfallerCaller.cs +++ b/Source/WulaFallenEmpire/BuildingComp/WULA_SkyfallerCaller/CompSkyfallerCaller.cs @@ -7,22 +7,6 @@ using Verse.AI; namespace WulaFallenEmpire { - public class CompProperties_SkyfallerCaller : CompProperties - { - public ThingDef skyfallerDef; - public bool destroyBuilding = true; - public int delayTicks = 0; - // 删除 requiredFlyOverType 字段 - public bool allowThinRoof = true; // 允许砸穿薄屋顶 - public bool allowThickRoof = false; // 是否允许在厚岩顶下空投 - // 删除 requiredFlyOverLabel 字段 - - public CompProperties_SkyfallerCaller() - { - compClass = typeof(CompSkyfallerCaller); - } - } - public class CompSkyfallerCaller : ThingComp { private CompProperties_SkyfallerCaller Props => (CompProperties_SkyfallerCaller)props; @@ -41,6 +25,10 @@ namespace WulaFallenEmpire { get { + // 如果不需要 FlyOver,直接返回 true + if (!Props.requireFlyOver) + return true; + if (parent?.Map == null) return false; try @@ -173,7 +161,7 @@ namespace WulaFallenEmpire if (!CanCallSkyfaller) { // 显示相应的错误消息 - if (!HasRequiredFlyOver) + if (!HasRequiredFlyOver && Props.requireFlyOver) // 只在需要 FlyOver 时才显示此消息 { Messages.Message("WULA_NoBuildingDropperFlyOver".Translate(), parent, MessageTypeDefOf.RejectInput); } @@ -284,7 +272,8 @@ namespace WulaFallenEmpire { string desc = "WULA_CallSkyfallerDesc".Translate(); - if (!HasRequiredFlyOver) + // 只在需要 FlyOver 时显示相关描述 + if (Props.requireFlyOver && !HasRequiredFlyOver) { desc += $"\n{"WULA_RequiresBuildingDropperFlyOver".Translate()}"; } @@ -311,7 +300,8 @@ namespace WulaFallenEmpire private string GetDisabledReason() { - if (!HasRequiredFlyOver) + // 只在需要 FlyOver 时检查并显示相关原因 + if (Props.requireFlyOver && !HasRequiredFlyOver) { return "WULA_NoBuildingDropperFlyOver".Translate(); } @@ -354,8 +344,8 @@ namespace WulaFallenEmpire { string status = "WULA_ReadyToCallSkyfaller".Translate(); - // 添加条件信息 - if (!HasRequiredFlyOver) + // 只在需要 FlyOver 时显示相关条件信息 + if (Props.requireFlyOver && !HasRequiredFlyOver) { status += $"\n{"WULA_MissingBuildingDropperFlyOver".Translate()}"; } diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index b8792d7b..5c820a85 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -112,6 +112,7 @@ +