Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
42bde63
- Initial commit
R0bro Jun 28, 2026
74aae88
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 3, 2026
b91fe00
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 5, 2026
7f50e0a
stingus
R0bro Jul 5, 2026
6970299
Merge branch 'Tesh-Attempt-Fixes' of https://github.com/R0bro/Bubbers…
R0bro Jul 5, 2026
fa5255e
working bloody soles
R0bro Jul 6, 2026
5eef980
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 6, 2026
a08e65a
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 14, 2026
5daae39
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 16, 2026
f190fb5
Working bleed states. Needs more work on the dmi.
R0bro Jul 16, 2026
b900600
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 20, 2026
20eb838
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 30, 2026
55a8acf
clothing damage
R0bro Jul 31, 2026
1e23526
Merge branch 'Bubberstation:master' into Tesh-Attempt-Fixes
R0bro Jul 31, 2026
4164a45
Simplification
R0bro Jul 31, 2026
f3b58a5
Merge branch 'Tesh-Attempt-Fixes' of https://github.com/R0bro/Bubbers…
R0bro Jul 31, 2026
faa8a9e
Screenshot fix?
R0bro Aug 2, 2026
67ea175
Merge branch 'master' into Tesh-Attempt-Fixes
R0bro Aug 5, 2026
e2b8b0f
Update code/datums/components/bloodysoles.dm
R0bro Aug 7, 2026
332cca2
limb grower shadekin limbs, design enhancements (#5967)
lessthnthree Aug 9, 2026
7d3047c
Automatic changelog for PR #5967 [ci skip]
Bubberbot Aug 9, 2026
61ec458
Bubberstation automatic changelog compile [ci skip]
Bubberbot Aug 9, 2026
4a6dccc
Cleaning up some ticker code (#6072)
Phantastic-Swan Aug 9, 2026
9e638c4
Tarkon borgs (#6076)
MajManatee Aug 9, 2026
99b386e
Automatic changelog for PR #6076 [ci skip]
Bubberbot Aug 9, 2026
1eb5683
Nukes the necessity of having name1-name2-name3 for hydras in favor o…
Odairu Aug 9, 2026
4ad86f7
Automatic changelog for PR #6078 [ci skip]
Bubberbot Aug 9, 2026
421f1f3
Bubberstation automatic changelog compile [ci skip]
Bubberbot Aug 10, 2026
936c09d
[BOUNTY] Removes the pairing mechanic from sec dept rolls (#6032)
Maia-J Aug 10, 2026
db8d355
Automatic changelog for PR #6032 [ci skip]
Bubberbot Aug 10, 2026
d368d57
Merge branch 'master' into Tesh-Attempt-Fixes
R0bro Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions _maps/RandomRuins/IceRuins/bubberstation/icemoon_interdyne.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2165,18 +2165,6 @@
/turf/open/floor/wood,
/area/ruin/syndicate_lava_base/testlab)
"pN" = (
/obj/item/disk/design_disk/limbs/ethereal{
pixel_y = 2
},
/obj/item/disk/design_disk/limbs/felinid{
pixel_y = 4
},
/obj/item/disk/design_disk/limbs/lizard{
pixel_y = 6
},
/obj/item/disk/design_disk/limbs/plasmaman{
pixel_y = 8
},
/obj/structure/table/reinforced,
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/tile/blue{
Expand Down
42 changes: 23 additions & 19 deletions _maps/RandomRuins/SpaceRuins/skyrat/port_tarkon.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -3978,13 +3978,16 @@
dir = 1
},
/obj/structure/table/reinforced,
/obj/item/hackc{
pixel_x = 10
},
/obj/item/hackc{
pixel_x = -10
},
/obj/item/hackc,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"nY" = (
Expand Down Expand Up @@ -4241,13 +4244,7 @@
dir = 1
},
/obj/machinery/camera/preset/tarkon/directional/north,
/obj/structure/table/reinforced,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/item/flashlight/lantern,
/obj/effect/mob_spawn/ghost_role/human/tarkon/sec,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"oY" = (
Expand Down Expand Up @@ -10793,6 +10790,8 @@
/obj/item/storage/box/nif_ghost_box/ghost_role{
pixel_x = -7
},
/obj/item/storage/belt/utility/full,
/obj/item/storage/belt/utility/full,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"Mc" = (
Expand Down Expand Up @@ -11883,10 +11882,15 @@
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon/cargo)
"Qd" = (
/obj/structure/table/reinforced,
/obj/item/hackc{
pixel_x = 10
},
/obj/item/hackc{
pixel_x = -10
},
/obj/item/hackc,
/obj/effect/turf_decal/tile/yellow/anticorner,
/obj/structure/table,
/obj/item/storage/belt/utility/full,
/obj/item/storage/belt/utility/full,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"Qe" = (
Expand Down Expand Up @@ -12550,7 +12554,7 @@
/obj/effect/turf_decal/tile/yellow/anticorner{
dir = 4
},
/obj/effect/mob_spawn/ghost_role/human/tarkon,
/obj/effect/mob_spawn/ghost_role/robot/tarkon,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"Ss" = (
Expand Down Expand Up @@ -13699,7 +13703,7 @@
/obj/effect/turf_decal/tile/yellow/half{
dir = 1
},
/obj/effect/mob_spawn/ghost_role/human/tarkon/sec,
/obj/effect/mob_spawn/ghost_role/human/tarkon,
/turf/open/floor/iron,
/area/ruin/space/has_grav/port_tarkon)
"VZ" = (
Expand Down
2 changes: 2 additions & 0 deletions code/__DEFINES/exosuit_fab.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
//Bubber addition start
/// Module is compatible with Research Cyborg model
#define BORG_MODEL_RESEARCH (1<<6)
/// Module is compatible with Tarkon Cyborg model
#define BORG_MODEL_TARKON (1<<7)
//Bubber addition end

/// Module is compatible with Ripley Exosuit models
Expand Down
1 change: 1 addition & 0 deletions code/__DEFINES/~~bubber_defines/quirks.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define HEMOPHAGE "hemophage"
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//I'm tired. This is defines for mech fabs.
#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_RESEARCH "/Research Cyborgs"
#define RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_TARKON "/Tarkon Cyborgs"

// Colonial Marine Resequencer Categories
#define RND_CATEGORY_CMR_APPAREL "Apparel/Clothing"
Expand Down
6 changes: 5 additions & 1 deletion code/__DEFINES/~~bubber_defines/robot_defines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,10 @@
#define CYBORG_ICON_SCI 'modular_zubbers/code/modules/silicons/borgs/sprites/robot_sci.dmi'
#define CYBORG_ICON_SCI_HAYDEE_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/curverobot_sci.dmi'

//TARKON BORG ICON DEFINES
#define CYBORG_ICON_TARKON_WIDE_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/widerobot_tarkon.dmi'
#define CYBORG_ICON_TARKON_TALL_BUBBER 'modular_zubbers/code/modules/silicons/borgs/sprites/tallrobot_tarkon.dmi'

// RAPTOR BORG ICON TYPE DEFINE
#define CYBORG_ICON_TYPE_RAPTOR "raptor"

Expand Down Expand Up @@ -129,7 +133,7 @@
#define CYBORG_ICON_STATE_SEC_FELI "FELI-Security"
#define CYBORG_ICON_STATE_SYNDI_FELI "FELI-Combat"
#define CYBORG_ICON_STATE_NINJA_FELI "FELI-Ninja"

#define CYBORG_ICON_STATE_TARKON_FELI "FELI-Tarkon"

// KITTY BORG DEFINES BELOW

Expand Down
21 changes: 20 additions & 1 deletion code/datums/components/bloodysoles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS

equipped_slot = ITEM_SLOT_FEET
var/static/mutable_appearance/bloody_feet
var/mutable_appearance/bloody_feet //BUBBER EDIT - ORIGINAL: var/static/mutable_appearance/bloody_feet

/// List of DNA on mob's feet, so we can handle it separately from blood on mob's hands
var/list/blood_DNA = null
Expand All @@ -282,17 +282,35 @@

wielder = parent

/*BUBBER EDIT BEGIN - Species specific blood icons.
if(!bloody_feet)
bloody_feet = mutable_appearance('icons/effects/blood.dmi', "shoeblood", SHOES_LAYER)
*/

RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, PROC_REF(on_clean))
RegisterSignal(parent, COMSIG_STEP_ON_BLOOD, PROC_REF(on_step_blood))
RegisterSignals(parent, list(COMSIG_MOB_EQUIPPED_ITEM, COMSIG_MOB_UNEQUIPPED_ITEM), PROC_REF(shoecover))
// BUBBER ADDITION BEGIN - Species specific blood icons.
RegisterSignal(parent, COMSIG_SPECIES_GAIN, PROC_REF(on_species_change))
RegisterSignal(parent, COMSIG_SPECIES_LOSS, PROC_REF(on_species_change))
// BUBBER ADDITION END

if(new_blood)
blood_DNA = new_blood
update_icon()

// BUBBER ADDITION BEGIN - Species specific blood icons.
/datum/component/bloodysoles/feet/proc/on_species_change(datum/source)
SIGNAL_HANDLER
update_icon()

/datum/component/bloodysoles/feet/proc/get_blood_appearance()
var/icon/blood_icon_file = ishuman(wielder) && icon_exists('modular_zubbers/icons/effects/blood_species.dmi', "shoeblood_[wielder.dna.species.id]") ? 'modular_zubbers/icons/effects/blood_species.dmi' : 'icons/effects/blood.dmi'
var/blood_icon_state = ishuman(wielder) && icon_exists('modular_zubbers/icons/effects/blood_species.dmi', "shoeblood_[wielder.dna.species.id]") ? "shoeblood_[wielder.dna.species.id]" : "shoeblood"

return mutable_appearance(blood_icon_file, blood_icon_state, SHOES_LAYER)
// BUBBER ADDITION END

/datum/component/bloodysoles/feet/InheritComponent(datum/component/bloodysoles/feet/soles, original, list/new_blood)
if (!length(new_blood))
return
Expand All @@ -316,6 +334,7 @@
wielder.update_worn_shoes()
return

bloody_feet = get_blood_appearance() // BUBBER EDIT ADDITION
bloody_feet.color = wielder.get_blood_dna_color()
wielder.overlays_standing[SHOES_LAYER] = bloody_feet
wielder.apply_overlay(SHOES_LAYER)
Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/clothing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -654,7 +654,14 @@ BLIND // can't see anything
if(clothing_flags & LARGE_WORN_ICON)
blood_overlay = mutable_appearance('icons/effects/64x64.dmi', "[blood_state]blood_large")
else
blood_overlay = mutable_appearance('icons/effects/blood.dmi', "[blood_state]blood")
/*BUBBER EDIT BEGIN - Species specific blood icons.
blood_overlay = mutable_appearance('icons/effects/blood.dmi', "[blood_state]blood") ORIGNAL*/
var/mob/living/carbon/human/wearer = loc
var/icon/blood_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/blood_species.dmi', "[blood_state]blood_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/blood_species.dmi' : 'icons/effects/blood.dmi'
var/blood_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/blood_species.dmi', "[blood_state]blood_[wearer.dna.species.id]") ? "[blood_state]blood_[wearer.dna.species.id]" : "[blood_state]blood"

blood_overlay = mutable_appearance(blood_icon_file, blood_icon_state)
//BUBBER EDIT END

blood_overlay.color = get_blood_dna_color()

Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/head/_head.dm
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,14 @@
if(isinhands)
return
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet")
//BUBBER EDIT BEGIN - Species specific damage states.
//. += mutable_appearance('icons/effects/item_damage.dmi', "damagedhelmet") //ORIGINAL
var/mob/living/carbon/human/wearer = loc
var/icon/damage_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedhelmet_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/item_damage_species.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedhelmet_[wearer.dna.species.id]") ? "damagedhelmet_[wearer.dna.species.id]" : "damagedhelmet"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END

/obj/item/clothing/head/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands, icon_file)
. = ..()
Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/masks/_masks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,14 @@
if(isinhands || !(body_parts_covered & HEAD))
return
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask")
//BUBBER EDIT BEGIN - Species specific damage states.
//. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") //ORIGINAL
var/mob/living/carbon/human/wearer = loc
var/icon/damage_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedmask_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/item_damage_species.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedmask_[wearer.dna.species.id]") ? "damagedmask_[wearer.dna.species.id]" : "damagedmask"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END

/obj/item/clothing/mask/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands, icon_file)
. = ..()
Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/neck/_neck.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@
if(isinhands || !(body_parts_covered & HEAD))
return
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask")
//BUBBER EDIT BEGIN
//. += mutable_appearance('icons/effects/item_damage.dmi', "damagedmask") //ORIGINAL
var/mob/living/carbon/human/wearer = loc
var/icon/damage_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedmask_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/item_damage_species.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedmask_[wearer.dna.species.id]") ? "damagedmask_[wearer.dna.species.id]" : "damagedmask"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END

/obj/item/clothing/neck/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands, icon_file)
. = ..()
Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/shoes/_shoes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,14 @@
if(isinhands)
return
if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe")
//BUBBER EDIT BEGIN - Species specific damage states.
//. += mutable_appearance('icons/effects/item_damage.dmi', "damagedshoe") //ORIGINAL
var/mob/living/carbon/human/wearer = loc
var/icon/damage_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedshoe_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/item_damage_species.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damagedshoe_[wearer.dna.species.id]") ? "damagedshoe_[wearer.dna.species.id]" : "damagedshoe"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END

/obj/item/clothing/shoes/separate_worn_overlays(mutable_appearance/standing, mutable_appearance/draw_target, isinhands = FALSE, icon_file)
. = ..()
Expand Down
22 changes: 11 additions & 11 deletions code/modules/clothing/suits/_suits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@
if(isinhands)
return

//BUBBER EDIT BEGIN - Species specific damage states.
var/mob/living/carbon/human/wearer = loc
if(damaged_clothes)
//SKYRAT EDIT CHANGE BEGIN
//. += mutable_appearance('icons/effects/item_damage.dmi', "damaged[blood_overlay_type]") //ORIGINAL
var/damagefile2use = (mutant_styles & STYLE_TAUR_ALL) ? 'modular_skyrat/master_files/icons/mob/64x32_item_damage.dmi' : 'icons/effects/item_damage.dmi'
. += mutable_appearance(damagefile2use, "damaged[blood_overlay_type]")
//SKYRAT EDIT CHANGE END
if(GET_ATOM_BLOOD_DNA_LENGTH(src))
//SKYRAT EDIT CHANGE BEGIN
//. += mutable_appearance('icons/effects/blood.dmi', "[blood_overlay_type]blood") //ORIGINAL
var/bloodfile2use = (mutant_styles & STYLE_TAUR_ALL) ? 'modular_skyrat/master_files/icons/mob/64x32_blood.dmi' : 'icons/effects/blood.dmi'
. += mutable_appearance(bloodfile2use, "[blood_overlay_type]blood")
//SKYRAT EDIT CHANGE END
//todo: the taur icon doesn't exist anymore. Needs replacement.
var/icon/damage_icon_file = (mutant_styles & STYLE_TAUR_ALL) ? 'modular_skyrat/master_files/icons/mob/64x32_item_damage.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = "damaged[blood_overlay_type]"
if(ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damaged[blood_overlay_type]_[wearer.dna.species.id]"))
damage_icon_file = 'modular_zubbers/icons/effects/item_damage_species.dmi'
damage_icon_state = "damaged[blood_overlay_type]_[wearer.dna.species.id]"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END

var/mob/living/carbon/human/wearer = loc
if(!ishuman(wearer) || !wearer.w_uniform)
return
var/obj/item/clothing/under/undershirt = wearer.w_uniform
Expand Down
9 changes: 8 additions & 1 deletion code/modules/clothing/under/_under.dm
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,14 @@
return

if(damaged_clothes)
. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform")
//BUBBER EDIT BEGIN
//. += mutable_appearance('icons/effects/item_damage.dmi', "damageduniform") //ORIGINAL
var/mob/living/carbon/human/wearer = loc
var/icon/damage_icon_file = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damageduniform_[wearer.dna.species.id]") ? 'modular_zubbers/icons/effects/item_damage_species.dmi' : 'icons/effects/item_damage.dmi'
var/damage_icon_state = ishuman(wearer) && icon_exists('modular_zubbers/icons/effects/item_damage_species.dmi', "damageduniform_[wearer.dna.species.id]") ? "damageduniform_[wearer.dna.species.id]" : "damageduniform"

. += mutable_appearance(damage_icon_file, damage_icon_state)
//BUBBER EDIT END
if(accessory_overlay)
. += modify_accessory_overlay() // SKYRAT EDIT CHANGE - ORIGINAL: . += accessory_overlay

Expand Down
18 changes: 16 additions & 2 deletions code/modules/jobs/job_types/security_officer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,7 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
* This is the function that is responsible for taking the list of preferences,
* and spitting out what to put them in.
*
* However, it should, wherever possible, prevent solo departments.
* However, it should, wherever possible, prevent solo departments. // BUBBER EDIT: This was patched out, allowing solo departments
* That means that if there's one medical officer, and one engineering officer,
* that they should be put onto the same department (either medical or engineering).
*
Expand Down Expand Up @@ -463,6 +463,8 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
return selection

/proc/get_distribution(candidates, departments)
// BUBBER EDIT BEGIN - REMOVES THE PAIRING CODE.
/*
var/number_of_twos = min(departments, round(candidates / 2))
var/redistribute = candidates - (2 * number_of_twos)

Expand All @@ -471,10 +473,18 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
for (var/index in 1 to number_of_twos)
distribution[index] = 2

*/
var/distribution_size = min(departments, candidates)
var/redistribute = candidates - distribution_size
var/distribution[max(1, distribution_size)]
for (var/index in 1 to distribution_size)
distribution[index] = 1

for (var/index in 0 to redistribute - 1)
distribution[(index % departments) + 1] += 1

return distribution
// BUBBER EDIT END

/proc/get_new_officer_distribution_from_late_join(
preference,
Expand Down Expand Up @@ -516,9 +526,13 @@ GLOBAL_LIST_EMPTY(security_officer_distribution)
for (var/department in amount_in_departments)
var/amount = amount_in_departments[department]

// BUBBER EDIT BEGIN - REMOVES THE PAIRING CODE.
/*
if (amount == 1)
return department
else if (lowest_amount > amount)
else*/
if (lowest_amount > amount)
// BUBBER EDIT END
lowest_departments = list(department)
lowest_amount = amount
else if (lowest_amount == amount)
Expand Down
Loading
Loading