diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 775b2f90e52..0b7c4b8ed5c 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -230,9 +230,21 @@ return // don't smack that machine with your 2 thalers if(default_unfasten_wrench(user, W, time = 60)) + return + + if(istype(W, /obj/item/weapon/screwdriver) && anchored) + playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) + panel_open = !panel_open + user << "You [panel_open ? "open" : "close"] the maintenance panel." + overlays.Cut() + if(panel_open) + overlays += image(icon, "[initial(icon_state)]-panel") + nanomanager.update_uis(src) // Speaker switch is on the main UI, not wires UI return if(panel_open) + if(istype(W, /obj/item/device/multitool)||istype(W, /obj/item/weapon/wirecutters)) + return attack_hand(user) if(component_parts && istype(W, /obj/item/weapon/crowbar)) var/datum/data/vending_product/machine = product_records for(var/datum/data/vending_product/machine_content in machine) @@ -243,21 +255,7 @@ if(!machine_content.amount) break default_deconstruction_crowbar(W) - - else if(istype(W, /obj/item/weapon/screwdriver) && anchored) - playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1) - panel_open = !panel_open - user << "You [panel_open ? "open" : "close"] the maintenance panel." - overlays.Cut() - if(panel_open) - overlays += image(icon, "[initial(icon_state)]-panel") - nanomanager.update_uis(src) // Speaker switch is on the main UI, not wires UI - return - else if(istype(W, /obj/item/device/multitool)||istype(W, /obj/item/weapon/wirecutters)) - if(panel_open) - attack_hand(user) - return - else if(istype(W, /obj/item/weapon/coin) && premium.len > 0) + if(istype(W, /obj/item/weapon/coin) && premium.len > 0) user.drop_item() W.loc = src coin = W @@ -477,7 +475,29 @@ usr << "\blue You remove the [coin] from the [src]" coin = null categories &= ~CAT_COIN - + + if (href_list["pay"]) + if(currently_vending && vendor_account && !vendor_account.suspended) + if(istype(usr, /mob/living/carbon/human)) + var/paid = 0 + var/handled = 0 + var/mob/living/carbon/human/H = usr + var/obj/item/weapon/card/card = null + if(istype(H.wear_id,/obj/item/weapon/card)) + card = H.wear_id + paid = pay_with_card(card) + handled = 1 + else if(istype(H.get_active_hand(), /obj/item/weapon/card)) + card = H.get_active_hand() + paid = pay_with_card(card) + handled = 1 + if(paid) + src.vend(currently_vending, usr) + return + else if(handled) + nanomanager.update_uis(src) + return // don't smack that machine with your 2 credits + if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) if ((href_list["vend"]) && (src.vend_ready) && (!currently_vending)) @@ -916,7 +936,7 @@ icon_state = "sec" icon_deny = "sec-deny" req_access_txt = "1" - products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5, + products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 8,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5, /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2,/obj/item/device/hailer = 5) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 97e17507472..011f0c7fc6d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -150,7 +150,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/clothing/mask/gas/sechailer/warden(src) new /obj/item/taperoll/police(src) - new /obj/item/weapon/storage/box/handcuffs(src) + new /obj/item/weapon/storage/box/zipties(src) new /obj/item/weapon/storage/box/flashbangs(src) new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton/loaded(src) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 89e7e8b5b05..7438f54195e 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1727,6 +1727,8 @@ input = P.parsepencode(input) // Encode everything from pencode to html var/customname = input(src.owner, "Pick a title for the fax.", "Fax Title") as text|null + if(!customname) + customname = "paper" var/stampname var/stamptype diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index cf5f2cedea5..ecfbbf1153c 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -130,7 +130,9 @@ //handcuffed? if(handcuffed) - if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/cable)) + if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/cable/zipties)) + msg += "[t_He] [t_is] \icon[handcuffed] restrained with zipties!\n" + else if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/cable)) msg += "[t_He] [t_is] \icon[handcuffed] restrained with cable!\n" else msg += "[t_He] [t_is] \icon[handcuffed] handcuffed!\n" diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index 926463a7dca..e494a68d7dd 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -53,7 +53,7 @@ var/list/adminfaxes = list() if(A.from_department == "Administrator") html += "N/A" else - html += "Reply" + html += "Reply" html += "N/A" else html += "N/A" @@ -61,7 +61,7 @@ var/list/adminfaxes = list() html += "" html += "" html += "" - + html += "
" html += "

Departmental Faxes

" html += "" diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 8ce267c6d21..ece204afaf9 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -26,6 +26,7 @@ var/list/broken_requirements = list() var/broken_on_spawn = 0 var/recharge_delay = 15 + var/image/icon_beaker = null //cached overlay /obj/machinery/chem_dispenser/proc/recharge() @@ -59,6 +60,7 @@ dispensable_reagents = sortList(dispensable_reagents) if(broken_on_spawn) + overlays.Cut() var/amount = pick(3,3,4) var/list/options = list() options[/obj/item/weapon/stock_parts/capacitor/adv] = "Add an advanced capacitor to fix it." @@ -181,8 +183,7 @@ var/obj/item/weapon/reagent_containers/glass/B = beaker B.loc = loc beaker = null - if(!panel_open) - icon_state = initial(icon_state) + overlays.Cut() add_fingerprint(usr) return 1 // update UIs attached to this object @@ -211,7 +212,10 @@ B.loc = src user << "You set [B] on the machine." nanomanager.update_uis(src) // update all UIs attached to src - icon_state = "[initial(icon_state)]2" + if(!icon_beaker) + icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position. + icon_beaker.pixel_x = rand(-10,5) + overlays += icon_beaker return /obj/machinery/chem_dispenser/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob) diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 83b8c49d86a..e0e70b2736a 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/maps/cyberiad.dmm b/maps/cyberiad.dmm index 70df6d04051..017c7247c1d 100644 --- a/maps/cyberiad.dmm +++ b/maps/cyberiad.dmm @@ -4148,7 +4148,7 @@ "bBN" = (/obj/structure/table,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"; tag = ""},/obj/item/device/mmi/posibrain,/obj/item/device/robotanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/assembly/robotics) "bBO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bBP" = (/obj/machinery/door_control{id = "robotics2"; name = "Robotics Lab Shutters Control"; pixel_x = 24; pixel_y = -24; req_access_txt = "29"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bBQ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/assembly/robotics) +"bBQ" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "robotics2"; name = "Robotics Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/assembly/robotics) "bBR" = (/obj/machinery/light{dir = 8},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) "bBS" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "bBT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/medical/research{name = "Research Division"}) diff --git a/nano/templates/vending_machine.tmpl b/nano/templates/vending_machine.tmpl index 93d5c1007c9..87ceda78e00 100644 --- a/nano/templates/vending_machine.tmpl +++ b/nano/templates/vending_machine.tmpl @@ -44,6 +44,7 @@ {{if data.message_err}} {{/if}} {{:data.message}}
+ {{:helper.link('Pay', 'cart', {'pay' : 1})}} {{:helper.link('Cancel', 'arrowreturn-1-w', {'cancelpurchase' : 1})}}