This commit is contained in:
Fox McCloud
2018-07-09 05:45:01 -04:00
parent 6e9104650e
commit 9463807ac2
5 changed files with 42 additions and 18 deletions
@@ -92,13 +92,14 @@
//Mitocholide is hard enough to get, it's probably fair to make this all internal organs
for(var/obj/item/organ/internal/I in H.internal_organs)
I.receive_damage(-0.4)
I.heal_internal_damage(0.4)
..()
/datum/reagent/medicine/mitocholide/reaction_obj(obj/O, volume)
if(istype(O, /obj/item/organ))
var/obj/item/organ/Org = O
Org.rejuvenate()
if(!Org.is_robotic())
Org.rejuvenate()
/datum/reagent/medicine/cryoxadone
name = "Cryoxadone"
@@ -520,7 +521,7 @@
var/mob/living/carbon/human/H = M
var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes)
if(istype(E))
E.receive_damage(-1)
E.heal_internal_damage(1)
M.AdjustEyeBlurry(-1)
M.AdjustEarDamage(-1)
if(prob(50))
+7
View File
@@ -32,8 +32,15 @@
return
Stop()
/obj/item/organ/internal/heart/necrotize()
..()
Stop()
/obj/item/organ/internal/heart/attack_self(mob/user)
..()
if(status & ORGAN_DEAD)
to_chat(user, "<span class='warning'>You can't restart a dead heart.</span>")
return
if(!beating)
Restart()
spawn(80)
+13 -13
View File
@@ -73,13 +73,11 @@
blood_DNA = list()
blood_DNA[dna.unique_enzymes] = dna.b_type
/obj/item/organ/proc/necrotize(update_sprite=TRUE)
if(is_robotic())
return
/obj/item/organ/proc/necrotize(update_sprite = TRUE)
damage = max_damage
status |= ORGAN_DEAD
processing_objects -= src
if(dead_icon)
if(dead_icon && !is_robotic())
icon_state = dead_icon
if(owner && vital)
owner.death()
@@ -221,21 +219,23 @@
/obj/item/organ/proc/receive_damage(amount, silent = 0)
if(tough)
return
if(is_robotic())
damage = between(0, damage + (amount * 0.8), max_damage)
else
damage = between(0, damage + amount, max_damage)
damage = between(0, damage + amount, max_damage)
//only show this if the organ is not robotic
if(owner && parent_organ && amount > 0)
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
if(parent && !silent)
owner.custom_pain("Something inside your [parent.name] hurts a lot.")
//only show this if the organ is not robotic
if(owner && parent_organ && amount > 0)
var/obj/item/organ/external/parent = owner.get_organ(parent_organ)
if(parent && !silent)
owner.custom_pain("Something inside your [parent.name] hurts a lot.")
//check if we've hit max_damage
if(damage >= max_damage)
necrotize()
/obj/item/organ/proc/heal_internal_damage(amount, robo_repair = FALSE)
if(is_robotic() && !robo_repair)
return
damage = max(damage - amount, 0)
/obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc
status &= ~ORGAN_BROKEN
status &= ~ORGAN_SPLINTED
+11 -2
View File
@@ -208,7 +208,12 @@
for(var/obj/item/organ/internal/I in affected.internal_organs)
if(I && I.damage)
if(I.is_robotic() && istype(tool, /obj/item/stack/nanopaste))
if(!I.is_robotic() && !istype (tool, /obj/item/stack/nanopaste))
if(!(I.sterile))
spread_germs_to_organ(I, user, tool)
user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \
"You start treating damage to [target]'s [I.name] with [tool_name]." )
else if(I.is_robotic() && istype(tool, /obj/item/stack/nanopaste))
user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \
"You start treating damage to [target]'s [I.name] with [tool_name]." )
@@ -241,7 +246,11 @@
if(I)
I.surgeryize()
if(I && I.damage)
if(I.is_robotic() && istype(tool, /obj/item/stack/nanopaste))
if(!I.is_robotic() && !istype (tool, /obj/item/stack/nanopaste))
user.visible_message("<span class='notice'> [user] treats damage to [target]'s [I.name] with [tool_name].</span>", \
"<span class='notice'> You treat damage to [target]'s [I.name] with [tool_name].</span>" )
I.damage = 0
else if(I.is_robotic() && istype (tool, /obj/item/stack/nanopaste))
user.visible_message("<span class='notice'> [user] treats damage to [target]'s [I.name] with [tool_name].</span>", \
"<span class='notice'> You treat damage to [target]'s [I.name] with [tool_name].</span>" )
I.damage = 0