From 25dd98b4493b971f5de9bb22c3fd7e01ddd836dd Mon Sep 17 00:00:00 2001 From: Cocacolagua <48032385+Cocacolagua@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:02:08 -0300 Subject: [PATCH] Lets the bureaucracy mishap event have a chance to roll rare jobs (#22218) * damn bureaus * nah nvm detective ur good * it isnt 10% anymore * rev1 Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * rev2 Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> --------- Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> --- code/modules/events/bureaucratic_error.dm | 26 ++++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/code/modules/events/bureaucratic_error.dm b/code/modules/events/bureaucratic_error.dm index e1657fbf23f..abb4187273c 100644 --- a/code/modules/events/bureaucratic_error.dm +++ b/code/modules/events/bureaucratic_error.dm @@ -3,21 +3,24 @@ /// Jobs that are not allowed to be picked for the bureaucratic error var/list/blacklisted_jobs = list( /datum/job/assistant, + /datum/job/ai, + /datum/job/cyborg, + /datum/job/blueshield, + /datum/job/chaplain, + /datum/job/officer, + /datum/job/warden + ) + + /// Jobs that pass an additional 40% chance per roll to be picked for the bureaucratic error + var/list/uncommon_jobs = list( /datum/job/chief_engineer, /datum/job/cmo, /datum/job/rd, /datum/job/hos, - /datum/job/ai, - /datum/job/cyborg, /datum/job/captain, /datum/job/hop, /datum/job/nanotrasenrep, - /datum/job/blueshield, /datum/job/judge, - /datum/job/chaplain, - /datum/job/officer, - /datum/job/detective, - /datum/job/warden, /datum/job/qm ) @@ -33,10 +36,13 @@ while(errors < overflow_amount) var/random_change = pick(-2, -1, 1, 2) overflow = pick_n_take(jobs) - if(overflow.admin_only) - continue - if(overflow.type in blacklisted_jobs) + if((overflow.admin_only) || (overflow.type in blacklisted_jobs)) continue + if(overflow.type in uncommon_jobs) + if(prob(40)) + random_change = clamp(random_change, 1, 2) + else + continue overflow.total_positions = max(overflow.total_positions + random_change, 0) affected_jobs += "[overflow.title] slot changed by [random_change]" errors++