diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 31cc85f..4be69bd 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 327f160..499156f 100644
--- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
+++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml
@@ -3,18 +3,18 @@
ARA_BindDrone
信息素标记
- 使用信息素标记一只阿拉克涅督虫,受到标记的督虫和其麾下的辅虫将誓死效忠于女皇种,并与其建立心灵链接。\n\n除了手动链接外,女皇种也会每60秒尝试自动链接所有未链接的阿拉克涅督虫,此类链接和手动链接不一样,不需要目视。
+ 使用信息素标记一只阿拉克涅督虫(包括野生虫群子个体),受到标记的督虫和其麾下的辅虫将誓死效忠于女皇种,并与其建立心灵链接。\n\n除了手动链接外,女皇种也会每60秒尝试自动链接己方所有未链接的阿拉克涅督虫,此类链接和手动链接不一样,不需要目视。
ArachnaeSwarm/UI/Abilities/ARA_BindDrone
Misc1
CastAbilityOnThing
true
- 60
+ 600
Verb_CastAbility
- 0
- 99
+ 1
+ 30
true
false
@@ -863,6 +863,45 @@
+
+ ARA_FireSpew
+ 爆燃火焰
+ 爆燃种经过短暂蓄力后,向前大范围地喷出火焰。这种火焰喷射距离不是太长,但是可以形成一道致密的火墙。
+ ArachnaeSwarm/UI/Abilities/ARA_FireSpew
+ 5000
+ true
+ true
+ true
+ FireSpew_Warmup
+ 3
+ true
+
+ Verb_CastAbility
+ 10
+ 1
+ FireSpew_Resolve
+
+ true
+
+
+
+
+ 饮食
+ true
+ Food
+ 0.25
+ 营养值不足,需要进食
+
+
+ 10
+ 35
+ Filth_FlammableBile
+ Fire_Spew
+ true
+
+
+
+
ARA_TerrainHeal_Ability
护士装疗愈
@@ -1093,8 +1132,8 @@
AcidSpray_Warmup
Verb_CastAbility
- -1
- 0.1
+ 24
+ 0
AcidSpray_Resolve
false
false
@@ -1124,6 +1163,7 @@
1000
3
true
+ false
false
false
@@ -1296,7 +1336,7 @@
只要一声令下,阿拉克涅虫族随时可以为了虫巢的大业立刻死去
ArachnaeSwarm/UI/Abilities/ARA_Suicide_Ability
1
- true
+ false
9900
true
AcidSpray_Warmup
diff --git a/1.6/1.6/Defs/DamageDefs/ARA_Damage_Freeze.xml b/1.6/1.6/Defs/DamageDefs/ARA_Damage_Freeze.xml
index 5737d0a..e42b26f 100644
--- a/1.6/1.6/Defs/DamageDefs/ARA_Damage_Freeze.xml
+++ b/1.6/1.6/Defs/DamageDefs/ARA_Damage_Freeze.xml
@@ -31,10 +31,12 @@
(0.35, 0.65)
(0.5, 0.5)
(0.65, 0.35)
- (0.85, 0.15)
+ (0.85, 0.15)
+ (1.25, 0.01)
+ (2.5, 0.001)
- 1.0
+ 0.25
diff --git a/1.6/1.6/Defs/EventDefs/ARA_Loop_Attack_EventDef.xml b/1.6/1.6/Defs/EventDefs/ARA_Loop_Attack_EventDef.xml
index 21a59fa..1ee7017 100644
--- a/1.6/1.6/Defs/EventDefs/ARA_Loop_Attack_EventDef.xml
+++ b/1.6/1.6/Defs/EventDefs/ARA_Loop_Attack_EventDef.xml
@@ -81,43 +81,8 @@
Combat
100
- 20
- 5
-
-
-
-
-
- 10000
- ARA_Hostile_Hive
- ImmediateAttack
- EdgeWalkIn
- Combat
-
-
- Combat
- 100
-
- 20
- 3
-
-
-
-
-
- 10000
- ARA_Hostile_Hive
- ImmediateAttack
- EdgeWalkIn
- Combat
-
-
- Combat
- 100
-
- 20
- 3
- 7
+ 7
+ 3
diff --git a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
index 495a6f9..1093200 100644
--- a/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
+++ b/1.6/1.6/Defs/EvolutionDefs/ARA_Evolution.xml
@@ -345,6 +345,35 @@
false
false
1.0
+
+
+ PawnRenderNode_AttachmentHead
+ PawnRenderNodeWorker_FlipWhenCrawling
+ ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach
+ Body
+ false
+ false
+ Fresh, Rotting
+
+
+ (0, 0, -0.05)
+ 120
+
+
+ (0, 0, -0.05)
+
+
+ (0, 0, -0.05)
+
+
+ (0, 0, -0.05)
+
+
+ -40
+
+
+
+
+
+ true
+
+ Chemfuel
+
+ 20
+
+
+ 1
+
+ 1
+ 0
+
+
+ false
+
+ true
+
+ true
+
+ 20
+
+
+ true
+
+ false
+
+
+
+ ARA_FireSpew
+
+
+
+
@@ -795,9 +997,41 @@
false
false
1.0
+
+
+ PawnRenderNode_AttachmentHead
+ PawnRenderNodeWorker_FlipWhenCrawling
+ ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody
+ Body
+ false
+ false
+ Fresh, Rotting
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ 40
+
+
+
+
0
+
+ 0.4
+ 0.5
+
@@ -849,11 +1083,13 @@
ARA_ShieldHead_Protector
+ ARA_ShieldHead_HiveBuilder
ARA_ShieldHead_Protector
+ ARA_ShieldHead_HiveBuilder
@@ -925,11 +1161,41 @@
false
false
1.0
+
+
+ PawnRenderNode_AttachmentHead
+ PawnRenderNodeWorker_FlipWhenCrawling
+ ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody
+ Body
+ false
+ false
+ Fresh, Rotting
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ (0, 0, 0)
+
+
+ 800
+
+
+
+
- 0.01
+ 0
1
+ 0.4
+ 0.5
@@ -941,6 +1207,116 @@
+
+ ARA_ShieldHead_HiveBuilder
+ 盾头种转换——营建大师
+ 使盾头种发生内驱性进化,以防御能力为代价,使其获得更强大的甲壳素产出能力和建造技能。\n\n该进化过程不可逆!
+ ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder
+ 1800
+ false
+ true
+ true
+ false
+ false
+ true
+ false
+ CastAbilityOnThing
+
+ Verb_CastAbility
+ 1
+ 12
+ AcidSpray_Resolve
+ false
+ false
+
+ True
+
+
+
+
+ CompAbilityEffect_GiveHediff
+ ARA_ShieldHead_HiveBuilder
+ True
+ true
+ 1
+
+
+
+ ARA_Technology_3CON
+ 需要科技 节点CON-3"建造者" 以解锁进化
+
+
+
+
+ ARA_ShieldHead_HiveBuilder
+ 亚种-营建种
+ 这只阿拉克涅盾头种已经获得拔耀,获得了强大的产出能力和建造能力。一只盾头种每天产出25份甲壳素。
+ HediffWithComps
+ (0.6, 0.4, 0.8)
+ false
+ false
+ 1.0
+
+
+ 0
+
+
+
+
+
+
+ true
+
+ ARA_Carapace
+
+ 25
+
+
+ 1
+
+ 1
+ 0
+
+
+ false
+
+ true
+
+ true
+
+ 20
+
+
+ true
+
+ false
+
+
+
diff --git a/1.6/1.6/Defs/FactionDefs/ARA_Factions_Hostile_Hive.xml b/1.6/1.6/Defs/FactionDefs/ARA_Factions_Hostile_Hive.xml
index b266aa8..f0cc427 100644
--- a/1.6/1.6/Defs/FactionDefs/ARA_Factions_Hostile_Hive.xml
+++ b/1.6/1.6/Defs/FactionDefs/ARA_Factions_Hostile_Hive.xml
@@ -22,7 +22,7 @@
- Medieval
+ Industrial
Surface
@@ -30,12 +30,12 @@
(0.6, 0.5, 0.9)
-
RandomDrop
- -->
+
(300, 0)
@@ -47,11 +47,24 @@
-
+ 100
Combat
- 7
- 3
+ 3
+
+
+
+ 80
+ Combat
+
+ 3
+
+
+
+ 80
+ Combat
+
+ 5
@@ -76,7 +89,7 @@
true
true
-
+ false
false
@@ -97,8 +110,8 @@
-2000~2000
1
900
- ActiveDropPodMechanoid
- DropPodIncomingMechanoidRapid
+ ARA_ActiveDropPod
+ ARA_DropPodIncoming
Children
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 f087aa2..7ef3f81 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml
@@ -473,7 +473,7 @@
ARA_CryoShock
急速冷却
- 目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,足以摧毁其身体部位的“冷冻”伤害阈值将会显著降低。
+ 目标正处于急冻状态。这种状态将导致目标身体结构极度脆弱。当此效果加深时,其身体部位有可能会被冷冻伤害直接摧毁。
(1, 1, 0.8)
ArachnaeSwarm.HediffCurseFlame
@@ -493,11 +493,11 @@
- 轻微
+ 1/8
true
- 轻微
+ 2/8
0.2
40
@@ -513,7 +513,7 @@
- 中等
+ 3/8
0.35
80
@@ -529,7 +529,7 @@
- 严重
+ 4/8
0.5
120
@@ -545,7 +545,7 @@
- 极度
+ 5/8
0.65
160
@@ -561,7 +561,7 @@
- 完全
+ 6/8
0.85
200
@@ -576,6 +576,38 @@
+
+ 7/8
+ 1.25
+
+ 500
+
+
+ 0.01
+
+
+
+ Consciousness
+ -0.50
+
+
+
+
+ 8/8
+ 2.5
+
+ 1000
+
+
+ 0.001
+
+
+
+ Consciousness
+ -0.50
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Mutants.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Mutants.xml
index 872c1b3..1eb66ff 100644
--- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Mutants.xml
+++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Mutants.xml
@@ -163,6 +163,17 @@
0
0
+ 0
+
+ Mood
+ Joy
+ Beauty
+ Comfort
+ Outdoors
+ Indoors
+ DrugDesire
+ RoomSize
+
1.5
0
diff --git a/1.6/1.6/Defs/HiveRaidDef/ARA_CustomRaidDef.xml b/1.6/1.6/Defs/HiveRaidDef/ARA_CustomRaidDef.xml
deleted file mode 100644
index b896818..0000000
--- a/1.6/1.6/Defs/HiveRaidDef/ARA_CustomRaidDef.xml
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
- ARA_SpecialAttack
- ARA_Hostile_Hive
-
-
- 0
- 800
- ARA_WavePool_Stage1
-
-
- 3
-
- Linear
- 1.2
-
-
-
-
- ARA_WavePool_Stage1
-
- ARA_Wave_Scout_Patrol
- ARA_Wave_Assault_Team
- ARA_Wave_Acid_Swarm
- ARA_Wave_Heavy_Defense
- ARA_Wave_Mixed_Forces
-
-
-
- ARA_Wave_Scout_Patrol
- 0.25
-
-
- ARA_Wave_Assault_Team
- 0.25
-
-
- ARA_Wave_Acid_Swarm
- 0.20
-
-
- ARA_Wave_Heavy_Defense
- 0.15
-
-
- ARA_Wave_Mixed_Forces
- 0.15
-
-
-
-
-
-
- ARA_Wave_Scout_Patrol
- 侦察巡逻队
- 一支小型侦察队伍,主要由远程单位组成,进行骚扰射击
-
- CenterDrop
-
-
-
- ARA_Raid_Shooter
- 0.7
- 2
- 6
- true
-
-
- ARA_Raid_Assault
- 0.3
- 1
- 3
-
-
-
-
-
- ARA_Wave_Assault_Team
- 突击小队
- 以近战单位为主的快速突击队伍,擅长冲锋陷阵
-
- CenterDrop
-
-
-
- ARA_Raid_Assault
- 0.6
- 3
- 8
- true
-
-
- ARA_Raid_Shooter
- 0.4
- 2
- 4
-
-
-
-
-
- ARA_Wave_Acid_Swarm
- 酸液虫群
- 大量酸噬种辅虫组成的虫海战术,数量庞大但个体脆弱
-
- CenterDrop
-
-
-
- ARA_Raid_AcidSwarm
- 0.8
- 8
- 20
- true
-
-
- ARA_Raid_Assault
- 0.2
- 2
- 5
-
-
-
-
-
- ARA_Wave_Heavy_Defense
- 重装防御队
- 以盾头种为主的防御型队伍,移动缓慢但防御力强
-
- CenterDrop
-
-
-
- ARA_Raid_Heavy
- 0.5
- 2
- 6
- true
-
-
- ARA_Raid_Shooter
- 0.3
- 2
- 4
-
-
- ARA_Raid_Acidling
- 0.2
- 3
- 8
-
-
-
-
-
- ARA_Wave_Mixed_Forces
- 混合部队
- 均衡配置的混合部队,包含各种单位类型
-
- CenterDrop
-
-
-
- ARA_Raid_Assault
- 0.3
- 2
- 5
-
-
- ARA_Raid_Shooter
- 0.3
- 2
- 5
-
-
- ARA_Raid_Heavy
- 0.2
- 1
- 3
-
-
- ARA_Raid_AcidSwarm
- 0.2
- 3
- 6
- true
-
-
-
-
-
-
- ARA_Raid_Incident
- 阿拉克涅虫群袭击
- ArachnaeSwarm.IncidentWorker_CustomRaid
- Special
- 5
- 0
-
- Map_PlayerHome
-
-
-
diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_Hostile_Hive_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_Hostile_Hive_PawnKinds.xml
index c0447ee..417102f 100644
--- a/1.6/1.6/Defs/PawnKindDef/ARA_Hostile_Hive_PawnKinds.xml
+++ b/1.6/1.6/Defs/PawnKindDef/ARA_Hostile_Hive_PawnKinds.xml
@@ -1,144 +1,85 @@
-
-
- 150
+
+ ArachnaeNode_Race_Fighter_Enermy
true
false
0
true
true
- 99~99
- 99~99
1
true
- 2
- 1
false
ARA_Hostile_Hive
- 0
-
- Violent
-
-
-
- ARA_Creep
- 1.5
-
-
-
-
-
-
-
- ARA_Raid_Assault
- 阿拉克涅突击者
- ArachnaeNode_Race_Fighter
- 200
- ARA_Armed_Organ_Melee
+ ARA_Armed_Organ_T1
ARA_Inner
ARA_Clothes
- 200
- 50000
-
- ARA_BaseRace_Acid_Launcher
-
+ 1000
+ 5000
+ 250
-
-
- ARA_Raid_Shooter
- 阿拉克涅射手
- ArachnaeNode_Race_Fighter
- 180
+
+ ArachnaeNode_Race_ShieldHead_Enermy
+ true
+ false
+ 0
+ true
+ true
+ 1
+ true
+ false
+ ARA_Hostile_Hive
- ARA_Armed_Organ_Small_Ranged_Needle
- ARA_Armed_Organ_Small_Ranged_Acid
+ ARA_Armed_Organ_T1
ARA_Inner
+ ARA_Clothes
- 150
- 50000
- 0
-
- ARA_BaseRace_Acid_Launcher
-
+ 1000
+ 5000
+ 330
+
+ ArachnaeNode_Race_Praetorian_Enermy
+ true
+ false
+ 0
+ true
+ true
+ 1
+ true
+ false
+ ARA_Hostile_Hive
+
+ ARA_Armed_Organ_T3
+
+
+ ARA_Inner
+ ARA_Clothes
+
+ 1000
+ 5000
+ 700
+
+
-
- ARA_Raid_AcidSwarm
- 阿拉克涅酸噬群
- 80
- 0
- 0
- 0
- ArachnaeBase_Race_Acidcut
-
-
-
- ArachnaeSwarm/Things/ARA_Acidcut/Bodies/Naked_Thin
- 1
-
- (0.4, 0.5, 0.37)
- (0,0,-0.15)
-
-
-
- Things/Pawn/Animal/Spelopede/Dessicated_Spelopede
- 1
-
-
-
-
-
-
-
-
- ARA_Raid_Heavy
- 阿拉克涅重装兵
- ArachnaeNode_Race_ShieldHead
- 350
-
- ARA_Armed_Organ_Melee
- ARA_Armed_Organ_Small_Ranged_Needle
- ARA_Armed_Organ_Small_Ranged_Acid
-
-
- ARA_Inner
- ARA_Clothes
-
- 400
- 1200
- 0
-
-
-
- ARA_Raid_Acidling
- 阿拉克涅爆裂群
- ArachnaeBase_Race_Acidling
+
+ ArachnaeBase_Race_Acidcut_Enermy
50
0
0
0
-
-
-
- ArachnaeSwarm/Things/ARA_Acidling/Bodies/Naked_Thin
- 1
-
- (0.4, 0.5, 0.37)
- (0,0,-0.15)
-
-
-
- Things/Pawn/Animal/Spelopede/Dessicated_Spelopede
- 1
-
-
-
+
+
+ ArachnaeBase_Race_Acidling_Enermy
+ 150
+ 0
+ 0
+ 0
diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
index dccb76e..6785fd2 100644
--- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
+++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
@@ -217,7 +217,7 @@
0
-
+
ArachnaeNode_Race_ShieldHead
阿拉克涅盾头种
ArachnaeNode_Race_ShieldHead
@@ -282,7 +282,7 @@
0
-
+
ArachnaeNode_Race_Fighter
阿拉克涅战士种
ArachnaeNode_Race_Fighter
@@ -390,7 +390,7 @@
0
-
+
ArachnaeNode_Race_Praetorian
阿拉克涅禁卫种
ArachnaeNode_Race_Praetorian
@@ -520,7 +520,7 @@
-
+
ArachnaeBase_Race_Acidcut
阿拉克涅酸噬种
ArachnaeBase_Race_Acidcut
@@ -541,7 +541,7 @@
-
+
ArachnaeBase_Race_Acidling
阿拉克涅爆裂种
ArachnaeBase_Race_Acidling
diff --git a/1.6/1.6/Defs/PawnsArrivalModeDefs/ARA_PawnsArrivalModes.xml b/1.6/1.6/Defs/PawnsArrivalModeDefs/ARA_PawnsArrivalModes.xml
new file mode 100644
index 0000000..915ae0f
--- /dev/null
+++ b/1.6/1.6/Defs/PawnsArrivalModeDefs/ARA_PawnsArrivalModes.xml
@@ -0,0 +1,38 @@
+
+
+
+ ARA_EdgeDropGroups
+ PawnsArrivalModeWorker_EdgeDropGroups
+
+ Surface
+ Orbit
+
+ 0.1
+
+
+ (0, 1)
+ (99999, 1)
+
+
+
+
+ ARA_Hostile_Hive
+
+
+ (0, 1)
+ (99999, 1)
+
+
+
+
+
+ Medieval
+ 一些来自 {1} 的 {0} 正在通过气囊种空降到附近。
+ Several separate groups of friendly {0} from {1} have arrived in transport pods nearby.
+ Several separate groups of {0_pawnsPluralDef} will arrive in transport pods.
+
+
diff --git a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
index 11ac680..c18dbd9 100644
--- a/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
+++ b/1.6/1.6/Defs/ResearchProjectDefs/ARA_ResearchProjects.xml
@@ -608,7 +608,7 @@
ARA_Technology_1MED
节点MED-1"疗愈种"
- 允许蜜罐种进行定向进化,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。
+ 允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以强化其自身的医疗能力并解锁孵化医药茧的技能。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。
1200
5.50
2.10
@@ -660,6 +660,30 @@
ARA_Technology_2WMT
+
+ ARA_Technology_3CON
+ 节点CON-3"建造者"
+ 允许盾头种进行定向进化,抛弃其防御能力以换取更强大的甲壳素产出能力和建造建筑的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。
+ 300
+ 2.00
+ 2.70
+ ARA_ResearchBench
+
+ ARA_Base_Technology
+
+
+
+ ARA_Technology_8FEL
+ 节点FEL-8"爆燃腔"
+ 允许蜜罐种进行定向进化,抛弃生产虫蜜的能力,以获得防御力增强、生产化合燃料和喷射火焰的能力。\n\n阿拉克涅虫群所有需要蓝图的科技,其蓝图只能通过女皇种的基因试验卵获取。
+ 300
+ 2.00
+ 2.10
+ ARA_ResearchBench
+
+ ARA_Base_Technology
+
+
ARA_Technology_1EVO
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 fc8add0..3d11687 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
@@ -4,6 +4,7 @@
+ 2~3
0
@@ -403,15 +404,10 @@
BodyPurist
Cannibal
- CreepyBreathing
DislikesWomen
Gourmand
- QuickSleeper
Wimp
- Beauty
DrugDesire
- Immunity
- PsychicSensitivity
@@ -624,6 +620,8 @@
+ ARA_CureBloodRot
+ ARA_CureAcid
RemovePorcupineQuill
SurgicalInspection
ARA_Surgery_Install_Plasteel
@@ -723,7 +721,7 @@
-
+
@@ -886,7 +884,7 @@
-
+
@@ -949,8 +947,8 @@
- 0.5
- 0.75
+ 0.1
+ 0.25
0.2
@@ -1942,6 +1940,7 @@
true
+ ARA_RW_Large_Arc_Gun
ARA_RW_Acid_Mortar
ARA_RW_Basic_SniperCannon_Gun
ARA_RW_Basic_FireSpewer_Gun
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
index f9303ad..b61550d 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceQueen.xml
@@ -713,6 +713,8 @@
RemovePorcupineQuill
+ ARA_CureBloodRot
+ ARA_CureAcid
diff --git a/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_PowerArmor.xml b/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_PowerArmor.xml
index df15eab..4df1d34 100644
--- a/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_PowerArmor.xml
+++ b/1.6/1.6/Defs/Thing_Misc/Apparels/ARA_PowerArmor.xml
@@ -20,8 +20,9 @@
true
0.5
false
+ 0.5
(1,1)
-
+ ARA_Buildings
ARA_Technology_2SYM
@@ -111,7 +112,7 @@
ArachnaeSwarm/Building/ARA_Building_SpiderOne_south
-
+
ARA_PowerArmor
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 c838d49..427b3ea 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
@@ -2294,7 +2294,7 @@
1.5
ARA_Damage_Freeze
5
- Explosion_Stun
+
0
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 77defab..0d1df17 100644
--- a/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml
+++ b/1.6/1.6/Defs/Thing_building/ARA_SwarmTurret.xml
@@ -373,10 +373,10 @@
Graphic_Single
- 0.60
- 0.70
- 0.65
- 0.55
+ 0.4
+ 0.7
+ 0.86
+ 0.9
2.2
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml
index 98ea168..82f1be2 100644
--- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ArachnaeSwarm_Keys.xml
@@ -10,7 +10,11 @@
目标 {0} 不是阿拉克涅的督虫,或不需要链接。
目标 {0} 已绑定到 {1}。
施法者 {0} 不是阿拉克涅的女皇种。
-
+
+ 成功将 {0} 转换为我方子个体并绑定到 {1}
+ 转换 {0} 成功,但绑定到 {1} 失败
+ {0} 不是阿拉克涅的女皇种
+
目标必须是类人生物。
{0} 已被寄生。
diff --git a/1.6/1.6/Patches/ARA_SearchAndDestroy.xml b/1.6/1.6/Patches/ARA_SearchAndDestroy.xml
new file mode 100644
index 0000000..47396ac
--- /dev/null
+++ b/1.6/1.6/Patches/ARA_SearchAndDestroy.xml
@@ -0,0 +1,29 @@
+
+
+
+
+ Search and Destroy (Continued)
+
+
+ Defs/ThinkTreeDef[defName = "ARA_Humanlike"]/thinkRoot[@Class ="ThinkNode_Priority"]/subNodes/li[@Class="ThinkNode_ConditionalColonist"]
+
+
+
+
+
+
+
+
+ 200
+ 72
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Patches/Patch.xml b/1.6/1.6/Patches/Patch.xml
new file mode 100644
index 0000000..93fa24d
--- /dev/null
+++ b/1.6/1.6/Patches/Patch.xml
@@ -0,0 +1,10 @@
+
+
+
+ /Defs/ThingDef[@Name="Human"]/recipes
+
+ ARA_CureAcid
+ ARA_CureBloodRot
+
+
+
\ No newline at end of file
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_east.png
new file mode 100644
index 0000000..57f096a
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_north.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_north.png
new file mode 100644
index 0000000..f27bade
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_north.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_south.png
new file mode 100644
index 0000000..6f4b1ab
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachFuel_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_east.png
new file mode 100644
index 0000000..184900d
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_north.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_north.png
new file mode 100644
index 0000000..4c4dc55
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_north.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_south.png
new file mode 100644
index 0000000..6f4b1ab
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_StomachMedicine_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_FireSpew.png b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_FireSpew.png
new file mode 100644
index 0000000..54e8db9
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_FireSpew.png differ
diff --git a/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Fuel.png b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Fuel.png
new file mode 100644
index 0000000..82adc03
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_Myrmecocystus_Production_Fuel.png differ
diff --git a/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder.png b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder.png
new file mode 100644
index 0000000..2d56e18
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/UI/Abilities/ARA_ShieldHead_HiveBuilder.png differ
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index 62e10fb..2870b6b 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 f5a7b14..a0ab510 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -2,6 +2,22 @@
"Version": 1,
"WorkspaceRootPath": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\",
"Documents": [
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\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|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\hediff_hiveminddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compabilityeffect_binddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
+ {
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:hediffs\\ara_hivemind\\compproperties_abilitybinddrone.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+ },
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\verb_shootarc.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -14,21 +30,73 @@
"DocumentGroups": [
{
"DockedWidth": 200,
- "SelectedChildIndex": 1,
+ "SelectedChildIndex": 2,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
+ {
+ "$type": "Document",
+ "DocumentIndex": 1,
+ "Title": "Hediff_HiveMindDrone.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
+ "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
+ "RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindDrone.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-10-20T17:26:14.842Z",
+ "EditorCaption": ""
+ },
{
"$type": "Document",
"DocumentIndex": 0,
+ "Title": "Hediff_HiveMindMaster.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
+ "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
+ "RelativeToolTip": "Hediffs\\ARA_HiveMind\\Hediff_HiveMindMaster.cs",
+ "ViewState": "AgIAAHwAAAAAAAAAAAAkwJwAAAAQAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-10-20T17:25:29.183Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 2,
+ "Title": "CompAbilityEffect_BindDrone.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
+ "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
+ "RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompAbilityEffect_BindDrone.cs",
+ "ViewState": "AgIAADYAAAAAAAAAAAAAwE8AAAAtAAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-10-20T17:10:14.403Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 3,
+ "Title": "CompProperties_AbilityBindDrone.cs",
+ "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
+ "RelativeDocumentMoniker": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
+ "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
+ "RelativeToolTip": "Hediffs\\ARA_HiveMind\\CompProperties_AbilityBindDrone.cs",
+ "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAA/AAAAAAAAAA==",
+ "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+ "WhenOpened": "2025-10-20T17:10:09.072Z",
+ "EditorCaption": ""
+ },
+ {
+ "$type": "Document",
+ "DocumentIndex": 4,
"Title": "Verb_ShootArc.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
"RelativeDocumentMoniker": "Verbs\\Verb_ShootArc.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Verbs\\Verb_ShootArc.cs",
"RelativeToolTip": "Verbs\\Verb_ShootArc.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+ "ViewState": "AgIAAAAAAAAAAAAAAADwvw4AAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-19T13:10:19.942Z",
"EditorCaption": ""
diff --git a/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/CompAbilityEffect_BindDrone.cs b/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/CompAbilityEffect_BindDrone.cs
index 12d9a05..2d39566 100644
--- a/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/CompAbilityEffect_BindDrone.cs
+++ b/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/CompAbilityEffect_BindDrone.cs
@@ -15,6 +15,17 @@ namespace ArachnaeSwarm
if (masterPawn != null && dronePawn != null)
{
+ // 检查目标是否有 ARA_NonPlayer_HiveMindDroneHediff
+ Hediff nonPlayerDroneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
+
+ if (nonPlayerDroneHediff != null)
+ {
+ // 处理非玩家派系的无人机
+ HandleNonPlayerDroneConversion(dronePawn, masterPawn);
+ return;
+ }
+
+ // 原有的玩家派系无人机绑定逻辑
Hediff_HiveMindMaster masterHediff = masterPawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
if (masterHediff != null)
{
@@ -34,6 +45,56 @@ namespace ArachnaeSwarm
}
}
+ ///
+ /// 处理非玩家派系无人机的转换
+ ///
+ private void HandleNonPlayerDroneConversion(Pawn dronePawn, Pawn masterPawn)
+ {
+ // 1. 改变阵营
+ if (dronePawn.Faction != masterPawn.Faction)
+ {
+ dronePawn.SetFaction(masterPawn.Faction, masterPawn);
+ Log.Message($"Converted {dronePawn.LabelShort} from {dronePawn.Faction?.Name ?? "null"} to {masterPawn.Faction?.Name}");
+ }
+
+ // 2. 移除 ARA_NonPlayer_HiveMindDroneHediff
+ Hediff nonPlayerHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
+ if (nonPlayerHediff != null)
+ {
+ dronePawn.health.RemoveHediff(nonPlayerHediff);
+ Log.Message($"Removed ARA_NonPlayer_HiveMindDroneHediff from {dronePawn.LabelShort}");
+ }
+
+ // 3. 添加 ARA_HiveMindDrone
+ HediffDef hiveMindDroneDef = HediffDef.Named("ARA_HiveMindDrone");
+ if (hiveMindDroneDef != null && !dronePawn.health.hediffSet.HasHediff(hiveMindDroneDef))
+ {
+ dronePawn.health.AddHediff(hiveMindDroneDef);
+ Log.Message($"Added ARA_HiveMindDrone to {dronePawn.LabelShort}");
+ }
+
+ // 4. 尝试绑定到主节点
+ Hediff_HiveMindMaster masterHediff = masterPawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindMaster")) as Hediff_HiveMindMaster;
+ if (masterHediff != null)
+ {
+ if (masterHediff.TryBindDrone(dronePawn))
+ {
+ Messages.Message("ARA_BindDrone_ConversionSuccess".Translate(dronePawn.LabelShort, masterPawn.LabelShort), MessageTypeDefOf.PositiveEvent, historical: false);
+ Log.Message($"Successfully bound converted drone {dronePawn.LabelShort} to master {masterPawn.LabelShort}");
+ }
+ else
+ {
+ Messages.Message("ARA_BindDrone_ConversionFailure".Translate(dronePawn.LabelShort, masterPawn.LabelShort), MessageTypeDefOf.NegativeEvent, historical: false);
+ Log.Warning($"Failed to bind converted drone {dronePawn.LabelShort} to master {masterPawn.LabelShort}");
+ }
+ }
+ else
+ {
+ Messages.Message("ARA_BindDrone_NoMasterForConversion".Translate(masterPawn.LabelShort), MessageTypeDefOf.NegativeEvent, historical: false);
+ Log.Error($"[ArachnaeSwarm] Master {masterPawn.LabelShort} tried to convert a non-player drone but does not have Hediff_HiveMindMaster.");
+ }
+ }
+
public override bool Valid(LocalTargetInfo target, bool throwMessages = false)
{
if (!base.Valid(target, throwMessages))
@@ -64,7 +125,16 @@ namespace ArachnaeSwarm
return false;
}
- // Target must have ARA_HiveMindDrone hediff
+ // 检查目标是否有 ARA_NonPlayer_HiveMindDroneHediff(新增条件)
+ Hediff nonPlayerDroneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_NonPlayer_HiveMindDroneHediff"));
+ if (nonPlayerDroneHediff != null)
+ {
+ // 对于非玩家派系无人机,只需要基本检查,不需要绑定状态检查
+ // 所有检查通过
+ return true;
+ }
+
+ // 原有的玩家派系无人机检查逻辑
Hediff_HiveMindDrone droneHediff = dronePawn.health.hediffSet.GetFirstHediffOfDef(HediffDef.Named("ARA_HiveMindDrone")) as Hediff_HiveMindDrone;
if (droneHediff == null)
{
@@ -105,4 +175,4 @@ namespace ArachnaeSwarm
return Valid(target);
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/Hediff_HiveMindMaster.cs b/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/Hediff_HiveMindMaster.cs
index bced785..580b94b 100644
--- a/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/Hediff_HiveMindMaster.cs
+++ b/Source/ArachnaeSwarm/Hediffs/ARA_HiveMind/Hediff_HiveMindMaster.cs
@@ -74,6 +74,9 @@ namespace ArachnaeSwarm
return false;
}
+ // 新增:强制赋予主节点的文化给无人机
+ ForceMasterCultureToDrone(drone);
+
droneHediff.target = this.pawn; // Set the drone's target to this master
drones.Add(drone);
UpdateSeverity();
@@ -81,6 +84,84 @@ namespace ArachnaeSwarm
return true;
}
+ ///
+ /// 强制将主节点的文化赋予无人机
+ ///
+ private void ForceMasterCultureToDrone(Pawn drone)
+ {
+ // 检查是否有意识形态系统(Ideology DLC)
+ if (ModsConfig.IdeologyActive)
+ {
+ // 获取主节点的意识形态
+ Ideo masterIdeo = this.pawn.Ideo;
+
+ if (masterIdeo != null)
+ {
+ // 设置无人机的意识形态为主节点的意识形态
+ if (drone.Ideo != masterIdeo)
+ {
+ drone.ideo.SetIdeo(masterIdeo);
+ Log.Message($"[ArachnaeSwarm] Set drone {drone.LabelShort} ideology to master's ideology: {masterIdeo.name}");
+ }
+ }
+ else
+ {
+ Log.Warning($"[ArachnaeSwarm] Master {this.pawn.LabelShort} has no ideology to assign to drone {drone.LabelShort}");
+ }
+
+ // 强制同步文化相关记忆和状态
+ SyncCulturalMemories(drone);
+ }
+ else
+ {
+ Log.Message($"[ArachnaeSwarm] Ideology DLC not active, skipping cultural assignment for drone {drone.LabelShort}");
+ }
+ }
+
+ ///
+ /// 同步文化相关记忆和状态
+ ///
+ 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)
+ {
+ Log.Message($"[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);
+ }
+ }
+
+ // 同步服装和文化偏好
+ Log.Message($"[ArachnaeSwarm] Successfully synchronized cultural memories for drone {drone.LabelShort}");
+ }
+ catch (System.Exception ex)
+ {
+ Log.Error($"[ArachnaeSwarm] Error synchronizing cultural memories for drone {drone.LabelShort}: {ex.Message}");
+ }
+ }
+
public void TryBindAllAvailableDrones()
{
if (this.pawn?.Map == null) return;
@@ -102,6 +183,9 @@ namespace ArachnaeSwarm
// Check if the drone is unlinked (target is null) and not already in our list
if (droneHediff != null && droneHediff.target == null && !drones.Contains(drone))
{
+ // 新增:在自动绑定时也强制赋予文化
+ ForceMasterCultureToDrone(drone);
+
droneHediff.target = this.pawn; // Set the drone's target to this master
drones.Add(drone);
Log.Message($"[ArachnaeSwarm] Master {this.pawn.LabelShort} automatically bound drone {drone.LabelShort}.");
@@ -144,4 +228,4 @@ namespace ArachnaeSwarm
}
}
}
-}
\ No newline at end of file
+}
diff --git a/Source/ArachnaeSwarm/Pawn_Comps/ARA_NodeSwarmLifetime/CompNodeSwarmLifetime.cs b/Source/ArachnaeSwarm/Pawn_Comps/ARA_NodeSwarmLifetime/CompNodeSwarmLifetime.cs
index f368c26..b6890a3 100644
--- a/Source/ArachnaeSwarm/Pawn_Comps/ARA_NodeSwarmLifetime/CompNodeSwarmLifetime.cs
+++ b/Source/ArachnaeSwarm/Pawn_Comps/ARA_NodeSwarmLifetime/CompNodeSwarmLifetime.cs
@@ -37,11 +37,24 @@ namespace ArachnaeSwarm
// 添加:获取总天数
public float TotalDays => Props.lifetimeDays;
+ // 新增:检查是否为玩家派系
+ public bool IsPlayerFaction
+ {
+ get
+ {
+ Pawn pawn = parent as Pawn;
+ return pawn != null && pawn.Faction == Faction.OfPlayer;
+ }
+ }
+
// 添加:检查是否有关闭系统的 Hediff
public bool HasShutdownHediff
{
get
{
+ // 非玩家派系不检查 Hediff
+ if (!IsPlayerFaction) return false;
+
// 每 300 tick 检查一次,避免性能问题
if (hasShutdownHediffCached == null || Find.TickManager.TicksGame > lastHediffCheckTick + 300)
{
@@ -77,6 +90,9 @@ namespace ArachnaeSwarm
// 新增:当hediff消失时执行的处理
private void HandleMissingHediff()
{
+ // 非玩家派系不处理 Hediff 消失
+ if (!IsPlayerFaction) return;
+
Pawn pawn = parent as Pawn;
if (pawn == null) return;
@@ -109,6 +125,9 @@ namespace ArachnaeSwarm
// 新增:获取或创建寿命Hediff
private Hediff GetOrCreateLifespanHediff()
{
+ // 非玩家派系不创建 Hediff
+ if (!IsPlayerFaction) return null;
+
Pawn pawn = parent as Pawn;
if (pawn == null) return null;
@@ -150,6 +169,9 @@ namespace ArachnaeSwarm
// 新增:同步组件和Hediff的寿命数据
private void SyncLifespanWithHediff()
{
+ // 非玩家派系不进行同步
+ if (!IsPlayerFaction) return;
+
Pawn pawn = parent as Pawn;
if (pawn == null) return;
@@ -198,6 +220,9 @@ namespace ArachnaeSwarm
// 新增:将Comp的数据写入Hediff(用于调试命令)
private void WriteCompDataToHediff()
{
+ // 非玩家派系不写入 Hediff
+ if (!IsPlayerFaction) return;
+
Pawn pawn = parent as Pawn;
if (pawn == null) return;
@@ -223,6 +248,9 @@ namespace ArachnaeSwarm
// 新增:定期校验Hediff状态
private void ValidateHediffState()
{
+ // 非玩家派系不进行 Hediff 校验
+ if (!IsPlayerFaction) return;
+
Pawn pawn = parent as Pawn;
if (pawn == null) return;
@@ -259,6 +287,9 @@ namespace ArachnaeSwarm
// 新增:检查是否需要创建寿命 Hediff
private bool ShouldCreateLifespanHediff()
{
+ // 非玩家派系不创建 Hediff
+ if (!IsPlayerFaction) return false;
+
// 如果有关闭 Hediff,不应该创建寿命 Hediff
if (HasShutdownHediff)
{
@@ -290,33 +321,39 @@ namespace ArachnaeSwarm
lastHediffSyncTick = Find.TickManager.TicksGame;
lastHediffMissingCheckTick = Find.TickManager.TicksGame;
- // 添加:检查是否需要创建寿命 Hediff
- if (ShouldCreateLifespanHediff())
+ // 只有玩家派系才进行 Hediff 管理
+ if (IsPlayerFaction)
{
- // 确保寿命Hediff存在
- GetOrCreateLifespanHediff();
-
- // 初始同步
- SyncLifespanWithHediff();
- }
- else
- {
- Log.Message($"Skipping lifespan hediff creation for {parent.Label} due to shutdown hediff");
+ // 添加:检查是否需要创建寿命 Hediff
+ if (ShouldCreateLifespanHediff())
+ {
+ // 确保寿命Hediff存在
+ GetOrCreateLifespanHediff();
+
+ // 初始同步
+ SyncLifespanWithHediff();
+ }
+ else
+ {
+ Log.Message($"Skipping lifespan hediff creation for {parent.Label} due to shutdown hediff");
+ }
}
}
public override IEnumerable CompGetGizmosExtra()
{
+ // 非玩家派系不显示 Gizmo(除非特别配置)
+ if (!IsPlayerFaction && !Props.showGizmoOnNonPlayerControlled)
+ {
+ yield break;
+ }
+
// 添加:如果有关闭 Hediff,不显示任何 Gizmo
if (HasShutdownHediff)
{
yield break;
}
- if (parent.Faction != Faction.OfPlayer && !Props.showGizmoOnNonPlayerControlled)
- {
- yield break;
- }
if (Find.Selector.SingleSelectedThing == parent)
{
if (gizmo == null)
@@ -340,6 +377,7 @@ namespace ArachnaeSwarm
if (pawn != null)
{
string message = $"关闭Hediff状态:\n" +
+ $"玩家派系: {IsPlayerFaction}\n" +
$"HasShutdownHediff: {HasShutdownHediff}\n" +
$"Shutdown Hediff Def: {Props.immuteHediff?.defName ?? "None"}\n" +
$"实际存在: {(Props.immuteHediff != null ? pawn.health.hediffSet.HasHediff(Props.immuteHediff).ToString() : "N/A")}";
@@ -431,6 +469,7 @@ namespace ArachnaeSwarm
if (hediff != null)
{
string message = $"寿命Hediff信息:\n" +
+ $"玩家派系: {IsPlayerFaction}\n" +
$"严重程度: {hediff.Severity:P4}\n" +
$"剩余ticks: {powerTicksLeft}\n" +
$"剩余天数: {DaysLeft:F4}\n" +
@@ -444,6 +483,7 @@ namespace ArachnaeSwarm
else
{
string message = $"未找到寿命hediff\n" +
+ $"玩家派系: {IsPlayerFaction}\n" +
$"关闭Hediff存在: {HasShutdownHediff}";
Messages.Message(message, MessageTypeDefOf.SilentInput);
}
@@ -507,6 +547,9 @@ namespace ArachnaeSwarm
{
base.CompTick();
+ // 非玩家派系不进行任何 Tick 逻辑
+ if (!IsPlayerFaction) return;
+
// 添加:如果有关闭 Hediff,停止所有 Tick 逻辑
if (HasShutdownHediff)
{
@@ -605,19 +648,23 @@ namespace ArachnaeSwarm
powerTicksLeft = (int)(Props.lifetimeDays * 60000);
}
- // 立即检查hediff是否存在
- ValidateHediffState();
+ // 只有玩家派系才进行 Hediff 管理
+ if (IsPlayerFaction)
+ {
+ // 立即检查hediff是否存在
+ ValidateHediffState();
- // 添加:检查是否需要创建寿命 Hediff
- if (ShouldCreateLifespanHediff())
- {
- // 确保寿命Hediff存在并同步
- GetOrCreateLifespanHediff();
- SyncLifespanWithHediff();
- }
- else
- {
- Log.Message($"Skipping lifespan hediff creation for {parent.Label} after load due to shutdown hediff");
+ // 添加:检查是否需要创建寿命 Hediff
+ if (ShouldCreateLifespanHediff())
+ {
+ // 确保寿命Hediff存在并同步
+ GetOrCreateLifespanHediff();
+ SyncLifespanWithHediff();
+ }
+ else
+ {
+ Log.Message($"Skipping lifespan hediff creation for {parent.Label} after load due to shutdown hediff");
+ }
}
}
}
diff --git a/非公开资源/Content/Textures/UI/Abilities/ARA_FireSpew.sai2 b/非公开资源/Content/Textures/UI/Abilities/ARA_FireSpew.sai2
new file mode 100644
index 0000000..887da61
Binary files /dev/null and b/非公开资源/Content/Textures/UI/Abilities/ARA_FireSpew.sai2 differ
diff --git a/非公开资源/Content/Textures/UI/Abilities/ARA_Queen_Upgrade_1_Stage.sai2 b/非公开资源/Content/Textures/UI/Abilities/ARA_Queen_Upgrade_1_Stage.sai2
index 12e6cce..d2ae893 100644
Binary files a/非公开资源/Content/Textures/UI/Abilities/ARA_Queen_Upgrade_1_Stage.sai2 and b/非公开资源/Content/Textures/UI/Abilities/ARA_Queen_Upgrade_1_Stage.sai2 differ