From d3d4c79946f3a8892e065bd05dd673577b71a286 Mon Sep 17 00:00:00 2001 From: Robson Richards Date: Sun, 29 Dec 2013 17:40:12 +0000 Subject: [PATCH] Merges Heal_Damage and Heal_robotic_damage procs like I should have done in the first place. Corrects all usages of Heal_damage so it works with the changed version. Same goes for Heal_robotic_damage --- .../advance/symptoms/damage_converter.dm | 4 ++-- code/game/gamemodes/cult/runes.dm | 2 +- code/game/objects/items/stacks/medical.dm | 3 +-- .../objects/items/weapons/storage/bible.dm | 2 +- .../mob/living/carbon/human/human_damage.dm | 4 ++-- .../mob/living/carbon/human/human_defense.dm | 4 ++-- code/modules/surgery/organs/organ.dm | 21 +++++++------------ 7 files changed, 16 insertions(+), 24 deletions(-) diff --git a/code/datums/diseases/advance/symptoms/damage_converter.dm b/code/datums/diseases/advance/symptoms/damage_converter.dm index 40d599fdf7e..ed89fd53f41 100644 --- a/code/datums/diseases/advance/symptoms/damage_converter.dm +++ b/code/datums/diseases/advance/symptoms/damage_converter.dm @@ -44,9 +44,9 @@ Bonus for(var/obj/item/organ/limb/L in parts) if(L.status == ORGAN_ROBOTIC) - L.heal_robotic_damage(get_damage, get_damage) + L.heal_damage(get_damage, get_damage, 1) else - L.heal_damage(get_damage, get_damage) + L.heal_damage(get_damage, get_damage, 0) else if(M.getFireLoss() > 0 || M.getBruteLoss() > 0) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 5b4efd72951..ccec9e51165 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -288,7 +288,7 @@ var/list/sacrificed = list() return fizzle() for(var/obj/item/organ/limb/affecting in corpse_to_raise.organs) - affecting.heal_damage(1000, 1000) + affecting.heal_damage(1000, 1000, 0) corpse_to_raise.setToxLoss(0) corpse_to_raise.setOxyLoss(0) corpse_to_raise.SetParalysis(0) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index eceb1874564..c143ddd39e6 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -63,9 +63,8 @@ if(!istype(affecting, /obj/item/organ/limb) || affecting:burn_dam <= 0) affecting = H.get_organ("head") - if(affecting.status == ORGAN_ORGANIC) // Just in case a robotic limb SOMEHOW got down to this point of the proc all you get is a message - RR - if (affecting.heal_damage(src.heal_brute, src.heal_burn)) + if (affecting.heal_damage(src.heal_brute, src.heal_burn, 0)) H.update_damage_overlays(0) M.updatehealth() diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index b9d760bdf11..fbcd8280015 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -28,7 +28,7 @@ var/heal_amt = 10 for(var/obj/item/organ/limb/affecting in H.organs) if(affecting.status == ORGAN_ORGANIC) //No Bible can heal a robotic arm! - if(affecting.heal_damage(heal_amt, heal_amt)) + if(affecting.heal_damage(heal_amt, heal_amt, 0)) H.update_damage_overlays(0) return diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 77148d3dcfb..bdf34462d77 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -79,7 +79,7 @@ var/list/obj/item/organ/limb/parts = get_damaged_organs(brute,burn) if(!parts.len) return var/obj/item/organ/limb/picked = pick(parts) - if(picked.heal_damage(brute,burn)) + if(picked.heal_damage(brute,burn,0)) update_damage_overlays(0) updatehealth() @@ -106,7 +106,7 @@ var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam - update |= picked.heal_damage(brute,burn) + update |= picked.heal_damage(brute,burn,0) brute -= (brute_was-picked.brute_dam) burn -= (burn_was-picked.burn_dam) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 435bb15ba1a..fc245264c18 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -129,7 +129,7 @@ emp_act if(affecting.status == ORGAN_ROBOTIC) if (WT.remove_fuel(0)) if(affecting.brute_dam > 0) - affecting.heal_robotic_damage(30,0) //Repair Brute + affecting.heal_damage(30,0,1) //Repair Brute update_damage_overlays(0) updatehealth() for(var/mob/O in viewers(user, null)) @@ -147,7 +147,7 @@ emp_act var/obj/item/weapon/cable_coil/coil = I if(affecting.status == ORGAN_ROBOTIC) if(affecting.burn_dam > 0) - affecting.heal_robotic_damage(0,30) //Repair Burn + affecting.heal_damage(0,30,1) //Repair Burn updatehealth() coil.use(1) for(var/mob/O in viewers(user, null)) diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index bbd1faf8f0f..6fbc2f55fbd 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -136,8 +136,13 @@ //Heals brute and burn damage for the organ. Returns 1 if the damage-icon states changed at all. //Damage cannot go below zero. //Cannot remove negative damage (i.e. apply damage) -/obj/item/organ/limb/proc/heal_damage(brute, burn) - if(status == ORGAN_ROBOTIC) // This makes robolimbs not healable by chems +/obj/item/organ/limb/proc/heal_damage(brute, burn, var/robotic) + + if(robotic && status != ORGAN_ROBOTIC) // This makes organic limbs not heal when the proc is in Robotic mode. + brute = max(0, brute - 3) + burn = max(0, burn - 3) + + if(!robotic && status == ORGAN_ROBOTIC) // This makes robolimbs not healable by chems. brute = max(0, brute - 3) burn = max(0, burn - 3) @@ -146,18 +151,6 @@ return update_organ_icon() -/obj/item/organ/limb/proc/heal_robotic_damage(brute, burn) //so you can heal robotic limbs but not with the original proc - RR - if(status == ORGAN_ORGANIC) //This is a robotic heal proc so no healing organic limbs - RR - brute = max(0, brute - 3) - burn = max(0, burn - 3) - - brute_dam = max(brute_dam - brute, 0) - burn_dam = max(burn_dam - burn, 0) - return update_organ_icon() - - - - //Returns total damage...kinda pointless really /obj/item/organ/limb/proc/get_damage() return brute_dam + burn_dam