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) +