mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
[MIRROR] organs NEW to INIT (#10103)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
ad1eb24b96
commit
9fbaf7932d
@@ -78,16 +78,19 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
tmp_owner.internal_organs_by_name[organ_tag] = new replace_path(tmp_owner, 1)
|
||||
tmp_owner = null
|
||||
|
||||
/obj/item/organ/internal/brain/Initialize() // CHOMPEdit
|
||||
. = ..() // CHOMPEdit
|
||||
/obj/item/organ/internal/brain/Initialize(mapload)
|
||||
..()
|
||||
health = CONFIG_GET(number/default_brain_health)
|
||||
defib_timer = (CONFIG_GET(number/defib_timer) MINUTES) / 2 // CHOMPEdit
|
||||
spawn(5)
|
||||
if(brainmob)
|
||||
butcherable = FALSE
|
||||
defib_timer = (CONFIG_GET(number/defib_timer) MINUTES) / 2 // CHOMPEdit // Time vars measure things in ticks. Life tick happens every ~2 seconds, therefore dividing by 20
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
if(brainmob.client)
|
||||
brainmob.client.screen.len = null //clear the hud
|
||||
/obj/item/organ/internal/brain/LateInitialize()
|
||||
. = ..()
|
||||
if(brainmob)
|
||||
butcherable = FALSE
|
||||
|
||||
if(brainmob.client)
|
||||
brainmob.client.screen.len = null //clear the hud
|
||||
|
||||
/obj/item/organ/internal/brain/Destroy()
|
||||
if(brainmob && brainmob.dna)
|
||||
@@ -199,14 +202,16 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
/obj/item/organ/internal/brain/slime/is_open_container()
|
||||
return 1
|
||||
|
||||
/obj/item/organ/internal/brain/slime/New()
|
||||
..()
|
||||
/obj/item/organ/internal/brain/slime/Initialize(mapload)
|
||||
. = ..()
|
||||
create_reagents(50)
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15) //Match the core to the Promethean's starting color.
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = rgb(min(H.r_skin + 40, 255), min(H.g_skin + 40, 255), min(H.b_skin + 40, 255))
|
||||
|
||||
/obj/item/organ/internal/brain/slime/LateInitialize()
|
||||
. = ..()
|
||||
//Match the core to the Promethean's starting color.
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = rgb(min(H.r_skin + 40, 255), min(H.g_skin + 40, 255), min(H.b_skin + 40, 255))
|
||||
|
||||
/obj/item/organ/internal/brain/slime/removed(var/mob/living/user)
|
||||
if(istype(owner))
|
||||
@@ -324,10 +329,8 @@ GLOBAL_LIST_BOILERPLATE(all_brain_organs, /obj/item/organ/internal/brain)
|
||||
desc = "A piece of juicy meat found in a person's head. This one is strange."
|
||||
icon_state = "brain_grey"
|
||||
|
||||
/obj/item/organ/internal/brain/grey/colormatch/New()
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
/obj/item/organ/internal/brain/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -18,20 +18,22 @@
|
||||
/obj/item/organ/internal/eyes/robot
|
||||
name = "optical sensor"
|
||||
|
||||
/obj/item/organ/internal/eyes/robot/New()
|
||||
..()
|
||||
/obj/item/organ/internal/eyes/robot/Initialize(mapload, internal)
|
||||
. = ..()
|
||||
robotize()
|
||||
|
||||
/obj/item/organ/internal/eyes/grey
|
||||
icon_state = "eyes_grey"
|
||||
|
||||
/obj/item/organ/internal/eyes/grey/colormatch/New()
|
||||
/obj/item/organ/internal/eyes/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/eyes/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/eyes/proc/change_eye_color()
|
||||
set name = "Change Eye Color"
|
||||
|
||||
@@ -28,13 +28,15 @@
|
||||
icon_state = "heart_grey-on"
|
||||
dead_icon = "heart_grey-off"
|
||||
|
||||
/obj/item/organ/internal/heart/grey/colormatch/New()
|
||||
/obj/item/organ/internal/heart/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/heart/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/heart/machine
|
||||
name = "hydraulic hub"
|
||||
|
||||
@@ -44,10 +44,12 @@
|
||||
/obj/item/organ/internal/kidneys/grey
|
||||
icon_state = "kidneys_grey"
|
||||
|
||||
/obj/item/organ/internal/kidneys/grey/colormatch/New()
|
||||
/obj/item/organ/internal/kidneys/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/kidneys/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -59,10 +59,12 @@
|
||||
/obj/item/organ/internal/liver/grey
|
||||
icon_state = "liver_grey"
|
||||
|
||||
/obj/item/organ/internal/liver/grey/colormatch/New()
|
||||
/obj/item/organ/internal/liver/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/liver/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -61,10 +61,12 @@
|
||||
/obj/item/organ/internal/lungs/grey
|
||||
icon_state = "lungs_grey"
|
||||
|
||||
/obj/item/organ/internal/lungs/grey/colormatch/New()
|
||||
/obj/item/organ/internal/lungs/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(owner && ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/lungs/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(owner && ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
will_assist_languages = list(LANGUAGE_GALCOM)
|
||||
var/mute = FALSE
|
||||
|
||||
/obj/item/organ/internal/voicebox/New()
|
||||
..()
|
||||
/obj/item/organ/internal/voicebox/Initialize(mapload, internal)
|
||||
. = ..()
|
||||
amend_assist_langs()
|
||||
|
||||
/obj/item/organ/internal/voicebox/proc/amend_assist_langs() // Adds the list of language datums assisted by the voicebox to the list used in speaking
|
||||
@@ -30,14 +30,14 @@
|
||||
|
||||
/obj/item/organ/internal/voicebox/assist // In the off chance we get a species that doesn't speak GalCom by default
|
||||
|
||||
/obj/item/organ/internal/voicebox/assist/New()
|
||||
..()
|
||||
/obj/item/organ/internal/voicebox/assist/Initialize(mapload, internal)
|
||||
. = ..()
|
||||
mechassist()
|
||||
|
||||
/obj/item/organ/internal/voicebox/robot
|
||||
name = "vocal synthesizer"
|
||||
will_assist_languages = list(LANGUAGE_GALCOM, LANGUAGE_EAL) // Synthetics spawn with this by default
|
||||
|
||||
/obj/item/organ/internal/voicebox/robot/New()
|
||||
..()
|
||||
/obj/item/organ/internal/voicebox/robot/Initialize(mapload, internal)
|
||||
. = ..()
|
||||
robotize()
|
||||
|
||||
@@ -62,37 +62,37 @@ var/list/organ_cache = list()
|
||||
/obj/item/organ/proc/update_health()
|
||||
return
|
||||
|
||||
/obj/item/organ/New(var/mob/living/holder, var/internal)
|
||||
..(holder)
|
||||
/obj/item/organ/Initialize(mapload, var/internal)
|
||||
. = ..()
|
||||
create_reagents(5)
|
||||
|
||||
if(isliving(holder))
|
||||
src.owner = holder
|
||||
src.w_class = max(src.w_class + mob_size_difference(holder.mob_size, MOB_MEDIUM), 1) //smaller mobs have smaller organs.
|
||||
if(isliving(loc))
|
||||
src.owner = loc
|
||||
src.w_class = max(src.w_class + mob_size_difference(owner.mob_size, MOB_MEDIUM), 1) //smaller mobs have smaller organs.
|
||||
if(internal)
|
||||
if(!LAZYLEN(holder.internal_organs))
|
||||
holder.internal_organs = list()
|
||||
if(!LAZYLEN(holder.internal_organs_by_name))
|
||||
holder.internal_organs_by_name = list()
|
||||
if(!LAZYLEN(owner.internal_organs))
|
||||
owner.internal_organs = list()
|
||||
if(!LAZYLEN(owner.internal_organs_by_name))
|
||||
owner.internal_organs_by_name = list()
|
||||
|
||||
holder.internal_organs |= src
|
||||
holder.internal_organs_by_name[organ_tag] = src
|
||||
owner.internal_organs |= src
|
||||
owner.internal_organs_by_name[organ_tag] = src
|
||||
|
||||
else
|
||||
if(!LAZYLEN(holder.organs))
|
||||
holder.organs = list()
|
||||
if(!LAZYLEN(holder.organs_by_name))
|
||||
holder.organs_by_name = list()
|
||||
if(!LAZYLEN(owner.organs))
|
||||
owner.organs = list()
|
||||
if(!LAZYLEN(owner.organs_by_name))
|
||||
owner.organs_by_name = list()
|
||||
|
||||
holder.organs |= src
|
||||
holder.organs_by_name[organ_tag] = src
|
||||
owner.organs |= src
|
||||
owner.organs_by_name[organ_tag] = src
|
||||
|
||||
if(!max_damage)
|
||||
max_damage = min_broken_damage * 2
|
||||
if(iscarbon(holder))
|
||||
var/mob/living/carbon/C = holder
|
||||
if(iscarbon(owner))
|
||||
var/mob/living/carbon/C = owner
|
||||
species = GLOB.all_species[SPECIES_HUMAN]
|
||||
if(holder.dna)
|
||||
if(owner.dna)
|
||||
qdel_swap(dna, C.dna.Clone())
|
||||
species = C.species
|
||||
else
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
vital = 1
|
||||
var/defib_timer = 1 // This sits in the brain organ slot, but is not a brain.
|
||||
|
||||
/obj/item/organ/internal/cell/New()
|
||||
/obj/item/organ/internal/cell/Initialize(mapload, internal)
|
||||
robotize()
|
||||
..()
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/cell/replaced()
|
||||
..()
|
||||
@@ -46,16 +46,19 @@
|
||||
stored_mmi = null
|
||||
return ..()
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/New(var/mob/living/carbon/human/new_owner, var/internal, var/obj/item/mmi/installed)
|
||||
..(new_owner, internal)
|
||||
var/mob/living/carbon/human/dummy/mannequin/M = new_owner
|
||||
/obj/item/organ/internal/mmi_holder/Initialize(mapload, var/internal, var/obj/item/mmi/installed)
|
||||
..(mapload, internal)
|
||||
var/mob/living/carbon/human/dummy/mannequin/M = loc
|
||||
if(istype(M))
|
||||
return
|
||||
if(installed)
|
||||
stored_mmi = installed
|
||||
else
|
||||
stored_mmi = new brain_type(src)
|
||||
sleep(-1)
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/mmi_holder/LateInitialize()
|
||||
. = ..()
|
||||
update_from_mmi()
|
||||
|
||||
// This sits in the brain organ slot, but is not a brain. Posibrains and dronecores aren't brains either.
|
||||
|
||||
@@ -14,13 +14,15 @@
|
||||
/obj/item/organ/internal/xenos/eggsac/grey
|
||||
icon_state = "sac_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/eggsac/grey/colormatch/New()
|
||||
/obj/item/organ/internal/xenos/eggsac/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/xenos/eggsac/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel
|
||||
name = "plasma vessel"
|
||||
@@ -55,13 +57,15 @@
|
||||
icon_state = "plasma_grey"
|
||||
stored_plasma = 200
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/grey/colormatch/New()
|
||||
/obj/item/organ/internal/xenos/plasmavessel/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/plasmavessel/queen
|
||||
name = "bloated plasma vessel"
|
||||
@@ -92,13 +96,15 @@
|
||||
/obj/item/organ/internal/xenos/acidgland/grey
|
||||
icon_state = "acidgland_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/acidgland/grey/colormatch/New()
|
||||
/obj/item/organ/internal/xenos/acidgland/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/xenos/acidgland/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode
|
||||
name = "hive node"
|
||||
@@ -109,13 +115,15 @@
|
||||
/obj/item/organ/internal/xenos/hivenode/grey
|
||||
icon_state = "xenode_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode/grey/colormatch/New()
|
||||
/obj/item/organ/internal/xenos/hivenode/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/xenos/hivenode/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner
|
||||
name = "resin spinner"
|
||||
@@ -131,13 +139,15 @@
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey
|
||||
icon_state = "xenode_grey"
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey/colormatch/New()
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey/colormatch/Initialize(mapload, internal)
|
||||
..()
|
||||
var/mob/living/carbon/human/H = null
|
||||
spawn(15)
|
||||
if(ishuman(owner))
|
||||
H = owner
|
||||
color = H.species.blood_color
|
||||
return INITIALIZE_HINT_LATELOAD
|
||||
|
||||
/obj/item/organ/internal/xenos/resinspinner/grey/colormatch/LateInitialize()
|
||||
. = ..()
|
||||
if(ishuman(loc))
|
||||
var/mob/living/carbon/human/H = loc
|
||||
color = H.species.blood_color
|
||||
|
||||
|
||||
// XENOMORPH EXTERNAL ORGANS
|
||||
|
||||
Reference in New Issue
Block a user