diff --git a/code/datums/uplink_items/uplink_traitor.dm b/code/datums/uplink_items/uplink_traitor.dm
index e8b3a49ed58..fde738f81a4 100644
--- a/code/datums/uplink_items/uplink_traitor.dm
+++ b/code/datums/uplink_items/uplink_traitor.dm
@@ -558,9 +558,9 @@
/datum/uplink_item/bundles_TC/badass
name = "Syndicate Bundle"
- desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 100 telecrystals, but you do not know which specialisation you will receive."
+ desc = "Syndicate Bundles are specialised groups of items that arrive in a plain box. These items are collectively worth more than 100 telecrystals. You can select one out of three specialisations after purchase."
reference = "SYB"
- item = /obj/item/storage/box/syndie_kit/bundle
+ item = /obj/item/radio/beacon/syndicate/bundle
cost = 100
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
diff --git a/code/game/objects/items/devices/radio/beacon.dm b/code/game/objects/items/devices/radio/beacon.dm
index e4a969b1446..f78588a832e 100644
--- a/code/game/objects/items/devices/radio/beacon.dm
+++ b/code/game/objects/items/devices/radio/beacon.dm
@@ -59,6 +59,45 @@
user.drop_item()
qdel(src)
+/obj/item/radio/beacon/syndicate/bundle/
+ name = "suspicious beacon"
+ desc = "A label on it reads: Activate to select a bundle."
+ var/list/static/bundles = list(
+ "Spy" = /obj/item/storage/box/syndie_kit/bundle/spy,
+ "Agent 13" = /obj/item/storage/box/syndie_kit/bundle/agent13,
+ "Thief" = /obj/item/storage/box/syndie_kit/bundle/thief,
+ "Agent 007" = /obj/item/storage/box/syndie_kit/bundle/bond,
+ "Infiltrator" = /obj/item/storage/box/syndie_kit/bundle/infiltrator,
+ "Bank Robber" = /obj/item/storage/box/syndie_kit/bundle/payday,
+ "Implanter" = /obj/item/storage/box/syndie_kit/bundle/implant,
+ "Hacker" = /obj/item/storage/box/syndie_kit/bundle/hacker,
+ "Dark Lord" = /obj/item/storage/box/syndie_kit/bundle/darklord,
+ "Sniper" = /obj/item/storage/box/syndie_kit/bundle/professional,
+ "Grenadier" = /obj/item/storage/box/syndie_kit/bundle/grenadier,
+ "Augmented" = /obj/item/storage/box/syndie_kit/bundle/metroid)
+ var/list/selected = list()
+ var/list/unselected = list()
+
+/obj/item/radio/beacon/syndicate/bundle/attack_self(mob/user)
+ if(!user)
+ return
+ if(!length(selected))
+ unselected = bundles.Copy()
+ for(var/i in 1 to 3)
+ selected += pick_n_take(unselected)
+ selected += "Random"
+ var/bundle_name = tgui_input_list(user, "Available Bundles", "Bundle Selection", selected)
+ if(!bundle_name)
+ return
+ if(bundle_name == "Random")
+ bundle_name = pick(unselected)
+ var/bundle = bundles[bundle_name]
+ bundle = new bundle(user.loc)
+ to_chat(user, "Welcome to [station_name()], [bundle_name]")
+ user.drop_item()
+ qdel(src)
+ user.put_in_hands(bundle)
+
/obj/item/radio/beacon/syndicate/power_sink
name = "suspicious beacon"
desc = "A label on it reads: Warning: Activating this device will send a power sink to your location."
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 4b81c4ad818..b5b75de74e4 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -3,60 +3,76 @@
icon_state = "box_of_doom"
/obj/item/storage/box/syndie_kit/bundle // Traitor bundles
+ var/list/items = list()
- var/static/list/spy = list( // 37TC
- /obj/item/clothing/under/chameleon, // 1TC
- /obj/item/clothing/mask/chameleon, // 1TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/clothing/shoes/chameleon/noslip, // 2TC
- /obj/item/clothing/glasses/hud/security/chameleon, // 2TC
- /obj/item/implanter/storage, // 8TC
- /obj/item/pen/edagger, // 2TC
- /obj/item/pinpointer/advpinpointer, // 4TC
- /obj/item/storage/fancy/cigarettes/cigpack_syndicate, // 2TC
- /obj/item/flashlight/emp, // 4TC
- /obj/item/chameleon, // 7TC
- /obj/item/encryptionkey/syndicate) // 2TC
+/obj/item/storage/box/syndie_kit/bundle/spy // 172TC
+ name = "Spy Bundle"
+ desc = "Complete your objectives quietly with this compilation of stealthy items."
+ items = list(
+ /obj/item/clothing/under/chameleon, // 5TC
+ /obj/item/clothing/mask/chameleon, // 5TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/clothing/shoes/chameleon/noslip, // 10TC
+ /obj/item/clothing/glasses/hud/security/chameleon, // 10TC
+ /obj/item/implanter/storage, // 40TC
+ /obj/item/pen/edagger, // 10TC
+ /obj/item/pinpointer/advpinpointer, // 20TC
+ /obj/item/storage/fancy/cigarettes/cigpack_syndicate, // 7TC
+ /obj/item/flashlight/emp, // 20TC
+ /obj/item/chameleon, // 25TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/agent13 = list( // 36TC
- /obj/item/clothing/under/chameleon, // 1TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/gun/projectile/automatic/pistol, // 4TC
- /obj/item/suppressor, // 1TC
- /obj/item/ammo_box/magazine/m10mm, // 1TC
- /obj/item/ammo_box/magazine/m10mm/hp, // 2TC
- /obj/item/garrote, // 6TC
- /obj/item/door_remote/omni/access_tuner, // 6TC
- /obj/item/clothing/glasses/chameleon/thermal, // 6TC
- /obj/item/implanter/freedom, // 5TC
+/obj/item/storage/box/syndie_kit/bundle/agent13 // 159
+ name = "Agent 13 Bundle"
+ desc = "Find and eliminate your targets quietly and effectively with this kit."
+ items = list(
+ /obj/item/clothing/under/chameleon, // 5TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/gun/projectile/automatic/pistol, // 20TC
+ /obj/item/suppressor, // 5TC
+ /obj/item/ammo_box/magazine/m10mm, // 3TC
+ /obj/item/ammo_box/magazine/m10mm/hp, // 6TC
+ /obj/item/garrote, // 30TC
+ /obj/item/door_remote/omni/access_tuner, // 30TC
+ /obj/item/clothing/glasses/chameleon/thermal, // 15TC
+ /obj/item/implanter/freedom, // 25TC
/obj/item/coin/gold, // 0TC
- /obj/item/encryptionkey/syndicate) // 2TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/thief = list( // 37TC
- /obj/item/gun/energy/kinetic_accelerator/crossbow, // 12TC
- /obj/item/chameleon, // 7TC
- /obj/item/clothing/glasses/chameleon/thermal, // 6TC
- /obj/item/clothing/gloves/color/black/thief, // 6TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/storage/backpack/satchel_flat, // 2TC
- /obj/item/encryptionkey/syndicate) // 2TC
+/obj/item/storage/box/syndie_kit/bundle/thief // 160TC
+ name = "Thief Bundle"
+ desc = "Steal from friends, enemies, and interstellar megacorporations alike!"
+ items = list(
+ /obj/item/gun/energy/kinetic_accelerator/crossbow, // 60TC
+ /obj/item/chameleon, // 25TC
+ /obj/item/clothing/glasses/chameleon/thermal, // 15TC
+ /obj/item/clothing/gloves/color/black/thief, // 30TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/storage/backpack/satchel_flat, // 10TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/bond = list( // 32TC
- /obj/item/gun/projectile/automatic/pistol, // 4TC
- /obj/item/suppressor, // 1TC
- /obj/item/ammo_box/magazine/m10mm/ap, // 2TC
- /obj/item/ammo_box/magazine/m10mm/ap, // 2TC
+/obj/item/storage/box/syndie_kit/bundle/bond // 137TC
+ name = "Agent 007 Bundle"
+ desc = "Shake your Martini and stir up trouble with this bundle of lethal equipment mixed with a spritz of gadgetry to keep things interesting."
+ items = list(
+ /obj/item/gun/projectile/automatic/pistol, // 20TC
+ /obj/item/suppressor, // 5TC
+ /obj/item/ammo_box/magazine/m10mm/ap, // 6TC
+ /obj/item/ammo_box/magazine/m10mm/ap, // 6TC
/obj/item/clothing/under/suit/really_black, // 0TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 0TC
- /obj/item/storage/box/syndie_kit/emp, // 2TC
- /obj/item/clothing/glasses/hud/security/chameleon, // 2TC
- /obj/item/encryptionkey/syndicate, // 2TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 3TC
+ /obj/item/storage/box/syndie_kit/emp, // 10TC
+ /obj/item/clothing/glasses/hud/security/chameleon, // 10TC
+ /obj/item/encryptionkey/syndicate, // 10TC
/obj/item/reagent_containers/food/drinks/drinkingglass/alliescocktail, // 0TC
- /obj/item/dnascrambler, // 2TC
- /obj/item/CQC_manual) // 13TC
+ /obj/item/dnascrambler, // 7TC
+ /obj/item/CQC_manual) // 50TC
- var/static/list/infiltrator = list( // 34TC + RCD & Mesons Autoimplanter
+/obj/item/storage/box/syndie_kit/bundle/infiltrator // 155TC + RCD & Mesons Autoimplanter
+ name = "Infiltration Bundle"
+ desc = "Use your teleporter, krav maga and other support tools to jump right into your desired location, quickly leaving as though you were never there."
+ items = list(
/obj/item/storage/box/syndie_kit/teleporter, // 8TC
/obj/item/clothing/gloves/color/black/krav_maga, // 10TC
/obj/item/clothing/glasses/chameleon/thermal, // 6TC
@@ -66,7 +82,10 @@
/obj/item/autosurgeon/organ/syndicate/meson_eyes, // 0TC
/obj/item/encryptionkey/syndicate) // 2TC
- var/static/list/payday = list( // 35TC
+/obj/item/storage/box/syndie_kit/bundle/payday // 175TC
+ name = "Heist Bundle"
+ desc = "Alright guys, today we're performing a heist on a space station owned by a greedy corporation. Drain the vault of all its worth so we can get that pay dirt!11"
+ items = list(
/obj/item/gun/projectile/revolver, // 13TC
/obj/item/ammo_box/a357, // 3TC
/obj/item/ammo_box/a357, // 3TC
@@ -79,83 +98,98 @@
/obj/item/clothing/mask/gas/clown_hat, // 0TC
/obj/item/grenade/plastic/c4, // 1TC
/obj/item/thermal_drill/diamond_drill/syndicate, // 1TC
- /obj/item/encryptionkey/syndicate) // 2TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/implant = list( // 40TC
- /obj/item/implanter/freedom, // 5TC
- /obj/item/implanter/uplink, // 14TC (ten free TC)
- /obj/item/implanter/emp, // 1TC
- /obj/item/implanter/adrenalin, // 8TC
- /obj/item/implanter/explosive, // 2TC
- /obj/item/implanter/storage, // 8TC
- /obj/item/encryptionkey/syndicate) // 2TC
+/obj/item/storage/box/syndie_kit/bundle/implant // 200TC
+ name = "Bio-chip Bundle"
+ desc = "A few useful bio-chips to give you some options for when you inevitably get captured by the Security."
+ items = list(
+ /obj/item/implanter/freedom, // 25TC
+ /obj/item/implanter/uplink, // 20TC (+50 Free TC)
+ /obj/item/implanter/emp, // 5TC (half of EMP kit)
+ /obj/item/implanter/adrenalin, // 40TC
+ /obj/item/implanter/explosive, // 10TC
+ /obj/item/implanter/storage, // 40TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/hacker = list( // 39TC + Toy AI Uploader
- /obj/item/melee/energy/sword/saber/blue, // 8TC
- /obj/item/card/emag, // 6TC
- /obj/item/encryptionkey/syndicate, // 2TC
- /obj/item/encryptionkey/binary, // 5TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/storage/box/syndie_kit/emp, // 2TC
+/obj/item/storage/box/syndie_kit/bundle/hacker // 180TC
+ name = "Hacker Bundle"
+ desc = "A kit with everything you need to hack into and disrupt the Station, AI, its cyborgs and the Security team. HACK THE PLANET!"
+ items = list(
+ /obj/item/melee/energy/sword/saber/blue, // 40TC
+ /obj/item/card/emag, // 30TC
+ /obj/item/encryptionkey/syndicate, // 10TC
+ /obj/item/encryptionkey/binary, // 25TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/storage/box/syndie_kit/emp, // 10TC
/obj/item/aiModule/toyAI, // 0TC
- /obj/item/clothing/glasses/chameleon/thermal, // 6TC
- /obj/item/storage/belt/military/traitor/hacker, // 3TC
- /obj/item/clothing/gloves/combat, // 0TC
- /obj/item/multitool/ai_detect, // 1TC
- /obj/item/flashlight/emp) // 4TC
+ /obj/item/clothing/glasses/chameleon/thermal, // 15TC
+ /obj/item/storage/belt/military/traitor/hacker, // 15TC
+ /obj/item/clothing/gloves/combat, // accounted in belt + toolbox
+ /obj/item/multitool/ai_detect, // 5TC
+ /obj/item/flashlight/emp) // 20TC
- var/static/list/darklord = list( // 33TC + TK
- /obj/item/melee/energy/sword/saber/red, // 8TC
- /obj/item/melee/energy/sword/saber/red, // 8TC
- /obj/item/clothing/gloves/color/yellow/power, // 10TC
- /obj/item/dnainjector/telemut/darkbundle, // 0TC
+/obj/item/storage/box/syndie_kit/bundle/darklord // 168TC + Telekinesis
+ name = "Dark Lord Bundle"
+ desc = "Turn your anger into hate and your hate into suffering with a mix of energy swords and magical powers. DO IT."
+ items = list(
+ /obj/item/melee/energy/sword/saber/red, // 40TC
+ /obj/item/melee/energy/sword/saber/red, // 40TC
+ /obj/item/clothing/gloves/color/yellow/power, // 50TC
+ /obj/item/dnainjector/telemut/darkbundle, // ?TC
/obj/item/clothing/suit/hooded/chaplain_hoodie, // 0TC
/obj/item/clothing/glasses/meson/engine/tray, // 0TC
- /obj/item/clothing/mask/chameleon, // 1TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/clothing/shoes/chameleon/noslip, // 2TC
- /obj/item/encryptionkey/syndicate) // 2TC
+ /obj/item/clothing/mask/chameleon, // 8TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/clothing/shoes/chameleon/noslip, // 10TC
+ /obj/item/encryptionkey/syndicate) // 10TC
- var/static/list/professional = list( // 38TC
- /obj/item/gun/projectile/automatic/sniper_rifle/syndicate, // 16TC
- /obj/item/ammo_box/magazine/sniper_rounds, // 4TC
- /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 5TC
- /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 5TC
- /obj/item/clothing/glasses/chameleon/thermal, // 6TC
- /obj/item/clothing/gloves/combat, // 0 TC
- /obj/item/clothing/under/suit/really_black, // 0 TC
- /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 0TC
- /obj/item/encryptionkey/syndicate) // 2TC
+/obj/item/storage/box/syndie_kit/bundle/professional // 164TC
+ name = "Sniper Bundle"
+ desc = "Suit up and handle yourself like a professional with a long-distance sniper rifle, additional .50 standard and penetrator rounds and thermal glasses to easily scope out your target."
+ items = list(
+ /obj/item/gun/projectile/automatic/sniper_rifle/syndicate, // 80TC
+ /obj/item/ammo_box/magazine/sniper_rounds, // 15TC
+ /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 20TC
+ /obj/item/ammo_box/magazine/sniper_rounds/penetrator, // 20TC
+ /obj/item/clothing/glasses/chameleon/thermal, // 15TC
+ /obj/item/clothing/gloves/combat, // ~1TC
+ /obj/item/clothing/under/suit/really_black, // 0TC
+ /obj/item/clothing/suit/storage/iaa/blackjacket/armored, // 3TC
+ /obj/item/encryptionkey/syndicate) // 15TC
- var/static/list/grenadier = list( // 20TC + Tactical Grenadier Belt
+/obj/item/storage/box/syndie_kit/bundle/grenadier // 133TC + Tactical Grenadier Belt
+ name = "Grenade Bundle"
+ desc = "A variety of grenades and pyrotechnics to ensure you can blast your way through any situation. "
+ items = list(
/obj/item/storage/belt/grenade/tactical, // Contains 2 Frag and EMP grenades, 5 C4 Explosives, 5 Smoke and Gluon grenades and 1 Minibomb grenade ~20TC Estimate
- /obj/item/gun/projectile/automatic/pistol, // 4TC
- /obj/item/ammo_box/magazine/m10mm/fire, // 2TC
- /obj/item/ammo_box/magazine/m10mm/fire, // 2TC
- /obj/item/mod/control/pre_equipped/traitor, // 6TC
- /obj/item/clothing/gloves/combat, // 0TC
- /obj/item/card/id/syndicate, // 2TC
- /obj/item/clothing/shoes/chameleon/noslip, // 2TC
- /obj/item/encryptionkey/syndicate) // 2TC
-
- var/static/list/metroid = list( // 21 + modules + laser gun
- /obj/item/mod/control/pre_equipped/traitor_elite, // 9TC
- /obj/item/mod/module/visor/thermal, // 3 TC
- /obj/item/mod/module/stealth, //0 TC but strong
- /obj/item/mod/module/power_kick, //0 TC but funny
- /obj/item/mod/module/sphere_transform, //0TC but should not be allowed to normally be installed
- /obj/item/autosurgeon/organ/syndicate/laser_arm, //0 TC but otherwise not obtainable.
- /obj/item/pinpointer/advpinpointer, //4 TC
- /obj/item/storage/box/syndidonkpockets, //2TC, otherwise they will just die in the first combat to disabler.
- /obj/item/storage/belt/utility/full/multitool, //0 TC
- /obj/item/clothing/head/collectable/slime, //Priceless (0 TC)
- /obj/item/encryptionkey/syndicate) //2 TC
-
+ /obj/item/gun/projectile/automatic/pistol, // 20TC
+ /obj/item/ammo_box/magazine/m10mm/fire, // 6TC
+ /obj/item/ammo_box/magazine/m10mm/fire, // 6TC
+ /obj/item/mod/control/pre_equipped/traitor, // 30TC
+ /obj/item/clothing/gloves/combat, // ~1TC
+ /obj/item/card/id/syndicate, // 10TC
+ /obj/item/clothing/shoes/chameleon/noslip, // 10TC
+ /obj/item/encryptionkey/syndicate) // 10TC
+/obj/item/storage/box/syndie_kit/bundle/metroid // 115TC + modules + laser gun
+ name = "Modsuit Bundle"
+ desc = "Don the equipment of an intergalactic bounty hunter and blast your way through the station!"
+ items = list(
+ /obj/item/mod/control/pre_equipped/traitor_elite, // 45TC
+ /obj/item/mod/module/visor/thermal, // 15TC
+ /obj/item/mod/module/stealth, // ?TC
+ /obj/item/mod/module/power_kick, // ?TC
+ /obj/item/mod/module/sphere_transform, // ?TC
+ /obj/item/autosurgeon/organ/syndicate/laser_arm, // ?TC
+ /obj/item/pinpointer/advpinpointer, // 20TC
+ /obj/item/storage/box/syndidonkpockets, // 10TC
+ /obj/item/storage/belt/utility/full/multitool, // 15TC
+ /obj/item/clothing/head/collectable/slime, // 0TC priceless
+ /obj/item/encryptionkey/syndicate) // 10TC
/obj/item/storage/box/syndie_kit/bundle/populate_contents()
- var/list/bundle = pick(spy, agent13, thief, bond, infiltrator, payday, implant, hacker, darklord, professional, grenadier, metroid)
- for(var/item in bundle)
+ for(var/obj/item/item as anything in items)
new item(src)
/obj/item/storage/box/syndie_kit/space
@@ -390,3 +424,4 @@
new /obj/item/paper/camera_bug(src)
for(var/i in 1 to 5)
new /obj/item/wall_bug(src, camera)
+