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)