Fixes Autoantag Assigning to Invalid Mobs

Uses a mob var to determine antag validity instead of typechecks, since I believe this will work out better in the long term.  Inheritance can automatically make new mobs we make be invalid by default.
This commit is contained in:
Neerti
2017-07-23 20:19:24 -04:00
parent 91b06c20d1
commit 3268ebe769
9 changed files with 23 additions and 8 deletions
-3
View File
@@ -111,9 +111,6 @@
else if(config.use_age_restriction_for_antags && player.current.client.player_age < minimum_player_age)
candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: Is only [player.current.client.player_age] day\s old, has to be [minimum_player_age] day\s!")
else if(istype(player.current, /mob/living/voice))
candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: They are only a communicator voice. They have been removed from the draft.")
else if(player.special_role)
candidates -= player
log_debug("[key_name(player)] is not eligible to become a [role_text]: They already have a special role ([player.special_role])! They have been removed from the draft.")
+9 -5
View File
@@ -1,12 +1,16 @@
/datum/antagonist/proc/can_become_antag(var/datum/mind/player, var/ignore_role)
if(player.current && jobban_isbanned(player.current, bantype))
return 0
if(player.current)
if(jobban_isbanned(player.current, bantype))
return FALSE
if(!isnewplayer(player.current) && !isobserver(player.current))
if(!player.current.can_be_antagged) // Stop autotraitoring pAIs!
return FALSE
if(!ignore_role)
if(player.assigned_role in restricted_jobs)
return 0
return FALSE
if(config.protect_roles_from_antagonist && (player.assigned_role in protected_jobs))
return 0
return 1
return FALSE
return TRUE
/datum/antagonist/proc/antags_are_dead()
for(var/datum/mind/antag in current_antagonists)