mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 12:29:46 +01:00
Re-implements Admin secrets as datums.
This commit is contained in:
@@ -610,12 +610,11 @@ proc/admin_notice(var/message, var/rights)
|
||||
dat += "<B>[category.name]</B><br>"
|
||||
if(category.desc)
|
||||
dat += "<I>[category.desc]</I><BR>"
|
||||
dat += "<BR>"
|
||||
for(var/datum/admin_secret_item/item in category.items)
|
||||
if(!item.can_execute(usr))
|
||||
continue
|
||||
dat += "<A href='?src=\ref[src];admin_secrets=\ref[item]'>[item.name]</A><BR>"
|
||||
|
||||
dat += "<A href='?src=\ref[src];admin_secrets=\ref[item]'>[item.name()]</A><BR>"
|
||||
dat += "<BR>"
|
||||
usr << browse(dat, "window=secrets")
|
||||
return
|
||||
|
||||
|
||||
@@ -40,8 +40,12 @@ var/datum/admin_secrets/admin_secrets = new()
|
||||
/datum/admin_secret_item
|
||||
var/name = ""
|
||||
var/category = null
|
||||
var/log = 1
|
||||
var/permissions = R_HOST
|
||||
|
||||
/datum/admin_secret_item/proc/name()
|
||||
return name
|
||||
|
||||
/datum/admin_secret_item/proc/can_execute(var/mob/user)
|
||||
return check_rights(permissions, 0, user)
|
||||
|
||||
@@ -49,18 +53,28 @@ var/datum/admin_secrets/admin_secrets = new()
|
||||
if(!can_execute(user))
|
||||
return 0
|
||||
|
||||
log_admin("[key_name(user)] used secret [name]")
|
||||
if(log)
|
||||
log_admin("[key_name(user)] used secret '[name()]'")
|
||||
return 1
|
||||
|
||||
/*************************
|
||||
* Pre-defined categories *
|
||||
*************************/
|
||||
/datum/admin_secret_category/admin_secrets
|
||||
name = "Admin Secrets"
|
||||
|
||||
/datum/admin_secret_category/random_events
|
||||
name = "'Random' Events"
|
||||
|
||||
/*************************
|
||||
* Pre-defined base items *
|
||||
*************************/
|
||||
/datum/admin_secret_item/admin_secret
|
||||
category = /datum/admin_secret_category/admin_secrets
|
||||
log = 0
|
||||
permissions = R_ADMIN
|
||||
|
||||
|
||||
/datum/admin_secret_item/random_event
|
||||
category = /datum/admin_secret_category/random_events
|
||||
permissions = R_FUN
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
/datum/admin_secret_item/admin_secret/bombing_list
|
||||
name = "Bombing List"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/bombing_list/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/dat = "<B>Bombing List<HR>"
|
||||
for(var/l in bombers)
|
||||
dat += text("[l]<BR>")
|
||||
user << browse(dat, "window=bombers")
|
||||
@@ -0,0 +1,14 @@
|
||||
/datum/admin_secret_item/admin_secret/list_dna
|
||||
name = "List DNA (Blood)"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/list_dna/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/dat = "<B>Showing DNA from blood.</B><HR>"
|
||||
dat += "<table cellspacing=5><tr><th>Name</th><th>DNA</th><th>Blood Type</th></tr>"
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
if(H.dna && H.ckey)
|
||||
dat += "<tr><td>[H]</td><td>[H.dna.unique_enzymes]</td><td>[H.b_type]</td></tr>"
|
||||
dat += "</table>"
|
||||
user << browse(dat, "window=DNA;size=440x410")
|
||||
@@ -0,0 +1,19 @@
|
||||
/datum/admin_secret_item/admin_secret/list_fingerprints
|
||||
name = "List Fingerprints"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/list_fingerprints/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/dat = "<B>Showing Fingerprints.</B><HR>"
|
||||
dat += "<table cellspacing=5><tr><th>Name</th><th>Fingerprints</th></tr>"
|
||||
for(var/mob/living/carbon/human/H in mob_list)
|
||||
if(H.ckey)
|
||||
if(H.dna && H.dna.uni_identity)
|
||||
dat += "<tr><td>[H]</td><td>[md5(H.dna.uni_identity)]</td></tr>"
|
||||
else if(H.dna && !H.dna.uni_identity)
|
||||
dat += "<tr><td>[H]</td><td>H.dna.uni_identity = null</td></tr>"
|
||||
else if(!H.dna)
|
||||
dat += "<tr><td>[H]</td><td>H.dna = null</td></tr>"
|
||||
dat += "</table>"
|
||||
usr << browse(dat, "window=fingerprints;size=440x410")
|
||||
@@ -0,0 +1,7 @@
|
||||
/datum/admin_secret_item/admin_secret/show_ai_laws
|
||||
name = "Show AI laws"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_ai_laws/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
user.client.holder.output_ai_laws()
|
||||
@@ -0,0 +1,12 @@
|
||||
/datum/admin_secret_item/admin_secret/show_crew_manifest
|
||||
name = "Show Crew Manifest"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_crew_manifest/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
var/dat
|
||||
dat += "<h4>Crew Manifest</h4>"
|
||||
dat += data_core.get_manifest()
|
||||
|
||||
user << browse(dat, "window=manifest;size=370x420;can_close=1")
|
||||
@@ -0,0 +1,14 @@
|
||||
/datum/admin_secret_item/admin_secret/show_game_mode
|
||||
name = "Show Game Mode"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_game_mode/can_execute(var/mob/user)
|
||||
if(!ticker)
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_game_mode/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
if (ticker.mode) alert("The game mode is [ticker.mode.name]")
|
||||
else alert("For some reason there's a ticker, but not a game mode")
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/admin_secret_item/admin_secret/show_law_changes
|
||||
name = "Show law changes"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_law_changes/name()
|
||||
return "Show last [length(lawchanges)] law changes"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_law_changes/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/dat = "<B>Showing last [length(lawchanges)] law changes.</B><HR>"
|
||||
for(var/sig in lawchanges)
|
||||
dat += "[sig]<BR>"
|
||||
user << browse(dat, "window=lawchanges;size=800x500")
|
||||
@@ -0,0 +1,15 @@
|
||||
/datum/admin_secret_item/admin_secret/show_signalers
|
||||
name = "Show last signalers"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_signalers/name()
|
||||
return "Show last [length(lastsignalers)] signalers"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/show_signalers/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
var/dat = "<B>Showing last [length(lastsignalers)] signalers.</B><HR>"
|
||||
for(var/sig in lastsignalers)
|
||||
dat += "[sig]<BR>"
|
||||
user << browse(dat, "window=lastsignalers;size=800x500")
|
||||
@@ -0,0 +1,7 @@
|
||||
/datum/admin_secret_item/admin_secret/traitors_and_objectives
|
||||
name = "Show current traitors and objectives"
|
||||
|
||||
/datum/admin_secret_item/admin_secret/traitors_and_objectives/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(.)
|
||||
user.client.holder.check_antagonists()
|
||||
+6
-4
@@ -4,15 +4,17 @@
|
||||
/datum/admin_secret_item/random_event/gravity
|
||||
name = "Toggle station artificial gravity"
|
||||
|
||||
/datum/admin_secret_item/random_event/gravity/can_execute(var/mob/user)
|
||||
if(!(ticker && ticker.mode))
|
||||
return 0
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/admin_secret_item/random_event/gravity/execute(var/mob/user)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
|
||||
if(!(ticker && ticker.mode))
|
||||
user << "Please wait until the game starts! Not sure how it will work otherwise."
|
||||
return
|
||||
|
||||
gravity_is_on = !gravity_is_on
|
||||
for(var/area/A in world)
|
||||
A.gravitychange(gravity_is_on,A)
|
||||
Reference in New Issue
Block a user