diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index b7a92ee48f..ddb54d6957 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -344,4 +344,3 @@ /datum/config_entry/number/max_ambitions // Maximum number of ambitions a mind can store. config_entry_value = 5 //ambition end - diff --git a/code/datums/station_traits/neutral_traits.dm b/code/datums/station_traits/neutral_traits.dm index 19480f6672..8936951b10 100644 --- a/code/datums/station_traits/neutral_traits.dm +++ b/code/datums/station_traits/neutral_traits.dm @@ -114,3 +114,60 @@ /datum/station_trait/announcement_medbot/New() . = ..() SSstation.announcer = /datum/centcom_announcer/medbot + +GLOBAL_LIST_INIT(randomizing_station_name_messages, world.file2list("strings/randomizing_station_name_messages.txt")) + +/datum/station_trait/randomizing_station_name + name = "Randomizing station name" + show_in_report = TRUE + report_message = "Due to legal reasons or other, we might not be able to settle on a station name." + trait_processes = TRUE + COOLDOWN_DECLARE(randomizing_cooldown) + var/trigger_every = 5 MINUTES + blacklist = list(/datum/station_trait/randomizing_station_name/fast, /datum/station_trait/randomizing_station_name/slow) + +/datum/station_trait/randomizing_station_name/on_round_start() + . = ..() + COOLDOWN_START(src, randomizing_cooldown, trigger_every) + +/datum/station_trait/randomizing_station_name/process(delta_time) + if(!COOLDOWN_FINISHED(src, randomizing_cooldown)) + return + + COOLDOWN_START(src, randomizing_cooldown, trigger_every) + + var/new_name = new_station_name() + + var/centcom_announcement = pick(GLOB.randomizing_station_name_messages) + + // Replace with CURRENT station name + centcom_announcement = replacetext(centcom_announcement, "%CURRENT_STATION_NAME%", station_name()) + + // Replace with NEW station name + centcom_announcement = replacetext(centcom_announcement, "%NEW_STATION_NAME%", new_name) + + // Take a CREWMEMBER's name for the goofs + if(findtext(centcom_announcement, "%RANDOM_CREWMEMBER%")) + var/crewmember = locate(/mob/living/carbon/human) in GLOB.alive_mob_list + if(!crewmember) + crewmember = random_unique_name() + centcom_announcement = replacetext(centcom_announcement, "%RANDOM_CREWMEMBER%", crewmember) + + // Replace with a completely RANDOM name + if(findtext(centcom_announcement, "%RANDOM_NAME%")) + var/name = random_unique_name() + centcom_announcement = replacetext(centcom_announcement, "%RANDOM_NAME%", name) + + set_station_name(new_name) + + print_command_report(centcom_announcement) + +/datum/station_trait/randomizing_station_name/fast + name = "Randomizing station name - Fast" + trigger_every = 3 MINUTES + blacklist = list(/datum/station_trait/randomizing_station_name, /datum/station_trait/randomizing_station_name/slow) + +/datum/station_trait/randomizing_station_name/slow + name = "Randomizing station name - Slow" + trigger_every = 10 MINUTES + blacklist = list(/datum/station_trait/randomizing_station_name/fast, /datum/station_trait/randomizing_station_name) diff --git a/strings/randomizing_station_name_messages.txt b/strings/randomizing_station_name_messages.txt new file mode 100644 index 0000000000..9b12dba310 --- /dev/null +++ b/strings/randomizing_station_name_messages.txt @@ -0,0 +1,15 @@ +Due to internal affairs, the station is now named %NEW_STATION_NAME%. +The solar system's government has formally requested that the station now be named %NEW_STATION_NAME%. +A gorilla broke into the office and destroyed a bunch of paperwork. We don't know what your station's old name was. It's now %NEW_STATION_NAME%. +An intern said %NEW_STATION_NAME% would be a cool name. That's your station's name now. +Our predictive language model has renamed your station to %NEW_STATION_NAME%. +It's %NEW_STATION_NAME% now. +The CEO demanded that your station be named %NEW_STATION_NAME%. +Our intern accidentally wiped the database, so your station needs a new name: %NEW_STATION_NAME%. +Due to copyright infringement, the station is now temporarily renamed to %NEW_STATION_NAME%. +Due to recent corporate acquisitions, the station has been rebranded to %NEW_STATION_NAME%. +%NEW_STATION_NAME%. +%NEW_STATION_NAME%? %NEW_STATION_NAME%! %NEW_STATION_NAME%!!!!!!!! +A popular social network application had already claimed the trademark of %CURRENT_STATION_NAME%, the station has been renamed to %NEW_STATION_NAME%. +We're pulling a prank on %RANDOM_CREWMEMBER%, so we've changed the station's name to %NEW_STATION_NAME%. +%RANDOM_NAME% made us change the station name, which is now %NEW_STATION_NAME%.