diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm
index 1470eb19063..adfd3a724ba 100644
--- a/code/modules/admin/admin.dm
+++ b/code/modules/admin/admin.dm
@@ -62,6 +62,7 @@ proc/admin_notice(var/message, var/rights)
Mob type = [M.type]
Kick |
Warn |
+ Warnings |
Ban |
Jobban |
Notes
@@ -69,6 +70,7 @@ proc/admin_notice(var/message, var/rights)
if(M.client)
body += "| Prison | "
+ body += "Wind"
var/muted = M.client.prefs.muted
body += {"
Mute:
\[IC |
@@ -1413,3 +1415,17 @@ proc/admin_notice(var/message, var/rights)
message_admins("[key_name(usr)] attempting to force mode latespawn.")
ticker.mode.next_spawn = 0
ticker.mode.try_latespawn()
+
+/client/proc/cmd_admin_wind(mob/M as mob in mob_list)
+ set category = null
+ set name = "Wind Player"
+
+ M.wind_mob(src.mob)
+ return
+
+/client/proc/cmd_admin_unwind(mob/M as mob in mob_list)
+ set category = null
+ set name = "Unwind Player"
+
+ M.unwind_mob(src.mob)
+ return
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 2c65fde8914..d6e24708c63 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -59,6 +59,8 @@ var/list/admin_verbs_admin = list(
/client/proc/toggle_hear_radio, /*toggles whether we hear the radio*/
/client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/
/client/proc/secrets,
+ /client/proc/cmd_admin_wind,
+ /client/proc/cmd_admin_unwind,
/datum/admins/proc/toggleooc, /*toggles ooc on/off for everyone*/
/datum/admins/proc/togglelooc, /*toggles looc on/off for everyone*/
/datum/admins/proc/toggleoocdead, /*toggles ooc on/off for everyone who is dead*/
@@ -288,7 +290,9 @@ var/list/admin_verbs_mod = list(
/datum/admins/proc/show_player_panel,
/client/proc/check_antagonists,
/client/proc/jobbans,
- /client/proc/cmd_admin_subtle_message /*send an message to somebody as a 'voice in their head'*/
+ /client/proc/cmd_admin_subtle_message, /*send an message to somebody as a 'voice in their head'*/
+ /client/proc/cmd_admin_wind,
+ /client/proc/cmd_admin_unwind
)
var/list/admin_verbs_mentor = list(
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index 9a9a2b44b7f..51eea2ebbb7 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -82,6 +82,7 @@
body += "PM - "
body += "SM - "
body += "JMP
"
+ body += "WIND
"
if(antagonist > 0)
body += "Antagonist";
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index d14a641dff2..cf4ff1beb19 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2678,6 +2678,17 @@
show_notes_sql(playerckey, adminckey)
return
+ else if(href_list["admin_wind_player"])
+
+ var/mob/M = locate(href_list["admin_wind_player"])
+ if(!ismob(M))
+ usr << "This can only be used on instances of type /mob"
+ return
+
+ M.wind_mob(usr)
+
+ return
+
mob/living/proc/can_centcom_reply()
return 0
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index a81c9435035..57faeee9923 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1073,3 +1073,39 @@ mob/proc/yank_out_object()
src.in_throw_mode = 1
if(src.throw_icon)
src.throw_icon.icon_state = "act_throw_on"
+
+//Admin helpers
+/mob/proc/wind_mob(var/mob/admin)
+ if (!admin)
+ return
+
+ if (!check_rights((R_MOD|R_ADMIN), 1, admin))
+ return
+
+ if (alert(admin, "Wind [src]?",,"Yes","No")!="Yes")
+ return
+
+ SetWeakened(200)
+ visible_message("OOC Information: [src] has been winded by a member of staff! Please freeze all roleplay involving their character until the matter is resolved! Adminmhelp if you have further questions.", "You have been winded by a member of staff! Please stand by until they contact you!")
+ log_admin("[key_name(admin)] winded [key_name(src)]!")
+ message_admins("[key_name_admin(admin)] winded [key_name_admin(src)]!", 1)
+
+ feedback_add_details("admin_verb", "WIND")
+
+ return
+
+/mob/proc/unwind_mob(var/mob/admin)
+ if (!admin)
+ return
+
+ if (!check_rights((R_MOD|R_ADMIN), 1, admin))
+ return
+
+ SetWeakened(0)
+ visible_message("OOC Information: [src] has been unwinded by a member of staff!", "You have been unwinded by a member of staff!")
+ log_admin("[key_name(admin)] unwinded [key_name(src)]!")
+ message_admins("[key_name_admin(admin)] unwinded [key_name_admin(src)]!", 1)
+
+ feedback_add_details("admin_verb", "UNWIND")
+
+ return