diff --git a/aurora.dme b/aurora.dme
index 46605a07..24162a49 100644
--- a/aurora.dme
+++ b/aurora.dme
@@ -896,6 +896,7 @@
#include "code\modules\clothing\suits\storage.dm"
#include "code\modules\clothing\suits\utility.dm"
#include "code\modules\clothing\suits\wiz_robe.dm"
+#include "code\modules\clothing\under\armbands.dm"
#include "code\modules\clothing\under\chameleon.dm"
#include "code\modules\clothing\under\color.dm"
#include "code\modules\clothing\under\miscellaneous.dm"
@@ -1039,6 +1040,7 @@
#include "code\modules\mob\living\carbon\alien\alien_damage.dm"
#include "code\modules\mob\living\carbon\alien\death.dm"
#include "code\modules\mob\living\carbon\alien\emote.dm"
+#include "code\modules\mob\living\carbon\alien\life.dm"
#include "code\modules\mob\living\carbon\alien\progression.dm"
#include "code\modules\mob\living\carbon\alien\say.dm"
#include "code\modules\mob\living\carbon\alien\update_icons.dm"
@@ -1048,6 +1050,29 @@
#include "code\modules\mob\living\carbon\alien\diona\progression.dm"
#include "code\modules\mob\living\carbon\alien\diona\say_understands.dm"
#include "code\modules\mob\living\carbon\alien\diona\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\alien_powers.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\death.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\emote.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\humanoid.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\inventory.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\life.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\login.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\queen.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\drone.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\hunter.dm"
+#include "code\modules\mob\living\carbon\alien\humanoid\caste\sentinel.dm"
+#include "code\modules\mob\living\carbon\alien\larva\death.dm"
+#include "code\modules\mob\living\carbon\alien\larva\emote.dm"
+#include "code\modules\mob\living\carbon\alien\larva\inventory.dm"
+#include "code\modules\mob\living\carbon\alien\larva\larva.dm"
+#include "code\modules\mob\living\carbon\alien\larva\life.dm"
+#include "code\modules\mob\living\carbon\alien\larva\login.dm"
+#include "code\modules\mob\living\carbon\alien\larva\powers.dm"
+#include "code\modules\mob\living\carbon\alien\larva\progression.dm"
+#include "code\modules\mob\living\carbon\alien\larva\update_icons.dm"
+#include "code\modules\mob\living\carbon\alien\special\alien_embryo.dm"
+#include "code\modules\mob\living\carbon\alien\special\facehugger.dm"
#include "code\modules\mob\living\carbon\brain\brain.dm"
#include "code\modules\mob\living\carbon\brain\brain_item.dm"
#include "code\modules\mob\living\carbon\brain\death.dm"
@@ -1077,11 +1102,6 @@
#include "code\modules\mob\living\carbon\human\species.dm"
#include "code\modules\mob\living\carbon\human\update_icons.dm"
#include "code\modules\mob\living\carbon\human\whisper.dm"
-#include "code\modules\mob\living\carbon\human\alien\alien.dm"
-#include "code\modules\mob\living\carbon\human\alien\alien_embryo.dm"
-#include "code\modules\mob\living\carbon\human\alien\alien_facehugger.dm"
-#include "code\modules\mob\living\carbon\human\alien\alien_powers.dm"
-#include "code\modules\mob\living\carbon\human\alien\alien_species.dm"
#include "code\modules\mob\living\carbon\metroid\death.dm"
#include "code\modules\mob\living\carbon\metroid\emote.dm"
#include "code\modules\mob\living\carbon\metroid\examine.dm"
diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index abf02269..09bb8085 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -197,7 +197,6 @@ var/global/floorIsLava = 0
Wraith |
Shade
-
Note from sound, Aliens are broken (Disabled)
Alien: Drone |
Hunter |
Queen |
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index 5fb09e15..3d2df43c 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -292,11 +292,11 @@
switch(href_list["simplemake"])
if("observer") M.change_mob_type( /mob/dead/observer , null, null, delmob )
-// if("drone") M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob )
-// if("hunter") M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob )
-// if("queen") M.change_mob_type( /mob/living/carbon/alien/humanoid/queen , null, null, delmob )
-// if("sentinel") M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob )
-// if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob )
+ if("drone") M.change_mob_type( /mob/living/carbon/alien/humanoid/drone , null, null, delmob )
+ if("hunter") M.change_mob_type( /mob/living/carbon/alien/humanoid/hunter , null, null, delmob )
+ if("queen") M.change_mob_type( /mob/living/carbon/alien/humanoid/queen , null, null, delmob )
+ if("sentinel") M.change_mob_type( /mob/living/carbon/alien/humanoid/sentinel , null, null, delmob )
+ if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob )
if("nymph") M.change_mob_type( /mob/living/carbon/alien/diona , null, null, delmob )
if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob )
if("slime") M.change_mob_type( /mob/living/carbon/slime , null, null, delmob )
diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm
index b5fd51f3..3aad8659 100644
--- a/code/modules/mob/living/carbon/alien/alien.dm
+++ b/code/modules/mob/living/carbon/alien/alien.dm
@@ -47,7 +47,8 @@
/mob/living/carbon/alien/Stat()
..()
- stat(null, "Progress: [amount_grown]/[max_grown]")
+ if(!istype(src, /mob/living/carbon/alien/humanoid))
+ stat(null, "Progress: [amount_grown]/[max_grown]")
/mob/living/carbon/alien/restrained()
return 0
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index 68488167..56b27791 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -6,7 +6,7 @@ These are general powers. Specific powers are stored under the appropriate alien
Doesn't work on other aliens/AI.*/
-/mob/living/carbon/alien/proc/powerc(X, Y)//Y is optional, checks for weed planting. X can be null.
+/mob/living/carbon/alien/humanoid/proc/powerc(X, Y)//Y is optional, checks for weed planting. X can be null.
if(stat)
src << "\green You must be conscious to do this."
return 0
diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
index cf05e394..80308bf8 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm
@@ -18,16 +18,16 @@
//Drones use the same base as generic humanoids.
//Drone verbs
-/mob/living/carbon/alien/humanoid/drone/verb/evolve() // -- TLE
- set name = "Evolve (500)"
- set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time."
- set category = "Alien"
+/mob/living/carbon/alien/humanoid/drone/evolve() // -- TLE
+// set name = "Evolve (500)"
+// set desc = "Produce an interal egg sac capable of spawning children. Only one queen can exist at a time."
+// set category = "Alien"
if(powerc(500))
// Queen check
var/no_queen = 1
for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list)
- if(!Q.key && Q.brain_op_stage != 4)
+ if(!Q.key && !Q.has_brain())
continue
no_queen = 0
diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
index fe202c86..13a6b9cd 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm
@@ -7,8 +7,27 @@
var/obj/item/weapon/r_store = null
var/obj/item/weapon/l_store = null
var/caste = ""
+ var/move_delay_add = 0 // movement delay to add
+ var/heal_rate = 1
+ var/plasma_rate = 5
+ var/storedPlasma = 250
+ var/max_plasma = 500
+ speak_emote = list("hisses")
+ gender = NEUTER
+ dna = null
+ status_flags = CANPARALYSE|CANPUSH
+
+ var/oxygen_alert = 0
+ var/toxins_alert = 0
+ var/fire_alert = 0
+
+ var/heat_protection = 0.5
+
update_icon = 1
+ language = "Xenomorph"
+
+
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/humanoid/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -17,6 +36,9 @@
if(name == "alien")
name = text("alien ([rand(1, 1000)])")
real_name = name
+ add_language("Hivemind")
+ verbs -= /mob/living/carbon/alien/verb/evolve
+ internal_organs += new /datum/organ/internal/xenos/hivenode(src)
..()
//This is fine, works the same as a human
@@ -421,3 +443,183 @@ In all, this is a lot like the monkey code. /N
return
+/mob/living/carbon/alien/humanoid/proc/getPlasma()
+ return storedPlasma
+
+/mob/living/carbon/alien/humanoid/adjustToxLoss(amount)
+ storedPlasma = min(max(storedPlasma + amount,0),max_plasma) //upper limit of max_plasma, lower limit of 0
+ return
+
+/mob/living/carbon/alien/humanoid/adjustFireLoss(amount) // Weak to Fire
+ if(amount > 0)
+ ..(amount * 2)
+ else
+ ..(amount)
+ return
+
+/mob/living/carbon/alien/humanoid/updatehealth()
+ if(status_flags & GODMODE)
+ health = maxHealth
+ stat = CONSCIOUS
+ else
+ //oxyloss is only used for suicide
+ //toxloss isn't used for aliens, its actually used as alien powers!!
+ health = maxHealth - getOxyLoss() - getFireLoss() - getBruteLoss() - getCloneLoss()
+
+/mob/living/carbon/alien/humanoid/handle_mutations_and_radiation()
+
+ if(getFireLoss())
+ if((COLD_RESISTANCE in mutations) || prob(5))
+ adjustFireLoss(-1)
+
+ // Aliens love radiation nom nom nom
+ if (radiation)
+ if (radiation > 100)
+ radiation = 100
+
+ if (radiation < 0)
+ radiation = 0
+
+ switch(radiation)
+ if(1 to 49)
+ radiation--
+ if(prob(25))
+ adjustToxLoss(1)
+
+ if(50 to 74)
+ radiation -= 2
+ adjustToxLoss(1)
+ if(prob(5))
+ radiation -= 5
+
+ if(75 to 100)
+ radiation -= 3
+ adjustToxLoss(3)
+
+/mob/living/carbon/alien/humanoid/handle_fire()//Aliens on fire code
+ if(..())
+ return
+ bodytemperature += BODYTEMP_HEATING_MAX //If you're on fire, you heat up!
+ return
+
+
+/mob/living/carbon/alien/humanoid/Process_Spaceslipping()
+ return 0 // Don't slip in space.
+
+/mob/living/carbon/alien/humanoid/Stat()
+
+ statpanel("Status")
+ stat(null, "Intent: [a_intent]")
+ stat(null, "Move Mode: [m_intent]")
+
+ ..()
+
+ if (client.statpanel == "Status")
+ stat(null, "Plasma Stored: [getPlasma()]/[max_plasma]")
+
+ if(emergency_shuttle)
+ var/eta_status = emergency_shuttle.get_status_panel_eta()
+ if(eta_status)
+ stat(null, eta_status)
+
+/mob/living/carbon/alien/humanoid/Stun(amount)
+ if(status_flags & CANSTUN)
+ stunned = max(max(stunned,amount),0) //can't go below 0, getting a low amount of stun doesn't lower your current stun
+ else
+ // add some movement delay
+ move_delay_add = min(move_delay_add + round(amount / 2), 10) // a maximum delay of 10
+ return
+
+/mob/living/carbon/alien/humanoid/getDNA()
+ return null
+
+/mob/living/carbon/alien/humanoid/setDNA()
+ return
+
+/*----------------------------------------
+Proc: AddInfectionImages()
+Des: Gives the client of the alien an image on each infected mob.
+----------------------------------------*/
+/mob/living/carbon/alien/humanoid/proc/AddInfectionImages()
+ if (client)
+ for (var/mob/living/C in mob_list)
+ if(C.status_flags & XENO_HOST)
+ var/obj/item/alien_embryo/A = locate() in C
+ var/I = image('icons/mob/alien.dmi', loc = C, icon_state = "infected[A.stage]")
+ client.images += I
+ return
+
+
+/*----------------------------------------
+Proc: RemoveInfectionImages()
+Des: Removes all infected images from the alien.
+----------------------------------------*/
+/mob/living/carbon/alien/humanoid/proc/RemoveInfectionImages()
+ if (client)
+ for(var/image/I in client.images)
+ if(dd_hasprefix_case(I.icon_state, "infected"))
+ del(I)
+ return
+
+
+//I don't know why the defines, just needed to place the thing in a place
+#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point
+#define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point
+#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 1000K point
+/mob/living/carbon/alien/humanoid/handle_environment(var/datum/gas_mixture/environment)
+
+ //If there are alien weeds on the ground then heal if needed or give some plasma
+ if(locate(/obj/effect/alien/weeds) in loc)
+ if(health >= maxHealth - getCloneLoss())
+ adjustToxLoss(plasma_rate)
+ else
+ adjustBruteLoss(-heal_rate)
+ adjustFireLoss(-heal_rate)
+ adjustOxyLoss(-heal_rate)
+
+ if(!environment)
+ return
+ var/loc_temp = T0C
+ if(istype(loc, /obj/mecha))
+ var/obj/mecha/M = loc
+ loc_temp = M.return_temperature()
+ else if(istype(get_turf(src), /turf/space))
+ var/turf/heat_turf = get_turf(src)
+ loc_temp = heat_turf.temperature
+ else if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell))
+ loc_temp = loc:air_contents.temperature
+ else
+ loc_temp = environment.temperature
+
+ //world << "Loc temp: [loc_temp] - Body temp: [bodytemperature] - Fireloss: [getFireLoss()] - Fire protection: [heat_protection] - Location: [loc] - src: [src]"
+
+ // Aliens are now weak to fire.
+
+ //After then, it reacts to the surrounding atmosphere based on your thermal protection
+ if(loc_temp > bodytemperature)
+ //Place is hotter than we are
+ var/thermal_protection = heat_protection //This returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to.
+ if(thermal_protection < 1)
+ bodytemperature += (1-thermal_protection) * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR)
+ else
+ bodytemperature += 1 * ((loc_temp - bodytemperature) / BODYTEMP_HEAT_DIVISOR)
+ // bodytemperature -= max((loc_temp - bodytemperature / BODYTEMP_AUTORECOVERY_DIVISOR), BODYTEMP_AUTORECOVERY_MINIMUM)
+
+ // +/- 50 degrees from 310.15K is the 'safe' zone, where no damage is dealt.
+ if(bodytemperature > 360.15)
+ //Body temperature is too hot.
+ fire_alert = max(fire_alert, 1)
+ switch(bodytemperature)
+ if(360 to 400)
+ apply_damage(HEAT_DAMAGE_LEVEL_1, BURN)
+ fire_alert = max(fire_alert, 2)
+ if(400 to 1000)
+ apply_damage(HEAT_DAMAGE_LEVEL_2, BURN)
+ fire_alert = max(fire_alert, 2)
+ if(1000 to INFINITY)
+ apply_damage(HEAT_DAMAGE_LEVEL_3, BURN)
+ fire_alert = max(fire_alert, 2)
+ return
+#undef HEAT_DAMAGE_LEVEL_1
+#undef HEAT_DAMAGE_LEVEL_2
+#undef HEAT_DAMAGE_LEVEL_3
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm
index a009edc2..c056a863 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/life.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm
@@ -260,7 +260,7 @@
return fire_prot
*/
- proc/handle_chemicals_in_body()
+ handle_chemicals_in_body()
if(reagents) reagents.metabolize(src)
@@ -299,14 +299,14 @@
return //TODO: DEFERRED
- proc/handle_regular_status_updates()
+ handle_regular_status_updates()
updatehealth()
if(stat == DEAD) //DEAD. BROWN BREAD. SWIMMING WITH THE SPESS CARP
blinded = 1
silent = 0
else //ALIVE. LIGHTS ARE ON
- if(health < config.health_threshold_dead || brain_op_stage == 4.0)
+ if(health < config.health_threshold_dead || !has_brain())
death()
blinded = 1
stat = DEAD
@@ -363,7 +363,7 @@
return 1
- proc/handle_regular_hud_updates()
+ handle_regular_hud_updates()
if (stat == 2 || (XRAY in mutations))
sight |= SEE_TURFS
diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
index 5929bde4..dc8bbdea 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm
@@ -7,7 +7,7 @@
status_flags = CANPARALYSE
heal_rate = 5
plasma_rate = 20
- var/move_delay_add = 0
+ move_delay_add = 0
/mob/living/carbon/alien/humanoid/queen/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -24,7 +24,7 @@
real_name = src.name
verbs.Add(/mob/living/carbon/alien/humanoid/proc/corrosive_acid,/mob/living/carbon/alien/humanoid/proc/neurotoxin,/mob/living/carbon/alien/humanoid/proc/resin)
- verbs -= /mob/living/carbon/alien/verb/ventcrawl
+ verbs -= /mob/living/proc/ventcrawl
..()
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index 8d40ef9d..5fa7bdb4 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -9,4 +9,5 @@
adjustBruteLoss(-1)
adjustFireLoss(-1)
adjustToxLoss(-1)
- adjustOxyLoss(-1)
\ No newline at end of file
+ adjustOxyLoss(-1)
+
diff --git a/code/modules/mob/living/carbon/alien/larva/powers.dm b/code/modules/mob/living/carbon/alien/larva/powers.dm
index 5bcd64d4..87e9ba6b 100644
--- a/code/modules/mob/living/carbon/alien/larva/powers.dm
+++ b/code/modules/mob/living/carbon/alien/larva/powers.dm
@@ -1,4 +1,4 @@
-
+/*
/mob/living/carbon/alien/larva/verb/hide()
set name = "Hide"
set desc = "Allows to hide beneath tables or certain items. Toggled on or off."
@@ -19,8 +19,8 @@
for(var/mob/O in oviewers(src, null))
if ((O.client && !( O.blinded )))
O << text("[] slowly peaks up from the ground...", src)
-
-/mob/living/carbon/alien/larva/verb/evolve()
+*/
+/mob/living/carbon/alien/larva/evolve()
set name = "Evolve"
set desc = "Evolve into a fully grown Alien."
set category = "Alien"
diff --git a/code/modules/mob/living/carbon/alien/say.dm b/code/modules/mob/living/carbon/alien/say.dm
index e58e193a..777b59a5 100644
--- a/code/modules/mob/living/carbon/alien/say.dm
+++ b/code/modules/mob/living/carbon/alien/say.dm
@@ -15,8 +15,27 @@
if(copytext(message,1,2) == "*")
return emote(copytext(message,2))
- var/datum/language/speaking = null
+ var/datum/language/speaking = parse_language(message)
+ if(speaking)
+ message = copytext(message,3)
+ else
+ speaking = all_languages[language]
+ var/ending = copytext(message, length(message))
+ if (speaking)
+ // This is broadcast to all mobs with the language,
+ // irrespective of distance or anything else.
+ if(speaking.flags & HIVEMIND)
+ speaking.broadcast(src,trim(message))
+ return
+ //If we've gotten this far, keep going!
+ verb = speaking.get_spoken_verb(ending)
+ else
+ if(ending=="!")
+ verb=pick("roars","screeches","growls")
+ if(ending=="?")
+ verb="asks"
+/*
if(length(message) >= 2)
var/channel_prefix = copytext(message, 1 ,3)
if(languages.len)
@@ -28,8 +47,8 @@
if(speaking)
message = trim(copytext(message,3))
-
- message = capitalize(trim_left(message))
+*/
+ message = capitalize(trim(message))
if(!message || stat)
return
diff --git a/code/modules/mob/living/carbon/human/alien/alien_species.dm b/code/modules/mob/living/carbon/human/alien/alien_species.dm
index 79df1553..d72922d9 100644
--- a/code/modules/mob/living/carbon/human/alien/alien_species.dm
+++ b/code/modules/mob/living/carbon/human/alien/alien_species.dm
@@ -86,7 +86,7 @@
var/datum/gas_mixture/environment = T.return_air()
if(!environment) return
- if(environment.gas["phoron"] > 0 || locate(/obj/effect/alien/weeds) in T)
+ if(environment.gas["toxins"] > 0 || locate(/obj/effect/alien/weeds) in T)
if(H.health >= H.maxHealth - H.getCloneLoss())
var/datum/organ/internal/xenos/plasmavessel/P = H.internal_organs_by_name["plasma vessel"]
P.stored_plasma += weeds_plasma_rate
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 605d57d7..59d085f0 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -197,9 +197,19 @@
for(var/t in organs)
del(t)
+ var/alien_caste = pick("Hunter","Sentinel","Drone")
+ var/mob/living/carbon/alien/humanoid/new_xeno
+ switch(alien_caste)
+ if("Hunter")
+ new_xeno = new /mob/living/carbon/alien/humanoid/hunter(loc)
+ if("Sentinel")
+ new_xeno = new /mob/living/carbon/alien/humanoid/sentinel(loc)
+ if("Drone")
+ new_xeno = new /mob/living/carbon/alien/humanoid/drone(loc)
+/*
var/alien_caste = pick("Hunter","Sentinel","Drone")
var/mob/living/carbon/human/new_xeno = create_new_xenomorph(alien_caste,loc)
-
+*/
new_xeno.a_intent = "hurt"
new_xeno.key = key