From 2c493405bdb629def763b1122f977c79f33ee31a Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Tue, 28 Feb 2017 01:12:51 -0500 Subject: [PATCH] More tweaks Fix necrotic limb surgery Make fever not so powerful that it resists cryotubes All necrotic limbs produce toxins unless OD on spaceacillin, regardless of infection Fix dropper use during surgery Fix 'gap' in printable adv scanner infection reports Fix nanoui template for adv scanner Add examine text to gangrene and highly infected external limbs Add flags to the MMI holder organs to make them robotic, and thus not infectable if they are > squishy MMI (posibrain, digital) --- code/game/machinery/adv_med.dm | 8 ++++---- code/modules/mob/living/carbon/human/examine.dm | 5 +++++ code/modules/organs/organ.dm | 12 +++++++++--- code/modules/organs/subtypes/machine.dm | 4 +++- code/modules/reagents/reagent_containers/dropper.dm | 7 ------- code/modules/surgery/other.dm | 6 ++---- nano/templates/adv_med.tmpl | 12 ++++++------ 7 files changed, 29 insertions(+), 25 deletions(-) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index b5e0f9c5c0e..bacb35939a3 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -507,9 +507,9 @@ infected = "Acute Infection:" if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300) infected = "Acute Infection+:" - if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_TWO + 400) + if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50) infected = "Acute Infection++:" - if (INFECTION_LEVEL_THREE to INFINITY) + if (INFECTION_LEVEL_THREE -49 to INFINITY) infected = "Gangrene Detected:" var/unknown_body = 0 @@ -549,9 +549,9 @@ infection = "Acute Infection:" if (INFECTION_LEVEL_TWO + 200 to INFECTION_LEVEL_TWO + 300) infection = "Acute Infection+:" - if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_TWO + 400) + if (INFECTION_LEVEL_TWO + 300 to INFECTION_LEVEL_THREE - 50) infection = "Acute Infection++:" - if (INFECTION_LEVEL_THREE to INFINITY) + if (INFECTION_LEVEL_THREE -49 to INFINITY) infection = "Necrosis Detected:" dat += "" diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index ca98cadd076..f9a18dbca6d 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -361,6 +361,11 @@ if(((temp.status & ORGAN_BROKEN) && temp.brute_dam > temp.min_broken_damage) || (temp.status & ORGAN_MUTATED)) wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] is dented and swollen!
" + if(temp.germ_level > INFECTION_LEVEL_TWO && !(temp.status & ORGAN_DEAD)) + wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] looks very infected!
" + else if(temp.status & ORGAN_DEAD) + wound_flavor_text["[temp.name]"] += "[T.His] [temp.name] looks rotten!
" + if(!wound_flavor_text["[temp.name]"] && (temp.status & ORGAN_BLEEDING)) is_bleeding["[temp.name]"] = "[T.His] [temp.name] is bleeding!
" diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index f25339d6ef1..fd6957aad4e 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -139,8 +139,16 @@ var/list/organ_cache = list() /obj/item/organ/proc/handle_germ_effects() //** Handle the effects of infections + if(robotic >= ORGAN_ROBOT) //Just in case! + germ_level = 0 + return 0 + var/antibiotics = owner.reagents.get_reagent_amount("spaceacillin") + if((status & ORGAN_DEAD) && antibiotics < 30) //Sepsis from 'dead' organs + var/sepsis_severity = 1 + round((germ_level - INFECTION_LEVEL_THREE)/200,0.25) //1 Tox plus a little based on germ level + owner.adjustToxLoss(sepsis_severity) + if (germ_level > 0 && germ_level < INFECTION_LEVEL_ONE/2 && prob(30)) germ_level-- @@ -155,7 +163,7 @@ var/list/organ_cache = list() //owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature) var/fever_temperature = owner.species.heat_discomfort_level * 1.10 //Heat discomfort level plus 10% if(owner.bodytemperature < fever_temperature) - owner.bodytemperature += (fever_temperature - owner.bodytemperature) / 10 //Tries to climb by 10% of the difference between fever and current + owner.bodytemperature += min(0.2,(fever_temperature - owner.bodytemperature) / 10) //Will usually climb by 0.2, else 10% of the difference if less if (germ_level >= INFECTION_LEVEL_TWO) . = 2 //Organ qualifies for effect-specific processing @@ -164,8 +172,6 @@ var/list/organ_cache = list() if (germ_level >= INFECTION_LEVEL_THREE && antibiotics < 30) . = 3 //Organ qualifies for effect-specific processing germ_level++ //Germ_level increases without overdose of antibiotics - var/sepsis_severity = 1 + round((germ_level - INFECTION_LEVEL_THREE)/100,0.25) //1 Tox plus a little for going over INFECTION_LEVEL_THREE - owner.adjustToxLoss(sepsis_severity) /obj/item/organ/proc/handle_rejection() // Process unsuitable transplants. TODO: consider some kind of diff --git a/code/modules/organs/subtypes/machine.dm b/code/modules/organs/subtypes/machine.dm index df692c4a97f..eaf93ceeba7 100644 --- a/code/modules/organs/subtypes/machine.dm +++ b/code/modules/organs/subtypes/machine.dm @@ -27,6 +27,7 @@ vital = 1 var/brain_type = /obj/item/device/mmi var/obj/item/device/mmi/stored_mmi + robotic = ORGAN_ASSISTED /obj/item/organ/internal/mmi_holder/Destroy() if(stored_mmi && (stored_mmi.loc == src)) @@ -84,7 +85,7 @@ /obj/item/organ/internal/mmi_holder/posibrain name = "positronic brain interface" brain_type = /obj/item/device/mmi/digital/posibrain - + robotic = ORGAN_ROBOT /obj/item/organ/internal/mmi_holder/posibrain/update_from_mmi() ..() @@ -94,6 +95,7 @@ /obj/item/organ/internal/mmi_holder/robot name = "digital brain interface" brain_type = /obj/item/device/mmi/digital/robot + robotic = ORGAN_ROBOT /obj/item/organ/internal/mmi_holder/robot/update_from_mmi() ..() diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm index 09897729f90..0a1816e4c86 100644 --- a/code/modules/reagents/reagent_containers/dropper.dm +++ b/code/modules/reagents/reagent_containers/dropper.dm @@ -12,13 +12,6 @@ slot_flags = SLOT_EARS volume = 5 - -/obj/item/weapon/reagent_containers/dropper/do_surgery(mob/living/carbon/M, mob/living/user) - if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool - return ..() - afterattack(M, user, 1) - return 1 - /obj/item/weapon/reagent_containers/dropper/afterattack(var/obj/target, var/mob/user, var/proximity) if(!target.reagents || !proximity) return diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index 303dcfc141a..2b931391118 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -146,10 +146,8 @@ var/trans = container.reagents.trans_to_mob(target, container.amount_per_transfer_from_this, CHEM_BLOOD) //technically it's contact, but the reagents are being applied to internal tissue if (trans > 0) - - if(container.reagents.has_reagent("peridaxon")) - affected.status &= ~ORGAN_DEAD - affected.owner.update_body(1) + affected.status &= ~ORGAN_DEAD + affected.owner.update_body(1) user.visible_message("\blue [user] applies [trans] units of the solution to affected tissue in [target]'s [affected.name]", \ "\blue You apply [trans] units of the solution to affected tissue in [target]'s [affected.name] with \the [tool].") diff --git a/nano/templates/adv_med.tmpl b/nano/templates/adv_med.tmpl index 7f7e931caf6..a448b850ab8 100644 --- a/nano/templates/adv_med.tmpl +++ b/nano/templates/adv_med.tmpl @@ -169,10 +169,10 @@ Used In File(s): \code\game\machinery\adv_med.dm Acute Infection {{else value.germ_level < 800}} Acute Infection+ - {{else value.germ_level < 900}} + {{else value.germ_level < 950}} Acute Infection++ - {{else value.germ_level >= 900}} - Septic + {{else value.germ_level >= 950}} + Gangrene Detected {{/if}} {{/if}} @@ -225,10 +225,10 @@ Used In File(s): \code\game\machinery\adv_med.dm Acute Infection {{else value.germ_level < 800}} Acute Infection+ - {{else value.germ_level < 900}} + {{else value.germ_level < 950}} Acute Infection++ - {{else value.germ_level >= 900}} - Septic + {{else value.germ_level >= 950}} + Necrosis Detected {{/if}} {{/if}}