From ba63ce5092a0611296c21c0c68aa2b82e034580e Mon Sep 17 00:00:00 2001 From: Markolie Date: Sat, 14 Feb 2015 19:07:00 +0100 Subject: [PATCH] Add pay button to vendors --- code/game/machinery/vending.dm | 52 ++++++++++++++++++++--------- nano/templates/vending_machine.tmpl | 1 + 2 files changed, 37 insertions(+), 16 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 3736c5417c1..4b8ebaec74c 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)) 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})}}