diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index a0264872db6..25d97c8e724 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -15502,6 +15502,7 @@
/obj/item/folder/yellow,
/obj/item/multitool,
/obj/item/pen/red,
+/obj/item/screwdriver/cargo,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "brown"
@@ -26673,6 +26674,7 @@
listening = 0;
pixel_y = 28
},
+/obj/item/wirecutters/security,
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "vault"
@@ -29387,6 +29389,7 @@
name = "north bump";
pixel_y = 28
},
+/obj/item/crowbar/engineering,
/turf/simulated/floor/plasteel,
/area/engine/break_room)
"bzP" = (
@@ -95806,6 +95809,7 @@
/obj/structure/table/reinforced,
/obj/item/storage/toolbox/mechanical,
/obj/item/wrench,
+/obj/item/weldingtool/research,
/turf/simulated/floor/plasteel/white,
/area/toxins/explab)
"vzo" = (
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 6781bcb847d..87051ddaeb0 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -8845,7 +8845,6 @@
/obj/item/stack/sheet/glass{
amount = 12
},
-/obj/item/crowbar,
/obj/item/grenade/chem_grenade/metalfoam,
/obj/item/grenade/chem_grenade/metalfoam,
/obj/effect/turf_decal/bot,
@@ -8854,6 +8853,7 @@
d2 = 8;
icon_state = "4-8"
},
+/obj/item/crowbar/engineering,
/turf/simulated/floor/plasteel,
/area/engine/hardsuitstorage)
"aLq" = (
@@ -46129,6 +46129,7 @@
"cNu" = (
/obj/structure/table,
/obj/item/crowbar,
+/obj/item/weldingtool/research,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
@@ -63957,6 +63958,7 @@
/obj/structure/table/reinforced,
/obj/item/taperecorder,
/obj/item/flashlight/lamp,
+/obj/item/wirecutters/security,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -73809,6 +73811,7 @@
},
/obj/item/book/manual/wiki/sop_supply,
/obj/item/storage/belt/utility,
+/obj/item/screwdriver/cargo,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "brown"
diff --git a/_maps/map_files/cerestation/cerestation.dmm b/_maps/map_files/cerestation/cerestation.dmm
index e142309d928..962f2949a1b 100644
--- a/_maps/map_files/cerestation/cerestation.dmm
+++ b/_maps/map_files/cerestation/cerestation.dmm
@@ -9070,6 +9070,7 @@
name = "east bump"
},
/obj/machinery/atmospherics/unary/vent_scrubber/on,
+/obj/item/wirecutters/security,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -19575,6 +19576,7 @@
pixel_y = 5
},
/obj/item/clothing/gloves/color/yellow,
+/obj/item/crowbar/engineering,
/turf/simulated/floor/plasteel{
icon_state = "darkyellow"
},
@@ -25933,6 +25935,7 @@
name = "cargo display";
pixel_y = 32
},
+/obj/item/screwdriver/cargo,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "darkbrown"
@@ -69813,6 +69816,7 @@
d2 = 8;
icon_state = "4-8"
},
+/obj/item/weldingtool/research,
/turf/simulated/floor/plasteel{
icon_state = "white"
},
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 5629caa1e87..8248da6aa10 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -9706,6 +9706,7 @@
/obj/structure/table/reinforced,
/obj/item/taperecorder,
/obj/item/flashlight/lamp,
+/obj/item/wirecutters/security,
/turf/simulated/floor/plasteel{
icon_state = "dark"
},
@@ -39446,6 +39447,7 @@
"bWW" = (
/obj/structure/table,
/obj/item/storage/belt/utility,
+/obj/item/screwdriver/cargo,
/turf/simulated/floor/plasteel,
/area/quartermaster/office)
"bWY" = (
@@ -57087,7 +57089,6 @@
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/gloves/color/black,
-/obj/item/crowbar/large,
/obj/item/storage/box/lights/mixed,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
@@ -57097,6 +57098,7 @@
name = "south bump";
pixel_y = -28
},
+/obj/item/crowbar/engineering,
/turf/simulated/floor/plasteel,
/area/engine/equipmentstorage)
"cTU" = (
@@ -58749,6 +58751,7 @@
d2 = 2;
icon_state = "0-2"
},
+/obj/item/weldingtool/research,
/turf/simulated/floor/plasteel{
dir = 1;
icon_state = "whitepurple"
diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm
index e1607e853b5..d87fd8dd51a 100644
--- a/code/game/objects/items/tools/crowbar.dm
+++ b/code/game/objects/items/tools/crowbar.dm
@@ -69,6 +69,42 @@
item_state = "crowbar_large"
toolspeed = 0.5
+/obj/item/crowbar/engineering
+ name = "engineering crowbar"
+ desc = "It's a big crowbar, perfect for fending off those assistants trying to get at your gloves."
+ force = 12
+ //w_class = WEIGHT_CLASS_NORMAL Commented out so it can fit in belts
+ throw_speed = 3
+ throw_range = 3
+ materials = list(MAT_METAL = 400)
+ icon_state = "crowbar_eng"
+ item_state = "crowbar_eng"
+ belt_icon = "crowbar_eng"
+ toolspeed = 0.5
+
+/obj/item/crowbar/engineering/suicide_act(mob/living/user)
+
+ if(!user)
+ return
+
+ user.visible_message("[user] looks up and hooks [src] into a ceiling tile! It looks like [user.p_theyre()] trying to commit suicide!")
+
+ user.Immobilize(10 SECONDS)
+ playsound(loc, 'sound/items/crowbar.ogg', 50, TRUE, -1)
+
+ sleep(2 SECONDS)
+ add_fingerprint(user)
+
+ to_chat(user, "You pry open the ceiling tile above you and look beyond it.. oh God, what the hell is that?!")
+ user.emote("scream")
+ animate_fading_leap_up(user)
+
+ for(var/obj/item/W in user)
+ user.unEquip(W)
+
+ user.dust()
+ return OBLITERATION
+
/obj/item/crowbar/cyborg
name = "hydraulic crowbar"
desc = "A hydraulic prying tool, compact but powerful. Designed to replace crowbar in construction cyborgs."
diff --git a/code/game/objects/items/tools/multitool.dm b/code/game/objects/items/tools/multitool.dm
index db2b0b4b488..857f256a6d1 100644
--- a/code/game/objects/items/tools/multitool.dm
+++ b/code/game/objects/items/tools/multitool.dm
@@ -112,8 +112,10 @@
name = "command multitool"
desc = "Used for pulsing wires to test which to cut. Not recommended by the Captain."
icon_state = "multitool_command"
+ item_state = "multitool_command"
belt_icon = "multitool_command"
toolspeed = 0.95 //command those wires / that fireaxe cabinet!
+ var/list/victims = list()
/obj/item/multitool/command/suicide_act(mob/living/user)
user.visible_message("[user] is attempting to command the command multitool! It looks like [user.p_theyre()] trying to commit suicide!")
@@ -121,13 +123,19 @@
if(!user)
return
- user.Stun(10 SECONDS)
- playsound(loc, 'sound/effects/supermatter.ogg', 50, TRUE, -1)
+ user.Immobilize(10 SECONDS)
sleep(20)
-
add_fingerprint(user)
- desc += " Its screen displays the text \"[user.name]: executed for mutiny.\""
+ var/base_desc = "Used for pulsing wires to test which to cut. Not recommended by the Captain. Its screen displays the text \""
+ victims += user.name
+
+ if(length(victims) < 3)
+ desc = base_desc + english_list(victims) + ": executed for mutiny.\""
+ else
+ desc = base_desc + english_list(victims) + ", all executed for mutiny. Impressive.\""
+
+ playsound(loc, 'sound/effects/supermatter.ogg', 50, TRUE, -1)
for(var/obj/item/W in user)
user.unEquip(W)
diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm
index f482b214ba1..c85bed35941 100644
--- a/code/game/objects/items/tools/screwdriver.dm
+++ b/code/game/objects/items/tools/screwdriver.dm
@@ -67,6 +67,29 @@
random_color = FALSE
resistance_flags = FIRE_PROOF | ACID_PROOF
+/obj/item/screwdriver/cargo
+ name = "cargo screwdriver"
+ desc = "A brownish screwdriver belonging to the supply department. Unfortunately, it can't do all the paperwork for you..."
+ icon_state = "screwdriver_cargo"
+ belt_icon = "screwdriver_cargo"
+ toolspeed = 0.75
+ random_color = FALSE
+
+/obj/item/screwdriver/cargo/suicide_act(mob/living/user)
+
+ if(!user)
+ return
+ user.visible_message("[user] is trying to take [src]'s independence! It looks like [user.p_theyre()] trying to commit suicide!")
+
+ user.Immobilize(10 SECONDS)
+ sleep(2 SECONDS)
+ add_fingerprint(user)
+
+ user.visible_message("[src] retaliates viciously!", "[src] retaliates viciously!")
+ playsound(loc, hitsound, 50, TRUE, -1)
+
+ return BRUTELOSS
+
/obj/item/screwdriver/abductor
name = "alien screwdriver"
desc = "An ultrasonic screwdriver."
diff --git a/code/game/objects/items/tools/welder.dm b/code/game/objects/items/tools/welder.dm
index d123b68f783..a0d0f60cd15 100644
--- a/code/game/objects/items/tools/welder.dm
+++ b/code/game/objects/items/tools/welder.dm
@@ -213,6 +213,34 @@
desc = "An advanced welder designed to be used in robotic systems."
toolspeed = 0.5
+/obj/item/weldingtool/research
+ name = "research welding tool"
+ desc = "A scratched-up welder that's been modified many times. Is it still the same tool?"
+ icon_state = "welder_research"
+ item_state = "welder_research"
+ belt_icon = "welder_research"
+ maximum_fuel = 40
+ toolspeed = 0.75
+ light_intensity = 1
+
+/obj/item/weldingtool/research/suicide_act(mob/living/user)
+
+ if(!user)
+ return
+
+ user.visible_message("[user] is tinkering with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+
+ to_chat(user, " You begin tinkering with [src]...")
+ user.Immobilize(10 SECONDS)
+ sleep(2 SECONDS)
+ add_fingerprint(user)
+
+ user.visible_message("[src] blows up in [user]'s face!", "Oh, shit!")
+ playsound(loc, "sound/effects/explosion1.ogg", 50, TRUE, -1)
+ user.gib()
+
+ return OBLITERATION
+
/obj/item/weldingtool/mini
name = "emergency welding tool"
desc = "A miniature welder used during emergencies."
diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm
index 1a8197683ee..fec28b3e8c1 100644
--- a/code/game/objects/items/tools/wirecutters.dm
+++ b/code/game/objects/items/tools/wirecutters.dm
@@ -47,6 +47,38 @@
playsound(loc, usesound, 50, 1, -1)
return BRUTELOSS
+/obj/item/wirecutters/security
+ name = "security wirecutters"
+ desc = "A pair of wirecutters with a tactical grip and robust build."
+ icon_state = "cutters_sec"
+ belt_icon = "wirecutters_sec"
+ item_state = "cutters_red" //shh
+ attack_verb = list("reformed", "robusted", "102'd") //102: battery in space law
+ force = 9 //same as seclites
+ toolspeed = 0.75
+ random_color = FALSE
+
+/obj/item/wirecutters/security/suicide_act(mob/living/user)
+
+ if(!user)
+ return
+ user.visible_message("[user] is cutting [user.p_themselves()] free from the mortal coil! It looks like [user.p_theyre()] trying to commit suicide!")
+
+
+ user.Immobilize(10 SECONDS)
+ sleep(2 SECONDS)
+ add_fingerprint(user)
+
+ playsound(loc, usesound, 50, TRUE, -1)
+
+ new /obj/item/restraints/handcuffs/cable/zipties/used(user.loc)
+
+ for(var/obj/item/W in user)
+ user.unEquip(W)
+
+ user.dust()
+ return OBLITERATION
+
/obj/item/wirecutters/brass
name = "brass wirecutters"
desc = "A pair of wirecutters made of brass. The handle feels freezing cold to the touch."
diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm
index e6a81d2d323..14b2bbce919 100644
--- a/code/game/objects/items/tools/wrench.dm
+++ b/code/game/objects/items/tools/wrench.dm
@@ -97,8 +97,8 @@
animate(filter, alpha = 110, time = 3, loop = -1)
animate(alpha = 40, time = 6)
- // Stun stops them from wandering off
- user.Stun(10 SECONDS)
+ // Immobilize stops them from wandering off and dropping the wrench
+ user.Immobilize(10 SECONDS)
playsound(loc, 'sound/effects/pray.ogg', 50, 1, -1)
// Let the sound effect finish playing
diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi
index c841b8bb928..5153d41f4d3 100644
Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ
diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi
index 5b4c8295916..7bd06900925 100644
Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ
diff --git a/icons/obj/clothing/belts.dmi b/icons/obj/clothing/belts.dmi
index 5d94c9ff114..df3e2f292c7 100644
Binary files a/icons/obj/clothing/belts.dmi and b/icons/obj/clothing/belts.dmi differ
diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi
index 5c23850eee4..ed5a31bc613 100644
Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ