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