diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 9b6b9e8..9089bf9 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Defs/AnimationDefs/ARA_Flight_Anims.xml b/1.6/1.6/Defs/AnimationDefs/ARA_Flight_Anims.xml
new file mode 100644
index 0000000..6d1cd16
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/ARA_Flight_Anims.xml
@@ -0,0 +1,92 @@
+
+
+
+ ARA_FlyEast
+ 60
+
+
+ ARA_Flight_Attachment
+
+
+ ARA_FlyEast_00
+ ARA_FlyEast_14
+ ARA_FlyEast_28
+ ARA_FlyEast_312
+ ARA_FlyEast_416
+ ARA_FlyEast_520
+ ARA_FlyEast_624
+ ARA_FlyEast_728
+
+
+
+
+ Root
+ AnimationWorker_Keyframes
+ 0(0,0,-0.05)
+ 30(0,0,0.05)
+ 60(0,0,-0.05)
+
+
+
+
+
+
+ ARA_FlyNorth
+ 60
+
+
+ ARA_Flight_Attachment
+
+
+ ARA_FlyNorth_00
+ ARA_FlyNorth_14
+ ARA_FlyNorth_28
+ ARA_FlyNorth_312
+ ARA_FlyNorth_416
+ ARA_FlyNorth_520
+ ARA_FlyNorth_624
+ ARA_FlyNorth_728
+
+
+
+
+ Root
+ AnimationWorker_Keyframes
+ 0(0,0,-0.05)
+ 30(0,0,0.05)
+ 60(0,0,-0.05)
+
+
+
+
+
+
+ ARA_FlySouth
+ 60
+
+
+ ARA_Flight_Attachment
+
+
+ ARA_FlySouth_00
+ ARA_FlySouth_14
+ ARA_FlySouth_28
+ ARA_FlySouth_312
+ ARA_FlySouth_416
+ ARA_FlySouth_520
+ ARA_FlySouth_624
+ ARA_FlySouth_728
+
+
+
+
+ Root
+ AnimationWorker_Keyframes
+ 0(0,0,-0.05)
+ 30(0,0,0.05)
+ 60(0,0,-0.05)
+
+
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Constant.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Constant.xml
deleted file mode 100644
index 2e801bb..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Constant.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
- ArachnaeNode_normal
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- normal
- normal
- normal
- normal
-
-
- 0
-
-
- ArachnaeNode_eyeMoving
- ArachnaeNode_Race_Myrmecocystus
-
-
- 15
- (-0.005,0,0)
-
-
- 1002
- 30
- 500
-
-
- ArachnaeNode_eyeMoving2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 15
- (0.005,0,0)
-
-
- 1001
- 30
- 500
-
-
- ArachnaeNode_eyeFlicker
- ArachnaeNode_Race_Myrmecocystus
-
-
- 3
-
-
- 1001
- 10
- 30
-
-
- ArachnaeNode_blink
- ArachnaeNode_Race_Myrmecocystus
-
-
- 3
- (0,0,-0.005)
- (0,0,-0.005)
- normal
-
-
- 12
- (0,0,-0.01)
- close
-
-
- 3
- (0,0,-0.005)
- (0,0,-0.005)
- normal
-
-
- 30
- 500
- 1000
-
-
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Thoughts.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Thoughts.xml
deleted file mode 100644
index 0e3bc26..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/Constant/Thoughts.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackMelee.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackMelee.xml
deleted file mode 100644
index 88e7398..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackMelee.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
- ArachnaeNode_AttackMelee
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- angled
- open
- (0,0,-0.00875)
- (0.0,0,-0.005)
-
-
-
- AttackMelee
-
- 10200
-
-
-
- AttackMelee2
-
-
- 1
- angled
- normal
-
-
-
- AttackMelee
-
- 10201
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackStatic.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackStatic.xml
deleted file mode 100644
index 3acb48e..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/AttackStatic.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
- ArachnaeNode_AttackStatic
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- angled
- open
- (0,0,-0.00875)
- (0.0,0,-0.005)
-
-
-
- AttackStatic
-
- 10200
-
-
-
- AttackStatic2
-
-
- 1
- angled
- normal
-
-
-
- AttackStatic
-
- 10201
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/DoBill.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/DoBill.xml
deleted file mode 100644
index c0bee2d..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/DoBill.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
- ArachnaeNode_DoBill
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- (0,0,-0.00625)
- (0.0,0,-0.0075)
- (0,0,-0.0007)
- normal
- (0,0,-0.00325)
- (0,0,-0.00125)
-
-
- 0
- 0
-
- DoBill
-
- 10000
- true
-
-
-
- ArachnaeNode_DoBill2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 3
- (0,0,-0.0035)
- (0.0,0,-0.00375)
- (0,0,-0.0035)
- normal
- (0,0,-0.00025)
- (0,0,-0.000625)
-
-
- 6
- (0,0,-0.007)
- (0.0,0,-0.00525)
- (0,0,-0.0075)
- normal
- (0,0,-0.00375)
- (0,0,-0.00125)
-
-
- 3
- (0,0,-0.0035)
- (0.0,0,-0.00375)
- (0,0,-0.0035)
- normal
- (0,0,-0.00025)
- (0,0,-0.000625)
-
-
- 100
- 200
-
- DoBill
-
- 10001
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Goto.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Goto.xml
deleted file mode 100644
index 4fe2805..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Goto.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
- ArachnaeNode_Goto
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- angled
- normal
- (0.0,0,-0.0025)
-
-
-
- Goto
-
- 10300
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Ingest.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Ingest.xml
deleted file mode 100644
index 3cdcc4c..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Ingest.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
- ArachnaeNode_Ingest
- ArachnaeNode_Race_Myrmecocystus
-
-
- 4
- (0.0,0,0.0025)
- open
-
-
- 4
- (0.0,0,0.005)
- open
-
-
- 6
- (0.0,0,0)
- normal
-
-
- 0
- 30
-
- Ingest
-
- 10
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/LayDown.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/LayDown.xml
deleted file mode 100644
index a7fb6bf..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/LayDown.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-
- ArachnaeNode_laydown
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- flat
- close
- normal
-
-
- 0
- 0
-
- LayDown
-
- 10001
- true
-
-
-
- ArachnaeNode_laydown2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 240
- open
-
-
- 100
- 500
-
- LayDown
-
- 10002
- true
-
-
-
- ArachnaeNode_laydown3
- ArachnaeNode_Race_Myrmecocystus
-
-
- 15
- (0.0,0,0.0015)
- (0,0,0.0035)
- (0,0,0.00025)
- (0,0,0.000625)
-
-
- 60
- (0.0,0,0.00275)
- (0,0,0.0075)
- (0,0,0.00375)
- (0,0,0.00125)
-
-
- 10
- (0.0,0,0.0015)
- (0,0,0.0035)
- (0,0,0.00025)
- (0,0,0.000625)
-
-
- 40
- 200
-
- LayDown
-
- 10003
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Lovin.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Lovin.xml
deleted file mode 100644
index 23e8c77..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Lovin.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
-
- ArachnaeNode_Lovin
- ArachnaeNode_Race_Myrmecocystus
-
-
- 8
- s-shaped
- (0.0,0,0.00125)
- (0.0,0,-0.005)
- close
- (0.0,0,-0.001)
- (0.0,0,0.0075)
- open
- blush
-
-
- 8
- s-shaped
- (0.0,0,-0.00375)
- (0.0,0,-0.0075)
- close
- (0.0,0,-0.0015)
- (0.0,0,0.0075)
- open
- (0,0,-0.002)
- blush
-
-
- 8
- s-shaped
- (0.0,0,0.0075)
- (0.0,0,0.00125)
- close
- (0.0,0,0.001)
- (0.0,0,0.0075)
- open
- (0,0,-0.001)
- blush
-
-
- true
-
- Lovin
- MLI_Jobs_MassLoveIn
- MLI_Jobs_SingleLoveIn
-
- 10400
-
-
-
- ArachnaeNode_Lovin2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 240
- s-shaped
- (0.0,0,0.01)
- (0.0,0,-0.00)
- normal
- (0.0,0,-0.001)
- (0,0,-0.001)
- (0.0,0,0.005)
- normal
- blush
-
-
- 240
- 240
- true
-
- Lovin
- MLI_Jobs_MassLoveIn
- MLI_Jobs_SingleLoveIn
-
- 10500
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Mine.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Mine.xml
deleted file mode 100644
index 0e168f9..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Mine.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- ArachnaeNode_Mine
- ArachnaeNode_Race_Myrmecocystus
-
-
- 10
- (0,0,0.005)
- (0,0,0)
- angled
- (0,0,0.0025)
- open
-
-
- 5
- (0,0,0.01)
- (0,0,-0.01)
- angled
- (0,0,-0.0025)
- open
-
-
- 0
- 0
-
- Mine
-
- 10000
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/RemoveApparel.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/RemoveApparel.xml
deleted file mode 100644
index 4bceab1..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/RemoveApparel.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- ArachnaeNode_RemoveApparel
- ArachnaeNode_Race_Myrmecocystus
-
-
- 10
- (0,0,0.0)
- (-0.005,0,0.005)
- open
- blush
-
-
- 10
- (0,0,0.0)
- (0.005,0,0.005)
- open
- blush
-
-
- 10
- (0,0,0.0)
- (0,0,0.005)
- open
- blush
-
-
-
- RemoveApparel
-
- 105
- true
- 30
- 300
-
-
-
- ArachnaeNode_RemoveApparel2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- s-shaped
- normal
- (0.0,0,0.005)
- blush
-
-
-
- RemoveApparel
-
- 104
- true
-
-
-
- ArachnaeNode_RemoveApparel3
- ArachnaeNode_Race_Myrmecocystus
-
-
- 120
- flat
- close
- (0.0,0,0.005)
- blush
-
-
-
- RemoveApparel
-
- 110
- true
- 30
- 300
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Research.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Research.xml
deleted file mode 100644
index 84c987e..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Research.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
-
- ArachnaeNode_Research
- ArachnaeNode_Race_Myrmecocystus
-
-
- 10
- (0,0,-0.005)
- (0,0,-0.01)
- flat
- normal
- (0,0,-0.00375)
-
-
-
- Research
-
- 10001
- true
-
-
-
- ArachnaeNode_Research2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 4
- (0,0,0.00325)
- (0,0,0.00625)
- (0,0,0.005)
- normal
- open
-
-
- 40
- (0,0,0.00625)
- (0,0,0.00875)
- (0,0,0.01)
- normal
- (0,0,0.0025)
- open
-
-
- 3
- (0,0,0.00625)
- (0,0,0.00875)
- (0,0,0.01)
- close
- normal
- (0,0,0.0025)
- open
-
-
- 20
- (0,0,0.00625)
- (0,0,0.00875)
- (0,0,0.01)
- normal
- (0,0,0.0025)
- open
-
-
- 3
- (0,0,0.00625)
- (0,0,0.00875)
- (0,0,0.01)
- close
- normal
- (0,0,0.0025)
- open
-
-
- 40
- (0,0,0.00625)
- (0,0,0.00875)
- (0,0,0.01)
- normal
- (0,0,0.0025)
- open
-
-
- 8
- (0,0,0.00325)
- (0,0,0.00625)
- (0,0,0.005)
- normal
- open
-
-
- 900
- 1200
-
- Research
-
- 10002
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/SocialRelax.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/SocialRelax.xml
deleted file mode 100644
index fff8b13..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/SocialRelax.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- ArachnaeNode_SocialRelax
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- normal
- close
-
-
-
- SocialRelax
-
- 10200
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/StandAndBeSociallyActive.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/StandAndBeSociallyActive.xml
deleted file mode 100644
index cfdbbbd..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/StandAndBeSociallyActive.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
- ArachnaeNode_StandAndBeSociallyActive
- ArachnaeNode_Race_Myrmecocystus
-
-
- 3
- normal
- (0.0,0,-0.0025)
- open
-
-
- 3
- normal
- (0.0,0,-0.005)
- open
-
-
- 3
- normal
- (0.0,0,0)
- normal
-
-
- 0
- 100
-
- StandAndBeSociallyActive
-
- 10
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Strip.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Strip.xml
deleted file mode 100644
index 38c6499..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Strip.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
-
- ArachnaeNode_Strip
- ArachnaeNode_Race_Myrmecocystus
-
-
- 10
- (0,0,0.0)
- (-0.005,0,0.005)
- blush
-
-
- 10
- (0,0,0.0)
- (0.005,0,0.005)
- blush
-
-
- 10
- (0,0,0.0)
- (0,0,0.005)
- blush
-
-
-
- Strip
-
- 105
- true
- 30
- 300
-
-
-
- Strip2
-
-
- 1
- s-shaped
- normal
- open
- blush
-
-
-
- Strip
-
- 106
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/WaitCombat.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/WaitCombat.xml
deleted file mode 100644
index 3a6a2a7..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/WaitCombat.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
- ArachnaeNode_WaitCombat
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- angled
- normal
-
-
-
- Wait_Combat
-
- 10200
-
-
-
- ArachnaeNode_Wait_Combat_Rare
- ArachnaeNode_Race_Myrmecocystus
-
-
- 15
- normal
-
-
- 4
- (0,0,-0.00375)
- flat
- close
- (0,0,-0.0025)
- (0,0,-0.00625)
- open
-
-
- 45
- (0,0,-0.01)
- s-shaped
- close
- (0,0,-0.005)
- (0,0,-0.0175)
- open
- (0,0,-0.005)
-
-
- 30
- (0,0,-0.01)
- s-shaped
- close
- (0,0,-0.005)
- (0,0,-0.015)
- open
- (0,0,-0.005)
-
-
- 7
- (0,0,-0.00375)
- s-shaped
- close
- (0,0,-0.0025)
- (0,0,-0.0085)
- open
-
-
- 4
- flat
- close
- normal
-
-
- 30
- normal
-
-
-
- Wait_Combat
-
- 10301
- 1000
- 2000
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wait_Downed.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wait_Downed.xml
deleted file mode 100644
index b5dab76..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wait_Downed.xml
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- ArachnaeNode_Wait_Downed
- ArachnaeNode_Race_Myrmecocystus
-
-
- 30
- (0,0,0.015)
- (0,0,0.01)
- (0,0,0.01)
- flat
- (0,0,0.0025)
- open
-
-
- 3
- (0,0,0.0075)
- (0,0,0.005)
- (0,0,0.005)
- flat
- normal
-
-
- 0
- 100
-
- Wait_Downed
-
- 10000
- true
-
-
-
- Wait_Downed2
-
-
- 3
- (0,0,0.005)
- flat
-
-
-
- Wait_Downed
-
- 10001
- true
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wear.xml b/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wear.xml
deleted file mode 100644
index 03d1202..0000000
--- a/1.6/1.6/Defs/AnimationDefs/ArachnaeNode_Race/ForJobs/Wear.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
- ArachnaeNode_Wear
- ArachnaeNode_Race_Myrmecocystus
-
-
- 10
- (0,0,0.0)
- (-0.005,0,0.005)
- open
- blush
-
-
- 10
- (0,0,0.0)
- (0.005,0,0.005)
- open
- blush
-
-
- 10
- (0,0,0.0)
- (0,0,0.005)
- open
- blush
-
-
-
- Wear
-
- 105
- true
- 30
- 300
-
-
-
- ArachnaeNode_Wear2
- ArachnaeNode_Race_Myrmecocystus
-
-
- 1
- s-shaped
- normal
- (0.0,0,0.005)
- blush
-
-
-
- Wear
-
- 104
- true
-
-
-
- Wear3
-
-
- 120
- flat
- close
- (0.0,0,0.005)
- blush
-
-
-
- Wear
-
- 110
- true
- 30
- 300
-
-
\ No newline at end of file
diff --git a/1.6/1.6/Defs/BackstoryDefs/ARA_BackstoryDef.xml b/1.6/1.6/Defs/BackstoryDefs/ARA_BackstoryDef.xml
index 99eebd1..2b12f3a 100644
--- a/1.6/1.6/Defs/BackstoryDefs/ARA_BackstoryDef.xml
+++ b/1.6/1.6/Defs/BackstoryDefs/ARA_BackstoryDef.xml
@@ -204,6 +204,37 @@
+
+ Arachnae_Node_BS_Adult_Skyraider
+ 阿拉克涅空天种
+ 空天种
+ [PAWN_nameDef]是一只阿拉克涅空天种督虫,空天种作为阿拉克涅督虫中的精锐,进化出了强大的飞行能力,是巢穴中无可争议的空中霸主。\n\n作为为数不多拥有飞行能力的虫族,她可以从空中掠袭猎物并将其带至千米高空之上俯冲投下,只留其余猎物在地面无助的挣扎。
+ Adulthood
+
+ Cleaning
+
+ Mining
+ PlantWork
+
+
+ Crafting
+ Cooking
+ Constructing
+ Caring
+ Social
+ Artistic
+ Intellectual
+
+
+ 5
+ 5
+
+
+
+ ArachnaeNode_spawnCategories_Skyraider
+
+
+
Arachnae_Node_BS_Adult_Facehugger
阿拉克涅原虫种
diff --git a/1.6/1.6/Defs/GraphicStateDefs/ARA_Flight_Graphics.xml b/1.6/1.6/Defs/GraphicStateDefs/ARA_Flight_Graphics.xml
new file mode 100644
index 0000000..3311a55
--- /dev/null
+++ b/1.6/1.6/Defs/GraphicStateDefs/ARA_Flight_Graphics.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ ARA_FlyNorth_0Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_1_north1.35
+ ARA_FlyNorth_1Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_2_north1.35
+ ARA_FlyNorth_2Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_3_north1.35
+ ARA_FlyNorth_3Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_4_north1.35
+ ARA_FlyNorth_4Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_5_north1.35
+ ARA_FlyNorth_5Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_6_north1.35
+ ARA_FlyNorth_6Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_7_north1.35
+ ARA_FlyNorth_7Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_8_north1.35
+
+
+ ARA_FlyEast_0Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_1_east1.35
+ ARA_FlyEast_1Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_2_east1.35
+ ARA_FlyEast_2Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_3_east1.35
+ ARA_FlyEast_3Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_4_east1.35
+ ARA_FlyEast_4Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_5_east1.35
+ ARA_FlyEast_5Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_6_east1.35
+ ARA_FlyEast_6Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_7_east1.35
+ ARA_FlyEast_7Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_8_east1.35
+
+
+ ARA_FlySouth_0Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_1_south1.35
+ ARA_FlySouth_1Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_2_south1.35
+ ARA_FlySouth_2Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_3_south1.35
+ ARA_FlySouth_3Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_4_south1.35
+ ARA_FlySouth_4Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_5_south1.35
+ ARA_FlySouth_5Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_6_south1.35
+ ARA_FlySouth_6Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_7_south1.35
+ ARA_FlySouth_7Graphic_SingleThings/Pawn/Animal/Goose/Goose_Flying_8_south1.35
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/HeadType_Defs/ARA_HeadTypeDefs.xml b/1.6/1.6/Defs/HeadType_Defs/ARA_HeadTypeDefs.xml
index ea612ad..3b0e85e 100644
--- a/1.6/1.6/Defs/HeadType_Defs/ARA_HeadTypeDefs.xml
+++ b/1.6/1.6/Defs/HeadType_Defs/ARA_HeadTypeDefs.xml
@@ -12,7 +12,7 @@
ARA_QUEEN_Female_AverageNormalA
- Textures/Pawns/General/Invisible/Inv
+ ArachnaeSwarm/Things/General/Invisible/Inv
diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
index d4fafb2..864f31e 100644
--- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
+++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml
@@ -169,7 +169,7 @@
0
-
+
ArachnaeNode_Race_Facehugger
ArachnaeNode_Race_Facehugger
@@ -235,6 +235,34 @@
0
+
+ ArachnaeNode_Race_Skyraider
+
+ ArachnaeNode_Race_Skyraider
+ PlayerColony
+ 0
+ Things/Pawn/Animal/Goose/Goose_Flying_
+ 1.35
+ 2
+ 2
+ false
+
+
+
+ ArachnaeNode_spawnCategoriesA
+ ArachnaeNode_spawnCategories_Fighter
+
+
+
+
+ ARA_BaseRace_Acid_Launcher
+ ARA_AcidSprayBurst
+ ARA_Toxic_Needle_Fire
+
+
+
+ 0
+
PlayerColony
diff --git a/1.6/1.6/Defs/PawnRenderNodeTagDefs/ARA_NodeTagDefs.xml b/1.6/1.6/Defs/PawnRenderNodeTagDefs/ARA_NodeTagDefs.xml
new file mode 100644
index 0000000..f5ee0bc
--- /dev/null
+++ b/1.6/1.6/Defs/PawnRenderNodeTagDefs/ARA_NodeTagDefs.xml
@@ -0,0 +1,6 @@
+
+
+
+ ARA_Flight_Attachment
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/PawnRenderTreeDefs/ARA_RenderTree.xml b/1.6/1.6/Defs/PawnRenderTreeDefs/ARA_RenderTree.xml
new file mode 100644
index 0000000..f301223
--- /dev/null
+++ b/1.6/1.6/Defs/PawnRenderTreeDefs/ARA_RenderTree.xml
@@ -0,0 +1,159 @@
+
+
+
+ ARA_ArachnaeRenderTree
+
+ Root
+ Root
+
+
+ Body
+ PawnRenderNode_Body
+ PawnRenderNodeWorker_Body
+ Body
+ Body
+ Skin
+ true
+ true
+
+
+ Body tattoo
+ PawnRenderNode_Tattoo_Body
+ PawnRenderNodeWorker_Body_Tattoo
+ Skin
+ true
+ 2
+ Fresh, Rotting
+
+
+ Wounds - pre apparel
+ PawnRenderNodeWorker_OverlayWounds
+ Body
+ 8
+
+
+ Baby swaddle
+ PawnRenderNode_Swaddle
+ PawnRenderNodeWorker_Swaddle
+ Things/Pawn/Humanlike/Apparel/SwaddledBaby/Swaddled_Child
+ 0.1
+ 0.6~0.89
+ 10
+
+
+
+
+
+ Arachnae Flight Attachment
+ ARA_Flight_Attachment
+ ArachnaeSwarm/Things/General/Invisible/Inv
+ 60
+
+
+ -10
+
+
+
+
+
+
+ Apparel root
+ ApparelBody
+ 20
+
+
+ Wounds - post apparel
+ PawnRenderNodeWorker_OverlayWounds
+ true
+ Body
+ 30
+
+
+ Firefoam
+ PawnRenderNodeWorker_OverlayFirefoam
+ Body
+ 40
+
+
+
+
+ Head stump
+ PawnRenderNode_Stump
+ PawnRenderNodeWorker_Stump
+ Things/Pawn/Humanlike/Heads/None_Average_Stump
+ 50
+ Skin
+ Head
+ true
+ true
+ Fresh, Rotting
+
+
+ Head
+ PawnRenderNode_Head
+ PawnRenderNodeWorker_Head
+ Head
+ Head
+ 50
+ Skin
+ true
+ true
+
+
+ Head tattoo
+ PawnRenderNode_Tattoo_Head
+ PawnRenderNodeWorker_Tattoo_Head
+ Fresh, Rotting
+ Skin
+ 52
+
+
+ Beard
+ PawnRenderNode_Beard
+ PawnRenderNodeWorker_Beard
+ Fresh, Rotting
+ Hair
+ Beard
+ 60
+
+
+ Hair
+ PawnRenderNode_Hair
+ PawnRenderNodeWorker_FlipWhenCrawling
+ Fresh, Rotting
+ Hair
+ Hair
+ 62
+
+
+ Head wounds
+ PawnRenderNodeWorker_OverlayWounds
+ Head
+ 65
+
+
+ Apparel root
+ ApparelHead
+ 70
+
+
+ Firefoam
+ PawnRenderNodeWorker_OverlayFirefoam
+ Head
+ 85
+
+
+ Status overlay
+ PawnRenderNodeWorker_OverlayStatus
+ 100
+
+
+
+
+ Weapon/carried thing
+ PawnRenderNodeWorker_Carried
+
+
+
+
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
index eb49e8e..d76af21 100644
--- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
+++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml
@@ -810,7 +810,7 @@
-0.275
-
+
-0.275
@@ -914,7 +914,7 @@
-0.275
-
+
@@ -1007,7 +1007,7 @@
-0.275
-
+
@@ -1223,4 +1223,111 @@
+
+ ArachnaeNode_Race_Skyraider
+
+ 阿拉克涅督虫中的精锐,进化出了强大的飞行能力,是巢穴中无可争议的空中霸主。\n\n作为为数不多拥有飞行能力的虫族,她可以从空中掠袭猎物并将其带至千米高空之上俯冲投下,只留其余猎物在地面无助的挣扎。
+
+
+
+
+
+
+
+ ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_Fighter_Claw
+ true
+
+
+ ArachnaeSwarm/Things/ARA_HiveNode/Addons/ArachnaeNode_Race_Addons_Fighter_Tail
+ false
+
+
+ -0.275
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ Drafted
+
+
+ ARA_FlyNorth
+ ARA_FlyEast
+ ARA_FlySouth
+
+
+
+
+
+
+
+ 4.5
+
+ 9999
+ 0
+
+
+
+
+ 2
+
+ 100
+ 60
+ 30
+
+ 1.25
+ 1.25
+
+
+
+
+
+
+
+ 0.4
+ 0.4
+ 0.3
+
+
+
+
+
+
+ Cut
+
+ 20
+ 2.5
+ ARA_Sickles
+
+ 0.5
+
+
+
+
+
+ ArachnaeFighter_Body
+ ARA_ArachnaeRenderTree
+ 1.0
+ 0.85
+ 2
+ 5
+
+
+ ArachnaeNode_Myrmecocystus_Adult
+ 0
+
+
+
+
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index 48555c9..1129ebc 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -1,5 +1,6 @@
-
+
Debug
@@ -137,6 +138,9 @@
+
+
+
diff --git a/Source/ArachnaeSwarm/CompPawnFlight.cs b/Source/ArachnaeSwarm/CompPawnFlight.cs
new file mode 100644
index 0000000..58d39e2
--- /dev/null
+++ b/Source/ArachnaeSwarm/CompPawnFlight.cs
@@ -0,0 +1,14 @@
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ ///
+ /// A marker component that holds custom flight properties.
+ /// The actual flight logic is handled by Harmony patches that check for this component
+ /// and use its properties to override or trigger vanilla flight behavior.
+ ///
+ public class CompPawnFlight : ThingComp
+ {
+ public CompProperties_PawnFlight Props => (CompProperties_PawnFlight)props;
+ }
+}
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/CompProperties_PawnFlight.cs b/Source/ArachnaeSwarm/CompProperties_PawnFlight.cs
new file mode 100644
index 0000000..26da5b6
--- /dev/null
+++ b/Source/ArachnaeSwarm/CompProperties_PawnFlight.cs
@@ -0,0 +1,49 @@
+using Verse;
+using RimWorld;
+
+namespace ArachnaeSwarm
+{
+ public enum FlightCondition
+ {
+ Drafted
+ }
+
+ public class CompProperties_PawnFlight : CompProperties
+ {
+ // --- Custom Flight Logic ---
+ public FlightCondition flightCondition = FlightCondition.Drafted;
+
+ // --- Vanilla PawnKindDef Flight Parameters ---
+ [NoTranslate]
+ public string flyingAnimationFramePathPrefix;
+
+ [NoTranslate]
+ public string flyingAnimationFramePathPrefixFemale;
+
+ public int flyingAnimationFrameCount;
+
+ public int flyingAnimationTicksPerFrame = -1;
+
+ public float flyingAnimationDrawSize = 1f;
+
+ public bool flyingAnimationDrawSizeIsMultiplier;
+
+ public bool flyingAnimationInheritColors;
+
+ // --- Vanilla PawnKindLifeStage Flight Parameters ---
+ // Note: These are normally defined per lifestage, we define them once here for simplicity.
+ // The harmony patch will need to inject these into the correct lifestage at runtime.
+ public AnimationDef flyingAnimationEast;
+ public AnimationDef flyingAnimationNorth;
+ public AnimationDef flyingAnimationSouth;
+ public AnimationDef flyingAnimationEastFemale;
+ public AnimationDef flyingAnimationNorthFemale;
+ public AnimationDef flyingAnimationSouthFemale;
+
+
+ public CompProperties_PawnFlight()
+ {
+ compClass = typeof(CompPawnFlight);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Source/ArachnaeSwarm/HarmonyPatches.cs b/Source/ArachnaeSwarm/HarmonyPatches.cs
new file mode 100644
index 0000000..39f14ba
--- /dev/null
+++ b/Source/ArachnaeSwarm/HarmonyPatches.cs
@@ -0,0 +1,81 @@
+using HarmonyLib;
+using Verse;
+using RimWorld;
+using Verse.AI;
+
+namespace ArachnaeSwarm
+{
+ [HarmonyPatch]
+ public static class FlightHarmonyPatches
+ {
+ // Corrected Patch 1: The method signature now correctly matches the static target method.
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(Pawn_FlightTracker), "GetBestFlyAnimation")]
+ public static bool GetBestFlyAnimation_Prefix(Pawn pawn, ref AnimationDef __result) // Correct parameters: Pawn pawn, not __instance and ___pawn
+ {
+ var flightComp = pawn?.TryGetComp();
+ if (flightComp == null) // No props check needed, as the crash was due to wrong signature
+ {
+ return true;
+ }
+
+ var compProps = flightComp.Props;
+ AnimationDef selectedAnim = null;
+
+ if (pawn.gender == Gender.Female && compProps.flyingAnimationNorthFemale != null)
+ {
+ switch (pawn.Rotation.AsInt)
+ {
+ case 0: selectedAnim = compProps.flyingAnimationNorthFemale; break;
+ case 1: selectedAnim = compProps.flyingAnimationEastFemale; break;
+ case 2: selectedAnim = compProps.flyingAnimationSouthFemale; break;
+ case 3: selectedAnim = compProps.flyingAnimationEastFemale ?? compProps.flyingAnimationEast; break;
+ }
+ }
+ else
+ {
+ switch (pawn.Rotation.AsInt)
+ {
+ case 0: selectedAnim = compProps.flyingAnimationNorth; break;
+ case 1: selectedAnim = compProps.flyingAnimationEast; break;
+ case 2: selectedAnim = compProps.flyingAnimationSouth; break;
+ case 3: selectedAnim = compProps.flyingAnimationEast; break;
+ }
+ }
+
+ if (selectedAnim != null)
+ {
+ __result = selectedAnim;
+ return false;
+ }
+ return true;
+ }
+
+ // Patch 2 remains correct as Notify_JobStarted is a non-static method.
+ [HarmonyPrefix]
+ [HarmonyPatch(typeof(Pawn_FlightTracker), "Notify_JobStarted")]
+ public static bool Notify_JobStarted_Prefix(Job job, Pawn_FlightTracker __instance, Pawn ___pawn)
+ {
+ var flightComp = ___pawn?.TryGetComp();
+ if (flightComp == null || __instance == null || !__instance.CanEverFly || ___pawn == null || ___pawn.Dead)
+ {
+ return true;
+ }
+
+ var compProps = flightComp.Props;
+ bool shouldBeFlying = (compProps.flightCondition == FlightCondition.Drafted && ___pawn.Drafted);
+
+ if (shouldBeFlying)
+ {
+ if (!__instance.Flying) __instance.StartFlying();
+ job.flying = true;
+ }
+ else
+ {
+ if (__instance.Flying) __instance.ForceLand();
+ job.flying = false;
+ }
+ return false;
+ }
+ }
+}
\ No newline at end of file