Merge pull request #6841 from VOREStation/upstream-merge-6818

[MIRROR] Fully Implements R_EVENT for Event Managers
This commit is contained in:
Novacat
2020-03-15 17:01:36 -04:00
committed by GitHub
30 changed files with 216 additions and 90 deletions

View File

@@ -90,7 +90,7 @@ proc/admin_notice(var/message, var/rights)
<A href='?src=\ref[src];getmob=\ref[M]'>Get</A> |
<A href='?src=\ref[src];sendmob=\ref[M]'>Send To</A>
<br><br>
[check_rights(R_ADMIN|R_MOD,0) ? "<A href='?src=\ref[src];traitor=\ref[M]'>Traitor panel</A> | " : "" ]
[check_rights(R_ADMIN|R_MOD|R_EVENT,0) ? "<A href='?src=\ref[src];traitor=\ref[M]'>Traitor panel</A> | " : "" ]
<A href='?src=\ref[src];narrateto=\ref[M]'>Narrate to</A> |
<A href='?src=\ref[src];subtlemessage=\ref[M]'>Subtle message</A>
"}
@@ -1373,7 +1373,7 @@ var/datum/announcement/minor/admin_min_announcer = new
return //Extra sanity check to make sure only observers are shoved into things
//Same as assume-direct-control perm requirements.
if (!check_rights(R_VAREDIT,0) || !check_rights(R_ADMIN|R_DEBUG,0))
if (!check_rights(R_VAREDIT,0) || !check_rights(R_ADMIN|R_DEBUG|R_EVENT,0))
return 0
if (!frommob.ckey)
return 0
@@ -1426,7 +1426,7 @@ var/datum/announcement/minor/admin_min_announcer = new
if (!istype(src,/datum/admins))
src = usr.client.holder
if (!istype(src,/datum/admins) || !check_rights(R_ADMIN))
if (!istype(src,/datum/admins) || !check_rights(R_ADMIN|R_EVENT|R_FUN))
to_chat(usr, "Error: you are not an admin!")
return
@@ -1444,7 +1444,7 @@ var/datum/announcement/minor/admin_min_announcer = new
var/msg
if(check_rights(R_ADMIN|R_MOD))
if(check_rights(R_ADMIN|R_MOD|R_EVENT))
if (H.paralysis == 0)
H.paralysis = 8000
msg = "has paralyzed [key_name(H)]."
@@ -1462,7 +1462,7 @@ var/datum/announcement/minor/admin_min_announcer = new
set popup_menu = FALSE //VOREStation Edit - Declutter.
var/crystals
if(check_rights(R_ADMIN))
if(check_rights(R_ADMIN|R_EVENT))
crystals = input("Amount of telecrystals for [H.ckey], currently [H.mind.tcrystals].", crystals) as null|num
if (!isnull(crystals))
H.mind.tcrystals = crystals
@@ -1478,7 +1478,7 @@ var/datum/announcement/minor/admin_min_announcer = new
set popup_menu = FALSE //VOREStation Edit - Declutter.
var/crystals
if(check_rights(R_ADMIN))
if(check_rights(R_ADMIN|R_EVENT))
crystals = input("Amount of telecrystals to give to [H.ckey], currently [H.mind.tcrystals].", crystals) as null|num
if (!isnull(crystals))
H.mind.tcrystals += crystals
@@ -1561,12 +1561,12 @@ datum/admins/var/obj/item/weapon/paper/admin/faxreply // var to hold fax replies
if(P.sender) // sent as a reply
log_admin("[key_name(src.owner)] replied to a fax message from [key_name(P.sender)]")
for(var/client/C in admins)
if((R_ADMIN | R_MOD) & C.holder.rights)
if((R_ADMIN | R_MOD | R_EVENT) & C.holder.rights)
to_chat(C, "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(src.owner)] replied to a fax message from [key_name_admin(P.sender)] (<a href='?_src_=holder;AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)</span>")
else
log_admin("[key_name(src.owner)] has sent a fax message to [destination.department]")
for(var/client/C in admins)
if((R_ADMIN | R_MOD) & C.holder.rights)
if((R_ADMIN | R_MOD | R_EVENT) & C.holder.rights)
to_chat(C, "<span class='log_message'><span class='prefix'>FAX LOG:</span>[key_name_admin(src.owner)] has sent a fax message to [destination.department] (<a href='?_src_=holder;AdminFaxView=\ref[rcvdcopy]'>VIEW</a>)</span>")
else

View File

@@ -1,6 +1,7 @@
//admin verb groups - They can overlap if you so wish. Only one of each verb will exist in the verbs list regardless
var/list/admin_verbs_default = list(
/datum/admins/proc/show_player_panel, //shows an interface for individual players, with various links (links require additional flags,
/client/proc/player_panel_new, //shows an interface for all players, with links to various panels,
/client/proc/player_panel,
/client/proc/deadmin_self, //destroys our own admin datum so we can play as a regular player,
/client/proc/hide_verbs, //hides all our adminverbs,
@@ -15,7 +16,6 @@ var/list/admin_verbs_default = list(
)
var/list/admin_verbs_admin = list(
/client/proc/player_panel_new, //shows an interface for all players, with links to various panels,
/datum/admins/proc/set_tcrystals,
/datum/admins/proc/add_tcrystals,
/client/proc/invisimin, //allows our mob to go invisible/visible,
@@ -141,7 +141,7 @@ var/list/admin_verbs_fun = list(
/datum/admins/proc/call_drop_pod,
/client/proc/smite_vr, //VOREStation Add,
/client/proc/smite,
/client/proc/admin_lightning_strike
/client/proc/admin_lightning_strike,
)
var/list/admin_verbs_spawn = list(
@@ -363,13 +363,137 @@ var/list/admin_verbs_mod = list(
/datum/admins/proc/view_atk_log //shows the server combat-log, doesn't do anything presently,
)
//VOREStation Edit Start - Highly Modified List
var/list/admin_verbs_event_manager = list(
/client/proc/cmd_admin_say, //admin-only ooc chat,
/client/proc/cmd_admin_say, //VOREStation Edit - Event managers can use asay,
/client/proc/cmd_admin_pm_context,
/client/proc/cmd_admin_pm_panel,
/client/proc/admin_ghost,
/datum/admins/proc/show_player_info,
/client/proc/dsay,
/client/proc/cmd_admin_subtle_message,
/client/proc/debug_variables,
/client/proc/check_antagonists,
/client/proc/aooc,
/datum/admins/proc/paralyze_mob,
/client/proc/cmd_admin_direct_narrate,
/client/proc/allow_character_respawn,
/datum/admins/proc/sendFax,
/client/proc/respawn_character,
/proc/possess,
/proc/release,
/datum/admins/proc/change_weather,
/datum/admins/proc/change_time,
/client/proc/admin_give_modifier,
/client/proc/Jump,
/client/proc/jumptomob,
/client/proc/jumptocoord,
/client/proc/cmd_admin_delete,
/datum/admins/proc/delay,
/client/proc/Set_Holiday,
/client/proc/make_sound,
/client/proc/toggle_random_events,
/datum/admins/proc/cmd_admin_dress,
/client/proc/cmd_admin_gib_self,
/client/proc/drop_bomb,
/client/proc/cmd_admin_add_freeform_ai_law,
/client/proc/cmd_admin_add_random_ai_law,
/client/proc/make_sound,
/client/proc/toggle_random_events,
/client/proc/editappear,
/client/proc/roll_dices,
/datum/admins/proc/call_supply_drop,
/datum/admins/proc/call_drop_pod,
/datum/admins/proc/PlayerNotes,
/client/proc/callproc,
/client/proc/callproc_datum,
/client/proc/debug_controller,
/client/proc/show_gm_status,
/datum/admins/proc/change_weather,
/datum/admins/proc/change_time,
/client/proc/admin_give_modifier,
/datum/admins/proc/cmd_admin_dress,
/client/proc/cmd_admin_gib_self,
/datum/admins/proc/set_tcrystals,
/datum/admins/proc/add_tcrystals,
/client/proc/invisimin, //allows our mob to go invisible/visible,
/datum/admins/proc/show_traitor_panel, //interface which shows a mob's mind.,
/datum/admins/proc/show_game_mode, //Configuration window for the current game mode.,
/datum/admins/proc/force_mode_latespawn, //Force the mode to try a latespawn proc,
/datum/admins/proc/force_antag_latespawn, //Force a specific template to try a latespawn proc,
/datum/admins/proc/announce, //priority announce something to all clients.,
/datum/admins/proc/intercom, //send a fake intercom message, like an arrivals announcement,
/datum/admins/proc/intercom_convo, //send a fake intercom conversation, like an ATC exchange,
/client/proc/colorooc, //allows us to set a custom colour for everythign we say in ooc,
/client/proc/admin_ghost, //allows us to ghost/reenter body at will,
/client/proc/toggle_view_range, //changes how far we can see,
/client/proc/cmd_admin_pm_context, //right-click adminPM interface,
/client/proc/cmd_admin_pm_panel, //admin-pm list,
/client/proc/cmd_admin_subtle_message, //send an message to somebody as a 'voice in their head',
/client/proc/cmd_admin_delete, //delete an instance/object/mob/etc,
/client/proc/cmd_admin_check_contents, //displays the contents of an instance,
/client/proc/cmd_admin_check_player_logs, //checks a player's attack logs,
/client/proc/cmd_admin_check_dialogue_logs, //checks a player's dialogue logs,
/datum/admins/proc/access_news_network, //allows access of newscasters,
/client/proc/jumptocoord, //we ghost and jump to a coordinate,
/client/proc/Getmob, //teleports a mob to our location,
/client/proc/Getkey, //teleports a mob with a certain ckey to our location,
/client/proc/Jump,
/client/proc/jumptokey, //allows us to jump to the location of a mob with a certain ckey,
/client/proc/jumptomob, //allows us to jump to a specific mob,
/client/proc/jumptoturf, //allows us to jump to a specific turf,
/client/proc/admin_call_shuttle, //allows us to call the emergency shuttle,
/client/proc/admin_cancel_shuttle, //allows us to cancel the emergency shuttle, sending it back to CentCom,
/client/proc/cmd_admin_direct_narrate, //send text directly to a player with no padding. Useful for narratives and fluff-text,
/client/proc/cmd_admin_world_narrate, //sends text to all players with no padding,
/client/proc/cmd_admin_create_centcom_report,
/client/proc/check_words, //displays cult-words,
/client/proc/check_ai_laws, //shows AI and borg laws,
/client/proc/rename_silicon, //properly renames silicons,
/client/proc/manage_silicon_laws, // Allows viewing and editing silicon laws. ,
/client/proc/check_antagonists,
/client/proc/admin_memo, //admin memo system. show/delete/write. +SERVER needed to delete admin memos of others,
/client/proc/dsay, //talk in deadchat using our ckey/fakekey,
/client/proc/secrets,
/client/proc/game_panel, //game panel, allows to change game-mode etc,
/client/proc/cmd_mod_say,
/client/proc/cmd_event_say
/client/proc/cmd_event_say,
/datum/admins/proc/show_player_info,
/client/proc/free_slot, //frees slot for chosen job,
/client/proc/cmd_admin_change_custom_event,
/client/proc/cmd_admin_rejuvenate,
/client/proc/toggleghostwriters,
/datum/admins/proc/show_skills,
/client/proc/man_up,
/client/proc/global_man_up,
/client/proc/response_team, // Response Teams admin verb,
/client/proc/trader_ship, // Trader ship admin verb,
/client/proc/allow_character_respawn, // Allows a ghost to respawn ,
/client/proc/event_manager_panel,
/client/proc/aooc,
/client/proc/change_human_appearance_admin, // Allows an admin to change the basic appearance of human-based mobs ,
/client/proc/change_human_appearance_self, // Allows the human-based mob itself change its basic appearance ,
/client/proc/change_security_level,
/client/proc/makePAI,
/client/proc/toggle_debug_logs,
/client/proc/toggle_attack_logs,
/datum/admins/proc/paralyze_mob,
/client/proc/fixatmos,
/datum/admins/proc/sendFax,
/client/proc/despawn_player,
/datum/admins/proc/view_feedback,
/datum/admins/proc/capture_map,
/client/proc/Set_Holiday,
/datum/admins/proc/startnow,
/datum/admins/proc/restart,
/datum/admins/proc/delay,
/client/proc/cmd_mod_say,
/datum/admins/proc/immreboot,
/client/proc/everyone_random,
/client/proc/cmd_admin_delete, //delete an instance/object/mob/etc,
/client/proc/cmd_debug_del_all,
/client/proc/toggle_random_events,
/client/proc/modify_server_news
)
//VOREStation Edit End
/client/proc/add_admin_verbs()
if(holder)
@@ -822,7 +946,7 @@ var/list/admin_verbs_event_manager = list(
set name = "Rename Silicon"
set category = "Admin"
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/living/silicon/S = input("Select silicon.", "Rename Silicon.") as null|anything in silicon_mob_list
if(!S) return
@@ -837,7 +961,7 @@ var/list/admin_verbs_event_manager = list(
set name = "Manage Silicon Laws"
set category = "Admin"
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
var/mob/living/silicon/S = input("Select silicon.", "Manage Silicon Laws") as null|anything in silicon_mob_list
if(!S) return
@@ -889,7 +1013,7 @@ var/list/admin_verbs_event_manager = list(
set desc = "Sets the station security level"
set category = "Admin"
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
var sec_level = input(usr, "It's currently code [get_security_level()].", "Select Security Level") as null|anything in (list("green","yellow","violet","orange","blue","red","delta")-get_security_level())
if(alert("Switch from code [get_security_level()] to code [sec_level]?","Change security level?","Yes","No") == "Yes")
set_security_level(sec_level)

View File

@@ -11,7 +11,7 @@
return
if(href_list["ahelp"])
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
var/ahelp_ref = href_list["ahelp"]
@@ -198,7 +198,7 @@
edit_admin_permissions()
else if(href_list["call_shuttle"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
if( ticker.mode.name == "blob" )
alert("You can't call the shuttle during blob!")
@@ -935,7 +935,7 @@
cmd_admin_mute(M, mute_type)
else if(href_list["c_mode"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
if(ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -948,7 +948,7 @@
usr << browse(dat, "window=c_mode")
else if(href_list["f_secret"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
if(ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -962,7 +962,7 @@
usr << browse(dat, "window=f_secret")
else if(href_list["c_mode2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
if(!check_rights(R_ADMIN|R_SERVER|R_EVENT)) return
if (ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -975,7 +975,7 @@
.(href, list("c_mode"=1))
else if(href_list["f_secret2"])
if(!check_rights(R_ADMIN|R_SERVER)) return
if(!check_rights(R_ADMIN|R_SERVER|R_EVENT)) return
if(ticker && ticker.mode)
return alert(usr, "The game has already started.", null, null, null, null)
@@ -1350,7 +1350,7 @@
to_chat(src.owner, "(<a href='?src=\ref[usr];priv_msg=\ref[M]'>PM</a>) (<A HREF='?src=\ref[src];adminplayeropts=\ref[M]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[M]'>VV</A>) (<A HREF='?src=\ref[src];subtlemessage=\ref[M]'>SM</A>) ([admin_jump_link(M, src)]) (<A HREF='?src=\ref[src];secretsadmin=check_antagonist'>CA</A>)")
else if(href_list["adminspawncookie"])
if(!check_rights(R_ADMIN|R_FUN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/living/carbon/human/H = locate(href_list["adminspawncookie"])
if(!ishuman(H))
@@ -1374,7 +1374,7 @@
to_chat(H, "<font color='blue'>Your prayers have been answered!! You received the <b>best cookie</b>!</font>")
else if(href_list["adminsmite"])
if(!check_rights(R_ADMIN|R_FUN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/living/carbon/human/H = locate(href_list["adminsmite"])
if(!ishuman(H))
@@ -1384,7 +1384,7 @@
owner.smite(H)
else if(href_list["BlueSpaceArtillery"])
if(!check_rights(R_ADMIN|R_FUN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/living/M = locate(href_list["BlueSpaceArtillery"])
if(!isliving(M))
@@ -1488,38 +1488,38 @@
P.adminbrowse()
else if(href_list["jumpto"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT|R_MOD)) return
var/mob/M = locate(href_list["jumpto"])
usr.client.jumptomob(M)
else if(href_list["getmob"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT|R_FUN)) return
if(alert(usr, "Confirm?", "Message", "Yes", "No") != "Yes") return
var/mob/M = locate(href_list["getmob"])
usr.client.Getmob(M)
else if(href_list["sendmob"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT|R_FUN)) return
var/mob/M = locate(href_list["sendmob"])
usr.client.sendmob(M)
else if(href_list["narrateto"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT|R_FUN)) return
var/mob/M = locate(href_list["narrateto"])
usr.client.cmd_admin_direct_narrate(M)
else if(href_list["subtlemessage"])
if(!check_rights(R_MOD,0) && !check_rights(R_ADMIN)) return
if(!check_rights(R_MOD|R_ADMIN|R_EVENT|R_FUN,0)) return
var/mob/M = locate(href_list["subtlemessage"])
usr.client.cmd_admin_subtle_message(M)
else if(href_list["traitor"])
if(!check_rights(R_ADMIN|R_MOD)) return
if(!check_rights(R_ADMIN|R_MOD|R_EVENT)) return
if(!ticker || !ticker.mode)
alert("The game hasn't started yet!")
@@ -1868,7 +1868,7 @@
populate_inactive_customitems_list(src.owner)
else if(href_list["vsc"])
if(check_rights(R_ADMIN|R_SERVER))
if(check_rights(R_ADMIN|R_SERVER|R_EVENT))
if(href_list["vsc"] == "airflow")
vsc.ChangeSettingsDialog(usr,vsc.settings)
if(href_list["vsc"] == "phoron")
@@ -1895,7 +1895,7 @@
show_player_panel(M)
else if(href_list["cryoplayer"])
if(!check_rights(R_ADMIN)) return
if(!check_rights(R_ADMIN|R_EVENT)) return
var/mob/living/carbon/M = locate(href_list["cryoplayer"]) //VOREStation edit from just an all mob check to mob/living/carbon
if(!istype(M))

View File

@@ -504,7 +504,7 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
set name = "Show Ticket List"
set category = "Admin"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG, TRUE))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT, TRUE))
return
var/browse_to

View File

@@ -8,7 +8,7 @@
set name = "Jump to Area"
set desc = "Area to jump to"
set category = "Admin"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
@@ -24,7 +24,7 @@
/client/proc/jumptoturf(var/turf/T in turfs)
set name = "Jump to Turf"
set category = "Admin"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
log_admin("[key_name(usr)] jumped to [T.x],[T.y],[T.z] in [T.loc]")
@@ -40,7 +40,8 @@
set category = "Admin"
set name = "Jump to Mob"
set popup_menu = FALSE //VOREStation Edit - Declutter.
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
@@ -62,7 +63,7 @@
set category = "Admin"
set name = "Jump to Coordinate"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if (config.allow_admin_jump)
@@ -82,7 +83,7 @@
set category = "Admin"
set name = "Jump to Key"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
@@ -106,7 +107,7 @@
set category = "Admin"
set name = "Get Mob"
set desc = "Mob to teleport"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
log_admin("[key_name(usr)] jumped to [key_name(M)]")
@@ -124,7 +125,7 @@
set name = "Get Key"
set desc = "Key to teleport"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
if(config.allow_admin_jump)
@@ -152,7 +153,7 @@
/client/proc/sendmob(var/mob/M in sortmobs())
set category = "Admin"
set name = "Send Mob"
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG))
if(!check_rights(R_ADMIN|R_MOD|R_DEBUG|R_EVENT))
return
var/area/A = input(usr, "Pick an area.", "Pick an area") in return_sorted_areas()
if(A)

View File

@@ -3,7 +3,7 @@
set name = "AOOC"
set desc = "Antagonist OOC"
var/is_admin = check_rights(R_ADMIN|R_MOD, show_msg = 0)
var/is_admin = check_rights(R_ADMIN|R_MOD|R_EVENT, show_msg = 0)
var/is_antag = usr.mind && usr.mind.special_role
if(!is_antag && !is_admin) // Non-antagonists and non-admins have no business using this.
@@ -30,7 +30,7 @@
var/player_display = (is_admin && !is_antag) ? "[display_name]([usr.client.holder.rank])" : display_name
for(var/mob/M in mob_list)
if(check_rights(R_ADMIN|R_MOD, 0, M)) // Staff can see AOOC unconditionally, and with more details.
if(check_rights(R_ADMIN|R_MOD|R_EVENT, 0, M)) // Staff can see AOOC unconditionally, and with more details.
to_chat(M, "<span class='ooc'><span class='aooc'>[create_text_tag("aooc", "Antag-OOC:", M.client)] <EM>[get_options_bar(src, 0, 1, 1)]([admin_jump_link(usr, M.client.holder)]):</EM> <span class='message'>[msg]</span></span></span>")
else if(M.client) // Players can only see AOOC if observing, or if they are an antag type allowed to use AOOC.
var/datum/antagonist/A = null

View File

@@ -303,7 +303,7 @@
set name = "Assume direct control"
set desc = "Direct intervention"
if(!check_rights(R_DEBUG|R_ADMIN)) return
if(!check_rights(R_DEBUG|R_ADMIN|R_EVENT)) return
if(M.ckey)
if(alert("This mob is being controlled by [M.ckey]. Are you sure you wish to assume control of it? [M.ckey] will be made a ghost.",,"Yes","No") != "Yes")
return

View File

@@ -2,7 +2,7 @@
set category = "Admin"
set name = "Fix Atmospherics Grief"
if(!check_rights(R_ADMIN|R_DEBUG)) return
if(!check_rights(R_ADMIN|R_DEBUG|R_EVENT)) return
if(alert("WARNING: Executing this command will perform a full reset of atmosphere. All pipelines will lose any gas that may be in them, and all zones will be reset to contain air mix as on roundstart. The supermatter engine will also be stopped (to prevent overheat due to removal of coolant). Do not use unless the station is suffering serious atmospheric issues due to grief or bug.", "Full Atmosphere Reboot", "No", "Yes") == "No")

View File

@@ -20,7 +20,7 @@
msg = "<font color='blue'>[bicon(cross)] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>) (<A HREF='?_src_=holder;adminsmite=\ref[src]'>SMITE</a>):</b> [msg]</font>"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
if(R_ADMIN|R_EVENT & C.holder.rights)
if(C.is_preference_enabled(/datum/client_preference/admin/show_chat_prayers))
to_chat(C,msg)
C << 'sound/effects/ding.ogg'
@@ -32,13 +32,13 @@
/proc/CentCom_announce(var/msg, var/mob/Sender, var/iamessage)
msg = "<font color='blue'><b><font color=orange>[uppertext(using_map.boss_short)]M[iamessage ? " IA" : ""]:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;CentComReply=\ref[Sender]'>RPLY</A>):</b> [msg]</font>"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
if(R_ADMIN|R_EVENT & C.holder.rights)
to_chat(C,msg)
C << 'sound/machines/signal.ogg'
/proc/Syndicate_announce(var/msg, var/mob/Sender)
msg = "<font color='blue'><b><font color=crimson>ILLEGAL:</font>[key_name(Sender, 1)] (<A HREF='?_src_=holder;adminplayeropts=\ref[Sender]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[Sender]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[Sender]'>SM</A>) ([admin_jump_link(Sender, src)]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;BlueSpaceArtillery=\ref[Sender]'>BSA</A>) (<A HREF='?_src_=holder;SyndicateReply=\ref[Sender]'>RPLY</A>):</b> [msg]</font>"
for(var/client/C in admins)
if(R_ADMIN & C.holder.rights)
if(R_ADMIN|R_EVENT & C.holder.rights)
to_chat(C,msg)
C << 'sound/machines/signal.ogg'

View File

@@ -147,10 +147,10 @@
/client/proc/cmd_admin_godmode(mob/M as mob in mob_list)
set category = "Special Verbs"
set name = "Godmode"
if(!holder)
return
M.status_flags ^= GODMODE
to_chat(usr, "<font color='blue'> Toggled [(M.status_flags & GODMODE) ? "ON" : "OFF"]</font>")
@@ -219,7 +219,7 @@ proc/cmd_admin_mute(mob/M as mob, mute_type, automute = 0)
if(!holder)
return
var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
if(confirm != "Yes") return
log_admin("[key_name(src)] has added a random AI law.")
@@ -266,10 +266,10 @@ Ccomp's first proc.
set category = "Special Verbs"
set name = "Allow player to respawn"
set desc = "Let's the player bypass the wait to respawn or allow them to re-enter their corpse."
if(!holder)
return
var/list/ghosts= get_ghosts(1,1)
var/target = input("Please, select a ghost!", "COME BACK TO LIFE!", null, null) as null|anything in ghosts
@@ -332,10 +332,10 @@ Ccomp's first proc.
set category = "Server"
set name = "Toggle antagHUD Restrictions"
set desc = "Restricts players that have used antagHUD from being able to join this round."
if(!holder)
return
var/action=""
if(config.antag_hud_restricted)
for(var/mob/observer/dead/g in get_ghosts())
@@ -365,7 +365,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set category = "Special Verbs"
set name = "Spawn Character"
set desc = "(Re)Spawn a client's loaded character."
if(!holder)
return
@@ -536,7 +536,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!holder)
return
var/input = sanitize(input(usr, "Please enter anything you want the AI to do. Anything. Serious.", "What?", "") as text|null)
if(!input)
return
@@ -565,7 +565,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
if(!holder)
return
if(!mob)
return
if(!istype(M))
@@ -978,7 +978,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
set desc = "Removes a player from the round as if they'd cryo'd."
set popup_menu = FALSE
if(!check_rights(R_ADMIN))
if(!check_rights(R_ADMIN|R_EVENT))
return
if(!M)

View File

@@ -68,7 +68,7 @@
href_list["datumrefresh"] = href_list["mob_player_panel"]
else if(href_list["give_spell"])
if(!check_rights(R_ADMIN|R_FUN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/M = locate(href_list["give_spell"])
if(!istype(M))
@@ -79,7 +79,7 @@
href_list["datumrefresh"] = href_list["give_spell"]
else if(href_list["give_modifier"])
if(!check_rights(R_ADMIN|R_FUN|R_DEBUG))
if(!check_rights(R_ADMIN|R_FUN|R_DEBUG|R_EVENT))
return
var/mob/living/M = locate(href_list["give_modifier"])
@@ -91,7 +91,7 @@
href_list["datumrefresh"] = href_list["give_modifier"]
else if(href_list["give_disease2"])
if(!check_rights(R_ADMIN|R_FUN)) return
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
var/mob/M = locate(href_list["give_disease2"])
if(!istype(M))
@@ -134,7 +134,7 @@
href_list["datumrefresh"] = href_list["build_mode"]
else if(href_list["drop_everything"])
if(!check_rights(R_DEBUG|R_ADMIN)) return
if(!check_rights(R_DEBUG|R_ADMIN|R_EVENT)) return
var/mob/M = locate(href_list["drop_everything"])
if(!istype(M))
@@ -466,7 +466,7 @@
M.regenerate_icons()
else if(href_list["adjustDamage"] && href_list["mobToDamage"])
if(!check_rights(R_DEBUG|R_ADMIN|R_FUN)) return
if(!check_rights(R_DEBUG|R_ADMIN|R_FUN|R_EVENT)) return
var/mob/living/L = locate(href_list["mobToDamage"])
if(!istype(L)) return