From 4c64bcfb3ccfe8a084d78f939961613cb39543fb Mon Sep 17 00:00:00 2001 From: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Date: Mon, 24 Aug 2020 18:09:57 -0400 Subject: [PATCH] Adds a new admin smite, Dock Pay. (#53138) * Adds a new admin smite, Dock Pay --- code/__DEFINES/admin.dm | 1 + code/modules/admin/verbs/randomverbs.dm | 29 ++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index dae0711cb12..d549afab56e 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -103,6 +103,7 @@ #define ADMIN_PUNISHMENT_PERFORATE ":B:erforate" #define ADMIN_PUNISHMENT_SCARIFY "Scarify" #define ADMIN_PUNISHMENT_SHOES "Knot Shoes" +#define ADMIN_PUNISHMENT_DOCK "Dock Pay" #define AHELP_ACTIVE 1 #define AHELP_CLOSED 2 diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 2fb098b5ca2..fd0b3a4b5ac 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1071,7 +1071,8 @@ Traitors and the like can also be revived with the previous role mostly intact. ADMIN_PUNISHMENT_BLEED, ADMIN_PUNISHMENT_PERFORATE, ADMIN_PUNISHMENT_SCARIFY, - ADMIN_PUNISHMENT_SHOES + ADMIN_PUNISHMENT_SHOES, + ADMIN_PUNISHMENT_DOCK ) var/punishment = input("Choose a punishment", "DIVINE SMITING") as null|anything in sortList(punishment_list) @@ -1238,6 +1239,32 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr,"[dude] does not have knottable shoes!", confidential = TRUE) return sick_kicks.adjust_laces(SHOES_KNOTTED) + if(ADMIN_PUNISHMENT_DOCK) + if(!iscarbon(target)) + to_chat(usr,"This must be used on a carbon mob.", confidential = TRUE) + return + var/mob/living/carbon/dude = target + var/obj/item/card/id/card = dude.get_idcard(TRUE) + if(!card) + to_chat(usr,"[dude] does not have an ID card on!", confidential = TRUE) + return + if(!card.registered_account) + to_chat(usr,"[dude] does not have an ID card with an account!", confidential = TRUE) + return + if(card.registered_account.account_balance == 0) + to_chat(usr, "ID Card lacks any funds. No pay to dock.") + return + var/new_cost = input("How much pay are we docking? Current balance: [card.registered_account.account_balance] credits.","BUDGET CUTS") as num|null + if(!new_cost) + return + if(!(card.registered_account.has_money(new_cost))) + to_chat(usr, "ID Card lacked funds. Emptying account.") + card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.") + card.registered_account.account_balance = 0 + else + card.registered_account.account_balance = card.registered_account.account_balance - new_cost + card.registered_account.bank_card_talk("[new_cost] credits deducted from your account based on performance review.") + SEND_SOUND(target, 'sound/machines/buzz-sigh.ogg') punish_log(target, punishment)