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 b5e0f9c5c0..bacb35939a 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 ca98cadd07..f9a18dbca6 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 f25339d6ef..fd6957aad4 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 df692c4a97..eaf93ceeba 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 09897729f9..0a1816e4c8 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 303dcfc141..2b93139111 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 7f7e931caf..a448b850ab 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}}