From 274d422cd4431a0beb7d04920c246675ac72b739 Mon Sep 17 00:00:00 2001 From: CIB Date: Wed, 14 Nov 2012 11:26:56 +0100 Subject: [PATCH 01/11] Nerfed suffocation speed. --- code/modules/mob/living/carbon/human/life.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 04e0c916434..7290b23d4e5 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1,8 +1,8 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:32 //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! -#define HUMAN_MAX_OXYLOSS 3 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. -#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /3) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks. +#define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. +#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /5) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks. #define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point #define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point From 29c295fee94fa977d276402a0556a6e3b5a4f8f0 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 14 Nov 2012 14:58:41 +0400 Subject: [PATCH 02/11] Made Virologist an alt_title of MD. --- code/game/jobs/access.dm | 2 +- code/game/jobs/job/medical.dm | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 90c5524f92f..37f1a721aae 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -186,7 +186,7 @@ if("Detective") return list(access_security, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court) if("Medical Doctor") - return list(access_medical, access_morgue, access_surgery) + return list(access_medical, access_morgue, access_surgery, access_virology) if("Botanist") // -- TLE return list(access_hydroponics, access_morgue) // Removed tox and chem access because STOP PISSING OFF THE CHEMIST GUYS // //Removed medical access because WHAT THE FUCK YOU AREN'T A DOCTOR YOU GROW WHEAT //Given Morgue access because they have a viable means of cloning. if("Librarian") // -- TLE diff --git a/code/game/jobs/job/medical.dm b/code/game/jobs/job/medical.dm index fd5ac0f0034..9e5abe580cb 100644 --- a/code/game/jobs/job/medical.dm +++ b/code/game/jobs/job/medical.dm @@ -40,7 +40,7 @@ spawn_positions = 3 supervisors = "the chief medical officer" selection_color = "#ffeef0" - alt_titles = list("Surgeon", "Emergency Physician") + alt_titles = list("Surgeon", "Emergency Physician", "Virologist") equip(var/mob/living/carbon/human/H) @@ -50,12 +50,18 @@ if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/medic(H), slot_back) if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_med(H), slot_back) if(4) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(H), slot_back) - if(H.mind.role_alt_title && H.mind.role_alt_title == "Emergency Physician") - H.equip_if_possible(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) - H.equip_if_possible(new /obj/item/clothing/suit/fr_jacket(H), slot_wear_suit) - else if(H.mind.role_alt_title && H.mind.role_alt_title == "Surgeon") - H.equip_if_possible(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform) - H.equip_if_possible(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit) + if (H.mind.role_alt_title) + switch(H.mind.role_alt_title) + if("Emergency Physician") + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/fr_jacket(H), slot_wear_suit) + if("Surgeon") + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical/blue(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit) + if("Virologist") + H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat/virologist(H), slot_wear_suit) + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/virologist(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(H), slot_wear_mask) else H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/labcoat(H), slot_wear_suit) @@ -115,7 +121,7 @@ H.equip_to_slot_or_del(new /obj/item/device/flashlight/pen(H), slot_s_store) return 1 - +/* /datum/job/virologist title = "Virologist" @@ -146,5 +152,5 @@ else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) return 1 - +*/ From 3caa7a14d3aa475746ea6a860ebd1d2d27f4a4cf Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 14 Nov 2012 15:21:56 +0400 Subject: [PATCH 03/11] Added science alt_titles --- code/game/jobs/job/science.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 83bf8f90259..f1a202f1341 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -31,6 +31,7 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" + alt_titles = list("Xenoarcheologist", "Anomalist", "Plasma Researcher", "Xenobiologist") equip(var/mob/living/carbon/human/H) From 21bbe4f289f13c4cf0e61eeeabfb7ecc29e1ca03 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Wed, 14 Nov 2012 15:23:03 +0400 Subject: [PATCH 04/11] Updated changelog --- html/changelog.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index b2f8706ef7e..5dccabb4ba2 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,15 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. --> +
+

14.11.12

+

Chinsky updated:

+
    +
  • Virologist are now alt title of Medical Doctor, like Surgeon or EMT. All medical jobs now have virology access.
  • +
  • Added scientist alt titles.
  • +
+
+

November 12th

CIB updated:

From e5b62c98c6e799f358eae807dda4775af147c441 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 13:44:11 +0100 Subject: [PATCH 05/11] Restructured alien removal surgery. This way it later can be used for lung surgery. --- code/WorkInProgress/surgery.dm | 123 +++++++++--------- .../mob/living/carbon/carbon_defines.dm | 4 +- 2 files changed, 63 insertions(+), 64 deletions(-) diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm index cf36046dec1..3fd825cb46b 100644 --- a/code/WorkInProgress/surgery.dm +++ b/code/WorkInProgress/surgery.dm @@ -1007,19 +1007,14 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) ////////////////////////////////////////////////////////////////// -// ALIEN SURGERY // +// RIBCAGE SURGERY(LUNGS AND ALIENS) // ////////////////////////////////////////////////////////////////// -/datum/surgery_step/alien +/datum/surgery_step/ribcage can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/embryo = 0 - for(var/datum/disease/alien_embryo/A in target.viruses) - embryo = 1 - break + return target_zone == "chest" - return embryo && target_zone == "chest" - -/datum/surgery_step/alien/saw_ribcage +/datum/surgery_step/ribcage/saw_ribcage required_tool = /obj/item/weapon/circular_saw min_duration = 50 @@ -1027,7 +1022,7 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) - return ..() && target.embryo_op_stage == 0 && affected.open >= 2 + return ..() && target.ribcage_op_stage == 0 && affected.open >= 2 begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("[user] begins to cut through [target]'s ribcage with \the [tool].", \ @@ -1037,21 +1032,21 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\blue [user] has cut through [target]'s ribcage open with \the [tool].", \ "\blue You have cut through [target]'s ribcage open with \the [tool].") - target.embryo_op_stage = 1 + target.ribcage_op_stage = 1 fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) user.visible_message("\red [user]'s hand slips, cracking [target]'s ribcage with \the [tool]!" , \ "\red Your hand slips, cracking [target]'s ribcage with \the [tool]!" ) -/datum/surgery_step/alien/retract_ribcage +/datum/surgery_step/ribcage/retract_ribcage required_tool = /obj/item/weapon/retractor min_duration = 30 max_duration = 40 can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return ..() && target.embryo_op_stage == 1 + return ..() && target.ribcage_op_stage == 1 begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/msg = "[user] starts to force open the ribcage in [target]'s torso with \the [tool]." @@ -1063,7 +1058,7 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) var/msg = "\blue [user] forces open [target]'s ribcage with \the [tool]." var/self_msg = "\blue You force open [target]'s ribcage with \the [tool]." user.visible_message(msg, self_msg) - target.embryo_op_stage = 2 + target.ribcage_op_stage = 2 // Whoops! if(prob(10)) @@ -1077,14 +1072,64 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) var/datum/organ/external/affected = target.get_organ(target_zone) affected.fracture() -/datum/surgery_step/alien/remove_embryo +/datum/surgery_step/ribcage/close_ribcage + required_tool = /obj/item/weapon/retractor + + min_duration = 20 + max_duration = 40 + + can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + return ..() && target.ribcage_op_stage == 2 + + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/msg = "[user] starts bending [target]'s ribcage back into place with \the [tool]." + var/self_msg = "You start bending [target]'s ribcage back into place with \the [tool]." + user.visible_message(msg, self_msg) + target.custom_pain("Something hurts horribly in your chest!",1) + + end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/msg = "[user] bends [target]'s ribcage back into place with \the [tool]." + var/self_msg = "You bends [target]'s ribcage back into place with \the [tool]." + user.visible_message(msg, self_msg) + + target.ribcage_op_stage = 1 + +/datum/surgery_step/ribcage/mend_ribcage + required_tool = /obj/item/weapon/bonegel + + min_duration = 20 + max_duration = 40 + + can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + return ..() && target.ribcage_op_stage == 1 + + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/msg = "[user] starts applying \the [tool] to [target]'s ribcage." + var/self_msg = "You start applying \the [tool] to [target]'s ribcage." + user.visible_message(msg, self_msg) + target.custom_pain("Something hurts horribly in your chest!",1) + + + end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/msg = "[user] applied \the [tool] to [target]'s ribcage." + var/self_msg = "You applied \the [tool] to [target]'s ribcage." + user.visible_message(msg, self_msg) + + target.ribcage_op_stage = 0 + + +/datum/surgery_step/ribcage/remove_embryo required_tool = /obj/item/weapon/hemostat min_duration = 80 max_duration = 100 can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return ..() && target.embryo_op_stage == 2 + var/embryo = 0 + for(var/datum/disease/alien_embryo/A in target.viruses) + embryo = 1 + break + return ..() && embryo && target.ribcage_op_stage == 2 begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/msg = "[user] starts to pull something out from [target]'s ribcage with \the [tool]." @@ -1099,52 +1144,6 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) var/mob/living/carbon/alien/larva/stupid = new(target.loc) stupid.death(0) - target.embryo_op_stage = 3 - for(var/datum/disease/alien_embryo in target.viruses) alien_embryo.cure() -/datum/surgery_step/alien/close_ribcage - required_tool = /obj/item/weapon/retractor - - min_duration = 20 - max_duration = 40 - - can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return target.embryo_op_stage >= 2 - - begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/msg = "[user] starts bending [target]'s ribcage back into place with \the [tool]." - var/self_msg = "You start bending [target]'s ribcage back into place with \the [tool]." - user.visible_message(msg, self_msg) - target.custom_pain("Something hurts horribly in your chest!",1) - - end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/msg = "[user] bends [target]'s ribcage back into place with \the [tool]." - var/self_msg = "You bends [target]'s ribcage back into place with \the [tool]." - user.visible_message(msg, self_msg) - - target.embryo_op_stage = 1 - -/datum/surgery_step/alien/mend_ribcage - required_tool = /obj/item/weapon/bonegel - - min_duration = 20 - max_duration = 40 - - can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return target.embryo_op_stage == 1 - - begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/msg = "[user] starts applying \the [tool] to [target]'s ribcage." - var/self_msg = "You start applying \the [tool] to [target]'s ribcage." - user.visible_message(msg, self_msg) - target.custom_pain("Something hurts horribly in your chest!",1) - - - end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/msg = "[user] applied \the [tool] to [target]'s ribcage." - var/self_msg = "You applied \the [tool] to [target]'s ribcage." - user.visible_message(msg, self_msg) - - target.embryo_op_stage = 0 diff --git a/code/modules/mob/living/carbon/carbon_defines.dm b/code/modules/mob/living/carbon/carbon_defines.dm index a3c046db523..5de344a4d00 100644 --- a/code/modules/mob/living/carbon/carbon_defines.dm +++ b/code/modules/mob/living/carbon/carbon_defines.dm @@ -2,7 +2,7 @@ gender = MALE var/list/stomach_contents = list() var/brain_op_stage = 0.0 - var/embryo_op_stage = 0 + var/ribcage_op_stage = 0 /* var/eye_op_stage = 0.0 var/appendix_op_stage = 0.0 @@ -19,4 +19,4 @@ var/analgesic = 0 // when this is set, the mob isn't affected by shock or pain // life should decrease this by 1 every tick // total amount of wounds on mob, used to spread out healing and the like over all wounds - var/number_wounds = 0 \ No newline at end of file + var/number_wounds = 0 From 450248864b95fa8848a7cb59ab8387d10f9240c1 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 16:20:47 +0100 Subject: [PATCH 06/11] Added lung rupturing and lung surgery. --- code/WorkInProgress/surgery.dm | 26 +++++++++++++++++++ code/datums/organs/organ_external.dm | 1 + code/game/machinery/adv_med.dm | 5 +++- code/modules/mob/living/carbon/human/human.dm | 18 +++++++++++-- code/modules/mob/living/carbon/human/life.dm | 13 ++++++++-- 5 files changed, 58 insertions(+), 5 deletions(-) diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm index 3fd825cb46b..2409195a00f 100644 --- a/code/WorkInProgress/surgery.dm +++ b/code/WorkInProgress/surgery.dm @@ -1147,3 +1147,29 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) for(var/datum/disease/alien_embryo in target.viruses) alien_embryo.cure() +/datum/surgery_step/ribcage/fix_lungs + required_tool = /obj/item/weapon/scalpel + + min_duration = 70 + max_duration = 90 + + can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + return ..() && target.is_lung_ruptured() + + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + user.visible_message("[user] starts mending the rupture in [target]'s lungs with \the [tool].", \ + "You start mending the rupture in [target]'s lungs with \the [tool]." ) + target.custom_pain("The pain in your chest is living hell!",1) + + end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/chest/affected = get_organ("chest") + user.visible_message("[user] mends the rupture in [target]'s lungs with \the [tool].", \ + "You mend the rupture in [target]'s lungs with \the [tool]." ) + affected.ruptured_lungs = 0 + + fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/chest/affected = get_organ("chest") + user.visible_message("\red [user]'s hand slips, slicing an artery inside [target]'s chest with \the [tool]!", \ + "\red Your hand slips, slicing an artery inside [target]'s chest with \the [tool]!") + affected.createwound(CUT, 20) + diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm index 0a6d312bd9b..1487e8a048a 100644 --- a/code/datums/organs/organ_external.dm +++ b/code/datums/organs/organ_external.dm @@ -527,6 +527,7 @@ max_damage = 150 min_broken_damage = 75 body_part = UPPER_TORSO + var/ruptured_lungs = 0 /datum/organ/external/groin name = "groin" diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 15dbadb0061..5e6f6e9d1fc 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -279,9 +279,12 @@ var/bled = "" var/splint = "" var/internal_bleeding = "" + var/lung_ruptured = "" for(var/datum/wound/W in e.wounds) if(W.internal) internal_bleeding = "
Internal Bleeding" break + if(istype(e, /datum/organ/external/chest) && e:ruptured_lungs) + lung_ruptured = "Lung Ruptured:" if(e.status & ORGAN_SPLINTED) splint = "Splinted:" if(e.status & ORGAN_BLEEDING) @@ -295,7 +298,7 @@ if(!AN && !open && !infected & !imp) AN = "None:" if(!(e.status & ORGAN_DESTROYED)) - dat += "[e.display_name][e.burn_dam][e.brute_dam][bled][AN][splint][open][infected][imp][internal_bleeding]" + dat += "[e.display_name][e.burn_dam][e.brute_dam][bled][AN][splint][open][infected][imp][internal_bleeding][lung_ruptured]" else dat += "[e.display_name]--Not Found" dat += "" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 45008dc63e2..f5cbd1d82d3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -949,7 +949,7 @@ gloves.germ_level += n else germ_level += n - + /mob/living/carbon/human/revive() for (var/datum/organ/external/O in organs) O.status &= ~ORGAN_BROKEN @@ -970,4 +970,18 @@ del(H) - ..() + ..() + +/mob/living/carbon/human/proc/is_lung_ruptured() + var/datum/organ/external/chest/E = get_organs("chest") + return E.ruptured_lungs + + +/mob/living/carbon/human/proc/rupture_lung() + var/datum/organ/external/chest/E = get_organs("chest") + + if(E.ruptured_lungs == 0) + src.custom_pain("You feel a stabbing pain in your chest!", 1) + + E.ruptured_lungs = 1 + diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 7290b23d4e5..ea79c01a5b2 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -488,16 +488,22 @@ proc/breathe() - if(reagents.has_reagent("lexorin")) return if(istype(loc, /obj/machinery/atmospherics/unary/cryo_cell)) return + var/lung_ruptured = is_lung_ruptured() + if(lung_ruptured && prob(2)) + spawn emote("me", 1, "coughs up blood!") + src.drip(10) + var/datum/gas_mixture/environment = loc.return_air() var/datum/gas_mixture/breath // HACK NEED CHANGING LATER if(health < 0) losebreath++ - + if(lung_ruptured && prob(4)) + spawn emote("me", 1, "gasps for air!") + losebreath += 5 if(losebreath>0) //Suffocating so do not take a breath losebreath-- if (prob(10)) //Gasp per 10 ticks? Sounds about right. @@ -700,6 +706,9 @@ apply_damage(HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head") fire_alert = max(fire_alert, 2) + if(oxyloss >= 50 && prob(oxyloss / 5)) + rupture_lung() + //Temporary fixes to the alerts. return 1 From 09cbf1f684d320a6eac61a303b2be8fb0662a7bf Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 16:45:22 +0100 Subject: [PATCH 07/11] Fixed a compile error. --- code/WorkInProgress/surgery.dm | 4 ++-- code/modules/mob/living/carbon/human/human.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm index 2409195a00f..5d773037370 100644 --- a/code/WorkInProgress/surgery.dm +++ b/code/WorkInProgress/surgery.dm @@ -1162,13 +1162,13 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user) target.custom_pain("The pain in your chest is living hell!",1) end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/datum/organ/external/chest/affected = get_organ("chest") + var/datum/organ/external/chest/affected = target.get_organ("chest") user.visible_message("[user] mends the rupture in [target]'s lungs with \the [tool].", \ "You mend the rupture in [target]'s lungs with \the [tool]." ) affected.ruptured_lungs = 0 fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - var/datum/organ/external/chest/affected = get_organ("chest") + var/datum/organ/external/chest/affected = target.get_organ("chest") user.visible_message("\red [user]'s hand slips, slicing an artery inside [target]'s chest with \the [tool]!", \ "\red Your hand slips, slicing an artery inside [target]'s chest with \the [tool]!") affected.createwound(CUT, 20) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f5cbd1d82d3..0199d048ba2 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -973,12 +973,12 @@ ..() /mob/living/carbon/human/proc/is_lung_ruptured() - var/datum/organ/external/chest/E = get_organs("chest") + var/datum/organ/external/chest/E = get_organ("chest") return E.ruptured_lungs /mob/living/carbon/human/proc/rupture_lung() - var/datum/organ/external/chest/E = get_organs("chest") + var/datum/organ/external/chest/E = get_organ("chest") if(E.ruptured_lungs == 0) src.custom_pain("You feel a stabbing pain in your chest!", 1) From 397f010de5d87d680093b7db29e5d2b3bb21cdae Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 16:51:58 +0100 Subject: [PATCH 08/11] Buff bandage healing speed. A LOT. --- code/datums/organs/organ_external.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm index 1487e8a048a..1eda7392f28 100644 --- a/code/datums/organs/organ_external.dm +++ b/code/datums/organs/organ_external.dm @@ -192,9 +192,8 @@ if(W.is_treated()) // slow healing var/amount = 0.2 - if(W.bandaged) amount++ - if(W.salved) amount++ - if(W.disinfected) amount++ + if(W.is_treated()) + amount += 10 // amount of healing is spread over all the wounds W.heal_damage((wound_update_accuracy * amount * W.amount * config.organ_regeneration_multiplier) / (20*owner.number_wounds+1)) From c96d245f2d51646548872ccad3b84d8f1159234e Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 18:01:55 +0100 Subject: [PATCH 09/11] Fixed a bug where all organs would heal always. --- code/datums/organs/organ_external.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm index 1eda7392f28..8e31e6db0f2 100644 --- a/code/datums/organs/organ_external.dm +++ b/code/datums/organs/organ_external.dm @@ -189,7 +189,7 @@ W.open_wound(0.1 * wound_update_accuracy) owner.vessel.remove_reagent("blood",0.2 * W.damage * wound_update_accuracy) - if(W.is_treated()) + if(W.bandaged || W.salved) // slow healing var/amount = 0.2 if(W.is_treated()) From 0491390edc9d84452167bf79440a70d82ad866f7 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 18:13:04 +0100 Subject: [PATCH 10/11] Corrected the blood warning levels in medical scanner. --- code/game/objects/items/devices/scanners.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6155dd6a767..2793ce28d80 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -123,12 +123,12 @@ MASS SPECTROMETER TX = M.getToxLoss() > 50 ? "Dangerous amount of toxins detected" : "Subject bloodstream toxin level minimal" BU = M.getFireLoss() > 50 ? "Severe burn damage detected" : "Subject burn injury status O.K" BR = M.getBruteLoss() > 50 ? "Severe anatomical damage detected" : "Subject brute-force injury status O.K" - if(M.status_flags & FAKEDEATH) + if(M.status_flags & FAKEDEATH) OX = fake_oxy > 50 ? "\red Severe oxygen deprivation detected\blue" : "Subject bloodstream oxygen level normal" user.show_message("[OX] | [TX] | [BU] | [BR]") if (istype(M, /mob/living/carbon/human)) if(M:virus2 || M:reagents.total_volume > 0) - user.show_message(text("\red Warning: Unknown substance detected in subject's blood.")) + user.show_message(text("\red Warning: Unknown substance detected in subject's blood.")) if (M.getCloneLoss()) user.show_message("\red Subject appears to have been imperfectly cloned.") for(var/datum/disease/D in M.viruses) @@ -152,7 +152,7 @@ MASS SPECTROMETER user << "\red Unsecured fracture in subject [limb]. Splinting recommended for transport." if(e.is_infected()) user << "\red Infected wound detected in subject [limb]. Disinfection recommended." - + for(var/name in H.organs_by_name) var/datum/organ/external/e = H.organs_by_name[name] if(e.status & ORGAN_BROKEN) @@ -162,7 +162,7 @@ MASS SPECTROMETER var/blood_volume = round(M:vessel.get_reagent_amount("blood")) var/blood_percent = blood_volume / 560 blood_percent *= 100 - if(blood_volume <= 448) + if(blood_volume <= 500) user.show_message("\red Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl") else if(blood_volume <= 336) user.show_message("\red Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl") From 97272ec1dd3319a35c77a4bf4902429ff8947504 Mon Sep 17 00:00:00 2001 From: cib Date: Wed, 14 Nov 2012 18:18:49 +0100 Subject: [PATCH 11/11] Updated changelog. --- html/changelog.html | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 5dccabb4ba2..c1b7cf1c227 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -63,6 +63,10 @@ should be listed in the changelog upon commit though. Thanks. -->
  • Virologist are now alt title of Medical Doctor, like Surgeon or EMT. All medical jobs now have virology access.
  • Added scientist alt titles.
  • +
      +
    • Lungs can now rupture from exposure to low oxygen environments. Use alien-surgery, and then scalpel instead of hemostat, to fix.
    • +
    • Bandage/ointment healing sped up by a factor 10.
    • +