diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm
index c5a95241aeb..6a20a20d8ee 100644
--- a/code/game/machinery/computer/orders/order_computer/mining_order.dm
+++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm
@@ -1,5 +1,6 @@
#define MINING_SHIPPING_MULTIPLIER 0.65
-#define GET_MINING_SHIPPING_MULTIPLIER(cost) round(cost * MINING_SHIPPING_MULTIPLIER,5)
+#define GET_MINING_SHIPPING_MULTIPLIER(cost) round(cost * MINING_SHIPPING_MULTIPLIER, 5)
+#define CREDIT_TYPE_MINING "mp"
/obj/machinery/computer/order_console/mining
name = "mining equipment order console"
@@ -17,6 +18,8 @@
35% cheaper than express delivery."}
express_tooltip = @{"Sends your purchases instantly."}
+ credit_type = CREDIT_TYPE_MINING
+
order_categories = list(
CATEGORY_MINING,
CATEGORY_CONSUMABLES,
@@ -29,8 +32,8 @@
var/failure_message = "Sorry, but you do not have enough mining points."
if(!express)
final_cost = GET_MINING_SHIPPING_MULTIPLIER(final_cost)
- if(final_cost <= card.mining_points)
- card.mining_points -= final_cost
+ if(final_cost <= card.registered_account.mining_points)
+ card.registered_account.mining_points -= final_cost
return TRUE
say(failure_message)
return FALSE
@@ -56,7 +59,7 @@
coupon = null,
charge_on_purchase = FALSE,
manifest_can_fail = FALSE,
- cost_type = "mp",
+ cost_type = credit_type,
can_be_cancelled = FALSE,
)
say("Thank you for your purchase! It will arrive on the next cargo shuttle!")
@@ -72,7 +75,7 @@
var/mob/living/living_user = user
var/obj/item/card/id/id_card = living_user.get_idcard(TRUE)
if(id_card)
- data["points"] = id_card.mining_points
+ data["points"] = id_card.registered_account.mining_points
return data
@@ -186,23 +189,24 @@
var/point_movement = tgui_alert(user, "To ID (from card) or to card (from ID)?", "Mining Points Transfer", list(TO_USER_ID, TO_POINT_CARD))
if(!point_movement)
return
- var/amount = tgui_input_number(user, "How much do you want to transfer? ID Balance: [attacking_id.mining_points], Card Balance: [points]", "Transfer Points", min_value = 0, round_value = 1)
+ var/amount = tgui_input_number(user, "How much do you want to transfer? ID Balance: [attacking_id.registered_account.mining_points], Card Balance: [points]", "Transfer Points", min_value = 0, round_value = 1)
if(!amount)
return
switch(point_movement)
if(TO_USER_ID)
if(amount > points)
amount = points
- attacking_id.mining_points += amount
+ attacking_id.registered_account.mining_points += amount
points -= amount
to_chat(user, span_notice("You transfer [amount] mining points from [src] to [attacking_id]."))
if(TO_POINT_CARD)
- if(amount > attacking_id.mining_points)
- amount = attacking_id.mining_points
- attacking_id.mining_points -= amount
+ if(amount > attacking_id.registered_account.mining_points)
+ amount = attacking_id.registered_account.mining_points
+ attacking_id.registered_account.mining_points -= amount
points += amount
to_chat(user, span_notice("You transfer [amount] mining points from [attacking_id] to [src]."))
+#undef CREDIT_TYPE_MINING
#undef TO_POINT_CARD
#undef TO_USER_ID
#undef MINING_SHIPPING_MULTIPLIER
diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm
index b5a16fbf8f3..552666fc510 100644
--- a/code/game/machinery/computer/orders/order_computer/order_computer.dm
+++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm
@@ -1,5 +1,6 @@
///List of all items that can be found in the different types of order consoles, to purchase.
GLOBAL_LIST_EMPTY(order_console_products)
+#define CREDIT_TYPE_CREDIT "credit"
/obj/machinery/computer/order_console
name = "Orders Console"
@@ -23,6 +24,8 @@ GLOBAL_LIST_EMPTY(order_console_products)
///The channel we will attempt to speak into through our radio.
var/radio_channel = RADIO_CHANNEL_SUPPLY
+ ///The kind of cash does the console use.
+ var/credit_type = CREDIT_TYPE_CREDIT
///Whether the console can only use express mode ONLY
var/forced_express = FALSE
///Multiplied cost to use express mode
@@ -67,7 +70,7 @@ GLOBAL_LIST_EMPTY(order_console_products)
/obj/machinery/computer/order_console/ui_data(mob/user)
var/list/data = list()
var/cost = get_total_cost()
- data["total_cost"] = "[cost] (Express: [cost*express_cost_multiplier])"
+ data["total_cost"] = "[cost] (Express: [cost * express_cost_multiplier])"
data["off_cooldown"] = COOLDOWN_FINISHED(src, order_cooldown)
if(!isliving(user))
@@ -81,6 +84,7 @@ GLOBAL_LIST_EMPTY(order_console_products)
/obj/machinery/computer/order_console/ui_static_data(mob/user)
var/list/data = list()
+ data["credit_type"] = credit_type
data["express_tooltip"] = express_tooltip
data["purchase_tooltip"] = purchase_tooltip
data["forced_express"] = forced_express
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 1db32a0c12d..56af97af92c 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -56,8 +56,6 @@
/// Cached icon that has been built for this card. Intended for use in chat.
var/icon/cached_flat_icon
- /// How many magical mining Disney Dollars this card has for spending at the mining equipment vendors.
- var/mining_points = 0
/// The name registered on the card (for example: Dr Bryan See)
var/registered_name = null
/// Linked bank account.
@@ -730,9 +728,9 @@
if(registered_age)
. += "The card indicates that the holder is [registered_age] years old. [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads [span_danger("'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO'")] along the bottom of the card." : ""]"
- if(mining_points)
- . += "There's [mining_points] mining equipment redemption point\s loaded onto this card."
if(registered_account)
+ if(registered_account.mining_points)
+ . += "There's [registered_account.mining_points] mining point\s loaded onto the card's bank account."
. += "The account linked to the ID belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr."
if(registered_account.account_job)
var/datum/bank_account/D = SSeconomy.get_dep_account(registered_account.account_job.paycheck_department)
diff --git a/code/game/objects/structures/lavaland/geyser.dm b/code/game/objects/structures/lavaland/geyser.dm
index cd556a79165..c959a006a7e 100644
--- a/code/game/objects/structures/lavaland/geyser.dm
+++ b/code/game/objects/structures/lavaland/geyser.dm
@@ -82,7 +82,7 @@
var/obj/item/card/id/card = living.get_idcard()
if(card)
to_chat(user, span_notice("[point_value] mining points have been paid out!"))
- card.mining_points += point_value
+ card.registered_account.mining_points += point_value
/obj/structure/geyser/wittel
reagent_id = /datum/reagent/wittel
diff --git a/code/modules/economy/account.dm b/code/modules/economy/account.dm
index dddc9a5afb5..7f578bb1b39 100644
--- a/code/modules/economy/account.dm
+++ b/code/modules/economy/account.dm
@@ -5,6 +5,8 @@
var/account_holder = "Rusty Venture"
///How many credits are currently held in the bank account.
var/account_balance = 0
+ ///How many mining points (shaft miner credits) is held in the bank account, used for mining vendors.
+ var/mining_points = 0
///If there are things effecting how much income a player will get, it's reflected here 1 is standard for humans.
var/payday_modifier
///The job datum of the account owner.
diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm
index a8d93501d73..c11db146a06 100644
--- a/code/modules/mining/machine_redemption.dm
+++ b/code/modules/mining/machine_redemption.dm
@@ -241,7 +241,7 @@
user_id_card = user.get_idcard(TRUE)
if(points)
if(user_id_card)
- user_id_card.mining_points += points
+ user_id_card.registered_account.mining_points += points
points = 0
else
to_chat(usr, span_warning("No valid ID detected."))
diff --git a/tgui/packages/tgui/interfaces/ProduceConsole.js b/tgui/packages/tgui/interfaces/ProduceConsole.js
index 1a885820e5b..e1b91b7fa85 100644
--- a/tgui/packages/tgui/interfaces/ProduceConsole.js
+++ b/tgui/packages/tgui/interfaces/ProduceConsole.js
@@ -16,7 +16,7 @@ const TAB2NAME = [
const ShoppingTab = (props, context) => {
const { data, act } = useBackend(context);
- const { order_categories, order_datums } = data;
+ const { credit_type, order_categories, order_datums } = data;
const [shopIndex, setShopIndex] = useLocalState(context, 'shop-index', 1);
const [condensed, setCondensed] = useLocalState(context, 'condensed', false);
const mapped_food = order_datums.filter(
@@ -84,7 +84,7 @@ const ShoppingTab = (props, context) => {
- {' costs ' + item.cost + ' per order.'}
+ {' costs ' + item.cost + item.credit_type + ' per order.'}