Split malf AI antag datum away from traitor, enable malf AI roundstart ruleset. (#59064)

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
This commit is contained in:
Timberpoes
2021-05-13 10:39:16 +01:00
committed by GitHub
parent 684491701d
commit f36c7fa43f
14 changed files with 554 additions and 265 deletions
+34 -9
View File
@@ -282,15 +282,40 @@
"}
break_counter++
output += "</div></div>"
var/list/long_job_lists = list("Service" = GLOB.service_positions,
"Ghost and Other Roles" = list(ROLE_BRAINWASHED, ROLE_DEATHSQUAD, ROLE_DRONE, ROLE_LAVALAND, ROLE_MIND_TRANSFER, ROLE_POSIBRAIN, ROLE_SENTIENCE),
"Antagonist Positions" = list(ROLE_ABDUCTOR, ROLE_ALIEN, ROLE_BLOB,
ROLE_BROTHER, ROLE_CHANGELING, ROLE_CULTIST,
ROLE_INTERNAL_AFFAIRS, ROLE_MALF,
ROLE_MONKEY, ROLE_NINJA, ROLE_OPERATIVE,
ROLE_OVERTHROW, ROLE_REV, ROLE_REVENANT,
ROLE_REV_HEAD, ROLE_SYNDICATE,
ROLE_TRAITOR, ROLE_WIZARD, ROLE_HIVE , ROLE_HERETIC)) //ROLE_REV_HEAD is excluded from this because rev jobbans are handled by ROLE_REV
var/list/long_job_lists = list(
"Service" = GLOB.service_positions,
"Ghost and Other Roles" = list(
ROLE_BRAINWASHED,
ROLE_DEATHSQUAD,
ROLE_DRONE,
ROLE_LAVALAND,
ROLE_MIND_TRANSFER,
ROLE_POSIBRAIN,
ROLE_SENTIENCE,
),
"Antagonist Positions" = list(
ROLE_ABDUCTOR,
ROLE_ALIEN,
ROLE_BLOB,
ROLE_BROTHER,
ROLE_CHANGELING,
ROLE_CULTIST,
ROLE_HERETIC,
ROLE_HIVE,
ROLE_INTERNAL_AFFAIRS,
ROLE_MALF,
ROLE_MONKEY,
ROLE_NINJA,
ROLE_OPERATIVE,
ROLE_OVERTHROW,
ROLE_REV,
ROLE_REVENANT,
ROLE_REV_HEAD,
ROLE_SYNDICATE,
ROLE_TRAITOR,
ROLE_WIZARD,
),
)
for(var/department in long_job_lists)
output += "<div class='column'><label class='rolegroup long [ckey(department)]'><input type='checkbox' name='[department]' class='hidden' [usr.client.prefs.tgui_fancy ? " onClick='toggle_checkboxes(this, \"_com\")'" : ""]>[department]</label><div class='content'>"
break_counter = 0
+9 -9
View File
@@ -463,20 +463,20 @@
if(!objective)
return
SSblackbox.record_feedback("nested tally", "admin_secrets_fun_used", 1, list("Traitor All", "[objective]"))
for(var/mob/living/H in GLOB.player_list)
if(!(ishuman(H)||istype(H, /mob/living/silicon/)))
for(var/mob/living/player in GLOB.player_list)
if(!(ishuman(player)||istype(player, /mob/living/silicon/)))
continue
if(H.stat == DEAD || !H.mind || ispAI(H))
if(player.stat == DEAD || !player.mind || ispAI(player))
continue
if(is_special_character(H))
if(is_special_character(player))
continue
var/datum/antagonist/traitor/T = new()
T.give_objectives = FALSE
var/datum/antagonist/traitor/traitor_datum = new()
traitor_datum.give_objectives = FALSE
var/datum/objective/new_objective = new
new_objective.owner = H
new_objective.owner = player
new_objective.explanation_text = objective
T.add_objective(new_objective)
H.mind.add_antag_datum(T)
traitor_datum.objectives += new_objective
player.mind.add_antag_datum(traitor_datum)
message_admins("<span class='adminnotice'>[key_name_admin(holder)] used everyone is a traitor secret. Objective is [objective]</span>")
log_admin("[key_name(holder)] used everyone is a traitor secret. Objective is [objective]")
if("massbraindamage")