From 588fff3cdd99d9f16fed678c30505072ef25c5a5 Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Wed, 23 Jul 2025 16:54:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=BD=E9=87=8F=E6=A0=B8=E5=BF=832=E8=A1=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/Assemblies/WulaFallenEmpire.dll | Bin 42496 -> 45568 bytes 1.6/Defs/ThingDefs/WULA_Item.xml | 7 ++ .../WulaCaravanEnergyDefs.xml | 11 +++ .../WulaHullDef.xml | 0 About/PublishedFileId.txt | 2 +- ..._NeedsTracker_TrySatisfyPawnNeeds_Patch.cs | 70 ++++++++++++++++++ .../FloatMenuOptionProvider_Ingest_Patch.cs | 21 ++++++ .../JobDriver_FeedWulaPatient.cs | 39 +++++++++- .../JobDriver_IngestWulaEnergy.cs | 39 +++++++++- .../WulaFallenEmpire/WulaCaravanEnergyDef.cs | 11 +++ .../WulaFallenEmpire/WulaFallenEmpire.csproj | 5 +- 11 files changed, 201 insertions(+), 4 deletions(-) create mode 100644 1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml rename 1.6/Defs/{WulaHullDefs => WulaMiscSettingDefs}/WulaHullDef.xml (100%) create mode 100644 Source/WulaFallenEmpire/HarmonyPatches/Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs create mode 100644 Source/WulaFallenEmpire/HarmonyPatches/FloatMenuOptionProvider_Ingest_Patch.cs create mode 100644 Source/WulaFallenEmpire/WulaCaravanEnergyDef.cs diff --git a/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/Assemblies/WulaFallenEmpire.dll index 08ded61b322dd2a34f179928fe5dc82ab3fa2bb8..23dcb6dccde4cfdfdf49cf761e04aaa32930d5e4 100644 GIT binary patch literal 45568 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 delta 20576 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 OX!kw-7in`p+y4R$Sm`GK diff --git a/1.6/Defs/ThingDefs/WULA_Item.xml b/1.6/Defs/ThingDefs/WULA_Item.xml index 0a1458cb..78871d87 100644 --- a/1.6/Defs/ThingDefs/WULA_Item.xml +++ b/1.6/Defs/ThingDefs/WULA_Item.xml @@ -32,6 +32,13 @@ 200 None + +

  • + WULA_IngestWulaEnergy + 从能量核心中摄取能量 + true +
  • +
  • 12.0 diff --git a/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml b/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml new file mode 100644 index 00000000..a46109e1 --- /dev/null +++ b/1.6/Defs/WulaMiscSettingDefs/WulaCaravanEnergyDefs.xml @@ -0,0 +1,11 @@ + + + + WulaCaravanEnergySettings + + + 0.3 + WULA_Charge_Cube + WULA_ChargingHediff + + diff --git a/1.6/Defs/WulaHullDefs/WulaHullDef.xml b/1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml similarity index 100% rename from 1.6/Defs/WulaHullDefs/WulaHullDef.xml rename to 1.6/Defs/WulaMiscSettingDefs/WulaHullDef.xml diff --git a/About/PublishedFileId.txt b/About/PublishedFileId.txt index 1f3d0fca..5f6f9042 100644 --- a/About/PublishedFileId.txt +++ b/About/PublishedFileId.txt @@ -1 +1 @@ -3296602837 \ No newline at end of file +3528588530 \ No newline at end of file diff --git a/Source/WulaFallenEmpire/HarmonyPatches/Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs b/Source/WulaFallenEmpire/HarmonyPatches/Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs new file mode 100644 index 00000000..55658735 --- /dev/null +++ b/Source/WulaFallenEmpire/HarmonyPatches/Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch.cs @@ -0,0 +1,70 @@ +using HarmonyLib; +using RimWorld; +using RimWorld.Planet; +using Verse; + +namespace WulaFallenEmpire.HarmonyPatches +{ + [HarmonyPatch(typeof(Caravan_NeedsTracker), "TrySatisfyPawnNeeds")] + public static class Caravan_NeedsTracker_TrySatisfyPawnNeeds_Patch + { + [HarmonyPostfix] + public static void Postfix(Caravan_NeedsTracker __instance, Pawn pawn) + { + // Check if the pawn is valid and has needs + if (pawn == null || pawn.Dead || pawn.needs == null) + { + return; + } + + // Try to get the custom energy need + Need_WulaEnergy wulaEnergyNeed = pawn.needs.TryGetNeed(); + if (wulaEnergyNeed == null) + { + return; + } + + // Get settings from XML + WulaCaravanEnergyDef settings = DefDatabase.GetNamed("WulaCaravanEnergySettings", false); + if (settings == null) + { + // Log an error only once to avoid spamming the log + Log.ErrorOnce("[WulaFallenEmpire] WulaCaravanEnergySettings Def not found. Caravan energy consumption will not work.", "WulaCaravanEnergySettingsNotFound".GetHashCode()); + return; + } + + // Check if the pawn is already charging, if so, do nothing. + if (pawn.health.hediffSet.HasHediff(HediffDef.Named(settings.hediffDefNameToAdd))) + { + return; + } + + // Check if the pawn actually needs energy, based on the threshold from XML. + if (wulaEnergyNeed.CurLevelPercentage >= settings.consumeThreshold) + { + return; + } + + // Find an energy core in the caravan's inventory based on the defName from XML + Thing energyCore = CaravanInventoryUtility.AllInventoryItems(__instance.caravan).FirstOrFallback((Thing t) => t.def.defName == settings.energyItemDefName); + + if (energyCore != null) + { + // "Ingest" the energy core by applying the hediff, mimicking the IngestionOutcomeDoer. + Hediff hediff = HediffMaker.MakeHediff(HediffDef.Named(settings.hediffDefNameToAdd), pawn); + hediff.Severity = 1.0f; + pawn.health.AddHediff(hediff); + + // Instead of destroying the core, we replace it with a used one. + + // 1. Consume one energy core from the stack + energyCore.SplitOff(1).Destroy(); + + // 2. Add one used energy core to the caravan inventory + Thing usedCore = ThingMaker.MakeThing(ThingDef.Named("WULA_Charge_Cube_No_Power")); + usedCore.stackCount = 1; + CaravanInventoryUtility.GiveThing(__instance.caravan, usedCore); + } + } + } +} diff --git a/Source/WulaFallenEmpire/HarmonyPatches/FloatMenuOptionProvider_Ingest_Patch.cs b/Source/WulaFallenEmpire/HarmonyPatches/FloatMenuOptionProvider_Ingest_Patch.cs new file mode 100644 index 00000000..d4445a5b --- /dev/null +++ b/Source/WulaFallenEmpire/HarmonyPatches/FloatMenuOptionProvider_Ingest_Patch.cs @@ -0,0 +1,21 @@ +using HarmonyLib; +using RimWorld; +using Verse; + +namespace WulaFallenEmpire.HarmonyPatches +{ + [HarmonyPatch(typeof(FloatMenuOptionProvider_Ingest), "GetSingleOptionFor")] + public static class FloatMenuOptionProvider_Ingest_GetSingleOptionFor_Patch + { + [HarmonyPostfix] + public static void Postfix(ref FloatMenuOption __result, Thing clickedThing) + { + // If the standard "Ingest" option is for our energy core, nullify it. + // Our custom "摄取能量" option is added by CompUsable and is not affected by this provider. + if (__result != null && clickedThing != null && clickedThing.def.defName == "WULA_Charge_Cube") + { + __result = null; + } + } + } +} diff --git a/Source/WulaFallenEmpire/JobDriver_FeedWulaPatient.cs b/Source/WulaFallenEmpire/JobDriver_FeedWulaPatient.cs index 07e5d124..45160fb3 100644 --- a/Source/WulaFallenEmpire/JobDriver_FeedWulaPatient.cs +++ b/Source/WulaFallenEmpire/JobDriver_FeedWulaPatient.cs @@ -44,7 +44,44 @@ namespace WulaFallenEmpire yield return Toils_Goto.GotoThing(PatientInd, PathEndMode.Touch); yield return Toils_Ingest.ChewIngestible(Patient, 1.5f, FoodSourceInd, TargetIndex.None).FailOnCannotTouch(PatientInd, PathEndMode.Touch); - yield return Toils_Ingest.FinalizeIngest(Patient, FoodSourceInd); + + // Custom Finalize Ingest Logic + Toil finalizeToil = new Toil(); + finalizeToil.initAction = delegate + { + Pawn patient = Patient; + Thing food = Food; + if (patient == null || food == null) + { + return; + } + + // If it's not an energy core, use the default vanilla method. + if (food.def.defName != "WULA_Charge_Cube") + { + patient.needs.food.CurLevel += FoodUtility.GetNutrition(patient, food, food.def); + } + else + { + // Our custom logic for energy core + // 1. Apply the charging hediff + Hediff hediff = HediffMaker.MakeHediff(HediffDef.Named("WULA_ChargingHediff"), patient); + hediff.Severity = 1.0f; + patient.health.AddHediff(hediff); + + // 2. Spawn the used core + Thing usedCore = ThingMaker.MakeThing(ThingDef.Named("WULA_Charge_Cube_No_Power")); + GenPlace.TryPlaceThing(usedCore, pawn.Position, pawn.Map, ThingPlaceMode.Near); + } + + // Destroy the food item (it has been carried by the feeder) + if (!food.Destroyed) + { + food.Destroy(); + } + }; + finalizeToil.defaultCompleteMode = ToilCompleteMode.Instant; + yield return finalizeToil; } } } diff --git a/Source/WulaFallenEmpire/JobDriver_IngestWulaEnergy.cs b/Source/WulaFallenEmpire/JobDriver_IngestWulaEnergy.cs index d149644c..91be7094 100644 --- a/Source/WulaFallenEmpire/JobDriver_IngestWulaEnergy.cs +++ b/Source/WulaFallenEmpire/JobDriver_IngestWulaEnergy.cs @@ -67,7 +67,44 @@ namespace WulaFallenEmpire } yield return chew; - yield return Toils_Ingest.FinalizeIngest(pawn, IngestibleSourceInd); + + // Custom Finalize Ingest Logic + Toil finalizeToil = new Toil(); + finalizeToil.initAction = delegate + { + Pawn ingester = pawn; + Thing ingestible = IngestibleSource; + if (ingester == null || ingestible == null) + { + return; + } + + // If it's not an energy core, use the default vanilla method for safety, though this job should only target energy cores. + if (ingestible.def.defName != "WULA_Charge_Cube") + { + ingester.needs.food.CurLevel += FoodUtility.GetNutrition(ingester, ingestible, ingestible.def); + } + else + { + // Our custom logic for energy core + // 1. Apply the charging hediff + Hediff hediff = HediffMaker.MakeHediff(HediffDef.Named("WULA_ChargingHediff"), ingester); + hediff.Severity = 1.0f; + ingester.health.AddHediff(hediff); + + // 2. Spawn the used core + Thing usedCore = ThingMaker.MakeThing(ThingDef.Named("WULA_Charge_Cube_No_Power")); + GenPlace.TryPlaceThing(usedCore, ingester.Position, ingester.Map, ThingPlaceMode.Near); + } + + // Destroy the original food item + if (!ingestible.Destroyed) + { + ingestible.Destroy(); + } + }; + finalizeToil.defaultCompleteMode = ToilCompleteMode.Instant; + yield return finalizeToil; } private IEnumerable PrepareToIngestToils(Toil chewToil) diff --git a/Source/WulaFallenEmpire/WulaCaravanEnergyDef.cs b/Source/WulaFallenEmpire/WulaCaravanEnergyDef.cs new file mode 100644 index 00000000..8d76d81b --- /dev/null +++ b/Source/WulaFallenEmpire/WulaCaravanEnergyDef.cs @@ -0,0 +1,11 @@ +using Verse; + +namespace WulaFallenEmpire +{ + public class WulaCaravanEnergyDef : Def + { + public float consumeThreshold = 0.9f; + public string energyItemDefName; + public string hediffDefNameToAdd; + } +} diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index 21f71995..97b2c355 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -83,6 +83,9 @@ + + + @@ -91,4 +94,4 @@ - + \ No newline at end of file