diff --git a/baystation12.dme b/baystation12.dme index b029869cf22..30a0fcf2b11 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1116,6 +1116,7 @@ #include "code\WorkInProgress\Chinsky\ashtray.dm" #include "code\WorkInProgress\mapload\dmm_suite.dm" #include "code\WorkInProgress\mapload\reader.dm" +#include "code\WorkInProgress\Mini\ATM.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Mini\pipe_heater.dm" #include "code\WorkInProgress\Mloc\Shortcuts.dm" diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm new file mode 100644 index 00000000000..6a6fada2912 --- /dev/null +++ b/code/WorkInProgress/Mini/ATM.dm @@ -0,0 +1,83 @@ +/* + +TODO: +give money an actual use (QM stuff, vending machines) +send money to people (might be worth attaching money to custom database thing for this, instead of being in the ID) +log transactions + +*/ + +/obj/item/weapon/card/id/var/money = 2000 + +/obj/machinery/atm + name = "NanoTrasen Automatic Teller Machine" + desc = "For all your monetary needs!" + icon = 'terminals.dmi' + icon_state = "atm" + use_power = 1 + idle_power_usage = 10 + +/obj/machinery/atm/attackby(obj/item/I as obj, mob/user as mob) + if(ishuman(user)) + var/obj/item/weapon/card/id/user_id = src.scan_user(user) + if(istype(I,/obj/item/weapon/spacecash)) + user_id.money += I:worth + del I + +/obj/machinery/atm/attack_hand(mob/user as mob) + var/obj/item/weapon/card/id/user_id = src.scan_user(user) + if(..()) + return + var/dat = "" + dat += "

NanoTrasen Automatic Teller Machine


" + dat += "For all your monetary needs!

" + dat += "Welcome, [user_id.registered_name].
" + dat += "You have $[user_id.money] in your account.
" + dat += "Withdraw
" + user << browse(dat,"window=atm") + +/obj/machinery/atm/Topic(var/href, var/href_list) + if(href_list["withdraw"] && href_list["id"]) + var/amount = input("How much would you like to withdraw?", "Amount", 0) in list(1,10,20,50,100,200,500,1000, 0) + var/obj/item/weapon/card/id/user_id = locate(href_list["id"]) + if(amount != 0 && user_id) + if(amount <= user_id.money) + user_id.money -= amount + //hueg switch for giving moneh out + switch(amount) + if(1) + new /obj/item/weapon/spacecash(loc) + if(10) + new /obj/item/weapon/spacecash/c10(loc) + if(20) + new /obj/item/weapon/spacecash/c20(loc) + if(50) + new /obj/item/weapon/spacecash/c50(loc) + if(100) + new /obj/item/weapon/spacecash/c100(loc) + if(200) + new /obj/item/weapon/spacecash/c200(loc) + if(500) + new /obj/item/weapon/spacecash/c500(loc) + if(1000) + new /obj/item/weapon/spacecash/c1000(loc) + else + usr << browse("You don't have that much money!
Back","window=atm") + return + src.attack_hand(usr) + +//stolen wholesale and then edited a bit from newscasters, which are awesome and by Agouri +/obj/machinery/atm/proc/scan_user(mob/living/carbon/human/human_user as mob) + if(human_user.wear_id) + if(istype(human_user.wear_id, /obj/item/device/pda) ) + var/obj/item/device/pda/P = human_user.wear_id + if(P.id) + return P.id + else + return null + else if(istype(human_user.wear_id, /obj/item/weapon/card/id) ) + return human_user.wear_id + else + return null + else + return null diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 0f3e5536624..001d7d7944f 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -139,35 +139,43 @@ w_class = 1.0 var/access = list() access = access_crate_cash + var/worth = 1 /obj/item/weapon/spacecash/c10 icon_state = "spacecash10" access = access_crate_cash desc = "It's worth 10 credits." + worth = 10 /obj/item/weapon/spacecash/c20 icon_state = "spacecash20" access = access_crate_cash desc = "It's worth 20 credits." + worth = 20 /obj/item/weapon/spacecash/c50 icon_state = "spacecash50" access = access_crate_cash desc = "It's worth 50 credits." + worth = 50 /obj/item/weapon/spacecash/c100 icon_state = "spacecash100" access = access_crate_cash desc = "It's worth 100 credits." + worth = 100 /obj/item/weapon/spacecash/c200 icon_state = "spacecash200" access = access_crate_cash desc = "It's worth 200 credits." + worth = 200 /obj/item/weapon/spacecash/c500 icon_state = "spacecash500" access = access_crate_cash desc = "It's worth 500 credits." + worth = 500 /obj/item/weapon/spacecash/c1000 icon_state = "spacecash1000" access = access_crate_cash desc = "It's worth 1000 credits." + worth = 1000 /obj/item/device/mass_spectrometer desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." diff --git a/icons/obj/terminals.dmi b/icons/obj/terminals.dmi index 82e55b340ac..19a7712aec0 100644 Binary files a/icons/obj/terminals.dmi and b/icons/obj/terminals.dmi differ