Xenos are Initialize (#18333)

* Xenos are Initialize

* Remove the confusing debug leftover
This commit is contained in:
moxian
2022-07-24 08:56:38 +00:00
committed by GitHub
parent 2fe69c6d53
commit 989a2c87d2
7 changed files with 77 additions and 41 deletions
+16 -8
View File
@@ -20,20 +20,28 @@
var/heat_protection = 0.5
var/leaping = FALSE
ventcrawler = 2
var/list/alien_organs = list()
var/death_message = "lets out a waning guttural screech, green blood bubbling from its maw..."
var/death_sound = 'sound/voice/hiss6.ogg'
/mob/living/carbon/alien/New()
..()
/mob/living/carbon/alien/Initialize(mapload)
. = ..()
create_reagents(1000)
verbs += /mob/living/verb/mob_sleep
verbs += /mob/living/verb/rest
alien_organs += new /obj/item/organ/internal/brain/xeno
alien_organs += new /obj/item/organ/internal/xenos/hivenode
alien_organs += new /obj/item/organ/internal/ears
for(var/obj/item/organ/internal/I in alien_organs)
I.insert(src)
for(var/organ_path in get_caste_organs())
var/obj/item/organ/internal/organ = new organ_path()
organ.insert(src)
/// returns the list of type paths of the organs that we need to insert into
/// this particular xeno upon its creation
/mob/living/carbon/alien/proc/get_caste_organs()
RETURN_TYPE(/list/obj/item/organ/internal)
return list(
/obj/item/organ/internal/brain/xeno,
/obj/item/organ/internal/xenos/hivenode,
/obj/item/organ/internal/ears
)
/mob/living/carbon/alien/get_default_language()
if(default_language)
@@ -5,14 +5,20 @@
health = 100
icon_state = "aliend_s"
/mob/living/carbon/alien/humanoid/drone/New()
/mob/living/carbon/alien/humanoid/drone/Initialize(mapload)
. = ..()
if(src.name == "alien drone")
src.name = text("alien drone ([rand(1, 1000)])")
src.name = "alien drone ([rand(1, 1000)])"
src.real_name = src.name
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/drone
alien_organs += new /obj/item/organ/internal/xenos/acidgland
alien_organs += new /obj/item/organ/internal/xenos/resinspinner
..()
/mob/living/carbon/alien/humanoid/drone/get_caste_organs()
. = ..()
. += list(
/obj/item/organ/internal/xenos/plasmavessel/drone,
/obj/item/organ/internal/xenos/acidgland,
/obj/item/organ/internal/xenos/resinspinner,
)
//Drones use the same base as generic humanoids.
//Drone verbs
@@ -5,12 +5,15 @@
health = 125
icon_state = "alienh_s"
/mob/living/carbon/alien/humanoid/hunter/New()
/mob/living/carbon/alien/humanoid/hunter/Initialize(mapload)
. = ..()
if(name == "alien hunter")
name = text("alien hunter ([rand(1, 1000)])")
name = "alien hunter ([rand(1, 1000)])"
real_name = name
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/hunter
..()
/mob/living/carbon/alien/humanoid/hunter/get_caste_organs()
. = ..()
. += /obj/item/organ/internal/xenos/plasmavessel/hunter
/mob/living/carbon/alien/humanoid/hunter/movement_delay()
. = -1 //hunters are sanic
@@ -32,14 +32,19 @@
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/sentinel/New()
/mob/living/carbon/alien/humanoid/sentinel/Initialize(mapload)
. = ..()
if(name == "alien sentinel")
name = text("alien sentinel ([rand(1, 1000)])")
name = "alien sentinel ([rand(1, 1000)])"
real_name = name
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel
alien_organs += new /obj/item/organ/internal/xenos/acidgland
alien_organs += new /obj/item/organ/internal/xenos/neurotoxin
..()
/mob/living/carbon/alien/humanoid/sentinel/get_caste_organs()
. = ..()
. += list(
/obj/item/organ/internal/xenos/plasmavessel,
/obj/item/organ/internal/xenos/acidgland,
/obj/item/organ/internal/xenos/neurotoxin,
)
/*
/mob/living/carbon/alien/humanoid/sentinel/verb/evolve() // -- TLE
@@ -30,7 +30,8 @@
for(var/image/I in overlays_standing)
overlays += I
/mob/living/carbon/alien/humanoid/empress/New()
/mob/living/carbon/alien/humanoid/empress/Initialize(mapload)
. = ..()
//there should only be one queen
for(var/mob/living/carbon/alien/humanoid/empress/E in GLOB.alive_mob_list)
if(E == src)
@@ -42,12 +43,16 @@
break
real_name = name
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen
alien_organs += new /obj/item/organ/internal/xenos/acidgland
alien_organs += new /obj/item/organ/internal/xenos/eggsac
alien_organs += new /obj/item/organ/internal/xenos/resinspinner
alien_organs += new /obj/item/organ/internal/xenos/neurotoxin
..()
/mob/living/carbon/alien/humanoid/empress/get_caste_organs()
. = ..()
. += list(
/obj/item/organ/internal/xenos/plasmavessel/queen,
/obj/item/organ/internal/xenos/acidgland,
/obj/item/organ/internal/xenos/eggsac,
/obj/item/organ/internal/xenos/resinspinner,
/obj/item/organ/internal/xenos/neurotoxin,
)
/mob/living/carbon/alien/humanoid/empress/verb/lay_egg()
set name = "Lay Egg (250)"
@@ -10,7 +10,8 @@
ventcrawler = 0
pressure_resistance = 200 //Because big, stompy xenos should not be blown around like paper.
/mob/living/carbon/alien/humanoid/queen/New()
/mob/living/carbon/alien/humanoid/queen/Initialize(mapload)
. = ..()
//there should only be one queen
for(var/mob/living/carbon/alien/humanoid/queen/Q in GLOB.alive_mob_list)
if(Q == src)
@@ -22,12 +23,16 @@
break
real_name = src.name
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/queen
alien_organs += new /obj/item/organ/internal/xenos/acidgland
alien_organs += new /obj/item/organ/internal/xenos/eggsac
alien_organs += new /obj/item/organ/internal/xenos/resinspinner
alien_organs += new /obj/item/organ/internal/xenos/neurotoxin
..()
/mob/living/carbon/alien/humanoid/queen/get_caste_organs()
. = ..()
. += list(
/obj/item/organ/internal/xenos/plasmavessel/queen,
/obj/item/organ/internal/xenos/acidgland,
/obj/item/organ/internal/xenos/eggsac,
/obj/item/organ/internal/xenos/resinspinner,
/obj/item/organ/internal/xenos/neurotoxin,
)
/mob/living/carbon/alien/humanoid/queen/movement_delay()
. = ..()
@@ -16,15 +16,19 @@
death_sound = null
//This is fine right now, if we're adding organ specific damage this needs to be updated
/mob/living/carbon/alien/larva/New()
/mob/living/carbon/alien/larva/Initialize(mapload)
. = ..()
if(name == "alien larva")
name = "alien larva ([rand(1, 1000)])"
real_name = name
regenerate_icons()
add_language("Xenomorph")
add_language("Hivemind")
alien_organs += new /obj/item/organ/internal/xenos/plasmavessel/larva
..()
/mob/living/carbon/alien/larva/get_caste_organs()
. = ..()
. += /obj/item/organ/internal/xenos/plasmavessel/larva
//This needs to be fixed
/mob/living/carbon/alien/larva/Stat()