diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 0a13835..d47b472 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 ca908ee..a799b7a 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
@@ -842,7 +842,7 @@
ARA_TerrainHeal_Ability
- 从菌毯的营养管线抽取生物质,快速合成治愈素治疗目标,使其在一段时间内快速愈合。
+ 从菌毯的营养管线抽取生物质,快速合成治愈素治疗目标,使其在一段时间内快速愈合,只能对拥有自愈能力的阿拉克涅虫群单位使用。
ArachnaeSwarm/UI/Abilities/ARA_TerrainHeal_Ability
3800
true
@@ -881,6 +881,47 @@
+
+
+ ARA_HiveStrength
+ ARA_HiveStrength_Low
+
+ 目标必须是拥有自愈能力的阿拉克涅虫群
+ 只能对拥有自愈能力的阿拉克涅虫群单位使用
+
+
+
+
+
+ ARA_Strengthening_Tendon_Jump
+
+ 受到强化的肌腱可以让阿拉克涅虫群进行较短距离的跳跃。
+ ArachnaeSwarm/UI/Abilities/ARA_Fighter_Invisibility_jump
+ 6000
+ false
+ false
+
+ Verb_CastAbilityJump
+ false
+ false
+
+ 6
+ false
+ Longjump_Jump
+ Longjump_Land
+
+ true
+ false
+ false
+
+
+ CastJump
+
+
+ Food
+ 0.1
+ 营养值不足,需要进食
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml b/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml
index 47a773e..5771ad7 100644
--- a/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml
+++ b/1.6/1.6/Defs/BodyAndPartDefs/ARA_Bodyparts.xml
@@ -703,6 +703,14 @@
false
0
+
+ ARA_Pouch
+
+ 1
+ true
+ false
+ 0.01
+
ARA_Genitalias
@@ -734,6 +742,11 @@
128
+
+ ARA_Pouchs
+
+ 129
+
ArachnaeMyrmecocystus_Body
@@ -1103,6 +1116,15 @@
ARA_Toxic_Needles
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
@@ -1469,6 +1491,15 @@
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
@@ -1836,6 +1867,15 @@
Arms
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
@@ -2208,6 +2248,15 @@
ARA_Toxic_Needles
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
@@ -2998,6 +3047,15 @@
ARA_Smoke_Chambers
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
@@ -3352,6 +3410,15 @@
Torso
+
+
+ ARA_Pouch
+ 0.001
+ Inside
+
+ ARA_Pouchs
+
+
diff --git a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
index e246742..3602a1b 100644
--- a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
+++ b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
@@ -1052,4 +1052,101 @@
+
+
+
+ ARA_Skyraider_Base
+
+ 阿拉克涅空天种是天空的统治者,她们身躯庞大但又敏捷致命,在携带大型武器的同时还拥有其他人难以企及的机动性。
+ HediffWithComps
+ (0.6, 0.4, 0.8)
+ false
+ false
+ 1.0
+
+
+ 0
+
+ 2
+
+
+
+
+
+
+ ARA_Skyraider_jump
+ ARA_Skyraider_Hivelord
+
+
+
+
+ ARA_Skyraider_Hivelord
+
+
+
+
+
+ ARA_Skyraider_Hivelord
+
+ 使空天种发生内驱性进化,以降低机动力和失去高空机动能力为代价,使其获得向敌方自动投射各种辅虫的能力。\n\n该进化过程不可逆!
+ ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_Protector
+ 1800
+ false
+ true
+ true
+ false
+ true
+ true
+ false
+ CastAbilityOnThing
+
+ Verb_CastAbility
+ 1
+ 12
+ AcidSpray_Resolve
+ false
+ false
+
+ True
+
+
+
+
+ CompAbilityEffect_GiveHediff
+ ARA_Skyraider_Hivelord
+ True
+ true
+ 1
+
+
+ ARA_Technology_1VTE
+ 需要科技 节点VTE-1"护卫者" 以解锁进化
+
+
+
+
+ ARA_Skyraider_Hivelord
+
+ 这只阿拉克涅空天种已经获得拔耀,在敌方靠近时,会对敌方投掷能够通过近战施加酸烧的酸噬种辅虫。
+ HediffWithComps
+ (0.6, 0.4, 0.8)
+ false
+ false
+ 1.0
+
+
+ 0.01
+
+ 1
+
+
+
+
+
+ ARA_Skyraider_Hivelord_Turret
+ 0
+ true
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/RecipeDefs/ARA_Recipes.xml b/1.6/1.6/Defs/RecipeDefs/ARA_Recipes.xml
index f06691a..9dd8416 100644
--- a/1.6/1.6/Defs/RecipeDefs/ARA_Recipes.xml
+++ b/1.6/1.6/Defs/RecipeDefs/ARA_Recipes.xml
@@ -36,6 +36,7 @@
+
ARA_Surgery_Install_Plasteel
@@ -64,7 +65,7 @@
ARA_Plasteel_Shell_Hediff
-
+
ARA_Plasteel_Shell_Hediff
Hediff_Implant
@@ -88,13 +89,13 @@
-
- ARA_Surgery_Install_Huge_Stomach
-
- 诱发阿拉克涅虫族的定向变异,使其储存营养的胃囊增大,以储存更多食物。
+ ARA_Surgery_Install_Shell_Thorn
+
+ 为阿拉克涅虫族的甲壳植入两排棘刺腔管,它们是拥有半自主意识的器官,会对附近的敌军自动发射棘刺。此外,该变异也会加厚甲壳以获得更强的防御力。
- ARA_Huge_Stomach_Hediff
+ ARA_Shell_Thorn_Hediff
+ ARA_Shell_Thorn_Turret
正在实施定向变异
@@ -107,9 +108,252 @@
6
+
+ ARA_Chitin_Shell
+
+
+
+ ARA_Activated_Bacterium
+
+
+ ARA_Shell_Thorn_Hediff
+
+
+ ARA_Shell_Thorn_Hediff
+
+ Hediff_Implant
+ 阿拉克涅虫族在甲壳上植入了两排棘刺腔管,只要不处于近战状态下,它们就会对靠近的敌人自动发射棘刺攻击对方。
+
+ ARA_Surgery_Install_Shell_Thorn
+ ARA_Shell_Thorn_Turret
+
+
+ true
+
+
+
+
+ 0.2
+ 0.2
+
+
+
+
+
+ ARA_Shell_Thorn_Turret
+ 0
+ true
+
+
+
+
+ ARA_Surgery_Install_Reactive_Shell
+
+ 为阿拉克涅虫族的甲壳植入特殊的反应甲壳,它们是一次性的,可以在伤害袭来的时候弹出甲壳挡住伤害以免伤及本体。
+
+ ARA_Reactive_Shell_Hediff
+
+ 正在实施定向变异
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+ 6
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+
+ ARA_Chitin_Shell
+
+ ARA_Reactive_Shell_Hediff
+
+
+ ARA_Reactive_Shell_Hediff
+
+ 阿拉克涅虫族的反应甲壳可以使其免受一次外来伤害,但是随后这块甲片就会弹开,不再给予防御力。
+ ArachnaeSwarm.Hediff_DamageShield
+ (0.52, 1, 0.95)
+
+ ARA_Surgery_Install_Reactive_Shell
+
+ false
+ other
+ 1
+ 1
+
+
+
+
+ ARA_Surgery_Install_Strengthening_Tendon
+
+ 为阿拉克涅虫族的腿部植入强化肌腱,允许虫族以更高的速度移动并获得短距离跳跃的能力。
+
+ ARA_Strengthening_Tendon_Hediff
+
+ 正在实施定向变异
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+ 6
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+
+ Leg
+
+ ARA_Strengthening_Tendon_Hediff
+
+
+ ARA_Strengthening_Tendon_Hediff
+
+ Hediff_Implant
+ 阿拉克涅虫族受到强化的肌腱使得她们能高速移动,同时获得跳跃能力。
+
+ ARA_Surgery_Install_Plasteel
+
+
+ true
+
+
+
+ 0
+
+ 0.5
+
+
+
+
+
+
+ ARA_Strengthening_Tendon_Jump
+
+
+
+
+
+ ARA_Surgery_Install_Slide_Patagium
+
+ 为阿拉克涅虫族的腿部植入滑行翼膜,允许虫族在菌毯上活动时获得极高的速度。
+
+ ARA_Slide_Patagium_Hediff
+
+ 正在实施定向变异
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+ 6
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+
+ Leg
+
+ ARA_Slide_Patagium_Hediff
+
+
+ ARA_Slide_Patagium_Hediff
+
+ Hediff_Implant
+ 阿拉克涅虫族腿部的滑行翼膜可以让她们在菌毯上快速移动,但是离开菌毯后加成将立刻失效。
+
+ ARA_Surgery_Install_Plasteel
+
+
+ true
+
+ 1.0
+ 0.01
+
+
+ false
+ 0
+
+
+
+ 0.1
+
+ 0.5
+
+
+
+ 0.5
+
+ 1
+
+
+
+ 0.8
+
+ 2
+
+
+
+
+
+ 180
+
+
+
+
+
+ ARA_InsectCreep
+ ARA_InsectCreepFloor
+
+
+
+ 0.05
+
+
+ -2
+
+
+
+
+
+
+ ARA_Surgery_Install_Huge_Stomach
+
+ 诱发阿拉克涅虫族的定向变异,使其储存营养的胃囊增大,以储存更多食物。
+
+ ARA_Huge_Stomach_Hediff
+
+ 正在实施定向变异
Stomach
+
+
+
+
+ ARA_Activated_Bacterium
+
+
+ 6
+
+
ARA_Activated_Bacterium
@@ -118,7 +362,7 @@
ARA_Huge_Stomach_Hediff
ARA_Technology_1EVO
-
+
ARA_Huge_Stomach_Hediff
Hediff_Implant
@@ -138,6 +382,7 @@
+
ARA_Surgery_Install_Cycle_Suppression
@@ -166,7 +411,7 @@
ARA_Cycle_Suppression_Hediff
-
+
ARA_Cycle_Suppression_Hediff
Hediff_Implant
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 033ae7c..24c89ec 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
@@ -625,6 +625,10 @@
ARA_Surgery_Install_Plasteel
ARA_Surgery_Install_Huge_Stomach
ARA_Surgery_Install_Cycle_Suppression
+ ARA_Surgery_Install_Shell_Thorn
+ ARA_Surgery_Install_Reactive_Shell
+ ARA_Surgery_Install_Strengthening_Tendon
+ ARA_Surgery_Install_Slide_Patagium
@@ -1331,7 +1335,7 @@
- 3
+ 2.5
9999
0
@@ -1369,6 +1373,13 @@
+
+
+ ARA_Skyraider_Base
+
+ 1.0
+ false
+
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 7fb3315..b589f9d 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
@@ -1050,4 +1050,87 @@
+
+ ARA_Shell_Thorn_Turret
+
+ 阿拉克涅虫族甲壳上的半自主器官,可以自动发射。
+
+ ArachnaeSwarm/Weapon/ARA_Weapon_Empty
+ Graphic_Single
+
+
+ ARA_Shell_Thorn_Hediff
+
+
+ 1
+ 1
+ 1
+ 1
+ 0
+
+
+
+ Verb_Shoot
+ true
+ Bullet_ARA_Shell_Thorn_Turret
+ 8
+ 12
+ 2
+ Shot_TurretSniper
+ GunTail_Medium
+ 9
+ 4
+
+
+
+
+ Bullet_ARA_Shell_Thorn_Turret
+
+
+ ArachnaeSwarm/Mote/ARA_Spike_Shell
+ Graphic_Single_AgeSecs
+ MoteGlow
+ (0.3,0.6)
+ (0.9,0.9,0.9,1)
+
+
+ Bullet
+ 3
+ 0.75
+ 40
+
+
+
+ ARA_Skyraider_Hivelord_Turret
+
+ 阿拉克涅领主种身上的共生器官,会对敌方自动投射酸噬种辅虫。
+
+ ArachnaeSwarm/Weapon/ARA_Weapon_Empty
+ Graphic_Single
+
+
+ ARA_Skyraider_Hivelord
+
+
+ 1
+ 1
+ 1
+ 1
+ 0
+
+
+
+ Verb_Shoot
+ true
+ ArachnaeBase_Race_Acid_Proj
+ 32
+ 2
+ 2
+ Shot_TurretSniper
+ GunTail_Medium
+ 9
+ 6
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml b/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml
index c895139..efc893c 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml
@@ -167,7 +167,6 @@
Misc2
-
ARA_Gun_Beespikeshooter
@@ -476,7 +475,6 @@
ArachnaeBase_Race_Acidling_Proj
Projectile_SpawnsPawnZeroAge
- Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south
Things/Pawn/Animal/Spelopede/Spelopede
Graphic_Multi
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index 470bd16..3479fc0 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 c882f47..990db67 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -1,32 +1,7 @@
{
"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_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.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\\ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.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\\mainharmony.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:mainharmony.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\\supercarryextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:supercarryextension.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\\floatmenuoptionprovider_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:floatmenuoptionprovider_supercarry.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\\jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobdriver_supercarry.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- }
- ],
+ "Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
@@ -34,84 +9,11 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": -1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "RelativeDocumentMoniker": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "RelativeToolTip": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA9AAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T08:23:51.83Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "ARA_HediffDefOf.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
- "RelativeDocumentMoniker": "ARA_HediffDefOf.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\ARA_HediffDefOf.cs",
- "RelativeToolTip": "ARA_HediffDefOf.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T03:14:05.334Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "MainHarmony.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs",
- "RelativeDocumentMoniker": "MainHarmony.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\MainHarmony.cs",
- "RelativeToolTip": "MainHarmony.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T03:13:34.632Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "SuperCarryExtension.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\SuperCarryExtension.cs",
- "RelativeDocumentMoniker": "SuperCarryExtension.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\SuperCarryExtension.cs",
- "RelativeToolTip": "SuperCarryExtension.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T03:13:32.751Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "FloatMenuOptionProvider_SuperCarry.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\FloatMenuOptionProvider_SuperCarry.cs",
- "RelativeDocumentMoniker": "FloatMenuOptionProvider_SuperCarry.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\FloatMenuOptionProvider_SuperCarry.cs",
- "RelativeToolTip": "FloatMenuOptionProvider_SuperCarry.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T03:13:31.262Z"
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "JobDriver_SuperCarry.cs",
- "DocumentMoniker": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\JobDriver_SuperCarry.cs",
- "RelativeDocumentMoniker": "JobDriver_SuperCarry.cs",
- "ToolTip": "D:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\JobDriver_SuperCarry.cs",
- "RelativeToolTip": "JobDriver_SuperCarry.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-09-27T03:13:30.358Z"
}
]
}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompAbilityEffect_DestroyOwnBodyPart.cs b/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompAbilityEffect_DestroyOwnBodyPart.cs
new file mode 100644
index 0000000..d3e2359
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompAbilityEffect_DestroyOwnBodyPart.cs
@@ -0,0 +1,62 @@
+using RimWorld;
+using System.Collections.Generic;
+using System.Linq;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ public class CompAbilityEffect_DestroyOwnBodyPart : CompAbilityEffect
+ {
+ public new CompProperties_AbilityDestroyOwnBodyPart Props => (CompProperties_AbilityDestroyOwnBodyPart)props;
+
+ public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
+ {
+ base.Apply(target, dest);
+
+ Pawn caster = parent.pawn;
+ if (caster == null || caster.Dead)
+ return;
+
+ // 获取要破坏的身体部位
+ List partsToDestroy = GetBodyPartsToDestroy(caster);
+
+ if (partsToDestroy.Count == 0)
+ return;
+
+ // 对每个部位执行破坏
+ foreach (BodyPartRecord part in partsToDestroy)
+ {
+ DestroyBodyPart(caster, part);
+ }
+ }
+
+ // 获取要破坏的身体部位列表
+ private List GetBodyPartsToDestroy(Pawn pawn)
+ {
+ List validParts = new List();
+
+ // 获取指定的身体部位
+ foreach (BodyPartDef partDef in Props.bodyPartsToDestroy)
+ {
+ var parts = pawn.RaceProps.body.GetPartsWithDef(partDef);
+ foreach (BodyPartRecord part in parts)
+ {
+ // 检查部位是否已经缺失
+ if (!pawn.health.hediffSet.PartIsMissing(part))
+ {
+ validParts.Add(part);
+ }
+ }
+ }
+
+ return validParts;
+ }
+
+ // 实际执行身体部位的破坏
+ private void DestroyBodyPart(Pawn pawn, BodyPartRecord part)
+ {
+ // 直接添加缺失部位hediff
+ pawn.health.AddHediff(HediffDefOf.MissingBodyPart, part);
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompProperties_AbilityDestroyOwnBodyPart.cs b/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompProperties_AbilityDestroyOwnBodyPart.cs
new file mode 100644
index 0000000..94a864c
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_DestroyOwnBodyPart/CompProperties_AbilityDestroyOwnBodyPart.cs
@@ -0,0 +1,17 @@
+using RimWorld;
+using System.Collections.Generic;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ public class CompProperties_AbilityDestroyOwnBodyPart : CompProperties_AbilityEffect
+ {
+ // 要破坏的身体部位列表
+ public List bodyPartsToDestroy;
+
+ public CompProperties_AbilityDestroyOwnBodyPart()
+ {
+ compClass = typeof(CompAbilityEffect_DestroyOwnBodyPart);
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompAbilityEffect_HediffRestriction.cs b/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompAbilityEffect_HediffRestriction.cs
new file mode 100644
index 0000000..e0b9cea
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompAbilityEffect_HediffRestriction.cs
@@ -0,0 +1,146 @@
+using RimWorld;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ public class CompAbilityEffect_HediffRestriction : CompAbilityEffect
+ {
+ public new CompProperties_AbilityHediffRestriction Props => (CompProperties_AbilityHediffRestriction)props;
+
+ // 检查能力是否可用
+ public override bool GizmoDisabled(out string reason)
+ {
+ if (!IsTargetValid(null)) // 对Gizmo检查,没有具体目标
+ {
+ reason = Props.disabledReasonKey.Translate(GetHediffList());
+ return true;
+ }
+ reason = null;
+ return false;
+ }
+
+ // 验证目标是否有效
+ public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
+ {
+ if (!base.Valid(target, throwMessages))
+ return false;
+
+ // 检查目标hediff条件
+ if (!IsTargetValid(target))
+ {
+ if (throwMessages)
+ {
+ Messages.Message(Props.targetHediffFailMessage.Translate(GetHediffList()), parent.pawn, MessageTypeDefOf.RejectInput, historical: false);
+ }
+ return false;
+ }
+ return true;
+ }
+
+ // 应用效果前的最终验证
+ public override bool CanApplyOn(LocalTargetInfo target, LocalTargetInfo dest)
+ {
+ if (!IsTargetValid(target))
+ {
+ Messages.Message(Props.targetHediffFailMessage.Translate(GetHediffList()), parent.pawn, MessageTypeDefOf.RejectInput, historical: false);
+ return false;
+ }
+ return base.CanApplyOn(target, dest);
+ }
+
+ // 检查目标是否满足hediff条件
+ private bool IsTargetValid(LocalTargetInfo target)
+ {
+ // 如果目标不是pawn,始终允许(如地面、物品等)
+ Pawn targetPawn = target.Thing as Pawn;
+ if (targetPawn == null)
+ return true;
+
+ // 检查必须有的hediff
+ if (Props.requiredHediff != null)
+ {
+ if (!targetPawn.health.hediffSet.HasHediff(Props.requiredHediff))
+ return false;
+ }
+
+ // 检查禁止的hediff
+ if (Props.forbiddenHediff != null)
+ {
+ if (targetPawn.health.hediffSet.HasHediff(Props.forbiddenHediff))
+ return false;
+ }
+
+ // 检查必须有的hediff列表
+ if (Props.requiredHediffs != null && Props.requiredHediffs.Count > 0)
+ {
+ bool hasAnyRequired = false;
+ foreach (var hediff in Props.requiredHediffs)
+ {
+ if (targetPawn.health.hediffSet.HasHediff(hediff))
+ {
+ hasAnyRequired = true;
+ break;
+ }
+ }
+ if (!hasAnyRequired)
+ return false;
+ }
+
+ // 检查禁止的hediff列表
+ if (Props.forbiddenHediffs != null && Props.forbiddenHediffs.Count > 0)
+ {
+ foreach (var hediff in Props.forbiddenHediffs)
+ {
+ if (targetPawn.health.hediffSet.HasHediff(hediff))
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ // 获取hediff列表的字符串表示
+ private string GetHediffList()
+ {
+ string hediffList = "";
+
+ // 添加必须有的hediff
+ if (Props.requiredHediff != null)
+ {
+ hediffList += Props.requiredHediff.label;
+ }
+ else if (Props.requiredHediffs != null && Props.requiredHediffs.Count > 0)
+ {
+ foreach (var hediff in Props.requiredHediffs)
+ {
+ if (hediffList.Length > 0)
+ hediffList += ", ";
+ hediffList += hediff.label;
+ }
+ }
+
+ // 添加禁止的hediff
+ if (Props.forbiddenHediff != null)
+ {
+ if (hediffList.Length > 0)
+ hediffList += "; ";
+ hediffList += "不能有: " + Props.forbiddenHediff.label;
+ }
+ else if (Props.forbiddenHediffs != null && Props.forbiddenHediffs.Count > 0)
+ {
+ if (hediffList.Length > 0)
+ hediffList += "; ";
+ hediffList += "不能有: ";
+ foreach (var hediff in Props.forbiddenHediffs)
+ {
+ if (hediffList.EndsWith("不能有: "))
+ hediffList += hediff.label;
+ else
+ hediffList += ", " + hediff.label;
+ }
+ }
+
+ return hediffList;
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompProperties_AbilityHediffRestriction.cs b/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompProperties_AbilityHediffRestriction.cs
new file mode 100644
index 0000000..381996c
--- /dev/null
+++ b/Source/ArachnaeSwarm/Abilities/ARA_HediffRestriction/CompProperties_AbilityHediffRestriction.cs
@@ -0,0 +1,33 @@
+using RimWorld;
+using System.Collections.Generic;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ public class CompProperties_AbilityHediffRestriction : CompProperties_AbilityEffect
+ {
+ // 必须有的hediff(单个)
+ public HediffDef requiredHediff;
+
+ // 必须有的hediff(多个,满足任意一个即可)
+ public List requiredHediffs;
+
+ // 禁止的hediff(单个)
+ public HediffDef forbiddenHediff;
+
+ // 禁止的hediff(多个,有任意一个就不行)
+ public List forbiddenHediffs;
+
+ // 失败消息配置
+ [MustTranslate]
+ public string targetHediffFailMessage = "AbilityTargetHediffRestriction";
+
+ [MustTranslate]
+ public string disabledReasonKey = "AbilityDisabledHediffRestriction";
+
+ public CompProperties_AbilityHediffRestriction()
+ {
+ compClass = typeof(CompAbilityEffect_HediffRestriction);
+ }
+ }
+}
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index b6fb090..40c27db 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -73,8 +73,12 @@
+
+
+
+