mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
[Bugfix] Internal organs rot outside body (#14213)
* added processing of internal organs * stop processing after insert organ * refactor
This commit is contained in:
@@ -172,12 +172,6 @@
|
||||
if(parent.germ_level < germ_level && ( parent.germ_level < INFECTION_LEVEL_ONE * 2 || prob(30)))
|
||||
parent.germ_level++
|
||||
|
||||
/obj/item/organ/internal/handle_germs()
|
||||
..()
|
||||
if(germ_level >= INFECTION_LEVEL_TWO)
|
||||
if(prob(3)) //about once every 30 seconds
|
||||
receive_damage(1, silent = prob(30))
|
||||
|
||||
/obj/item/organ/proc/rejuvenate()
|
||||
damage = 0
|
||||
germ_level = 0
|
||||
|
||||
@@ -808,3 +808,23 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
var/obj/item/organ/external/L = X
|
||||
for(var/obj/item/I in L.embedded_objects)
|
||||
return 1
|
||||
|
||||
/obj/item/organ/external/emp_act(severity)
|
||||
if(!is_robotic() || emp_proof)
|
||||
return
|
||||
if(tough)
|
||||
switch(severity)
|
||||
if(1)
|
||||
receive_damage(0, 5.5)
|
||||
if(owner)
|
||||
owner.Stun(10)
|
||||
if(2)
|
||||
receive_damage(0, 2.8)
|
||||
if(owner)
|
||||
owner.Stun(5)
|
||||
else
|
||||
switch(severity)
|
||||
if(1)
|
||||
receive_damage(0, 20)
|
||||
if(2)
|
||||
receive_damage(0, 7)
|
||||
|
||||
@@ -36,13 +36,13 @@
|
||||
log_runtime(EXCEPTION("[src] attempted to insert into a [parent_organ], but [parent_organ] wasn't an organ! [atom_loc_line(M)]"), src)
|
||||
else
|
||||
parent.internal_organs |= src
|
||||
//M.internal_bodyparts_by_name[src] |= src(H,1)
|
||||
loc = null
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.Grant(M)
|
||||
if(vital)
|
||||
M.update_stat("Vital organ inserted")
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
// Removes the given organ from its owner.
|
||||
// Returns the removed object, which is usually just itself
|
||||
@@ -71,6 +71,7 @@
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
A.Remove(M)
|
||||
START_PROCESSING(SSobj, src)
|
||||
return src
|
||||
|
||||
/obj/item/organ/internal/emp_act(severity)
|
||||
@@ -344,3 +345,18 @@
|
||||
head_organ.f_style = "Very Long Beard"
|
||||
head_organ.facial_colour = "#D8C078"
|
||||
H.update_fhair()
|
||||
|
||||
/obj/item/organ/internal/emp_act(severity)
|
||||
if(!is_robotic() || emp_proof)
|
||||
return
|
||||
switch(severity)
|
||||
if(1)
|
||||
receive_damage(20, 1)
|
||||
if(2)
|
||||
receive_damage(7, 1)
|
||||
|
||||
/obj/item/organ/internal/handle_germs()
|
||||
..()
|
||||
if(germ_level >= INFECTION_LEVEL_TWO)
|
||||
if(prob(3)) //about once every 30 seconds
|
||||
receive_damage(1, silent = prob(30))
|
||||
|
||||
Reference in New Issue
Block a user