From ca57ca7bee6bb91d918454cef27afcd884a956a1 Mon Sep 17 00:00:00 2001 From: ShizCalev Date: Sat, 20 Oct 2018 01:17:28 -0400 Subject: [PATCH] Fix being unable to stuff money into IDs (#41006) --- code/game/objects/items/cards_ids.dm | 34 ++++++++++++++++++---- code/game/objects/items/credit_holochip.dm | 3 ++ code/game/objects/items/stacks/cash.dm | 4 ++- code/modules/economy/_economy.dm | 3 ++ code/modules/mining/ores_coins.dm | 3 ++ tgstation.dme | 1 + 6 files changed, 42 insertions(+), 6 deletions(-) create mode 100644 code/modules/economy/_economy.dm diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm index 3ef699f5bc0..f36085795cf 100644 --- a/code/game/objects/items/cards_ids.dm +++ b/code/game/objects/items/cards_ids.dm @@ -146,11 +146,35 @@ /obj/item/card/id/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/holochip)) - var/obj/item/holochip/holochip = W - if(registered_account) - registered_account.adjust_money(holochip.credits) - to_chat(user, "You insert [holochip] into [src], adding [holochip.credits] credits to your account.") - qdel(holochip) + insert_money(W, user) + return + else if(istype(W, /obj/item/stack/spacecash)) + insert_money(W, user, TRUE) + return + else if(istype(W, /obj/item/coin)) + insert_money(W, user, TRUE) + return + else + return ..() + +/obj/item/card/id/proc/insert_money(obj/item/I, mob/user, physical_currency) + var/cash_money = I.get_item_credit_value() + if(!cash_money) + to_chat(user, "[I] doesn't seem to be worth anything!") + return + + if(!registered_account) + to_chat(user, "[src] doesn't have a linked account to deposit [I] into!") + return + + registered_account.adjust_money(cash_money) + if(physical_currency) + to_chat(user, "You stuff [I] into [src]. It disappears in a small puff of bluespace smoke, adding [cash_money] credits to the linked account.") + else + to_chat(user, "You insert [I] into [src], adding [cash_money] credits to the linked account.") + + to_chat(user, "The linked account now reports a balance of $[registered_account.account_balance].") + qdel(I) /obj/item/card/id/proc/alt_click_can_use_id(mob/living/user) diff --git a/code/game/objects/items/credit_holochip.dm b/code/game/objects/items/credit_holochip.dm index a62f2cc559b..2f10238deba 100644 --- a/code/game/objects/items/credit_holochip.dm +++ b/code/game/objects/items/credit_holochip.dm @@ -18,6 +18,9 @@ to_chat(user, "It's loaded with [credits] credit[( credits > 1 ) ? "s" : ""]") to_chat(user, "Alt-Click to split.") +/obj/item/holochip/get_item_credit_value() + return credits + /obj/item/holochip/update_icon() name = "\improper [credits] credit holochip" var/rounded_credits = credits diff --git a/code/game/objects/items/stacks/cash.dm b/code/game/objects/items/stacks/cash.dm index bd3e4b5b566..a06b96ad9c9 100644 --- a/code/game/objects/items/stacks/cash.dm +++ b/code/game/objects/items/stacks/cash.dm @@ -18,9 +18,11 @@ update_desc() /obj/item/stack/spacecash/proc/update_desc() - var/total_worth = amount*value + var/total_worth = get_item_credit_value() desc = "It's worth [total_worth] credit[( total_worth > 1 ) ? "s" : ""]" +/obj/item/stack/spacecash/get_item_credit_value() + return (amount*value) /obj/item/stack/spacecash/merge(obj/item/stack/S) . = ..() diff --git a/code/modules/economy/_economy.dm b/code/modules/economy/_economy.dm new file mode 100644 index 00000000000..e421a939a88 --- /dev/null +++ b/code/modules/economy/_economy.dm @@ -0,0 +1,3 @@ + +/obj/item/proc/get_item_credit_value() + return diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index ec6c11464e6..59370237db6 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -322,6 +322,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ var/value = 1 var/coinflip +/obj/item/coin/get_item_credit_value() + return value + /obj/item/coin/suicide_act(mob/living/user) user.visible_message("[user] contemplates suicide with \the [src]!") if (!attack_self(user)) diff --git a/tgstation.dme b/tgstation.dme index 31d10413156..b2e2b1ea691 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1525,6 +1525,7 @@ #include "code\modules\detectivework\evidence.dm" #include "code\modules\detectivework\footprints_and_rag.dm" #include "code\modules\detectivework\scanner.dm" +#include "code\modules\economy\_economy.dm" #include "code\modules\economy\account.dm" #include "code\modules\economy\pay_stand.dm" #include "code\modules\emoji\emoji_parse.dm"