diff --git a/code/WorkInProgress/surgery.dm b/code/WorkInProgress/surgery.dm index ee99b6a0217..31c97c78210 100644 --- a/code/WorkInProgress/surgery.dm +++ b/code/WorkInProgress/surgery.dm @@ -274,6 +274,47 @@ proc/build_surgery_steps_list() "\red Your hand slips, nicking internal organs in [target]'s abdomen with \the [tool]!") affected.createwound(BRUISE, 20) + +////////////////////////////////////////////////////////////////// +// INTERNAL WOUND PATCHING // +////////////////////////////////////////////////////////////////// + + +/datum/surgery_step/fix_vein + required_tool = /obj/item/weapon/FixOVein + + can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + + var/internal_bleeding = 0 + for(var/datum/wound/W in affected.wounds) if(W.internal) + internal_bleeding = 1 + break + + return affected.open == 2 && internal_bleeding + + begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + if (affected.stage == 0) + user.visible_message("[user] starts patching the damaged vein in [target]'s [affected.display_name] with \the [tool]." , \ + "You start patching the damaged vein in [target]'s [affected.display_name] with \the [tool].") + + end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + user.visible_message("\blue [user] has patched the damaged vein in [target]'s [affected.display_name] with \the [tool].", \ + "\blue You have patched the damaged vein in [target]'s [affected.display_name] with \the [tool].") + + for(var/datum/wound/W in affected.wounds) if(W.internal) + affected.wounds -= W + affected.update_damages() + + fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/datum/organ/external/affected = target.get_organ(target_zone) + user.visible_message("\red [user]'s hand slips, smearing [tool] in the incision in [target]'s [affected.display_name]!" , \ + "\red Your hand slips, smearing [tool] in the incision in [target]'s [affected.display_name]!") + affected.take_damage(5, 0) + + ////////////////////////////////////////////////////////////////// // BONE SURGERY // ////////////////////////////////////////////////////////////////// diff --git a/code/datums/organs/organ_external.dm b/code/datums/organs/organ_external.dm index a64122f70c2..722234ef32f 100644 --- a/code/datums/organs/organ_external.dm +++ b/code/datums/organs/organ_external.dm @@ -428,7 +428,7 @@ W = new wound_type(damage) if(BURN) - var/list/size_names = list(/datum/wound/moderate_burn, /datum/wound/large_burn, /datum/wound/severe_burn, /datum/wound/deep_burn, /datum/wound/carbonised_area) + var/list/size_names = list(/datum/wound/moderate_burn, /datum/wound/large_burn, /datum/wound/severe_burn, /datum/wound/deep_burn, /datum/wound/carbonised_area, /datum/wound/carbonised_area) wound_type = size_names[size] W = new wound_type(damage) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index c97680fa145..10f6facf010 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -1729,6 +1729,15 @@ force = 0 throwforce = 1.0 +/obj/item/weapon/FixOVein + name = "FixOVein" + icon = 'surgery.dmi' + icon_state = "fixovein" + force = 0 + throwforce = 1.0 + origin_tech = "materials=1;biotech=3" + var/usage_amount = 10 + /obj/item/weapon/bonesetter name = "bone setter" icon = 'surgery.dmi' diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index e6456a07e6a..3faf3bebaf2 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -90,3 +90,23 @@ update_icon() else return ..() + +/obj/machinery/iv_drip/examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=src.loc) return + + if(beaker) + usr << "\blue Attached is \a [beaker] with:" + if(beaker.reagents && beaker.reagents.reagent_list.len) + for(var/datum/reagent/R in beaker.reagents.reagent_list) + usr << "\blue [R.volume] units of [R.name]" + else + usr << "\blue Attached is an empty [beaker]." + else + usr << "\blue No chemicals are attached." + + if(attached) + usr << "\blue [attached] is attached." + else + usr << "\blue No one is attached." \ No newline at end of file diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 9023d34e9f6..9fe4f7d4f62 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -14,9 +14,10 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an", "monkey", "ali if (src.handle_spam_prevention(msg,MUTE_ADMINHELP)) return - src.verbs -= /client/verb/adminhelp + /**src.verbs -= /client/verb/adminhelp spawn(1200) - src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps + src.verbs += /client/verb/adminhelp // 2 minute cool-down for adminhelps//Go to hell + **/ if(!msg) return msg = sanitize(copytext(msg,1,MAX_MESSAGE_LEN)) diff --git a/code/modules/mob/new_player/preferences.dm b/code/modules/mob/new_player/preferences.dm index 9a098946cf6..a0ddc987a63 100644 --- a/code/modules/mob/new_player/preferences.dm +++ b/code/modules/mob/new_player/preferences.dm @@ -1163,6 +1163,8 @@ datum/preferences character.h_style = h_style character.f_style = f_style + character.skills = skills + // Destroy/cyborgize organs for(var/name in organ_data) var/datum/organ/external/O = character.organs[name] diff --git a/maps/tgstation.2.0.9.1.dmm b/maps/tgstation.2.0.9.1.dmm index c12bb7cbf9d..82f6a622880 100644 --- a/maps/tgstation.2.0.9.1.dmm +++ b/maps/tgstation.2.0.9.1.dmm @@ -4829,7 +4829,7 @@ "bOS" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bOT" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/surgery) "bOU" = (/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Obshutter"; name = "Observation Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/surgery) -"bOV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/bonegel,/obj/item/weapon/bonegel,/obj/item/weapon/bonegel,/turf/simulated/floor,/area/medical/surgery) +"bOV" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/bonegel,/obj/item/weapon/FixOVein{pixel_x = -8},/turf/simulated/floor,/area/medical/surgery) "bOW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bOX" = (/obj/machinery/optable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery) "bOY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/surgery)