mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Chemical Healing with Damaged Robolimbs Bugfix (The Second Mystery of Xivvis) (#34687)
* healing chems target only organic limbs * refactor to match other procs
This commit is contained in:
@@ -171,10 +171,10 @@
|
||||
////////////////////////////////////////////
|
||||
|
||||
//Returns a list of damaged organs
|
||||
/mob/living/carbon/human/proc/get_damaged_organs(var/brute, var/burn)
|
||||
/mob/living/carbon/human/proc/get_damaged_organs(var/brute, var/burn, var/ignore_inorganic = FALSE)
|
||||
var/list/datum/organ/external/parts = list()
|
||||
for(var/datum/organ/external/O in organs)
|
||||
if((brute && O.brute_dam) || (burn && O.burn_dam))
|
||||
if(((brute && O.brute_dam) || (burn && O.burn_dam)) && !(ignore_inorganic && !O.is_organic()))
|
||||
parts += O
|
||||
return parts
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
//It automatically updates damage overlays if necesary
|
||||
//It automatically updates health status
|
||||
/mob/living/carbon/human/heal_organ_damage(var/brute, var/burn)
|
||||
var/list/datum/organ/external/parts = get_damaged_organs(brute,burn)
|
||||
var/list/datum/organ/external/parts = get_damaged_organs(brute,burn,TRUE)
|
||||
if(!parts.len)
|
||||
return
|
||||
var/datum/organ/external/picked = pick(parts)
|
||||
@@ -224,7 +224,7 @@ In most cases it makes more sense to use apply_damage() instead! And make sure t
|
||||
|
||||
//Heal MANY external organs, in random order
|
||||
/mob/living/carbon/human/heal_overall_damage(var/brute, var/burn)
|
||||
var/list/datum/organ/external/parts = get_damaged_organs(brute,burn)
|
||||
var/list/datum/organ/external/parts = get_damaged_organs(brute,burn,TRUE)
|
||||
var/datum/organ/internal/heart/hivelord/H = get_heart()
|
||||
if(istype(H)) // hivelord hearts just heal better
|
||||
brute *= 2
|
||||
|
||||
Reference in New Issue
Block a user