mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Numerous runtime/oversight fixes.
This commit is contained in:
@@ -926,23 +926,12 @@
|
|||||||
germ_level += n
|
germ_level += n
|
||||||
|
|
||||||
/mob/living/carbon/human/revive()
|
/mob/living/carbon/human/revive()
|
||||||
for (var/obj/item/organ/external/O in organs)
|
|
||||||
O.status &= ~ORGAN_BROKEN
|
|
||||||
O.status &= ~ORGAN_BLEEDING
|
|
||||||
O.status &= ~ORGAN_SPLINTED
|
|
||||||
O.status &= ~ORGAN_CUT_AWAY
|
|
||||||
O.status &= ~ORGAN_ATTACHABLE
|
|
||||||
O.wounds.Cut()
|
|
||||||
O.heal_damage(1000,1000,1,1)
|
|
||||||
|
|
||||||
var/obj/item/organ/external/head/h = organs_by_name["head"]
|
|
||||||
h.disfigured = 0
|
|
||||||
|
|
||||||
if(species && !(species.flags & NO_BLOOD))
|
if(species && !(species.flags & NO_BLOOD))
|
||||||
vessel.add_reagent("blood",560-vessel.total_volume)
|
vessel.add_reagent("blood",560-vessel.total_volume)
|
||||||
fixblood()
|
fixblood()
|
||||||
|
|
||||||
// Fix up any missing organs.
|
// Fix up all organs.
|
||||||
// This will ignore any prosthetics in the prefs currently.
|
// This will ignore any prosthetics in the prefs currently.
|
||||||
species.create_organs(src)
|
species.create_organs(src)
|
||||||
|
|
||||||
@@ -954,11 +943,9 @@
|
|||||||
H.brainmob.mind.transfer_to(src)
|
H.brainmob.mind.transfer_to(src)
|
||||||
del(H)
|
del(H)
|
||||||
|
|
||||||
for(var/obj/item/organ/I in internal_organs)
|
|
||||||
I.damage = 0
|
|
||||||
|
|
||||||
for (var/datum/disease/virus in viruses)
|
for (var/datum/disease/virus in viruses)
|
||||||
virus.cure()
|
virus.cure()
|
||||||
|
|
||||||
for (var/ID in virus2)
|
for (var/ID in virus2)
|
||||||
var/datum/disease2/disease/V = virus2[ID]
|
var/datum/disease2/disease/V = virus2[ID]
|
||||||
V.cure(src)
|
V.cure(src)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ var/list/organ_cache = list()
|
|||||||
/obj/item/organ
|
/obj/item/organ
|
||||||
name = "organ"
|
name = "organ"
|
||||||
icon = 'icons/obj/surgery.dmi'
|
icon = 'icons/obj/surgery.dmi'
|
||||||
|
var/dead_icon
|
||||||
var/mob/living/carbon/human/owner = null
|
var/mob/living/carbon/human/owner = null
|
||||||
var/status = 0
|
var/status = 0
|
||||||
var/vital //Lose a vital limb, die immediately.
|
var/vital //Lose a vital limb, die immediately.
|
||||||
@@ -50,11 +50,13 @@ var/list/organ_cache = list()
|
|||||||
holder.internal_organs |= src
|
holder.internal_organs |= src
|
||||||
|
|
||||||
/obj/item/organ/proc/die()
|
/obj/item/organ/proc/die()
|
||||||
name = "dead [initial(name)]"
|
if(status & ORGAN_ROBOT)
|
||||||
health = 0
|
return
|
||||||
|
name = "dead [name]"
|
||||||
|
damage = max_damage
|
||||||
processing_objects -= src
|
processing_objects -= src
|
||||||
//TODO: Grey out the icon state.
|
if(dead_icon)
|
||||||
//TODO: Inject an organ with peridaxon to make it alive again.
|
icon_state = dead_icon
|
||||||
|
|
||||||
/obj/item/organ/process()
|
/obj/item/organ/process()
|
||||||
|
|
||||||
@@ -75,10 +77,10 @@ var/list/organ_cache = list()
|
|||||||
if(B && prob(40))
|
if(B && prob(40))
|
||||||
reagents.remove_reagent("blood",0.1)
|
reagents.remove_reagent("blood",0.1)
|
||||||
blood_splatter(src,B,1)
|
blood_splatter(src,B,1)
|
||||||
|
damage += rand(1,3)
|
||||||
health -= rand(1,3)
|
if(damage >= max_damage)
|
||||||
if(health <= 0)
|
|
||||||
die()
|
die()
|
||||||
|
|
||||||
else if(owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
|
else if(owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
|
||||||
//** Handle antibiotics and curing infections
|
//** Handle antibiotics and curing infections
|
||||||
handle_antibiotics()
|
handle_antibiotics()
|
||||||
@@ -179,9 +181,10 @@ var/list/organ_cache = list()
|
|||||||
else
|
else
|
||||||
src.damage += amount
|
src.damage += amount
|
||||||
|
|
||||||
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
|
if(owner && parent_organ)
|
||||||
if (!silent)
|
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
|
||||||
owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1)
|
if(parent && !silent)
|
||||||
|
owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1)
|
||||||
|
|
||||||
/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
|
/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
|
||||||
robotic = 2
|
robotic = 2
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ var/global/list/limb_icon_cache = list()
|
|||||||
/obj/item/organ/external/head/sync_colour_to_human(var/mob/living/carbon/human/human)
|
/obj/item/organ/external/head/sync_colour_to_human(var/mob/living/carbon/human/human)
|
||||||
..()
|
..()
|
||||||
var/obj/item/organ/eyes/eyes = owner.internal_organs_by_name["eyes"]
|
var/obj/item/organ/eyes/eyes = owner.internal_organs_by_name["eyes"]
|
||||||
eyes.update_colour()
|
if(eyes) eyes.update_colour()
|
||||||
|
|
||||||
/obj/item/organ/external/head/removed()
|
/obj/item/organ/external/head/removed()
|
||||||
get_icon()
|
get_icon()
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
icon_state = "heart-on"
|
icon_state = "heart-on"
|
||||||
organ_tag = "heart"
|
organ_tag = "heart"
|
||||||
parent_organ = "chest"
|
parent_organ = "chest"
|
||||||
|
dead_icon = "heart-off"
|
||||||
|
|
||||||
/obj/item/organ/lungs
|
/obj/item/organ/lungs
|
||||||
name = "lungs"
|
name = "lungs"
|
||||||
|
|||||||
@@ -228,7 +228,7 @@
|
|||||||
var/list/attached_organs = list()
|
var/list/attached_organs = list()
|
||||||
for(var/organ in target.internal_organs_by_name)
|
for(var/organ in target.internal_organs_by_name)
|
||||||
var/obj/item/organ/I = target.internal_organs_by_name[organ]
|
var/obj/item/organ/I = target.internal_organs_by_name[organ]
|
||||||
if(!I.status && I.parent_organ == target_zone)
|
if(I && !I.status && I.parent_organ == target_zone)
|
||||||
attached_organs |= organ
|
attached_organs |= organ
|
||||||
|
|
||||||
var/organ_to_remove = input(user, "Which organ do you want to prepare for removal?") as null|anything in attached_organs
|
var/organ_to_remove = input(user, "Which organ do you want to prepare for removal?") as null|anything in attached_organs
|
||||||
@@ -347,7 +347,7 @@
|
|||||||
return 0
|
return 0
|
||||||
else if(target.species.has_organ[O.organ_tag])
|
else if(target.species.has_organ[O.organ_tag])
|
||||||
|
|
||||||
if(O.is_damaged())
|
if(O.damage > (O.max_damage * 0.75))
|
||||||
user << "\red \The [O.organ_tag] [o_is] in no state to be transplanted."
|
user << "\red \The [O.organ_tag] [o_is] in no state to be transplanted."
|
||||||
return 2
|
return 2
|
||||||
|
|
||||||
@@ -410,7 +410,7 @@
|
|||||||
var/list/removable_organs = list()
|
var/list/removable_organs = list()
|
||||||
for(var/organ in target.internal_organs_by_name)
|
for(var/organ in target.internal_organs_by_name)
|
||||||
var/obj/item/organ/I = target.internal_organs_by_name[organ]
|
var/obj/item/organ/I = target.internal_organs_by_name[organ]
|
||||||
if(I.status & ORGAN_CUT_AWAY && I.parent_organ == target_zone)
|
if(I && I.status & ORGAN_CUT_AWAY && I.parent_organ == target_zone)
|
||||||
removable_organs |= organ
|
removable_organs |= organ
|
||||||
|
|
||||||
var/organ_to_replace = input(user, "Which organ do you want to reattach?") as null|anything in removable_organs
|
var/organ_to_replace = input(user, "Which organ do you want to reattach?") as null|anything in removable_organs
|
||||||
|
|||||||
Reference in New Issue
Block a user