Fixes antag prefs breaking
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user