From d0631447139f315c7da1d949f6ad133192cb0cbe Mon Sep 17 00:00:00 2001 From: President of Shit PRS <68369681+squib-bot@users.noreply.github.com> Date: Sat, 14 Jan 2023 02:01:12 +0000 Subject: [PATCH 1/2] Re-Adding Bounty Consoles Civilian bounties are great, don't get me wrong. But they're civilian bounties and it feels like cargo lost their thing to do, namely putting annoying sheets of paper everywhere. Plus checklists make the brain go ding when you work through them arooga. --- _maps/map_files/BoxStation/BoxStation.dmm | 14 ++- .../map_files/Deltastation/DeltaStation2.dmm | 6 + _maps/map_files/MetaStation/MetaStation.dmm | 2 + _maps/map_files/OmegaStation/OmegaStation.dmm | 3 + _maps/map_files/PubbyStation/PubbyStation.dmm | 6 + .../circuitboards/computer_circuitboards.dm | 4 + code/modules/cargo/bounty_console.dm | 65 ++++++++++ .../comp_board_designs_cargo.dm | 10 +- tgstation.dme | 1 + .../tgui/interfaces/CargoBountyConsole.js | 119 ++++++++++++++++++ .../tgui/interfaces/NtosBountyConsole.js | 119 ++++++++++++++++++ 11 files changed, 347 insertions(+), 2 deletions(-) create mode 100644 code/modules/cargo/bounty_console.dm create mode 100644 tgui/packages/tgui/interfaces/CargoBountyConsole.js create mode 100644 tgui/packages/tgui/interfaces/NtosBountyConsole.js diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 8f21e3ecce..81eca95be1 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -30029,6 +30029,9 @@ /obj/machinery/keycard_auth{ pixel_y = 25 }, +/obj/machinery/computer/bounty{ + dir = 4 + }, /turf/open/floor/plasteel, /area/cargo/qm) "bvG" = ( @@ -54946,6 +54949,15 @@ "gjl" = ( /turf/closed/wall, /area/cargo/warehouse) +"gkP" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/computer/bounty{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/cargo/office) "gnf" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -89992,7 +90004,7 @@ bnG bnz bpA bbR -bkM +gkP jlm bud eyM diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index bd8e2c078d..506f5e2396 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -115731,6 +115731,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/machinery/computer/bounty{ + dir = 8 + }, /turf/open/floor/plasteel, /area/cargo/qm) "twd" = ( @@ -121630,6 +121633,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/computer/bounty{ + dir = 8 + }, /turf/open/floor/plasteel, /area/cargo/office) "vEI" = ( diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 00925c100f..44a080ccb4 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -65483,6 +65483,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/machinery/computer/bounty, /turf/open/floor/plasteel, /area/cargo/qm) "mSd" = ( @@ -72113,6 +72114,7 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/computer/bounty, /turf/open/floor/plasteel, /area/cargo/office) "qBq" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index d1b5706c0a..fb77051142 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -6773,6 +6773,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 8 }, +/obj/machinery/computer/bounty{ + dir = 4 + }, /turf/open/floor/plasteel, /area/cargo/storage) "amw" = ( diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 5a3d69fe60..207b47c096 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -21132,6 +21132,9 @@ /obj/machinery/status_display/supply{ pixel_x = -32 }, +/obj/machinery/computer/bounty{ + dir = 4 + }, /turf/open/floor/plasteel, /area/cargo/office) "aZk" = ( @@ -22999,6 +23002,9 @@ /obj/effect/turf_decal/tile/brown{ dir = 4 }, +/obj/machinery/computer/bounty{ + dir = 8 + }, /turf/open/floor/plasteel, /area/cargo/qm) "bdI" = ( diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 382764c586..58d9627476 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -581,6 +581,10 @@ name = "Supply Request Console (Computer Board)" build_path = /obj/machinery/computer/cargo/request +/obj/item/circuitboard/computer/bounty + name = "Nanotrasen Bounty Console (Computer Board)" + build_path = /obj/machinery/computer/bounty + /obj/item/circuitboard/computer/ferry name = "Transport Ferry (Computer Board)" icon_state = "supply" diff --git a/code/modules/cargo/bounty_console.dm b/code/modules/cargo/bounty_console.dm new file mode 100644 index 0000000000..1f2cba1e5b --- /dev/null +++ b/code/modules/cargo/bounty_console.dm @@ -0,0 +1,65 @@ +#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 = "#E2853D"//orange + var/printer_ready = 0 //cooldown var + var/static/datum/bank_account/cargocash + +/obj/machinery/computer/bounty/Initialize(mapload) + . = ..() + 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(mapload) + . = ..() + info = "

Nanotrasen Cargo Bounties


" + update_icon() + + for(var/datum/bounty/B in GLOB.bounties_list) + if(B.claimed) + continue + info += {"

[B.name]

+ "} + +/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 \ No newline at end of file diff --git a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.dm b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.dm index ea8e59a6b3..f2514b6f9c 100644 --- a/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.dm +++ b/code/modules/research/designs/comp_board_designs/comp_board_designs_cargo.dm @@ -17,7 +17,15 @@ build_path = /obj/item/circuitboard/computer/cargo/request category = list("Computer Boards") departmental_flags = DEPARTMENTAL_FLAG_CARGO - + +/datum/design/board/bounty + name = "Computer Design (Bounty Console)" + desc = "Allows for the construction of circuit boards used to build a Bounty Console." + id = "bounty" + build_path = /obj/item/circuitboard/computer/bounty + category = list("Computer Boards") + departmental_flags = DEPARTMENTAL_FLAG_CARGO + /datum/design/board/mining name = "Computer Design (Outpost Status Display)" desc = "Allows for the construction of circuit boards used to build an outpost status display console." diff --git a/tgstation.dme b/tgstation.dme index a3ec7c7238..728de7105f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1943,6 +1943,7 @@ #include "code\modules\buildmode\submodes\throwing.dm" #include "code\modules\buildmode\submodes\variable_edit.dm" #include "code\modules\cargo\bounty.dm" +#include "code\modules\cargo\bounty_console.dm" #include "code\modules\cargo\centcom_podlauncher.dm" #include "code\modules\cargo\console.dm" #include "code\modules\cargo\coupon.dm" diff --git a/tgui/packages/tgui/interfaces/CargoBountyConsole.js b/tgui/packages/tgui/interfaces/CargoBountyConsole.js new file mode 100644 index 0000000000..ad485231eb --- /dev/null +++ b/tgui/packages/tgui/interfaces/CargoBountyConsole.js @@ -0,0 +1,119 @@ +import { useBackend } from '../backend'; +import { AnimatedNumber, Box, Button, Section, Table } from '../components'; +import { formatMoney } from '../format'; +import { Window } from '../layouts'; + +export const CargoBountyConsole = (props, context) => { + const { act, data } = useBackend(context); + const { + bountydata = [], + } = data; + return ( + + +
} + buttons={( +
+
+
+ ); +}; + +const BountyHeader = (props, context) => { + const { act, data } = useBackend(context); + const { + stored_cash, + } = data; + return ( + + formatMoney(value)} /> + {' credits'} + + ); +}; diff --git a/tgui/packages/tgui/interfaces/NtosBountyConsole.js b/tgui/packages/tgui/interfaces/NtosBountyConsole.js new file mode 100644 index 0000000000..bfd2b0e4c9 --- /dev/null +++ b/tgui/packages/tgui/interfaces/NtosBountyConsole.js @@ -0,0 +1,119 @@ +import { useBackend } from '../backend'; +import { AnimatedNumber, Box, Button, Section, Table } from '../components'; +import { formatMoney } from '../format'; +import { NtosWindow } from '../layouts'; + +export const NtosBountyConsole = (props, context) => { + const { act, data } = useBackend(context); + const { + bountydata = [], + } = data; + return ( + + +
} + buttons={( +
+
+
+ ); +}; + +const BountyHeader = (props, context) => { + const { act, data } = useBackend(context); + const { + stored_cash, + } = data; + return ( + + formatMoney(value)} /> + {' credits'} + + ); +}; From 71d588f33de5daf419005c57da082d3c9184b2aa Mon Sep 17 00:00:00 2001 From: President of Shit PRS <68369681+squib-bot@users.noreply.github.com> Date: Sat, 14 Jan 2023 04:00:48 +0000 Subject: [PATCH 2/2] Update bounty_console.dm --- code/modules/cargo/bounty_console.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/cargo/bounty_console.dm b/code/modules/cargo/bounty_console.dm index 1f2cba1e5b..4158327c3c 100644 --- a/code/modules/cargo/bounty_console.dm +++ b/code/modules/cargo/bounty_console.dm @@ -62,4 +62,6 @@ if(printer_ready < world.time) printer_ready = world.time + PRINTER_TIMEOUT print_paper() - return \ No newline at end of file + return + +