Adds regenerate_organs proc and adds it to relevant regeneration code (#22740)

* Adds regenerate_organs proc to carbon and adds it to relevant regeneration code

I simply took the bit from the admin heal and made it into a proc and
added it to the necessary regeneration-related bits of code.

* Adds regenerate organs back to fully heal

For some reason this didn't get included in the previous commit.

* moves regenerate_organs to organ_internal

As suggested. It fits better here, anyways.
This commit is contained in:
TehZombehz
2017-01-07 19:38:29 +13:00
committed by oranges
parent a0c6052e53
commit 8cc9e6de50
8 changed files with 31 additions and 24 deletions
@@ -26,6 +26,7 @@
and tearing!</span>")
C.emote("scream")
C.regenerate_limbs(1)
C.regenerate_organs()
if(ishuman(user))
var/mob/living/carbon/human/H = user
H.restore_blood()
@@ -23,6 +23,7 @@
and tearing!</span>")
user.emote("scream")
user.regenerate_limbs(0, list("head"))
user.regenerate_organs()
user << "<span class='notice'>We have revived ourselves.</span>"
user.mind.changeling.purchasedpowers -= src
feedback_add_details("changeling_powers","CR")
+1
View File
@@ -688,6 +688,7 @@
D.cure(0)
if(admin_revive)
regenerate_limbs()
regenerate_organs()
handcuffed = initial(handcuffed)
for(var/obj/item/weapon/restraints/R in contents) //actually remove cuffs from inventory
qdel(R)
+1 -23
View File
@@ -823,31 +823,9 @@
hud_used.healthdoll.icon_state = "healthdoll_DEAD"
/mob/living/carbon/human/fully_heal(admin_revive = 0)
if(admin_revive)
regenerate_limbs()
if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs"))
var/obj/item/organ/lungs/L = new()
L.Insert(src)
if(!(NOBLOOD in dna.species.species_traits) && !getorganslot("heart"))
var/obj/item/organ/heart/H = new()
H.Insert(src)
if(!getorganslot("tongue"))
var/obj/item/organ/tongue/T
for(var/tongue_type in dna.species.mutant_organs)
if(ispath(tongue_type, /obj/item/organ/tongue))
T = new tongue_type()
T.Insert(src)
// if they have no mutant tongues, give them a regular one
if(!T)
T = new()
T.Insert(src)
regenerate_organs()
remove_all_embedded_objects()
drunkenness = 0
for(var/datum/mutation/human/HM in dna.mutations)
@@ -91,6 +91,7 @@
if(iscarbon(user))
var/mob/living/carbon/C = user
C.regenerate_limbs()
C.regenerate_organs()
user << "<span class='notice'>You feel great!</span>"
charges--
..()
@@ -79,6 +79,7 @@
if(iscarbon(target))
var/mob/living/carbon/C = target
C.regenerate_limbs()
C.regenerate_organs()
if(target.revive(full_heal = 1))
target.grab_ghost(force = TRUE) // even suicides
target << "<span class='notice'>You rise with a start, \
@@ -311,7 +311,6 @@
for(var/Z in limb_list)
. += regenerate_limb(Z, noheal)
/mob/living/proc/regenerate_limb(limb_zone, noheal)
return
@@ -693,3 +693,28 @@
if(inflamed)
S.reagents.add_reagent("????", 5)
return S
/mob/living/proc/regenerate_organs()
return 0
/mob/living/carbon/regenerate_organs()
if(!(NOBREATH in dna.species.species_traits) && !getorganslot("lungs"))
var/obj/item/organ/lungs/L = new()
L.Insert(src)
if(!(NOBLOOD in dna.species.species_traits) && !getorganslot("heart"))
var/obj/item/organ/heart/H = new()
H.Insert(src)
if(!getorganslot("tongue"))
var/obj/item/organ/tongue/T
for(var/tongue_type in dna.species.mutant_organs)
if(ispath(tongue_type, /obj/item/organ/tongue))
T = new tongue_type()
T.Insert(src)
// if they have no mutant tongues, give them a regular one
if(!T)
T = new()
T.Insert(src)