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}}