From 94a099c774f25b2dd5f0c6b8277ce32d26ff94b5 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Mon, 21 Jul 2025 20:36:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/Assemblies/WulaFallenEmpire.dll | Bin 57856 -> 54272 bytes .../HediffDefs/Hediffs_WULA_Emergency.xml | 6 +- 1.6/Defs/JobDefs/WULA_Jobs_Emergency.xml | 12 +++ 1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml | 2 +- .../.vs/WulaFallenEmpire/v17/.suo | Bin 78848 -> 77312 bytes Source/WulaFallenEmpire/CompWulaShieldBelt.cs | 77 +++--------------- .../EmergencyAbilityPatches.cs | 22 ++--- Source/WulaFallenEmpire/IngestPatch.cs | 54 ++++++++---- .../JobDriver_CastEmergencyEnergyRestore.cs | 32 ++++++++ .../JobGiver_WulaGetEnergy.cs | 4 + .../WulaFallenEmpire/WulaFallenEmpire.csproj | 1 + 11 files changed, 104 insertions(+), 106 deletions(-) create mode 100644 1.6/Defs/JobDefs/WULA_Jobs_Emergency.xml create mode 100644 Source/WulaFallenEmpire/JobDriver_CastEmergencyEnergyRestore.cs diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index 5cc44fa7f9571fbbca692c32ffcdb9bade9e13f6..76101c875dfa68c4652b489c098841136ee6e529 100644 GIT binary patch delta 25382 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 literal 57856 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 B&?Eo= diff --git a/1.6/Defs/HediffDefs/Hediffs_WULA_Emergency.xml b/1.6/Defs/HediffDefs/Hediffs_WULA_Emergency.xml index e8da5c8d..dfe9031e 100644 --- a/1.6/Defs/HediffDefs/Hediffs_WULA_Emergency.xml +++ b/1.6/Defs/HediffDefs/Hediffs_WULA_Emergency.xml @@ -23,13 +23,9 @@ Consciousness 1.0 -
  • - Moving - 1.0 -
  • - \ No newline at end of file + diff --git a/1.6/Defs/JobDefs/WULA_Jobs_Emergency.xml b/1.6/Defs/JobDefs/WULA_Jobs_Emergency.xml new file mode 100644 index 00000000..619ddd3d --- /dev/null +++ b/1.6/Defs/JobDefs/WULA_Jobs_Emergency.xml @@ -0,0 +1,12 @@ + + + + + WULA_CastEmergencyEnergyRestore + WulaFallenEmpire.JobDriver_CastEmergencyEnergyRestore + activating emergency energy restore. + false + true + + + diff --git a/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml b/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml index 2c2d26b7..b7ca98e0 100644 --- a/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml +++ b/1.6/Defs/ThinkTreeDefs/WULA_ThinkTrees.xml @@ -6,7 +6,7 @@
  • - 0.3 + 0.5 0.1 5.0 9.5 diff --git a/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo b/Source/WulaFallenEmpire/.vs/WulaFallenEmpire/v17/.suo index 9017a721243e5461e768628ee818c2d6c907935b..695c7b1c678cdef51274b9d268ce6313f4a2c970 100644 GIT binary patch delta 1886 zcmbtUZ%kWN6o2Qng;L&wQdkS?pB02sOxtygAiB)8u2Ez&w2>jAiA2~ZbrN}HIx|~l zG85Cx@s8WW_(4+>T#N?kOYA~sV8VwPjeb}a{1g2)iGEokBx6zQx#d+GWroF@{Ce&= z=ic+q@0`<{T-7JP*Po3-(`?MnS6%0af8BfYI|y?em-OHXz6T?^AiSZj^OXP%2zpyW zBwt=ze~`3jx|yV1+gFfm)%LX{>j_p(XLmfbuOpNZ1cIBeli(tZ6KsS=!X1R)>3oPJ zyGN@m?;xdlGByk*1j8aYCu6m^VmK#${MM~=myO0mgBGlqbUEpj1U+Fhc0TW>JtM;O z8ci}HEU8i=EXGzu*gZysNw!LeSpQB<*~>|jI;1tL|OM7**oDzez;DUL#zQe&of zAY(oVBCxBV#m9+;W|V4DvNs~^AR8+t^E10D2}uCEx-RMfjJOea5!x_b-HS_QL4%hL zdU2!XDWOP%l@v!UZhYNRr@xaF^@7C+M&>@pTo-GnZZ9R51g#i%C7=b@T?xZ+3KGW` z_8$_eX%`?A6E(1E@#;oHIWJe;_-Cq>g;ePTEesFrQeB^nf%qh8tOyKVoSk=z0d9qMhpwazV`39K8+7-MHkmDk%?iC@ula>R{6}=vbJSa!x#%tHU=5>3$0i z=34P`E`T$+n#@-rkfRY{FMXC3wMbKyqA8HA5rGYnuEc?owHFs{dvMK~1P{h-GuZ5Q z3+!HJ$uU)Or(m+rjAmERyzznI@q^;4XWpyGc>M2*pR`c9e{(9G>t$D8e4vca$6wj*+6@jK|46R|>hT_4MHtTNfq|CDWa} zyzLn(FU$}Tns?e&>pedM-Z$Xd_NbI=qk@m-`nPIlI>cx0jer_yxx~xe1G9Y>AQO}T zr3X^~vmupQ-c$+>^LKrt3^jtI@%eD?%IaL(XNq}fQn)zx%cqMETOZ4gyJm)+ue8mF zvm8AW-lgHekyeLqTD(3Nt6pw;c9b=mTCmkaO%kE z7UPKeTkLGRn(C7((r5b93w-9p`!COyE_#CaBLQ9k8IA wu7Wy6_CaTMya{^r>_M<779Rw%3mym=FnzfbhaBe>!B4Nnhm8kOod$y;-GC>BKBE1`*CBCrE5eT{aKbB!|u2cd$%HswU~4RhsWEZ5hFHj`5s zk?fpLBpWB8knjM$?Fg3d%z5o1dK=+(LboDU*?V&e4%bI~Sdp9j_v(bh#NS64(aA=M zA0zPI_Y*y+$lIGABjyzXN6N2p`ai0Z9V7l(MQ&4zLvThLEq)8=xK(RV%$A3~fLn`N z;{es#TB#9W9M^6A5?8`gz(KR)(tM*nwNrri-I4cmW1j!An_FN zZW$PH)R-DbfHsFyd)HwG^WmHtKQ5cmZOqjrnMq?L~m3iG}IzzTNy&#IMCaABSjUR9mJq%by3CNshFJC~m z!3BIXCIsAQ>XTUcFBJ}1vTi)KdG~D1lNh&|(cJneE(t!&w1y;}xOSac!Nc@p1w7eC zw?yz49HCzm;6`aLZ;sqgWDoaA_%CPK69u;Gom8b|GvAB+W-ud#akqYqU;oW1-KSn&F;&IyLAU<(Je|Aju4?|J*G)ZmHu5{iB65nBdldjbi z4JJ|nA=M>ZZHi^jC_9~h&7V3U z%-@}8#hI|L_(zXt&S2OZtpNNyyurOP@Ic=&*d5l+J>Nct={*50kWRz=_lk(h;y9jv zT-3yizZzi>;ajf;>w7^n{v0rA@-I(=m7IYC@H!aS)Skcmfsh;lC@x$*TTF6sVX72f zH>WNO$pLzb7P<M1!vOXhKYraI_NVkq+1{Wvo0_tEO?JBZ{p7|T VBAS1X`2CC!{^oF@%=bU1`vbjn)(iju diff --git a/Source/WulaFallenEmpire/CompWulaShieldBelt.cs b/Source/WulaFallenEmpire/CompWulaShieldBelt.cs index 46ff596c..7339e8f7 100644 --- a/Source/WulaFallenEmpire/CompWulaShieldBelt.cs +++ b/Source/WulaFallenEmpire/CompWulaShieldBelt.cs @@ -14,7 +14,6 @@ namespace WulaFallenEmpire private int lastKeepDisplayTick = -9999; private Vector3 impactAngleVect; private int lastAbsorbDamageTick = -9999; - private bool shieldEnabled = false; private Sustainer sustainer; // 静态构造函数加载材质 private static readonly Material BubbleMat = MaterialPool.MatFrom("Other/ShieldBubble", ShaderDatabase.Transparent, Color.white); @@ -23,7 +22,6 @@ namespace WulaFallenEmpire public float ShieldHitPoints => shieldHitPoints; public float ShieldMaxHitPoints => Props.maxShieldHitPoints; - public bool ShieldEnabled => shieldEnabled; private bool ShouldDisplay { @@ -39,7 +37,6 @@ namespace WulaFallenEmpire base.PostExposeData(); Scribe_Values.Look(ref shieldHitPoints, "shieldHitPoints", 0f); Scribe_Values.Look(ref ticksToReset, "ticksToReset", -1); - Scribe_Values.Look(ref shieldEnabled, "shieldEnabled", Props.startEnabled); } public override void PostSpawnSetup(bool respawningAfterLoad) @@ -48,7 +45,6 @@ namespace WulaFallenEmpire if (!respawningAfterLoad) { shieldHitPoints = Props.maxShieldHitPoints; - shieldEnabled = Props.startEnabled; } } @@ -59,19 +55,11 @@ namespace WulaFallenEmpire Pawn wearer = GetWearer(); if (wearer == null) return; - if (shieldEnabled) + if (sustainer == null && Props.activeSound != null) { - if (sustainer == null && Props.activeSound != null) - { - sustainer = Props.activeSound.TrySpawnSustainer(SoundInfo.InMap(wearer, MaintenanceType.PerTick)); - } - sustainer?.Maintain(); - } - else - { - sustainer?.End(); - sustainer = null; + sustainer = Props.activeSound.TrySpawnSustainer(SoundInfo.InMap(wearer, MaintenanceType.PerTick)); } + sustainer?.Maintain(); if (ticksToReset > 0) { @@ -81,7 +69,7 @@ namespace WulaFallenEmpire Reset(); } } - else if (shieldEnabled && Props.useHitPointsMode && shieldHitPoints < Props.maxShieldHitPoints) + else if (Props.useHitPointsMode && shieldHitPoints < Props.maxShieldHitPoints) { shieldHitPoints += Props.rechargeRate / 60f; // 每秒恢复 if (shieldHitPoints > Props.maxShieldHitPoints) @@ -94,7 +82,7 @@ namespace WulaFallenEmpire public override void PostDraw() { base.PostDraw(); - if (shieldEnabled && ShouldDisplay) + if (ShouldDisplay) { float num = Mathf.Lerp(1.2f, 1.55f, shieldHitPoints / Props.maxShieldHitPoints); Vector3 drawPos = GetWearer().Drawer.DrawPos; @@ -143,9 +131,6 @@ namespace WulaFallenEmpire public bool CheckIntercept(Projectile projectile, Vector3 lastExactPos, Vector3 newExactPos) { - if (!shieldEnabled) - return false; - // 如果使用生命值模式且护盾已破坏,则不拦截 if (Props.useHitPointsMode && shieldHitPoints <= 0f) return false; @@ -200,7 +185,7 @@ namespace WulaFallenEmpire public bool CheckMeleeIntercept(DamageInfo dinfo, Pawn attacker) { - if (!shieldEnabled || !Props.interceptMeleeAttacks || shieldHitPoints <= 0f) + if (!Props.interceptMeleeAttacks || shieldHitPoints <= 0f) return false; Pawn wearer = GetWearer(); @@ -291,23 +276,6 @@ namespace WulaFallenEmpire shieldHitPoints = Props.maxShieldHitPoints; } - public void ToggleShield() - { - shieldEnabled = !shieldEnabled; - - Pawn wearer = GetWearer(); - if (wearer != null) - { - string message = shieldEnabled ? $"{wearer.LabelShort}激活了护盾" : $"{wearer.LabelShort}关闭了护盾"; - Messages.Message(message, MessageTypeDefOf.NeutralEvent, false); - } - - if (!shieldEnabled) - { - sustainer?.End(); - sustainer = null; - } - } private Pawn GetWearer() { @@ -323,43 +291,18 @@ namespace WulaFallenEmpire { base.Initialize(props); shieldHitPoints = ((CompProperties_WulaShieldBelt)props).maxShieldHitPoints; - shieldEnabled = ((CompProperties_WulaShieldBelt)props).startEnabled; - } - - public override IEnumerable CompGetWornGizmosExtra() - { - // 确保穿戴者存在 - Pawn wearer = GetWearer(); - if (wearer == null) yield break; - - // 不限制只有选中时才显示 - yield return new Command_Toggle - { - defaultLabel = "护盾开关", - defaultDesc = shieldEnabled ? "关闭护盾" : "激活护盾", - icon = ContentFinder.Get("UI/Commands/DesirePower"), - isActive = () => shieldEnabled, - toggleAction = ToggleShield - }; } public override string CompInspectStringExtra() { - if (shieldEnabled) + if (Props.useHitPointsMode) { - if (Props.useHitPointsMode) - { - return $"护盾: {shieldHitPoints:F0} / {Props.maxShieldHitPoints} (生命值模式)"; - } - else - { - return "护盾: 激活 (偏转模式)"; - } + return $"护盾: {shieldHitPoints:F0} / {Props.maxShieldHitPoints} (生命值模式)"; } else { - return "护盾: 已关闭"; + return "护盾: 激活 (偏转模式)"; } } } -} \ No newline at end of file +} diff --git a/Source/WulaFallenEmpire/EmergencyAbilityPatches.cs b/Source/WulaFallenEmpire/EmergencyAbilityPatches.cs index c18f4e08..e0dbfefe 100644 --- a/Source/WulaFallenEmpire/EmergencyAbilityPatches.cs +++ b/Source/WulaFallenEmpire/EmergencyAbilityPatches.cs @@ -18,15 +18,16 @@ namespace WulaFallenEmpire { if (__instance.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] CanCast_Postfix for {__instance.pawn?.LabelShort}, initial result: {__result.Accepted}, reason: {__result.Reason}"); - if (!__result.Accepted) + var comp = __instance.CompOfType(); + if (comp != null && comp.Props.requireDowned) { - // 检查是否是因为pawn失去知觉而无法使用能力 - if (__instance.pawn.Downed) + if (!__instance.pawn.Downed) + { + __result = new AcceptanceReport("只能在倒地时使用"); + } + else { - // 对于紧急能量恢复能力,我们允许在倒地时使用 __result = true; - Log.Message($"[EmergencyAbilityPatches] CanCast_Postfix: Pawn is downed, overriding to true. New result: {__result.Accepted}"); } } } @@ -58,7 +59,6 @@ namespace WulaFallenEmpire { if (__instance.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] GizmoDisabled_Postfix for {__instance.pawn?.LabelShort}, initial result: {__result}, reason: {reason}"); if (__result) { // 检查是否是因为倒地而被禁用 @@ -68,7 +68,6 @@ namespace WulaFallenEmpire // 对于紧急能量恢复能力,我们允许在倒地时使用 __result = false; reason = null; - Log.Message($"[EmergencyAbilityPatches] GizmoDisabled_Postfix: Pawn is downed, overriding to false. New result: {__result}"); } } } @@ -82,12 +81,10 @@ namespace WulaFallenEmpire var ability = (Ability)typeof(Command_Ability).GetField("ability", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(__instance); if (ability.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] Command_Ability_GizmoDisabled_Postfix for {ability.pawn?.LabelShort}, initial result: {__result}"); if (__result && ability.pawn.Downed) { // 对于紧急能量恢复能力,我们允许在倒地时使用 __result = false; - Log.Message($"[EmergencyAbilityPatches] Command_Ability_GizmoDisabled_Postfix: Pawn is downed, overriding to false. New result: {__result}"); } } } @@ -97,10 +94,8 @@ namespace WulaFallenEmpire [HarmonyPostfix] public static void ApparelPreventsShooting_Postfix(Verb __instance, ref bool __result) { - Log.Message($"[EmergencyAbilityPatches] ApparelPreventsShooting_Postfix called. Verb type: {__instance.GetType().Name}, Caster: {__instance.CasterPawn?.LabelShort}, initial result: {__result}"); if (__instance is Verb_CastAbility castAbilityVerb && castAbilityVerb.ability?.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] ApparelPreventsShooting_Postfix for EmergencyEnergyRestore. Pawn: {__instance.CasterPawn?.LabelShort}, result: {__result}"); } } @@ -109,10 +104,8 @@ namespace WulaFallenEmpire [HarmonyPrefix] public static void TryStartCastOn_DiagnosticPrefix(Verb __instance, LocalTargetInfo castTarg, LocalTargetInfo destTarg, ref bool __result) { - Log.Message($"[EmergencyAbilityPatches] TryStartCastOn_DiagnosticPrefix called for Verb type: {__instance.GetType().Name}. Caster: {__instance.CasterPawn?.LabelShort}. CastTarg: {castTarg}, DestTarg: {destTarg}"); if (__instance is Verb_CastAbility castAbilityVerb && castAbilityVerb.ability?.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] TryStartCastOn_DiagnosticPrefix: This is EmergencyEnergyRestore ability. Caster: {__instance.CasterPawn?.LabelShort}"); } } @@ -123,7 +116,6 @@ namespace WulaFallenEmpire { if (__instance.ability?.def.defName == "WULA_EmergencyEnergyRestore") { - Log.Message($"[EmergencyAbilityPatches] TryCastShot_DiagnosticPrefix called for EmergencyEnergyRestore. Pawn: {__instance.CasterPawn?.LabelShort}"); } } } diff --git a/Source/WulaFallenEmpire/IngestPatch.cs b/Source/WulaFallenEmpire/IngestPatch.cs index af814034..cd1813c5 100644 --- a/Source/WulaFallenEmpire/IngestPatch.cs +++ b/Source/WulaFallenEmpire/IngestPatch.cs @@ -12,17 +12,23 @@ namespace WulaFallenEmpire [HarmonyPrefix] public static bool Prefix(Pawn p, ThingDef food, ref bool __result) { - // 检查是否是乌拉族 - if (p.def.defName == "WulaSpecies") + // 检查食物是否是能量核心 + ThingDefExtension_EnergySource ext = food.GetModExtension(); + if (ext != null) { - // 检查食物是否是能量核心 - ThingDefExtension_EnergySource ext = food.GetModExtension(); - if (ext != null) + // 如果是能量核心 + if (p.def.defName == "WulaSpecies") { - // 如果是乌拉族且是能量核心,则认为愿意吃 + // 如果是乌拉族,则认为愿意吃 __result = true; return false; // 跳过原版方法 } + else + { + // 如果不是乌拉族,则不允许吃能量核心 + __result = false; + return false; // 跳过原版方法 + } } return true; // 继续执行原版方法 } @@ -35,17 +41,23 @@ namespace WulaFallenEmpire [HarmonyPrefix] public static bool Prefix(Pawn p, Thing food, ref bool __result) { - // 检查是否是乌拉族 - if (p.def.defName == "WulaSpecies") + // 检查食物是否是能量核心 + ThingDefExtension_EnergySource ext = food.def.GetModExtension(); + if (ext != null) { - // 检查食物是否是能量核心 - ThingDefExtension_EnergySource ext = food.def.GetModExtension(); - if (ext != null) + // 如果是能量核心 + if (p.def.defName == "WulaSpecies") { - // 如果是乌拉族且是能量核心,则认为愿意吃 + // 如果是乌拉族,则认为愿意吃 __result = true; return false; // 跳过原版方法 } + else + { + // 如果不是乌拉族,则不允许吃能量核心 + __result = false; + return false; // 跳过原版方法 + } } return true; // 继续执行原版方法 } @@ -58,17 +70,23 @@ namespace WulaFallenEmpire [HarmonyPrefix] public static bool Prefix(Pawn p, ThingDef food, ref bool __result) { - // 检查是否是乌拉族 - if (p.def.defName == "WulaSpecies") + // 检查食物是否是能量核心 + ThingDefExtension_EnergySource ext = food.GetModExtension(); + if (ext != null) { - // 检查食物是否是能量核心 - ThingDefExtension_EnergySource ext = food.GetModExtension(); - if (ext != null) + // 如果是能量核心 + if (p.def.defName == "WulaSpecies") { - // 如果是乌拉族且是能量核心,则认为食物是合适的 + // 如果是乌拉族,则认为食物是合适的 __result = true; return false; // 跳过原版方法 } + else + { + // 如果不是乌拉族,则认为食物不合适 + __result = false; + return false; // 跳过原版方法 + } } return true; // 继续执行原版方法 } diff --git a/Source/WulaFallenEmpire/JobDriver_CastEmergencyEnergyRestore.cs b/Source/WulaFallenEmpire/JobDriver_CastEmergencyEnergyRestore.cs new file mode 100644 index 00000000..4f9bcf4b --- /dev/null +++ b/Source/WulaFallenEmpire/JobDriver_CastEmergencyEnergyRestore.cs @@ -0,0 +1,32 @@ +using System.Collections.Generic; +using Verse; +using Verse.AI; +using RimWorld; // Added for AbilityDef + +namespace WulaFallenEmpire +{ + public class JobDriver_CastEmergencyEnergyRestore : JobDriver + { + public override bool TryMakePreToilReservations(bool errorOnFailed) + { + return true; + } + + protected override IEnumerable MakeNewToils() + { + this.FailOnDespawnedOrNull(TargetIndex.A); + yield return new Toil + { + initAction = delegate + { + var ability = pawn.abilities.GetAbility(DefDatabase.GetNamed("WULA_EmergencyEnergyRestore")); + if (ability != null) + { + ability.Activate(pawn.Position, pawn); + } + }, + defaultCompleteMode = ToilCompleteMode.Instant + }; + } + } +} diff --git a/Source/WulaFallenEmpire/JobGiver_WulaGetEnergy.cs b/Source/WulaFallenEmpire/JobGiver_WulaGetEnergy.cs index e2c0e1e9..c75c56b4 100644 --- a/Source/WulaFallenEmpire/JobGiver_WulaGetEnergy.cs +++ b/Source/WulaFallenEmpire/JobGiver_WulaGetEnergy.cs @@ -48,6 +48,10 @@ namespace WulaFallenEmpire protected override Job TryGiveJob(Pawn pawn) { + if (pawn.Downed) + { + return null; + } Need_WulaEnergy energyNeed = pawn.needs.TryGetNeed(); if (energyNeed == null || energyNeed.CurLevelPercentage > minEnergyLevelPercentage) { diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index 847349bc..4bb48509 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -88,6 +88,7 @@ +