Fixes antag prefs breaking

This commit is contained in:
keronshb
2021-09-27 20:03:42 -04:00
parent 3bda0e9015
commit eb548eb9b3
4 changed files with 17 additions and 6 deletions
+2
View File
@@ -45,6 +45,8 @@
#define ROLE_RESPAWN "respawnsystem"
/// Not an actual antag. Lets players force all antags off.
#define ROLE_NO_ANTAGONISM "NO_ANTAGS"
//Define for disabling individual antagonists for dynamic
#define HAS_ANTAG_PREF(C,ROLE) (!(ROLE_NO_ANTAGONISM in C.prefs.be_special) && (ROLE in C.prefs.be_special))
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
//(in game days played) to play that role
@@ -210,12 +210,16 @@
candidates.Remove(candidate_player)
continue
if(ROLE_NO_ANTAGONISM in candidate_player.client.prefs.be_special)
candidates.Remove(candidate_player)
continue
if(antag_flag_override)
if(!(antag_flag_override in candidate_client.prefs.be_special) || jobban_isbanned(candidate_player.ckey, list(antag_flag_override, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(candidate_player.client, antag_flag_override)))
candidates.Remove(candidate_player)
continue
else
if(!(antag_flag in candidate_client.prefs.be_special) || jobban_isbanned(candidate_player.ckey, list(antag_flag, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(candidate_player.client, antag_flag)))
candidates.Remove(candidate_player)
continue
@@ -14,11 +14,13 @@
candidates.Remove(P)
else if((exclusive_roles.len > 0) && !(P.mind.assigned_role in exclusive_roles)) // Is the rule exclusive to their job?
candidates.Remove(P)
else if(ROLE_NO_ANTAGONISM in P.client.prefs.be_special)
candidates.Remove(P)
else if(antag_flag_override)
if(!(antag_flag_override in P.client.prefs.be_special) || jobban_isbanned(P.ckey, list(antag_flag_override, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(P.client, antag_flag_override)))
candidates.Remove(P)
else
if(!(antag_flag in P.client.prefs.be_special) || jobban_isbanned(P.ckey, list(antag_flag, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(P.client, antag_flag)))
candidates.Remove(P)
/datum/dynamic_ruleset/latejoin/ready(forced = 0)
@@ -46,12 +46,15 @@
if(!mode.check_age(M.client, minimum_required_age))
trimmed_list.Remove(M)
continue
if(ROLE_NO_ANTAGONISM in M.client.prefs.be_special)
trimmed_list.Remove(M)
continue
if(antag_flag_override)
if(!(antag_flag_override in M.client.prefs.be_special) || jobban_isbanned(M.ckey, list(antag_flag_override, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(M.client, antag_flag_override)))
trimmed_list.Remove(M)
continue
else
if(!(antag_flag in M.client.prefs.be_special) || jobban_isbanned(M.ckey, list(antag_flag, ROLE_SYNDICATE)))
if(!(HAS_ANTAG_PREF(M.client, antag_flag)))
trimmed_list.Remove(M)
continue
if (M.mind)