Mining Vendor TGUI (#17426)

* Mining Vendor TGUI

* nice

* Update tgui/packages/tgui/interfaces/MiningVendor.tsx

Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>

---------

Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
This commit is contained in:
Geeves
2023-09-27 13:55:45 +00:00
committed by GitHub
co-authored by Wowzewow
parent 59b7302cc3
commit 563aec5fcb
3 changed files with 106 additions and 34 deletions
+29 -34
View File
@@ -117,7 +117,7 @@ var/global/list/minevendor_list = list( //keep in order of price
if(!id_turf.Adjacent(loc))
scanned_id = null
get_user_id(user)
interact(user)
ui_interact(user)
/obj/machinery/mineral/equipment_vendor/proc/get_user_id(var/mob/user)
if(isDrone(user))
@@ -129,46 +129,43 @@ var/global/list/minevendor_list = list( //keep in order of price
if(ID)
scanned_id = WEAKREF(ID)
/obj/machinery/mineral/equipment_vendor/interact(mob/user)
var/dat
dat +="<div class='statusDisplay'>"
/obj/machinery/mineral/equipment_vendor/ui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "MiningVendor", "Mining Equipment Vendor", ui_x=500, ui_y=500)
ui.autoupdate = FALSE
ui.open()
/obj/machinery/mineral/equipment_vendor/ui_data(mob/user)
var/list/data = list()
var/obj/item/card/id/ID = scanned_id?.resolve()
if(ID)
dat += "You have [ID.mining_points ? ID.mining_points : 0] mining points collected. <A href='?src=\ref[src];choice=eject'>Eject ID.</A><br>"
data["hasId"] = TRUE
data["miningPoints"] = ID.mining_points ? ID.mining_points : 0
else
dat += "No ID inserted. <A href='?src=\ref[src];choice=insert'>Insert ID.</A><br>"
dat += "</div>"
dat += "<br><b>Equipment point cost list:</b><BR><table border='0' width='300'>"
for(var/datum/data/mining_equipment/prize in minevendor_list)
if(prize.amount > 0)
dat += "<tr><td>[prize.equipment_name]</td><td>[prize.cost]</td><td><A href='?src=\ref[src];purchase=\ref[prize]'>Purchase</A> ([prize.amount])</td></tr>"
else if(prize.amount == -1)
dat += "<tr><td>[prize.equipment_name]</td><td>[prize.cost]</td><td><A href='?src=\ref[src];purchase=\ref[prize]'>Purchase</A> (No limit.)</td></tr>"
else
dat += "<tr><td>[prize.equipment_name]</td><td>(Out of stock!)</td></tr>"
dat += "</table>"
data["hasId"] = FALSE
var/list/prize_list = list()
for(var/datum/data/mining_equipment/prize as anything in minevendor_list)
prize_list += list(list("name" = prize.equipment_name, "cost" = prize.cost, "stock" = prize.amount, "ref" = "\ref[prize]"))
data["prizeList"] = prize_list
return data
var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350)
popup.set_content(dat)
popup.open()
return
/obj/machinery/mineral/equipment_vendor/Topic(href, href_list)
if(..())
/obj/machinery/mineral/equipment_vendor/ui_act(action, params)
. = ..()
if(.)
return
if(href_list["choice"])
var/obj/item/card/id/ID = scanned_id.resolve()
if(ID)
if(href_list["choice"] == "eject")
scanned_id = null
else if(href_list["choice"] == "insert")
if(action == "choice")
if(params["choice"] == "scan")
var/obj/item/card/id/I = usr.get_active_hand()
if(istype(I))
scanned_id = WEAKREF(I)
if(href_list["purchase"])
return TRUE
if(action == "purchase")
var/obj/item/card/id/ID = scanned_id.resolve()
if(ID)
var/datum/data/mining_equipment/prize = locate(href_list["purchase"])
var/datum/data/mining_equipment/prize = locate(params["purchase"])
if(!prize || !(prize in minevendor_list))
return
if(prize.amount <= 0 && prize.amount != -1)
@@ -186,9 +183,7 @@ var/global/list/minevendor_list = list( //keep in order of price
prize.amount--
new prize.equipment_path(get_turf(src))
intent_message(MACHINE_SOUND)
updateUsrDialog()
return
return TRUE
/obj/machinery/mineral/equipment_vendor/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/coin/mining))