From 22c6c5493ea642151a6d9b0efaa5f25e38ff8450 Mon Sep 17 00:00:00 2001 From: BaraBara Date: Sun, 29 Sep 2024 00:13:06 +0500 Subject: [PATCH 1/5] 1 --- code/game/objects/items/devices/multitool.dm | 175 ++++++++++++++++++- 1 file changed, 174 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index fe602a375a1..67b801d6ef1 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -75,4 +75,177 @@ user.AddTopicPrint(src) MT.interact(src, user) - return 1 + return FALSE + +/obj/item/device/multitool/advtool + name = "Advanced Multitool" + desc = "This small, handheld device is made of durable, insulated plastic, has a rubber grip, and can be used as a multitool, screwdriver or wirecutters." + description_info = "Multitools are incredibly versatile and can be used on a wide variety of machines. The most common use for this is to trip a device's wires without having to cut them. Simply click on an object with exposed wiring to use it. This one can also be used as a screwdriver or wirecutters. There might be other uses, as well..." + description_fluff = "This device is not just a regular multitool - it is a masterpiece. You can deal with almost any machine using only this little thing." + description_antag = "This handy little tool can get you through doors, turn off power, and anything else you might need." + icon = 'icons/obj/device.dmi' + item_state = "multitool" + icon_state = "advtool" + force = 5.0 + w_class = ITEM_SIZE_SMALL + throwforce = 5.0 + throw_range = 15 + + matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 200) + + origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 4) + + var/obj/item/device/multitool/advpart/multitool = null + var/obj/item/screwdriver/advpart/screwdriver = null + var/obj/item/wirecutters/advpart/wirecutters = null + +/obj/item/device/multitool/advtool/Initialize() + . = ..() + + multitool = new /obj/item/device/multitool/advpart(src) + screwdriver = new /obj/item/screwdriver/advpart(src) + wirecutters = new /obj/item/wirecutters/advpart(src) + tool_c = "multitool" + tool_behaviour = TOOL_MULTITOOL + +/obj/item/device/multitool/advtool/switchtools() + if(tool_c == "multitool") + if(screwdriver) + tool_c = "screwdriver" + tool_behaviour = TOOL_SCREWDRIVER + sharp = TRUE + else + tool_c = "wirecutters" + tool_behaviour = TOOL_WIRECUTTER + sharp = FALSE + else if(tool_c == "screwdriver") + if(wirecutters) + tool_c = "wirecutters" + tool_behaviour = TOOL_WIRECUTTER + sharp = FALSE + else + tool_c = "multitool" + tool_behaviour = TOOL_MULTITOOL + sharp = FALSE + else if(tool_c == "wirecutters") + tool_c = "multitool" + tool_behaviour = TOOL_MULTITOOL + sharp = FALSE + update_icon() + return + +/obj/item/device/multitool/advtool/attack_self(mob/user) + if(!screwdriver && !wirecutters) + to_chat(user, "[src] lacks tools.") + return + ..() + +/obj/item/device/multitool/advtool/attack_hand(mob/user) + if(src != user.get_inactive_hand()) + return ..() + + if(!src.contents.len) + to_chat(user, "There's nothing in \the [src] to remove!") + return + + var/choice = input(user, "What would you like to remove from the [src]?") as null|anything in src.contents + if(!choice || !(choice in src.contents)) + return + + if(choice == multitool) + to_chat(user, "You cannot remove the multitool itself.") + return + + if(user.pick_or_drop(choice)) + to_chat(user, "You remove \the [choice] from \the [src].") + src.contents -= choice + if(choice == wirecutters) + wirecutters = null + else if(choice == screwdriver) + screwdriver = null + else + to_chat(user, "Something went wrong, please try again.") + + tool_c = "multitool" + tool_behaviour = TOOL_MULTITOOL + update_icon() + return + +/obj/item/device/multitool/advtool/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/screwdriver/advpart)) + var/obj/item/screwdriver/advpart/SD = I + if(!screwdriver) + contents += SD + user.drop(SD, src) + screwdriver = SD + to_chat(user, "You insert \the [SD] into \the [src].") + update_icon() + else + to_chat(user, "There's already \the [screwdriver] in \the [src]!") + else if(istype(I, /obj/item/wirecutters/advpart)) + var/obj/item/screwdriver/advpart/WC = I + if(!wirecutters) + contents += WC + user.drop(WC, src) + wirecutters = WC + to_chat(user, "You insert \the [WC] into \the [src].") + update_icon() + else + to_chat(user, "There are already \the [wirecutters] in \the [src]!") + else + return ..() + + +/obj/item/device/multitool/advpart + name = "compact multitool" + desc = "You are not supposed to see this, use this or interact with this at all. However, if nobody knows..." + description_info = "Multitools are incredibly versatile and can be used on a wide variety of machines. The most common use for this is to trip a device's wires without having to cut them. Simply click on an object with exposed wiring to use it. There might be other uses, as well..." + description_fluff = "The common, every day multitool is descended from certain electrical tools from Earth's early space age. Though none too cheap, they are incredibly handy, and can be found in any self-respecting technician's toolbox." + description_antag = "This handy little tool can get you through doors, turn off power, and anything else you might need." + item_state = "multitool" + icon_state = "adv_multitool" + force = 3.5 + w_class = ITEM_SIZE_TINY + throwforce = 3.5 + throw_range = 15 + origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 4) + matter = list(MATERIAL_STEEL = 25, MATERIAL_GLASS = 20) + +/obj/item/screwdriver/advpart + name = "compact screwdriver" + desc = "Just a regular screwdriver. However, this one is especially small." + description_info = "This tool is used to expose or safely hide away cabling. It can open and shut the maintenance panels on vending machines, airlocks, and much more. You can also use it, in combination with a crowbar, to install or remove windows." + description_fluff = "Screws have not changed significantly in centuries, and neither have the drivers used to install and remove them." + description_antag = "In the world of breaking and entering, tools like multitools and wirecutters are the bread; the screwdriver is the butter. In a pinch, try targetting someone's eyes and stabbing them with it - it'll really hurt!" + icon = 'icons/obj/device.dmi' + icon_state = "adv_screwdriver" + item_state = "screwdriver" + slot_flags = SLOT_BELT | SLOT_EARS + force = 5.0 + origin_tech = list(TECH_ENGINEERING = 4) + matter = list(MATERIAL_STEEL = 45) + lock_picking_level = 6 + +/obj/item/screwdriver/advpart/Initialize() + . = ..() + icon_state = "adv_screwdriver" + item_state = "screwdriver" + +/obj/item/wirecutters/advpart + name = "compact wirecutters" + desc = "A special pair of pliers with cutting edges. Various brackets and manipulators built into the handle allow it to repair severed wiring. This pair has some insulation." + description_info = "This tool will cut wiring anywhere you see it - make sure to wear insulated gloves! When used on more complicated machines or airlocks, it can not only cut cables, but repair them, as well." + description_fluff = "With modern alloys, today's wirecutters can snap through cables of astonishing thickness." + description_antag = "These cutters can be used to cripple the power anywhere on the ship. All it takes is some creativity, and being in the right place at the right time." + icon = 'icons/obj/device.dmi' + item_state = "cutters" + icon_state = "adv_wirecutters" + slot_flags = SLOT_BELT | SLOT_EARS + w_class = ITEM_SIZE_TINY + origin_tech = list(TECH_ENGINEERING = 4) + matter = list(MATERIAL_STEEL = 80) + +/obj/item/wirecutters/advpart/Initialize() + . = ..() + icon_state = "adv_wirecutters" + item_state = "cutters" From 5037c9196f6a706593912924e229ae426f51878c Mon Sep 17 00:00:00 2001 From: BaraBara Date: Sun, 29 Sep 2024 00:32:18 +0500 Subject: [PATCH 2/5] finish (maybe) --- baystation12.dme | 1 - code/datums/trading/goods.dm | 2 +- code/game/objects/items/devices/multitool.dm | 33 ++- code/game/objects/items/storage/belt.dm | 2 +- code/game/objects/items/tools/combo.dm | 204 ------------------ .../closets/secure/engineering.dm | 2 +- code/modules/Z_item_worth/worths_list.dm | 2 +- maps/eclipse/eclipse-1.dmm | 2 +- 8 files changed, 27 insertions(+), 221 deletions(-) delete mode 100644 code/game/objects/items/tools/combo.dm diff --git a/baystation12.dme b/baystation12.dme index 703c1a526b4..ce37367dd39 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1272,7 +1272,6 @@ #include "code\game\objects\items\tanks\jetpack.dm" #include "code\game\objects\items\tanks\tank_types.dm" #include "code\game\objects\items\tanks\tanks.dm" -#include "code\game\objects\items\tools\combo.dm" #include "code\game\objects\items\tools\crowbar.dm" #include "code\game\objects\items\tools\screwdriver.dm" #include "code\game\objects\items\tools\surgery.dm" diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm index f81887d5b2c..caa14b08301 100644 --- a/code/datums/trading/goods.dm +++ b/code/datums/trading/goods.dm @@ -96,7 +96,7 @@ /obj/item/cell/hyper = TRADER_THIS_TYPE, /obj/item/module = TRADER_SUBTYPES_ONLY, /obj/item/tracker_electronics = TRADER_THIS_TYPE, - /obj/item/combotool/advtool = TRADER_THIS_TYPE, + /obj/item/device/multitool/advtool = TRADER_THIS_TYPE, /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = TRADER_THIS_TYPE, /obj/item/modular_computer/laptop/preset/custom_loadout/cheap = TRADER_THIS_TYPE, /obj/item/computer_hardware = TRADER_ALL, diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index 67b801d6ef1..d8b713ba106 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -95,6 +95,7 @@ origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 4) + var/tool_c var/obj/item/device/multitool/advpart/multitool = null var/obj/item/screwdriver/advpart/screwdriver = null var/obj/item/wirecutters/advpart/wirecutters = null @@ -108,7 +109,12 @@ tool_c = "multitool" tool_behaviour = TOOL_MULTITOOL -/obj/item/device/multitool/advtool/switchtools() +/obj/item/device/multitool/advtool/on_update_icon() + underlays.Cut() + underlays += "adv_[tool_c]" + ..() + +/obj/item/device/multitool/advtool/proc/switchtools() if(tool_c == "multitool") if(screwdriver) tool_c = "screwdriver" @@ -136,16 +142,21 @@ /obj/item/device/multitool/advtool/attack_self(mob/user) if(!screwdriver && !wirecutters) - to_chat(user, "[src] lacks tools.") + to_chat(user, SPAN_NOTICE("[src] lacks tools.")) return - ..() + + switchtools() + to_chat(user, SPAN_NOTICE("[src] mode: [tool_c].")) + update_icon() + return + /obj/item/device/multitool/advtool/attack_hand(mob/user) if(src != user.get_inactive_hand()) return ..() if(!src.contents.len) - to_chat(user, "There's nothing in \the [src] to remove!") + to_chat(user, SPAN_WARNING("There's nothing in \the [src] to remove!")) return var/choice = input(user, "What would you like to remove from the [src]?") as null|anything in src.contents @@ -153,18 +164,18 @@ return if(choice == multitool) - to_chat(user, "You cannot remove the multitool itself.") + to_chat(user, SPAN_WARNING("You cannot remove the multitool itself.")) return if(user.pick_or_drop(choice)) - to_chat(user, "You remove \the [choice] from \the [src].") + to_chat(user, SPAN_NOTICE("You remove \the [choice] from \the [src].")) src.contents -= choice if(choice == wirecutters) wirecutters = null else if(choice == screwdriver) screwdriver = null else - to_chat(user, "Something went wrong, please try again.") + to_chat(user, SPAN_WARNING("Something went wrong, please try again.")) tool_c = "multitool" tool_behaviour = TOOL_MULTITOOL @@ -178,20 +189,20 @@ contents += SD user.drop(SD, src) screwdriver = SD - to_chat(user, "You insert \the [SD] into \the [src].") + to_chat(user, SPAN_NOTICE("You insert \the [SD] into \the [src].")) update_icon() else - to_chat(user, "There's already \the [screwdriver] in \the [src]!") + to_chat(user, SPAN_WARNING("There's already \the [screwdriver] in \the [src]!")) else if(istype(I, /obj/item/wirecutters/advpart)) var/obj/item/screwdriver/advpart/WC = I if(!wirecutters) contents += WC user.drop(WC, src) wirecutters = WC - to_chat(user, "You insert \the [WC] into \the [src].") + to_chat(user, SPAN_NOTICE("You insert \the [WC] into \the [src].")) update_icon() else - to_chat(user, "There are already \the [wirecutters] in \the [src]!") + to_chat(user, SPAN_WARNING("There are already \the [wirecutters] in \the [src]!")) else return ..() diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 5be12a520f3..f320a1da7c5 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -72,7 +72,7 @@ /obj/item/taperoll, /obj/item/extinguisher/mini, /obj/item/marshalling_wand, - /obj/item/combotool/advtool, + /obj/item/device/multitool/advtool, /obj/item/device/geiger, /obj/item/device/lightreplacer, /obj/item/device/robotanalyzer diff --git a/code/game/objects/items/tools/combo.dm b/code/game/objects/items/tools/combo.dm deleted file mode 100644 index 7e053919249..00000000000 --- a/code/game/objects/items/tools/combo.dm +++ /dev/null @@ -1,204 +0,0 @@ - - -// Combined tools. -// Basically, these allow you to store various tools inside them, switch between these tools and use them directly. -// TODO list: surgery multitool for borgs, swiss knives, detective's advanced sampler (fingerprints, fiber, replaceable swab vials), modular hypospray, modular RCP ~~Toby -/obj/item/combotool - name = "generic combined tool" - desc = "A swiss knife?" - icon = 'icons/obj/device.dmi' - item_state = "device" - icon_state = "combotool" - mod_weight = 0.5 - mod_reach = 0.5 - mod_handy = 0.5 - - var/tool_c = null - -/obj/item/combotool/proc/switchtools() - return - -/obj/item/combotool/attack_self(mob/user) - switchtools() - to_chat(user, "[src] mode: [tool_c].") - update_icon() - return - -/obj/item/combotool/on_update_icon() - underlays.Cut() - underlays += "adv_[tool_c]" - ..() - - -/obj/item/combotool/advtool - name = "Advanced Multitool" - desc = "This small, handheld device is made of durable, insulated plastic, has a rubber grip, and can be used as a multitool, screwdriver or wirecutters." - description_info = "Multitools are incredibly versatile and can be used on a wide variety of machines. The most common use for this is to trip a device's wires without having to cut them. Simply click on an object with exposed wiring to use it. This one can also be used as a screwdriver or wirecutters. There might be other uses, as well..." - description_fluff = "This device is not just a regular multitool - it is a masterpiece. You can deal with almost any machine using only this little thing." - description_antag = "This handy little tool can get you through doors, turn off power, and anything else you might need." - icon = 'icons/obj/device.dmi' - item_state = "multitool" - icon_state = "advtool" - force = 5.0 - w_class = ITEM_SIZE_SMALL - throwforce = 5.0 - throw_range = 15 - - matter = list(MATERIAL_STEEL = 500, MATERIAL_GLASS = 200) - - origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 4) - - var/obj/item/device/multitool/advpart/multitool = null - var/obj/item/screwdriver/advpart/screwdriver = null - var/obj/item/wirecutters/advpart/wirecutters = null - - -/obj/item/combotool/advtool/New() - ..() - multitool = new /obj/item/device/multitool/advpart(src) - screwdriver = new /obj/item/screwdriver/advpart(src) - wirecutters = new /obj/item/wirecutters/advpart(src) - tool_c = "multitool" - tool_behaviour = TOOL_MULTITOOL - -/obj/item/combotool/advtool/switchtools() - if(tool_c == "multitool") - if(screwdriver) - tool_c = "screwdriver" - tool_behaviour = TOOL_SCREWDRIVER - sharp = 1 - else - tool_c = "wirecutters" - tool_behaviour = TOOL_WIRECUTTER - sharp = 0 - else if(tool_c == "screwdriver") - if(wirecutters) - tool_c = "wirecutters" - tool_behaviour = TOOL_WIRECUTTER - sharp = 0 - else - tool_c = "multitool" - tool_behaviour = TOOL_MULTITOOL - sharp = 0 - else if(tool_c == "wirecutters") - tool_c = "multitool" - tool_behaviour = TOOL_MULTITOOL - sharp = 0 - update_icon() - return - -/obj/item/combotool/advtool/attack_self(mob/user) - if(!screwdriver && !wirecutters) - to_chat(user, "[src] lacks tools.") - return - ..() - -/obj/item/combotool/advtool/attack_hand(mob/user) - if(src != user.get_inactive_hand()) - return ..() - - if(!src.contents.len) - to_chat(user, "There's nothing in \the [src] to remove!") - return - - var/choice = input(user, "What would you like to remove from the [src]?") as null|anything in src.contents - if(!choice || !(choice in src.contents)) - return - - if(choice == multitool) - to_chat(user, "You cannot remove the multitool itself.") - return - - if(user.pick_or_drop(choice)) - to_chat(user, "You remove \the [choice] from \the [src].") - src.contents -= choice - if(choice == wirecutters) - wirecutters = null - else if(choice == screwdriver) - screwdriver = null - else - to_chat(user, "Something went wrong, please try again.") - - tool_c = "multitool" - tool_behaviour = TOOL_MULTITOOL - update_icon() - return - -/obj/item/combotool/advtool/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/screwdriver/advpart)) - var/obj/item/screwdriver/advpart/SD = I - if(!screwdriver) - contents += SD - user.drop(SD, src) - screwdriver = SD - to_chat(user, "You insert \the [SD] into \the [src].") - update_icon() - else - to_chat(user, "There's already \the [screwdriver] in \the [src]!") - else if(istype(I, /obj/item/wirecutters/advpart)) - var/obj/item/screwdriver/advpart/WC = I - if(!wirecutters) - contents += WC - user.drop(WC, src) - wirecutters = WC - to_chat(user, "You insert \the [WC] into \the [src].") - update_icon() - else - to_chat(user, "There are already \the [wirecutters] in \the [src]!") - else - return ..() - - -/obj/item/device/multitool/advpart - name = "compact multitool" - desc = "You are not supposed to see this, use this or interact with this at all. However, if nobody knows..." - description_info = "Multitools are incredibly versatile and can be used on a wide variety of machines. The most common use for this is to trip a device's wires without having to cut them. Simply click on an object with exposed wiring to use it. There might be other uses, as well..." - description_fluff = "The common, every day multitool is descended from certain electrical tools from Earth's early space age. Though none too cheap, they are incredibly handy, and can be found in any self-respecting technician's toolbox." - description_antag = "This handy little tool can get you through doors, turn off power, and anything else you might need." - item_state = "multitool" - icon_state = "adv_multitool" - force = 3.5 - w_class = ITEM_SIZE_TINY - throwforce = 3.5 - throw_range = 15 - origin_tech = list(TECH_MAGNET = 2, TECH_ENGINEERING = 4) - matter = list(MATERIAL_STEEL = 25, MATERIAL_GLASS = 20) - -/obj/item/screwdriver/advpart - name = "compact screwdriver" - desc = "Just a regular screwdriver. However, this one is especially small." - description_info = "This tool is used to expose or safely hide away cabling. It can open and shut the maintenance panels on vending machines, airlocks, and much more. You can also use it, in combination with a crowbar, to install or remove windows." - description_fluff = "Screws have not changed significantly in centuries, and neither have the drivers used to install and remove them." - description_antag = "In the world of breaking and entering, tools like multitools and wirecutters are the bread; the screwdriver is the butter. In a pinch, try targetting someone's eyes and stabbing them with it - it'll really hurt!" - icon = 'icons/obj/device.dmi' - icon_state = "adv_screwdriver" - item_state = "screwdriver" - slot_flags = SLOT_BELT | SLOT_EARS - force = 5.0 - origin_tech = list(TECH_ENGINEERING = 4) - matter = list(MATERIAL_STEEL = 45) - lock_picking_level = 6 - -/obj/item/screwdriver/advpart/Initialize() - . = ..() - icon_state = "adv_screwdriver" - item_state = "screwdriver" - -/obj/item/wirecutters/advpart - name = "compact wirecutters" - desc = "A special pair of pliers with cutting edges. Various brackets and manipulators built into the handle allow it to repair severed wiring. This pair has some insulation." - description_info = "This tool will cut wiring anywhere you see it - make sure to wear insulated gloves! When used on more complicated machines or airlocks, it can not only cut cables, but repair them, as well." - description_fluff = "With modern alloys, today's wirecutters can snap through cables of astonishing thickness." - description_antag = "These cutters can be used to cripple the power anywhere on the ship. All it takes is some creativity, and being in the right place at the right time." - icon = 'icons/obj/device.dmi' - item_state = "cutters" - icon_state = "adv_wirecutters" - slot_flags = SLOT_BELT | SLOT_EARS - w_class = ITEM_SIZE_TINY - origin_tech = list(TECH_ENGINEERING = 4) - matter = list(MATERIAL_STEEL = 80) - -/obj/item/wirecutters/advpart/Initialize() - . = ..() - icon_state = "adv_wirecutters" - item_state = "cutters" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 75d9be90bae..51e1aff2d2d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -17,7 +17,7 @@ /obj/item/cartridge/ce, /obj/item/device/radio/headset/heads/ce, /obj/item/storage/toolbox/mechanical, - /obj/item/combotool/advtool, + /obj/item/device/multitool/advtool, /obj/item/device/flash, /obj/item/taperoll/engineering, /obj/item/crowbar/brace_jack diff --git a/code/modules/Z_item_worth/worths_list.dm b/code/modules/Z_item_worth/worths_list.dm index fd731061c35..572b359e676 100644 --- a/code/modules/Z_item_worth/worths_list.dm +++ b/code/modules/Z_item_worth/worths_list.dm @@ -249,7 +249,7 @@ var/list/worths = list( /obj/item/rsf = 600, /obj/item/extinguisher/mini = 20, /obj/item/extinguisher = 40, - /obj/item/combotool/advtool = 350, + /obj/item/device/multitool/advtool = 350, /obj/item/beartrap = 35, /obj/item/nullrod = 60, /obj/item/backwear/reagent/welding = 450, diff --git a/maps/eclipse/eclipse-1.dmm b/maps/eclipse/eclipse-1.dmm index eebdef6c68d..915da390cf0 100644 --- a/maps/eclipse/eclipse-1.dmm +++ b/maps/eclipse/eclipse-1.dmm @@ -5346,7 +5346,7 @@ "cfB" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/nw,/area/shuttle/escape_pod5/station) "cfC" = (/turf/space,/turf/simulated/shuttle/wall/corner/smoothwhite/ne,/area/shuttle/escape_pod5/station) "cfD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light/small{dir = 1},/obj/structure/table/steel,/obj/machinery/cell_charger,/obj/item/device/t_scanner,/obj/structure/sign/poster{layer = 3.6; pixel_y = 32; name = "poster north"},/turf/simulated/floor/plating,/area/eclipse/engineering/misc/advanced_technical_storage) -"cfE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table/steel,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/combotool/advtool,/turf/simulated/floor/plating,/area/eclipse/engineering/misc/advanced_technical_storage) +"cfE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/table/steel,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool/advtool,/turf/simulated/floor/plating,/area/eclipse/engineering/misc/advanced_technical_storage) "cfF" = (/turf/simulated/floor/plating/airless,/area/space) "cfG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/table/steel,/obj/item/aicard,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor/plating,/area/eclipse/engineering/misc/advanced_technical_storage) "cfH" = (/obj/machinery/door/blast/regular/open{density = 0; id = "SupermatterPort"; name = "Reactor Blast Door"},/obj/structure/window_frame/reinforced/thermal,/turf/simulated/floor/plating,/area/eclipse/engineering/tech/supermatter_engine) From d6f2bc935467577b7e5d0b45b311003f64cb4ed4 Mon Sep 17 00:00:00 2001 From: BaraBara Date: Sun, 29 Sep 2024 00:42:11 +0500 Subject: [PATCH 3/5] i lied --- code/datums/trading/goods.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/trading/goods.dm b/code/datums/trading/goods.dm index caa14b08301..55f92c536d4 100644 --- a/code/datums/trading/goods.dm +++ b/code/datums/trading/goods.dm @@ -96,7 +96,7 @@ /obj/item/cell/hyper = TRADER_THIS_TYPE, /obj/item/module = TRADER_SUBTYPES_ONLY, /obj/item/tracker_electronics = TRADER_THIS_TYPE, - /obj/item/device/multitool/advtool = TRADER_THIS_TYPE, + /obj/item/device/multitool/advtool = TRADER_THIS_TYPE, /obj/item/modular_computer/tablet/preset/custom_loadout/cheap = TRADER_THIS_TYPE, /obj/item/modular_computer/laptop/preset/custom_loadout/cheap = TRADER_THIS_TYPE, /obj/item/computer_hardware = TRADER_ALL, From d3b4814349d1663022d432a2f15d7bcba6ebaae4 Mon Sep 17 00:00:00 2001 From: BaraBara <96526791+BaraBarax@users.noreply.github.com> Date: Sun, 29 Sep 2024 16:31:19 +0500 Subject: [PATCH 4/5] Update code/game/objects/items/devices/multitool.dm Co-authored-by: Filatelele --- code/game/objects/items/devices/multitool.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index d8b713ba106..020ccbc7bb0 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -155,7 +155,7 @@ if(src != user.get_inactive_hand()) return ..() - if(!src.contents.len) + if(!contents.len) to_chat(user, SPAN_WARNING("There's nothing in \the [src] to remove!")) return From 7c077068ac9f2030d0838adc5ae2b787b32e4a32 Mon Sep 17 00:00:00 2001 From: BaraBara Date: Mon, 30 Sep 2024 17:56:11 +0500 Subject: [PATCH 5/5] meow --- code/game/objects/items/devices/multitool.dm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/devices/multitool.dm b/code/game/objects/items/devices/multitool.dm index d8b713ba106..286195b593a 100644 --- a/code/game/objects/items/devices/multitool.dm +++ b/code/game/objects/items/devices/multitool.dm @@ -112,7 +112,6 @@ /obj/item/device/multitool/advtool/on_update_icon() underlays.Cut() underlays += "adv_[tool_c]" - ..() /obj/item/device/multitool/advtool/proc/switchtools() if(tool_c == "multitool") @@ -138,7 +137,6 @@ tool_behaviour = TOOL_MULTITOOL sharp = FALSE update_icon() - return /obj/item/device/multitool/advtool/attack_self(mob/user) if(!screwdriver && !wirecutters) @@ -148,19 +146,18 @@ switchtools() to_chat(user, SPAN_NOTICE("[src] mode: [tool_c].")) update_icon() - return /obj/item/device/multitool/advtool/attack_hand(mob/user) if(src != user.get_inactive_hand()) return ..() - if(!src.contents.len) + if(!contents.len) to_chat(user, SPAN_WARNING("There's nothing in \the [src] to remove!")) return - var/choice = input(user, "What would you like to remove from the [src]?") as null|anything in src.contents - if(!choice || !(choice in src.contents)) + var/choice = tgui_input_list(user, "What would you like to remove from the [src]?", "Instrument remove", contents) + if(!choice || !(choice in contents)) return if(choice == multitool) @@ -169,7 +166,7 @@ if(user.pick_or_drop(choice)) to_chat(user, SPAN_NOTICE("You remove \the [choice] from \the [src].")) - src.contents -= choice + contents -= choice if(choice == wirecutters) wirecutters = null else if(choice == screwdriver) @@ -180,13 +177,11 @@ tool_c = "multitool" tool_behaviour = TOOL_MULTITOOL update_icon() - return /obj/item/device/multitool/advtool/attackby(obj/item/I, mob/user) if(istype(I, /obj/item/screwdriver/advpart)) var/obj/item/screwdriver/advpart/SD = I if(!screwdriver) - contents += SD user.drop(SD, src) screwdriver = SD to_chat(user, SPAN_NOTICE("You insert \the [SD] into \the [src].")) @@ -196,7 +191,6 @@ else if(istype(I, /obj/item/wirecutters/advpart)) var/obj/item/screwdriver/advpart/WC = I if(!wirecutters) - contents += WC user.drop(WC, src) wirecutters = WC to_chat(user, SPAN_NOTICE("You insert \the [WC] into \the [src]."))