Fix general antagonist bans (#1643)

All full blanket antagonist bans are now classes as Antagonist, instead of Syndicate bans, as Syndicate refers to a specific subset of antags. This made global banning someone from all roles impossible.
This commit is contained in:
skull132
2017-01-26 01:33:44 +02:00
committed by GitHub
parent 514027e176
commit ce0cf2b86f
6 changed files with 24 additions and 8 deletions
+17 -1
View File
@@ -26,8 +26,24 @@ var/jobban_keylist[0] //to store the keys & ranks
if(config.usewhitelist && !check_whitelist(M))
return "Whitelisted Job"
var/static/list/antag_bantypes
if (isnull(antag_bantypes))
antag_bantypes = list()
for (var/antag_type in all_antag_types)
var/datum/antagonist/antag = all_antag_types[antag_type]
if (antag && antag.bantype)
antag_bantypes |= "[antag.bantype]"
// We manage antagonist bans at this end point.
// Alternative is to manage it at each call to jobban_isbanned, however,
// there is no actual reason why you should be able to play an antag if you're banned from all of them.
var/antag_ban = FALSE
if (rank in antag_bantypes)
antag_ban = TRUE
for (var/s in jobban_keylist)
if( findtext(s,"[M.ckey] - [rank]") == 1 )
if(findtext(s,"[M.ckey] - [rank]") == 1 || (antag_ban && findtext(s, "[M.ckey] - Antagonist") == 1))
var/startpos = findtext(s, "## ")+3
if(startpos && startpos<length(s))
var/text = copytext(s, startpos, 0)
+2 -2
View File
@@ -587,9 +587,9 @@
jobs += "</tr></table>"
//Antagonist (Orange)
var/isbanned_dept = jobban_isbanned(M, "Syndicate")
var/isbanned_dept = jobban_isbanned(M, "Antagonist")
jobs += "<table cellpadding='1' cellspacing='0' width='100%'>"
jobs += "<tr bgcolor='ffeeaa'><th colspan='10'><a href='?src=\ref[src];jobban3=Syndicate;jobban4=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
jobs += "<tr bgcolor='ffeeaa'><th colspan='10'><a href='?src=\ref[src];jobban3=Antagonist;jobban4=\ref[M]'>Antagonist Positions</a></th></tr><tr align='center'>"
// Antagonists.
for(var/antag_type in all_antag_types)