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