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