Adds/ports the AI Triumvirate station trait. (triple ai mode as a VERY rare trait) (#25957)

* yippie itt works

* Update tripAI.dm

* Update code/modules/admin/verbs/tripAI.dm

Co-authored-by: Matt <116982774+Burzah@users.noreply.github.com>
Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>

* Update code/datums/station_traits/neutral_traits.dm

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>

---------

Signed-off-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
Co-authored-by: Matt <116982774+Burzah@users.noreply.github.com>
This commit is contained in:
1080pCat
2024-07-30 14:11:33 +00:00
committed by GitHub
co-authored by Matt
parent 81aafadc97
commit efb735af1e
4 changed files with 29 additions and 2 deletions
+1
View File
@@ -396,6 +396,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STATION_TRAIT_FORESTED "station_trait_forested"
#define STATION_TRAIT_VENDING_SHORTAGE "station_trait_vending_shortage"
#define STATION_TRAIT_MESSY "station_trait_messy"
#define STATION_TRAIT_TRIAI "station_trait_triai"
//***** TURF TRAITS *****//
/// Removes slowdown while walking on these tiles.
+6
View File
@@ -284,6 +284,12 @@ SUBSYSTEM_DEF(ticker)
Master.SetRunLevel(RUNLEVEL_GAME)
// Generate the list of empty playable AI cores in the world
if(HAS_TRAIT(SSstation, STATION_TRAIT_TRIAI))
for(var/obj/effect/landmark/tripai in GLOB.landmarks_list)
if(tripai.name == "tripai")
if(locate(/mob/living) in get_turf(tripai))
continue
GLOB.empty_playable_ai_cores += new /obj/structure/AIcore/deactivated(get_turf(tripai))
for(var/obj/effect/landmark/start/ai/A in GLOB.landmarks_list)
if(locate(/mob/living) in get_turf(A))
continue
@@ -64,3 +64,19 @@
/datum/station_trait/hangover/revert()
. = ..()
SSjobs.drunken_spawning = FALSE
/datum/station_trait/triple_ai
name = "AI Triumvirate"
trait_type = STATION_TRAIT_NEUTRAL
weight = 1
show_in_report = TRUE
report_message = "As part of Operation Magi, your station has been equipped with three Nanotrasen Artificial Intelligence models. Please try not to break them."
trait_to_give = STATION_TRAIT_TRIAI
/datum/station_trait/triple_ai/New()
. = ..()
SSticker.triai = TRUE
/datum/station_trait/triple_ai/revert()
. = ..()
SSticker.triai = FALSE
+6 -2
View File
@@ -11,12 +11,16 @@
if(!job)
to_chat(usr, "Unable to locate the AI job")
return
if(HAS_TRAIT(SSstation, STATION_TRAIT_TRIAI))
to_chat(usr, "<span class='danger'>The triple AI station trait is now enabled. This trait can be disabled in the Modify Station Traits menu.</span>")
return
if(SSticker.triai)
SSticker.triai = 0
SSticker.triai = FALSE
to_chat(usr, "Only one AI will be spawned at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled off triple AIs at round start.</span>", 1)
else
SSticker.triai = 1
SSticker.triai = TRUE
to_chat(usr, "There will be an AI Triumvirate at round start.")
message_admins("<span class='notice'>[key_name_admin(usr)] has toggled on triple AIs at round start.</span>", 1)
return