From cdb1fbb1e2d019fe86f3f6a99031a2f9ef42b1b7 Mon Sep 17 00:00:00 2001 From: shellspeed1 Date: Sun, 18 Sep 2022 21:55:10 -0700 Subject: [PATCH] port of https://github.com/tgstation/tgstation/pull/54029/files# Aka this is where we get bounty cubes and remove the public bounty console. Credit to ArcaneMusic. --- code/controllers/subsystem/economy.dm | 3 + code/game/machinery/civilian_bountys.dm | 26 ++-- .../circuitboards/computer_circuitboards.dm | 8 -- code/modules/cargo/bounty.dm | 2 +- code/modules/cargo/bounty_console.dm | 65 ---------- code/modules/cargo/exports/civilain_bounty.dm | 8 ++ .../jobs/job_types/cargo_technician.dm | 1 + .../jobs/job_types/head_of_personnel.dm | 1 + code/modules/jobs/job_types/quartermaster.dm | 1 + .../file_system/programs/cargobounty.dm | 47 ------- .../comp_board_designs_cargo.dm | 10 +- icons/obj/economy.dmi | Bin 16128 -> 16676 bytes tgstation.dme | 3 +- .../tgui/interfaces/CargoBountyConsole.js | 119 ------------------ .../tgui/interfaces/NtosBountyConsole.js | 119 ------------------ 15 files changed, 32 insertions(+), 381 deletions(-) delete mode 100644 code/modules/cargo/bounty_console.dm create mode 100644 code/modules/cargo/exports/civilain_bounty.dm delete mode 100644 code/modules/modular_computers/file_system/programs/cargobounty.dm delete mode 100644 tgui/packages/tgui/interfaces/CargoBountyConsole.js delete mode 100644 tgui/packages/tgui/interfaces/NtosBountyConsole.js diff --git a/code/controllers/subsystem/economy.dm b/code/controllers/subsystem/economy.dm index 3f594e170e..88255f375e 100644 --- a/code/controllers/subsystem/economy.dm +++ b/code/controllers/subsystem/economy.dm @@ -52,6 +52,9 @@ SUBSYSTEM_DEF(economy) ///The modifier multiplied to the value of cargo pack prices. var/pack_price_modifier = 1 + var/civ_bounty_tracker = 0 + /// Contains the message to send to newscasters about earnings, updated on price_update() + /datum/controller/subsystem/economy/Initialize(timeofday) var/budget_to_hand_out = round(budget_pool / department_accounts.len) for(var/A in department_accounts) diff --git a/code/game/machinery/civilian_bountys.dm b/code/game/machinery/civilian_bountys.dm index f8650625d7..f195bdea12 100644 --- a/code/game/machinery/civilian_bountys.dm +++ b/code/game/machinery/civilian_bountys.dm @@ -92,9 +92,12 @@ stop_sending() if(curr_bounty.can_claim()) //Pay for the bounty with the ID's department funds. - inserted_scan_id.registered_account.transfer_money(SSeconomy.get_dep_account(inserted_scan_id.registered_account.account_job.paycheck_department), curr_bounty.reward) - status_report += "Bounty Completed! [curr_bounty.reward] credits have been paid out. " + status_report += "Bounty Completed! Please send your completed bounty cube to cargo for your automated payout shortly." inserted_scan_id.registered_account.reset_bounty() + SSeconomy.civ_bounty_tracker++ + var/obj/item/bounty_cube/reward = new /obj/item/bounty_cube(drop_location()) + reward.bounty_value = curr_bounty.reward + reward.AddComponent(/datum/component/pricetag, inserted_scan_id.registered_account, 10) pad.visible_message("[pad] activates!") flick(pad.sending_state,pad) pad.icon_state = pad.idle_state @@ -146,15 +149,7 @@ var/curr_time = round(((pot_acc.bounty_timer + (5 MINUTES))-world.time)/ (1 MINUTES), 0.01) to_chat(usr, "You already have an incomplete civilian bounty, try again in [curr_time] minutes to replace it!") return FALSE - var/datum/bounty/crumbs = random_bounty(pot_acc.account_job.bounty_types) //It's a good scene from War Dogs (2016). - /*if(SSeconomy.inflation_value() > 1) //lets try not to add inflation for right now - if(istype(crumbs, /datum/bounty/item)) - var/datum/bounty/item/items = crumbs - items.required_count = max(round((items.required_count)/(SSeconomy.inflation_value()*2)), 1) - if(istype(crumbs, /datum/bounty/reagent)) - var/datum/bounty/reagent/chems = crumbs - chems.required_volume = max(round((chems.required_volume)/SSeconomy.inflation_value()*2), 1) - crumbs.reward = round(crumbs.reward/(SSeconomy.inflation_value()*2))*/ + var/datum/bounty/crumbs = random_bounty(pot_acc.account_job.bounty_types) pot_acc.bounty_timer = world.time pot_acc.civilian_bounty = crumbs if("eject") @@ -201,6 +196,15 @@ updateUsrDialog() return TRUE +///Upon completion of a civilian bounty, one of these is created. It is sold to cargo to give the cargo budget bounty money, and the person who completed it cash. +/obj/item/bounty_cube + name = "Bounty Cube" + desc = "A bundle of compressed hardlight data, containing a completed bounty. Sell this on the cargo shuttle to claim it!" + icon = 'icons/obj/economy.dmi' + icon_state = "bounty_cube" + ///Value of the bounty that this bounty cube sells for. + var/bounty_value = 0 + ///Beacon to launch a new bounty setup when activated. /obj/item/civ_bounty_beacon diff --git a/code/game/objects/items/circuitboards/computer_circuitboards.dm b/code/game/objects/items/circuitboards/computer_circuitboards.dm index 7d23d25953..382764c586 100644 --- a/code/game/objects/items/circuitboards/computer_circuitboards.dm +++ b/code/game/objects/items/circuitboards/computer_circuitboards.dm @@ -352,10 +352,6 @@ name = "Bounty Pad (Computer Board)" build_path = /obj/machinery/computer/piratepad_control/civilian -// /obj/item/circuitboard/computer/bountypad -// name = "Bounty Pad (Computer Board)" -// build_path = /obj/machinery/computer/piratepad_control/civilian - /obj/item/circuitboard/computer/security/shuttle name = "Shuttlelinking Security Cameras (Computer Board)" icon_state = "generic" @@ -585,10 +581,6 @@ 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.dm b/code/modules/cargo/bounty.dm index 4b24488a08..00d07c8df1 100644 --- a/code/modules/cargo/bounty.dm +++ b/code/modules/cargo/bounty.dm @@ -78,7 +78,7 @@ GLOBAL_LIST_EMPTY(bounties_list) // Returns a new bounty of random type, but does not add it to GLOB.bounties_list. /proc/random_bounty(var/guided = 0) var/bounty_num - if(guided) + if(guided && (guided != CIV_JOB_RANDOM)) bounty_num = guided else bounty_num = rand(1,13) diff --git a/code/modules/cargo/bounty_console.dm b/code/modules/cargo/bounty_console.dm deleted file mode 100644 index b2ee0e0e1a..0000000000 --- a/code/modules/cargo/bounty_console.dm +++ /dev/null @@ -1,65 +0,0 @@ -#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 diff --git a/code/modules/cargo/exports/civilain_bounty.dm b/code/modules/cargo/exports/civilain_bounty.dm new file mode 100644 index 0000000000..3d443fbad0 --- /dev/null +++ b/code/modules/cargo/exports/civilain_bounty.dm @@ -0,0 +1,8 @@ +/datum/export/bounty_box + cost = 1 + k_elasticity = 0 //Bounties are non-elastic funds. + unit_name = "completed bounty cube" + export_types = list(/obj/item/bounty_cube) + +/datum/export/bounty_box/get_cost(obj/item/bounty_cube/cube, allowed_categories, apply_elastic) + return cube.bounty_value diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm index 1f87a5265d..f8e2f74d80 100644 --- a/code/modules/jobs/job_types/cargo_technician.dm +++ b/code/modules/jobs/job_types/cargo_technician.dm @@ -19,6 +19,7 @@ paycheck_department = ACCOUNT_CAR display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN + bounty_types = CIV_JOB_RANDOM threat = 0.2 /datum/outfit/job/cargo_tech diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index ce05f199a2..4c38fc4cf2 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -33,6 +33,7 @@ ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY) paycheck = PAYCHECK_COMMAND paycheck_department = ACCOUNT_SRV + bounty_types = CIV_JOB_RANDOM display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm index 98343417c8..8ea7579127 100644 --- a/code/modules/jobs/job_types/quartermaster.dm +++ b/code/modules/jobs/job_types/quartermaster.dm @@ -27,6 +27,7 @@ ACCESS_SEC_DOORS, ACCESS_HEADS) paycheck = PAYCHECK_HARD //They can already buy stuff using cargo budget, don't give em a command-level paycheck. //alright i'll agree to that -qweq paycheck_department = ACCOUNT_CAR + bounty_types = CIV_JOB_RANDOM display_order = JOB_DISPLAY_ORDER_QUARTERMASTER blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity) diff --git a/code/modules/modular_computers/file_system/programs/cargobounty.dm b/code/modules/modular_computers/file_system/programs/cargobounty.dm deleted file mode 100644 index 74ac44ade3..0000000000 --- a/code/modules/modular_computers/file_system/programs/cargobounty.dm +++ /dev/null @@ -1,47 +0,0 @@ -/datum/computer_file/program/bounty - filename = "bounty" - filedesc = "Nanotrasen Bounty Hunter" - program_icon_state = "bounty" - extended_desc = "A basic interface for supply personnel to check and claim bounties." - requires_ntnet = TRUE - transfer_access = ACCESS_CARGO - size = 10 - tgui_id = "NtosBountyConsole" - ///cooldown var for printing paper sheets. - var/printer_ready = 0 - ///The cargo account for grabbing the cargo account's credits. - var/static/datum/bank_account/cargocash - -/datum/computer_file/program/bounty/proc/print_paper() - new /obj/item/paper/bounty_printout(get_turf(computer)) - -/datum/computer_file/program/bounty/ui_interact(mob/user, datum/tgui/ui) - if(!GLOB.bounties_list.len) - setup_bounties() - printer_ready = world.time + PRINTER_TIMEOUT - cargocash = SSeconomy.get_dep_account(ACCOUNT_CAR) - . = ..() - -/datum/computer_file/program/bounty/ui_data(mob/user) - var/list/data = get_header_data() - 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 - -/datum/computer_file/program/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 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 f2514b6f9c..ea8e59a6b3 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,15 +17,7 @@ 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/icons/obj/economy.dmi b/icons/obj/economy.dmi index a73f50ef7f063b6a51aa7d7e8da31fbf9268f68c..c8ac3c142cc7aa459b58b7d6e82eda4b2ba756f5 100644 GIT binary patch literal 16676 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 literal 16128 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 MoSJNzv`Nta0q6k}S^xk5 diff --git a/tgstation.dme b/tgstation.dme index 90f21bf649..334c6f8985 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1937,7 +1937,6 @@ #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" @@ -1974,6 +1973,7 @@ #include "code\modules\cargo\bounties\slime.dm" #include "code\modules\cargo\bounties\special.dm" #include "code\modules\cargo\bounties\virus.dm" +#include "code\modules\cargo\exports\civilain_bounty.dm" #include "code\modules\cargo\exports\engineering.dm" #include "code\modules\cargo\exports\food_wine.dm" #include "code\modules\cargo\exports\gear.dm" @@ -2972,7 +2972,6 @@ #include "code\modules\modular_computers\file_system\programs\borg_monitor.dm" #include "code\modules\modular_computers\file_system\programs\budgetordering.dm" #include "code\modules\modular_computers\file_system\programs\card.dm" -#include "code\modules\modular_computers\file_system\programs\cargobounty.dm" #include "code\modules\modular_computers\file_system\programs\configurator.dm" #include "code\modules\modular_computers\file_system\programs\crewmanifest.dm" #include "code\modules\modular_computers\file_system\programs\file_browser.dm" diff --git a/tgui/packages/tgui/interfaces/CargoBountyConsole.js b/tgui/packages/tgui/interfaces/CargoBountyConsole.js deleted file mode 100644 index ad485231eb..0000000000 --- a/tgui/packages/tgui/interfaces/CargoBountyConsole.js +++ /dev/null @@ -1,119 +0,0 @@ -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 deleted file mode 100644 index bfd2b0e4c9..0000000000 --- a/tgui/packages/tgui/interfaces/NtosBountyConsole.js +++ /dev/null @@ -1,119 +0,0 @@ -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'} - - ); -};