mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 01:49:19 +00:00
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.
This commit is contained in:
@@ -52,6 +52,9 @@ SUBSYSTEM_DEF(economy)
|
|||||||
///The modifier multiplied to the value of cargo pack prices.
|
///The modifier multiplied to the value of cargo pack prices.
|
||||||
var/pack_price_modifier = 1
|
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)
|
/datum/controller/subsystem/economy/Initialize(timeofday)
|
||||||
var/budget_to_hand_out = round(budget_pool / department_accounts.len)
|
var/budget_to_hand_out = round(budget_pool / department_accounts.len)
|
||||||
for(var/A in department_accounts)
|
for(var/A in department_accounts)
|
||||||
|
|||||||
@@ -92,9 +92,12 @@
|
|||||||
stop_sending()
|
stop_sending()
|
||||||
if(curr_bounty.can_claim())
|
if(curr_bounty.can_claim())
|
||||||
//Pay for the bounty with the ID's department funds.
|
//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! Please send your completed bounty cube to cargo for your automated payout shortly."
|
||||||
status_report += "Bounty Completed! [curr_bounty.reward] credits have been paid out. "
|
|
||||||
inserted_scan_id.registered_account.reset_bounty()
|
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("<span class='notice'>[pad] activates!</span>")
|
pad.visible_message("<span class='notice'>[pad] activates!</span>")
|
||||||
flick(pad.sending_state,pad)
|
flick(pad.sending_state,pad)
|
||||||
pad.icon_state = pad.idle_state
|
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)
|
var/curr_time = round(((pot_acc.bounty_timer + (5 MINUTES))-world.time)/ (1 MINUTES), 0.01)
|
||||||
to_chat(usr, "<span class='warning'>You already have an incomplete civilian bounty, try again in [curr_time] minutes to replace it!</span>")
|
to_chat(usr, "<span class='warning'>You already have an incomplete civilian bounty, try again in [curr_time] minutes to replace it!</span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
var/datum/bounty/crumbs = random_bounty(pot_acc.account_job.bounty_types) //It's a good scene from War Dogs (2016).
|
var/datum/bounty/crumbs = random_bounty(pot_acc.account_job.bounty_types)
|
||||||
/*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))*/
|
|
||||||
pot_acc.bounty_timer = world.time
|
pot_acc.bounty_timer = world.time
|
||||||
pot_acc.civilian_bounty = crumbs
|
pot_acc.civilian_bounty = crumbs
|
||||||
if("eject")
|
if("eject")
|
||||||
@@ -201,6 +196,15 @@
|
|||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
return TRUE
|
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.
|
///Beacon to launch a new bounty setup when activated.
|
||||||
/obj/item/civ_bounty_beacon
|
/obj/item/civ_bounty_beacon
|
||||||
|
|||||||
@@ -352,10 +352,6 @@
|
|||||||
name = "Bounty Pad (Computer Board)"
|
name = "Bounty Pad (Computer Board)"
|
||||||
build_path = /obj/machinery/computer/piratepad_control/civilian
|
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
|
/obj/item/circuitboard/computer/security/shuttle
|
||||||
name = "Shuttlelinking Security Cameras (Computer Board)"
|
name = "Shuttlelinking Security Cameras (Computer Board)"
|
||||||
icon_state = "generic"
|
icon_state = "generic"
|
||||||
@@ -585,10 +581,6 @@
|
|||||||
name = "Supply Request Console (Computer Board)"
|
name = "Supply Request Console (Computer Board)"
|
||||||
build_path = /obj/machinery/computer/cargo/request
|
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
|
/obj/item/circuitboard/computer/ferry
|
||||||
name = "Transport Ferry (Computer Board)"
|
name = "Transport Ferry (Computer Board)"
|
||||||
icon_state = "supply"
|
icon_state = "supply"
|
||||||
|
|||||||
@@ -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.
|
// Returns a new bounty of random type, but does not add it to GLOB.bounties_list.
|
||||||
/proc/random_bounty(var/guided = 0)
|
/proc/random_bounty(var/guided = 0)
|
||||||
var/bounty_num
|
var/bounty_num
|
||||||
if(guided)
|
if(guided && (guided != CIV_JOB_RANDOM))
|
||||||
bounty_num = guided
|
bounty_num = guided
|
||||||
else
|
else
|
||||||
bounty_num = rand(1,13)
|
bounty_num = rand(1,13)
|
||||||
|
|||||||
@@ -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 = "<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
|
|
||||||
8
code/modules/cargo/exports/civilain_bounty.dm
Normal file
8
code/modules/cargo/exports/civilain_bounty.dm
Normal file
@@ -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
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
paycheck_department = ACCOUNT_CAR
|
paycheck_department = ACCOUNT_CAR
|
||||||
|
|
||||||
display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN
|
display_order = JOB_DISPLAY_ORDER_CARGO_TECHNICIAN
|
||||||
|
bounty_types = CIV_JOB_RANDOM
|
||||||
threat = 0.2
|
threat = 0.2
|
||||||
|
|
||||||
/datum/outfit/job/cargo_tech
|
/datum/outfit/job/cargo_tech
|
||||||
|
|||||||
@@ -33,6 +33,7 @@
|
|||||||
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
|
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY)
|
||||||
paycheck = PAYCHECK_COMMAND
|
paycheck = PAYCHECK_COMMAND
|
||||||
paycheck_department = ACCOUNT_SRV
|
paycheck_department = ACCOUNT_SRV
|
||||||
|
bounty_types = CIV_JOB_RANDOM
|
||||||
|
|
||||||
display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL
|
display_order = JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
ACCESS_SEC_DOORS, ACCESS_HEADS)
|
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 = 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
|
paycheck_department = ACCOUNT_CAR
|
||||||
|
bounty_types = CIV_JOB_RANDOM
|
||||||
|
|
||||||
display_order = JOB_DISPLAY_ORDER_QUARTERMASTER
|
display_order = JOB_DISPLAY_ORDER_QUARTERMASTER
|
||||||
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
blacklisted_quirks = list(/datum/quirk/mute, /datum/quirk/brainproblems, /datum/quirk/insanity)
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -18,14 +18,6 @@
|
|||||||
category = list("Computer Boards")
|
category = list("Computer Boards")
|
||||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO
|
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
|
/datum/design/board/mining
|
||||||
name = "Computer Design (Outpost Status Display)"
|
name = "Computer Design (Outpost Status Display)"
|
||||||
desc = "Allows for the construction of circuit boards used to build an outpost status display console."
|
desc = "Allows for the construction of circuit boards used to build an outpost status display console."
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
@@ -1937,7 +1937,6 @@
|
|||||||
#include "code\modules\buildmode\submodes\throwing.dm"
|
#include "code\modules\buildmode\submodes\throwing.dm"
|
||||||
#include "code\modules\buildmode\submodes\variable_edit.dm"
|
#include "code\modules\buildmode\submodes\variable_edit.dm"
|
||||||
#include "code\modules\cargo\bounty.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\centcom_podlauncher.dm"
|
||||||
#include "code\modules\cargo\console.dm"
|
#include "code\modules\cargo\console.dm"
|
||||||
#include "code\modules\cargo\coupon.dm"
|
#include "code\modules\cargo\coupon.dm"
|
||||||
@@ -1974,6 +1973,7 @@
|
|||||||
#include "code\modules\cargo\bounties\slime.dm"
|
#include "code\modules\cargo\bounties\slime.dm"
|
||||||
#include "code\modules\cargo\bounties\special.dm"
|
#include "code\modules\cargo\bounties\special.dm"
|
||||||
#include "code\modules\cargo\bounties\virus.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\engineering.dm"
|
||||||
#include "code\modules\cargo\exports\food_wine.dm"
|
#include "code\modules\cargo\exports\food_wine.dm"
|
||||||
#include "code\modules\cargo\exports\gear.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\borg_monitor.dm"
|
||||||
#include "code\modules\modular_computers\file_system\programs\budgetordering.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\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\configurator.dm"
|
||||||
#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm"
|
#include "code\modules\modular_computers\file_system\programs\crewmanifest.dm"
|
||||||
#include "code\modules\modular_computers\file_system\programs\file_browser.dm"
|
#include "code\modules\modular_computers\file_system\programs\file_browser.dm"
|
||||||
|
|||||||
@@ -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 (
|
|
||||||
<Window
|
|
||||||
width={750}
|
|
||||||
height={600}
|
|
||||||
resizable>
|
|
||||||
<Window.Content scrollable>
|
|
||||||
<Section
|
|
||||||
title={<BountyHeader />}
|
|
||||||
buttons={(
|
|
||||||
<Button
|
|
||||||
icon="print"
|
|
||||||
content="Print Bounty List"
|
|
||||||
onClick={() => act('Print')} />
|
|
||||||
)}>
|
|
||||||
<Table border>
|
|
||||||
<Table.Row
|
|
||||||
bold
|
|
||||||
italic
|
|
||||||
color="label"
|
|
||||||
fontSize={1.25}>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Bounty Object
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Description
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Progress
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Value
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Claim
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
{bountydata.map(bounty => (
|
|
||||||
<Table.Row
|
|
||||||
key={bounty.name}
|
|
||||||
backgroundColor={bounty.priority === 1
|
|
||||||
? 'rgba(252, 152, 3, 0.25)'
|
|
||||||
: ''}>
|
|
||||||
<Table.Cell bold p={1}>
|
|
||||||
{bounty.name}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
italic
|
|
||||||
textAlign="center"
|
|
||||||
p={1}>
|
|
||||||
{bounty.description}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}
|
|
||||||
textAlign="center">
|
|
||||||
{bounty.priority === 1
|
|
||||||
? <Box>High Priority</Box>
|
|
||||||
: ""}
|
|
||||||
{bounty.completion_string}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}
|
|
||||||
textAlign="center">
|
|
||||||
{bounty.reward_string}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}>
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
textAlign="center"
|
|
||||||
icon={bounty.claimed === 1
|
|
||||||
? "check"
|
|
||||||
: ""}
|
|
||||||
content={bounty.claimed === 1
|
|
||||||
? "Claimed"
|
|
||||||
: "Claim"}
|
|
||||||
disabled={bounty.claimed === 1}
|
|
||||||
color={bounty.can_claim === 1
|
|
||||||
? 'green'
|
|
||||||
: 'red'}
|
|
||||||
onClick={() => act('ClaimBounty', {
|
|
||||||
bounty: bounty.bounty_ref,
|
|
||||||
})} />
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
))}
|
|
||||||
</Table>
|
|
||||||
</Section>
|
|
||||||
</Window.Content>
|
|
||||||
</Window>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const BountyHeader = (props, context) => {
|
|
||||||
const { act, data } = useBackend(context);
|
|
||||||
const {
|
|
||||||
stored_cash,
|
|
||||||
} = data;
|
|
||||||
return (
|
|
||||||
<Box inline bold>
|
|
||||||
<AnimatedNumber
|
|
||||||
value={stored_cash}
|
|
||||||
format={value => formatMoney(value)} />
|
|
||||||
{' credits'}
|
|
||||||
</Box>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
@@ -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 (
|
|
||||||
<NtosWindow
|
|
||||||
width={750}
|
|
||||||
height={600}
|
|
||||||
resizable>
|
|
||||||
<NtosWindow.Content scrollable>
|
|
||||||
<Section
|
|
||||||
title={<BountyHeader />}
|
|
||||||
buttons={(
|
|
||||||
<Button
|
|
||||||
icon="print"
|
|
||||||
content="Print Bounty List"
|
|
||||||
onClick={() => act('Print')} />
|
|
||||||
)}>
|
|
||||||
<Table border>
|
|
||||||
<Table.Row
|
|
||||||
bold
|
|
||||||
italic
|
|
||||||
color="label"
|
|
||||||
fontSize={1.25}>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Bounty Object
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Description
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Progress
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Value
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell p={1} textAlign="center">
|
|
||||||
Claim
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
{bountydata.map(bounty => (
|
|
||||||
<Table.Row
|
|
||||||
key={bounty.name}
|
|
||||||
backgroundColor={bounty.priority === 1
|
|
||||||
? 'rgba(252, 152, 3, 0.25)'
|
|
||||||
: ''}>
|
|
||||||
<Table.Cell bold p={1}>
|
|
||||||
{bounty.name}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
italic
|
|
||||||
textAlign="center"
|
|
||||||
p={1}>
|
|
||||||
{bounty.description}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}
|
|
||||||
textAlign="center">
|
|
||||||
{bounty.priority === 1
|
|
||||||
? <Box>High Priority</Box>
|
|
||||||
: ""}
|
|
||||||
{bounty.completion_string}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}
|
|
||||||
textAlign="center">
|
|
||||||
{bounty.reward_string}
|
|
||||||
</Table.Cell>
|
|
||||||
<Table.Cell
|
|
||||||
bold
|
|
||||||
p={1}>
|
|
||||||
<Button
|
|
||||||
fluid
|
|
||||||
textAlign="center"
|
|
||||||
icon={bounty.claimed === 1
|
|
||||||
? "check"
|
|
||||||
: ""}
|
|
||||||
content={bounty.claimed === 1
|
|
||||||
? "Claimed"
|
|
||||||
: "Claim"}
|
|
||||||
disabled={bounty.claimed === 1}
|
|
||||||
color={bounty.can_claim === 1
|
|
||||||
? 'green'
|
|
||||||
: 'red'}
|
|
||||||
onClick={() => act('ClaimBounty', {
|
|
||||||
bounty: bounty.bounty_ref,
|
|
||||||
})} />
|
|
||||||
</Table.Cell>
|
|
||||||
</Table.Row>
|
|
||||||
))}
|
|
||||||
</Table>
|
|
||||||
</Section>
|
|
||||||
</NtosWindow.Content>
|
|
||||||
</NtosWindow>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
const BountyHeader = (props, context) => {
|
|
||||||
const { act, data } = useBackend(context);
|
|
||||||
const {
|
|
||||||
stored_cash,
|
|
||||||
} = data;
|
|
||||||
return (
|
|
||||||
<Box inline bold>
|
|
||||||
<AnimatedNumber
|
|
||||||
value={stored_cash}
|
|
||||||
format={value => formatMoney(value)} />
|
|
||||||
{' credits'}
|
|
||||||
</Box>
|
|
||||||
);
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user