diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index cf68a38..3f87958 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
index ea14298..d8d7fea 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
@@ -1762,7 +1762,7 @@
Pawn_Melee_BigBash_HitPawn
- PawnFlyer
+ ARA_PawnFlyer
Longjump_Land
@@ -1778,6 +1778,19 @@
+
+ ARA_PawnFlyer
+ ArachnaeSwarm.SaferPawnFlyer
+
+ 8
+
+
+
+ ARA_PawnFlyer_Stun
+
+ 180~240
+
+
ARA_Praetorian_Long_Jump
diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml
index b47fd02..9a22e83 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml
@@ -206,7 +206,7 @@
- ArachnaeBase_Race_Skyhive
+ ArachnaeBase_Race_Skyhive_Fastdie
1
0
@@ -285,7 +285,7 @@
- ArachnaeBase_Race_Acidcut
+ ArachnaeBase_Race_Acidcut_Fastdie
1
0
diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
index 954a298..fc673cc 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_HiveMind.xml
@@ -635,7 +635,6 @@
-
ARA_Scavenger_Production_InsectJelly
@@ -673,4 +672,26 @@
+
+
+
+ ARA_Incubator_FasterDie
+
+ 该阿拉克涅虫族仅仅是为了一个简单的目标而创造,它们死的会比自己的同族更快。
+ HediffWithComps
+ false
+ (0.8, 0.6, 0.0)
+ false
+
+
+
+
+
+
+ 25200~28800
+ true
+
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
index 89b6731..b4886ea 100644
--- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
+++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
@@ -517,7 +517,7 @@
-
+
ArachnaeBase_Race_Skyhive
ArachnaeBase_Race_Skyhive
@@ -548,6 +548,14 @@
+
+ ArachnaeBase_Race_Skyhive_Fastdie
+
+
+ ARA_Incubator_FasterDie
+
+
+
ArachnaeBase_Race_Acidcut
@@ -569,6 +577,14 @@
+
+ ArachnaeBase_Race_Acidcut_Fastdie
+
+
+ ARA_Incubator_FasterDie
+
+
+
ArachnaeBase_Race_Baneling
diff --git a/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapon.xml b/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapon.xml
index 8b8742d..d95226c 100644
--- a/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapon.xml
+++ b/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapon.xml
@@ -2067,7 +2067,7 @@
41
- ArachnaeBase_Race_Acidcut
+ ArachnaeBase_Race_Acidcut_Fastdie
true
ARA_AcidBurn
10
@@ -2116,7 +2116,7 @@
41
- ArachnaeBase_Race_Skyhive
+ ArachnaeBase_Race_Skyhive_Fastdie
true
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index c4f4e09..7d00ae7 100644
Binary files a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo and b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo differ
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
index 93acc41..d3eb6a2 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -2,16 +2,24 @@
"Version": 1,
"WorkspaceRootPath": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_fanshapedstunknockback\\safer_pawnflyer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_fanshapedstunknockback\\safer_pawnflyer.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_fanshapedstunknockback\\compproperties_abilityfanshapedstunknockback.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_gestaltnode\\compgestalt.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_gestaltnode\\compgestalt.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hivemindmaster.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|d:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\arachnaelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\arachnaelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:arachnaelog.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@@ -22,28 +30,54 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "CompProperties_AbilityFanShapedStunKnockback.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
+ "RelativeToolTip": "Abilities\\ARA_FanShapedStunKnockback\\CompProperties_AbilityFanShapedStunKnockback.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAMAAAAXAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-27T07:30:03.977Z",
+ "EditorCaption": ""
+ },
{
"$type": "Document",
"DocumentIndex": 0,
+ "Title": "Safer_PawnFlyer.cs",
+ "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\Safer_PawnFlyer.cs",
+ "RelativeDocumentMoniker": "Abilities\\ARA_FanShapedStunKnockback\\Safer_PawnFlyer.cs",
+ "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_FanShapedStunKnockback\\Safer_PawnFlyer.cs",
+ "RelativeToolTip": "Abilities\\ARA_FanShapedStunKnockback\\Safer_PawnFlyer.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAJAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2026-03-27T07:30:02.935Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
"Title": "CompGestalt.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_GestaltNode\\CompGestalt.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_GestaltNode\\CompGestalt.cs",
"ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_GestaltNode\\CompGestalt.cs",
"RelativeToolTip": "Hediffs\\ARA_GestaltNode\\CompGestalt.cs",
- "ViewState": "AgIAAEQAAAAAAAAAAAAUwF0AAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAAEIAAAAAAAAAAAAQwD0AAABCAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2026-03-27T03:57:27.664Z",
"EditorCaption": ""
},
{
"$type": "Document",
- "DocumentIndex": 1,
+ "DocumentIndex": 3,
"Title": "Hediff_HiveMindMaster.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
@@ -51,12 +85,11 @@
"RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
"ViewState": "AgIAADQAAAAAAAAAAAAuwFkAAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-27T03:54:02.567Z",
- "EditorCaption": ""
+ "WhenOpened": "2026-03-27T03:54:02.567Z"
},
{
"$type": "Document",
- "DocumentIndex": 2,
+ "DocumentIndex": 4,
"Title": "ArachnaeLog.cs",
"DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ArachnaeLog.cs",
"RelativeDocumentMoniker": "ArachnaeLog.cs",
@@ -64,8 +97,7 @@
"RelativeToolTip": "ArachnaeLog.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAANAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-26T06:10:50.583Z",
- "EditorCaption": ""
+ "WhenOpened": "2026-03-26T06:10:50.583Z"
}
]
}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_FanShapedStunKnockback/Safer_PawnFlyer.cs b/Source/ArachnaeSwarm/Abilities/ARA_FanShapedStunKnockback/Safer_PawnFlyer.cs
new file mode 100644
index 0000000..58ac6ed
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_FanShapedStunKnockback/Safer_PawnFlyer.cs
@@ -0,0 +1,39 @@
+using RimWorld;
+using RimWorld.Planet;
+using UnityEngine;
+using Verse;
+using Verse.AI;
+using Verse.Sound;
+
+namespace ArachnaeSwarm
+{
+ public class SaferPawnFlyer : PawnFlyer
+ {
+ // 重写TickInterval,增加空值检查
+ protected override void TickInterval(int delta)
+ {
+ // 如果FlyingThing为空,直接销毁并返回
+ if (FlyingThing == null || FlyingThing.Destroyed)
+ {
+ Destroy();
+ return;
+ }
+
+ base.TickInterval(delta);
+ }
+
+ // 重写RespawnPawn,增加空值检查
+ protected override void RespawnPawn()
+ {
+ // 如果FlyingThing为空,直接销毁并返回
+ if (FlyingThing == null || FlyingThing.Destroyed)
+ {
+ Destroy();
+ return;
+ }
+
+ // 调用基类方法
+ base.RespawnPawn();
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index 93958dd..0034ef3 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -36,6 +36,7 @@
+
diff --git a/Source/ArachnaeSwarm/Hediffs/ARA_GestaltNode/CompGestalt.cs b/Source/ArachnaeSwarm/Hediffs/ARA_GestaltNode/CompGestalt.cs
index 73516d8..93ecfa7 100644
--- a/Source/ArachnaeSwarm/Hediffs/ARA_GestaltNode/CompGestalt.cs
+++ b/Source/ArachnaeSwarm/Hediffs/ARA_GestaltNode/CompGestalt.cs
@@ -59,6 +59,7 @@ namespace ArachnaeSwarm
Pawn hiveNode = relation.otherPawn;
if (hiveNode != null && hiveNode.IsGestaltNode(GestaltNodeType.HiveNode))
{
+ ForceMasterCultureToDrone(hiveNode, pawn);
if (tracker.GetControlGroup(hiveNode) == null)
{
@@ -98,13 +99,13 @@ namespace ArachnaeSwarm
///
/// 强制将主节点的文化赋予无人机
///
- private void ForceMasterCultureToDrone(Pawn drone)
+ private void ForceMasterCultureToDrone(Pawn drone,Pawn master)
{
// 检查是否有意识形态系统(Ideology DLC)
if (ModsConfig.IdeologyActive)
{
// 获取主节点的意识形态
- Ideo masterIdeo = this.pawn.Ideo;
+ Ideo masterIdeo = master.Ideo;
if (masterIdeo != null)
{
@@ -115,13 +116,6 @@ namespace ArachnaeSwarm
ArachnaeLog.Debug($"[ArachnaeSwarm] Set drone {drone.LabelShort} ideology to master's ideology: {masterIdeo.name}");
}
}
- else
- {
- ArachnaeLog.Debug($"[ArachnaeSwarm] Master {this.pawn.LabelShort} has no ideology to assign to drone {drone.LabelShort}");
- }
-
- // 强制同步文化相关记忆和状态
- SyncCulturalMemories(drone);
}
else
{
@@ -129,50 +123,6 @@ namespace ArachnaeSwarm
}
}
- ///
- /// 同步文化相关记忆和状态
- ///
- private void SyncCulturalMemories(Pawn drone)
- {
- try
- {
- // 清除可能存在的文化冲突记忆
- if (drone.needs?.mood != null)
- {
- // 移除与文化转换相关的负面想法
- var thoughtsToRemove = drone.needs.mood.thoughts.memories.Memories
- .Where(thought => thought.def.defName.Contains("Cultural") ||
- thought.def.defName.Contains("Ideo") ||
- thought.def.defName.Contains("Convert"))
- .ToList();
-
- foreach (var thought in thoughtsToRemove)
- {
- drone.needs.mood.thoughts.memories.RemoveMemory(thought);
- }
-
- if (thoughtsToRemove.Count > 0)
- {
- ArachnaeLog.Debug($"[ArachnaeSwarm] Removed {thoughtsToRemove.Count} cultural conflict thoughts from drone {drone.LabelShort}");
- }
-
- // 添加蜂群文化适应的正面想法
- ThoughtDef culturalHarmonyThought = DefDatabase.GetNamedSilentFail("ARA_CulturalHarmony");
- if (culturalHarmonyThought != null)
- {
- drone.needs.mood.thoughts.memories.TryGainMemory(culturalHarmonyThought);
- }
- }
-
- // 同步服装和文化偏好
- ArachnaeLog.Debug($"[ArachnaeSwarm] Successfully synchronized cultural memories for drone {drone.LabelShort}");
- }
- catch (System.Exception ex)
- {
- ArachnaeLog.Debug($"[ArachnaeSwarm] Error synchronizing cultural memories for drone {drone.LabelShort}: {ex.Message}");
- }
- }
-
public override void PostExposeData()
{
base.PostExposeData();