[MIRROR] organs NEW to INIT (#10103)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-02-07 20:43:04 -07:00
committed by GitHub
parent ad1eb24b96
commit 9fbaf7932d
13 changed files with 153 additions and 127 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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.

View File

@@ -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