diff --git a/1.6/1.6/Assemblies/FacialAnimation.dll b/1.6/1.6/Assemblies/FacialAnimation.dll
new file mode 100644
index 0000000..9d7d61e
Binary files /dev/null and b/1.6/1.6/Assemblies/FacialAnimation.dll differ
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Facehugger_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Facehugger_JobAnim.xml
new file mode 100644
index 0000000..7aabe8b
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Facehugger_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Facehugger_AttackMelee_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_AttackMelee_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_DoBill_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_DoBill_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Goto_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Ingest_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_laydown_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_laydown_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_laydown_Main_3
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Lovin_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Lovin_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Mine_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_RemoveApparel_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_RemoveApparel_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_RemoveApparel_Main_3
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Research_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Research_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_SocialRelax_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Strip_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Strip_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Wait_Downed_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Wait_Downed_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_WaitCombat_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_WaitCombat_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Wear_Main_1
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Wear_Main_2
+ ArachnaeNode_Race_Facehugger
+
+
+ ArachnaeNode_Race_Facehugger_Wear_Main_3
+ ArachnaeNode_Race_Facehugger
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Fighter_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Fighter_JobAnim.xml
new file mode 100644
index 0000000..9bf8cbb
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Fighter_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Fighter_AttackMelee_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_AttackMelee_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_DoBill_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_DoBill_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Goto_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Ingest_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_laydown_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_laydown_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_laydown_Main_3
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Lovin_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Lovin_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Mine_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_RemoveApparel_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_RemoveApparel_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_RemoveApparel_Main_3
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Research_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Research_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_SocialRelax_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Strip_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Strip_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Wait_Downed_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Wait_Downed_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_WaitCombat_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_WaitCombat_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Wear_Main_1
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Wear_Main_2
+ ArachnaeNode_Race_Fighter
+
+
+ ArachnaeNode_Race_Fighter_Wear_Main_3
+ ArachnaeNode_Race_Fighter
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Myrmecocystus_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Myrmecocystus_JobAnim.xml
new file mode 100644
index 0000000..4f5fc4f
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Myrmecocystus_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Myrmecocystus_AttackMelee_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_AttackMelee_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_DoBill_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_DoBill_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Goto_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Ingest_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_laydown_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_laydown_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_laydown_Main_3
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Lovin_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Lovin_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Mine_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_RemoveApparel_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_RemoveApparel_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_RemoveApparel_Main_3
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Research_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Research_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_SocialRelax_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Strip_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Strip_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Wait_Downed_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Wait_Downed_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_WaitCombat_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_WaitCombat_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Wear_Main_1
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Wear_Main_2
+ ArachnaeNode_Race_Myrmecocystus
+
+
+ ArachnaeNode_Race_Myrmecocystus_Wear_Main_3
+ ArachnaeNode_Race_Myrmecocystus
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_NeuroSwarm_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_NeuroSwarm_JobAnim.xml
new file mode 100644
index 0000000..d50e312
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_NeuroSwarm_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_NeuroSwarm_AttackMelee_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_AttackMelee_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_DoBill_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_DoBill_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Goto_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Ingest_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_laydown_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_laydown_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_laydown_Main_3
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Lovin_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Lovin_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Mine_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_RemoveApparel_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_RemoveApparel_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_RemoveApparel_Main_3
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Research_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Research_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_SocialRelax_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Strip_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Strip_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Wait_Downed_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Wait_Downed_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_WaitCombat_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_WaitCombat_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Wear_Main_1
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Wear_Main_2
+ ArachnaeNode_Race_NeuroSwarm
+
+
+ ArachnaeNode_Race_NeuroSwarm_Wear_Main_3
+ ArachnaeNode_Race_NeuroSwarm
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Praetorian_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Praetorian_JobAnim.xml
new file mode 100644
index 0000000..e5f0ee8
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Praetorian_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Praetorian_AttackMelee_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_AttackMelee_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_DoBill_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_DoBill_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Goto_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Ingest_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_laydown_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_laydown_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_laydown_Main_3
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Lovin_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Lovin_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Mine_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_RemoveApparel_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_RemoveApparel_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_RemoveApparel_Main_3
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Research_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Research_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_SocialRelax_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Strip_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Strip_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Wait_Downed_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Wait_Downed_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_WaitCombat_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_WaitCombat_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Wear_Main_1
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Wear_Main_2
+ ArachnaeNode_Race_Praetorian
+
+
+ ArachnaeNode_Race_Praetorian_Wear_Main_3
+ ArachnaeNode_Race_Praetorian
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_ShieldHead_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_ShieldHead_JobAnim.xml
new file mode 100644
index 0000000..f349ba8
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_ShieldHead_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_ShieldHead_AttackMelee_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_AttackMelee_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_DoBill_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_DoBill_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Goto_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Ingest_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_laydown_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_laydown_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_laydown_Main_3
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Lovin_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Lovin_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Mine_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_RemoveApparel_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_RemoveApparel_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_RemoveApparel_Main_3
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Research_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Research_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_SocialRelax_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Strip_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Strip_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Wait_Downed_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Wait_Downed_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_WaitCombat_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_WaitCombat_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Wear_Main_1
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Wear_Main_2
+ ArachnaeNode_Race_ShieldHead
+
+
+ ArachnaeNode_Race_ShieldHead_Wear_Main_3
+ ArachnaeNode_Race_ShieldHead
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Skyraider_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Skyraider_JobAnim.xml
new file mode 100644
index 0000000..274c215
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Skyraider_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Skyraider_AttackMelee_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_AttackMelee_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_DoBill_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_DoBill_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Goto_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Ingest_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_laydown_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_laydown_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_laydown_Main_3
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Lovin_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Lovin_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Mine_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_RemoveApparel_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_RemoveApparel_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_RemoveApparel_Main_3
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Research_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Research_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_SocialRelax_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Strip_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Strip_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Wait_Downed_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Wait_Downed_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_WaitCombat_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_WaitCombat_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Wear_Main_1
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Wear_Main_2
+ ArachnaeNode_Race_Skyraider
+
+
+ ArachnaeNode_Race_Skyraider_Wear_Main_3
+ ArachnaeNode_Race_Skyraider
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Smokepop_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Smokepop_JobAnim.xml
new file mode 100644
index 0000000..dd5f15d
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_Smokepop_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_Smokepop_AttackMelee_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_AttackMelee_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_DoBill_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_DoBill_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Goto_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Ingest_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_laydown_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_laydown_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_laydown_Main_3
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Lovin_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Lovin_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Mine_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_RemoveApparel_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_RemoveApparel_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_RemoveApparel_Main_3
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Research_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Research_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_SocialRelax_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Strip_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Strip_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Wait_Downed_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Wait_Downed_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_WaitCombat_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_WaitCombat_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Wear_Main_1
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Wear_Main_2
+ ArachnaeNode_Race_Smokepop
+
+
+ ArachnaeNode_Race_Smokepop_Wear_Main_3
+ ArachnaeNode_Race_Smokepop
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_WeaponSmith_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_WeaponSmith_JobAnim.xml
new file mode 100644
index 0000000..42e3b59
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_ArachnaeNode_Race_WeaponSmith_JobAnim.xml
@@ -0,0 +1,115 @@
+
+
+
+ ArachnaeNode_Race_WeaponSmith_AttackMelee_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_AttackMelee_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_DoBill_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_DoBill_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Goto_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Ingest_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_laydown_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_laydown_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_laydown_Main_3
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Lovin_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Lovin_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Mine_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_RemoveApparel_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_RemoveApparel_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_RemoveApparel_Main_3
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Research_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Research_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_SocialRelax_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_StandAndBeSociallyActive_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Strip_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Strip_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Wait_Downed_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Wait_Downed_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_WaitCombat_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_WaitCombat_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Wear_Main_1
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Wear_Main_2
+ ArachnaeNode_Race_WeaponSmith
+
+
+ ArachnaeNode_Race_WeaponSmith_Wear_Main_3
+ ArachnaeNode_Race_WeaponSmith
+
+
diff --git a/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml
new file mode 100644
index 0000000..48ad65f
--- /dev/null
+++ b/1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml
@@ -0,0 +1,757 @@
+
+
+
+
+
+
+
+ 6
+ angled
+ open
+ (0,0,-0.00875)
+ (0.0,0,-0.005)
+
+
+ 1
+ angled
+ arrow_close
+ open_Ex
+
+
+
+ AttackMelee
+ AttackStatic
+
+ 10200
+
+
+
+
+ 1
+ angled
+ normal
+
+
+
+ AttackMelee
+ AttackStatic
+
+ 10201
+ true
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+
+
+ 1
+ angled
+ normal
+ (0.0,0,-0.0025)
+
+
+
+ Goto
+
+ 10300
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 1
+ flat
+ close
+ normal
+
+
+ 0
+ 0
+
+ LayDown
+
+ 10001
+ true
+
+
+
+
+ 240
+ open
+
+
+ 100
+ 500
+
+ LayDown
+
+ 10002
+ true
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+ 1
+ s-shaped
+ normal
+ (0.0,0,0.005)
+ blush
+
+
+
+ RemoveApparel
+
+ 104
+ true
+
+
+
+
+ 120
+ flat
+ close
+ (0.0,0,0.005)
+ blush
+
+
+
+ RemoveApparel
+
+ 110
+ true
+ 30
+ 300
+
+
+
+
+
+
+ 10
+ (0,0,-0.005)
+ (0,0,-0.01)
+ flat
+ normal
+ (0,0,-0.00375)
+
+
+
+ Research
+
+ 10001
+ true
+
+
+
+
+ 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
+
+
+
+
+
+
+ 1
+ normal
+ close
+
+
+
+ SocialRelax
+
+ 10200
+
+
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+ 1
+ s-shaped
+ normal
+ open
+ blush
+
+
+
+ Strip
+
+ 106
+ true
+
+
+
+
+
+
+ 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
+
+
+
+
+ 3
+ (0,0,0.005)
+ flat
+
+
+
+ Wait_Downed
+
+ 10001
+ true
+
+
+
+
+
+
+ 1
+ angled
+ normal
+
+
+
+ Wait_Combat
+
+ 10200
+
+
+
+
+ 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
+
+
+
+
+
+
+ 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
+
+
+
+
+ 1
+ s-shaped
+ normal
+ (0.0,0,0.005)
+ blush
+
+
+
+ Wear
+
+ 104
+ true
+
+
+
+
+ 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/FaceShapeDefs/LidShape.xml b/1.6/1.6/Defs/FaceShapeDefs/LidShape.xml
index c9b2aed..e9930f6 100644
--- a/1.6/1.6/Defs/FaceShapeDefs/LidShape.xml
+++ b/1.6/1.6/Defs/FaceShapeDefs/LidShape.xml
@@ -9,6 +9,19 @@
close
true
+
+
+ arrow_close
+ true
+
+
+ speechless
+ true
+
+
+ stun
+ true
+
\ No newline at end of file
diff --git a/1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml b/1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml
index 49d4469..3cadc17 100644
--- a/1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml
+++ b/1.6/1.6/Defs/FaceShapeDefs/MouthShape.xml
@@ -8,4 +8,12 @@
open
+
+
+ open_Ex
+
+
+
+ dissatisfaction
+
\ No newline at end of file
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_east.png
new file mode 100644
index 0000000..5a025be
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_south.png
new file mode 100644
index 0000000..c171935
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/arrow_close_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_east.png
new file mode 100644
index 0000000..d89c1ce
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_south.png
new file mode 100644
index 0000000..1bf94c3
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/speechless_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_east.png
new file mode 100644
index 0000000..450005a
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_south.png
new file mode 100644
index 0000000..67f9462
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Lids/Normal/Unisex/stun_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_east.png
new file mode 100644
index 0000000..63bf7f9
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_south.png
new file mode 100644
index 0000000..d8cbde7
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/dissatisfaction_south.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_east.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_east.png
new file mode 100644
index 0000000..3ba6769
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_east.png differ
diff --git a/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_south.png b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_south.png
new file mode 100644
index 0000000..ff928cc
Binary files /dev/null and b/Content/Textures/ArachnaeSwarm/Things/ARA_HiveNode/Mouth/Normal/Unisex/open_Ex_south.png differ
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo
index e1e38a5..f342937 100644
Binary files a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo and b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/.suo differ
diff --git a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
index e30551f..5bcb2fe 100644
--- a/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
+++ b/Source/ArachnaeSwarm/.vs/ArachnaeSwarm/v17/DocumentLayout.json
@@ -7,15 +7,15 @@
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compabilityeffect_injectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_genestealer\\compabilityeffect_extractgene.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_genestealer\\compabilityeffect_extractgene.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compabilityeffect_extractgene.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_genestealer\\compproperties_abilityinjectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\abilities\\ara_genestealer\\compproperties_abilityinjectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_genestealer\\compproperties_abilityinjectgenes.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
- "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+ "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:verbs\\cleave\\verb_meleeattack_cleave.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
@@ -126,8 +126,7 @@
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompProperties_AbilityInjectGenes.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-10-21T16:09:51.937Z",
- "EditorCaption": ""
+ "WhenOpened": "2025-10-21T16:09:51.937Z"
},
{
"$type": "Document",
@@ -139,8 +138,7 @@
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompAbilityEffect_ExtractGene.cs",
"ViewState": "AgIAADUAAAAAAAAAAAAewFwAAABVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-10-21T16:09:29.065Z",
- "EditorCaption": ""
+ "WhenOpened": "2025-10-21T16:09:29.065Z"
},
{
"$type": "Document",
@@ -150,7 +148,7 @@
"RelativeDocumentMoniker": "Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
"RelativeToolTip": "Abilities\\ARA_Genestealer\\CompAbilityEffect_InjectGenes.cs",
- "ViewState": "AgIAAC0AAAAAAAAAAAAtwD4AAAAQAAAAAAAAAA==",
+ "ViewState": "AgIAAC0AAAAAAAAAAAAtwF0AAAAMAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-10-21T16:08:53.903Z",
"EditorCaption": ""
@@ -165,8 +163,7 @@
"RelativeToolTip": "Verbs\\Cleave\\Verb_MeleeAttack_Cleave.cs",
"ViewState": "AgIAAG8AAAAAAAAAAAAhwI8AAABCAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2025-10-21T12:52:47.558Z",
- "EditorCaption": ""
+ "WhenOpened": "2025-10-21T12:52:47.558Z"
},
{
"$type": "Document",
diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
index d0c1ed4..f055fed 100644
--- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
+++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj
@@ -42,6 +42,9 @@
..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\Assembly-CSharp.dll
False
+
+ ..\..\..\..\..\..\workshop\content\294100\1635901197\1.6\Assemblies\FacialAnimation.dll
+
@@ -317,6 +320,9 @@
+
+
+
diff --git a/Source/ArachnaeSwarm/FacialAnimation/FaceAnimationStaticGenerator.cs b/Source/ArachnaeSwarm/FacialAnimation/FaceAnimationStaticGenerator.cs
new file mode 100644
index 0000000..5ee5695
--- /dev/null
+++ b/Source/ArachnaeSwarm/FacialAnimation/FaceAnimationStaticGenerator.cs
@@ -0,0 +1,237 @@
+using RimWorld;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Xml;
+using Verse;
+
+namespace ArachnaeSwarm
+{
+ [StaticConstructorOnStartup]
+ public static class FaceAnimationFileGenerator
+ {
+ private static readonly string OutputDirectory = "1.6/1.6/GeneratedDefs/FacialAnimation/";
+
+ static FaceAnimationFileGenerator()
+ {
+ GenerateAllFaceAnimationFiles();
+ }
+
+ private static void GenerateAllFaceAnimationFiles()
+ {
+ try
+ {
+ // 获取模组根目录
+ string modRootDir = GetModRootDirectory();
+ if (string.IsNullOrEmpty(modRootDir))
+ {
+ Log.Error("Cannot find mod root directory");
+ return;
+ }
+
+ // 确保输出目录存在
+ string fullOutputDir = Path.Combine(modRootDir, OutputDirectory);
+ Directory.CreateDirectory(fullOutputDir);
+
+ // 配置:种族和对应的抽象动画路径
+ var raceConfigs = new Dictionary>
+ {
+ {
+ "ArachnaeNode_Race_Myrmecocystus",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_ShieldHead",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_WeaponSmith",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_Fighter",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_Facehugger",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_Smokepop",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_NeuroSwarm",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_Praetorian",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ },
+ {
+ "ArachnaeNode_Race_Skyraider",
+ new List { "1.6/1.6/Defs/AnimationDefs/FacialAnimation/ARA_JobAnim.xml" }
+ }
+ };
+
+ int totalFilesGenerated = 0;
+
+ foreach (var config in raceConfigs)
+ {
+ string raceDefName = config.Key;
+ List paths = config.Value;
+
+ // 检查种族是否存在
+ if (DefDatabase.GetNamedSilentFail(raceDefName) == null)
+ {
+ Log.Warning($"Race {raceDefName} not found, skipping face animation generation");
+ continue;
+ }
+
+ foreach (string relativePath in paths)
+ {
+ string fullSourcePath = Path.Combine(modRootDir, relativePath);
+ totalFilesGenerated += GenerateAnimationFilesForRace(fullSourcePath, raceDefName, fullOutputDir);
+ }
+ }
+
+ Log.Message($"Generated {totalFilesGenerated} face animation files in {fullOutputDir}");
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"Error in FaceAnimationFileGenerator: {ex}");
+ }
+ }
+
+ ///
+ /// 获取模组根目录
+ ///
+ private static string GetModRootDirectory()
+ {
+ try
+ {
+ // 通过查找当前程序集所在的模组来获取根目录
+ var currentMod = LoadedModManager.RunningMods.FirstOrDefault(mod =>
+ mod.assemblies.loadedAssemblies.Contains(typeof(FaceAnimationFileGenerator).Assembly));
+
+ if (currentMod != null)
+ {
+ return currentMod.RootDir;
+ }
+
+ // 备选方法:通过反射获取
+ var assembly = typeof(FaceAnimationFileGenerator).Assembly;
+ string assemblyLocation = assembly.Location;
+ if (!string.IsNullOrEmpty(assemblyLocation))
+ {
+ // 向上查找直到找到模组根目录
+ DirectoryInfo dir = new FileInfo(assemblyLocation).Directory;
+ while (dir != null)
+ {
+ if (File.Exists(Path.Combine(dir.FullName, "About.xml")) ||
+ File.Exists(Path.Combine(dir.FullName, "LoadFolders.xml")))
+ {
+ return dir.FullName;
+ }
+ dir = dir.Parent;
+ }
+ }
+
+ Log.Error("Cannot determine mod root directory");
+ return null;
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"Error getting mod root directory: {ex}");
+ return null;
+ }
+ }
+
+ private static int GenerateAnimationFilesForRace(string sourcePath, string raceDefName, string outputDir)
+ {
+ int filesGenerated = 0;
+
+ try
+ {
+ // 检查源文件是否存在
+ if (!File.Exists(sourcePath))
+ {
+ Log.Warning($"Source animation file not found: {sourcePath}");
+ return 0;
+ }
+
+ XmlDocument xmlDoc = new XmlDocument();
+ xmlDoc.Load(sourcePath);
+
+ XmlNodeList abstractDefNodes = xmlDoc.SelectNodes("//FacialAnimation.FaceAnimationDef[@Abstract='True']");
+
+ if (abstractDefNodes == null || abstractDefNodes.Count == 0)
+ {
+ Log.Message($"No abstract FaceAnimationDef found in: {sourcePath}");
+ return 0;
+ }
+
+ // 为每个种族创建单独的文件
+ string outputFile = Path.Combine(outputDir, $"ARA_{raceDefName}_JobAnim.xml");
+
+ using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.UTF8))
+ {
+ writer.WriteLine("");
+ writer.WriteLine("");
+
+ foreach (XmlNode abstractNode in abstractDefNodes)
+ {
+ string concreteXml = GenerateConcreteAnimationXml(abstractNode, raceDefName);
+ if (!string.IsNullOrEmpty(concreteXml))
+ {
+ writer.WriteLine(concreteXml);
+ filesGenerated++;
+ }
+ }
+
+ writer.WriteLine("");
+ }
+
+ Log.Message($"Generated {filesGenerated} animations for {raceDefName} in {outputFile}");
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"Error generating animation files for race {raceDefName}: {ex}");
+ }
+
+ return filesGenerated;
+ }
+
+ private static string GenerateConcreteAnimationXml(XmlNode abstractNode, string raceDefName)
+ {
+ try
+ {
+ string abstractName = abstractNode.Attributes?["Name"]?.Value;
+ if (string.IsNullOrEmpty(abstractName))
+ {
+ Log.Warning("Abstract FaceAnimationDef has no Name attribute");
+ return null;
+ }
+
+ string concreteDefName = $"{raceDefName}_{abstractName.Replace("ARA_", "")}";
+
+ // 创建XML字符串
+ StringBuilder xmlBuilder = new StringBuilder();
+ xmlBuilder.AppendLine($" ");
+ xmlBuilder.AppendLine($" {concreteDefName}");
+ xmlBuilder.AppendLine($" {raceDefName}");
+
+ xmlBuilder.Append(" ");
+
+ return xmlBuilder.ToString();
+ }
+ catch (Exception ex)
+ {
+ Log.Error($"Error generating XML for {raceDefName}: {ex}");
+ return null;
+ }
+ }
+ }
+}
diff --git a/非公开资源/Content/Textures/Things/ARA_HiveNode/Heads/Average_Normal_south.sai2 b/非公开资源/Content/Textures/Things/ARA_HiveNode/Heads/Average_Normal_south.sai2
index 8a9c892..f56cdca 100644
Binary files a/非公开资源/Content/Textures/Things/ARA_HiveNode/Heads/Average_Normal_south.sai2 and b/非公开资源/Content/Textures/Things/ARA_HiveNode/Heads/Average_Normal_south.sai2 differ