52 Commits

Author SHA1 Message Date
ProjectKoi-Kalo\Kalo
c049cf4c5e 虫! 2025-09-04 23:02:54 +08:00
ProjectKoi-Kalo\Kalo
00d43cfba3 暂存 2025-09-04 22:21:01 +08:00
ProjectKoi-Kalo\Kalo
3df5314d4e 暂存 2025-09-04 21:12:22 +08:00
ProjectKoi-Kalo\Kalo
0982682cc9 暂存2 2025-09-04 21:01:54 +08:00
ProjectKoi-Kalo\Kalo
760ddee0cc 暂存 2025-09-04 20:40:32 +08:00
ProjectKoi-Kalo\Kalo
0207f5abd1 去掉开关电源 2025-09-04 18:48:25 +08:00
ProjectKoi-Kalo\Kalo
62b0ad265e 补上 2025-09-04 18:40:36 +08:00
ProjectKoi-Kalo\Kalo
b45df3cbfc 暂存 2025-09-04 18:37:22 +08:00
ProjectKoi-Kalo\Kalo
fda704ee2e Merge branch 'master' of https://git.ra3battle.cn/Kalospacer/ArachnaeSwarm 2025-09-04 17:34:25 +08:00
ProjectKoi-Kalo\Kalo
5643623725 暂存 2025-09-04 17:34:23 +08:00
Tourswen
bafda90d2e Update ARA_Building.xml 2025-09-04 17:30:59 +08:00
ProjectKoi-Kalo\Kalo
aab5e225c1 暂存key 2025-09-04 16:59:46 +08:00
ProjectKoi-Kalo\Kalo
4423a16a28 Merge branch '生物质工艺茧' 2025-09-04 16:47:14 +08:00
ProjectKoi-Kalo\Kalo
d78b18ddd3 暂存 2025-09-04 16:41:27 +08:00
Tourswen
b495a2025d 酸嗜种辅虫 2025-09-04 16:00:41 +08:00
ProjectKoi-Kalo\Kalo
37093dd923 暂存 2025-09-04 14:40:43 +08:00
ProjectKoi-Kalo\Kalo
cd880be9a4 暂存 2025-09-04 14:28:26 +08:00
ProjectKoi-Kalo\Kalo
5d79465213 暂存 2025-09-04 14:08:56 +08:00
Tourswen
11bf54225f 盾头虫和蜜罐虫的身体 2025-09-04 11:54:37 +08:00
Tourswen
313c99f14b 菌毯的修改,虫族建筑需要在菌毯建造(未测试) 2025-09-04 10:24:30 +08:00
Tourswen
648996be3d 完善盾头种,三种新辅虫以及其他修改 2025-09-04 01:36:10 +08:00
ProjectKoi-Kalo\Kalo
da6052fa57 挪工作树 2025-09-04 00:38:23 +08:00
Tourswen
0e79fa3988 开局剧本和盾头虫 2025-09-03 22:46:56 +08:00
ProjectKoi-Kalo\Kalo
4771066384 暂存 2025-09-03 20:16:59 +08:00
ProjectKoi-Kalo\Kalo
e6d1add44f Merge branch 'master' of https://git.ra3battle.cn/Kalospacer/ArachnaeSwarm 2025-09-03 19:54:57 +08:00
ProjectKoi-Kalo\Kalo
47d5dc9490 补产奶 2025-09-03 19:54:55 +08:00
Tourswen
5c779abdf5 几种建筑 2025-09-03 19:41:22 +08:00
Tourswen
9fcaa54f8b 修红 2025-09-03 15:37:05 +08:00
ProjectKoi-Kalo\Kalo
7890ea858c 呃呃 2025-09-03 13:45:48 +08:00
ProjectKoi-Kalo\Kalo
ef3f64cb88 整理 2025-09-03 13:35:30 +08:00
ProjectKoi-Kalo\Kalo
c8adcdae2c Merge branch 'animalwork' 2025-09-03 13:27:26 +08:00
ProjectKoi-Kalo\Kalo
a98b4d2612 修反复割除 2025-09-03 13:26:48 +08:00
ProjectKoi-Kalo\Kalo
9a8b90be82 修割除 2025-09-03 12:50:35 +08:00
ProjectKoi-Kalo\Kalo
2d4d171eb9 暂存修收获 2025-09-03 12:45:40 +08:00
ProjectKoi-Kalo\Kalo
aca5fa287d 修种植传递 2025-09-03 12:27:38 +08:00
ProjectKoi-Kalo\Kalo
ed9ac9d389 暂存 2025-09-03 12:07:45 +08:00
ProjectKoi-Kalo\Kalo
254a621c55 暂存 2025-09-03 11:57:11 +08:00
Tourswen
3457654214 虫蜜的贴图 2025-09-03 11:42:14 +08:00
ProjectKoi-Kalo\Kalo
b3be9897df Merge branch 'mechworkproxy' into animalwork
# Conflicts:
#	1.6/1.6/Assemblies/ArachnaeSwarm.dll
2025-09-03 11:05:41 +08:00
ProjectKoi-Kalo\Kalo
e5feb47e8b 暂存 2025-09-03 09:13:03 +08:00
Tourswen
4728ab42c6 蜜罐种的贴图 2025-09-03 01:47:23 +08:00
ProjectKoi-Kalo\Kalo
9e4eda256f 修质量 2025-09-02 21:49:46 +08:00
ProjectKoi-Kalo\Kalo
9b5a8a58d3 怪了好使了 2025-09-02 21:43:35 +08:00
ProjectKoi-Kalo\Kalo
8a7a947669 暂存 2025-09-02 21:28:25 +08:00
ProjectKoi-Kalo\Kalo
ce3e84116e Merge branch 'master' of https://git.ra3battle.cn/Kalospacer/ArachnaeSwarm 2025-09-02 18:39:45 +08:00
ProjectKoi-Kalo\Kalo
f74c2b844b 失败 2025-09-02 18:39:28 +08:00
ProjectKoi-Kalo\Kalo
b21de9de91 晕晕 2025-09-02 17:52:41 +08:00
Tourswen
94e4cb54ba 各种改动巴拉巴拉 2025-09-02 17:29:53 +08:00
ProjectKoi-Kalo\Kalo
9acd5aac1e 暂存 2025-09-02 16:36:03 +08:00
Tourswen
418739ac5b 墙体、女王需求等巴拉巴拉 2025-09-02 16:06:41 +08:00
ProjectKoi-Kalo\Kalo
6129bb1b50 暂存文档 2025-09-02 15:48:16 +08:00
ProjectKoi-Kalo\Kalo
d335b2008c 暂存 2025-09-02 15:06:36 +08:00
212 changed files with 8559 additions and 1016 deletions

Binary file not shown.

View File

@@ -6,6 +6,7 @@
<description>使用信息素标记一只阿拉克涅督虫,受到标记的督虫和其麾下的辅虫将誓死效忠于女皇种,并与其建立心灵链接。</description>
<iconPath>UI/Commands/EggSpew</iconPath> <!-- Placeholder: You'll need to create this icon -->
<hotKey>Misc1</hotKey>
<jobDef>CastAbilityOnThing</jobDef>
<targetRequired>true</targetRequired>
<cooldownTicksRange>60</cooldownTicksRange> <!-- 1 second cooldown -->
@@ -30,7 +31,6 @@
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_EggSpew</defName>
@@ -69,6 +69,40 @@
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_EggSpewBioforgeIncubator</defName>
<label>生育孵化茧</label>
<description>孵化茧</description>
<iconPath>UI/Commands/EggSpew</iconPath>
<cooldownTicksRange>5000</cooldownTicksRange>
<aiCanUse>true</aiCanUse>
<displayOrder>300</displayOrder>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>1</range>
<warmupTime>12</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>True</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ARA_Proj_BioforgeIncubator</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">
<needDef>Food</needDef>
<needCost>1</needCost>
<failMessage>营养值不足,需要进食</failMessage>
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_AcidSprayBurst</defName>
<label>女皇种酸液轰炸</label>
@@ -93,7 +127,7 @@
<li Class="ArachnaeSwarm.CompProperties_AbilitySprayLiquidMulti">
<!-- CompProperties_AbilitySprayLiquid 的属性 -->
<projectileDef>ARA_Proj_StrongSludgeSpray</projectileDef>
<numCellsToHit>13</numCellsToHit>
<numCellsToHit>26</numCellsToHit>
<sprayEffecter>AcidSpray_Directional</sprayEffecter>
<!-- CompProperties_AbilitySprayLiquidMulti 新增的属性 -->
@@ -111,6 +145,49 @@
</li>
</comps>
</AbilityDef>
<AbilityDef>
<defName>ARA_AcidSprayBurst_Myrmecocystus</defName>
<label>蜜罐种酸液轰炸</label>
<description>阿拉克涅蜜罐种向目标地点喷射大量腐蚀性酸液,虽然不如女皇种所喷射的酸雨那样强劲,但是虫酸的伤害依然是实打实的。</description>
<iconPath>UI/Abilities/AcidSpray</iconPath>
<cooldownTicksRange>12000</cooldownTicksRange> <!-- 2 hours -->
<aiCanUse>true</aiCanUse>
<displayOrder>300</displayOrder>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>15.9</range>
<warmupTime>3</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<targetParams>
<canTargetLocations>true</canTargetLocations>
</targetParams>
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilitySprayLiquidMulti">
<!-- CompProperties_AbilitySprayLiquid 的属性 -->
<projectileDef>ARA_Proj_StrongSludgeSpray</projectileDef>
<numCellsToHit>6</numCellsToHit>
<sprayEffecter>AcidSpray_Directional</sprayEffecter>
<!-- CompProperties_AbilitySprayLiquidMulti 新增的属性 -->
<shotCount>16</shotCount> <!-- 总共发射5次 -->
<ticksBetweenShots>3</ticksBetweenShots> <!-- 每次发射间隔12 Ticks (0.2秒) -->
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">
<needDef>Food</needDef>
<needCost>0.5</needCost>
<failMessage>营养值不足,需要进食</failMessage>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityBodyPartCheck">
<requiredPart>ARA_Acid_sac</requiredPart>
<failMessage>酸囊受损或缺失,无法喷射酸液</failMessage>
</li>
</comps>
</AbilityDef>
<ThingDef>
<defName>ARA_Proj_StrongSludgeSpray</defName>
@@ -135,7 +212,7 @@
<armorPenetrationBase>0.1</armorPenetrationBase>
<stoppingPower>1</stoppingPower>
<shadowSize>0</shadowSize>
<spawnTerrain>InsectSludge</spawnTerrain>
<spawnTerrain>ARA_InsectCreep</spawnTerrain>
<terrainChance>0.75</terrainChance>
<filth>Filth_Slime</filth>
<filthCount>1</filthCount>
@@ -158,4 +235,76 @@
<tryAdjacentFreeSpaces>true</tryAdjacentFreeSpaces>
</projectile>
</ThingDef>
<ThingDef ParentName="BaseGrenadeProjectile">
<defName>ARA_Proj_BioforgeIncubator</defName>
<label>阿拉克涅孵化茧</label>
<thingClass>Projectile_SpawnsThing</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_EggSac</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<damageDef>Bullet</damageDef>
<speed>21</speed>
<damageAmountBase>0</damageAmountBase>
<spawnsThingDef>ARA_BioforgeIncubator</spawnsThingDef>
<tryAdjacentFreeSpaces>true</tryAdjacentFreeSpaces>
</projectile>
</ThingDef>
<AbilityDef>
<defName>ARA_BaseRace_Acid_Launcher</defName>
<label>酸嗜种投射</label>
<description></description>
<iconPath>UI/Commands/EggSpew</iconPath>
<cooldownTicksRange>5000</cooldownTicksRange>
<aiCanUse>true</aiCanUse>
<displayOrder>300</displayOrder>
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<range>24</range>
<warmupTime>1</warmupTime>
<soundCast>AcidSpray_Resolve</soundCast>
<violent>false</violent>
<targetable>false</targetable>
<targetParams>
<canTargetSelf>false</canTargetSelf>
</targetParams>
</verbProperties>
<comps>
<li Class="CompProperties_AbilityLaunchProjectile">
<projectileDef>ArachnaeBase_Race_Acid_Proj</projectileDef>
</li>
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">
<needDef>Food</needDef>
<needCost>0.5</needCost>
<failMessage>营养值不足,需要进食</failMessage>
</li>
<!-- <li Class="ArachnaeSwarm.CompProperties_AbilityBodyPartCheck">
<requiredPart>ARA_Ovary</requiredPart>
<failMessage>卵巢受损或缺失,无法生育</failMessage>
</li> -->
</comps>
</AbilityDef>
<ThingDef ParentName="BaseGrenadeProjectile">
<defName>ArachnaeBase_Race_Acid_Proj</defName>
<label>阿拉克涅酸嗜种</label>
<thingClass>Projectile_SpawnsPawnZeroAge</thingClass>
<uiIconPath>Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south</uiIconPath>
<graphicData>
<texPath>Wula/Things/WULA_Attack_Cat/WULA_Cat_Thin_south</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<projectile>
<speed>41</speed>
<spawnsPawnKind>ArachnaeBase_Race_Acid</spawnsPawnKind>
<tryAdjacentFreeSpaces>true</tryAdjacentFreeSpaces>
<damageDef>ARA_AcidBurn</damageDef>
<damageAmountBase>10</damageAmountBase>
</projectile>
</ThingDef>
</Defs>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- ==================== Ability Def ==================== -->
<AbilityDef>
<defName>ARA_Ability_Possess</defName>
<label>阿拉克涅寄生</label>
<description>将你的意识注入另一个生物的身体,完全占据它。</description>
<iconPath>UI/Commands/EggSpew</iconPath>
<cooldownTicksRange>600</cooldownTicksRange>
<verbProperties>
<verbClass>Verb_CastAbility</verbClass>
<warmupTime>1.5</warmupTime>
<range>5.9</range>
<targetParams>
<canTargetPawns>true</canTargetPawns>
<canTargetBuildings>false</canTargetBuildings>
<canTargetSelf>false</canTargetSelf>
<canTargetLocations>false</canTargetLocations>
</targetParams>
</verbProperties>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AbilityPossess"/>
</comps>
</AbilityDef>
</Defs>

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_normal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>normal</browShapeDef>
<lidShapeDef>normal</lidShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
<headShapeDef>normal</headShapeDef>
</li>
</animationFrames>
<priority>0</priority>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_eyeMoving</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>15</duration>
<eyeballOffset>(-0.005,0,0)</eyeballOffset>
</li>
</animationFrames>
<priority>1002</priority>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>500</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_eyeMoving2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>15</duration>
<eyeballOffset>(0.005,0,0)</eyeballOffset>
</li>
</animationFrames>
<priority>1001</priority>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>500</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_eyeFlicker</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>3</duration>
</li>
</animationFrames>
<priority>1001</priority>
<roopIntervalMin>10 </roopIntervalMin>
<roopIntervalMax>30</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_blink</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>3</duration>
<browOffset>(0,0,-0.005)</browOffset>
<lidOffset>(0,0,-0.005)</lidOffset>
<lidShapeDef>normal</lidShapeDef>
</li>
<li>
<duration>12</duration>
<browOffset>(0,0,-0.01)</browOffset>
<lidShapeDef>close</lidShapeDef>
</li>
<li>
<duration>3</duration>
<browOffset>(0,0,-0.005)</browOffset>
<lidOffset>(0,0,-0.005)</lidOffset>
<lidShapeDef>normal</lidShapeDef>
</li>
</animationFrames>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>500</roopIntervalMax>
<priority>1000</priority>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 裸体想法 -->
<!-- <FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Thought_Naked</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<headShapeDef>blush</headShapeDef>
<browShapeDef>s-shaped</browShapeDef>
</li>
</animationFrames>
<priority>200</priority>
<targetThoughtDefs>
<li>Naked</li>
<li>GroinUncovered_Disapproved_Male</li>
<li>GroinUncovered_Disapproved_Female</li>
<li>GroinOrChestUncovered_Disapproved_Male</li>
<li>GroinOrChestUncovered_Disapproved_Female</li>
<li>GroinChestOrHairUncovered_Disapproved_Male</li>
<li>GroinChestOrHairUncovered_Disapproved_Female</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Male</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Female</li>
</targetThoughtDefs>
</FacialAnimation.FaceAnimationDef> -->
</Defs>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_AttackMelee</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>open</mouthShapeDef>
<browOffset>(0,0,-0.00875)</browOffset>
<lidOffset>(0.0,0,-0.005)</lidOffset>
</li>
</animationFrames>
<targetJobs>
<li>AttackMelee</li>
</targetJobs>
<priority>10200</priority>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>AttackMelee2</defName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>AttackMelee</li>
</targetJobs>
<priority>10201</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_AttackStatic</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>open</mouthShapeDef>
<browOffset>(0,0,-0.00875)</browOffset>
<lidOffset>(0.0,0,-0.005)</lidOffset>
</li>
</animationFrames>
<targetJobs>
<li>AttackStatic</li>
</targetJobs>
<priority>10200</priority>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>AttackStatic2</defName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>AttackStatic</li>
</targetJobs>
<priority>10201</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_DoBill</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<lidOffset>(0,0,-0.00625)</lidOffset>
<eyeballOffset>(0.0,0,-0.0075)</eyeballOffset>
<headOffset>(0,0,-0.0007)</headOffset>
<browShapeDef>normal</browShapeDef>
<browOffset>(0,0,-0.00325)</browOffset>
<mouthOffset>(0,0,-0.00125)</mouthOffset>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>0</roopIntervalMax>
<targetJobs>
<li>DoBill</li>
</targetJobs>
<priority>10000</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_DoBill2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>3</duration>
<lidOffset>(0,0,-0.0035)</lidOffset>
<eyeballOffset>(0.0,0,-0.00375)</eyeballOffset>
<headOffset>(0,0,-0.0035)</headOffset>
<browShapeDef>normal</browShapeDef>
<browOffset>(0,0,-0.00025)</browOffset>
<mouthOffset>(0,0,-0.000625)</mouthOffset>
</li>
<li>
<duration>6</duration>
<lidOffset>(0,0,-0.007)</lidOffset>
<eyeballOffset>(0.0,0,-0.00525)</eyeballOffset>
<headOffset>(0,0,-0.0075)</headOffset>
<browShapeDef>normal</browShapeDef>
<browOffset>(0,0,-0.00375)</browOffset>
<mouthOffset>(0,0,-0.00125)</mouthOffset>
</li>
<li>
<duration>3</duration>
<lidOffset>(0,0,-0.0035)</lidOffset>
<eyeballOffset>(0.0,0,-0.00375)</eyeballOffset>
<headOffset>(0,0,-0.0035)</headOffset>
<browShapeDef>normal</browShapeDef>
<browOffset>(0,0,-0.00025)</browOffset>
<mouthOffset>(0,0,-0.000625)</mouthOffset>
</li>
</animationFrames>
<roopIntervalMin>100</roopIntervalMin>
<roopIntervalMax>200</roopIntervalMax>
<targetJobs>
<li>DoBill</li>
</targetJobs>
<priority>10001</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Goto</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
<headOffset>(0.0,0,-0.0025)</headOffset>
</li>
</animationFrames>
<targetJobs>
<li>Goto</li>
</targetJobs>
<priority>10300</priority>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Ingest</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>4</duration>
<headOffset>(0.0,0,0.0025)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>4</duration>
<headOffset>(0.0,0,0.005)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>6</duration>
<headOffset>(0.0,0,0)</headOffset>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>30</roopIntervalMax>
<targetJobs>
<li>Ingest</li>
</targetJobs>
<priority>10</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_laydown</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>flat</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>0</roopIntervalMax>
<targetJobs>
<li>LayDown</li>
</targetJobs>
<priority>10001</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_laydown2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>240</duration>
<mouthShapeDef>open</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>100</roopIntervalMin>
<roopIntervalMax>500</roopIntervalMax>
<targetJobs>
<li>LayDown</li>
</targetJobs>
<priority>10002</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_laydown3</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>15</duration>
<lidOffset>(0.0,0,0.0015)</lidOffset>
<headOffset>(0,0,0.0035)</headOffset>
<browOffset>(0,0,0.00025)</browOffset>
<mouthOffset>(0,0,0.000625)</mouthOffset>
</li>
<li>
<duration>60</duration>
<lidOffset>(0.0,0,0.00275)</lidOffset>
<headOffset>(0,0,0.0075)</headOffset>
<browOffset>(0,0,0.00375)</browOffset>
<mouthOffset>(0,0,0.00125)</mouthOffset>
</li>
<li>
<duration>10</duration>
<lidOffset>(0.0,0,0.0015)</lidOffset>
<headOffset>(0,0,0.0035)</headOffset>
<browOffset>(0,0,0.00025)</browOffset>
<mouthOffset>(0,0,0.000625)</mouthOffset>
</li>
</animationFrames>
<roopIntervalMin>40</roopIntervalMin>
<roopIntervalMax>200</roopIntervalMax>
<targetJobs>
<li>LayDown</li>
</targetJobs>
<priority>10003</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Lovin</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>8</duration>
<browShapeDef>s-shaped</browShapeDef>
<headOffset>(0.0,0,0.00125)</headOffset>
<browOffset>(0.0,0,-0.005)</browOffset>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0.0,0,-0.001)</lidOffset>
<eyeballOffset>(0.0,0,0.0075)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>8</duration>
<browShapeDef>s-shaped</browShapeDef>
<headOffset>(0.0,0,-0.00375)</headOffset>
<browOffset>(0.0,0,-0.0075)</browOffset>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0.0,0,-0.0015)</lidOffset>
<eyeballOffset>(0.0,0,0.0075)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<mouthOffset>(0,0,-0.002)</mouthOffset>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>8</duration>
<browShapeDef>s-shaped</browShapeDef>
<headOffset>(0.0,0,0.0075)</headOffset>
<browOffset>(0.0,0,0.00125)</browOffset>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0.0,0,0.001)</lidOffset>
<eyeballOffset>(0.0,0,0.0075)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<mouthOffset>(0,0,-0.001)</mouthOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<targetJobs>
<li>Lovin</li>
<li>MLI_Jobs_MassLoveIn</li>
<li>MLI_Jobs_SingleLoveIn</li>
</targetJobs>
<priority>10400</priority>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Lovin2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>240</duration>
<browShapeDef>s-shaped</browShapeDef>
<headOffset>(0.0,0,0.01)</headOffset>
<browOffset>(0.0,0,-0.00)</browOffset>
<lidShapeDef>normal</lidShapeDef>
<lidOffset>(0.0,0,-0.001)</lidOffset>
<mouthOffset>(0,0,-0.001)</mouthOffset>
<eyeballOffset>(0.0,0,0.005)</eyeballOffset>
<mouthShapeDef>normal</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<roopIntervalMin>240</roopIntervalMin>
<roopIntervalMax>240</roopIntervalMax>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<targetJobs>
<li>Lovin</li>
<li>MLI_Jobs_MassLoveIn</li>
<li>MLI_Jobs_SingleLoveIn</li>
</targetJobs>
<priority>10500</priority>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Mine</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.005)</lidOffset>
<headOffset>(0,0,0)</headOffset>
<browShapeDef>angled</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>5</duration>
<lidOffset>(0,0,0.01)</lidOffset>
<headOffset>(0,0,-0.01)</headOffset>
<browShapeDef>angled</browShapeDef>
<mouthOffset>(0,0,-0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>0</roopIntervalMax>
<targetJobs>
<li>Mine</li>
</targetJobs>
<priority>10000</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_RemoveApparel</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(-0.005,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0.005,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>RemoveApparel</li>
</targetJobs>
<priority>105</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>300</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_RemoveApparel2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>normal</lidShapeDef>
<eyeballOffset>(0.0,0,0.005)</eyeballOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>RemoveApparel</li>
</targetJobs>
<priority>104</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_RemoveApparel3</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>120</duration>
<browShapeDef>flat</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<headOffset>(0.0,0,0.005)</headOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>RemoveApparel</li>
</targetJobs>
<priority>110</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>300</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Research</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>10</duration>
<lidOffset>(0,0,-0.005)</lidOffset>
<headOffset>(0,0,-0.01)</headOffset>
<browShapeDef>flat</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
<mouthOffset>(0,0,-0.00375)</mouthOffset>
</li>
</animationFrames>
<targetJobs>
<li>Research</li>
</targetJobs>
<priority>10001</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Research2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>4</duration>
<browOffset>(0,0,0.00325)</browOffset>
<lidOffset>(0,0,0.00625)</lidOffset>
<headOffset>(0,0,0.005)</headOffset>
<browShapeDef>normal</browShapeDef>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>40</duration>
<browOffset>(0,0,0.00625)</browOffset>
<lidOffset>(0,0,0.00875)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<browShapeDef>normal</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>3</duration>
<browOffset>(0,0,0.00625)</browOffset>
<lidOffset>(0,0,0.00875)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<lidShapeDef>close</lidShapeDef>
<browShapeDef>normal</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>20</duration>
<browOffset>(0,0,0.00625)</browOffset>
<lidOffset>(0,0,0.00875)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<browShapeDef>normal</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>3</duration>
<browOffset>(0,0,0.00625)</browOffset>
<lidOffset>(0,0,0.00875)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<lidShapeDef>close</lidShapeDef>
<browShapeDef>normal</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>40</duration>
<browOffset>(0,0,0.00625)</browOffset>
<lidOffset>(0,0,0.00875)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<browShapeDef>normal</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>8</duration>
<browOffset>(0,0,0.00325)</browOffset>
<lidOffset>(0,0,0.00625)</lidOffset>
<headOffset>(0,0,0.005)</headOffset>
<browShapeDef>normal</browShapeDef>
<mouthShapeDef>open</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>900</roopIntervalMin>
<roopIntervalMax>1200</roopIntervalMax>
<targetJobs>
<li>Research</li>
</targetJobs>
<priority>10002</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_SocialRelax</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>normal</browShapeDef>
<lidShapeDef>close</lidShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>SocialRelax</li>
</targetJobs>
<priority>10200</priority>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_StandAndBeSociallyActive</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>3</duration>
<browShapeDef>normal</browShapeDef>
<headOffset>(0.0,0,-0.0025)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>3</duration>
<browShapeDef>normal</browShapeDef>
<headOffset>(0.0,0,-0.005)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>3</duration>
<browShapeDef>normal</browShapeDef>
<headOffset>(0.0,0,0)</headOffset>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>100</roopIntervalMax>
<targetJobs>
<li>StandAndBeSociallyActive</li>
</targetJobs>
<priority>10</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Strip</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(-0.005,0,0.005)</eyeballOffset>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0.005,0,0.005)</eyeballOffset>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0,0,0.005)</eyeballOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Strip</li>
</targetJobs>
<priority>105</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>300</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>Strip2</defName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>normal</lidShapeDef>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Strip</li>
</targetJobs>
<priority>106</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_WaitCombat</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>angled</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wait_Combat</li>
</targetJobs>
<priority>10200</priority>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Wait_Combat_Rare</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>15</duration>
<browShapeDef>normal</browShapeDef>
</li>
<li>
<duration>4</duration>
<browOffset>(0,0,-0.00375)</browOffset>
<browShapeDef>flat</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0,0,-0.0025)</lidOffset>
<headOffset>(0,0,-0.00625)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>45</duration>
<browOffset>(0,0,-0.01)</browOffset>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0,0,-0.005)</lidOffset>
<headOffset>(0,0,-0.0175)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
<mouthOffset>(0,0,-0.005)</mouthOffset>
</li>
<li>
<duration>30</duration>
<browOffset>(0,0,-0.01)</browOffset>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0,0,-0.005)</lidOffset>
<headOffset>(0,0,-0.015)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
<mouthOffset>(0,0,-0.005)</mouthOffset>
</li>
<li>
<duration>7</duration>
<browOffset>(0,0,-0.00375)</browOffset>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<lidOffset>(0,0,-0.0025)</lidOffset>
<headOffset>(0,0,-0.0085)</headOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>4</duration>
<browShapeDef>flat</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
<li>
<duration>30</duration>
<browShapeDef>normal</browShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wait_Combat</li>
</targetJobs>
<priority>10301</priority>
<roopIntervalMin>1000</roopIntervalMin>
<roopIntervalMax>2000</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Wait_Downed</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>30</duration>
<browOffset>(0,0,0.015)</browOffset>
<lidOffset>(0,0,0.01)</lidOffset>
<headOffset>(0,0,0.01)</headOffset>
<browShapeDef>flat</browShapeDef>
<mouthOffset>(0,0,0.0025)</mouthOffset>
<mouthShapeDef>open</mouthShapeDef>
</li>
<li>
<duration>3</duration>
<browOffset>(0,0,0.0075)</browOffset>
<lidOffset>(0,0,0.005)</lidOffset>
<headOffset>(0,0,0.005)</headOffset>
<browShapeDef>flat</browShapeDef>
<mouthShapeDef>normal</mouthShapeDef>
</li>
</animationFrames>
<roopIntervalMin>0</roopIntervalMin>
<roopIntervalMax>100</roopIntervalMax>
<targetJobs>
<li>Wait_Downed</li>
</targetJobs>
<priority>10000</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>Wait_Downed2</defName>
<animationFrames>
<li>
<duration>3</duration>
<lidOffset>(0,0,0.005)</lidOffset>
<browShapeDef>flat</browShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wait_Downed</li>
</targetJobs>
<priority>10001</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Wear</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(-0.005,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0.005,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
<li>
<duration>10</duration>
<lidOffset>(0,0,0.0)</lidOffset>
<eyeballOffset>(0,0,0.005)</eyeballOffset>
<mouthShapeDef>open</mouthShapeDef>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wear</li>
</targetJobs>
<priority>105</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>300</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Wear2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
<animationFrames>
<li>
<duration>1</duration>
<browShapeDef>s-shaped</browShapeDef>
<lidShapeDef>normal</lidShapeDef>
<eyeballOffset>(0.0,0,0.005)</eyeballOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wear</li>
</targetJobs>
<priority>104</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
</FacialAnimation.FaceAnimationDef>
<FacialAnimation.FaceAnimationDef MayRequire="Nals.FacialAnimation">
<defName>Wear3</defName>
<animationFrames>
<li>
<duration>120</duration>
<browShapeDef>flat</browShapeDef>
<lidShapeDef>close</lidShapeDef>
<headOffset>(0.0,0,0.005)</headOffset>
<headShapeDef>blush</headShapeDef>
</li>
</animationFrames>
<targetJobs>
<li>Wear</li>
</targetJobs>
<priority>110</priority>
<applyWhenStandingOnly>true</applyWhenStandingOnly>
<roopIntervalMin>30 </roopIntervalMin>
<roopIntervalMax>300</roopIntervalMax>
</FacialAnimation.FaceAnimationDef>
</Defs>

View File

@@ -27,8 +27,8 @@
</AlienRace.AlienBackstoryDef>
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Queen_BS_Adult_1</defName>
<title>王道征途</title>
<titleShort>王道征途</titleShort>
<title>见习女皇</title>
<titleShort>见习女皇</titleShort>
<description>[PAWN_nameDef]顺利地在虫巢中长大后,她离开了生养她的巢穴并来到一片陌生的地域,着手准备建立自己的势力。\n\n[PAWN_nameDef]知道自己势单力薄,比起其他娇生惯养的姐妹,她在很多事情上更愿意亲力亲为。</description>
<slot>Adulthood</slot>
<skillGains>
@@ -47,9 +47,9 @@
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Node_BS_Child_1</defName>
<title>阿拉克涅虫</title>
<titleShort>阿拉克涅虫族</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅虫族</description>
<title>阿拉克涅</title>
<titleShort>督虫</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅督虫——这个种姓的阿拉克涅虫族是虫巢的中坚力量,服从于女皇种的指挥的同时,也指挥着麾下的辅虫。她们从诞生之初便肩负着不同的使命,并且在较短的寿命中尽心尽力地服侍虫群</description>
<slot>Childhood</slot>
<spawnCategories>
@@ -62,16 +62,50 @@
<requiresSpawnCategory>true</requiresSpawnCategory>
</AlienRace.AlienBackstoryDef>
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Node_BS_Adult_1</defName>
<title>阿拉克涅督虫</title>
<titleShort>阿拉克涅督虫</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅督虫种</description>
<defName>Arachnae_Node_BS_Adult_Myrmecocystus</defName>
<title>阿拉克涅蜜罐</title>
<titleShort>蜜罐</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅蜜罐种督虫。基因的选择性表达使其长出了肿胀的囊袋和复杂的口器,这使得她可以吞噬那些未经过处理的尸体和各种杂食或是将其进一步分解,并通过消化器官将其转变为阿拉克涅虫蜜以供其他虫族食用。\n\n[PAWN_nameDef]在战斗中并不是一个值得正视的对手,她没有可以接入武装器官的副肢,脆弱臃肿的特性也决定了她几乎无法躲开任何攻击</description>
<slot>Adulthood</slot>
<requiredWorkTags>Cooking</requiredWorkTags>
<spawnCategories>
<li>ArachnaeNode_spawnCategories_Myrmecocystus</li>
</spawnCategories>
</AlienRace.AlienBackstoryDef>
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Node_BS_Adult_ShieldHead</defName>
<title>阿拉克涅盾头种</title>
<titleShort>盾头种</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅盾头种督虫。盾头种是一种笨重的阿拉克涅虫族,她们拥有厚厚的经常过度生长的甲壳,除了生产甲壳素外,也拥有接入武装器官的辅肢,可以凭借虫群的武装器官和自己与生俱来的盔甲承担保卫虫巢的任务。</description>
<slot>Adulthood</slot>
<spawnCategories>
<li>ArachnaeNode_spawnCategoriesB</li>
<li>ArachnaeNode_spawnCategories_ShieldHead</li>
</spawnCategories>
</AlienRace.AlienBackstoryDef>
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Node_BS_Adult_WeaponSmith</defName>
<title>阿拉克涅工艺种</title>
<titleShort>工艺种</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅工艺种督虫。能够产出专门用来孵化阿拉克涅武器种的孵化茧,负责阿拉克涅虫巢的基础维护。\n\n[PAWN_nameDef]在战斗中并不是一个值得正视的对手,她没有可以接入武装器官的副肢,脆弱臃肿的特性也决定了她几乎无法躲开任何攻击。</description>
<slot>Adulthood</slot>
<spawnCategories>
<li>ArachnaeNode_spawnCategories_WeaponSmith</li>
</spawnCategories>
</AlienRace.AlienBackstoryDef>
<AlienRace.AlienBackstoryDef ParentName="ARA_BaseBackStory">
<defName>Arachnae_Node_BS_Adult_Facehugger</defName>
<title>阿拉克涅原虫种</title>
<titleShort>原虫种</titleShort>
<description>[PAWN_nameDef]是一只阿拉克涅原虫种督虫。[PAWN_nameDef]通过独特的神经链接管伸入受害者身体来接管受害者的身体。不同于普通阿拉克涅虫族,阿拉克涅原虫种拥有自我意识,不需要女皇种的监管。</description>
<slot>Adulthood</slot>
<spawnCategories>
<li>ArachnaeNode_spawnCategories_Facehugger</li>
</spawnCategories>
</AlienRace.AlienBackstoryDef>
</Defs>

View File

@@ -154,9 +154,9 @@
<!-- 尾部组织群 -->
<li>
<def>ARA_Tail</def>
<coverage>0.02</coverage>
<height>Bottom</height>
<depth>Inside</depth>
<coverage>0</coverage>
<groups>
<li>Torso</li>
</groups>
@@ -670,95 +670,250 @@
<listOrder>125</listOrder>
</BodyPartGroupDef>
<!-- EN: beetle-like with claw -->
<BodyDef>
<defName>ARA_BeetleLikeWithClaw</defName>
<label>带头颚甲虫类</label> <!-- EN: beetle-like with claw -->
<defName>ArachnaeMyrmecocystus_Body</defName>
<label>阿拉克涅蜜罐种</label> <!-- EN: beetle-like with claw -->
<corePart>
<def>Shell</def>
<customLabel></customLabel> <!-- EN: shell -->
<def>Torso</def>
<height>Middle</height>
<depth>Outside</depth>
<groups>
<li>Torso</li>
</groups>
<parts>
<li>
<def>Elytra</def>
<customLabel>左鞘翅</customLabel> <!-- EN: left elytra -->
<coverage>0.05</coverage>
<def>Ribcage</def>
<coverage>0.036</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Elytra</def>
<customLabel>右鞘翅</customLabel> <!-- EN: right elytra -->
<coverage>0.05</coverage>
<def>Sternum</def>
<coverage>0.015</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Pelvis</def>
<coverage>0.025</coverage>
<height>Bottom</height>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Spine</def>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Stomach</def>
<coverage>0.05</coverage>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>InsectHeart</def>
<customLabel>心脏</customLabel> <!-- EN: heart -->
<coverage>0.03</coverage>
<def>Heart</def>
<coverage>0.020</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Pronotum</def>
<customLabel>前胸背板</customLabel> <!-- EN: pronotum -->
<coverage>0.18</coverage>
<def>Lung</def>
<customLabel>左肺</customLabel>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Lung</def>
<customLabel>右肺</customLabel>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Kidney</def>
<customLabel>左肾</customLabel>
<coverage>0.017</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Kidney</def>
<customLabel>右肾</customLabel>
<coverage>0.017</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Liver</def>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Neck</def>
<coverage>0.075</coverage>
<height>Top</height>
<groups>
<li>Neck</li>
</groups>
<parts>
<li>
<def>InsectHead</def>
<customLabel></customLabel> <!-- EN: head -->
<coverage>0.65</coverage>
<def>Head</def>
<coverage>0.80</coverage>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
<li>HeadAttackTool</li>
</groups>
<parts>
<li>
<def>Brain</def>
<coverage>0.2</coverage>
<def>Skull</def>
<coverage>0.18</coverage>
<depth>Inside</depth>
</li>
<li>
<def>Eye</def>
<customLabel>左眼</customLabel> <!-- EN: left eye -->
<coverage>0.12</coverage>
</li>
<li>
<def>Eye</def>
<customLabel>右眼</customLabel> <!-- EN: right eye -->
<coverage>0.12</coverage>
</li>
<li>
<def>Antenna</def>
<customLabel>左触角</customLabel> <!-- EN: left antenna -->
<coverage>0.08</coverage>
</li>
<li>
<def>Antenna</def>
<customLabel>右触角</customLabel> <!-- EN: right antenna -->
<coverage>0.08</coverage>
</li>
<li>
<def>InsectNostril</def>
<customLabel></customLabel> <!-- EN: nostril -->
<coverage>0.06</coverage>
</li>
<li>
<def>InsectMouth</def>
<customLabel>口器</customLabel> <!-- EN: mouth -->
<coverage>0.08</coverage>
<groups>
<li>Mouth</li>
<li>UpperHead</li>
<li>Eyes</li>
<li>FullHead</li>
</groups>
<parts>
<li>
<def>Brain</def>
<coverage>0.8</coverage>
<groups>
<li>UpperHead</li>
<li>Eyes</li>
<li>FullHead</li>
</groups>
</li>
</parts>
</li>
<li>
<def>Eye</def>
<customLabel>left eye</customLabel>
<coverage>0.07</coverage>
<groups>
<li>FullHead</li>
<li>Eyes</li>
</groups>
<woundAnchorTag>LeftEye</woundAnchorTag>
<flipGraphic>true</flipGraphic>
<visibleHediffRots>
<li>South</li>
<li>West</li>
</visibleHediffRots>
</li>
<li>
<def>Eye</def>
<customLabel>right eye</customLabel>
<coverage>0.07</coverage>
<groups>
<li>FullHead</li>
<li>Eyes</li>
</groups>
<woundAnchorTag>RightEye</woundAnchorTag>
<visibleHediffRots>
<li>South</li>
<li>East</li>
</visibleHediffRots>
</li>
<li>
<def>Ear</def>
<customLabel>左耳</customLabel>
<coverage>0.07</coverage>
<flipGraphic>true</flipGraphic>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
</groups>
</li>
<li>
<def>HeadClaw</def>
<customLabel>头颚</customLabel> <!-- EN: head claw -->
<def>Ear</def>
<customLabel>右耳</customLabel>
<coverage>0.07</coverage>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Nose</def>
<coverage>0.10</coverage>
<groups>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Jaw</def>
<coverage>0.15</coverage>
<groups>
<li>HeadClaw</li>
<li>Teeth</li>
<li>FullHead</li>
<li>Mouth</li>
</groups>
<parts>
<li>
<def>Tongue</def>
<coverage>0.001</coverage>
<depth>Inside</depth>
<groups>
<li>FullHead</li>
</groups>
</li>
</parts>
</li>
</parts>
</li>
</parts>
</li>
<li>
<def>Shoulder</def>
<customLabel>左肩</customLabel>
<coverage>0.12</coverage>
<woundAnchorTag>LeftShoulder</woundAnchorTag>
<groups>
<li>Shoulders</li>
</groups>
<parts>
<li>
<def>Arm</def>
<customLabel>左辅肢</customLabel>
<coverage>0.77</coverage>
<groups>
<li>Arms</li>
</groups>
<parts>
<li>
<def>Hand</def>
<customLabel>左手</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Hands</li>
</groups>
</li>
</parts>
@@ -766,40 +921,476 @@
</parts>
</li>
<li>
<def>InsectLeg</def>
<customLabel>左前肢</customLabel> <!-- EN: front left leg -->
<coverage>0.06</coverage>
<height>Bottom</height>
<def>Shoulder</def>
<customLabel>右肩</customLabel>
<coverage>0.12</coverage>
<woundAnchorTag>RightShoulder</woundAnchorTag>
<groups>
<li>Shoulders</li>
</groups>
<parts>
<li>
<def>Arm</def>
<customLabel>右辅肢</customLabel>
<coverage>0.77</coverage>
<groups>
<li>Arms</li>
</groups>
<parts>
<li>
<def>Hand</def>
<customLabel>右手</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Hands</li>
</groups>
</li>
</parts>
</li>
</parts>
</li>
<li>
<def>InsectLeg</def>
<customLabel>右前肢</customLabel> <!-- EN: front right leg -->
<coverage>0.06</coverage>
<def>Waist</def>
<coverage>0</coverage>
<height>Bottom</height>
<groups>
<li>Waist</li>
</groups>
</li>
<li>
<def>InsectLeg</def>
<customLabel>中肢</customLabel> <!-- EN: middle left leg -->
<coverage>0.06</coverage>
<def>Leg</def>
<customLabel></customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Legs</li>
</groups>
<woundAnchorTag>LeftLeg</woundAnchorTag>
<flipGraphic>true</flipGraphic>
<parts>
<li>
<def>Foot</def>
<customLabel>左足</customLabel>
<coverage>0.1</coverage>
<flipGraphic>true</flipGraphic>
<groups>
<li>Feet</li>
</groups>
</li>
</parts>
</li>
<li>
<def>InsectLeg</def>
<customLabel>中肢</customLabel> <!-- EN: middle right leg -->
<coverage>0.06</coverage>
<def>Leg</def>
<customLabel></customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Legs</li>
</groups>
<woundAnchorTag>RightLeg</woundAnchorTag>
<parts>
<li>
<def>Foot</def>
<customLabel>右足</customLabel>
<coverage>0.1</coverage>
<groups>
<li>Feet</li>
</groups>
</li>
</parts>
</li>
<!-- 尾部组织群 -->
<li>
<def>ARA_Tail</def>
<height>Bottom</height>
<depth>Inside</depth>
<coverage>0</coverage>
<groups>
<li>Torso</li>
</groups>
<parts>
<!-- 甲片,防御作用 -->
<li>
<def>ARA_Chitin_Shell</def>
<coverage>0.01</coverage>
<depth>Outside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<!-- 酸囊 -->
<li>
<def>ARA_Acid_sac</def>
<coverage>0.005</coverage>
<depth>Inside</depth>
<groups>
<li>ARA_Acid_sacs</li>
</groups>
</li>
</parts>
</li>
</parts>
</corePart>
</BodyDef>
<BodyDef>
<defName>ArachnaeShieldHead_Body</defName>
<label>阿拉克涅盾头种</label> <!-- EN: beetle-like with claw -->
<corePart>
<def>Torso</def>
<height>Middle</height>
<depth>Outside</depth>
<groups>
<li>Torso</li>
</groups>
<parts>
<li>
<def>Ribcage</def>
<coverage>0.036</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>InsectLeg</def>
<customLabel>左后肢</customLabel> <!-- EN: rear left leg -->
<coverage>0.06</coverage>
<height>Bottom</height>
<def>Sternum</def>
<coverage>0.015</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>InsectLeg</def>
<customLabel>右后肢</customLabel> <!-- EN: rear right leg -->
<coverage>0.06</coverage>
<def>Pelvis</def>
<coverage>0.025</coverage>
<height>Bottom</height>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Spine</def>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Stomach</def>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Heart</def>
<coverage>0.020</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Lung</def>
<customLabel>左肺</customLabel>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Lung</def>
<customLabel>右肺</customLabel>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Kidney</def>
<customLabel>左肾</customLabel>
<coverage>0.017</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Kidney</def>
<customLabel>右肾</customLabel>
<coverage>0.017</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Liver</def>
<coverage>0.025</coverage>
<depth>Inside</depth>
<groups>
<li>Torso</li>
</groups>
</li>
<li>
<def>Neck</def>
<coverage>0.075</coverage>
<height>Top</height>
<groups>
<li>Neck</li>
</groups>
<parts>
<!-- 甲片,防御作用 -->
<li>
<def>ARA_Chitin_Shell</def>
<customLabel>盾头甲</customLabel>
<coverage>0.02</coverage>
<depth>Outside</depth>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Head</def>
<coverage>0.80</coverage>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
<li>HeadAttackTool</li>
</groups>
<parts>
<li>
<def>Skull</def>
<coverage>0.18</coverage>
<depth>Inside</depth>
<groups>
<li>UpperHead</li>
<li>Eyes</li>
<li>FullHead</li>
</groups>
<parts>
<li>
<def>Brain</def>
<coverage>0.8</coverage>
<groups>
<li>UpperHead</li>
<li>Eyes</li>
<li>FullHead</li>
</groups>
</li>
</parts>
</li>
<li>
<def>Eye</def>
<customLabel>left eye</customLabel>
<coverage>0.07</coverage>
<groups>
<li>FullHead</li>
<li>Eyes</li>
</groups>
<woundAnchorTag>LeftEye</woundAnchorTag>
<flipGraphic>true</flipGraphic>
<visibleHediffRots>
<li>South</li>
<li>West</li>
</visibleHediffRots>
</li>
<li>
<def>Eye</def>
<customLabel>right eye</customLabel>
<coverage>0.07</coverage>
<groups>
<li>FullHead</li>
<li>Eyes</li>
</groups>
<woundAnchorTag>RightEye</woundAnchorTag>
<visibleHediffRots>
<li>South</li>
<li>East</li>
</visibleHediffRots>
</li>
<li>
<def>Ear</def>
<customLabel>左耳</customLabel>
<coverage>0.07</coverage>
<flipGraphic>true</flipGraphic>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Ear</def>
<customLabel>右耳</customLabel>
<coverage>0.07</coverage>
<groups>
<li>UpperHead</li>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Nose</def>
<coverage>0.10</coverage>
<groups>
<li>FullHead</li>
</groups>
</li>
<li>
<def>Jaw</def>
<coverage>0.15</coverage>
<groups>
<li>Teeth</li>
<li>FullHead</li>
<li>Mouth</li>
</groups>
<parts>
<li>
<def>Tongue</def>
<coverage>0.001</coverage>
<depth>Inside</depth>
<groups>
<li>FullHead</li>
</groups>
</li>
</parts>
</li>
</parts>
</li>
</parts>
</li>
<li>
<def>Shoulder</def>
<customLabel>左肩</customLabel>
<coverage>0.12</coverage>
<woundAnchorTag>LeftShoulder</woundAnchorTag>
<groups>
<li>Shoulders</li>
</groups>
<parts>
<li>
<def>Arm</def>
<customLabel>左辅肢</customLabel>
<coverage>0.77</coverage>
<groups>
<li>Arms</li>
</groups>
<parts>
<li>
<def>Hand</def>
<customLabel>左手</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Hands</li>
</groups>
</li>
</parts>
</li>
</parts>
</li>
<li>
<def>Shoulder</def>
<customLabel>右肩</customLabel>
<coverage>0.12</coverage>
<woundAnchorTag>RightShoulder</woundAnchorTag>
<groups>
<li>Shoulders</li>
</groups>
<parts>
<li>
<def>Arm</def>
<customLabel>右辅肢</customLabel>
<coverage>0.77</coverage>
<groups>
<li>Arms</li>
</groups>
<parts>
<li>
<def>Hand</def>
<customLabel>右手</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Hands</li>
</groups>
</li>
</parts>
</li>
</parts>
</li>
<li>
<def>Waist</def>
<coverage>0</coverage>
<height>Bottom</height>
<groups>
<li>Waist</li>
</groups>
</li>
<li>
<def>Leg</def>
<customLabel>左腿</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Legs</li>
</groups>
<woundAnchorTag>LeftLeg</woundAnchorTag>
<flipGraphic>true</flipGraphic>
<parts>
<!-- 甲片,防御作用 -->
<li>
<def>ARA_Chitin_Shell</def>
<coverage>0.12</coverage>
<depth>Outside</depth>
<groups>
<li>Legs</li>
</groups>
</li>
<li>
<def>Foot</def>
<customLabel>左足</customLabel>
<coverage>0.1</coverage>
<flipGraphic>true</flipGraphic>
<groups>
<li>Feet</li>
</groups>
</li>
</parts>
</li>
<li>
<def>Leg</def>
<customLabel>右腿</customLabel>
<coverage>0.14</coverage>
<height>Bottom</height>
<groups>
<li>Legs</li>
</groups>
<woundAnchorTag>RightLeg</woundAnchorTag>
<parts>
<!-- 甲片,防御作用 -->
<li>
<def>ARA_Chitin_Shell</def>
<coverage>0.12</coverage>
<depth>Outside</depth>
<groups>
<li>Legs</li>
</groups>
</li>
<li>
<def>Foot</def>
<customLabel>右足</customLabel>
<coverage>0.1</coverage>
<groups>
<li>Feet</li>
</groups>
</li>
</parts>
</li>
</parts>
</corePart>

View File

@@ -14,4 +14,16 @@
<hediff>AcidBurn</hediff>
<scaleDamageToBuildingsBasedOnFlammability>false</scaleDamageToBuildingsBasedOnFlammability>
</DamageDef>
<DamageDef ParentName="CutBase">
<defName>ARA_AcidCut</defName>
<label>酸性撕咬</label>
<workerClass>DamageWorker_AddInjury</workerClass>
<deathMessage>{0} 被携带酸液的巨颚咬死了。</deathMessage>
<additionalHediffs>
<li>
<hediff>ARA_AcidCoverd</hediff>
<severityPerDamageDealt>0.01</severityPerDamageDealt>
</li>
</additionalHediffs>
</DamageDef>
</Defs>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<DesignationCategoryDef>
<defName>ARA_Buildings</defName>
<label>阿拉克涅巢穴</label>
<description>阿拉克涅虫群的各种由甲壳素和活体组织构建的“建筑”</description>
<order>255</order>
<specialDesignatorClasses>
<li>Designator_Cancel</li>
<li>Designator_Deconstruct</li>
</specialDesignatorClasses>
</DesignationCategoryDef>
</Defs>

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.BrowShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.BrowShapeDef>
<FacialAnimation.BrowShapeDef MayRequire="Nals.FacialAnimation">
<defName>flat</defName>
</FacialAnimation.BrowShapeDef>
<FacialAnimation.BrowShapeDef MayRequire="Nals.FacialAnimation">
<defName>angled</defName>
</FacialAnimation.BrowShapeDef>
<FacialAnimation.BrowShapeDef MayRequire="Nals.FacialAnimation">
<defName>s-shaped</defName>
</FacialAnimation.BrowShapeDef>
</Defs>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.EmotionShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.EmotionShapeDef>
<FacialAnimation.EmotionShapeDef MayRequire="Nals.FacialAnimation">
<defName>blush</defName>
</FacialAnimation.EmotionShapeDef>
</Defs>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.EyeballShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
<label>normal</label>
</FacialAnimation.EyeballShapeDef>
</Defs>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.HeadShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.HeadShapeDef>
<FacialAnimation.HeadShapeDef MayRequire="Nals.FacialAnimation">
<defName>blush</defName>
</FacialAnimation.HeadShapeDef>
</Defs>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.LidOptionShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.LidOptionShapeDef>
</Defs>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.LidShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.LidShapeDef>
<FacialAnimation.LidShapeDef MayRequire="Nals.FacialAnimation">
<defName>close</defName>
<disableEyeball>true</disableEyeball>
</FacialAnimation.LidShapeDef>
</Defs>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.MouthShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.MouthShapeDef>
<FacialAnimation.MouthShapeDef MayRequire="Nals.FacialAnimation">
<defName>open</defName>
</FacialAnimation.MouthShapeDef>
</Defs>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FacialAnimation.SkinShapeDef MayRequire="Nals.FacialAnimation">
<defName>normal</defName>
</FacialAnimation.SkinShapeDef>
</Defs>

View File

@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- 眉毛的定义 -->
<FacialAnimation.BrowTypeDef Name="ArachnaeNode_Brow" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Brows/Normal</texPath>
<shader>Map/Transparent</shader>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.BrowTypeDef>
<!-- 眼睛的定义 -->
<FacialAnimation.EyeballTypeDef Name="ArachnaeNode_EyeA" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Normal</texPath>
<altMaskPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Common</altMaskPath>
<shader>Map/CutoutSkinOverlay</shader>
<minColor>RGB(72,222,213)</minColor>
<maxColor>RGB(72,222,213)</maxColor>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef Name="ArachnaeNode_EyeB" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Normal</texPath>
<altMaskPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Common</altMaskPath>
<shader>Map/CutoutSkinOverlay</shader>
<minColor>RGB(227,30,76)</minColor>
<maxColor>RGB(227,30,76)</maxColor>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef Name="ArachnaeNode_EyeC" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Normal</texPath>
<altMaskPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Common</altMaskPath>
<shader>Map/CutoutSkinOverlay</shader>
<minColor>RGB(30,227,76)</minColor>
<maxColor>RGB(30,227,76)</maxColor>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef Name="ArachnaeNode_EyeD" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Normal</texPath>
<altMaskPath>ArachnaeSwarm/Things/ARA_HiveNode/Eyes/Common</altMaskPath>
<shader>Map/CutoutSkinOverlay</shader>
<minColor>RGB(225,232,64)</minColor>
<maxColor>RGB(225,232,64)</maxColor>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.EyeballTypeDef>
<!-- 头的定义 -->
<FacialAnimation.HeadTypeDef Name="ArachnaeNode_Head" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Heads_Blank/Normal</texPath>
<shader>Map/CutoutSkin</shader>
<shaderColorOverride>Map/CutoutSkinOverride</shaderColorOverride>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.HeadTypeDef>
<!-- 睫毛的定义 -->
<FacialAnimation.LidTypeDef Name="ArachnaeNode_Lid" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal</texPath>
<shader>Map/Transparent</shader>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.LidTypeDef>
<!-- 嘴的定义 -->
<FacialAnimation.MouthTypeDef Name="ArachnaeNode_Mouth" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal</texPath>
<shader>Map/Transparent</shader>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.MouthTypeDef>
<!-- 皮肤的定义 -->
<FacialAnimation.SkinTypeDef Name="ArachnaeNode_Skin" MayRequire="Nals.FacialAnimation" Abstract="True">
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Skins/Normal</texPath>
<shader>Map/CutoutSkin</shader>
<enableUnisexTexPath>True</enableUnisexTexPath>
</FacialAnimation.SkinTypeDef>
<FacialAnimation.BrowTypeDef ParentName="ArachnaeNode_Brow" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_BrowNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.BrowTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeA" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_EyeNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeB" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_EyeNormal2</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeC" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_EyeNormal3</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeD" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_EyeNormal4</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.HeadTypeDef ParentName="ArachnaeNode_Head" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_HeadNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.HeadTypeDef>
<FacialAnimation.LidTypeDef ParentName="ArachnaeNode_Lid" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_LidNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.LidTypeDef>
<FacialAnimation.MouthTypeDef ParentName="ArachnaeNode_Mouth" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_MouthNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.MouthTypeDef>
<FacialAnimation.SkinTypeDef ParentName="ArachnaeNode_Skin" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_Myrmecocystus_SkinNormal</defName>
<raceName>ArachnaeNode_Race_Myrmecocystus</raceName>
</FacialAnimation.SkinTypeDef>
<FacialAnimation.BrowTypeDef ParentName="ArachnaeNode_Brow" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_BrowNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.BrowTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeA" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_EyeNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeB" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_EyeNormal2</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeC" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_EyeNormal3</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.EyeballTypeDef ParentName="ArachnaeNode_EyeD" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_EyeNormal4</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.EyeballTypeDef>
<FacialAnimation.HeadTypeDef ParentName="ArachnaeNode_Head" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_HeadNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.HeadTypeDef>
<FacialAnimation.LidTypeDef ParentName="ArachnaeNode_Lid" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_LidNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.LidTypeDef>
<FacialAnimation.MouthTypeDef ParentName="ArachnaeNode_Mouth" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_MouthNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.MouthTypeDef>
<FacialAnimation.SkinTypeDef ParentName="ArachnaeNode_Skin" MayRequire="Nals.FacialAnimation">
<defName>ArachnaeNode_Race_ShieldHead_SkinNormal</defName>
<raceName>ArachnaeNode_Race_ShieldHead</raceName>
</FacialAnimation.SkinTypeDef>
</Defs>

View File

@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<FactionDef ParentName="PlayerFactionBase">
<defName>ARA_New_Hive</defName>
<label>阿拉克涅虫巢</label>
<description>一个新的阿拉克涅虫巢。</description>
<isPlayer>true</isPlayer>
<basicMemberKind>Colonist</basicMemberKind>
<pawnSingular>colonist</pawnSingular>
<pawnsPlural>colonists</pawnsPlural>
<techLevel>Animal</techLevel>
<backstoryFilters>
<li>
<categories>
<li>Offworld</li>
</categories>
</li>
</backstoryFilters>
<!-- 命名规则 -->
<factionNameMaker>ARA_New_Hive_NamerFaction</factionNameMaker>
<settlementNameMaker>NamerSettlementOutlander</settlementNameMaker>
<allowedCultures><li>Astropolitan</li></allowedCultures>
<factionIconPath>World/WorldObjects/Expanding/Town</factionIconPath>
<startingResearchTags>
<li>TribalStart</li>
</startingResearchTags>
<startingTechprintsResearchTags>
<li>TribalStart</li>
<li>TribalStartTechprints</li>
</startingTechprintsResearchTags>
<!-- 指定初始衣物的材质 -->
<apparelStuffFilter>
<thingDefs>
<li>Cloth</li>
</thingDefs>
</apparelStuffFilter>
</FactionDef>
<RulePackDef>
<defName>ARA_New_Hive_NamerFaction</defName>
<rulePack>
<rulesStrings>
<li>r_name->[msyl] [hivename]</li>
<li>hivename->虫巢</li>
<li>msyl->伊尔瓦巴</li>
<li>msyl->赞诺瓦</li>
<li>msyl->比丘</li>
<li>msyl->珀尔迪达</li>
<li>msyl->西萨力克</li>
<li>msyl->希莱克</li>
<li>msyl->切利斯</li>
<li>msyl->韦恩娜</li>
<li>msyl->卡索恩</li>
<li>msyl->卓尔克</li>
<li>msyl->叩科马</li>
<li>msyl->阿琳</li>
<li>msyl->杜布罗格那格</li>
<li>msyl->伊塔克</li>
<li>msyl->代德申科</li>
<li>msyl->鲍特罗</li>
<li>msyl->弗尔特维尔</li>
<li>msyl->捷库阿</li>
<li>msyl->克里斯特森</li>
<li>msyl->巴恩斯</li>
<li>msyl->伊瑞希尔</li>
<li>msyl->新瓷器</li>
<li>msyl->哈德斯</li>
<li>msyl->伊弗尔</li>
<li>msyl->阿切斯塔</li>
<li>msyl->欧德斯</li>
<li>msyl->伊拉戴尔夫</li>
</rulesStrings>
</rulePack>
</RulePackDef>
</Defs>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<HairDef>
<defName>ARA_Scattered_Hair_Long</defName>
<label>散发(长)</label>
<hairGender>Female</hairGender>
<texPath>ArachnaeSwarm/Hair/ARA_Scattered_Hair_Long</texPath>
<category>ARA_HiveNode_Style</category>
<styleTags>
<li>ARA_HiveNode_Style</li>
</styleTags>
</HairDef>
</Defs>

View File

@@ -2,8 +2,8 @@
<Defs>
<HediffDef>
<defName>ARA_AcidCoverd</defName>
<label>阿拉克涅</label>
<description>一支拥有酸囊的阿拉克涅虫族向此人喷射了强酸,沾染的强酸将使得此人痛不欲生,盔甲和表皮软化,并持续灼烧它的身体。</description>
<label>阿拉克涅</label>
<description>一支拥有酸囊的阿拉克涅虫族向此人喷射了强酸,沾染的液体将使得此人痛不欲生,盔甲和表皮软化,并持续灼烧它的身体。</description>
<defaultLabelColor>(1, 1, 0.8)</defaultLabelColor>
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
<comps>
@@ -18,7 +18,7 @@
<modExtensions>
<li Class="ArachnaeSwarm.CurseFlameModExt">
<damageDefName>AcidBurn</damageDefName>
<damageRange>1~5</damageRange>
<damageRange>1~2</damageRange>
<damageIntervalTicks>40</damageIntervalTicks>
</li>
</modExtensions>

View File

@@ -14,6 +14,16 @@
<label>连接至 {0} 个虫群工蜂</label>
<minSeverity>0</minSeverity>
<!-- Stat offsets will be added here later -->
<disablesNeeds>
<li>Joy</li>
<li>Beauty</li>
<li>Comfort</li>
<li>Outdoors</li>
<li>Chemical_Alcohol</li>
</disablesNeeds>
<enablesNeeds>
<li>Indoors</li>
</enablesNeeds>
</li>
</stages>
</HediffDef>
@@ -38,6 +48,19 @@
</li>
</comps>
<stages>
<li>
<minSeverity>0</minSeverity>
<disablesNeeds>
<li>Mood</li>
<li>Joy</li>
<li>Beauty</li>
<li>Comfort</li>
<li>Outdoors</li>
<li>Indoors</li>
<li>DrugDesire</li>
<li>RoomSize</li>
</disablesNeeds>
</li>
</stages>
</HediffDef>
</Defs>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<HediffDef>
<defName>ARA_Possession</defName>
<label>阿拉克涅原虫</label>
<description>这个生物的身体被阿拉克涅原虫所夺取了,这具身体原本的主人已经没有可能再回来了。</description>
<hediffClass>ArachnaeSwarm.Hediff_Possession</hediffClass>
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
<isBad>false</isBad>
<scenarioCanAdd>false</scenarioCanAdd>
<maxSeverity>1.0</maxSeverity>
<renderNodeProperties>
<li>
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Heads/Average_Normal</texPath>
<colorType>Skin</colorType>
<parentTagDef>Head</parentTagDef>
<useSkinShader>true</useSkinShader>
<useRottenColor>true</useRottenColor>
<rotDrawMode>Fresh, Rotting</rotDrawMode>
<drawData>
<defaultData>
<layer>70</layer>
</defaultData>
</drawData>
</li>
<li>
<nodeClass>PawnRenderNode_AttachmentHead</nodeClass>
<workerClass>PawnRenderNodeWorker_FlipWhenCrawling</workerClass>
<texPath>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_Base</texPath>
<colorType>Skin</colorType>
<parentTagDef>Head</parentTagDef>
<useSkinShader>true</useSkinShader>
<useRottenColor>true</useRottenColor>
<rotDrawMode>Fresh, Rotting</rotDrawMode>
<drawData>
<defaultData>
<layer>70</layer>
</defaultData>
</drawData>
</li>
</renderNodeProperties>
<stages>
<li>
<minSeverity>0</minSeverity>
<disablesNeeds>
<li>Mood</li>
<li>Joy</li>
<li>Beauty</li>
<li>Comfort</li>
<li>Outdoors</li>
<li>Indoors</li>
<li>DrugDesire</li>
<li>RoomSize</li>
</disablesNeeds>
</li>
</stages>
</HediffDef>
</Defs>

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<JobDef>
<defName>ARA_StartInteractiveProduction</defName>
<driverClass>ArachnaeSwarm.JobDriver_StartProduction</driverClass>
<reportString>正在启动生产 TargetA.</reportString>
<allowOpportunisticPrefix>true</allowOpportunisticPrefix>
</JobDef>
</Defs>

View File

@@ -40,6 +40,12 @@
</requiredWorkTags>
<startingHediffs>
</startingHediffs>
<moveSpeedFactorByTerrainTag>
<li>
<key>ARA_Creep</key>
<value>8.0</value>
</li>
</moveSpeedFactorByTerrainTag>
</PawnKindDef>
<PawnKindDef Name="ArachnaeQueen_Colonist" ParentName="ArachnaeQueenBasePawnKind">
<defName>ARA_ArachnaeQueen</defName>
@@ -72,8 +78,6 @@
<maxGenerationAge>30</maxGenerationAge>
<minGenerationAge>10</minGenerationAge>
<canBeScattered>false</canBeScattered>
<abilities>
</abilities>
<xenotypeSet>
<xenotypeChances>
@@ -97,18 +101,45 @@
</requiredWorkTags>
<startingHediffs>
</startingHediffs>
<moveSpeedFactorByTerrainTag>
<li>
<key>ARA_Creep</key>
<value>8.0</value>
</li>
</moveSpeedFactorByTerrainTag>
</PawnKindDef>
<PawnKindDef Name="ArachnaeNodeA_Colonist" ParentName="ArachnaeNodeABasePawnKind">
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
<defName>ArachnaeNode_Race_Myrmecocystus</defName>
<label>阿拉克涅督虫</label>
<label>阿拉克涅蜜罐</label>
<race>ArachnaeNode_Race_Myrmecocystus</race>
<defaultFactionType>PlayerColony</defaultFactionType>
<invNutrition>2.55</invNutrition>
<invNutrition>0</invNutrition>
<backstoryFiltersOverride>
<li>
<categories>
<li>ArachnaeNode_spawnCategoriesA</li>
<li>ArachnaeNode_spawnCategoriesB</li>
<li>ArachnaeNode_spawnCategories_Myrmecocystus</li>
</categories>
</li>
</backstoryFiltersOverride>
<abilities>
<li>ARA_AcidSprayBurst_Myrmecocystus</li>
</abilities>
<apparelTags>
</apparelTags>
<apparelMoney>0</apparelMoney>
</PawnKindDef>
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
<defName>ArachnaeNode_Race_ShieldHead</defName>
<label>阿拉克涅盾头种</label>
<race>ArachnaeNode_Race_ShieldHead</race>
<defaultFactionType>PlayerColony</defaultFactionType>
<invNutrition>0</invNutrition>
<backstoryFiltersOverride>
<li>
<categories>
<li>ArachnaeNode_spawnCategoriesA</li>
<li>ArachnaeNode_spawnCategories_ShieldHead</li>
</categories>
</li>
</backstoryFiltersOverride>
@@ -116,4 +147,128 @@
</apparelTags>
<apparelMoney>0</apparelMoney>
</PawnKindDef>
</Defs>
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
<defName>ArachnaeNode_Race_WeaponSmith</defName>
<label>阿拉克涅工艺种</label>
<race>ArachnaeNode_Race_WeaponSmith</race>
<defaultFactionType>PlayerColony</defaultFactionType>
<invNutrition>0</invNutrition>
<backstoryFiltersOverride>
<li>
<categories>
<li>ArachnaeNode_spawnCategoriesA</li>
<li>ArachnaeNode_spawnCategories_WeaponSmith</li>
</categories>
</li>
</backstoryFiltersOverride>
<abilities>
<li>ARA_EggSpewBioforgeIncubator</li>
</abilities>
<apparelTags>
</apparelTags>
<apparelMoney>0</apparelMoney>
</PawnKindDef>
<PawnKindDef Name="ARA_InsectKindBase" ParentName="AnimalKindBase" Abstract="True">
<defaultFactionType>PlayerColony</defaultFactionType>
<canArriveManhunter>false</canArriveManhunter>
<forceDeathOnDowned>true</forceDeathOnDowned>
<forceNoDeathNotification>true</forceNoDeathNotification>
<combatPower>75</combatPower>
<ecoSystemWeight>0</ecoSystemWeight>
<moveSpeedFactorByTerrainTag>
<li>
<key>ARA_Creep</key>
<value>8.0</value>
</li>
</moveSpeedFactorByTerrainTag>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Slavey</defName>
<label>阿拉克涅苦役种</label>
<race>ArachnaeBase_Race_Slavey</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Spelopede</texPath>
<drawSize>1</drawSize>
<color>(156,148,125)</color>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
<offset>(0,0,-0.15)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
<drawSize>1</drawSize>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Scavenger</defName>
<label>阿拉克涅食腐种</label>
<race>ArachnaeBase_Race_Scavenger</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Spelopede</texPath>
<drawSize>1</drawSize>
<color>(156,148,125)</color>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
<offset>(0,0,-0.15)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
<drawSize>1</drawSize>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_HardJaw</defName>
<label>阿拉克涅坚颚种</label>
<race>ArachnaeBase_Race_HardJaw</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Spelopede</texPath>
<drawSize>1</drawSize>
<color>(156,148,125)</color>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
<offset>(0,0,-0.15)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
<drawSize>1</drawSize>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
<PawnKindDef ParentName="ARA_InsectKindBase">
<defName>ArachnaeBase_Race_Acid</defName>
<label>阿拉克涅酸嗜种</label>
<race>ArachnaeBase_Race_Acid</race>
<lifeStages>
<li>
<bodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Spelopede</texPath>
<drawSize>1</drawSize>
<color>(156,148,125)</color>
<shadowData>
<volume>(0.4, 0.5, 0.37)</volume>
<offset>(0,0,-0.15)</offset>
</shadowData>
</bodyGraphicData>
<dessicatedBodyGraphicData>
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
<drawSize>1</drawSize>
</dessicatedBodyGraphicData>
</li>
</lifeStages>
</PawnKindDef>
</Defs>

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ScenarioDef ParentName="ScenarioBase">
<defName>ARA_Basic_Start_Scenario</defName>
<label>新阿拉克涅虫巢</label>
<description>一只阿拉克涅虫族女皇种降落在荒无人烟的边缘世界,准备着手建立属于自己的虫巢。</description>
<scenario>
<summary>以一只阿拉克涅虫族女皇种为初始殖民者开始游戏。</summary>
<playerFaction>
<def>PlayerFaction</def>
<factionDef>ARA_New_Hive</factionDef>
</playerFaction>
<parts>
<li Class="ScenPart_PlanetLayer">
<def>PlanetLayer</def>
<layer>Orbit</layer>
<settingsDef>Orbit</settingsDef>
<hide>True</hide>
<tag>Orbit</tag>
<connections>
<li>
<tag>Surface</tag>
<zoomMode>ZoomIn</zoomMode>
</li>
</connections>
</li>
<li Class="ScenPart_GameStartDialog">
<def>GameStartDialog</def>
<text>虫族开场信息</text>
<closeSound>GameStartSting</closeSound>
</li>
<li Class="ScenPart_ConfigPage_ConfigureStartingPawns_KindDefs">
<def>ConfigurePawnsKindDefs</def>
<pawnChoiceCount>1</pawnChoiceCount>
<kindCounts>
<li>
<requiredAtStart>True</requiredAtStart>
<kindDef>ARA_ArachnaeQueen</kindDef>
</li>
</kindCounts>
</li>
<li Class="ScenPart_PlayerPawnsArriveMethod">
<def>PlayerPawnsArriveMethod</def>
</li>
<!-- 初始物品 -->
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>ARA_Carapace</thingDef>
<count>500</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>ARA_InsectJelly</thingDef>
<count>60</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>MedicineIndustrial</thingDef>
<count>10</count>
</li>
<li Class="ScenPart_StartingThing_Defined">
<def>StartingThing_Defined</def>
<thingDef>ARA_InteractiveEggSac_Start</thingDef>
<count>3</count>
</li>
<!-- 附近的物品 -->
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>Steel</thingDef>
<count>700</count>
</li>
<li Class="ScenPart_ScatterThingsNearPlayerStart">
<def>ScatterThingsNearPlayerStart</def>
<thingDef>WoodLog</thingDef>
<count>300</count>
</li>
<!-- 图上的物品 -->
<li Class="ScenPart_ScatterThingsAnywhere">
<def>ScatterThingsAnywhere</def>
<thingDef>Steel</thingDef>
<count>720</count>
</li>
</parts>
</scenario>
</ScenarioDef>
</Defs>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<!-- Categories -->
<StyleItemCategoryDef>
<defName>ARA_HiveNode_Style</defName>
<label>阿拉克涅虫巢风格</label>
</StyleItemCategoryDef>
</Defs>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<TerrainAffordanceDef>
<defName>ARA_Creep</defName>
<label>阿拉克涅菌毯</label>
<order>3800</order>
</TerrainAffordanceDef>
</Defs>

View File

@@ -0,0 +1,186 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef Name="ArachnaeBase_Race" ParentName="BaseInsect" Abstract="True">
<statBases>
<MoveSpeed>8</MoveSpeed>
<MarketValue>0</MarketValue>
<LeatherAmount>0</LeatherAmount>
<ArmorRating_Blunt>0.1</ArmorRating_Blunt>
<ArmorRating_Sharp>0.1</ArmorRating_Sharp>
<Wildness>0</Wildness>
</statBases>
<uiIconScale>1.1</uiIconScale>
<tools>
<li>
<label>head</label>
<capacities>
<li>Blunt</li>
</capacities>
<power>6</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
<chanceFactor>0.2</chanceFactor>
</li>
</tools>
<race>
<body>BeetleLikeWithClaw</body>
<thinkTreeMain>ARA_Insect_WithPlanting</thinkTreeMain>
<baseHungerRate>0.1</baseHungerRate>
<baseBodySize>0.5</baseBodySize>
<baseHealthScale>1</baseHealthScale>
<useMeatFrom>Megaspider</useMeatFrom>
<lifeExpectancy>0.1</lifeExpectancy>
<trainability>Advanced</trainability>
<!-- <hasCorpse>false</hasCorpse> -->
<!-- <specialTrainables>
<li MayRequire="Ludeon.RimWorld.Odyssey">Dig</li>
<li>ARA_Sowing</li>
</specialTrainables> -->
<lifeStageAges>
<li>
<def>EusocialInsectAdult</def>
<minAge>0</minAge>
<soundWounded>Pawn_Spelopede_Pain</soundWounded>
<soundDeath>Pawn_Spelopede_Death</soundDeath>
<soundCall>Pawn_Spelopede_Call</soundCall>
<soundAngry>Pawn_Spelopede_Angry</soundAngry>
</li>
</lifeStageAges>
<soundMeleeHitPawn>Pawn_Melee_SmallScratch_HitPawn</soundMeleeHitPawn>
<soundMeleeHitBuilding>Pawn_Melee_SmallScratch_HitBuilding</soundMeleeHitBuilding>
<soundMeleeMiss>Pawn_Melee_SmallScratch_Miss</soundMeleeMiss>
<headPosPerRotation>
<li>(0.0, 0, 0.14)</li>
<li>(0.07, 0, 0.08)</li>
<li>(0.0, 0, -0.12)</li>
<li>(-0.07, 0, 0.08)</li>
</headPosPerRotation>
<!-- <deathAction Class="DeathActionProperties_Vanish">
<workerClass>DeathActionWorker_Vanish</workerClass>
</deathAction> -->
</race>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Slavey</defName>
<label>阿拉克涅苦役种</label>
<description>阿拉克涅辅虫之一,智力低下,能执行搬运工作,注定在度过短暂的时光后死亡。</description>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<!-- <skillLevels>
<li>
<skill>Plants</skill>
<level>8</level>
</li>
<li>
<skill>Mining</skill>
<level>8</level>
</li>
</skillLevels> -->
<trainables>
<li>
<trainable>Haul</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_Scavenger</defName>
<label>阿拉克涅食腐种</label>
<description>阿拉克涅辅虫之一,智力低下,可以执行种植和收割工作,注定在度过短暂的时光后死亡。</description>
<race>
<specialTrainables>
<li>ARA_Sowing</li>
</specialTrainables>
</race>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<trainables>
<li>
<trainable>ARA_Sowing</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
</comps>
</ThingDef>
<ThingDef ParentName="ArachnaeBase_Race">
<defName>ArachnaeBase_Race_HardJaw</defName>
<label>阿拉克涅坚颚种</label>
<description>阿拉克涅辅虫之一,智力低下,可以承担挖矿任务,注定在度过短暂的时光后死亡。</description>
<race>
<specialTrainables>
<li>Dig</li>
<li MayRequire="Ludeon.RimWorld.Odyssey">AttackTarget</li>
</specialTrainables>
</race>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AdvancedTraining">
<trainables>
<li>
<trainable>Dig</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
<li>
<trainable>AttackTarget</trainable>
<trainInstantly>true</trainInstantly>
<setWanted>true</setWanted>
</li>
</trainables>
<disableAllSkillDecay>true</disableAllSkillDecay> <!-- 阻止这个动物的所有技能衰减 -->
</li>
</comps>
</ThingDef>
<ThingDef ParentName="BaseDrone" MayRequire="Ludeon.RimWorld.Odyssey">
<defName>ArachnaeBase_Race_Acid</defName>
<label>阿拉克涅酸嗜种</label>
<description>阿拉克涅辅虫之一,智力低下,一般被作为活体炮弹打出,击中敌人后若是还没散架,就会继续依靠带酸液的颚撕咬敌军。</description>
<race>
<thinkTreeConstant>WarUrchinConstant</thinkTreeConstant>
<baseBodySize>0.5</baseBodySize>
<!-- <hasCorpse>false</hasCorpse> -->
<body>BeetleLikeWithClaw</body>
<lifeStageAges>
<li>
<def>EusocialInsectAdult</def>
<minAge>0</minAge>
<soundWounded>Pawn_Spelopede_Pain</soundWounded>
<soundDeath>Pawn_Spelopede_Death</soundDeath>
<soundCall>Pawn_Spelopede_Call</soundCall>
<soundAngry>Pawn_Spelopede_Angry</soundAngry>
</li>
</lifeStageAges>
</race>
<statBases>
<MoveSpeed>6</MoveSpeed>
</statBases>
<comps>
<li Class="CompProperties_MechPowerCell">
<totalPowerTicks>4400</totalPowerTicks> <!-- 2 hours -->
<labelOverride>寿命</labelOverride>
<tooltipOverride>这种特殊的阿拉克涅辅虫从出生起就走在死亡的道路上了——它们的寿命就是如此短暂。</tooltipOverride>
<showGizmoOnNonPlayerControlled>true</showGizmoOnNonPlayerControlled>
</li>
</comps>
<tools Inherit="False">
<li>
<label>酸性巨颚</label>
<capacities>
<li>ARA_AcidCut</li>
</capacities>
<power>6</power>
<cooldownTime>2.6</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
</li>
</tools>
</ThingDef>
</Defs>

View File

@@ -1,678 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<![CDATA[
<!-- 该文件仅做备用 -->
<!-- 定义一个基础的ThingDef作为阿拉克涅Pawn的基类 -->
<ThingDef Name="Arachnae_PawnBase" ParentName="BasePawn" Abstract="True">
<!-- 屠宰产品设置 -->
<butcherProducts>
</butcherProducts>
<!-- 种族相关设置 -->
<race>
<!-- 可以成为蹒跚怪 -->
<canBecomeShambler>false</canBecomeShambler>
<!-- 异常知识类别需要Anomaly模组 -->
<knowledgeCategory MayRequire="Ludeon.RimWorld.Anomaly">Basic</knowledgeCategory>
<!-- 异常知识点数 -->
<anomalyKnowledge>3</anomalyKnowledge>
</race>
<!-- 组件设置 -->
<comps>
<!-- 持有平台目标组件需要Anomaly模组 -->
<li MayRequire="Ludeon.RimWorld.Anomaly" Class="CompProperties_HoldingPlatformTarget">
<!-- 基础逃脱间隔(天) -->
<baseEscapeIntervalMtbDays>8</baseEscapeIntervalMtbDays>
<!-- 是否获得低温收容奖励 -->
<getsColdContainmentBonus>true</getsColdContainmentBonus>
</li>
<!-- 可研究组件需要Anomaly模组 -->
<li MayRequire="Ludeon.RimWorld.Anomaly" Class="CompProperties_Studiable">
<!-- 研究频率ticks -->
<frequencyTicks>120000</frequencyTicks>
<!-- 研究所需的最低单极水平 -->
<minMonolithLevelForStudy>1</minMonolithLevelForStudy>
<!-- 是否需要监禁 -->
<requiresImprisonment>true</requiresImprisonment>
</li>
</comps>
<!-- 基础属性设置 -->
<statBases>
<!-- 最低收容强度需要Anomaly模组 -->
<MinimumContainmentStrength MayRequire="Ludeon.RimWorld.Anomaly">120</MinimumContainmentStrength>
</statBases>
</ThingDef>
<!-- 定义阿拉克涅女皇种族继承自Arachnae_PawnBase -->
<AlienRace.ThingDef_AlienRace ParentName="Arachnae_PawnBase" Name="ArachnaeQueenBase">
<defName>ArachnaeQueen222_Race</defName>
<label>阿拉克涅女皇种</label>
<description>阿拉克涅女皇种是阿拉克涅虫巢中唯一可以生育督虫的个体,并且是虫巢意识金字塔的核心,肩负着引领阿拉克涅虫群前进的伟大使命。她与麾下的虫族的灵能链接所构成的蜂群意识网络可以使得虫群以极高的效率运转,但是一旦女皇种死亡,其麾下的虫群将全部死亡!</description>
<uiIconScale>1.0</uiIconScale>
<!-- 外星种族设置 -->
<alienRace>
<!-- 通用设置 -->
<generalSettings>
<!-- 繁殖设置 -->
<reproduction>
<!-- 子代Pawn类型定义 -->
<childKindDef>ARA_ArachnaeQueen</childKindDef>
<!-- 女性生育能力年龄因子 -->
<femaleFertilityAgeFactor>
<points>
<li>(1, 0)</li>
<li>(9999, 0)</li>
</points>
</femaleFertilityAgeFactor>
<!-- 男性生育能力年龄因子 -->
<maleFertilityAgeFactor>
<points>
<li>(1, 0)</li>
<li>(9999, 0)</li>
</points>
</maleFertilityAgeFactor>
</reproduction>
<!-- 新生儿背景故事过滤器 -->
<newbornBackstoryFilter>
<li>
<categories>
<li>ArachnaeQueen_spawnCategoriesA</li>
<li>ArachnaeQueen_spawnCategoriesB</li>
</categories>
<commonality>1</commonality>
</li>
</newbornBackstoryFilter>
<!-- 儿童背景故事过滤器 -->
<childBackstoryFilter>
<li>
<categories>
<li>ArachnaeQueen_spawnCategoriesA</li>
<li>ArachnaeQueen_spawnCategoriesB</li>
</categories>
<commonality>1</commonality>
</li>
</childBackstoryFilter>
<!-- 成人背景故事过滤器 -->
<adultBackstoryFilter>
<li>
<categories>
<li>ArachnaeQueen_spawnCategoriesA</li>
<li>ArachnaeQueen_spawnCategoriesB</li>
</categories>
<commonality>1</commonality>
</li>
</adultBackstoryFilter>
<!-- 进入下一个生命阶段的时间只有一个0岁生命阶段 -->
<growthAges MayRequire="Ludeon.RimWorld.Biotech">
<li>0</li>
</growthAges>
<!-- 种族基因 -->
<raceGenes>
</raceGenes>
<!-- 男性生成概率 -->
<maleGenderProbability>0</maleGenderProbability>
<!-- 免疫年龄疾病 -->
<immuneToAge>true</immuneToAge>
<!-- 从humanrace继承手术 -->
<humanRecipeImport>false</humanRecipeImport>
<!-- 可以躺下,为否则站着睡觉 -->
<canLayDown>true</canLayDown>
<!-- 在社交冲突中能造成的最大伤害 -->
<maxDamageForSocialfight>25</maxDamageForSocialfight>
<!-- 免疫har框架的异种歧视 -->
<immuneToXenophobia>false</immuneToXenophobia>
<!-- 生成成年人背景的年龄 -->
<minAgeForAdulthood>0</minAgeForAdulthood>
<!-- 禁止的特性 -->
<disallowedTraits>
<li>
<defName>DrugDesire</defName>
<chance>100</chance>
</li>
<li>
<defName>Nerves</defName>
<chance>100</chance>
</li>
<li>
<defName>Neurotic</defName>
<chance>100</chance>
</li>
<li>
<defName>Industriousness</defName>
<chance>100</chance>
</li>
<li>
<defName>ShootingAccuracy</defName>
<chance>100</chance>
</li>
<li>
<defName>Bloodlust</defName>
<chance>100</chance>
</li>
<li>
<defName>Abrasive</defName>
<chance>100</chance>
</li>
<li>
<defName>TooSmart</defName>
<chance>100</chance>
</li>
<li>
<defName>Greedy</defName>
<chance>100</chance>
</li>
<li>
<defName>Jealous</defName>
<chance>100</chance>
</li>
<li>
<defName>Ascetic</defName>
<chance>100</chance>
</li>
<li>
<defName>Pyromaniac</defName>
<chance>100</chance>
</li>
<li>
<defName>Transhumanist</defName>
<chance>100</chance>
</li>
<li>
<defName>BodyPurist</defName>
<chance>10</chance>
</li>
<li>
<defName>DislikesMen</defName>
<chance>100</chance>
</li>
<li>
<defName>DislikesWomen</defName>
<chance>100</chance>
</li>
</disallowedTraits>
<!-- 强制种族特性条目 -->
<forcedRaceTraitEntries>
</forcedRaceTraitEntries>
<!-- 外星种族部位生成器 -->
<alienPartGenerator>
<!-- 边框缩放比例 -->
<borderScale>4</borderScale> <!-- 图像显示范围大小 -->
<!-- 图集缩放比例 -->
<atlasScale>4</atlasScale> <!-- 图像质量 -->
<!-- 头部类型 -->
<headTypes> <!-- 头部 -->
<li>ARA_QUEEN_Female_AverageNormalA</li>
</headTypes> <!-- 头部 -->
<!-- 身体类型 -->
<bodyTypes> <!-- 身体 -->
<li>ARA_QUEEN_Thin</li>
</bodyTypes> <!-- 身体 -->
<!-- 图像放大 -->
<customDrawSize>(4,4)</customDrawSize>
<customHeadDrawSize>(1.0,1.0)</customHeadDrawSize>
<customPortraitDrawSize>(2,2)</customPortraitDrawSize>
<!-- 头部位置 -->
<headOffset>(0,0)</headOffset>
<headOffsetDirectional>
</headOffsetDirectional>
<!-- 头发变色计算直接设置到9999避免触发 -->
<oldHairAgeRange>9999~9999</oldHairAgeRange>
<!-- 皮肤颜色通道,勿动(衣服已经和皮肤画在一起了) -->
<colorChannels Inherit="False">
<li>
<name>skin</name>
<first Class="ColorGenerator_Options">
<options>
<li>
<weight>100</weight>
<only>(255,240,234)</only>
</li>
</options>
</first>
<second Class="AlienRace.ColorGenerator_CustomAlienChannel">
<colorChannel>skin_1</colorChannel>
</second>
</li>
<li> <!--헤어컬러-->
<name>hair</name>
<first Class="ColorGenerator_Options">
<options>
<li>
<weight>100</weight>
<only>(255,255,255)</only>
</li>
</options>
</first>
<second Class="ColorGenerator_Single">
<color>(35, 20, 120)</color>
</second>
</li>
</colorChannels>
<!-- 身体附加组件 -->
<bodyAddons>
</bodyAddons>
</alienPartGenerator>
</generalSettings>
<!-- 图形路径设置 -->
<graphicPaths> <!-- 纹理 -->
<!-- 皮肤颜色 -->
<skinColor>(1,1,1,1)</skinColor>
<!-- 皮肤着色器 -->
<skinShader>Cutout</skinShader>
<!-- 头部纹理路径 -->
<head>Pawns/ARA_HiveQueen/Heads/Average_Normal</head>
<!-- 身体纹理路径 -->
<body>Pawns/ARA_HiveQueen/Bodies/Naked_Thin</body>
<!-- 骨骼纹理路径 -->
<skeleton>Things/Pawn/Insect/HiveQueen/Dessicated_HiveQueen</skeleton>
<!-- 残肢纹理路径 -->
<stump>Things/Pawn/Insect/HiveQueen/HiveQueen</stump>
<!-- 服装设置 -->
<apparel>
<bodyTypeFallback>ARA_QUEEN_Thin</bodyTypeFallback>
<femaleBodyTypeFallback>ARA_QUEEN_Thin</femaleBodyTypeFallback>
</apparel>
</graphicPaths> <!-- 纹理 -->
<!-- 头发胡子纹身设置,全部空开 -->
<styleSettings>
<li>
<key>HairDef</key>
<value>
<hasStyle>false</hasStyle>
</value>
</li>
<li>
<key>BeardDef</key>
<value>
<hasStyle>false</hasStyle>
</value>
</li>
<li>
<key>TattooDef</key>
<value>
<hasStyle>false</hasStyle>
</value>
</li>
</styleSettings>
<!-- 关系设置 -->
<relationSettings> <!-- 关系 -->
<!-- 恋人关系概率修正 -->
<relationChanceModifierLover>0</relationChanceModifierLover>
<!-- 前恋人关系概率修正 -->
<relationChanceModifierExLover>0</relationChanceModifierExLover>
<!-- 订婚关系概率修正 -->
<relationChanceModifierFiance>0</relationChanceModifierFiance>
<!-- 配偶关系概率修正 -->
<relationChanceModifierSpouse>0</relationChanceModifierSpouse>
<!-- 前配偶关系概率修正 -->
<relationChanceModifierExSpouse>0</relationChanceModifierExSpouse>
<!-- 父母关系概率修正 -->
<relationChanceModifierParent>0</relationChanceModifierParent>
<!-- 子女关系概率修正 -->
<relationChanceModifierChild>0</relationChanceModifierChild>
<!-- 兄弟姐妹关系概率修正 -->
<relationChanceModifierSibling>0</relationChanceModifierSibling>
</relationSettings> <!-- 关系 -->
<!-- 种族限制设置 -->
<raceRestriction> <!-- 种族限制 -->
<!-- 仅使用种族限制的服装 -->
<onlyUseRaceRestrictedApparel>true</onlyUseRaceRestrictedApparel> <!-- 种族服装限制设置 -->
<!-- 服装列表 -->
<apparelList> <!-- 服装 -->
</apparelList> <!-- 服装 -->
<!-- 白名单服装列表 -->
<whiteApparelList>
</whiteApparelList>
<!-- 建筑列表 -->
<buildingList> <!-- 建筑 -->
</buildingList> <!-- 建筑 -->
<!-- 武器列表 -->
<weaponList> <!-- 武器 -->
</weaponList> <!-- 武器 -->
<!-- 研究列表 -->
<researchList> <!-- 研究 -->
</researchList> <!-- 研究 -->
<!-- 配方列表 -->
<recipeList> <!-- 制作 -->
</recipeList> <!-- 制作 -->
<!-- 特性列表 -->
<traitList> <!-- 特性 -->
</traitList> <!-- 特性 -->
<!-- 植物列表 -->
<plantList> <!-- 植物 -->
</plantList> <!-- 植物 -->
<!-- 食物列表 -->
<foodList>
</foodList>
<!-- 黑名单内源性基因类别 -->
<blackEndoCategories>
<li>Melanin</li>
<li>HairColor</li>
<li MayRequire="Ludeon.RimWorld.Biotech">BodyType</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Ears</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Nose</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Voice</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Headbone</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Head</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Jaw</li>
</blackEndoCategories>
<!-- 黑名单基因列表 -->
<blackGeneList>
<li MayRequire="Ludeon.RimWorld.Biotech">Furskin</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Brow_Heavy</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Hair_BaldOnly</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Beard_Always</li>
<li MayRequire="Ludeon.RimWorld.Biotech">FacialRidges</li>
</blackGeneList>
<!-- 黑名单基因标签 -->
<blackGeneTags>
<li MayRequire="Ludeon.RimWorld.Biotech">EyeColor</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Tail</li>
<li MayRequire="Ludeon.RimWorld.Biotech">BeardStyle</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Fur</li>
</blackGeneTags>
<!-- 异种类型列表 -->
<xenotypeList>
</xenotypeList>
<!-- 黑名单异种类型列表 -->
<blackXenotypeList MayRequire="Ludeon.RimWorld.Biotech">
<!-- <li MayRequire="Ludeon.RimWorld.Biotech">Baseliner</li> -->
<li MayRequire="Ludeon.RimWorld.Biotech">Dirtmole</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Genie</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Hussar</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Sanguophage</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Neanderthal</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Pigskin</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Impid</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Waster</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Yttakin</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Highmate</li>
<li MayRequire="Ludeon.RimWorld.Odyssey">Starjack</li>
</blackXenotypeList>
<!-- 仅使用种族限制的异种类型 -->
<onlyUseRaceRestrictedXenotypes>true</onlyUseRaceRestrictedXenotypes> <!-- asd -->
</raceRestriction>
<!-- 思想设置 -->
<thoughtSettings>
<!-- 无法接收的思想 -->
<cannotReceiveThoughts>
<li>Naked</li>
<li>ApparelDamaged</li>
<li>ProsthophileHappy</li>
<li>ProsthophobeUnhappy</li>
<li>BrawlerUnhappy</li>
<li>PyromaniacHappy</li>
<li>Greedy</li>
<li>Jealous</li>
<li>SharedBed</li>
<li>AteWithoutTable</li>
<li>SleptOutside</li>
<li>SleptOnGround</li>
<li>SleptInCold</li>
<li>SleptInHeat</li>
<li>Ugly</li>
<li>AteKibble</li>
<li>AteInsectMeatDirect</li>
<li>AteInsectMeatAsIngredient</li>
<li>AteRawFood</li>
<li>AteHumanlikeMeatDirect</li>
<li>AteHumanlikeMeatAsIngredient</li>
<li>KnowButcheredHumanlikeCorpse</li>
<li>ButcheredHumanlikeCorpseOpinion</li>
<li>AteRawHumanlikeMeat</li>
</cannotReceiveThoughts>
</thoughtSettings>
</alienRace>
<!-- 基础属性设置 -->
<statBases>
<!-- 市场价值 -->
<MarketValue>2000</MarketValue>
<RoyalFavorValue>5</RoyalFavorValue>
<!-- 移动速度 -->
<MoveSpeed>1.75</MoveSpeed>
<Mass>250</Mass>
<!-- <RestRateMultiplier>1</RestRateMultiplier> -->
<!-- <HungerRateMultiplier>1</HungerRateMultiplier> -->
<EatingSpeed>2</EatingSpeed>
<!-- 女皇很长时间才需要补充一次食物 -->
<MaxNutrition>0.5</MaxNutrition>
<!-- 女皇的负重,设为0以避免女皇能背东西 -->
<CarryingCapacity>0</CarryingCapacity>
<MeatAmount>450</MeatAmount>
<LeatherAmount>600</LeatherAmount>
<!-- 疼痛休克,女皇很难因为疼痛而倒下,虽并不是像机器人一样不会休克 -->
<PainShockThreshold>1</PainShockThreshold>
<!-- 女皇非常擅长灵能,以维持蜂群的蜂巢意识链接 -->
<PsychicSensitivity>5</PsychicSensitivity>
<!-- 女皇的崩溃概率 -->
<MentalBreakThreshold>0</MentalBreakThreshold>
<!-- 女皇的高耸身躯和强健循环系统使得很难被毒倒下 -->
<ToxicResistance>0.95</ToxicResistance>
<ToxicEnvironmentResistance MayRequire="Ludeon.RimWorld.Biotech">0.95</ToxicEnvironmentResistance>
<!-- 女皇的甲壳可以抵御火焰侵袭,难以燃烧-->
<Flammability>0.1</Flammability>
<!-- 女皇的庞大申请很难闪开近战 -->
<MeleeDodgeChance>0.25</MeleeDodgeChance>
<!-- <MeleeHitChance>1</MeleeHitChance> -->
<!-- <NegotiationAbility>1</NegotiationAbility> -->
<!-- <SellPriceFactor>1</SellPriceFactor> -->
<!-- <SocialImpact>1</SocialImpact> -->
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
<!-- 自带的甲壳可以防御外部攻击 -->
<ArmorRating_Blunt>0.6</ArmorRating_Blunt>
<ArmorRating_Sharp>0.8</ArmorRating_Sharp>
<ArmorRating_Heat>0.5</ArmorRating_Heat>
<!-- 虫群拥有惊人的愈合速度 -->
<InjuryHealingFactor>5</InjuryHealingFactor>
<!-- 在野外采集的营养 -->
<ForagedNutritionPerDay>0</ForagedNutritionPerDay>
<!-- 污物规模,虫群污物规模都较大 -->
<FilthRate>28</FilthRate>
<Wildness>0.99</Wildness>
</statBases>
<!-- 工具设置(攻击方式) -->
<tools>
<li>
<label>头顶</label>
<capacities>
<li>Poke</li>
</capacities>
<power>16</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>HeadAttackTool</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
<chanceFactor>0.01</chanceFactor>
</li>
<li>
<label>踩踏</label>
<capacities>
<li>Blunt</li>
<li>Poke</li>
</capacities>
<power>35</power>
<cooldownTime>2.5</cooldownTime>
<linkedBodyPartsGroup>Legs</linkedBodyPartsGroup>
</li>
<li>
<label>腿部穿刺</label>
<capacities>
<li>Stab</li>
</capacities>
<power>50</power>
<cooldownTime>3</cooldownTime>
<linkedBodyPartsGroup>Legs</linkedBodyPartsGroup>
</li>
<li>
<label>钳击</label>
<capacities>
<li>Cut</li>
</capacities>
<power>30</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>Hands</linkedBodyPartsGroup>
</li>
</tools>
<race>
<!-- 身体类型 -->
<body>ArachnaeQueen_Body</body>
<!-- 思考树 -->
<thinkTreeMain>Humanlike</thinkTreeMain>
<thinkTreeConstant>HumanlikeConstant</thinkTreeConstant>
<intelligence>Humanlike</intelligence>
<makesFootprints>true</makesFootprints>
<lifeExpectancy>300</lifeExpectancy>
<!-- 肉和皮革的定义 -->
<leatherDef>Leather_Light</leatherDef>
<specificMeatDef>Meat_Megaspider</specificMeatDef>
<nameCategory>HumanStandard</nameCategory>
<bloodDef>Filth_BloodInsect</bloodDef>
<bloodSmearDef>Filth_BloodSmear</bloodSmearDef>
<!-- 身形大小 -->
<baseBodySize>10</baseBodySize>
<!-- 血量上限 -->
<baseHealthScale>10</baseHealthScale>
<!-- 食物类型,可以在种族限制定义,不需要在这改 -->
<foodType>OmnivoreHuman</foodType>
<!-- 妊娠天数,对女皇来说没啥用 -->
<gestationPeriodDays>60</gestationPeriodDays>
<meatMarketValue>1.85</meatMarketValue>
<renderTree>Humanlike</renderTree>
<!-- 无法被异常尸体锁定 -->
<hasUnnaturalCorpse>false</hasUnnaturalCorpse>
<lifeStageAges Inherit="False">
<li>
<def>EusocialInsectAdult</def>
<soundWounded>Pawn_HiveQueen_Wounded</soundWounded>
<soundDeath>Pawn_HiveQueen_Death</soundDeath>
<soundCall>Pawn_HiveQueen_Call</soundCall>
<soundAngry>Pawn_HiveQueen_Angry</soundAngry>
</li>
</lifeStageAges>
<!-- 什么年龄段可以做什么工作 -->
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
<Firefighter>0</Firefighter>
<Patient>0</Patient>
<Doctor>0</Doctor>
<PatientBedRest>0</PatientBedRest>
<Childcare MayRequire="Ludeon.RimWorld.Biotech">0</Childcare>
<BasicWorker>0</BasicWorker>
<Warden>0</Warden>
<Handling>0</Handling>
<Cooking>0</Cooking>
<Hunting>0</Hunting>
<Construction>0</Construction>
<Growing>0</Growing>
<Mining>0</Mining>
<PlantCutting>0</PlantCutting>
<Smithing>0</Smithing>
<Tailoring>0</Tailoring>
<Art>0</Art>
<Crafting>0</Crafting>
<Hauling>0</Hauling>
<Cleaning>0</Cleaning>
<Research>0</Research>
<DarkStudy MayRequire="Ludeon.RimWorld.Anomaly">0</DarkStudy>
</lifeStageWorkSettings>
<soundMeleeHitPawn>Pawn_Melee_BigBash_HitPawn</soundMeleeHitPawn>
<soundMeleeHitBuilding>Pawn_Melee_BigBash_HitBuilding</soundMeleeHitBuilding>
<soundMeleeMiss>Pawn_Melee_BigBash_Miss</soundMeleeMiss>
<soundMeleeDodge>Pawn_MeleeDodge</soundMeleeDodge>
<!-- 阴影绘制 -->
<specialShadowData>
<volume>(0.3, 0.8, 0.4)</volume>
<offset>(0,0,-0.3)</offset>
</specialShadowData>
<!-- 生成时的年龄曲线 -->
<ageGenerationCurve>
<points>
<li MayRequire="Ludeon.RimWorld.Biotech">(0,0)</li>
<li>(20,0)</li>
<li>(25,1)</li>
<li>(30,0)</li>
</points>
</ageGenerationCurve>
<hediffGiverSets>
<li>OrganicStandard</li>
<li>Human</li>
</hediffGiverSets>
</race>
<!-- 可以施加使用的手术类型 -->
<recipes>
<li>ExciseCarcinoma</li>
<li>AdministerMechSerumHealer</li>
<li>RemoveBodyPart</li>
<li>Euthanize</li>
<li>Anesthetize</li>
<li>CureScaria</li>
<li MayRequire="Ludeon.RimWorld.Royalty">CureBloodRot</li>
<li MayRequire="Ludeon.RimWorld.Royalty">CureAbasia</li>
<li MayRequire="Ludeon.RimWorld.Biotech">Vasectomy</li>
<li MayRequire="Ludeon.RimWorld.Biotech">ReverseVasectomy</li>
<li MayRequire="Ludeon.RimWorld.Biotech">TubalLigation</li>
<li MayRequire="Ludeon.RimWorld.Biotech">ExtractOvum</li>
<li MayRequire="Ludeon.RimWorld.Biotech">ExtractHemogenPack</li>
<li MayRequire="Ludeon.RimWorld.Biotech">BloodTransfusion</li>
<li MayRequire="Ludeon.RimWorld.Biotech">ImplantXenogerm</li>
<li MayRequire="Ludeon.RimWorld.Biotech">ImplantIUD</li>
<li MayRequire="Ludeon.RimWorld.Biotech">RemoveIUD</li>
<li MayRequire="Ludeon.RimWorld.Biotech">TerminatePregnancy</li>
</recipes>
</AlienRace.ThingDef_AlienRace>
]]>
</Defs>

View File

@@ -71,6 +71,29 @@
</colorChannels>
<!-- 额外身体部件 -->
<bodyAddons>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_Base</path>
<offsets>
<south>
<offset>(0,0.32)</offset>
</south>
<north>
<offset>(0,0.32)</offset>
</north>
<east>
<offset>(-0.1,0.39)</offset>
</east>
<west>
<offset>(-0.1,0.39)</offset>
</west>
</offsets>
<inFrontOfBody>true</inFrontOfBody>
<!-- <conditions>
<BodyPart>
<bodyPart>WULA_Addons_Antenna_Bodypart</bodyPart>
</BodyPart>
</conditions> -->
</li>
</bodyAddons>
<!-- 图像放大 -->
<!-- <borderScale>4</borderScale>
@@ -78,6 +101,19 @@
<!-- <customDrawSize>(4,4)</customDrawSize>
<customHeadDrawSize>(1.0,1.0)</customHeadDrawSize>
<customPortraitDrawSize>(2,2)</customPortraitDrawSize> -->
<headOffsetDirectional>
<north>
</north>
<south>
<!-- same options as above -->
</south>
<east>
<offset>(0.0, 0.05)</offset>
</east>
<west>
<offset>(0.0, 0.05)</offset>
</west>
</headOffsetDirectional>
</alienPartGenerator>
<growthAges>
<li>0</li>
@@ -158,10 +194,12 @@
<skinColor>(1,1,1,1)</skinColor>
<!-- 皮肤着色器 -->
<skinShader>Cutout</skinShader>
<!-- <body>ArachnaeSwarm/Things/ARA_HiveQueen/Bodies/</body>
<head>ArachnaeSwarm/Things/ARA_HiveQueen/Heads/</head>
<skeleton>Things/Pawn/Humanlike/Bodies/Dessicated/Dessicated_Thin</skeleton>
<stump>ArachnaeSwarm/Things/ARA_HiveQueen/Bodies/</stump> -->
<body>ArachnaeSwarm/Things/ARA_HiveNode/Bodies/</body>
<head>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Heads/</path>
</head>
<skeleton>Things/Pawn/Humanlike/Bodies/Dessicated/Dessicated_Thin</skeleton>
<stump>ArachnaeSwarm/Things/ARA_HiveNode/Bodies/</stump>
</graphicPaths>
<!-- 风格设置 -->
<styleSettings>
@@ -169,7 +207,10 @@
<li>
<key>HairDef</key>
<value>
<hasStyle>false</hasStyle>
<hasStyle>true</hasStyle>
<styleTagsOverride>
<li>ARA_HiveNode_Style</li>
</styleTagsOverride>
</value>
</li>
<!-- 纹身 -->
@@ -232,9 +273,10 @@
</whiteXenotypeList>
<onlyUseRaceRestrictedXenotypes>false</onlyUseRaceRestrictedXenotypes>
<!-- 食物列表 -->
<foodList>
</foodList>
<onlyEatRaceRestrictedFood>false</onlyEatRaceRestrictedFood>
<whiteFoodList>
<li>ARA_InsectJelly</li>
</whiteFoodList>
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
<!-- 可以穿戴的衣服 -->
<apparelList>
</apparelList>
@@ -305,7 +347,56 @@
<thoughtSettings>
<!-- 不会产生的想法 -->
<cannotReceiveThoughts>
<li>Naked</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Female</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Male</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Memory</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Social_Female</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Social_Male</li>
<li>AnyBodyPartCovered_Disapproved_Female</li>
<li>AnyBodyPartCovered_Disapproved_Male</li>
<li>AnyBodyPartCovered_Disapproved_Memory</li>
<li>AnyBodyPartCovered_Disapproved_Social_Female</li>
<li>AnyBodyPartCovered_Disapproved_Social_Male</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Female</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Male</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Social_Female</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Social_Male</li>
<li>GroinChestOrHairUncovered_Disapproved_Female</li>
<li>GroinChestOrHairUncovered_Disapproved_Male</li>
<li>GroinChestOrHairUncovered_Disapproved_Social_Female</li>
<li>GroinChestOrHairUncovered_Disapproved_Social_Male</li>
<li>GroinOrChestUncovered_Disapproved_Female</li>
<li>GroinOrChestUncovered_Disapproved_Male</li>
<li>GroinOrChestUncovered_Disapproved_Social_Female</li>
<li>GroinOrChestUncovered_Disapproved_Social_Male</li>
<li>GroinUncovered_Disapproved_Female</li>
<li>GroinUncovered_Disapproved_Male</li>
<li>GroinUncovered_Disapproved_Social_Female</li>
<li>GroinUncovered_Disapproved_Social_Male</li>
<li>ApparelDamaged</li>
<li>ProsthophileHappy</li>
<li>ProsthophobeUnhappy</li>
<li>BrawlerUnhappy</li>
<li>PyromaniacHappy</li>
<li>Greedy</li>
<li>Jealous</li>
<li>SharedBed</li>
<li>AteWithoutTable</li>
<li>SleptOutside</li>
<li>SleptOnGround</li>
<li>SleptInCold</li>
<li>SleptInHeat</li>
<li>Ugly</li>
<li>AteKibble</li>
<li>AteInsectMeatDirect</li>
<li>AteInsectMeatAsIngredient</li>
<li>AteRawFood</li>
<li>AteHumanlikeMeatDirect</li>
<li>AteHumanlikeMeatAsIngredient</li>
<li>KnowButcheredHumanlikeCorpse</li>
<li>ButcheredHumanlikeCorpseOpinion</li>
<li>AteRawHumanlikeMeat</li>
</cannotReceiveThoughts>
<!-- 该种族特有想法 -->
<restrictedThoughts>
@@ -341,7 +432,6 @@
<EatingSpeed>2</EatingSpeed>
<MaxNutrition>0.5</MaxNutrition>
<!-- 女皇的负重,设为0以避免女皇能背东西 -->
<CarryingCapacity>50</CarryingCapacity>
<MeatAmount>150</MeatAmount>
<LeatherAmount>100</LeatherAmount>
@@ -371,6 +461,8 @@
<!-- 在野外采集的营养 -->
<ForagedNutritionPerDay>0</ForagedNutritionPerDay>
<ComfyTemperatureMin>-80</ComfyTemperatureMin>
<ComfyTemperatureMax>32</ComfyTemperatureMax>
</statBases>
<race>
@@ -379,15 +471,15 @@
<thinkTreeMain>ARA_Humanlike</thinkTreeMain>
<!-- 智力水平 -->
<intelligence>Humanlike</intelligence>
<!-- 血液,不流血 -->
<bloodDef>Filth_MachineBits</bloodDef>
<bloodDef>Filth_Blood</bloodDef>
<bloodSmearDef>Filth_BloodSmear</bloodSmearDef>
<!-- 基础血量,很高 -->
<baseHealthScale>1.5</baseHealthScale>
<!-- 解剖产物 -->
<leatherDef>Steel</leatherDef>
<specificMeatDef>Steel</specificMeatDef>
<leatherDef>ARA_Carapace</leatherDef>
<specificMeatDef>Meat_Megaspider</specificMeatDef>
<!-- 身体类型 -->
<body>ArachnaeQueen_Body</body>
<body>Human</body>
<!-- 年龄阶段,较短 -->
<lifeExpectancy>12</lifeExpectancy>
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
@@ -430,11 +522,11 @@
</race>
<!-- 工具设置(攻击方式) -->
<tools>
<tools Inherit="False"><!-- 必须写禁止继承不然会把HUMANLIKE的攻击方式继承过来导致红字找不到部件报错 -->
<li>
<label></label>
<label></label>
<capacities>
<li>Poke</li>
<li>Bite</li>
</capacities>
<power>8</power>
<cooldownTime>2</cooldownTime>
@@ -448,34 +540,34 @@
</recipes>
<comps>
<!-- <li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.DrawFaceGraphicsComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.HeadControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.EyeballControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.DrawFaceGraphicsComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.HeadControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.EyeballControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.LidControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.BrowControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.MouthControllerComp</compClass>
</li>
<compClass>FacialAnimation.BrowControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.MouthControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.SkinControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.FacialAnimationControllerComp</compClass>
</li> -->
<compClass>FacialAnimation.FacialAnimationControllerComp</compClass>
</li>
<!--<li>
<compClass>FacialAnimation.EmotionControllerComp</compClass>
</li>-->
<!-- <li Class="CompProperties_DrugAddict"/> -->
</li>
<li Class="CompProperties_DrugAddict"/> -->
</comps>
</AlienRace.ThingDef_AlienRace>
@@ -483,38 +575,57 @@
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_Myrmecocystus</defName>
<label>阿拉克涅蜜罐种</label>
<description>阿拉克涅督虫之一,拥有非常广泛的食谱,可以吞下许多未经处理的生物并将其分解为阿拉克涅虫蜜,以滋养虫群。此外,这种督虫还指挥着三只食腐虫,它们会负责处理各种各样的猎物,并在危急时刻喷射酸液对抗入侵者,以保卫阿拉克涅虫巢的财产</description>
<description>阿拉克涅督虫之一,拥有非常广泛的食谱,可以吞下许多未经处理的生物并将其分解为阿拉克涅虫蜜,以滋养虫群。这种督虫非常脆弱,并且没有可以接入武装器官的副肢。\n\n作为督虫她可以繁育并监管若干阿拉克涅食腐种辅虫以协助巢穴播种和收割作物</description>
<alienRace>
<graphicPaths>
<body>ArachnaeSwarm/Things/ARA_Myrmecocystus/Bodies/</body>
<head>ArachnaeSwarm/Things/ARA_Myrmecocystus/Heads/</head>
<skeleton>Things/Pawn/Humanlike/Bodies/Dessicated/Dessicated_Thin</skeleton>
<stump>ArachnaeSwarm/Things/ARA_Myrmecocystus/Bodies/</stump>
</graphicPaths>
<generalSettings>
<!-- 各种零件定义 -->
<alienPartGenerator>
<!-- 额外身体部件 -->
<bodyAddons>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</path>
<inFrontOfBody>false</inFrontOfBody>
<!-- <conditions>
<BodyPart>
<bodyPart>WULA_Addons_Antenna_Bodypart</bodyPart>
</BodyPart>
</conditions> -->
</li>
</bodyAddons>
</alienPartGenerator>
</generalSettings>
<!-- 种族的允许和禁止特化设置 -->
<raceRestriction>
<!-- 食物列表 -->
<whiteFoodList Inherit="False"/>
<blackFoodList>
<li>ARA_InsectJelly</li>
</blackFoodList>
<onlyEatRaceRestrictedFood>false</onlyEatRaceRestrictedFood>
</raceRestriction>
</alienRace>
<comps>
<li Class="CompProperties_Milkable">
<milkDef>ARA_InsectJelly</milkDef>
<milkIntervalDays>1</milkIntervalDays>
<milkAmount>14</milkAmount>
<li Class="ArachnaeSwarm.CompProperties_MilkableArachnae">
<milkDef>ARA_InsectJelly</milkDef>
<milkIntervalDays>3</milkIntervalDays>
<milkAmount>4</milkAmount>
</li>
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<!--<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>-->
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>500</maxIngredientCount>
<maxIngredientCount>500</maxIngredientCount>
<startingIngredientCount>500</startingIngredientCount>
<costPerPawn>999</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>Spelopede</pawnKind>
<count>3</count>
<cooldownTicks>600</cooldownTicks>
<pawnKind>ArachnaeBase_Race_Scavenger</pawnKind>
<count>2</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
<!--<spawnedMechEffecter>WarUrchinSpawned</spawnedMechEffecter>-->
</li>
</comps>
@@ -529,8 +640,8 @@
<MaxNutrition>1</MaxNutrition>
<CarryingCapacity>100</CarryingCapacity>
<MeatAmount>45</MeatAmount>
<LeatherAmount>50</LeatherAmount>
<MeatAmount>70</MeatAmount>
<LeatherAmount>10</LeatherAmount>
<MeleeDodgeChance>0.5</MeleeDodgeChance>
<!-- <MeleeHitChance>1</MeleeHitChance> -->
@@ -549,11 +660,13 @@
<race>
<foodType>OmnivoreHuman,CarnivoreAnimal,OvivoreAnimal,VegetarianRoughAnimal</foodType>
<!-- 身体类型 -->
<body>BeetleLikeWithClaw</body>
<body>ArachnaeMyrmecocystus_Body</body>
<!-- 身形大小 -->
<baseBodySize>2.5</baseBodySize>
<!-- 血量上限 -->
<baseHealthScale>3</baseHealthScale>
<!-- 蜜罐虫的寿命很低 -->
<lifeExpectancy>1.5</lifeExpectancy>
<lifeStageAges Inherit="False">
<li>
<def>ArachnaeNode_Myrmecocystus_Adult</def>
@@ -561,20 +674,254 @@
</li>
</lifeStageAges>
</race>
<!-- 工具设置(攻击方式) -->
<tools Inherit="False">
<li>
<label>头颚</label>
<capacities>
<li>Bite</li>
</capacities>
<power>12</power>
<cooldownTime>2</cooldownTime>
<linkedBodyPartsGroup>HeadClaw</linkedBodyPartsGroup>
<ensureLinkedBodyPartsGroupAlwaysUsable>true</ensureLinkedBodyPartsGroupAlwaysUsable>
<chanceFactor>1</chanceFactor>
</AlienRace.ThingDef_AlienRace>
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_ShieldHead</defName>
<label>阿拉克涅盾头种</label>
<description>阿拉克涅督虫之一,拥有过度生长而覆盖头部和腿部的甲壳,防御力超群的同时还可以定时剥落甲壳素供虫巢使用。尽管她笨重缓慢,但是仍不失为一个坚韧的战士。\n\n作为督虫她可以繁育并监管若干阿拉克涅坚颚种辅虫以协助巢穴开采矿脉。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
<alienPartGenerator>
<!-- 额外身体部件 -->
<bodyAddons>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldHead</path>
<offsets>
<south>
<offset>(0,0.32)</offset>
</south>
<north>
<offset>(0,0.32)</offset>
</north>
<east>
<offset>(-0.1,0.32)</offset>
</east>
<west>
<offset>(-0.1,0.32)</offset>
</west>
</offsets>
<inFrontOfBody>true</inFrontOfBody>
</li>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</path>
<inFrontOfBody>true</inFrontOfBody>
<offsets>
<south>
<!-- <layerOffset>0.25</layerOffset> -->
</south>
<north>
<layerOffset>-0.6</layerOffset>
</north>
<east>
<!-- same structure repeated -->
</east>
<west>
<!-- optional, mirrors east if omitted -->
</west>
</offsets>
</li>
</bodyAddons>
</alienPartGenerator>
</generalSettings>
<raceRestriction>
<!-- 食物列表 -->
<foodList>
<li>ARA_InsectJelly</li>
</foodList>
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
</raceRestriction>
</alienRace>
<comps>
<li Class="ArachnaeSwarm.CompProperties_MilkableArachnae">
<milkDef>ARA_Carapace</milkDef>
<milkIntervalDays>3</milkIntervalDays>
<milkAmount>25</milkAmount>
</li>
</tools>
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>500</maxIngredientCount>
<startingIngredientCount>500</startingIngredientCount>
<costPerPawn>999</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_HardJaw</pawnKind>
<count>2</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
</comps>
<!-- 基础属性设置 -->
<statBases>
<!-- 移动速度 -->
<MoveSpeed>2</MoveSpeed>
<!-- <RestRateMultiplier>1</RestRateMultiplier> -->
<!-- <HungerRateMultiplier>1</HungerRateMultiplier> -->
<EatingSpeed>5</EatingSpeed>
<MaxNutrition>1</MaxNutrition>
<CarryingCapacity>100</CarryingCapacity>
<MeatAmount>50</MeatAmount>
<LeatherAmount>80</LeatherAmount>
<MeleeDodgeChance>0.75</MeleeDodgeChance>
<!-- <MeleeHitChance>1</MeleeHitChance> -->
<!-- <NegotiationAbility>1</NegotiationAbility> -->
<!-- <SellPriceFactor>1</SellPriceFactor> -->
<!-- <SocialImpact>1</SocialImpact> -->
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
<!-- 自带的甲壳可以防御外部攻击 -->
<ArmorRating_Blunt>1</ArmorRating_Blunt>
<ArmorRating_Sharp>1.25</ArmorRating_Sharp>
<ArmorRating_Heat>1</ArmorRating_Heat>
</statBases>
<race>
<!-- 身体类型 -->
<body>ArachnaeShieldHead_Body</body>
<!-- 身形大小 -->
<baseBodySize>2</baseBodySize>
<!-- 血量上限 -->
<baseHealthScale>5</baseHealthScale>
<!-- 蜜罐虫的寿命很低 -->
<lifeExpectancy>2</lifeExpectancy>
<lifeStageAges Inherit="False">
<li>
<def>ArachnaeNode_Myrmecocystus_Adult</def>
<minAge>0</minAge>
</li>
</lifeStageAges>
</race>
</AlienRace.ThingDef_AlienRace>
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_WeaponSmith</defName>
<label>阿拉克涅工艺种</label>
<description>阿拉克涅督虫之一,天生牛马。\n\n作为督虫她可以繁育并监管若干阿拉克涅坚颚种辅虫以协助巢穴开采矿脉。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
<alienPartGenerator>
<!-- 额外身体部件 -->
<bodyAddons>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldHead</path>
<offsets>
<south>
<offset>(0,0.32)</offset>
</south>
<north>
<offset>(0,0.32)</offset>
</north>
<east>
<offset>(-0.1,0.32)</offset>
</east>
<west>
<offset>(-0.1,0.32)</offset>
</west>
</offsets>
<inFrontOfBody>true</inFrontOfBody>
</li>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_ShieldBody</path>
<inFrontOfBody>true</inFrontOfBody>
<offsets>
<south>
<!-- <layerOffset>0.25</layerOffset> -->
</south>
<north>
<layerOffset>-0.6</layerOffset>
</north>
<east>
<!-- same structure repeated -->
</east>
<west>
<!-- optional, mirrors east if omitted -->
</west>
</offsets>
</li>
</bodyAddons>
</alienPartGenerator>
</generalSettings>
<raceRestriction>
<!-- 食物列表 -->
<foodList>
<li>ARA_InsectJelly</li>
</foodList>
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
</raceRestriction>
</alienRace>
<comps>
<li Class="ArachnaeSwarm.CompProperties_AutoMechCarrier">
<freeProduction>true</freeProduction>
<disableHediff>WULA_MechCarrierSwitchHediff</disableHediff>
<fixedIngredient>ARA_InsectJelly</fixedIngredient>
<maxIngredientCount>500</maxIngredientCount>
<startingIngredientCount>500</startingIngredientCount>
<costPerPawn>999</costPerPawn>
<cooldownTicks>9999</cooldownTicks>
<productionQueue>
<li>
<pawnKind>ArachnaeBase_Race_Slavey</pawnKind>
<count>2</count>
<cooldownTicks>1000</cooldownTicks>
</li>
</productionQueue>
<spawnEffecter>CocoonDestroyed</spawnEffecter>
</li>
</comps>
<!-- 基础属性设置 -->
<statBases>
<!-- 移动速度 -->
<MoveSpeed>2</MoveSpeed>
<!-- <RestRateMultiplier>1</RestRateMultiplier> -->
<!-- <HungerRateMultiplier>1</HungerRateMultiplier> -->
<EatingSpeed>5</EatingSpeed>
<MaxNutrition>1</MaxNutrition>
<CarryingCapacity>100</CarryingCapacity>
<MeatAmount>50</MeatAmount>
<LeatherAmount>80</LeatherAmount>
<MeleeDodgeChance>0.75</MeleeDodgeChance>
<!-- <MeleeHitChance>1</MeleeHitChance> -->
<!-- <NegotiationAbility>1</NegotiationAbility> -->
<!-- <SellPriceFactor>1</SellPriceFactor> -->
<!-- <SocialImpact>1</SocialImpact> -->
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
<!-- 自带的甲壳可以防御外部攻击 -->
<ArmorRating_Blunt>1</ArmorRating_Blunt>
<ArmorRating_Sharp>1.25</ArmorRating_Sharp>
<ArmorRating_Heat>1</ArmorRating_Heat>
</statBases>
<race>
<!-- 身体类型 -->
<body>ArachnaeMyrmecocystus_Body</body>
<!-- 身形大小 -->
<baseBodySize>2</baseBodySize>
<!-- 血量上限 -->
<baseHealthScale>5</baseHealthScale>
<!-- 蜜罐虫的寿命很低 -->
<lifeExpectancy>2</lifeExpectancy>
<lifeStageAges Inherit="False">
<li>
<def>ArachnaeNode_Myrmecocystus_Adult</def>
<minAge>0</minAge>
</li>
</lifeStageAges>
</race>
</AlienRace.ThingDef_AlienRace>
</Defs>

View File

@@ -4,11 +4,9 @@
<statBases>
<MarketValue>1750</MarketValue>
<MoveSpeed>4.6</MoveSpeed>
<ComfyTemperatureMin>16</ComfyTemperatureMin>
<ComfyTemperatureMax>26</ComfyTemperatureMax>
<LeatherAmount>75</LeatherAmount>
<ComfyTemperatureMin>-80</ComfyTemperatureMin>
<ComfyTemperatureMax>32</ComfyTemperatureMax>
<RoyalFavorValue>3</RoyalFavorValue>
<Wildness>0.75</Wildness> <!-- Hidden except for wild people -->
</statBases>
<tools>
<li>
@@ -242,7 +240,7 @@
<!-- 手术继承自人类 -->
<humanRecipeImport>false</humanRecipeImport>
<!-- 睡觉定义 -->
<canLayDown>true</canLayDown>
<canLayDown>false</canLayDown>
<!-- 各种零件定义 -->
<alienPartGenerator Inherit="False">
<!-- 允许的头部 -->
@@ -304,11 +302,11 @@
<customHeadDrawSize>(1.0,1.0)</customHeadDrawSize>
<customPortraitDrawSize>(2,2)</customPortraitDrawSize>
</alienPartGenerator>
<growthAges>
<growthAges Inherit="False">
<li>0</li>
</growthAges>
<!-- 年龄工作效率等的覆盖 -->
<ageStatOverrides>
<ageStatOverrides Inherit="False">
<WorkSpeedGlobal>
<useBiologicalYears>true</useBiologicalYears>
<curve>
@@ -370,7 +368,7 @@
</points>
</femaleFertilityAgeFactor>
</reproduction>
<growthFactorByAge>
<growthFactorByAge Inherit="False">
<points>
<li>(0,0)</li>
<li>(1,0)</li>
@@ -458,9 +456,17 @@
</xenotypeList>
<onlyUseRaceRestrictedXenotypes>true</onlyUseRaceRestrictedXenotypes>
<!-- 食物列表 -->
<foodList>
</foodList>
<onlyEatRaceRestrictedFood>false</onlyEatRaceRestrictedFood>
<whiteFoodList>
<li>ARA_InsectJelly</li>
</whiteFoodList>
<onlyEatRaceRestrictedFood>true</onlyEatRaceRestrictedFood>
<!-- 可以驯服的宠物,主要是防止小虫由别人驯服 -->
<petList>
<li>ArachnaeBase_Race_Slavey</li>
<li>ArachnaeBase_Race_Scavenger</li>
<li>ArachnaeBase_Race_HardJaw</li>
</petList>
<onlyTameRaceRestrictedPets>false</onlyTameRaceRestrictedPets>
<!-- 可以穿戴的衣服 -->
<apparelList>
</apparelList>
@@ -497,6 +503,35 @@
<!-- 不会产生的想法 -->
<cannotReceiveThoughts>
<li>Naked</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Female</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Male</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Memory</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Social_Female</li>
<li>AnyBodyPartButGroinCovered_Disapproved_Social_Male</li>
<li>AnyBodyPartCovered_Disapproved_Female</li>
<li>AnyBodyPartCovered_Disapproved_Male</li>
<li>AnyBodyPartCovered_Disapproved_Memory</li>
<li>AnyBodyPartCovered_Disapproved_Social_Female</li>
<li>AnyBodyPartCovered_Disapproved_Social_Male</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Female</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Male</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Social_Female</li>
<li>GroinChestHairOrFaceUncovered_Disapproved_Social_Male</li>
<li>GroinChestOrHairUncovered_Disapproved_Female</li>
<li>GroinChestOrHairUncovered_Disapproved_Male</li>
<li>GroinChestOrHairUncovered_Disapproved_Social_Female</li>
<li>GroinChestOrHairUncovered_Disapproved_Social_Male</li>
<li>GroinOrChestUncovered_Disapproved_Female</li>
<li>GroinOrChestUncovered_Disapproved_Male</li>
<li>GroinOrChestUncovered_Disapproved_Social_Female</li>
<li>GroinOrChestUncovered_Disapproved_Social_Male</li>
<li>GroinUncovered_Disapproved_Female</li>
<li>GroinUncovered_Disapproved_Male</li>
<li>GroinUncovered_Disapproved_Social_Female</li>
<li>GroinUncovered_Disapproved_Social_Male</li>
<li>WitnessedDeathAlly</li>
<li>ObservedLayingCorpse</li>
<li>ObservedLayingRottingCorpse</li>
<li>ApparelDamaged</li>
<li>ProsthophileHappy</li>
<li>ProsthophobeUnhappy</li>
@@ -603,8 +638,6 @@
<!-- 智力水平 -->
<intelligence>Humanlike</intelligence>
<!-- 肉和皮革的定义 -->
<leatherDef>Leather_Light</leatherDef>
<specificMeatDef>Meat_Megaspider</specificMeatDef>
<nameCategory>HumanStandard</nameCategory>
<bloodDef>Filth_BloodInsect</bloodDef>
<bloodSmearDef>Filth_BloodSmear</bloodSmearDef>
@@ -613,8 +646,8 @@
<!-- 基础血量,很高 -->
<baseHealthScale>10</baseHealthScale>
<!-- 解剖产物 -->
<leatherDef>Steel</leatherDef>
<specificMeatDef>Steel</specificMeatDef>
<leatherDef>ARA_Carapace</leatherDef>
<specificMeatDef>Meat_Megaspider</specificMeatDef>
<soundMeleeHitPawn>Pawn_Melee_BigBash_HitPawn</soundMeleeHitPawn>
<soundMeleeHitBuilding>Pawn_Melee_BigBash_HitBuilding</soundMeleeHitBuilding>
@@ -622,7 +655,7 @@
<soundMeleeDodge>Pawn_MeleeDodge</soundMeleeDodge>
<!-- 年龄阶段 -->
<!-- <lifeExpectancy>5000</lifeExpectancy> -->
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech">
<lifeStageWorkSettings MayRequire="Ludeon.RimWorld.Biotech" Inherit="False">
<Firefighter>0</Firefighter>
<Patient>0</Patient>
<Doctor>0</Doctor>
@@ -657,7 +690,6 @@
</li>
</lifeStageAges>
<canFlyInVacuum>false</canFlyInVacuum>
</race>
<!-- 工具设置(攻击方式) -->
@@ -707,34 +739,7 @@
</recipes>
<comps>
<!-- <li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.DrawFaceGraphicsComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.HeadControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.EyeballControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.LidControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.BrowControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.MouthControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.SkinControllerComp</compClass>
</li>
<li MayRequire="Nals.FacialAnimation">
<compClass>FacialAnimation.FacialAnimationControllerComp</compClass>
</li> -->
<!--<li>
<compClass>FacialAnimation.EmotionControllerComp</compClass>
</li>-->
<!-- <li Class="CompProperties_DrugAddict"/> -->
</comps>
</AlienRace.ThingDef_AlienRace>
</Defs>

View File

@@ -0,0 +1,115 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<!-- ==================== Pawn Kind Def ==================== -->
<PawnKindDef ParentName="ArachnaeNodeABasePawnKind">
<defName>ArachnaeNode_Race_Facehugger</defName>
<label>阿拉克涅原虫种</label>
<race>ArachnaeNode_Race_Facehugger</race>
<defaultFactionType>PlayerColony</defaultFactionType>
<invNutrition>0</invNutrition>
<backstoryFiltersOverride>
<li>
<categories>
<li>ArachnaeNode_spawnCategoriesA</li>
<li>ArachnaeNode_spawnCategories_Facehugger</li>
</categories>
</li>
</backstoryFiltersOverride>
<abilities>
<li>ARA_Ability_Possess</li>
</abilities>
<apparelTags>
</apparelTags>
<apparelMoney>0</apparelMoney>
</PawnKindDef>
<!-- 定义阿拉克涅节点虫种族 -->
<AlienRace.ThingDef_AlienRace ParentName="ARA_NodeBase">
<defName>ArachnaeNode_Race_Facehugger</defName>
<label>阿拉克涅原虫种</label>
<description>阿拉克涅原虫,通过独特的神经链接管伸入受害者身体来接管受害者的身体。不同于普通阿拉克涅虫族,阿拉克涅原虫种拥有自我意识,不需要女皇种的监管。</description>
<alienRace>
<generalSettings>
<!-- 各种零件定义 -->
<alienPartGenerator>
<!-- 额外身体部件 -->
<bodyAddons>
<li>
<path>ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Myrmecocystus_Addons_Stomach</path>
<inFrontOfBody>false</inFrontOfBody>
<!-- <conditions>
<BodyPart>
<bodyPart>WULA_Addons_Antenna_Bodypart</bodyPart>
</BodyPart>
</conditions> -->
</li>
</bodyAddons>
</alienPartGenerator>
</generalSettings>
<!-- 种族的允许和禁止特化设置 -->
<raceRestriction>
<!-- 食物列表 -->
<whiteFoodList Inherit="False"/>
<blackFoodList>
<li>ARA_InsectJelly</li>
</blackFoodList>
<onlyEatRaceRestrictedFood>false</onlyEatRaceRestrictedFood>
</raceRestriction>
</alienRace>
<comps>
<li Class="ArachnaeSwarm.CompProperties_MilkableArachnae">
<milkDef>ARA_InsectJelly</milkDef>
<milkIntervalDays>3</milkIntervalDays>
<milkAmount>4</milkAmount>
</li>
</comps>
<!-- 基础属性设置 -->
<statBases>
<!-- 移动速度 -->
<MoveSpeed>2</MoveSpeed>
<!-- <RestRateMultiplier>1</RestRateMultiplier> -->
<!-- <HungerRateMultiplier>1</HungerRateMultiplier> -->
<EatingSpeed>5</EatingSpeed>
<MaxNutrition>1</MaxNutrition>
<CarryingCapacity>100</CarryingCapacity>
<MeatAmount>70</MeatAmount>
<LeatherAmount>10</LeatherAmount>
<MeleeDodgeChance>0.5</MeleeDodgeChance>
<!-- <MeleeHitChance>1</MeleeHitChance> -->
<!-- <NegotiationAbility>1</NegotiationAbility> -->
<!-- <SellPriceFactor>1</SellPriceFactor> -->
<!-- <SocialImpact>1</SocialImpact> -->
<!-- <TradePriceImprovement>0.5</TradePriceImprovement> -->
<!-- 自带的甲壳可以防御外部攻击 -->
<ArmorRating_Blunt>0.18</ArmorRating_Blunt>
<ArmorRating_Sharp>0.27</ArmorRating_Sharp>
<ArmorRating_Heat>0.2</ArmorRating_Heat>
</statBases>
<race>
<foodType>OmnivoreHuman,CarnivoreAnimal,OvivoreAnimal,VegetarianRoughAnimal</foodType>
<!-- 身体类型 -->
<body>ArachnaeMyrmecocystus_Body</body>
<!-- 身形大小 -->
<baseBodySize>2.5</baseBodySize>
<!-- 血量上限 -->
<baseHealthScale>3</baseHealthScale>
<!-- 蜜罐虫的寿命很低 -->
<lifeExpectancy>1.5</lifeExpectancy>
<lifeStageAges Inherit="False">
<li>
<def>ArachnaeNode_Myrmecocystus_Adult</def>
<minAge>0</minAge>
</li>
</lifeStageAges>
</race>
</AlienRace.ThingDef_AlienRace>
</Defs>

View File

@@ -3,18 +3,19 @@
<ThingDef ParentName="OrganicProductBase">
<defName>ARA_InsectJelly</defName>
<label>阿拉克涅虫蜜</label>
<description>由虫族储存和用作食物的果冻。它顺滑、浓郁,能满足食用者的娱乐需求。由于其独特的生物特性,它几乎可以滋养任何生物,永不腐烂</description>
<possessionCount>10</possessionCount>
<description>阿拉克涅虫族储存和用作食物的果冻,是大部分阿拉克涅虫族的唯一食物。它顺滑、浓郁、永不腐烂,能满足食用者的娱乐需求。由于其独特的生物特性,非阿拉克涅虫族也可以食用这种食物,并且不会引起食物中毒</description>
<possessionCount>20</possessionCount>
<graphicData>
<texPath>Things/Item/Resource/AnimalProductRaw/InsectJelly</texPath>
<graphicClass>Graphic_StackCount</graphicClass>
<texPath>ArachnaeSwarm/Item/ARA_InsectJelly</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<genericMarketSellable>false</genericMarketSellable>
<socialPropernessMatters>true</socialPropernessMatters>
<statBases>
<MarketValue>8.0</MarketValue>
<MarketValue>5.0</MarketValue>
<Mass>0.025</Mass>
<Nutrition>0.1</Nutrition>
<FoodPoisonChanceFixedHuman>0.02</FoodPoisonChanceFixedHuman>
<Nutrition>1</Nutrition>
<FoodPoisonChanceFixedHuman>0</FoodPoisonChanceFixedHuman>
</statBases>
<ingestible>
<foodType>AnimalProduct</foodType>
@@ -31,4 +32,66 @@
</thingCategories>
<allowedArchonexusCount>150</allowedArchonexusCount>
</ThingDef>
<ThingDef ParentName="ResourceBase">
<defName>ARA_Carapace</defName>
<label>甲壳素</label>
<description>从部分拥有厚壳的阿拉克涅虫族身上剥离的甲壳素,虽然轻便但是不太耐用,是虫巢内拥有多种用途的材料。</description>
<graphicData>
<texPath>ArachnaeSwarm/Item/ARA_Carapace</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<genericMarketSellable>false</genericMarketSellable>
<soundInteract>Metal_Drop</soundInteract>
<soundDrop>Metal_Drop</soundDrop>
<useHitPoints>true</useHitPoints>
<healthAffectsPrice>false</healthAffectsPrice>
<stackLimit>500</stackLimit>
<statBases>
<MarketValue>1</MarketValue>
<MaxHitPoints>200</MaxHitPoints>
<Mass>0.01</Mass>
<StuffPower_Armor_Sharp>1.3</StuffPower_Armor_Sharp>
<StuffPower_Armor_Blunt>1.4</StuffPower_Armor_Blunt>
<StuffPower_Armor_Heat>1.1</StuffPower_Armor_Heat>
<StuffPower_Insulation_Cold>-10</StuffPower_Insulation_Cold>
<StuffPower_Insulation_Heat>10</StuffPower_Insulation_Heat>
<SharpDamageMultiplier>1.35</SharpDamageMultiplier>
<BluntDamageMultiplier>1.1</BluntDamageMultiplier>
</statBases>
<thingCategories>
<li>ResourcesRaw</li>
</thingCategories>
<burnableByRecipe>false</burnableByRecipe>
<smeltable>true</smeltable>
<stuffProps>
<categories>
<li>Metallic</li>
</categories>
<appearance>Metal</appearance>
<commonality>0</commonality>
<allowedInStuffGeneration>false</allowedInStuffGeneration>
<constructEffect>ConstructMetal</constructEffect>
<color>(136, 126, 120)</color>
<soundImpactBullet>BulletImpact_Metal</soundImpactBullet>
<soundMeleeHitSharp>MeleeHit_Metal_Sharp</soundMeleeHitSharp>
<soundMeleeHitBlunt>MeleeHit_Metal_Blunt</soundMeleeHitBlunt>
<soundImpactMelee>Pawn_Melee_Punch_HitBuilding_Metal</soundImpactMelee>
<statOffsets>
<Beauty>-6</Beauty>
</statOffsets>
<statFactors>
<MaxHitPoints>0.8</MaxHitPoints>
<Beauty>-6</Beauty>
<Flammability>0</Flammability>
<WorkToMake>1.25</WorkToMake>
<WorkToBuild>1.25</WorkToBuild>
<DoorOpenSpeed>0.3</DoorOpenSpeed>
<MeleeWeapon_CooldownMultiplier>0.75</MeleeWeapon_CooldownMultiplier>
</statFactors>
</stuffProps>
<terrainAffordanceNeeded>Medium</terrainAffordanceNeeded>
<allowedArchonexusCount>80</allowedArchonexusCount>
<possessionCount>50</possessionCount>
</ThingDef>
</Defs>

View File

@@ -0,0 +1,361 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<TerrainDef ParentName="FloorBase">
<defName>ARA_InsectCreep</defName>
<label>阿拉克涅菌毯</label>
<description>由阿拉克涅虫族所铺设的由真菌、甲壳素分泌物混合得到的地面,会自动在各种拉克涅虫族建筑附近蔓延。这种奇特的结构质地紧密且暗藏大量营养输送组织,可以支撑重型建筑、种植特殊作物、加速其上的阿拉克涅虫族移动速度,但是除了虫族以外没人想踩在这坨软乎乎的活体结构上。</description>
<designationCategory>ARA_Buildings</designationCategory>
<texturePath>Terrain/Surfaces/InsectSludge</texturePath>
<color>(203, 163, 68)</color>
<pollutionShaderType MayRequire="Ludeon.RimWorld.Biotech">TerrainFadeRoughLinearBurn</pollutionShaderType>
<pollutionOverlayTexturePath>Terrain/Surfaces/PollutionMud</pollutionOverlayTexturePath>
<pollutionColor>(1, 1, 1, 1)</pollutionColor>
<edgeType>FadeRough</edgeType>
<resourcesFractionWhenDeconstructed>0</resourcesFractionWhenDeconstructed>
<renderPrecedence>330</renderPrecedence>
<pathCost>2</pathCost>
<generatedFilth>Filth_Slime</generatedFilth>
<filthAcceptanceMask>
<li>Unnatural</li>
</filthAcceptanceMask>
<natural>true</natural>
<takeFootprints>True</takeFootprints>
<avoidWander>false</avoidWander>
<statBases>
<Beauty>-6</Beauty>
<CleaningTimeFactor>0.25</CleaningTimeFactor>
<Cleanliness>0</Cleanliness>
<Flammability>0.2</Flammability>
</statBases>
<fertility>1.25</fertility>
<affordances Inherit="False">
<li>ARA_Creep</li>
<li>Light</li>
<li>Medium</li>
<li>Heavy</li>
<li>GrowSoil</li>
</affordances>
<tags>
<li>ARA_Creep</li>
</tags>
<costList>
<ARA_Carapace>1</ARA_Carapace>
</costList>
<!-- <tags>
<li>Insect</li>
</tags> -->
</TerrainDef>
<ThingDef ParentName="Wall">
<defName>ARA_InsectWall</defName>
<label>阿拉克涅甲壳墙</label>
<description>阿拉克涅工蜂将硬质岩石和甲壳素混合堆起来形成的墙壁,非常坚硬,就是看起来不太美观,而且需要在阿拉克涅菌毯上建造。</description>
<uiOrder>1800</uiOrder>
<uiIconPath>ArachnaeSwarm/Building/Linked/ARA_InsectWall_MenuIcon</uiIconPath>
<graphicData>
<texPath>ArachnaeSwarm/Building/Linked/ARA_InsectWall</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shaderType>CutoutComplex</shaderType>
</graphicData>
<designationCategory>ARA_Buildings</designationCategory>
<!-- <mineable>true</mineable> -->
<blockLight>true</blockLight>
<statBases>
<MarketValue>0</MarketValue>
<Beauty>-6</Beauty>
<MaxHitPoints>1000</MaxHitPoints>
<WorkToBuild>1500</WorkToBuild>
<Flammability>0</Flammability>
<Cleanliness>0</Cleanliness>
</statBases>
<building>
<isAirtight>true</isAirtight>
<!-- <isNaturalRock>true</isNaturalRock> -->
<smoothedThing>SmoothedGranite</smoothedThing>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/Linked/ARA_InsectWall_Blueprint</texPath>
</blueprintGraphicData>
<canBuildNonEdificesUnder>true</canBuildNonEdificesUnder>
<artificialForMeditationPurposes>false</artificialForMeditationPurposes>
</building>
<useStuffTerrainAffordance>false</useStuffTerrainAffordance>
<terrainAffordanceNeeded>ARA_Creep</terrainAffordanceNeeded>
<repairEffect>EatVegetarian</repairEffect>
<costStuffCount>0</costStuffCount>
<stuffCategories Inherit="False"/>
<costList>
<ARA_Carapace>2</ARA_Carapace>
</costList>
<!-- <placeWorkers>
<li>PlaceWorker_OnSubstructure</li>
</placeWorkers> -->
<damageMultipliers Inherit="False">
<li>
<damageDef>Bomb</damageDef>
<multiplier>0.1</multiplier>
</li>
<li>
<damageDef>Thump</damageDef>
<multiplier>0.1</multiplier>
</li>
</damageMultipliers>
</ThingDef>
<ThingDef ParentName="DoorBase">
<defName>ARA_InsectDoor</defName>
<label>阿拉克涅甲壳门</label>
<description>阿拉克涅虫巢的入口,主体由硬质岩石和甲壳素混合而成,而开合机构是没有完整意识的阿拉克涅虫组织结构,这使得其可以实现自动开关,需要在阿拉克涅菌毯上建造。</description>
<thingClass>Building_MultiTileDoor</thingClass>
<category>Building</category>
<altitudeLayer>DoorMoveable</altitudeLayer>
<fillPercent>1</fillPercent>
<useHitPoints>true</useHitPoints>
<graphicData>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<damageData>
<!-- no damage marks because they don't move with the door
<rect>(0,0.12,1,0.76)</rect>-->
<enabled>false</enabled>
</damageData>
</graphicData>
<statBases>
<MarketValue>2</MarketValue>
<MaxHitPoints>1200</MaxHitPoints>
<Flammability>0</Flammability>
<WorkToBuild>1000</WorkToBuild>
<Beauty>-10</Beauty>
<DoorOpenSpeed>2</DoorOpenSpeed>
</statBases>
<costList>
<ARA_Carapace>5</ARA_Carapace>
<ARA_InsectJelly>2</ARA_InsectJelly>
</costList>
<leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
<selectable>true</selectable>
<tickerType>Normal</tickerType>
<!-- <rotatable>false</rotatable> -->
<!--<soundImpactDefault>BulletImpact_Metal</soundImpactDefault>-->
<useStuffTerrainAffordance>false</useStuffTerrainAffordance>
<stuffCategories Inherit="False"></stuffCategories>
<terrainAffordanceNeeded>ARA_Creep</terrainAffordanceNeeded>
<designationCategory>ARA_Buildings</designationCategory>
<holdsRoof>true</holdsRoof>
<staticSunShadowHeight>1.0</staticSunShadowHeight>
<blockLight>true</blockLight>
<drawerType>RealtimeOnly</drawerType>
<repairEffect>EatVegetarian</repairEffect>
<comps>
<li Class="CompProperties_Breakdownable"/>
<li Class="CompProperties_Forbiddable">
<allowNonPlayer>true</allowNonPlayer>
</li>
</comps>
<damageMultipliers Inherit="False">
<li>
<damageDef>Bomb</damageDef>
<multiplier>0.1</multiplier>
</li>
<li>
<damageDef>Thump</damageDef>
<multiplier>0.1</multiplier>
</li>
</damageMultipliers>
<building>
<paintable>true</paintable>
<isInert>true</isInert>
<canPlaceOverWall>true</canPlaceOverWall>
<soundDoorOpenPowered>Door_OpenPowered</soundDoorOpenPowered>
<soundDoorClosePowered>Door_ClosePowered</soundDoorClosePowered>
<soundDoorOpenManual>Door_OpenManual</soundDoorOpenManual>
<soundDoorCloseManual>Door_CloseManual</soundDoorCloseManual>
<blueprintClass>Blueprint_Build</blueprintClass>
<ai_chillDestination>false</ai_chillDestination>
<isSupportDoor>true</isSupportDoor>
<blueprintGraphicData>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_BluePrint</texPath>
</blueprintGraphicData>
<doorTopGraphic>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Top</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.7, 1.2)</drawSize>
</doorTopGraphic>
<doorSupportGraphic>
<texPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Support</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(1.7, 1.2)</drawSize>
</doorSupportGraphic>
</building>
<uiOrder>2505</uiOrder>
<uiIconPath>ArachnaeSwarm/Building/Door/ARA_InsectDoor_Icon</uiIconPath>
<designationHotKey>Misc2</designationHotKey>
<constructionSkillPrerequisite>6</constructionSkillPrerequisite>
</ThingDef>
<ThingDef ParentName="BuildingNaturalBase">
<defName>ARA_Tumor</defName>
<label>阿拉克涅菌瘤</label>
<description>会发出微光以照亮阿拉克涅巢穴的菌瘤,除了照明外还会在地上大范围地扩散菌毯,以便工蜂建立更多的阿拉克涅建筑。</description>
<thingClass>Building</thingClass>
<!-- <minifiedDef>MinifiedThing</minifiedDef> -->
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<selectable>true</selectable>
<fillPercent>0.20</fillPercent>
<leaveResourcesWhenKilled>false</leaveResourcesWhenKilled>
<rotatable>false</rotatable>
<tickerType>Normal</tickerType>
<designationCategory>ARA_Buildings</designationCategory>
<repairEffect>EatVegetarian</repairEffect>
<filthLeaving>Filth_Slime</filthLeaving>
<!-- <thingCategories>
<li>BuildingsSpecial</li>
</thingCategories> -->
<statBases>
<MaxHitPoints>50</MaxHitPoints>
<Mass>4</Mass>
<Flammability>1.0</Flammability>
<MarketValue>50</MarketValue>
</statBases>
<costList>
<ARA_InsectJelly>3</ARA_InsectJelly>
</costList>
<comps>
<li Class="CompProperties_Glower">
<glowRadius>6</glowRadius>
<glowColor>(220,210,171,0)</glowColor>
</li>
<!-- <li Class="CompProperties_Lifespan">
<lifespanTicks>1200000</lifespanTicks>
</li> -->
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">
<delayTicks>60</delayTicks> <!-- 60 ticks = 1 second -->
<terrainToSpawn>ARA_InsectCreep</terrainToSpawn>
<spawnRadius>6</spawnRadius>
</li>
</comps>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_Tumor</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shadowData>
<volume>(0.3, 0.6, 0.3)</volume>
<offset>(0,0,-0.1)</offset>
</shadowData>
<damageData>
<rect>(0.2,0.2,0.6,0.6)</rect>
</damageData>
</graphicData>
<placeWorkers>
<li>PlaceWorker_GlowRadius</li>
</placeWorkers>
</ThingDef>
<ThingDef ParentName="BuildingNaturalBase">
<defName>ARA_Tumor_SunLamp</defName>
<label>阿拉克涅巨型菌瘤</label>
<description>一个比普通菌瘤更大的菌瘤,内部的发光器官亮的难以想象,可以支持作物的光照条件,但是其寿命比普通菌瘤要短得多。</description>
<thingClass>Building_SunLamp</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_Tumor</texPath>
<graphicClass>Graphic_Single</graphicClass>
<shadowData>
<volume>(0.3, 0.6, 0.3)</volume>
<offset>(0,0,-0.1)</offset>
</shadowData>
<damageData>
<rect>(0.2,0.2,0.6,0.6)</rect>
</damageData>
</graphicData>
<size>(2,2)</size>
<blockWind>true</blockWind>
<tickerType>Normal</tickerType>
<statBases>
<WorkToBuild>600</WorkToBuild>
<Mass>4.5</Mass>
</statBases>
<designationCategory>ARA_Buildings</designationCategory>
<costList>
<ARA_InsectJelly>10</ARA_InsectJelly>
</costList>
<uiOrder>2995</uiOrder>
<comps>
<li Class="CompProperties_Glower">
<overlightRadius>7.0</overlightRadius>
<glowRadius>14</glowRadius>
<glowColor>(220,210,171,0)</glowColor>
<colorPickerEnabled>true</colorPickerEnabled>
</li>
<!-- <li Class="CompProperties_Schedule">
<startTime>0.25</startTime>
<endTime>0.8</endTime>
<offMessage>Off for plant resting period</offMessage>
</li> -->
<!-- <li Class="CompProperties_HeatPusher">
<compClass>CompHeatPusherPowered</compClass>
<heatPerSecond>3</heatPerSecond>
</li> -->
</comps>
<!-- Determined by trial and error
This value isn't perfect because these radii use different algorithms
but it matches in this case-->
<specialDisplayRadius>5.8</specialDisplayRadius>
</ThingDef>
<ThingDef ParentName="BenchBase">
<defName>ARA_ResearchBench</defName>
<label>阿拉克涅研究台</label>
<description>A simple bench with writing implements and simple measurement devices. Researchers work here to discover new things.</description>
<thingClass>Building_ResearchBench</thingClass>
<size>(3,2)</size>
<stuffCategories>
<li>Metallic</li>
<li>Woody</li>
<li>Stony</li>
</stuffCategories>
<costStuffCount>75</costStuffCount>
<costList>
<Steel>25</Steel>
</costList>
<graphicData>
<texPath>Things/Building/Production/ResearchBenchSimple</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<shaderType>CutoutComplex</shaderType>
<drawSize>(5,4)</drawSize>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
<cornerBL>Damage/Corner</cornerBL>
<cornerBR>Damage/Corner</cornerBR>
</damageData>
</graphicData>
<castEdgeShadows>true</castEdgeShadows>
<staticSunShadowHeight>0.20</staticSunShadowHeight>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<pathCost>50</pathCost>
<statBases>
<MaxHitPoints>250</MaxHitPoints>
<WorkToBuild>2800</WorkToBuild>
<Flammability>1.0</Flammability>
<ResearchSpeedFactor>0.75</ResearchSpeedFactor>
</statBases>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
<li>PlaceWorker_DrawLinesToBookcasesInRoom</li>
</placeWorkers>
<fillPercent>0.5</fillPercent>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<hasInteractionCell>true</hasInteractionCell>
<designationCategory>Production</designationCategory>
<uiOrder>2600</uiOrder>
<surfaceType>Item</surfaceType>
<building>
<paintable>true</paintable>
<workTableRoomRole>Laboratory</workTableRoomRole>
<workTableNotInRoomRoleFactor>0.8</workTableNotInRoomRoleFactor>
</building>
<comps Inherit="False">
<li Class="CompProperties_ReportWorkSpeed">
<workSpeedStat>ResearchSpeedFactor</workSpeedStat>
</li>
</comps>
</ThingDef>
</Defs>

View File

@@ -1,12 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="BuildingNaturalBase">
<ThingDef Name="ARA_InteractiveEggSac" ParentName="BuildingNaturalBase">
<defName>ARA_InteractiveEggSac</defName>
<label>阿拉克涅虫卵囊-休眠中</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅女皇种所诞之卵,内含哺育一只新督虫所需的营养和遗传物质——可以通过阿拉克涅女皇种的交互完成激活进程。</description>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅女皇种所诞之卵,内含哺育一只新督虫所需的营养和遗传物质可以通过阿拉克涅女皇种的交互完成激活进程——参阅虫卵的具体信息,了解各个督虫的特点</description>
<thingClass>Building</thingClass>
<descriptionHyperlinks>
<ThingDef>ArachnaeNode_Race_Myrmecocystus</ThingDef>
<ThingDef>ArachnaeNode_Race_ShieldHead</ThingDef>
</descriptionHyperlinks>
<category>Building</category>
<size>(1,1)</size>
@@ -48,31 +49,25 @@
</li>
<li Class="ArachnaeSwarm.CompProperties_SpawnPawnFromList">
<pawnKinds>
<li>Megascarab</li>
<li>Spelopede</li>
<li>Megaspider</li>
<li>ArachnaeNode_Race_Myrmecocystus</li>
<li>ArachnaeNode_Race_ShieldHead</li>
</pawnKinds>
<whitelist>
<li>ARA_ArachnaeQueen</li>
</whitelist>
<pawnKindDelays>
<li>
<pawnKind>Megascarab</pawnKind>
<delay>3000</delay>
</li>
<li>
<pawnKind>Spelopede</pawnKind>
<delay>3000</delay>
</li>
<li>
<pawnKind>Megaspider</pawnKind>
<delay>3000</delay>
</li>
<li>
<pawnKind>ArachnaeNode_Race_Myrmecocystus</pawnKind>
<delay>300</delay>
</li>
<li>
<pawnKind>ArachnaeNode_Race_ShieldHead</pawnKind>
<delay>300</delay>
</li>
<li>
<pawnKind>ArachnaeNode_Race_WeaponSmith</pawnKind>
<delay>300</delay>
</li>
</pawnKindDelays>
<destroyOnSpawn>true</destroyOnSpawn>
</li>
@@ -92,42 +87,17 @@
</li>
<li Class="ArachnaeSwarm.CompProperties_DelayedTerrainSpawn">
<delayTicks>60</delayTicks> <!-- 60 ticks = 1 second -->
<terrainToSpawn>ARA_InsectSludge</terrainToSpawn>
<terrainToSpawn>ARA_InsectCreep</terrainToSpawn>
<spawnRadius>4.6</spawnRadius>
</li>
</comps>
</ThingDef>
<TerrainDef ParentName="FloorBase">
<defName>ARA_InsectSludge</defName>
<label>阿拉克涅菌毯</label>
<description>由阿拉克涅虫族所铺设的由真菌和分泌物混合得到的地面,清洁速度很快,但是对其他种族来说不太好看</description>
<designationCategory>Floors</designationCategory>
<texturePath>Terrain/Surfaces/InsectSludge</texturePath>
<pollutionShaderType MayRequire="Ludeon.RimWorld.Biotech">TerrainFadeRoughLinearBurn</pollutionShaderType>
<pollutionOverlayTexturePath>Terrain/Surfaces/PollutionMud</pollutionOverlayTexturePath>
<pollutionColor>(1, 1, 1, 1)</pollutionColor>
<edgeType>FadeRough</edgeType>
<resourcesFractionWhenDeconstructed>0</resourcesFractionWhenDeconstructed>
<renderPrecedence>330</renderPrecedence>
<pathCost>0</pathCost>
<generatedFilth>Filth_Slime</generatedFilth>
<filthAcceptanceMask>
<li>Unnatural</li>
</filthAcceptanceMask>
<natural>true</natural>
<fertility>0</fertility>
<takeFootprints>True</takeFootprints>
<avoidWander>false</avoidWander>
<statBases>
<Beauty>-6</Beauty>
<CleaningTimeFactor>0.25</CleaningTimeFactor>
<Cleanliness>0</Cleanliness>
<Flammability>0.2</Flammability>
</statBases>
<!-- <tags>
<li>Insect</li>
</tags> -->
</TerrainDef>
<ThingDef ParentName="ARA_InteractiveEggSac">
<defName>ARA_InteractiveEggSac_Start</defName>
<label>初诞阿拉克涅虫卵囊-休眠中</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅女皇种初到此地所诞之卵,内含哺育一只新督虫所需的营养和遗传物质,可以通过阿拉克涅女皇种的交互完成激活进程——参阅虫卵的具体信息,了解各个督虫的特点</description>
<minifiedDef Inherit="False" />
<thingCategories Inherit="False" />
</ThingDef>
</Defs>

View File

@@ -0,0 +1,179 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="BuildingBase">
<defName>ARA_BioforgeIncubator</defName>
<label>阿拉克涅孵化茧</label>
<description>一个脆弱、易燃、黏滑的囊状物,是阿拉克涅工艺种所诞之卵,内含哺育阿拉克涅武器种虫族所需的营养和遗传物质,可以通过阿拉克涅工艺种的交互完成激活进程。孵化茧对温度极度敏感,遭受极端温度将会受损需要小心保护。</description>
<thingClass>Building</thingClass>
<graphicData>
<texPath>ArachnaeSwarm/Building/ARA_EggSac</texPath>
<graphicClass>Graphic_Single</graphicClass>
<drawSize>(1.5,1.5)</drawSize>
</graphicData>
<size>(1,1)</size>
<altitudeLayer>Building</altitudeLayer>
<passability>PassThroughOnly</passability>
<fillPercent>0.3</fillPercent>
<rotatable>false</rotatable>
<tickerType>Normal</tickerType>
<statBases>
<MaxHitPoints>50</MaxHitPoints>
<Flammability>1</Flammability>
</statBases>
<building>
<deconstructible>false</deconstructible>
<repairable>false</repairable>
</building>
<comps>
<li Class="CompProperties_SpawnEffecterOnDestroy">
<effect>CocoonDestroyed</effect>
</li>
<li Class="CompProperties_SpawnerFilth">
<filthDef>Filth_Slime</filthDef>
<spawnCountOnSpawn>10</spawnCountOnSpawn>
<spawnMtbHours>4</spawnMtbHours>
<spawnRadius>5</spawnRadius>
</li>
<!-- The new, GrowthVat-style fuel component -->
<li Class="ArachnaeSwarm.CompProperties_RefuelableNutrition">
<fuelCapacity>10</fuelCapacity>
<fuelLabel>Biomass</fuelLabel>
<fuelFilter>
<categories>
<li>Foods</li>
</categories>
</fuelFilter>
<fuelConsumptionRate>0</fuelConsumptionRate> <!-- IMPORTANT: Disable base class consumption -->
</li>
<!-- The refactored producer component -->
<li Class="ArachnaeSwarm.CompProperties_InteractiveProducer">
<processes>
<li>
<thingDef>Gun_ChainShotgun</thingDef>
<productionTicks>60000</productionTicks>
<totalNutritionNeeded>20</totalNutritionNeeded>
</li>
<li>
<thingDef>Gun_AssaultRifle</thingDef>
<productionTicks>60000</productionTicks>
<totalNutritionNeeded>15</totalNutritionNeeded>
</li>
</processes>
<whitelist>
<li>ArachnaeNode_Race_WeaponSmith</li>
</whitelist>
<spawnCount>1</spawnCount>
<destroyOnSpawn>True</destroyOnSpawn>
<minSafeTemperature>18</minSafeTemperature>
<maxSafeTemperature>23</maxSafeTemperature>
<penaltyPerDegreePerTick>0.00001</penaltyPerDegreePerTick>
<damagePerTickWhenUnfueled>0.2</damagePerTickWhenUnfueled>
<minNutritionToStart>1.0</minNutritionToStart>
<qualityThresholds>
<li>
<quality>Legendary</quality>
<threshold>0.99</threshold>
</li>
<li>
<quality>Masterwork</quality>
<threshold>0.90</threshold>
</li>
<li>
<quality>Excellent</quality>
<threshold>0.70</threshold>
</li>
<li>
<quality>Good</quality>
<threshold>0.50</threshold>
</li>
<li>
<quality>Normal</quality>
<threshold>0.20</threshold>
</li>
<li>
<quality>Poor</quality>
<threshold>0.10</threshold>
</li>
</qualityThresholds>
<!--
<![CDATA[
当一个生产流程完成时,系统会通过以下三个步骤来确定最终的物品品质:
第 1 步: 计算“基础品质分” (Base Quality Score)
基础品质分代表了在整个生产过程中,理想条件所占的比例。理想条件被严格定义为:燃料充足 且 温度适宜。
公式:
基础品质分 = 在理想条件下度过的时间(ticks) / 生产总需时间(ticks)
C# 代码对应:
baseQuality = (_selectedProcess.productionTicks > 0) ? (float)ticksUnderOptimalConditions / _selectedProcess.productionTicks : 0f;
说明:
ticksUnderOptimalConditions 是一个计数器只有在同时满足燃料充足和温度安全这两个条件的游戏刻Tick它才会加 1。
_selectedProcess.productionTicks 是在 XML 中为该产品定义的总生产时间。
这个得分的范围是 0.0 (0%) 到 1.0 (100%)。如果整个过程都完美无缺,这个分数就是 1.0。
第 2 步: 计算“温度惩罚分” (Temperature Penalty Score)
温度惩罚分是一个独立累加的负面分数。它只在环境温度超出安全范围时才会累积。
公式:
每刻惩罚增加量 = 超出安全范围的度数 × penaltyPerDegreePerTick
温度惩罚分 = 所有惩罚增加量的总和
C# 代码对应:
temperaturePenaltyPercent = Mathf.Min(1f, temperaturePenaltyPercent + tempDelta * Props.penaltyPerDegreePerTick);
说明:
penaltyPerDegreePerTick 是一个可在 XML 中配置的系数代表每超出1度、每刻所产生的惩罚量。
这个惩罚是不可逆的。即使温度恢复正常,已经累积的惩罚也不会减少。
它的最大值被限制在 1.0 (100%),以防止无限累加。
第 3 步: 计算“最终品质分”并映射到品质等级
最终品质分由基础分减去惩罚分得出,这个分数将直接决定物品的品质等级。
公式:
最终品质分 = 基础品质分 - 温度惩罚分
C# 代码对应:
finalQualityScore = Mathf.Clamp01(baseQuality - temperaturePenaltyPercent);
映射到品质等级:
得到 finalQualityScore (一个 0.0 到 1.0 之间的值) 后,系统会通过一系列 if-else if 判断,将其映射到游戏中的 QualityCategory (品质等级)。例如,在我们的代码中:
>= 0.99 -> 传说 (Legendary)
>= 0.90 -> 杰作 (Masterwork)
>= 0.70 -> 优秀 (Excellent)
>= 0.50 -> 良好 (Good)
>= 0.20 -> 普通 (Normal)
>= 0.10 -> 差 (Poor)
< 0.10 -> 劣质 (Awful)
总结
这个系统的核心在于,它鼓励玩家全程维持最佳生产环境。
仅仅保持燃料充足或温度适宜是不够的,必须两者兼顾才能提高“基础品质分”。
同时,必须极力避免温度超出安全范围,因为“温度惩罚分”是纯粹的惩罚,它只会单方面地拉低最终品质,且无法挽回。
这种设计为玩家提供了一个清晰的目标和富有挑战性的过程管理,而不是一个简单的“放置-等待”式生产。
]]>
-->
</li>
<li Class="ArachnaeSwarm.CompProperties_TemperatureRuinableDamage">
<minSafeTemperature>13</minSafeTemperature>
<maxSafeTemperature>28</maxSafeTemperature>
<progressPerDegreePerTick>0.00005</progressPerDegreePerTick>
<damagePerTick>0.001</damagePerTick>
<recoveryRate>0.001</recoveryRate>
</li>
</comps>
</ThingDef>
</Defs>

View File

@@ -1,7 +1,449 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThinkTreeDef>
<defName>ARA_Humanlike</defName> <!-- 更改defName以避免与原版Humanlike冲突 -->
<defName>ARA_Insect_WithPlanting</defName>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<!-- Keep lying down if we have to -->
<li Class="ThinkNode_ConditionalMustKeepLyingDown">
<subNodes>
<!-- Do a queued job if possible -->
<li Class="ThinkNode_QueuedJob">
<inBedOnly>true</inBedOnly>
</li>
<!-- Keep lying down -->
<li Class="JobGiver_KeepLyingDown"/>
</subNodes>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>Downed</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>BurningResponse</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateCritical</treeDef>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat"/>
<!-- Do a queued job -->
<li Class="ThinkNode_QueuedJob"/>
<!-- Wild insects dig out if no path to map edge and starving -->
<li Class="ThinkNode_ConditionalHasFaction">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_ConditionalStarving">
<subNodes>
<li Class="ThinkNode_ConditionalBodySize">
<min>0.7</min>
<subNodes>
<li Class="ThinkNode_Subtree">
<treeDef>DigOutIfCannotReachMapEdge</treeDef>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Leave if timed out -->
<li Class="ThinkNode_ConditionalExitTimedOut">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Mental state non critical -->
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateNonCritical</treeDef>
</li>
<!-- Forced goto -->
<li Class="ThinkNode_ConditionalForcedGoto">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ForcedGoto"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Behavior when roped -->
<li Class="ThinkNode_Subtree">
<treeDef>RopedPawn</treeDef>
</li>
<!-- Lord directives -->
<li Class="ThinkNode_Subtree">
<treeDef>LordDuty</treeDef>
</li>
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Animal_PreMain</insertTag>
</li>
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Insect_PreMain</insertTag>
</li>
<li Class="ThinkNode_ConditionalHasFaction">
<invert>true</invert>
<subNodes>
<!-- Wild insects with no lord will fight nearby enemies -->
<li Class="JobGiver_AIFightEnemies">
<targetAcquireRadius>30</targetAcquireRadius> <!-- Same as DefendAndExpandHive -->
<targetKeepRadius>35</targetKeepRadius>
</li>
<!-- Wild insects leave map in some conditions -->
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfWrongSeason</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>LeaveIfStarving</treeDef>
</li>
<!-- Wild insects randomly leave map -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Insects of a faction that's not the players without a lord leave randomly -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_ConditionalHasFaction">
<subNodes>
<li Class="ThinkNode_ConditionalNoLord">
<subNodes>
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapRandom">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Tame insects -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>TrainedAnimalBehavior</tagToGive>
<subNodes>
<!-- Trained behavior: obedience: Follow and defend master -->
<li Class="ThinkNode_ConditionalTrainableCompleted">
<trainable>Obedience</trainable>
<subNodes>
<li Class="ThinkNode_ConditionalShouldFollowMaster">
<subNodes>
<li Class="JobGiver_AIDefendMaster">
<attackMeleeThreatEvenIfNotHostile>true</attackMeleeThreatEvenIfNotHostile>
</li>
<li Class="JobGiver_AIFollowMaster"/>
<li Class="JobGiver_WanderNearMaster"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Trained behavior: Rescue-->
<li Class="ThinkNode_ConditionalTrainableCompleted">
<trainable>Rescue</trainable>
<subNodes>
<li Class="JobGiver_RescueNearby">
<radius>500</radius>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Take care of critical needs (below rescue - so heroic!)-->
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed"/>
</subNodes>
</li>
<li Class="JobGiver_SeekAllowedArea"/>
<li Class="JobGiver_SeekSafeTemperature"/>
</subNodes>
</li>
<!-- Eat random things out of curiosity -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbDays>60</mtbDays>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="JobGiver_EatRandom"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Satisfy basic needs -->
<li Class="ThinkNode_Subtree">
<treeDef>SatisfyBasicNeeds</treeDef>
</li>
<!-- Tame insect: do useful things for the colony-->
<li Class="ThinkNode_ConditionalHasFaction">
<subNodes>
<!-- Try to mate -->
<li Class="ThinkNode_ChancePerHour_Mate">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="JobGiver_Mate"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Nuzzle randoms -->
<li Class="ThinkNode_ChancePerHour_Nuzzle">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_Nuzzle"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Roamers gonna roam -->
<li Class="ThinkNode_ChancePerDay_Roam">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_StartRoaming"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Trained behavior: Haul-->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbHours>0.5</mtbHours>
<subNodes>
<li Class="ThinkNode_ConditionalRequireCapacities">
<requiredCapacities>
<li>Manipulation</li>
</requiredCapacities>
<subNodes>
<li Class="ThinkNode_ConditionalTrainableCompleted">
<trainable>Haul</trainable>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>TrainedAnimalBehavior</tagToGive>
<subNodes>
<li Class="JobGiver_Haul"/>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Trained behavior: Forage -->
<li Class="ThinkNode_ConditionalTrainableCompleted" MayRequire="Ludeon.RimWorld.Odyssey">
<trainable>Forage</trainable>
<subNodes>
<li Class="ThinkNode_ChancePerHour_Forage">
<subNodes>
<li Class="ThinkNode_ConditionalAnimalShouldForage">
<subNodes>
<li Class="JobGiver_Forage" />
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalAnimalShouldDig">
<subNodes>
<li Class="JobGiver_Mine" />
</subNodes>
</li>
<!-- Trained behavior: Mine
<li Class="ThinkNode_ConditionalTrainableCompleted" MayRequire="Ludeon.RimWorld.Odyssey">
<trainable>Dig</trainable>
<subNodes>
</subNodes>
</li>-->
<!-- OUR CUSTOM LOGIC INJECTION FOR PLANT HARVESTING -->
<li Class="ArachnaeSwarm.ThinkNode_ConditionalAnimalShouldDoGrowingWork">
<subNodes>
<!-- 统一的、智能的农业 JobGiver -->
<li Class="ArachnaeSwarm.JobGiver_Grower" />
</subNodes>
</li>
</subNodes>
</li>
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Animal_PreWander</insertTag>
</li>
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Insect_PreWander</insertTag>
</li>
<!-- Tame insect: wander near colony if possible -->
<li Class="ThinkNode_ConditionalOfPlayerFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Wander near your current position if in hostile map -->
<li Class="ThinkNode_ConditionalAnyEnemyInHostileMap">
<subNodes>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="ThinkNode_ConditionalRoamer">
<subNodes>
<li Class="JobGiver_WanderInRoofedCellsInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
<expiryInterval>500</expiryInterval>
</li>
<!-- tame roamers should not wander too far, and if unenclosed wander near a suitable pen marker 10% of the time -->
<li Class="ThinkNode_ConditionalRandom">
<chance>0.1</chance>
<subNodes>
<li Class="JobGiver_WanderInPen">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
<expiryInterval>500</expiryInterval>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<!-- Wander near colony -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Of neutral faction: rest and then exit the map -->
<li Class="ThinkNode_ConditionalNonPlayerNonHostileFaction">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed"/>
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Wander -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="ThinkNode_ConditionalHerdAnimal">
<subNodes>
<li Class="JobGiver_WanderHerd">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError"/>
</subNodes>
</thinkRoot>
</ThinkTreeDef>
<ThinkTreeDef>
<defName>ARA_Humanlike</defName> <!-- 更改defName以避免与原版Humanlike冲突 -->
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
@@ -20,7 +462,7 @@
</li>
</subNodes>
</li>
<!-- If we HAVE to keep lying down... -->
<li Class="ThinkNode_ConditionalMustKeepLyingDown">
<subNodes>
@@ -45,12 +487,12 @@
</li>
</subNodes>
</li>
<!-- Keep lying down -->
<li Class="JobGiver_KeepLyingDown" />
</subNodes>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>Downed</treeDef>
</li>
@@ -65,7 +507,7 @@
<li Class="ThinkNode_Subtree" MayRequire="Ludeon.RimWorld.Biotech">
<treeDef>Abilities_Escape</treeDef>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat" />
@@ -83,7 +525,7 @@
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PostMentalState</insertTag>
</li>
<!-- Do a queued job -->
<li Class="ThinkNode_QueuedJob" />
@@ -121,21 +563,21 @@
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PostDuty</insertTag>
</li>
<!-- JobGiver_MaintainBuildings start -->
<li Class="ThinkNode_ChancePerHour_Constant">
<mtbHours>2.5</mtbHours>
<subNodes>
<li Class="ArachnaeSwarm.JobGiver_MaintainBuildings">
<maintainableThingDefs>
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
</maintainableThingDefs>
</li>
</subNodes>
</li>
<li Class="ArachnaeSwarm.JobGiver_MaintainBuildings">
<maintainableThingDefs>
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
<li>ARA_InteractiveEggSac</li> <!-- 默认维护Hive -->
</maintainableThingDefs>
<onlyIfDamagingState>true</onlyIfDamagingState>
</li>
@@ -158,7 +600,7 @@
</li>
</subNodes>
</li>
<!-- Escape -->
<li Class="ThinkNode_Tagger">
<tagToGive>Escaping</tagToGive>
@@ -168,7 +610,7 @@
</li>
</subNodes>
</li>
<!-- Exit map if released -->
<li Class="ThinkNode_ConditionalReleased">
<subNodes>
@@ -189,14 +631,14 @@
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>ChangingApparel</tagToGive>
<subNodes>
<li Class="JobGiver_PrisonerGetDressed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
@@ -220,7 +662,7 @@
</li>
</subNodes>
</li>
<!-- If in non-PlayerHomeMap -->
<li Class="ThinkNode_ConditionalInNonPlayerHomeMap">
<subNodes>
@@ -247,7 +689,7 @@
</li>
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
@@ -256,7 +698,7 @@
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError" />
</subNodes>
</li>
@@ -279,7 +721,7 @@
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<emergency>true</emergency>
</li>
<!-- Get food (only if starving) -->
<li Class="ThinkNode_ConditionalStarving">
<subNodes>
@@ -375,7 +817,7 @@
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PreMain</insertTag>
</li>
<!-- Main colonist behavior core -->
<li Class="ThinkNode_ConditionalColonist">
<subNodes>
@@ -416,7 +858,7 @@
<li Class="JobGiver_IdleJoy" />
</subNodes>
</li>
<!-- Wander -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
@@ -454,7 +896,7 @@
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
@@ -498,4 +940,5 @@
</subNodes>
</thinkRoot>
</ThinkTreeDef>
</Defs>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<TrainableDef>
<defName>ARA_Sowing</defName>
<label>种植</label>
<description>允许该生物执行种植任务。</description>
<!-- 标记为特殊训练,这样它就会被 PawnColumnWorker_Trainable_Special 统一管理 -->
<specialTrainable>true</specialTrainable>
<!-- 训练难度和所需智力 -->
<difficulty>5</difficulty>
<requiredTrainability>Advanced</requiredTrainability>
<!-- 训练所需步骤 -->
<steps>3</steps>
<!-- 在UI中的排序 -->
<listPriority>100</listPriority>
</TrainableDef>
</Defs>

View File

@@ -4,4 +4,11 @@
<ARA_Incubate>孵化 {0}</ARA_Incubate>
<ARA_NeedsInteraction>未孵化,需要阿拉克涅女皇种交互</ARA_NeedsInteraction>
<!-- CompAbilityEffect_BindDrone -->
<ARA_BindDrone_Success>{0} 已成功绑定到 {1} 的蜂巢思维。</ARA_BindDrone_Success>
<ARA_BindDrone_Failure>无法将 {0} 绑定到 {1} 的蜂巢思维。</ARA_BindDrone_Failure>
<ARA_BindDrone_NoDroneHediff>目标 {0} 没有“ARA_HiveMindDrone”的 hediff。</ARA_BindDrone_NoDroneHediff>
<ARA_BindDrone_AlreadyBound>目标 {0} 已绑定到 {1}。</ARA_BindDrone_AlreadyBound>
<ARA_BindDrone_NoMasterHediff>施法者 {0} 没有“ARA_HiveMindMaster”的 hediff。</ARA_BindDrone_NoMasterHediff>
</LanguageData>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<LanguageData>
<EstimatedQuality>预计品质</EstimatedQuality>
<QualityScore>品质评分</QualityScore>
<TemperaturePenalty>温度惩罚</TemperaturePenalty>
<CurrentTemperature>当前温度: {0}</CurrentTemperature>
<SafeTemperatureRange>安全范围</SafeTemperatureRange>
<CannotStartProduction>无法开始生产</CannotStartProduction>
<NoFuel>无燃料</NoFuel>
<StartProduction>开始生产 {0}</StartProduction>
<CommandCancelProduction>取消生产</CommandCancelProduction>
<CommandCancelProductionDesc>停止当前的生产流程。</CommandCancelProductionDesc>
<Producing>正在生产 {0}</Producing>
<TimeLeft>剩余时间</TimeLeft>
<ProjectedQuality>预计品质</ProjectedQuality>
<TemperaturePenalty>温度惩罚</TemperaturePenalty>
<NotProducing>未在生产</NotProducing>
</LanguageData>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Some files were not shown because too many files have changed in this diff Show More