From 8714fe132d6c073db444588a5c357a2680dc14b7 Mon Sep 17 00:00:00 2001 From: Hugo Date: Thu, 2 Feb 2017 22:08:49 -0500 Subject: [PATCH] Mining reward stuff --- code/modules/mining/reward_yw.dm | 149 +++++++++++++++++++++++++++++++ vorestation.dme | 1 + 2 files changed, 150 insertions(+) create mode 100644 code/modules/mining/reward_yw.dm diff --git a/code/modules/mining/reward_yw.dm b/code/modules/mining/reward_yw.dm new file mode 100644 index 0000000000..ec06536f77 --- /dev/null +++ b/code/modules/mining/reward_yw.dm @@ -0,0 +1,149 @@ +/obj/machinery/miningreward + name = "Coin reward" + desc = "Idk." + icon = 'icons/obj/machines/antimatter.dmi' + icon_state = "control" + anchored = 1 + density = 1 + use_power = 1 + idle_power_usage = 10 + active_power_usage = 10 + + var/totalmoney = 0 + var/list/products = list( /obj/item/weapon/pickaxe/silver, + /obj/item/weapon/pickaxe/drill, + /obj/item/weapon/pickaxe/jackhammer, + /obj/item/weapon/pickaxe/gold, + /obj/item/weapon/pickaxe/plasmacutter, + /obj/item/weapon/pickaxe/diamond, + /obj/item/weapon/pickaxe/diamonddrill) + + var/list/prices = list( /obj/item/weapon/pickaxe/silver = 20, + /obj/item/weapon/pickaxe/drill = 30, + /obj/item/weapon/pickaxe/jackhammer = 40, + /obj/item/weapon/pickaxe/gold = 50, + /obj/item/weapon/pickaxe/plasmacutter = 60, + /obj/item/weapon/pickaxe/diamond = 70, + /obj/item/weapon/pickaxe/diamonddrill = 80) + + +/obj/machinery/miningreward/New() + ..() + + +/obj/machinery/miningreward/Destroy()//Perhaps damage and run stability checks rather than just qdel on the others + ..() + + +/obj/machinery/miningreward/emp_act(severity) + ..() + return 0 + + +/obj/machinery/miningreward/bullet_act(var/obj/item/projectile/Proj) + return 0 + + + +/obj/machinery/miningreward/update_icon() + return + + +/obj/machinery/miningreward/attackby(obj/item/W, mob/user) + if(!istype(W) || !user) return + if(istype(W, /obj/item/weapon/wrench)) + if(!anchored) + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] secures the [src.name] to the floor.", \ + "You secure the anchor bolts to the floor.", \ + "You hear a ratchet") + src.anchored = 1 + else + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + user.visible_message("[user.name] unsecures the [src.name].", \ + "You remove the anchor bolts.", \ + "You hear a ratchet") + src.anchored = 0 + return + + if(istype(W, /obj/item/weapon/coin)) + user.remove_from_mob(W) + W.loc = src + user.update_icons() + user.visible_message("[user.name] inserts a [W.name] into the [src.name].", \ + "You insert a [W.name].", \ + "You hear a thunk.") + + if(istype(W, /obj/item/weapon/coin/iron)) + totalmoney += 1 + else if(istype(W, /obj/item/weapon/coin/phoron)) + totalmoney += 2 + else if(istype(W, /obj/item/weapon/coin/uranium)) + totalmoney += 3 + else if(istype(W, /obj/item/weapon/coin/platinum)) + totalmoney += 4 + else if(istype(W, /obj/item/weapon/coin/silver)) + totalmoney += 5 + else if(istype(W, /obj/item/weapon/coin/gold)) + totalmoney += 10 + else if(istype(W, /obj/item/weapon/coin/diamond)) + totalmoney += 20 + return + + ..() + return + + +/obj/machinery/miningreward/attack_hand(mob/user as mob) + if(anchored) + interact(user) + return + + +/obj/machinery/miningreward/interact(mob/user) + if((get_dist(src, user) > 1) || (stat & (BROKEN|NOPOWER))) + if(!istype(user, /mob/living/silicon/ai)) + user.unset_machine() + user << browse(null, "window=RWcontrol") + return + user.set_machine(src) + + var/dat = "" + dat += "Mining Reward Panel
" + dat += "Close
" + dat += "Points: [totalmoney]
" + + for(var/i=1;i<=products.len;++i) + var/product = products[i] + var/obj/P = new product() + dat += "[P.name] - [(products[i] in prices) ? prices[products[i]] : 0]
" + + user << browse(dat, "window=RWcontrol;size=420x500") + onclose(user, "RWcontrol") + return + + +/obj/machinery/miningreward/Topic(href, href_list) + ..() + //Ignore input if we are broken or guy is not touching us, AI can control from a ways away + if(stat & (BROKEN|NOPOWER) || (get_dist(src, usr) > 1 && !istype(usr, /mob/living/silicon/ai))) + usr.unset_machine() + usr << browse(null, "window=RWcontrol") + return + + else if(href_list["close"]) + usr << browse(null, "window=RWcontrol") + usr.unset_machine() + return + + else if(href_list["task"] && href_list["task"] == "vend") + var/ID = text2num(href_list["id"]) + var/product = products[ID] + if(products[product] != 0 && totalmoney >= prices[product]) + totalmoney -= prices[product] + products[product]-=1 + var/obj/prod = new product + prod.loc = src.loc + + updateDialog() + return \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 320cdd60ce..9d7888ef51 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1513,6 +1513,7 @@ #include "code\modules\mining\money_bag.dm" #include "code\modules\mining\ore.dm" #include "code\modules\mining\ore_datum.dm" +#include "code\modules\mining\reward_yw.dm" #include "code\modules\mining\satchel_ore_boxdm.dm" #include "code\modules\mining\drilling\drill.dm" #include "code\modules\mining\drilling\scanner.dm"