Files
Paradise/code/game/movable_vv.dm
kyunkyunkyun b0463d3c83 Convert most spans to defines (#31080)
* spanish?

* aaaagain

* keep maptext

* Update robot_items.dm

* Update span_defines.dm

* compiles

* Update silicon_mob.dm

* compile
2025-12-13 23:55:48 +00:00

68 lines
2.2 KiB
Plaintext

#define VV_HK_GIVE_DEADCHAT_CONTROL "grantdeadchatcontrol"
#define VV_HK_REMOVE_DEADCHAT_CONTROL "removedeadchatcontrol"
/atom/movable/vv_get_dropdown()
. = ..()
if(!GetComponent(/datum/component/deadchat_control))
VV_DROPDOWN_OPTION(VV_HK_GIVE_DEADCHAT_CONTROL, "Give deadchat control")
else
VV_DROPDOWN_OPTION(VV_HK_REMOVE_DEADCHAT_CONTROL, "Remove deadchat control")
/atom/movable/vv_do_topic(list/href_list)
. = ..()
if(!.)
return
if(href_list[VV_HK_GIVE_DEADCHAT_CONTROL])
if(!check_rights(R_EVENT))
return
if(!GLOB.dsay_enabled)
// TODO verify what happens when deadchat is muted
to_chat(usr, SPAN_WARNING("Deadchat is globally muted, un-mute deadchat before enabling this."))
return
if(GetComponent(/datum/component/deadchat_control))
to_chat(usr, SPAN_WARNING("[src] is already under deadchat control!"))
return
var/control_mode = tgui_input_list(usr, "Please select the control mode", "Deadchat Control", list("Democracy", "Anarchy"))
var/selected_mode
switch(control_mode)
if("Democracy")
selected_mode = DEADCHAT_DEMOCRACY_MODE
if("Anarchy")
selected_mode = DEADCHAT_ANARCHY_MODE
else
return
var/cooldown = tgui_input_number(usr, "Please enter a cooldown time in seconds. For Democracy, it's the time between actions (must be greater than zero). For Anarchy, it's the time between each user's actions, or -1 for no cooldown.", "Cooldown")
if(isnull(cooldown) || (cooldown == -1 && selected_mode == DEADCHAT_DEMOCRACY_MODE))
return
if(cooldown < 0 && selected_mode == DEADCHAT_DEMOCRACY_MODE)
to_chat(usr, SPAN_WARNING("The cooldown for Democracy mode must be greater than zero."))
return
if(cooldown == -1)
cooldown = 0
else
cooldown = cooldown SECONDS
deadchat_plays(selected_mode, cooldown)
message_admins("[key_name_admin(usr)] provided deadchat control to [src].")
if(href_list[VV_HK_REMOVE_DEADCHAT_CONTROL])
if(!check_rights(R_EVENT))
return
if(!GetComponent(/datum/component/deadchat_control))
to_chat(usr, SPAN_WARNING("[src] is not currently under deadchat control!"))
return
stop_deadchat_plays()
message_admins("[key_name_admin(usr)] removed deadchat control from [src].")
#undef VV_HK_GIVE_DEADCHAT_CONTROL
#undef VV_HK_REMOVE_DEADCHAT_CONTROL