diff --git a/code/game/gamemodes/dynamic/antag_rulesets.dm b/code/game/gamemodes/dynamic/antag_rulesets.dm index 7a57364d58a..a445c7a475e 100644 --- a/code/game/gamemodes/dynamic/antag_rulesets.dm +++ b/code/game/gamemodes/dynamic/antag_rulesets.dm @@ -49,6 +49,7 @@ /// Rulesets that cannot be rolled while this ruleset is active. Used to prevent traitors from rolling while theres cultists, etc. var/list/banned_mutual_rulesets = list( + /datum/ruleset/traitor/autotraitor, /datum/ruleset/team/cult, ) @@ -170,7 +171,8 @@ var/datum/mind/antag = pick_n_take(possible_antags) antag.add_antag_datum(antagonist_type) - log_dynamic("Latespawned [late_antag_amount] [name]s.") + log_dynamic("Latespawned [late_antag_amount] [name]\s.") + message_admins("Dynamic latespawned [late_antag_amount] [name]\s.") /datum/ruleset/proc/automatic_deduct(budget) . = antag_cost * antag_amount @@ -195,6 +197,22 @@ traitor_datum.addtimer(CALLBACK(traitor_datum, TYPE_PROC_REF(/datum/antagonist/traitor, reveal_delayed_objectives)), latespawn_time, TIMER_DELETE_ME) antag.add_antag_datum(traitor_datum) +/datum/ruleset/traitor/autotraitor + name = "Autotraitor" + ruleset_weight = 2 + antag_cost = 10 + banned_mutual_rulesets = list( + /datum/ruleset/traitor, + /datum/ruleset/vampire, + /datum/ruleset/changeling, + /datum/ruleset/team/cult + ) + +/datum/ruleset/traitor/autotraitor/roundstart_post_setup(datum/game_mode/dynamic) + . = ..() + latespawn_time = null + addtimer(CALLBACK(src, PROC_REF(latespawn), dynamic), 5 MINUTES, TIMER_DELETE_ME|TIMER_LOOP) + /datum/ruleset/vampire name = "Vampire" ruleset_weight = 12 @@ -292,6 +310,7 @@ antagonist_type = /datum/antagonist/cultist banned_mutual_rulesets = list( /datum/ruleset/traitor, + /datum/ruleset/traitor/autotraitor, /datum/ruleset/vampire, /datum/ruleset/changeling ) diff --git a/config/example/config.toml b/config/example/config.toml index b8ff593e077..1d2058c7ff0 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -248,7 +248,7 @@ gamemode_probabilities = [ { gamemode = "abduction", probability = 0 }, { gamemode = "changeling", probability = 0 }, { gamemode = "cult", probability = 0 }, - { gamemode = "extend-a-traitormongous", probability = 2 }, # Autotraitor + { gamemode = "extend-a-traitormongous", probability = 0 }, # Autotraitor { gamemode = "extended", probability = 0 }, { gamemode = "nuclear", probability = 2 }, { gamemode = "raginmages", probability = 0 }, @@ -260,7 +260,7 @@ gamemode_probabilities = [ { gamemode = "vampire", probability = 0 }, { gamemode = "wizard", probability = 2 }, { gamemode = "trifecta", probability = 0 }, - { gamemode = "dynamic", probability = 20 }, + { gamemode = "dynamic", probability = 22 }, ] # Do we want the amount of traitors to scale with population? traitor_scaling = true