From 1ecd7f13fc4b8ef698cda84881532b546eb4b67e Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 21 Jul 2017 02:19:12 -0400 Subject: [PATCH] instant updates --- code/game/gamemodes/changeling/powers/headcrab.dm | 2 +- code/game/gamemodes/changeling/powers/revive.dm | 2 +- .../objects/items/weapons/grenades/flashbang.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 6 +++--- code/modules/reagents/chemistry/reagents/admin.dm | 6 +++--- .../reagents/chemistry/reagents/medicine.dm | 5 ++--- code/modules/surgery/organs/organ.dm | 13 +++++-------- code/modules/surgery/organs/organ_internal.dm | 15 ++++++--------- code/modules/surgery/organs_internal.dm | 6 +++--- code/modules/surgery/robotics.dm | 4 ++-- 10 files changed, 27 insertions(+), 34 deletions(-) diff --git a/code/game/gamemodes/changeling/powers/headcrab.dm b/code/game/gamemodes/changeling/powers/headcrab.dm index 4adbc39e7fc..16ad41a36ea 100644 --- a/code/game/gamemodes/changeling/powers/headcrab.dm +++ b/code/game/gamemodes/changeling/powers/headcrab.dm @@ -20,7 +20,7 @@ H.EyeBlurry(20) var/obj/item/organ/internal/eyes/E = H.get_int_organ(/obj/item/organ/internal/eyes) if(istype(E)) - E.damage = max(E.damage+5, 0) + E.take_damage(5, 1) H.AdjustConfused(3) for(var/mob/living/silicon/S in range(2,user)) to_chat(S, "Your sensors are disabled by a shower of blood!") diff --git a/code/game/gamemodes/changeling/powers/revive.dm b/code/game/gamemodes/changeling/powers/revive.dm index 3bef09d2645..feb6615971b 100644 --- a/code/game/gamemodes/changeling/powers/revive.dm +++ b/code/game/gamemodes/changeling/powers/revive.dm @@ -48,7 +48,7 @@ O.status = 0 O.trace_chemicals.Cut() for(var/obj/item/organ/internal/IO in H.internal_organs) - IO.damage = 0 + IO.rejuvenate() IO.trace_chemicals.Cut() H.remove_all_embedded_objects() H.updatehealth() diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm index 6aa33fc9714..36ef7167d85 100644 --- a/code/game/objects/items/weapons/grenades/flashbang.dm +++ b/code/game/objects/items/weapons/grenades/flashbang.dm @@ -37,7 +37,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(E) - E.damage += 8 + E.take_damage(8, 1) if(M.flash_eyes(affect_silicon = 1)) M.Stun(max(10/distance, 3)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 88377ea9cea..06b45c84a1a 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -323,15 +323,15 @@ if(1) to_chat(src, "Your eyes sting a little.") if(prob(40)) //waiting on carbon organs - E.damage += 1 + E.take_damage(1, 1) if(2) to_chat(src, "Your eyes burn.") - E.damage += rand(2, 4) + E.take_damage(rand(2, 4), 1) else to_chat(src, "Your eyes itch and burn severely!") - E.damage += rand(12, 16) + E.take_damage(rand(12, 16), 1) if(E.damage > E.min_bruised_damage) AdjustEyeBlind(damage) diff --git a/code/modules/reagents/chemistry/reagents/admin.dm b/code/modules/reagents/chemistry/reagents/admin.dm index d4902cfc147..55ffac4ce9b 100644 --- a/code/modules/reagents/chemistry/reagents/admin.dm +++ b/code/modules/reagents/chemistry/reagents/admin.dm @@ -18,9 +18,9 @@ M.setBrainLoss(0) if(ishuman(M)) var/mob/living/carbon/human/H = M - for(var/name in H.internal_organs) - var/obj/item/organ/internal/I = H.get_int_organ(name) - I.damage = max(0, I.damage-5) + for(var/thing in H.internal_organs) + var/obj/item/organ/internal/I = thing + I.take_damage(-5) for(var/obj/item/organ/external/E in H.bodyparts) if(E.mend_fracture()) E.perma_injury = 0 diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 70dde5764a6..583834e90e5 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -92,8 +92,7 @@ //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) - if(I.damage > 0) - I.damage = max(I.damage-0.4, 0) + I.take_damage(-0.4) ..() /datum/reagent/medicine/mitocholide/reaction_obj(obj/O, volume) @@ -512,7 +511,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.damage = max(E.damage-1, 0) + E.take_damage(-1) M.AdjustEyeBlurry(-1) M.AdjustEarDamage(-1) if(prob(50)) diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index dc74871d377..3286ef684a4 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -115,10 +115,6 @@ var/list/organ_cache = list() handle_antibiotics() handle_germ_effects() - //check if we've hit max_damage - if(damage >= max_damage) - necrotize() - /obj/item/organ/proc/is_preserved() if(istype(loc,/obj/item/device/mmi)) germ_level = max(0, germ_level - 1) // So a brain can slowly recover from being left out of an MMI @@ -173,9 +169,6 @@ var/list/organ_cache = list() if(prob(3)) //about once every 30 seconds take_damage(1,silent=prob(30)) -/obj/item/organ/proc/receive_chem(chemical as obj) - return 0 - /obj/item/organ/proc/rejuvenate() damage = 0 germ_level = 0 @@ -239,6 +232,10 @@ var/list/organ_cache = list() if(parent && !silent) owner.custom_pain("Something inside your [parent.name] hurts a lot.", 1) + //check if we've hit max_damage + if(damage >= max_damage) + necrotize() + /obj/item/organ/proc/robotize() //Being used to make robutt hearts, etc robotic = 2 status &= ~ORGAN_BROKEN @@ -253,7 +250,7 @@ var/list/organ_cache = list() min_bruised_damage = 15 min_broken_damage = 35 -/obj/item/organ/emp_act(severity) +/obj/item/organ/external/emp_act(severity) if(!(status & ORGAN_ROBOT)) return if(tough) diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index c791dd581de..1070199d598 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -431,20 +431,17 @@ //High toxins levels are dangerous if(owner.getToxLoss() >= 60 && !owner.reagents.has_reagent("charcoal")) //Healthy liver suffers on its own - if(src.damage < min_broken_damage) - src.damage += 0.2 * PROCESS_ACCURACY + if(damage < min_broken_damage) + take_damage(0.2 * PROCESS_ACCURACY) //Damaged one shares the fun else var/obj/item/organ/internal/O = pick(owner.internal_organs) if(O) - O.damage += 0.2 * PROCESS_ACCURACY + O.take_damage(0.2 * PROCESS_ACCURACY) //Detox can heal small amounts of damage - if(src.damage && src.damage < src.min_bruised_damage && owner.reagents.has_reagent("charcoal")) - src.damage -= 0.2 * PROCESS_ACCURACY - - if(src.damage < 0) - src.damage = 0 + if(damage && damage < min_bruised_damage && owner.reagents.has_reagent("charcoal")) + take_damage(-0.2 * PROCESS_ACCURACY) // Get the effectiveness of the liver. var/filter_effect = 3 @@ -454,7 +451,7 @@ filter_effect -= 2 // Damaged liver means some chemicals are very dangerous - if(src.damage >= src.min_bruised_damage) + if(damage >= min_bruised_damage) for(var/datum/reagent/R in owner.reagents.reagent_list) // Ethanol and all drinks are bad if(istype(R, /datum/reagent/consumable/ethanol)) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index a88ebfa6cc2..8bc0e799e11 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -200,7 +200,7 @@ return for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && I.damage) if(I.robotic < 2 && !istype (tool, /obj/item/stack/nanopaste)) if(!(I.sterile)) spread_germs_to_organ(I, user, tool) @@ -238,7 +238,7 @@ for(var/obj/item/organ/internal/I in affected.internal_organs) if(I) I.surgeryize() - if(I && I.damage > 0) + if(I && I.damage) if(I.robotic < 2 && !istype (tool, /obj/item/stack/nanopaste)) user.visible_message(" [user] treats damage to [target]'s [I.name] with [tool_name].", \ " You treat damage to [target]'s [I.name] with [tool_name]." ) @@ -353,7 +353,7 @@ affected.take_damage(5) for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0 && !(I.tough)) + if(I && I.damage && !(I.tough)) I.take_damage(dam_amt,0) return 0 diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index fba57f4c997..27f722318d7 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -398,7 +398,7 @@ var/found_damaged_organ = FALSE for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0 && I.robotic >= 2) + if(I && I.damage && I.robotic >= 2) user.visible_message("[user] starts mending the damage to [target]'s [I.name]'s mechanisms.", \ "You start mending the damage to [target]'s [I.name]'s mechanisms.") found_damaged_organ = TRUE @@ -423,7 +423,7 @@ if(!hasorgans(target)) return for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0) + if(I && I.damage) if(I.robotic >= 2) user.visible_message(" [user] repairs [target]'s [I.name] with [tool].", \ " You repair [target]'s [I.name] with [tool]." )