Files
Bubberstation/code/modules/admin/verbs/ai_triumvirate.dm
SkyratBot 227b722820 [MIRROR] Job refactor: strings to references and typepaths [This could seriously break things :)] (#7006)
* Job refactor: strings to references and typepaths

* 0

* holy fuck

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

* Update preferences.dm

Co-authored-by: Rohesie <rohesie@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
2021-07-28 21:12:42 +01:00

49 lines
1.8 KiB
Plaintext

///global reference to the current theme, if there is one.
GLOBAL_DATUM(triple_ai_controller, /datum/triple_ai_controller)
/**
* The triple ai controller handles the admin triple AI mode, if enabled.
* It is first created when "Toggle AI Triumvirate" triggers it, and it can be referenced from GLOB.triple_ai_controller
* After it handles roundstart business, it cleans itself up.
*/
/datum/triple_ai_controller
/datum/triple_ai_controller/New()
. = ..()
RegisterSignal(SSjob, COMSIG_OCCUPATIONS_DIVIDED, .proc/on_occupations_divided)
/datum/triple_ai_controller/proc/on_occupations_divided(datum/source)
SIGNAL_HANDLER
for(var/datum/job/ai/ai_datum in SSjob.joinable_occupations)
ai_datum.spawn_positions = 3
for(var/obj/effect/landmark/start/ai/secondary/secondary_ai_spawn in GLOB.start_landmarks_list)
secondary_ai_spawn.latejoin_active = TRUE
qdel(src)
/datum/triple_ai_controller/Destroy(force)
UnregisterSignal(SSjob, COMSIG_OCCUPATIONS_DIVIDED)
GLOB.triple_ai_controller = null
. = ..()
/client/proc/triple_ai()
set category = "Admin.Events"
set name = "Toggle AI Triumvirate"
if(SSticker.current_state > GAME_STATE_PREGAME)
to_chat(usr, "This option is currently only usable during pregame. This may change at a later date.", confidential = TRUE)
return
var/datum/job/job = SSjob.GetJobType(/datum/job/ai)
if(!job)
to_chat(usr, "Unable to locate the AI job", confidential = TRUE)
CRASH("triple_ai() called, no /datum/job/ai to be found.")
if(!GLOB.triple_ai_controller)
GLOB.triple_ai_controller = new()
else
QDEL_NULL(GLOB.triple_ai_controller)
to_chat(usr, "There will[GLOB.triple_ai_controller ? "" : "not"] be an AI Triumvirate at round start.")
message_admins(span_adminnotice("[key_name_admin(usr)] has toggled [GLOB.triple_ai_controller ? "on" : "off"] triple AIs at round start."))