From 640f5d36af118568bd50ddf4caf40ccaa1e39054 Mon Sep 17 00:00:00 2001
From: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Date: Sat, 11 Mar 2023 12:04:17 +0100
Subject: [PATCH] Ghost roles list at roundstart (#15953)
* Implementation + changelog
* TO_WORLD_COUNT Increase
* Added the merchant too, which is a special case
* Use span macros in new code
* Save resources by not defining the list during addition of new jobs, as suggested
---
.github/workflows/byond.yml | 2 +-
code/controllers/subsystems/ticker.dm | 17 ++++++++
.../fluffyghost-printrolesatroundstart.yml | 41 +++++++++++++++++++
3 files changed, 59 insertions(+), 1 deletion(-)
create mode 100644 html/changelogs/fluffyghost-printrolesatroundstart.yml
diff --git a/.github/workflows/byond.yml b/.github/workflows/byond.yml
index 84e833d4c42..c6768537d0e 100644
--- a/.github/workflows/byond.yml
+++ b/.github/workflows/byond.yml
@@ -12,7 +12,7 @@ on:
env:
MACRO_COUNT: 0
GENDER_COUNT: 6
- TO_WORLD_COUNT: 201
+ TO_WORLD_COUNT: 202
TGM_CHECK: "//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE"
jobs:
diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm
index 0aaf8bb4da9..883f7c85b75 100644
--- a/code/controllers/subsystems/ticker.dm
+++ b/code/controllers/subsystems/ticker.dm
@@ -438,6 +438,23 @@ var/datum/controller/subsystem/ticker/SSticker
to_world("Welcome to the pre-game lobby!")
to_world("Please, setup your character and select ready. Game will start in [pregame_timeleft] seconds.")
+
+ // Compute and, if available, print the ghost roles in the pre-round lobby. Begone, people who do not ready up to see what ghost roles will be available!
+ var/list/available_ghostroles = list()
+
+ for(var/s in SSghostroles.spawners)
+ var/datum/ghostspawner/G = SSghostroles.spawners[s]
+ if(G.enabled && !("Antagonist" in G.tags) && !(G.loc_type == GS_LOC_ATOM && !length(G.spawn_atoms)))
+ available_ghostroles |= G.name
+
+ // Special case, to list the Merchant in case it is available at roundstart
+ if(SSjobs.type_occupations[/datum/job/merchant].total_positions)
+ available_ghostroles |= SSjobs.type_occupations[/datum/job/merchant].title
+
+ if(length(available_ghostroles))
+ to_world("
" + SPAN_BOLD(SPAN_NOTICE("Ghost roles available for this round:")) + "[english_list(available_ghostroles)].
" + \
+ SPAN_INFO("Please note that the actual availability depends on additional things, including your user (eg. job bans)"))
+
callHook("pregame_start")
/datum/controller/subsystem/ticker/proc/setup()
diff --git a/html/changelogs/fluffyghost-printrolesatroundstart.yml b/html/changelogs/fluffyghost-printrolesatroundstart.yml
new file mode 100644
index 00000000000..969a2c9043f
--- /dev/null
+++ b/html/changelogs/fluffyghost-printrolesatroundstart.yml
@@ -0,0 +1,41 @@
+################################
+# Example Changelog File
+#
+# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
+#
+# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
+# When it is, any changes listed below will disappear.
+#
+# Valid Prefixes:
+# bugfix
+# wip (For works in progress)
+# tweak
+# soundadd
+# sounddel
+# rscadd (general adding of nice things)
+# rscdel (general deleting of nice things)
+# imageadd
+# imagedel
+# maptweak
+# spellcheck (typo fixes)
+# experiment
+# balance
+# admin
+# backend
+# security
+# refactor
+#################################
+
+# Your name.
+author: FluffyGhost
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Print a list of (likely) available ghost roles at roundstart."