Dynamic autotraitor (#28664)

* bam

* banned stuff

* oops, cost

* alter dynamic chances too
This commit is contained in:
Contrabang
2025-03-30 19:04:49 +00:00
committed by GitHub
parent 808553727c
commit 124ff3b7a8
2 changed files with 22 additions and 3 deletions
+20 -1
View File
@@ -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
)
+2 -2
View File
@@ -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