Files
Bubberstation/code/modules/events/bureaucratic_error.dm
Mothblocks a4c61a37ad [READY] A victory for revolutionaries will no longer end the round on dynamic, instead no new security and command will be allowed to join (#55956)
Currently, a victory for revoutionaries leads to the round abruptly ending on dynamic. This has been replaced by all revolutionaries being deconverted, and no new security or command positions being available.

Also attempts to unionize (pun intended) copy and paste code in the round start and late join revolutionary rulesets into being handled under the revolutionary team instead.
2021-01-12 01:52:40 +00:00

31 lines
1.2 KiB
Plaintext

/datum/round_event_control/bureaucratic_error
name = "Bureaucratic Error"
typepath = /datum/round_event/bureaucratic_error
max_occurrences = 1
weight = 5
/datum/round_event/bureaucratic_error
announceWhen = 1
/datum/round_event/bureaucratic_error/announce(fake)
priority_announce("A recent bureaucratic error in the Organic Resources Department may result in personnel shortages in some departments and redundant staffing in others.", "Paperwork Mishap Alert")
/datum/round_event/bureaucratic_error/start()
var/list/jobs = SSjob.occupations.Copy()
if(prob(33)) // Only allows latejoining as a single role. Add latejoin AI bluespace pods for fun later.
var/datum/job/overflow = pick_n_take(jobs)
overflow.spawn_positions = -1
overflow.total_positions = -1 // Ensures infinite slots as this role. Assistant will still be open for those that cant play it.
for(var/job in jobs)
var/datum/job/current = job
if(!current.allow_bureaucratic_error)
continue
current.total_positions = 0
else // Adds/removes a random amount of job slots from all jobs.
for(var/job in jobs)
var/datum/job/current = job
if(!current.allow_bureaucratic_error)
continue
var/ran = rand(-2,4)
current.total_positions = max(current.total_positions + ran, 0)