diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index cbfb17adf0..348bf6244d 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -3,6 +3,7 @@ // Text shown when becoming this antagonist. var/list/restricted_jobs = list() // Jobs that cannot be this antagonist (depending on config) var/list/protected_jobs = list() // As above. + var/list/roundstart_restricted = list() //Jobs that can be this antag, but not at roundstart // Strings. var/welcome_text = "Cry havoc and let slip the dogs of war!" @@ -171,7 +172,7 @@ /datum/antagonist/proc/draft_antagonist(var/datum/mind/player) //Check if the player can join in this antag role, or if the player has already been given an antag role. - if(!can_become_antag(player)) + if(!can_become_antag(player) || player.assigned_role in roundstart_restricted) log_debug("[player.key] was selected for [role_text] by lottery, but is not allowed to be that role.") return 0 if(player.special_role) diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index 3db723c556..e40085f90a 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -11,8 +11,9 @@ var/datum/antagonist/cultist/cult role_text = "Cultist" role_text_plural = "Cultists" bantype = "cultist" - restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Colony Director") - protected_jobs = list("Security Officer", "Warden", "Detective") + restricted_jobs = list("Chaplain","AI", "Cyborg") + protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Colony Director") + roundstart_restricted = list("Internal Affairs Agent", "Head of Security", "Colony Director") role_type = BE_CULTIST feedback_tag = "cult_objective" antag_indicator = "cult" diff --git a/code/game/antagonist/station/revolutionary.dm b/code/game/antagonist/station/revolutionary.dm index 5af856e45e..9e6100c8af 100644 --- a/code/game/antagonist/station/revolutionary.dm +++ b/code/game/antagonist/station/revolutionary.dm @@ -29,8 +29,9 @@ var/datum/antagonist/revolutionary/revs faction_indicator = "rev" faction_invisible = 1 - restricted_jobs = list("Internal Affairs Agent", "AI", "Cyborg", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") - protected_jobs = list("Security Officer", "Warden", "Detective") + restricted_jobs = list("AI", "Cyborg") + protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + roundstart_restricted = list("Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") /datum/antagonist/revolutionary/New() ..() diff --git a/html/changelogs/Anewbe - Antag Latespawn.yml b/html/changelogs/Anewbe - Antag Latespawn.yml new file mode 100644 index 0000000000..1569da85be --- /dev/null +++ b/html/changelogs/Anewbe - Antag Latespawn.yml @@ -0,0 +1,36 @@ +################################ +# 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 +################################# + +# Your name. +author: Anewbe + +# 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: "Adds a list to prevent certain jobs from being certain roundstart antags, rather than outright preventing them."