diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index 9364f1b859..58c5d18ea0 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -8,10 +8,6 @@ * Circular Saw */ -/* - * Retractor - */ - /obj/item/weapon/surgical name = "Surgical tool" desc = "This shouldn't be here, ahelp it." @@ -25,10 +21,13 @@ return 0 ..() +/* + * Retractor + */ + /obj/item/weapon/surgical/retractor name = "retractor" desc = "Retracts stuff." - icon = 'icons/obj/surgery.dmi' icon_state = "retractor" matter = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 5000) origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1) @@ -173,3 +172,33 @@ throw_speed = 3 throw_range = 5 attack_verb = list("attacked", "hit", "bludgeoned") + + +// Cyborg Tools + +/obj/item/weapon/surgical/retractor/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/hemostat/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/cautery/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/surgicaldrill/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/scalpel/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/circular_saw/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/bonegel/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/FixOVein/cyborg + toolspeed = 0.5 + +/obj/item/weapon/surgical/bonesetter/cyborg + toolspeed = 0.5 \ No newline at end of file diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 92b05760b6..6ff7ff8f72 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -312,19 +312,19 @@ /obj/item/weapon/weldingtool/examine(mob/user) if(..(user, 0)) if(max_fuel) - user << text("\icon[] [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel ) + to_chat(user, text("\icon[] The [] contains []/[] units of fuel!", src, src.name, get_fuel(),src.max_fuel )) /obj/item/weapon/weldingtool/attackby(obj/item/W as obj, mob/living/user as mob) if(istype(W,/obj/item/weapon/screwdriver)) if(welding) - user << "Stop welding first!" + to_chat(user, "Stop welding first!") return status = !status if(status) - user << "You secure the welder." + to_chat(user, "You secure the welder.") else - user << "The welder can now be attached and modified." + to_chat(user, "The welder can now be attached and modified.") src.add_fingerprint(user) return @@ -380,16 +380,16 @@ if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) if(!welding && max_fuel) O.reagents.trans_to_obj(src, max_fuel) - user << "Welder refueled" + to_chat(user, "Welder refueled") playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) return else if(!welding) - user << "[src] doesn't use fuel." + to_chat(user, "[src] doesn't use fuel.") return else message_admins("[key_name_admin(user)] triggered a fueltank explosion with a welding tool.") log_game("[key_name(user)] triggered a fueltank explosion with a welding tool.") - user << "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done." + to_chat(user, "You begin welding on the fueltank and with a moment of lucidity you realize, this might not have been the smartest thing you've ever done.") var/obj/structure/reagent_dispensers/fueltank/tank = O tank.explode() return @@ -429,7 +429,7 @@ return 1 else if(M) - M << "You need more welding fuel to complete this task." + to_chat(M, "You need more welding fuel to complete this task.") update_icon() return 0 @@ -509,7 +509,7 @@ if(set_welding && !welding) if (get_fuel() > 0) if(M) - M << "You switch the [src] on." + to_chat(M, "You switch the [src] on.") else if(T) T.visible_message("\The [src] turns on.") playsound(loc, acti_sound, 50, 1) @@ -524,14 +524,14 @@ else if(M) var/msg = max_fuel ? "welding fuel" : "charge" - M << "You need more [msg] to complete this task." + to_chat(M, "You need more [msg] to complete this task.") return //Otherwise else if(!set_welding && welding) if(!always_process) processing_objects -= src if(M) - M << "You switch \the [src] off." + to_chat(M, "You switch \the [src] off.") else if(T) T.visible_message("\The [src] turns off.") playsound(loc, deac_sound, 50, 1) @@ -556,29 +556,29 @@ return switch(safety) if(1) - usr << "Your eyes sting a little." + to_chat(usr, "Your eyes sting a little.") E.damage += rand(1, 2) if(E.damage > 12) user.eye_blurry += rand(3,6) if(0) - usr << "Your eyes burn." + to_chat(usr, "Your eyes burn.") E.damage += rand(2, 4) if(E.damage > 10) E.damage += rand(4,10) if(-1) - usr << "Your thermals intensify the welder's glow. Your eyes itch and burn severely." + to_chat(usr, "Your thermals intensify the welder's glow. Your eyes itch and burn severely.") user.eye_blurry += rand(12,20) E.damage += rand(12, 16) if(safety<2) if(E.damage > 10) - user << "Your eyes are really starting to hurt. This can't be good for you!" + to_chat(user, "Your eyes are really starting to hurt. This can't be good for you!") if (E.damage >= E.min_broken_damage) - user << "You go blind!" + to_chat(user, "You go blind!") user.sdisabilities |= BLIND else if (E.damage >= E.min_bruised_damage) - user << "You go blind!" + to_chat(user, "You go blind!") user.Blind(5) user.eye_blurry = 5 user.disabilities |= NEARSIGHTED @@ -688,16 +688,19 @@ cell_type = null /obj/item/weapon/weldingtool/electric/examine(mob/user) - ..() - if(power_supply) - user << text("\icon[] [] has [] charge left.", src, src.name, get_fuel()) - else - user << text("\icon[] [] has power for no power cell!", src, src.name) + if(get_dist(src, user) > 1) + to_chat(user, desc) + else // The << need to stay, for some reason + if(power_supply) + user << text("\icon[] The [] has [] charge left.", src, src.name, get_fuel()) + else + user << text("\icon[] The [] has no power cell!", src, src.name) /obj/item/weapon/weldingtool/electric/get_fuel() if(use_external_power) var/obj/item/weapon/cell/external = get_external_power_supply() - return external.charge + if(external) + return external.charge else if(power_supply) return power_supply.charge else @@ -727,7 +730,7 @@ return 1 else if(M) - M << "You need more energy to complete this task." + to_chat(M, "You need more energy to complete this task.") update_icon() return 0 @@ -737,7 +740,7 @@ power_supply.update_icon() user.put_in_hands(power_supply) power_supply = null - user << "You remove the cell from the [src]." + to_chat(user, "You remove the cell from the [src].") setWelding(0) update_icon() return @@ -752,12 +755,12 @@ user.drop_item() W.loc = src power_supply = W - user << "You install a cell in \the [src]." + to_chat(user, "You install a cell in \the [src].") update_icon() else - user << "\The [src] already has a cell." + to_chat(user, "\The [src] already has a cell.") else - user << "\The [src] cannot use that type of cell." + to_chat(user, "\The [src] cannot use that type of cell.") else ..() @@ -778,6 +781,8 @@ /obj/item/weapon/weldingtool/electric/mounted use_external_power = 1 +/obj/item/weapon/weldingtool/electric/mounted/cyborg + toolspeed = 0.5 /* * Crowbar */ @@ -814,7 +819,7 @@ return ..() if(!welding) - user << "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!" + to_chat(user, "You'll need to turn [src] on to patch the damage on [H]'s [S.name]!") return 1 if(S.robo_repair(15, BRUTE, "some dents", src, user)) @@ -878,9 +883,9 @@ /obj/item/weapon/combitool/examine() ..() if(loc == usr && tools.len) - usr << "It has the following fittings:" + to_chat(usr, "It has the following fittings:") for(var/obj/item/tool in tools) - usr << "\icon[tool] - [tool.name][tools[current_tool]==tool?" (selected)":""]" + to_chat(usr, "\icon[tool] - [tool.name][tools[current_tool]==tool?" (selected)":""]") /obj/item/weapon/combitool/New() ..() @@ -891,9 +896,9 @@ if(++current_tool > tools.len) current_tool = 1 var/obj/item/tool = tools[current_tool] if(!tool) - user << "You can't seem to find any fittings in \the [src]." + to_chat(user, "You can't seem to find any fittings in \the [src].") else - user << "You switch \the [src] to the [tool.name] fitting." + to_chat(user, "You switch \the [src] to the [tool.name] fitting.") return 1 /obj/item/weapon/combitool/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 8d9becaa4b..a92a639661 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -212,19 +212,20 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/borg/sight/hud/med(src) src.modules += new /obj/item/device/healthanalyzer(src) src.modules += new /obj/item/weapon/reagent_containers/borghypo/surgeon(src) - src.modules += new /obj/item/weapon/surgical/scalpel(src) - src.modules += new /obj/item/weapon/surgical/hemostat(src) - src.modules += new /obj/item/weapon/surgical/retractor(src) - src.modules += new /obj/item/weapon/surgical/cautery(src) - src.modules += new /obj/item/weapon/surgical/bonegel(src) - src.modules += new /obj/item/weapon/surgical/FixOVein(src) - src.modules += new /obj/item/weapon/surgical/bonesetter(src) - src.modules += new /obj/item/weapon/surgical/circular_saw(src) - src.modules += new /obj/item/weapon/surgical/surgicaldrill(src) + src.modules += new /obj/item/weapon/surgical/scalpel/cyborg(src) + src.modules += new /obj/item/weapon/surgical/hemostat/cyborg(src) + src.modules += new /obj/item/weapon/surgical/retractor/cyborg(src) + src.modules += new /obj/item/weapon/surgical/cautery/cyborg(src) + src.modules += new /obj/item/weapon/surgical/bonegel/cyborg(src) + src.modules += new /obj/item/weapon/surgical/FixOVein/cyborg(src) + src.modules += new /obj/item/weapon/surgical/bonesetter/cyborg(src) + src.modules += new /obj/item/weapon/surgical/circular_saw/cyborg(src) + src.modules += new /obj/item/weapon/surgical/surgicaldrill/cyborg(src) src.modules += new /obj/item/weapon/gripper/no_use/organ(src) src.modules += new /obj/item/weapon/gripper/medical(src) src.modules += new /obj/item/weapon/shockpaddles/robot(src) src.modules += new /obj/item/weapon/reagent_containers/dropper(src) // Allows surgeon borg to fix necrosis + src.modules += new /obj/item/weapon/reagent_containers/syringe(src) src.emag = new /obj/item/weapon/reagent_containers/spray(src) src.emag.reagents.add_reagent("pacid", 250) src.emag.name = "Polyacid spray" @@ -356,7 +357,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/rcd/borg(src) src.modules += new /obj/item/weapon/screwdriver/cyborg(src) src.modules += new /obj/item/weapon/wrench/cyborg(src) - src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src) + src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src) src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) src.modules += new /obj/item/device/pipe_painter(src) src.modules += new /obj/item/device/floor_painter(src) @@ -394,7 +395,7 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/robot/engineering/general/New() ..() src.modules += new /obj/item/borg/sight/meson(src) - src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src) + src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src) src.modules += new /obj/item/weapon/screwdriver/cyborg(src) src.modules += new /obj/item/weapon/wrench/cyborg(src) src.modules += new /obj/item/weapon/wirecutters/cyborg(src) @@ -708,13 +709,13 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/gripper/no_use/loader(src) src.modules += new /obj/item/device/robotanalyzer(src) src.modules += new /obj/item/weapon/card/robot(src) - src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src) + src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src) src.modules += new /obj/item/weapon/screwdriver/cyborg(src) src.modules += new /obj/item/weapon/wrench/cyborg(src) src.modules += new /obj/item/weapon/wirecutters/cyborg(src) src.modules += new /obj/item/device/multitool(src) - src.modules += new /obj/item/weapon/surgical/scalpel(src) - src.modules += new /obj/item/weapon/surgical/circular_saw(src) + src.modules += new /obj/item/weapon/surgical/scalpel/cyborg(src) + src.modules += new /obj/item/weapon/surgical/circular_saw/cyborg(src) src.modules += new /obj/item/weapon/reagent_containers/syringe(src) src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src) src.modules += new /obj/item/weapon/storage/part_replacer(src) @@ -849,7 +850,7 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/drone/New(var/mob/living/silicon/robot/robot) ..() src.modules += new /obj/item/borg/sight/meson(src) - src.modules += new /obj/item/weapon/weldingtool/electric/mounted(src) + src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src) src.modules += new /obj/item/weapon/screwdriver/cyborg(src) src.modules += new /obj/item/weapon/wrench/cyborg(src) src.modules += new /obj/item/weapon/crowbar/cyborg(src) diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 19007addae..8aab6a0a46 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -127,7 +127,8 @@ // Not staying still fails you too. if(success) - if(!do_mob(user, M, rand(S.min_duration, S.max_duration))) + var/calc_duration = rand(S.min_duration, S.max_duration) + if(!do_mob(user, M, calc_duration * toolspeed)) success = FALSE to_chat(user, "You must remain close to your patient to conduct surgery.")