From b21de9de915970556b96d1d14a0dc3084f730f9d Mon Sep 17 00:00:00 2001 From: "ProjectKoi-Kalo\\Kalo" Date: Tue, 2 Sep 2025 17:52:41 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=95=E6=99=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1.6/1.6/Assemblies/ArachnaeSwarm.dll | Bin 42496 -> 43008 bytes .../Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml | 13 + .../Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml | 2 +- 1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml | 454 ++++++++++++++++-- Source/ArachnaeSwarm/ArachnaeSwarm.csproj | 2 + .../ArachnaeSwarm/CompAnimalWorkSettings.cs | 49 ++ Source/ArachnaeSwarm/CompInstantTrain.cs | 11 +- .../CompProperties_AnimalWorkSettings.cs | 25 + 8 files changed, 514 insertions(+), 42 deletions(-) create mode 100644 Source/ArachnaeSwarm/CompAnimalWorkSettings.cs create mode 100644 Source/ArachnaeSwarm/CompProperties_AnimalWorkSettings.cs diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 3559f7ae5e1379f7b2de5ce26210e5760ee80d1b..9aac5afea005fe0dc0243553ed4ef5b5e6bce2a9 100644 GIT binary patch delta 15370 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 diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml index a958794..1859908 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceBaseSwarm.xml @@ -21,6 +21,19 @@
  • ARA_PlantCutting
  • +
  • + +
  • + ARA_Sowing + Growing +
  • +
  • + ARA_PlantCutting + PlantCutting +
  • + + +
  • diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml index 26169ce..803da3a 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml @@ -508,7 +508,7 @@ 9999
  • - Spelopede + ArachnaeBase_Race_Scavenger 3 6000
  • diff --git a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml index 8523c7a..8f310ad 100644 --- a/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml +++ b/1.6/1.6/Defs/ThinkTreeDefs/ARA_ThinkTrees.xml @@ -5,9 +5,10 @@ ARA_Insect_WithPlanting - +
  • +
  • true
  • @@ -101,34 +102,6 @@ Insect_PreMain - -
  • - -
  • - TrainedAnimalBehavior - -
  • - Growing -
  • -
    - - - - - -
  • - -
  • - TrainedAnimalBehavior - -
  • - PlantCutting -
  • - - - - -
  • true @@ -230,7 +203,7 @@
  • RestingForMedicalReasons -
  • +
  • @@ -258,8 +231,10 @@ SatisfyBasicNeeds +
  • +
  • @@ -360,6 +335,31 @@ Insect_PreWander
  • + +
  • + +
  • + TrainedAnimalBehavior + +
  • + +
  • + + + + + +
  • + +
  • + TrainedAnimalBehavior + +
  • + +
  • + + +
  • @@ -388,7 +388,7 @@
  • 0.1 -
  • +
  • None 120~240 500 @@ -568,4 +568,394 @@
  • - HighPriority \ No newline at end of file + HighPriority + +
  • + LordDuty +
  • + + + + +
  • + Humanlike_PostDuty +
  • + + +
  • + 2.5 + +
  • + +
  • ARA_InteractiveEggSac
  • + + + + +
  • + +
  • ARA_InteractiveEggSac
  • + + true + + + + +
  • + true + + +
  • + true + + +
  • + Idle + +
  • + Deadly +
  • + + + + +
  • + Escaping + +
  • + +
  • + + + + +
  • + +
  • + Misc + +
  • + Walk +
  • + + + + + +
  • + RestingForMedicalReasons + +
  • + +
  • + +
  • + ChangingApparel + +
  • + +
  • + +
  • + SatisfyingNeeds + +
  • + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
  • +
  • + +
  • +
  • + +
  • + + + + +
  • + + +
  • + true + +
  • + Escaping + +
  • + +
  • + + + +
  • + Idle + +
  • + Deadly +
  • + + + + + +
  • + Idle + +
  • + Deadly +
  • + + + +
  • + +
  • + + +
  • + + +
  • + + +
  • +
  • + + +
  • + + +
  • + true + true +
  • + + +
  • + +
  • + SatisfyingNeeds + +
  • + true +
  • + + + + + + +
  • + Misc + +
  • + +
  • + + +
  • + MediumPriority + +
  • + LordDuty +
  • + + + + +
  • + true +
  • + + +
  • + ChangingApparel + +
  • + true +
  • + + + + +
  • + +
  • + +
  • + + +
  • + + +
  • + TakeForInventoryStock + +
  • + true +
  • + + + + +
  • + UnloadingOwnInventory + +
  • + +
  • + + +
  • + Food + 0.6 + +
  • + true +
  • + + + + + + +
  • + + +
  • + Humanlike_PreMain +
  • + + +
  • + +
  • + MainColonistBehaviorCore + true +
  • + + + +
  • + WildMan + +
  • + MainWildManBehaviorCore + true +
  • + + + + +
  • + Humanlike_PostMain +
  • + + +
  • + +
  • + Idle + + +
  • + Joy + 0.9 + true + +
  • + +
  • + + +
  • + None +
  • + + + + + + +
  • + WildMan + +
  • + Idle + + +
  • + Deadly + 120~240 +
  • + + + + + + +
  • + +
  • + +
  • + RestingForMedicalReasons + +
  • + +
  • + +
  • + Misc + +
  • + Walk +
  • + + + + + + + + +
  • + true + +
  • + Misc + +
  • + Walk +
  • + + + + + + +
  • + Idle + +
  • + Deadly +
  • + + + +
  • + + + + + \ No newline at end of file diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 3cbdda3..7fc9efb 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -96,6 +96,8 @@ + + diff --git a/Source/ArachnaeSwarm/CompAnimalWorkSettings.cs b/Source/ArachnaeSwarm/CompAnimalWorkSettings.cs new file mode 100644 index 0000000..758e74c --- /dev/null +++ b/Source/ArachnaeSwarm/CompAnimalWorkSettings.cs @@ -0,0 +1,49 @@ +using System.Collections.Generic; +using Verse; +using RimWorld; + +namespace ArachnaeSwarm +{ + public class CompAnimalWorkSettings : ThingComp + { + public CompProperties_AnimalWorkSettings Props => (CompProperties_AnimalWorkSettings)this.props; + + public override void PostSpawnSetup(bool respawningAfterLoad) + { + base.PostSpawnSetup(respawningAfterLoad); + + Pawn pawn = this.parent as Pawn; + if (pawn == null) return; + + // 关键:如果 pawn 没有 workSettings,则为其创建一个 + if (pawn.workSettings == null) + { + // Log.Message($"Initializing Pawn_WorkSettings for animal: {pawn.LabelShort}"); + pawn.workSettings = new Pawn_WorkSettings(pawn); + pawn.workSettings.EnableAndInitializeIfNotAlreadyInitialized(); + + // 注意:Pawn_WorkSettings 的构造函数和 EnableAndInitializeIfNotAlreadyInitialized() + // 通常会处理所有可用的 WorkTypeDef,并将它们的优先级初始化为 0。 + // 这正是我们想要的初始状态。具体的优先级将由其他逻辑(如你的 CompInstantTrain 或 ThinkNode)来设置。 + } + + // 设置工作优先级 + if (pawn.workSettings != null) + { + foreach (var entry in Props.workTypeMap) + { + TrainableDef trainable = entry.trainable; + WorkTypeDef workType = entry.workType; + + // 检查动物是否学会了对应的 Trainable + if (pawn.training != null && pawn.training.HasLearned(trainable)) + { + // 设置一个默认的非零优先级,例如 3 (Medium) + // 真正的"开关"由 ThinkNode_Conditional 的 GetWanted 控制 + pawn.workSettings.SetPriority(workType, 3); + } + } + } + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/CompInstantTrain.cs b/Source/ArachnaeSwarm/CompInstantTrain.cs index cec6bde..c7c95e8 100644 --- a/Source/ArachnaeSwarm/CompInstantTrain.cs +++ b/Source/ArachnaeSwarm/CompInstantTrain.cs @@ -4,7 +4,6 @@ using RimWorld; namespace ArachnaeSwarm { - // 定义在 XML 中使用的属性 public class CompProperties_InstantTrain : CompProperties { public List trainables = new List(); @@ -15,19 +14,15 @@ namespace ArachnaeSwarm } } - // 实现组件的逻辑 public class CompInstantTrain : ThingComp { - // 方便地访问属性 public CompProperties_InstantTrain Props => (CompProperties_InstantTrain)this.props; - // 在 Pawn 生成到地图上后被调用 public override void PostSpawnSetup(bool respawningAfterLoad) { base.PostSpawnSetup(respawningAfterLoad); - // 如果不是在加载存档时重生,则执行训练逻辑 - if (!respawningAfterLoad) + if (!respawningAfterLoad) // 只在初次生成时执行 { Pawn pawn = this.parent as Pawn; if (pawn == null || pawn.training == null) @@ -35,13 +30,11 @@ namespace ArachnaeSwarm return; } - // 遍历在 XML 中定义的需要训练的技能列表 + // 瞬间训练技能 foreach (TrainableDef trainableDef in Props.trainables) { - // 检查 Pawn 是否还未学会此技能 if (!pawn.training.HasLearned(trainableDef)) { - // 调用原版方法,瞬间完成训练 pawn.training.Train(trainableDef, null, true); } } diff --git a/Source/ArachnaeSwarm/CompProperties_AnimalWorkSettings.cs b/Source/ArachnaeSwarm/CompProperties_AnimalWorkSettings.cs new file mode 100644 index 0000000..a53c0ea --- /dev/null +++ b/Source/ArachnaeSwarm/CompProperties_AnimalWorkSettings.cs @@ -0,0 +1,25 @@ +using System.Collections.Generic; +using Verse; +using RimWorld; + +namespace ArachnaeSwarm +{ + public class CompProperties_AnimalWorkSettings : CompProperties + { + // 使用列表存储键值对,因为RimWorld的XML解析器对字典有特殊要求 + public List workTypeMap = new List(); + + // 可以在这里添加一些配置选项,比如默认优先级等,但现在简单起见,可以留空或只做基本初始化 + public CompProperties_AnimalWorkSettings() + { + this.compClass = typeof(CompAnimalWorkSettings); + } + } + + // 定义键值对的结构 + public class WorkTypeMapEntry + { + public TrainableDef trainable; + public WorkTypeDef workType; + } +} \ No newline at end of file