diff --git a/ColonialMarinesALPHA.dme b/ColonialMarinesALPHA.dme
index 16a6d4c8..cedbae9b 100644
--- a/ColonialMarinesALPHA.dme
+++ b/ColonialMarinesALPHA.dme
@@ -1133,6 +1133,7 @@
#include "code\modules\mob\living\carbon\monkey\yiren.dm"
#include "code\modules\mob\living\carbon\xenomorph\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\attack_alien.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castedatum.dm"
#include "code\modules\mob\living\carbon\xenomorph\damage_procs.dm"
#include "code\modules\mob\living\carbon\xenomorph\death.dm"
#include "code\modules\mob\living\carbon\xenomorph\egg_item.dm"
@@ -1155,35 +1156,49 @@
#include "code\modules\mob\living\carbon\xenomorph\XenoUpgrades.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Boiler\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Boiler\Boiler.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Boiler\Boiler_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Carrier\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Carrier\Carrier.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Carrier\Carrier_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Crusher\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Crusher\Crusher.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Crusher\Crusher_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Defender\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Defender\Defender.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Defender\Defender_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Drone\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Drone\Drone.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Drone\Drone_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Hivelord\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Hivelord\Hivelord.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Hivelord\Hivelord_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Larva\Larva.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Lurker\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Lurker\Lurker.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Lurker\Lurker_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Praetorian\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Praetorian\Praetorian.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Praetorian\Pratetorian_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Predalien\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Predalien\Predalien.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Queen\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Queen\Queen.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Queen\Queen_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Ravager\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Ravager\Ravager.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Ravager\Ravager_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Runner\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Runner\Runner.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Runner\Runner_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Sentinel\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Sentinel\Sentinel.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Sentinel\Sentinel_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Spitter\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Spitter\Spitter.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Spitter\Spitter_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Warrior\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Warrior\Warrior.dm"
+#include "code\modules\mob\living\carbon\xenomorph\Castes\Warrior\Warrior_Caste.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Xenoborg\Abilities.dm"
#include "code\modules\mob\living\carbon\xenomorph\Castes\Xenoborg\Xenoborg.dm"
#include "code\modules\mob\living\silicon\alarm.dm"
@@ -1468,20 +1483,19 @@
#include "code\WorkInProgress\Cael_Aislinn\Jungle\misc_helpers.dm"
#include "code\WorkInProgress\Cael_Aislinn\Supermatter\LaserComputer.dm"
#include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm"
-#include "code\WorkInProgress\carrotman2013\marines\kit_guns.dm"
-#include "code\WorkInProgress\carrotman2013\marines\kits.dm"
-#include "code\WorkInProgress\carrotman2013\yautja\spinal_cords.dm"
-#include "code\WorkInProgress\carrotman2013\marines\PO_supply.dm"
-#include "code\WorkInProgress\carrotman2013\yautja\scope.dm"
-#include "code\WorkInProgress\carrotman2013\yautja\rnd.dm"
#include "code\WorkInProgress\carrotman2013\aliens\misc.dm"
+#include "code\WorkInProgress\carrotman2013\aliens\facehuggers\facehuggers.dm"
#include "code\WorkInProgress\carrotman2013\marines\attachables.dm"
#include "code\WorkInProgress\carrotman2013\marines\heartbeat.dm"
-#include "code\WorkInProgress\carrotman2013\other\profpref.dm"
-#include "code\WorkInProgress\carrotman2013\other\ambience.dm"
-#include "code\WorkInProgress\carrotman2013\aliens\facehuggers\facehuggers.dm"
-#include "code\WorkInProgress\carrotman2013\marines\motiondetector\pools.dm"
+#include "code\WorkInProgress\carrotman2013\marines\kit_guns.dm"
+#include "code\WorkInProgress\carrotman2013\marines\kits.dm"
+#include "code\WorkInProgress\carrotman2013\marines\PO_supply.dm"
#include "code\WorkInProgress\carrotman2013\marines\motiondetector\motiondetector.dm"
+#include "code\WorkInProgress\carrotman2013\marines\motiondetector\pools.dm"
+#include "code\WorkInProgress\carrotman2013\other\profpref.dm"
+#include "code\WorkInProgress\carrotman2013\yautja\rnd.dm"
+#include "code\WorkInProgress\carrotman2013\yautja\scope.dm"
+#include "code\WorkInProgress\carrotman2013\yautja\spinal_cords.dm"
#include "code\WorkInProgress\Cib\MedicalSideEffects.dm"
#include "code\WorkInProgress\computer3\bios.dm"
#include "code\WorkInProgress\computer3\buildandrepair.dm"
diff --git a/code/modules/mob/living/carbon/xenomorph/Castedatum.dm b/code/modules/mob/living/carbon/xenomorph/Castedatum.dm
new file mode 100644
index 00000000..211f4f31
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castedatum.dm
@@ -0,0 +1,51 @@
+/datum/xeno_caste
+ var/name = "Xenomorph"
+ var/desc = "The workhorse of the hive."
+ var/eldery = "Young"
+ var/caste_type = /mob/living/carbon/Xenomorph/Drone
+ var/next_upgrade = null
+
+ var/melee_damage_lower = 12
+ var/melee_damage_upper = 16
+ var/health = 120
+ var/maxHealth = 120
+ var/plasma_max = 800
+ var/plasma_gain = 20
+ var/upgrade_threshold = 400
+ var/caste_desc = "" //flavor desc
+ var/armor_deflection = 5
+ var/tacklemin = 3
+ var/tacklemax = 5
+ var/tackle_chance = 60
+ var/speed = -0.9
+ var/aura_strength = 0
+ var/spit_delay = 0
+ var/bomb_strength = 0
+ var/pounce_delay = 40
+ var/attack_delay = 0
+ var/queen_leader_limit = 0
+
+ var/evolution_allowed = TRUE
+
+/datum/xeno_caste/proc/apply_caste(mob/living/carbon/Xenomorph/X)
+ X.caste = src
+ X.caste_desc = caste_desc
+ X.caste_path = next_upgrade
+
+ X.melee_damage_lower = melee_damage_lower
+ X.melee_damage_upper = melee_damage_upper
+ X.health = health
+ X.maxHealth = maxHealth
+ X.plasma_max = plasma_max
+ X.plasma_gain = plasma_gain
+ X.upgrade_threshold = upgrade_threshold
+ X.armor_deflection = armor_deflection
+ X.tacklemin = tacklemin
+ X.tacklemax = tacklemax
+ X.tackle_chance = tackle_chance
+ X.speed = speed
+ X.aura_strength = aura_strength
+ X.bomb_strength = bomb_strength
+ X.pounce_delay = pounce_delay
+ X.attack_delay = attack_delay
+ X.queen_leader_limit = queen_leader_limit
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler.dm
index ae16d1af..055f872b 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler.dm
@@ -6,6 +6,7 @@
desc = "A huge, grotesque xenomorph covered in glowing, oozing acid slime."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Boiler Walking"
+ caste_path = /datum/xeno_caste/Boiler
melee_damage_lower = 12
melee_damage_upper = 15
tacklemin = 2
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler_Caste.dm
new file mode 100644
index 00000000..79f34dde
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Boiler/Boiler_Caste.dm
@@ -0,0 +1,83 @@
+/datum/xeno_caste/Boiler
+ name = "Boiler"
+ eldery = "Young"
+ desc = "A huge, grotesque xenomorph covered in glowing, oozing acid slime."
+ caste_type = /mob/living/carbon/Xenomorph/Boiler
+ next_upgrade = /datum/xeno_caste/Boiler/mature
+
+ melee_damage_lower = 12
+ melee_damage_upper = 15
+ tacklemin = 2
+ tacklemax = 4
+ tackle_chance = 60
+ health = 180
+ maxHealth = 180
+ plasma_gain = 30
+ plasma_max = 800
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ spit_delay = 40
+ speed = 0.7
+ armor_deflection = 20
+ bomb_strength = 1.0
+
+ evolution_allowed = FALSE
+
+/datum/xeno_caste/Boiler/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Boiler/elder
+
+ melee_damage_lower = 20
+ melee_damage_upper = 25
+ health = 200
+ maxHealth = 200
+ plasma_gain = 35
+ plasma_max = 900
+ upgrade_threshold = 600
+ spit_delay = 30
+ bomb_strength = 1.5
+ caste_desc = "It looks a little more dangerous."
+ armor_deflection = 30
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 65
+ speed = 0.6
+
+/datum/xeno_caste/Boiler/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Boiler/ancient
+
+ melee_damage_lower = 30
+ melee_damage_upper = 35
+ health = 220
+ maxHealth = 220
+ plasma_gain = 40
+ plasma_max = 1000
+ upgrade_threshold = 1200
+ spit_delay = 20
+ bomb_strength = 2
+ caste_desc = "It looks pretty strong."
+ armor_deflection = 35
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 70
+ speed = 0.5
+
+/datum/xeno_caste/Boiler/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 35
+ melee_damage_upper = 45
+ health = 250
+ maxHealth = 250
+ plasma_gain = 50
+ plasma_max = 1000
+ spit_delay = 10
+ bomb_strength = 2.5
+ caste_desc = "A devestating piece of alien artillery."
+ armor_deflection = 35
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 80
+ speed = 0.4
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier.dm
index 3aff4205..fc08f2f2 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier.dm
@@ -6,6 +6,7 @@
desc = "A strange-looking alien creature. It carries a number of scuttling jointed crablike creatures."
icon = 'icons/Xeno/xenomorph_64x64.dmi' //They are now like, 2x2
icon_state = "Carrier Walking"
+ caste_path = /datum/xeno_caste/Carrier
melee_damage_lower = 20
melee_damage_upper = 30
tacklemin = 2
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier_Caste.dm
new file mode 100644
index 00000000..e4e9d989
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Carrier/Carrier_Caste.dm
@@ -0,0 +1,98 @@
+/datum/xeno_caste/Carrier
+ name = "Carrier"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Carrier
+ next_upgrade = /datum/xeno_caste/Carrier/mature
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ tacklemin = 2
+ tacklemax = 3
+ tackle_chance = 60
+ health = 175
+ maxHealth = 175
+ plasma_max = 250
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ plasma_gain = 8
+ caste_desc = "A carrier of huggies."
+ aura_strength = 1 //Carrier's pheromones are equivalent to Hivelord. Climbs 0.5 up to 2.5
+ speed = 0
+
+ var/huggers_max = 0
+ var/throwspeed = 1
+ var/hugger_delay = 30
+ var/eggs_max = 3
+
+/datum/xeno_caste/Carrier/apply_caste(mob/living/carbon/Xenomorph/X)
+ . = ..()
+ var/mob/living/carbon/Xenomorph/Carrier/C = X
+ C.huggers_max = huggers_max
+ C.throwspeed = throwspeed
+ C.hugger_delay = hugger_delay
+ C.eggs_max = eggs_max
+
+/datum/xeno_caste/Carrier/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Carrier/elder
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 200
+ maxHealth = 200
+ plasma_max = 300
+ plasma_gain = 10
+ upgrade_threshold = 600
+ caste_desc = "A portable Love transport. It looks a little more dangerous."
+ armor_deflection = 10
+ tacklemin = 3
+ tacklemax = 4
+ tackle_chance = 60
+ speed = -0.1
+ aura_strength = 1.5
+ huggers_max = 9
+ hugger_delay = 30
+ eggs_max = 4
+
+/datum/xeno_caste/Carrier/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Carrier/ancient
+
+ melee_damage_lower = 30
+ melee_damage_upper = 40
+ health = 220
+ maxHealth = 220
+ plasma_max = 350
+ plasma_gain = 12
+ upgrade_threshold = 1200
+ caste_desc = "It looks pretty strong."
+ armor_deflection = 10
+ tacklemin = 4
+ tacklemax = 5
+ tackle_chance = 70
+ speed = -0.2
+ aura_strength = 2
+ huggers_max = 10
+ hugger_delay = 20
+ eggs_max = 5
+
+/datum/xeno_caste/Carrier/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 35
+ melee_damage_upper = 45
+ health = 250
+ maxHealth = 250
+ plasma_max = 400
+ plasma_gain = 15
+ caste_desc = "It's literally crawling with 10 huggers."
+ armor_deflection = 15
+ tacklemin = 5
+ tacklemax = 6
+ tackle_chance = 75
+ speed = -0.3
+ aura_strength = 2.5
+ huggers_max = 11
+ hugger_delay = 10
+ eggs_max = 6
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher.dm
index 92416cb2..e0d69dd1 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher.dm
@@ -4,6 +4,7 @@
desc = "A huge alien with an enormous armored head crest."
icon = 'icons/Xeno/2x2_Xenos.dmi'
icon_state = "Crusher Walking"
+ caste_path = /datum/xeno_caste/Crusher
melee_damage_lower = 15
melee_damage_upper = 30
tacklemin = 3
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher_Caste.dm
new file mode 100644
index 00000000..39ef5ef2
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Crusher/Crusher_Caste.dm
@@ -0,0 +1,71 @@
+/datum/xeno_caste/Crusher
+ name = "Crusher"
+ eldery = "Young"
+ desc = "A huge alien with an enormous armored head crest."
+ caste_type = /mob/living/carbon/Xenomorph/Crusher
+ next_upgrade = /datum/xeno_caste/Crusher/mature
+
+ melee_damage_lower = 15
+ melee_damage_upper = 30
+ tacklemin = 3
+ tacklemax = 4
+ tackle_chance = 60
+ health = 300
+ maxHealth = 300
+ plasma_gain = 10
+ plasma_max = 200
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ caste_desc = "A huge tanky xenomorph."
+ speed = 0.1
+ armor_deflection = 75
+
+/datum/xeno_caste/Crusher/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Crusher/elder
+
+ melee_damage_lower = 20
+ melee_damage_upper = 35
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 65
+ health = 325
+ maxHealth = 325
+ plasma_gain = 15
+ plasma_max = 300
+ upgrade_threshold = 600
+ caste_desc = "A huge tanky xenomorph. It looks a little more dangerous."
+ armor_deflection = 80
+
+/datum/xeno_caste/Crusher/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Crusher/ancient
+
+ melee_damage_lower = 35
+ melee_damage_upper = 45
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 75
+ health = 375
+ maxHealth = 375
+ plasma_gain = 30
+ plasma_max = 400
+ upgrade_threshold = 1600
+ caste_desc = "A huge tanky xenomorph. It looks pretty strong."
+ armor_deflection = 85
+
+/datum/xeno_caste/Crusher/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 35
+ melee_damage_upper = 45
+ tacklemin = 4
+ tacklemax = 7
+ tackle_chance = 75
+ health = 450
+ maxHealth = 450
+ plasma_gain = 30
+ plasma_max = 400
+ caste_desc = "It always has the right of way."
+ armor_deflection = 90
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender.dm
index 959b8ad9..7169b7dc 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender.dm
@@ -4,6 +4,7 @@
desc = "A alien with an armored head crest."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Defender Walking"
+ caste_path = /datum/xeno_caste/Defender
melee_damage_lower = 15
melee_damage_upper = 25
health = 250
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender_Caste.dm
new file mode 100644
index 00000000..10639ba1
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Defender/Defender_Caste.dm
@@ -0,0 +1,59 @@
+/datum/xeno_caste/Defender
+ name = "Defender"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Defender
+ next_upgrade = /datum/xeno_caste/Defender/mature
+
+ melee_damage_lower = 15
+ melee_damage_upper = 25
+ health = 250
+ maxHealth = 250
+ plasma_gain = 8
+ plasma_max = 100
+ armor_deflection = 40
+ upgrade_threshold = 100
+ caste_desc = "A sturdy front line combatant."
+ speed = -0.2
+
+/datum/xeno_caste/Defender/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Defender/elder
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 275
+ maxHealth = 275
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 150
+ caste_desc = "An alien with an armored head crest. It looks a little more dangerous."
+ speed = -0.3
+ armor_deflection = 45
+
+/datum/xeno_caste/Defender/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Defender/ancient
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 300
+ maxHealth = 300
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 300
+ caste_desc = "An alien with an armored head crest. It looks pretty strong."
+ speed = -0.4
+ armor_deflection = 50
+
+/datum/xeno_caste/Defender/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ health = 325
+ maxHealth = 325
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 600
+ caste_desc = "An unstoppable force that remains when others would fall."
+ speed = -0.4
+ armor_deflection = 55
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone.dm
index 2b4eedb7..bfab6623 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone.dm
@@ -6,6 +6,7 @@
desc = "An Alien Drone"
icon = 'icons/Xeno/xenomorph_48x48.dmi'
icon_state = "Drone Walking"
+ caste_path = /datum/xeno_caste/Drone
melee_damage_lower = 12
melee_damage_upper = 16
health = 120
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone_Caste.dm
new file mode 100644
index 00000000..cf3103bd
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Drone/Drone_Caste.dm
@@ -0,0 +1,79 @@
+/datum/xeno_caste/Drone
+ name = "Drone"
+ desc = "The workhorse of the hive."
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Drone
+ next_upgrade = /datum/xeno_caste/Drone/mature
+
+ melee_damage_lower = 12
+ melee_damage_upper = 16
+ health = 120
+ maxHealth = 120
+ plasma_max = 800
+ plasma_gain = 20
+ upgrade_threshold = 400
+ caste_desc = "" //flavor desc
+ armor_deflection = 5
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = -0.9
+ aura_strength = 0.5
+ spit_delay = 0
+ bomb_strength = 0
+
+/datum/xeno_caste/Drone/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Drone/elder
+
+ melee_damage_lower = 12
+ melee_damage_upper = 16
+ health = 120
+ maxHealth = 120
+ plasma_max = 800
+ plasma_gain = 20
+ upgrade_threshold = 400
+ caste_desc = "The workhorse of the hive. It looks a little more dangerous."
+ armor_deflection = 5
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = -0.9
+ aura_strength = 1
+
+/datum/xeno_caste/Drone/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Drone/ancient
+
+ melee_damage_lower = 12
+ melee_damage_upper = 16
+ health = 150
+ maxHealth = 150
+ plasma_max = 900
+ plasma_gain = 30
+ upgrade_threshold = 650
+ caste_desc = "The workhorse of the hive. It looks a little more dangerous."
+ armor_deflection = 10
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = -1.0
+ aura_strength = 1.5
+
+/datum/xeno_caste/Drone/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 200
+ maxHealth = 200
+ plasma_max = 1000
+ plasma_gain = 50
+ caste_desc = "A very mean architect."
+ armor_deflection = 15
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 80
+ speed = -1.1
+ aura_strength = 2
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord.dm
index 62c37682..bca2311e 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord.dm
@@ -6,6 +6,7 @@
desc = "A huge ass xeno covered in weeds! Oh shit!"
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Hivelord Walking"
+ caste_path = /datum/xeno_caste/Hivelord
melee_damage_lower = 15
melee_damage_upper = 20
health = 220
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord_Caste.dm
new file mode 100644
index 00000000..d64e9061
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Hivelord/Hivelord_Caste.dm
@@ -0,0 +1,74 @@
+/datum/xeno_caste/Hivelord
+ name = "Hivelord"
+ desc = "A huge ass xeno covered in weeds! Oh shit!"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Hivelord
+ next_upgrade = /datum/xeno_caste/Hivelord/mature
+
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ health = 220
+ maxHealth = 220
+ plasma_max = 800
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ plasma_gain = 35
+ caste_desc = "A builder of REALLY BIG hives."
+ speed = 0.4
+ aura_strength = 1
+
+/datum/xeno_caste/Hivelord/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Hivelord/elder
+
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ health = 220
+ maxHealth = 220
+ plasma_max = 900
+ plasma_gain = 40
+ upgrade_threshold = 600
+ caste_desc = "A builder of REALLY BIG hives. It looks a little more dangerous."
+ armor_deflection = 10
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = 0.3
+ aura_strength = 1.5
+
+/datum/xeno_caste/Hivelord/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Hivelord/ancient
+
+ melee_damage_lower = 15
+ melee_damage_upper = 20
+ health = 250
+ maxHealth = 250
+ plasma_max = 1000
+ plasma_gain = 50
+ upgrade_threshold = 1200
+ caste_desc = "A builder of REALLY BIG hives. It looks pretty strong."
+ armor_deflection = 15
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 70
+ speed = 0.2
+ aura_strength = 2
+
+/datum/xeno_caste/Hivelord/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 300
+ maxHealth = 300
+ plasma_max = 1200
+ plasma_gain = 70
+ caste_desc = "An extreme construction machine. It seems to be building walls..."
+ armor_deflection = 20
+ tacklemin = 5
+ tacklemax = 7
+ tackle_chance = 80
+ speed = 0.1
+ aura_strength = 2.5
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker.dm
index 8ec82edb..146c0c03 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker.dm
@@ -6,6 +6,7 @@
desc = "A beefy, fast alien with sharp claws."
icon = 'icons/Xeno/xenomorph_48x48.dmi'
icon_state = "Lurker Walking"
+ caste_path = /datum/xeno_caste/Lurker
melee_damage_lower = 20
melee_damage_upper = 30
health = 150
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker_Caste.dm
new file mode 100644
index 00000000..d7f967e1
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Lurker/Lurker_Caste.dm
@@ -0,0 +1,76 @@
+/datum/xeno_caste/Lurker
+ name = "Lurker"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Lurker
+ next_upgrade = /datum/xeno_caste/Lurker/mature
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 150
+ maxHealth = 150
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 300
+ caste_desc = "A fast, powerful front line combatant."
+ speed = -1.5 //Not as fast as runners, but faster than other xenos
+ attack_delay = -2
+ pounce_delay = 55
+
+/datum/xeno_caste/Lurker/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Lurker/elder
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 170
+ maxHealth = 170
+ plasma_gain = 10
+ plasma_max = 150
+ upgrade_threshold = 600
+ caste_desc = "A fast, powerful front line combatant. It looks a little more dangerous."
+ speed = -1.6
+ armor_deflection = 20
+ attack_delay = -2
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ pounce_delay = 50
+
+/datum/xeno_caste/Lurker/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Lurker/ancient
+
+ melee_damage_lower = 35
+ melee_damage_upper = 50
+ health = 200
+ maxHealth = 200
+ plasma_gain = 10
+ plasma_max = 200
+ upgrade_threshold = 1200
+ caste_desc = "A fast, powerful front line combatant. It looks pretty strong."
+ speed = -1.7
+ armor_deflection = 25
+ attack_delay = -3
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 65
+ pounce_delay = 45
+
+/datum/xeno_caste/Lurker/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 50
+ melee_damage_upper = 60
+ health = 250
+ maxHealth = 250
+ plasma_gain = 20
+ plasma_max = 300
+ caste_desc = "A completly unmatched hunter. No, not even the Yautja can match you."
+ speed = -1.8
+ armor_deflection = 25
+ attack_delay = -3
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 65
+ pounce_delay = 40
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Praetorian.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Praetorian.dm
index 8fc32f9c..3bd895c0 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Praetorian.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Praetorian.dm
@@ -6,6 +6,7 @@
desc = "A huge, looming beast of an alien."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Praetorian Walking"
+ caste_path = /datum/xeno_caste/Praetorian
melee_damage_lower = 15
melee_damage_upper = 25
tacklemin = 3
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Pratetorian_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Pratetorian_Caste.dm
new file mode 100644
index 00000000..f6041c77
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Praetorian/Pratetorian_Caste.dm
@@ -0,0 +1,78 @@
+/datum/xeno_caste/Praetorian
+ name = "Praetorian"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Praetorian
+ next_upgrade = /datum/xeno_caste/Praetorian/mature
+
+ melee_damage_lower = 15
+ melee_damage_upper = 25
+ tacklemin = 3
+ tacklemax = 8
+ tackle_chance = 75
+ health = 250
+ maxHealth = 250
+ plasma_gain = 25
+ plasma_max = 800
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ spit_delay = 20
+ aura_strength = 1.5
+
+/datum/xeno_caste/Praetorian/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Praetorian/elder
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 220
+ maxHealth = 220
+ plasma_gain = 30
+ plasma_max = 900
+ upgrade_threshold = 800
+ spit_delay = 15
+ caste_desc = "A giant ranged monster. It looks a little more dangerous."
+ armor_deflection = 40
+ tacklemin = 5
+ tacklemax = 8
+ tackle_chance = 75
+ speed = 0.0
+ aura_strength = 2.5
+
+/datum/xeno_caste/Praetorian/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Praetorian/ancient
+
+ melee_damage_lower = 30
+ melee_damage_upper = 35
+ health = 250
+ maxHealth = 250
+ plasma_gain = 40
+ plasma_max = 1000
+ upgrade_threshold = 1600
+ spit_delay = 10
+ caste_desc = "A giant ranged monster. It looks pretty strong."
+ armor_deflection = 45
+ tacklemin = 6
+ tacklemax = 9
+ tackle_chance = 80
+ speed = -0.1
+ aura_strength = 3.5
+
+/datum/xeno_caste/Praetorian/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 40
+ melee_damage_upper = 50
+ health = 270
+ maxHealth = 270
+ plasma_gain = 50
+ plasma_max = 1000
+ spit_delay = 0
+ caste_desc = "Its mouth looks like a minigun."
+ armor_deflection = 45
+ tacklemin = 7
+ tacklemax = 10
+ tackle_chance = 85
+ speed = -0.2
+ aura_strength = 4.5
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen.dm
index 1ff72b14..7f9cc0f9 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen.dm
@@ -21,6 +21,7 @@
desc = "A huge, looming alien creature. The biggest and the baddest."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Queen Walking"
+ caste_path = /datum/xeno_caste/Queen
melee_damage_lower = 30
melee_damage_upper = 46
tacklemin = 4
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen_Caste.dm
new file mode 100644
index 00000000..9e65d56d
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Queen/Queen_Caste.dm
@@ -0,0 +1,86 @@
+/datum/xeno_caste/Queen
+ name = "Queen"
+ eldery = ""
+ caste_type = /mob/living/carbon/Xenomorph/Queen
+ next_upgrade = /datum/xeno_caste/Queen/mature
+
+ melee_damage_lower = 30
+ melee_damage_upper = 46
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 80
+ health = 300
+ maxHealth = 300
+ plasma_max = 700
+ plasma_gain = 30
+ speed = 0.6
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ armor_deflection = 45
+ aura_strength = 2 //The Queen's aura is strong and stays so, and gets devastating late game. Climbs by 1 to 5
+ caste_desc = "The biggest and baddest xeno. The Queen controls the hive and plants eggs"
+ spit_delay = 25
+
+/datum/xeno_caste/Queen/mature
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Queen/elder
+
+ melee_damage_lower = 40
+ melee_damage_upper = 55
+ health = 320
+ maxHealth = 320
+ plasma_max = 800
+ plasma_gain = 40
+ upgrade_threshold = 800
+ spit_delay = 20
+ caste_desc = "The biggest and baddest xeno. The Queen controls the hive and plants eggs."
+ armor_deflection = 50
+ tacklemin = 5
+ tacklemax = 7
+ tackle_chance = 85
+ speed = 0.5
+ aura_strength = 3
+ queen_leader_limit = 2
+
+/datum/xeno_caste/Queen/elder
+ name = "Empress"
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Queen/ancient
+
+ melee_damage_lower = 50
+ melee_damage_upper = 60
+ health = 350
+ maxHealth = 350
+ plasma_max = 900
+ plasma_gain = 50
+ upgrade_threshold = 1600
+ spit_delay = 15
+ caste_desc = "The biggest and baddest xeno. The Empress controls multiple hives and planets."
+ armor_deflection = 55
+ tacklemin = 6
+ tacklemax = 9
+ tackle_chance = 90
+ speed = 0.4
+ aura_strength = 4
+ queen_leader_limit = 3
+
+/datum/xeno_caste/Queen/ancient
+ name = "Empress"
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 70
+ melee_damage_upper = 90
+ health = 400
+ maxHealth = 400
+ plasma_max = 1000
+ plasma_gain = 50
+ spit_delay = 10
+ caste_desc = "The most perfect Xeno form imaginable."
+ armor_deflection = 55
+ tacklemin = 7
+ tacklemax = 10
+ tackle_chance = 95
+ speed = 0.3
+ aura_strength = 5
+ queen_leader_limit = 4
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager.dm
index f9535cf0..df7e0cbc 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager.dm
@@ -6,6 +6,7 @@
desc = "A huge, nasty red alien with enormous scythed claws."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Ravager Walking"
+ caste_path = /datum/xeno_caste/Ravager
melee_damage_lower = 25
melee_damage_upper = 35
tacklemin = 3
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager_Caste.dm
new file mode 100644
index 00000000..2dc787af
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Ravager/Ravager_Caste.dm
@@ -0,0 +1,74 @@
+/datum/xeno_caste/Ravager
+ name = "Ravager"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Ravager
+ next_upgrade = /datum/xeno_caste/Ravager/mature
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ tacklemin = 3
+ tacklemax = 4
+ tackle_chance = 70
+ health = 200
+ maxHealth = 200
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 400
+ evolution_allowed = FALSE
+ caste_desc = "A brutal, devastating front-line attacker."
+ speed = -0.7 //Not as fast as runners, but faster than other xenos.
+ armor_deflection = 40
+ attack_delay = -2
+
+/datum/xeno_caste/Ravager/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Ravager/elder
+
+ melee_damage_lower = 50
+ melee_damage_upper = 70
+ health = 220
+ maxHealth = 220
+ plasma_gain = 10
+ plasma_max = 150
+ upgrade_threshold = 800
+ caste_desc = "A brutal, devastating front-line attacker. It looks a little more dangerous."
+ speed = -0.8
+ armor_deflection = 45
+ tacklemin = 4
+ tacklemax = 5
+ tackle_chance = 75
+
+/datum/xeno_caste/Ravager/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Ravager/ancient
+
+ melee_damage_lower = 60
+ melee_damage_upper = 80
+ health = 250
+ maxHealth = 250
+ plasma_gain = 15
+ plasma_max = 200
+ upgrade_threshold = 1600
+ caste_desc = "A brutal, devastating front-line attacker. It looks pretty strong."
+ speed = -0.9
+ armor_deflection = 50
+ tacklemin = 5
+ tacklemax = 7
+ tackle_chance = 80
+
+/datum/xeno_caste/Ravager/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 80
+ melee_damage_upper = 100
+ health = 350
+ maxHealth = 350
+ plasma_gain = 15
+ plasma_max = 200
+ caste_desc = "As I walk through the valley of the shadow of death."
+ speed = -1.0
+ armor_deflection = 50
+ tacklemin = 5
+ tacklemax = 10
+ tackle_chance = 90
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner.dm
index 1f53d1ba..f6dd926a 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner.dm
@@ -6,6 +6,7 @@
desc = "A small red alien that looks like it could run fairly quickly..."
icon = 'icons/xeno/xenomorph_64x64.dmi' //They are now like, 2x1 or something
icon_state = "Runner Walking"
+ caste_path = /datum/xeno_caste/Runner
melee_damage_lower = 10
melee_damage_upper = 20
health = 100
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner_Caste.dm
new file mode 100644
index 00000000..cc6031a2
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Runner/Runner_Caste.dm
@@ -0,0 +1,75 @@
+/datum/xeno_caste/Runner
+ name = "Runner"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Runner
+ next_upgrade = /datum/xeno_caste/Runner/mature
+
+ melee_damage_lower = 10
+ melee_damage_upper = 20
+ health = 100
+ maxHealth = 100
+ plasma_gain = 1
+ plasma_max = 100
+ upgrade_threshold = 100
+ caste_desc = "A fast, four-legged terror, but weak in sustained combat."
+ speed = -1.8
+ attack_delay = -4
+
+/datum/xeno_caste/Runner/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Runner/elder
+
+ melee_damage_lower = 15
+ melee_damage_upper = 25
+ health = 120
+ maxHealth = 120
+ plasma_gain = 2
+ plasma_max = 150
+ upgrade_threshold = 150
+ caste_desc = "A fast, four-legged terror, but weak in sustained combat. It looks a little more dangerous."
+ speed = -1.9
+ armor_deflection = 5
+ attack_delay = -4
+ tacklemin = 2
+ tacklemax = 4
+ tackle_chance = 50
+ pounce_delay = 35
+
+/datum/xeno_caste/Runner/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Runner/ancient
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 150
+ maxHealth = 150
+ plasma_gain = 2
+ plasma_max = 200
+ upgrade_threshold = 300
+ caste_desc = "A fast, four-legged terror, but weak in sustained combat. It looks pretty strong."
+ speed = -2.0
+ armor_deflection = 10
+ attack_delay = -4
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ pounce_delay = 30
+
+/datum/xeno_caste/Runner/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 200
+ maxHealth = 200
+ plasma_gain = 2
+ plasma_max = 200
+ caste_desc = "Not what you want to run into in a dark alley. It looks fucking deadly."
+ speed = -2.1
+ armor_deflection = 10
+ attack_delay = -4
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 70
+ pounce_delay = 25
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel.dm
index 32f74238..4ca9b1a4 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel.dm
@@ -6,6 +6,7 @@
desc = "A slithery, spitting kind of alien."
icon = 'icons/Xeno/xenomorph_48x48.dmi'
icon_state = "Sentinel Walking"
+ caste_path = /datum/xeno_caste/Sentinel
melee_damage_lower = 10
melee_damage_upper = 20
health = 130
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel_Caste.dm
new file mode 100644
index 00000000..91e59a40
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Sentinel/Sentinel_Caste.dm
@@ -0,0 +1,73 @@
+/datum/xeno_caste/Sentinel
+ name = "Sentinel"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Sentinel
+ next_upgrade = /datum/xeno_caste/Sentinel/mature
+
+ melee_damage_lower = 10
+ melee_damage_upper = 20
+ health = 130
+ maxHealth = 130
+ plasma_gain = 10
+ plasma_max = 300
+ upgrade_threshold = 100
+ spit_delay = 30
+ caste_desc = "A weak ranged combat alien."
+ armor_deflection = 15
+ speed = -0.8
+
+/datum/xeno_caste/Sentinel/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Sentinel/elder
+
+ melee_damage_lower = 15
+ melee_damage_upper = 25
+ health = 150
+ maxHealth = 150
+ plasma_gain = 12
+ plasma_max = 400
+ upgrade_threshold = 150
+ spit_delay = 25
+ caste_desc = "A ranged combat alien. It looks a little more dangerous."
+ armor_deflection = 15
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = -0.9
+
+/datum/xeno_caste/Sentinel/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Sentinel/ancient
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 175
+ maxHealth = 175
+ plasma_gain = 15
+ plasma_max = 500
+ upgrade_threshold = 300
+ spit_delay = 20
+ caste_desc = "A ranged combat alien. It looks pretty strong."
+ armor_deflection = 20
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 60
+ speed = -1.0
+
+/datum/xeno_caste/Sentinel/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 200
+ maxHealth = 200
+ plasma_gain = 20
+ plasma_max = 600
+ spit_delay = 10
+ caste_desc = "Neurotoxin Factory, don't let it get you."
+ armor_deflection = 20
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 60
+ speed = -1.1
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter.dm
index a9fd6b29..db1b8302 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter.dm
@@ -6,6 +6,7 @@
desc = "A gross, oozing alien of some kind."
icon = 'icons/Xeno/xenomorph_48x48.dmi'
icon_state = "Spitter Walking"
+ caste_path = /datum/xeno_caste/Spitter
melee_damage_lower = 12
melee_damage_upper = 22
health = 160
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter_Caste.dm
new file mode 100644
index 00000000..b8aea257
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Spitter/Spitter_Caste.dm
@@ -0,0 +1,73 @@
+/datum/xeno_caste/Spitter
+ name = "Spitter"
+ eldery = "Young"
+ next_upgrade = /datum/xeno_caste/Spitter/mature
+ caste_type = /mob/living/carbon/Xenomorph/Spitter
+
+ melee_damage_lower = 12
+ melee_damage_upper = 22
+ health = 160
+ maxHealth = 160
+ plasma_gain = 20
+ plasma_max = 600
+ upgrade_threshold = 140
+ spit_delay = 25
+ speed = -0.5
+ caste_desc = "Ptui!"
+ armor_deflection = 15
+
+/datum/xeno_caste/Spitter/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Spitter/elder
+
+ melee_damage_lower = 20
+ melee_damage_upper = 30
+ health = 180
+ maxHealth = 180
+ plasma_gain = 25
+ plasma_max = 700
+ upgrade_threshold = 300
+ spit_delay = 20
+ caste_desc = "A ranged damage dealer. It looks a little more dangerous."
+ armor_deflection = 20
+ tacklemin = 3
+ tacklemax = 5
+ tackle_chance = 60
+ speed = -0.6
+
+/datum/xeno_caste/Spitter/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Spitter/ancient
+
+ melee_damage_lower = 25
+ melee_damage_upper = 35
+ health = 200
+ maxHealth = 200
+ plasma_gain = 30
+ plasma_max = 800
+ upgrade_threshold = 600
+ spit_delay = 15
+ caste_desc = "A ranged damage dealer. It looks pretty strong."
+ armor_deflection = 25
+ tacklemin = 4
+ tacklemax = 6
+ tackle_chance = 70
+ speed = -0.7
+
+/datum/xeno_caste/Spitter/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 35
+ melee_damage_upper = 45
+ health = 250
+ maxHealth = 250
+ plasma_gain = 50
+ plasma_max = 900
+ spit_delay = 10
+ caste_desc = "A ranged destruction machine."
+ armor_deflection = 30
+ tacklemin = 5
+ tacklemax = 7
+ tackle_chance = 75
+ speed = -0.8
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior.dm
index 1e5225ae..b8ac20ce 100644
--- a/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior.dm
@@ -4,6 +4,7 @@
desc = "A beefy, alien with an armored carapace."
icon = 'icons/Xeno/xenomorph_64x64.dmi'
icon_state = "Warrior Walking"
+ caste_path = /datum/xeno_caste/Warrior
melee_damage_lower = 30
melee_damage_upper = 35
health = 200
diff --git a/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior_Caste.dm b/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior_Caste.dm
new file mode 100644
index 00000000..538ba110
--- /dev/null
+++ b/code/modules/mob/living/carbon/xenomorph/Castes/Warrior/Warrior_Caste.dm
@@ -0,0 +1,61 @@
+/datum/xeno_caste/Warrior
+ name = "Warrior"
+ eldery = "Young"
+ caste_type = /mob/living/carbon/Xenomorph/Warrior
+ next_upgrade = /datum/xeno_caste/Warrior/mature
+
+ melee_damage_lower = 30
+ melee_damage_upper = 35
+ health = 200
+ maxHealth = 200
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 250
+ caste_desc = "A powerful front line combatant."
+ speed = -0.8
+ armor_deflection = 30
+
+/datum/xeno_caste/Warrior/mature
+ eldery = "Mature"
+ next_upgrade = /datum/xeno_caste/Warrior/elder
+
+ melee_damage_lower = 35
+ melee_damage_upper = 40
+ health = 225
+ maxHealth = 225
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 300
+ caste_desc = "An alien with an armored carapace. It looks a little more dangerous."
+ speed = -0.9
+ armor_deflection = 35
+
+/datum/xeno_caste/Warrior/elder
+ eldery = "Elder"
+ next_upgrade = /datum/xeno_caste/Warrior/ancient
+
+ melee_damage_lower = 40
+ melee_damage_upper = 45
+ health = 250
+ maxHealth = 250
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 600
+ caste_desc = "An alien with an armored carapace. It looks pretty strong."
+ speed = -1.0
+ armor_deflection = 40
+
+/datum/xeno_caste/Warrior/ancient
+ eldery = "Ancient"
+ next_upgrade = null
+
+ melee_damage_lower = 45
+ melee_damage_upper = 50
+ health = 275
+ maxHealth = 275
+ plasma_gain = 8
+ plasma_max = 100
+ upgrade_threshold = 1200
+ caste_desc = "An hulking beast capable of effortlessly breaking and tearing through its enemies."
+ speed = -1.1
+ armor_deflection = 45
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/xenomorph/XenoUpgrade.dm b/code/modules/mob/living/carbon/xenomorph/XenoUpgrade.dm
index 9c6dfbd9..5c079d8b 100644
--- a/code/modules/mob/living/carbon/xenomorph/XenoUpgrade.dm
+++ b/code/modules/mob/living/carbon/xenomorph/XenoUpgrade.dm
@@ -1,6 +1,5 @@
/mob/living/carbon/Xenomorph/proc/upgrade_xeno(newlevel)
- upgrade = newlevel
upgrade_stored = 0
visible_message("\The [src] begins to twist and contort.", \
"You begin to twist and contort.")
@@ -46,436 +45,16 @@ Carrier -0.3 -0.2 -0.1 0.0
Queen 0.0 0.1 0.2 0.3
*/
- switch(upgrade)
+ switch(newlevel)
//FIRST UPGRADE
if(1)
upgrade_name = "Mature"
to_chat(src, "You feel a bit stronger.")
- switch(caste)
- if("Runner")
- melee_damage_lower = 15
- melee_damage_upper = 25
- health = 120
- maxHealth = 120
- plasma_gain = 2
- plasma_max = 150
- upgrade_threshold = 150
- caste_desc = "A fast, four-legged terror, but weak in sustained combat. It looks a little more dangerous."
- speed = -1.9
- armor_deflection = 5
- attack_delay = -4
- tacklemin = 2
- tacklemax = 4
- tackle_chance = 50
- pounce_delay = 35
- if("Lurker")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 170
- maxHealth = 170
- plasma_gain = 10
- plasma_max = 150
- upgrade_threshold = 600
- caste_desc = "A fast, powerful front line combatant. It looks a little more dangerous."
- speed = -1.6
- armor_deflection = 20
- attack_delay = -2
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- pounce_delay = 50
- if("Ravager")
- melee_damage_lower = 50
- melee_damage_upper = 70
- health = 220
- maxHealth = 220
- plasma_gain = 10
- plasma_max = 150
- upgrade_threshold = 800
- caste_desc = "A brutal, devastating front-line attacker. It looks a little more dangerous."
- speed = -0.8
- armor_deflection = 45
- tacklemin = 4
- tacklemax = 5
- tackle_chance = 75
- if ("Defender")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 275
- maxHealth = 275
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 150
- caste_desc = "An alien with an armored head crest. It looks a little more dangerous."
- speed = -0.3
- armor_deflection = 45
- if ("Warrior")
- melee_damage_lower = 35
- melee_damage_upper = 40
- health = 225
- maxHealth = 225
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 300
- caste_desc = "An alien with an armored carapace. It looks a little more dangerous."
- speed = -0.9
- armor_deflection = 35
- if("Crusher")
- melee_damage_lower = 20
- melee_damage_upper = 35
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 65
- health = 325
- maxHealth = 325
- plasma_gain = 15
- plasma_max = 300
- upgrade_threshold = 600
- caste_desc = "A huge tanky xenomorph. It looks a little more dangerous."
- armor_deflection = 80
- if("Sentinel")
- melee_damage_lower = 15
- melee_damage_upper = 25
- health = 150
- maxHealth = 150
- plasma_gain = 12
- plasma_max = 400
- upgrade_threshold = 150
- spit_delay = 25
- caste_desc = "A ranged combat alien. It looks a little more dangerous."
- armor_deflection = 15
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- speed = -0.9
- if("Spitter")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 180
- maxHealth = 180
- plasma_gain = 25
- plasma_max = 700
- upgrade_threshold = 300
- spit_delay = 20
- caste_desc = "A ranged damage dealer. It looks a little more dangerous."
- armor_deflection = 20
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- speed = -0.6
- if("Boiler")
- melee_damage_lower = 20
- melee_damage_upper = 25
- health = 200
- maxHealth = 200
- plasma_gain = 35
- plasma_max = 900
- upgrade_threshold = 600
- spit_delay = 30
- bomb_strength = 1.5
- caste_desc = "Some sort of abomination. It looks a little more dangerous."
- armor_deflection = 30
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 65
- speed = 0.6
- if("Praetorian")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 220
- maxHealth = 220
- plasma_gain = 30
- plasma_max = 900
- upgrade_threshold = 800
- spit_delay = 15
- caste_desc = "A giant ranged monster. It looks a little more dangerous."
- armor_deflection = 40
- tacklemin = 5
- tacklemax = 8
- tackle_chance = 75
- speed = 0.0
- aura_strength = 2.5
- if("Drone")
- melee_damage_lower = 12
- melee_damage_upper = 16
- health = 120
- maxHealth = 120
- plasma_max = 800
- plasma_gain = 20
- upgrade_threshold = 400
- caste_desc = "The workhorse of the hive. It looks a little more dangerous."
- armor_deflection = 5
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- speed = -0.9
- aura_strength = 1
- if("Hivelord")
- melee_damage_lower = 15
- melee_damage_upper = 20
- health = 220
- maxHealth = 220
- plasma_max = 900
- plasma_gain = 40
- upgrade_threshold = 600
- caste_desc = "A builder of REALLY BIG hives. It looks a little more dangerous."
- armor_deflection = 10
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- speed = 0.3
- aura_strength = 1.5
- if("Carrier")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 200
- maxHealth = 200
- plasma_max = 300
- plasma_gain = 10
- upgrade_threshold = 600
- caste_desc = "A portable Love transport. It looks a little more dangerous."
- armor_deflection = 10
- tacklemin = 3
- tacklemax = 4
- tackle_chance = 60
- speed = -0.1
- aura_strength = 1.5
- var/mob/living/carbon/Xenomorph/Carrier/CA = src
- CA.huggers_max = 9
- CA.hugger_delay = 30
- CA.eggs_max = 4
- if("Queen")
- melee_damage_lower = 40
- melee_damage_upper = 55
- health = 320
- maxHealth = 320
- plasma_max = 800
- plasma_gain = 40
- upgrade_threshold = 800
- spit_delay = 20
- caste_desc = "The biggest and baddest xeno. The Queen controls the hive and plants eggs."
- armor_deflection = 50
- tacklemin = 5
- tacklemax = 7
- tackle_chance = 85
- speed = 0.5
- aura_strength = 3
- queen_leader_limit = 2
//SECOND UPGRADE
if(2)
upgrade_name = "Elder"
to_chat(src, "You feel a whole lot stronger.")
- switch(caste)
- if("Runner")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 150
- maxHealth = 150
- plasma_gain = 2
- plasma_max = 200
- upgrade_threshold = 300
- caste_desc = "A fast, four-legged terror, but weak in sustained combat. It looks pretty strong."
- speed = -2.0
- armor_deflection = 10
- attack_delay = -4
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- pounce_delay = 30
- if("Lurker")
- melee_damage_lower = 35
- melee_damage_upper = 50
- health = 200
- maxHealth = 200
- plasma_gain = 10
- plasma_max = 200
- upgrade_threshold = 1200
- caste_desc = "A fast, powerful front line combatant. It looks pretty strong."
- speed = -1.7
- armor_deflection = 25
- attack_delay = -3
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 65
- pounce_delay = 45
- if("Ravager")
- melee_damage_lower = 60
- melee_damage_upper = 80
- health = 250
- maxHealth = 250
- plasma_gain = 15
- plasma_max = 200
- upgrade_threshold = 1600
- caste_desc = "A brutal, devastating front-line attacker. It looks pretty strong."
- speed = -0.9
- armor_deflection = 50
- tacklemin = 5
- tacklemax = 7
- tackle_chance = 80
- if ("Defender")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 300
- maxHealth = 300
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 300
- caste_desc = "An alien with an armored head crest. It looks pretty strong."
- speed = -0.4
- armor_deflection = 50
- if ("Warrior")
- melee_damage_lower = 40
- melee_damage_upper = 45
- health = 250
- maxHealth = 250
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 600
- caste_desc = "An alien with an armored carapace. It looks pretty strong."
- speed = -1.0
- armor_deflection = 40
- if("Crusher")
- melee_damage_lower = 35
- melee_damage_upper = 45
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 75
- health = 375
- maxHealth = 375
- plasma_gain = 30
- plasma_max = 400
- upgrade_threshold = 1600
- caste_desc = "A huge tanky xenomorph. It looks pretty strong."
- armor_deflection = 85
- if("Sentinel")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 175
- maxHealth = 175
- plasma_gain = 15
- plasma_max = 500
- upgrade_threshold = 300
- spit_delay = 20
- caste_desc = "A ranged combat alien. It looks pretty strong."
- armor_deflection = 20
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 60
- speed = -1.0
- if("Spitter")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 200
- maxHealth = 200
- plasma_gain = 30
- plasma_max = 800
- upgrade_threshold = 600
- spit_delay = 15
- caste_desc = "A ranged damage dealer. It looks pretty strong."
- armor_deflection = 25
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 70
- speed = -0.7
- if("Boiler")
- melee_damage_lower = 30
- melee_damage_upper = 35
- health = 220
- maxHealth = 220
- plasma_gain = 40
- plasma_max = 1000
- upgrade_threshold = 1200
- spit_delay = 20
- bomb_strength = 2
- caste_desc = "Some sort of abomination. It looks pretty strong."
- armor_deflection = 35
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 70
- speed = 0.5
- if("Praetorian")
- melee_damage_lower = 30
- melee_damage_upper = 35
- health = 250
- maxHealth = 250
- plasma_gain = 40
- plasma_max = 1000
- upgrade_threshold = 1600
- spit_delay = 10
- caste_desc = "A giant ranged monster. It looks pretty strong."
- armor_deflection = 45
- tacklemin = 6
- tacklemax = 9
- tackle_chance = 80
- speed = -0.1
- aura_strength = 3.5
- if("Drone")
- melee_damage_lower = 12
- melee_damage_upper = 16
- health = 150
- maxHealth = 150
- plasma_max = 900
- plasma_gain = 30
- upgrade_threshold = 650
- caste_desc = "The workhorse of the hive. It looks a little more dangerous."
- armor_deflection = 10
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 60
- speed = -1.0
- aura_strength = 1.5
- if("Hivelord")
- melee_damage_lower = 15
- melee_damage_upper = 20
- health = 250
- maxHealth = 250
- plasma_max = 1000
- plasma_gain = 50
- upgrade_threshold = 1200
- caste_desc = "A builder of REALLY BIG hives. It looks pretty strong."
- armor_deflection = 15
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 70
- speed = 0.2
- aura_strength = 2
- if("Carrier")
- melee_damage_lower = 30
- melee_damage_upper = 40
- health = 220
- maxHealth = 220
- plasma_max = 350
- plasma_gain = 12
- upgrade_threshold = 1200
- caste_desc = "A portable Love transport. It looks pretty strong."
- armor_deflection = 10
- tacklemin = 4
- tacklemax = 5
- tackle_chance = 70
- speed = -0.2
- aura_strength = 2
- var/mob/living/carbon/Xenomorph/Carrier/CA = src
- CA.huggers_max = 10
- CA.hugger_delay = 20
- CA.eggs_max = 5
- if("Queen")
- melee_damage_lower = 50
- melee_damage_upper = 60
- health = 350
- maxHealth = 350
- plasma_max = 900
- plasma_gain = 50
- upgrade_threshold = 1600
- spit_delay = 15
- caste_desc = "The biggest and baddest xeno. The Empress controls multiple hives and planets."
- armor_deflection = 55
- tacklemin = 6
- tacklemax = 9
- tackle_chance = 90
- speed = 0.4
- aura_strength = 4
- queen_leader_limit = 3
//Final UPGRADE
if(3)
@@ -483,214 +62,35 @@ Queen 0.0 0.1 0.2 0.3
switch(caste)
if("Runner")
to_chat(src, "You are the fastest assassin of all time. Your speed is unmatched.")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 200
- maxHealth = 200
- plasma_gain = 2
- plasma_max = 200
- caste_desc = "Not what you want to run into in a dark alley. It looks fucking deadly."
- speed = -2.1
- armor_deflection = 10
- attack_delay = -4
- tacklemin = 3
- tacklemax = 5
- tackle_chance = 70
- pounce_delay = 25
if("Lurker")
to_chat(src, "You are the epitome of the hunter. Few can stand against you in open combat.")
- melee_damage_lower = 50
- melee_damage_upper = 60
- health = 250
- maxHealth = 250
- plasma_gain = 20
- plasma_max = 300
- caste_desc = "A completly unmatched hunter. No, not even the Yautja can match you."
- speed = -1.8
- armor_deflection = 25
- attack_delay = -3
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 65
- pounce_delay = 40
if("Ravager")
to_chat(src, "You are death incarnate. All will tremble before you.")
- melee_damage_lower = 80
- melee_damage_upper = 100
- health = 350
- maxHealth = 350
- plasma_gain = 15
- plasma_max = 200
- caste_desc = "As I walk through the valley of the shadow of death."
- speed = -1.0
- armor_deflection = 50
- tacklemin = 5
- tacklemax = 10
- tackle_chance = 90
- if ("Defender")
+ if("Defender")
to_chat(src, "You are a incredibly resilient, you can control the battle through sheer force.")
- health = 325
- maxHealth = 325
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 600
- caste_desc = "An unstoppable force that remains when others would fall."
- speed = -0.4
- armor_deflection = 55
- if ("Warrior")
+ if("Warrior")
to_chat(src, "None can stand before you. You will annihilate all weaklings who try.")
- melee_damage_lower = 45
- melee_damage_upper = 50
- health = 275
- maxHealth = 275
- plasma_gain = 8
- plasma_max = 100
- upgrade_threshold = 1200
- caste_desc = "An hulking beast capable of effortlessly breaking and tearing through its enemies."
- speed = -1.1
- armor_deflection = 45
if("Crusher")
to_chat(src, "You are the physical manifestation of a Tank. Almost nothing can harm you.")
- melee_damage_lower = 35
- melee_damage_upper = 45
- tacklemin = 4
- tacklemax = 7
- tackle_chance = 75
- health = 450
- maxHealth = 450
- plasma_gain = 30
- plasma_max = 400
- caste_desc = "It always has the right of way."
- armor_deflection = 90
if("Sentinel")
to_chat(src, "You are the stun master. Your stunning is legendary and causes massive quantities of salt.")
- melee_damage_lower = 25
- melee_damage_upper = 35
- health = 200
- maxHealth = 200
- plasma_gain = 20
- plasma_max = 600
- spit_delay = 10
- caste_desc = "Neurotoxin Factory, don't let it get you."
- armor_deflection = 20
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 60
- speed = -1.1
if("Spitter")
to_chat(src, "You are a master of ranged stuns and damage. Go fourth and generate salt.")
- melee_damage_lower = 35
- melee_damage_upper = 45
- health = 250
- maxHealth = 250
- plasma_gain = 50
- plasma_max = 900
- spit_delay = 10
- caste_desc = "A ranged destruction machine."
- armor_deflection = 30
- tacklemin = 5
- tacklemax = 7
- tackle_chance = 75
- speed = -0.8
- if("Boiler")
- to_chat(src, "You are the master of ranged artillery. Bring death from above.")
- melee_damage_lower = 35
- melee_damage_upper = 45
- health = 250
- maxHealth = 250
- plasma_gain = 50
- plasma_max = 1000
- spit_delay = 10
- bomb_strength = 2.5
- caste_desc = "A devestating piece of alien artillery."
- armor_deflection = 35
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 80
- speed = 0.4
if("Praetorian")
to_chat(src, "You are the strongest range fighter around. Your spit is devestating and you can fire nearly a constant stream.")
- melee_damage_lower = 40
- melee_damage_upper = 50
- health = 270
- maxHealth = 270
- plasma_gain = 50
- plasma_max = 1000
- spit_delay = 0
- caste_desc = "Its mouth looks like a minigun."
- armor_deflection = 45
- tacklemin = 7
- tacklemax = 10
- tackle_chance = 85
- speed = -0.2
- aura_strength = 4.5
if("Drone")
to_chat(src, "You are the ultimate worker of the Hive. Time to clock in, and clock the tallhosts out.")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 200
- maxHealth = 200
- plasma_max = 1000
- plasma_gain = 50
- caste_desc = "A very mean architect."
- armor_deflection = 15
- tacklemin = 4
- tacklemax = 6
- tackle_chance = 80
- speed = -1.1
- aura_strength = 2
if("Hivelord")
to_chat(src, "You are the builder of walls. Ensure that the marines are the ones who pay for them.")
- melee_damage_lower = 20
- melee_damage_upper = 30
- health = 300
- maxHealth = 300
- plasma_max = 1200
- plasma_gain = 70
- caste_desc = "An extreme construction machine. It seems to be building walls..."
- armor_deflection = 20
- tacklemin = 5
- tacklemax = 7
- tackle_chance = 80
- speed = 0.1
- aura_strength = 2.5
- if("Carrier")
- to_chat(src, "You are the master of huggers. Throw them like baseballs at the marines!")
- melee_damage_lower = 35
- melee_damage_upper = 45
- health = 250
- maxHealth = 250
- plasma_max = 400
- plasma_gain = 15
- caste_desc = "It's literally crawling with 10 huggers."
- armor_deflection = 15
- tacklemin = 5
- tacklemax = 6
- tackle_chance = 75
- speed = -0.3
- aura_strength = 2.5
- var/mob/living/carbon/Xenomorph/Carrier/CA = src
- CA.huggers_max = 11
- CA.hugger_delay = 10
- CA.eggs_max = 6
if("Queen")
to_chat(src, "You are the Alpha and the Omega. The beginning and the end.")
- melee_damage_lower = 70
- melee_damage_upper = 90
- health = 400
- maxHealth = 400
- plasma_max = 1000
- plasma_gain = 50
- spit_delay = 10
- caste_desc = "The most perfect Xeno form imaginable."
- armor_deflection = 55
- tacklemin = 7
- tacklemax = 10
- tackle_chance = 95
- speed = 0.3
- aura_strength = 5
- queen_leader_limit = 4
+ for(var/i in upgrade to newlevel-1)
+ if(!caste_path)
+ break
+ caste_datum = new caste_path()
+ caste_datum.apply_caste(src)
+ upgrade = newlevel
generate_name() //Give them a new name now
hud_set_queen_overwatch() //update the upgrade level insignia on our xeno hud.
diff --git a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
index 79dda98b..2b7ea5ca 100644
--- a/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
+++ b/code/modules/mob/living/carbon/xenomorph/Xenomorph.dm
@@ -71,6 +71,9 @@
add_language("Hivemind") //hivemind
add_inherent_verbs()
add_abilities()
+ if(caste_path)
+ caste_datum = new caste_path()
+ caste_datum.apply_caste(src)
sight |= SEE_MOBS
see_invisible = SEE_INVISIBLE_MINIMUM
@@ -138,15 +141,11 @@
else
remove_language("English") // its hacky doing it here sort of
- //Queens have weird, hardcoded naming conventions based on upgrade levels. They also never get nicknumbers
- if(caste == "Queen")
- switch(upgrade)
- if(0) name = "[name_prefix]Queen" //Young
- if(1) name = "[name_prefix]Elder Queen" //Mature
- if(2) name = "[name_prefix]Elder Empress" //Elite
- if(3) name = "[name_prefix]Ancient Empress" //Ancient
- else if(caste == "Predalien") name = "[name_prefix][name] ([nicknumber])"
- else name = "[name_prefix][upgrade_name] [caste] ([nicknumber])"
+ name = "[caste_datum.eldery] [caste_datum.name]"
+ if(caste == "Predalien")
+ name = "[name_prefix][name] ([nicknumber])"
+ else if(caste_datum.name != "Queen")
+ name += " ([nicknumber])"
//Update linked data so they show up properly
real_name = name
diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
index 3fe14ae8..7af4cc00 100644
--- a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm
@@ -20,6 +20,8 @@
var/upgrade_stored = 0 //How much upgrade points they have stored.
var/upgrade = -1 //This will track their upgrade level. -1 means cannot upgrade
var/upgrade_threshold = 0
+ var/caste_path = null
+ var/datum/xeno_caste/caste_datum = null
var/list/evolves_to = list() //This is where you add castes to evolve into. "Seperated", "by", "commas"
var/tacklemin = 2