diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index d85a89606ea..0d4455399b0 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -8,6 +8,7 @@ idle_power_usage = 5 active_power_usage = 60 power_channel = EQUIP + pass_flags = PASSTABLE var/obj/item/stock_parts/cell/charging = null var/chargelevel = -1 diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 9e91e254950..c82257bddc5 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -330,6 +330,14 @@ to destroy them and players will be able to make replacements. name = "circuit board (Freezer)" to_chat(user, "You set the board to cooling.") +/obj/item/circuitboard/recharger + name = "circuit board (Recharger)" + build_path = /obj/machinery/recharger + board_type = "machine" + origin_tech = "powerstorage=3;materials=2" + frame_desc = "Requires 1 Capacitor" + req_components = list(/obj/item/stock_parts/capacitor = 1) + /obj/item/circuitboard/snow_machine name = "circuit board (snow machine)" build_path = /obj/machinery/snow_machine diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 81006be3fdd..e98fb9968fc 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -6,13 +6,26 @@ anchored = 1 use_power = IDLE_POWER_USE idle_power_usage = 4 - active_power_usage = 250 + active_power_usage = 200 + pass_flags = PASSTABLE var/obj/item/charging = null var/list/allowed_devices = list(/obj/item/gun/energy, /obj/item/melee/baton, /obj/item/modular_computer, /obj/item/rcs, /obj/item/bodyanalyzer) var/icon_state_off = "rechargeroff" var/icon_state_charged = "recharger2" var/icon_state_charging = "recharger1" var/icon_state_idle = "recharger0" + var/recharge_coeff = 1 + +/obj/machinery/recharger/New() + ..() + component_parts = list() + component_parts += new /obj/item/circuitboard/recharger(null) + component_parts += new /obj/item/stock_parts/capacitor(null) + RefreshParts() + +/obj/machinery/recharger/RefreshParts() + for(var/obj/item/stock_parts/capacitor/C in component_parts) + recharge_coeff = C.rating /obj/machinery/recharger/attackby(obj/item/G, mob/user, params) if(iswrench(G)) @@ -53,8 +66,16 @@ else to_chat(user, "[src] isn't connected to anything!") return 1 - else - return ..() + + if(anchored && !charging) + if(default_deconstruction_screwdriver(user, "rechargeropen", "recharger0", G)) + return + + if(panel_open && istype(G, /obj/item/crowbar)) + default_deconstruction_crowbar(G) + return + + return ..() /obj/machinery/recharger/attack_hand(mob/user) if(issilicon(user)) @@ -87,7 +108,7 @@ var/obj/item/gun/energy/E = charging if(E.power_supply.charge < E.power_supply.maxcharge) E.power_supply.give(E.power_supply.chargerate) - use_power(250) + use_power(200 * recharge_coeff) using_power = 1 diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 999e90cd89f..fa011fe2eda 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -91,6 +91,12 @@ if(climber) climber.Weaken(2) climber.visible_message("[climber.name] has been knocked off the table", "You've been knocked off the table", "You see [climber.name] get knocked off the table") + else if(user.pulling.pass_flags & PASSTABLE) + user.Move_Pulled(src) + if (user.pulling.loc == loc) + user.visible_message("[user] places [user.pulling] onto [src].", + "You place [user.pulling] onto [src].") + user.stop_pulling() /obj/structure/table/attack_tk() // no telehulk sorry return diff --git a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm index 446e919a4a4..c5cf20ce10f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/microwave.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/microwave.dm @@ -11,6 +11,7 @@ broken_icon = "mwb" dirty_icon = "mwbloody" open_icon = "mw-o" + pass_flags = PASSTABLE // see code/modules/food/recipes_microwave.dm for recipes diff --git a/code/modules/hydroponics/gene_modder.dm b/code/modules/hydroponics/gene_modder.dm index a9511b00fcd..10e135f5fe6 100644 --- a/code/modules/hydroponics/gene_modder.dm +++ b/code/modules/hydroponics/gene_modder.dm @@ -2,6 +2,7 @@ name = "plant DNA manipulator" desc = "An advanced device designed to manipulate plant genetic makeup." icon = 'icons/obj/hydroponics/equipment.dmi' + pass_flags = PASSTABLE icon_state = "dnamod" density = 1 anchored = 1 diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 13d85941a79..ac5b18e23c7 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -9,6 +9,7 @@ var/global/list/fax_blacklist = list() icon = 'icons/obj/library.dmi' icon_state = "fax" insert_anim = "faxsend" + pass_flags = PASSTABLE var/fax_network = "Local Fax Network" var/long_range_enabled = 0 // Can we send messages off the station? diff --git a/code/modules/research/designs/machine_designs.dm b/code/modules/research/designs/machine_designs.dm index a23378f5513..15aacf06581 100644 --- a/code/modules/research/designs/machine_designs.dm +++ b/code/modules/research/designs/machine_designs.dm @@ -12,6 +12,16 @@ build_path = /obj/item/circuitboard/thermomachine category = list ("Engineering Machinery") +/datum/design/recharger + name = "Machine Board(Weapon Recharger)" + desc = "The circuit board for a weapon recharger" + id = "recharger" + build_path = /obj/item/circuitboard/recharger + materials = list(MAT_GLASS = 1000) + build_type = IMPRINTER + req_tech = list("powerstorage" = 3, "materials" = 3) + category = list("Misc. Machinery") + /datum/design/smes name = "Machine Board (SMES)" desc = "The circuit board for a SMES." diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index c8a9abd40f3..c33efec0f5f 100755 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ