Adds Clock Cult to the midround pool. (#15338)

* Midround Clock Cult

Adds midround clock cultists

* Is eligible

* Reebe load proc

* Moves load reebe

* One tab out
This commit is contained in:
keronshb
2021-12-08 13:06:11 -05:00
committed by GitHub
parent 097e977bc5
commit 6ab0d1b70c
@@ -382,6 +382,70 @@
else
return ..()
//////////////////////////////////////////////
// //
// Clock Cult (MID) //
// //
//////////////////////////////////////////////
//changes two people midround into clockwork cultists
/datum/dynamic_ruleset/midround/ratvar_awakening
name = "Ratvar Awakening"
antag_datum = /datum/antagonist/clockcult
antag_flag = "clock mid"
antag_flag_override = ROLE_SERVANT_OF_RATVAR
protected_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
enemy_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director")
required_enemies = list(1,1,1,1,1,1,0,0,0,0)
required_candidates = 2
weight = 3
cost = 20
requirements = list(101,101,101,101,50,40,30,20,10,10)
var/list/clock_cap = list(1,1,1,1,2,3,4,5,5,5)
flags = HIGH_IMPACT_RULESET
/datum/dynamic_ruleset/midround/ratvar_awakening/acceptable(population=0, threat=0)
if (locate(/datum/dynamic_ruleset/roundstart/clockcult) in mode.executed_rules)
return FALSE // Unavailable if clockies exist at round start
indice_pop = min(clock_cap.len, round(living_players.len/5)+1)
required_candidates = clock_cap[indice_pop]
return ..()
/datum/dynamic_ruleset/midround/ratvar_awakening/trim_candidates()
..()
candidates = living_players
for(var/mob/living/player as anything in candidates)
var/turf/player_turf = get_turf(player)
if(!player_turf || !is_station_level(player_turf.z))
candidates -= player //no ghost roles
continue
if(!is_eligible_servant(player))
candidates -= player
continue
if(player.mind && (player.mind.special_role || length(player.mind.antag_datums) > 0))
candidates -= player //no double dipping
/datum/dynamic_ruleset/midround/ratvar_awakening/execute()
if(!candidates || !candidates.len)
return FALSE
for(var/i = 0; i < required_candidates; i++)
if(!candidates.len)
break
var/mob/living/clock_antag = pick_n_take(candidates)
assigned += clock_antag.mind
for(var/datum/mind/M in assigned) //add them to the clockwork team
add_servant_of_ratvar(M.current)
SSticker.mode.equip_servant(M.current)
SSticker.mode.greet_servant(M.current)
message_admins("[ADMIN_LOOKUPFLW(M.current)] was selected by the [name] ruleset and has been made into a midround clock cultist.")
log_game("DYNAMIC: [key_name(M.current)] was selected by the [name] ruleset and has been made into a midround clock cultist.")
load_reebe()
return ..()
//////////////////////////////////////////////
// //
// BLOB (GHOST) //