6ff08e1c69
Defined all the existing light_color values.
Moved their definitions to colors.dm
Made white the default color. It was so already, but that was very obscured.
Moved the atom light-related variables to the atom definition.
Wrapped changes to variables such as light_color into procs that report the event through signals.
Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
Cleaned up a little bit of code in where new variables were defined before redefinitions.
This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.
There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.
66 lines
2.0 KiB
Plaintext
66 lines
2.0 KiB
Plaintext
#define PRINTER_TIMEOUT 10
|
|
|
|
/obj/machinery/computer/bounty
|
|
name = "\improper Nanotrasen bounty console"
|
|
desc = "Used to check and claim bounties offered by Nanotrasen"
|
|
icon_screen = "bounty"
|
|
circuit = /obj/item/circuitboard/computer/bounty
|
|
light_color = COLOR_BRIGHT_ORANGE
|
|
var/printer_ready = 0 //cooldown var
|
|
var/static/datum/bank_account/cargocash
|
|
|
|
/obj/machinery/computer/bounty/Initialize()
|
|
. = ..()
|
|
printer_ready = world.time + PRINTER_TIMEOUT
|
|
cargocash = SSeconomy.get_dep_account(ACCOUNT_CAR)
|
|
|
|
/obj/machinery/computer/bounty/proc/print_paper()
|
|
new /obj/item/paper/bounty_printout(loc)
|
|
|
|
/obj/item/paper/bounty_printout
|
|
name = "paper - Bounties"
|
|
|
|
/obj/item/paper/bounty_printout/Initialize()
|
|
. = ..()
|
|
info = "<h2>Nanotrasen Cargo Bounties</h2></br>"
|
|
update_icon()
|
|
|
|
for(var/datum/bounty/B in GLOB.bounties_list)
|
|
if(B.claimed)
|
|
continue
|
|
info += {"<h3>[B.name]</h3>
|
|
<ul><li>Reward: [B.reward_string()]</li>
|
|
<li>Completed: [B.completion_string()]</li></ul>"}
|
|
|
|
/obj/machinery/computer/bounty/ui_interact(mob/user, datum/tgui/ui)
|
|
if(!GLOB.bounties_list.len)
|
|
setup_bounties()
|
|
ui = SStgui.try_update_ui(user, src, ui)
|
|
if(!ui)
|
|
ui = new(user, src, "CargoBountyConsole", name)
|
|
ui.open()
|
|
|
|
/obj/machinery/computer/bounty/ui_data(mob/user)
|
|
var/list/data = list()
|
|
var/list/bountyinfo = list()
|
|
for(var/datum/bounty/B in GLOB.bounties_list)
|
|
bountyinfo += list(list("name" = B.name, "description" = B.description, "reward_string" = B.reward_string(), "completion_string" = B.completion_string() , "claimed" = B.claimed, "can_claim" = B.can_claim(), "priority" = B.high_priority, "bounty_ref" = REF(B)))
|
|
data["stored_cash"] = cargocash.account_balance
|
|
data["bountydata"] = bountyinfo
|
|
return data
|
|
|
|
/obj/machinery/computer/bounty/ui_act(action,params)
|
|
if(..())
|
|
return
|
|
switch(action)
|
|
if("ClaimBounty")
|
|
var/datum/bounty/cashmoney = locate(params["bounty"]) in GLOB.bounties_list
|
|
if(cashmoney)
|
|
cashmoney.claim()
|
|
return TRUE
|
|
if("Print")
|
|
if(printer_ready < world.time)
|
|
printer_ready = world.time + PRINTER_TIMEOUT
|
|
print_paper()
|
|
return
|