From 0a6bdda7ee3d9cb43bb65743d74967d21d1d33ae Mon Sep 17 00:00:00 2001 From: nmajask Date: Tue, 11 May 2021 19:44:35 -0400 Subject: [PATCH 01/12] Add files via upload --- yogstation/icons/mob/hud.dmi | Bin 17979 -> 17921 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/yogstation/icons/mob/hud.dmi b/yogstation/icons/mob/hud.dmi index f312946c67cd4dfe4a21fe49278fe256acdaefbb..8ca73192497aee883250d1a2f48e803111089ca6 100644 GIT binary patch delta 15527 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 delta 15617 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 Zel8WQ`^Uu83+f6$YTvz)t7-M>{{fg;23-IE From be6c0e17c07634018fcff5710572065d10135e03 Mon Sep 17 00:00:00 2001 From: nmajask Date: Fri, 14 May 2021 19:20:39 -0400 Subject: [PATCH 02/12] changed sigtech, tourist, and clerk icons added more detail to sigtech icon new tourist and clerk icons --- yogstation/icons/mob/hud.dmi | Bin 17921 -> 17945 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/yogstation/icons/mob/hud.dmi b/yogstation/icons/mob/hud.dmi index 8ca73192497aee883250d1a2f48e803111089ca6..b2726357def4c371ab9fae9e665ab74c4699eaa1 100644 GIT binary patch delta 14319 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 v`tF%C`!~S3TWrC9p9}o=k2?B7DNMc*Q Date: Sun, 16 May 2021 22:42:47 -0400 Subject: [PATCH 03/12] Some more icon changes I uploaded the wrong file --- yogstation/icons/mob/hud.dmi | Bin 17945 -> 17961 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/yogstation/icons/mob/hud.dmi b/yogstation/icons/mob/hud.dmi index b2726357def4c371ab9fae9e665ab74c4699eaa1..7a3ab11684a00e61c0a4a5b10755bf20cd213500 100644 GIT binary patch delta 14826 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 delta 14878 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 iXej+(OwG+d53#j#>Y>WeLkISFUswB Date: Wed, 19 May 2021 00:00:16 -0400 Subject: [PATCH 04/12] applied grimm-hollowknight requested changes Adds new signal technician and paramedic hud icons and reverts clerk's back, all requested by grimm-hollowknight --- icons/mob/hud.dmi | Bin 15817 -> 17926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index b8792a8eab265bac24083a338acffa2e887a9a37..469084ed8f8a0e9a4de179442aa7709a02bd7018 100644 GIT binary patch literal 17926 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 Y{jZ10lVhT7;P8Ojqh~6G56$2IUy&OKApigX literal 15817 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 From 7239268067008f3918998e15c757a95e43ea9a7f Mon Sep 17 00:00:00 2001 From: nmajask Date: Thu, 27 May 2021 20:07:00 -0400 Subject: [PATCH 05/12] ah, so thats why you reverted that change im dumb --- icons/mob/hud.dmi | Bin 17926 -> 15817 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 469084ed8f8a0e9a4de179442aa7709a02bd7018..b8792a8eab265bac24083a338acffa2e887a9a37 100644 GIT binary patch literal 15817 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 literal 17926 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 Y{jZ10lVhT7;P8Ojqh~6G56$2IUy&OKApigX From 50139caac01dbff4e56b96543653f902e8c17559 Mon Sep 17 00:00:00 2001 From: nmajask Date: Thu, 27 May 2021 20:27:09 -0400 Subject: [PATCH 06/12] why cant i merge upstream why github --- yogstation/icons/mob/hud.dmi | Bin 17961 -> 17926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/yogstation/icons/mob/hud.dmi b/yogstation/icons/mob/hud.dmi index 7a3ab11684a00e61c0a4a5b10755bf20cd213500..469084ed8f8a0e9a4de179442aa7709a02bd7018 100644 GIT binary patch delta 14756 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 From b007bdc80c24cb44817c78962de6818be65d21ca Mon Sep 17 00:00:00 2001 From: nmajask Date: Thu, 27 May 2021 20:35:58 -0400 Subject: [PATCH 07/12] Gives mining medic job specific traitor items Gives mining medic tators access to the Kinetic Accelerator Pressure Mod, Brainwashing Surgery Program, and Arm Mounted Medical Beamgun --- code/modules/uplink/uplink_items.dm | 4188 +++++++++++++-------------- 1 file changed, 2094 insertions(+), 2094 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 23f7e0696197..3ebfd4753df1 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,2094 +1,2094 @@ -GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) - -/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) - var/list/filtered_uplink_items = list() - var/list/sale_items = list() - - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/I = new path - if(!I.item) - continue - if(I.include_modes.len) - if(!gamemode && SSticker.mode && !(SSticker.mode.type in I.include_modes)) - continue - if(gamemode && !(gamemode in I.include_modes)) - continue - if(I.exclude_modes.len) - if(!gamemode && SSticker.mode && (SSticker.mode.type in I.exclude_modes)) - continue - if(gamemode && (gamemode in I.exclude_modes)) - continue - if(I.player_minimum && I.player_minimum > GLOB.joined_player_list.len) - continue - if (I.restricted && !allow_restricted) - continue - - if(!filtered_uplink_items[I.category]) - filtered_uplink_items[I.category] = list() - filtered_uplink_items[I.category][I.name] = I - if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) - sale_items += I - if(allow_sales) - var/datum/team/nuclear/nuclear_team - if (gamemode == /datum/game_mode/nuclear) // uplink code kind of needs a redesign - nuclear_team = locate() in GLOB.antagonist_teams // the team discounts could be a in a GLOB with this design but it would make sense for them to be team specific... - if (!nuclear_team) - create_uplink_sales(3, "Discounted Gear", 1, sale_items, filtered_uplink_items) - else - if (!nuclear_team.team_discounts) - // create 5 unlimited stock discounts - create_uplink_sales(5, "Discounted Team Gear", -1, sale_items, filtered_uplink_items) - // Create 10 limited stock discounts - create_uplink_sales(10, "Limited Stock Team Gear", 1, sale_items, filtered_uplink_items) - nuclear_team.team_discounts = list("Discounted Team Gear" = filtered_uplink_items["Discounted Team Gear"], "Limited Stock Team Gear" = filtered_uplink_items["Limited Stock Team Gear"]) - else - for(var/cat in nuclear_team.team_discounts) - for(var/item in nuclear_team.team_discounts[cat]) - var/datum/uplink_item/D = nuclear_team.team_discounts[cat][item] - var/datum/uplink_item/O = filtered_uplink_items[initial(D.category)][initial(D.name)] - O.refundable = FALSE - - filtered_uplink_items["Discounted Team Gear"] = nuclear_team.team_discounts["Discounted Team Gear"] - filtered_uplink_items["Limited Stock Team Gear"] = nuclear_team.team_discounts["Limited Stock Team Gear"] - - - return filtered_uplink_items - -/proc/create_uplink_sales(num, category_name, limited_stock, sale_items, uplink_items) - if (num <= 0) - return - - if(!uplink_items[category_name]) - uplink_items[category_name] = list() - - for (var/i in 1 to num) - var/datum/uplink_item/I = pick_n_take(sale_items) - var/datum/uplink_item/A = new I.type - var/discount = A.get_discount() - var/list/disclaimer = list("Void where prohibited.", "Not recommended for children.", "Contains small parts.", "Check local laws for legality in region.", "Do not taunt.", "Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform.", "Keep away from fire or flames.", "Product is provided \"as is\" without any implied or expressed warranties.", "As seen on TV.", "For recreational use only.", "Use only as directed.", "16% sales tax will be charged for orders originating within Space Nebraska.") - A.limited_stock = limited_stock - if(A.cost >= 20) //Tough love for nuke ops - discount *= 0.5 - A.category = category_name - A.cost = max(round(A.cost * discount),1) - A.name += " ([round(((initial(A.cost)-A.cost)/initial(A.cost))*100)]% off!)" - A.desc += " Normally costs [initial(A.cost)] TC. All sales final. [pick(disclaimer)]" - A.item = I.item - if (A.refundable) - var/obj/item/antag_spawner/S = new A.item() - S.discountPrice = A.cost - A.item = S - uplink_items[category_name][A.name] = A - - -/** - * Uplink Items - * - * Items that can be spawned from an uplink. Can be limited by gamemode. -**/ -/datum/uplink_item - var/name = "item name" - var/category = "item category" - var/desc = "item description" - var/item = null // Path to the item to spawn. - var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). - var/cost = 0 - var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. - var/refundable = FALSE - var/surplus = 100 // Chance of being included in the surplus crate. - var/cant_discount = FALSE - var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited - var/list/include_modes = list() // Game modes to allow this item in. - var/list/exclude_modes = list() // Game modes to disallow this item from. - var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. - var/player_minimum //The minimum crew size needed for this item to be added to uplinks. - var/purchase_log_vis = TRUE // Visible in the purchase log? - var/restricted = FALSE // Adds restrictions for VR/Events - var/list/restricted_species //Limits items to a specific species. Hopefully. - var/illegal_tech = TRUE // Can this item be deconstructed to unlock certain techweb research nodes? - /// the manufacturer of the item. Gives up to a 20% discount if you're from that corporation - var/datum/corporation/manufacturer - -/datum/uplink_item/proc/get_discount() - return pick(4;0.75,2;0.5,1;0.25) - -/datum/uplink_item/proc/purchase(mob/user, datum/component/uplink/U) - var/atom/A = spawn_item(item, user, U) - if(purchase_log_vis && U.purchase_log) - U.purchase_log.LogPurchase(A, src, cost) - -/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!spawn_path) - return - var/atom/A - if(ispath(spawn_path)) - A = new spawn_path(get_turf(user)) - else - A = spawn_path - if(ishuman(user) && istype(A, /obj/item)) - var/mob/living/carbon/human/H = user - if(H.put_in_hands(A)) - to_chat(H, "[A] materializes into your hands!") - return A - to_chat(user, "[A] materializes onto the floor.") - return A - -//Discounts (dynamically filled above) -/datum/uplink_item/discounts - category = "Discounts" - -//All bundles and telecrystals -/datum/uplink_item/bundles_TC - category = "Bundles" - surplus = 0 - cant_discount = TRUE - -/datum/uplink_item/bundles_TC/chemical - name = "Bioterror bundle" - desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ - box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." - item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - cost = 30 // normally 42 - manufacturer = /datum/corporation/traitor/donkco - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bulldog - name = "Bulldog bundle" - desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ - Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." - item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - cost = 13 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/cyber_implants - name = "Cybernetic Implants Bundle" - desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." - item = /obj/item/storage/box/cyber_implants - cost = 40 - manufacturer = /datum/corporation/traitor/cybersun - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/medical - name = "Medical bundle" - desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ - a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." - item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - cost = 15 // normally 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ - two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ - We'll throw in a free red tie if you order NOW." - item = /obj/item/storage/briefcase/sniperbundle - cost = 20 // normally 26 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/firestarter - name = "Spetsnaz Pyro bundle" - desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ - Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." - item = /obj/item/storage/backpack/duffelbag/syndie/firestarter - cost = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/contract_kit - name = "Contract Kit" - desc = "The Syndicate have offered you the chance to become a contractor, take on kidnapping contracts for TC and cash payouts. Upon purchase, \ - you'll be granted your own contract uplink embedded within the supplied tablet computer. Additionally, you'll be granted \ - standard contractor gear to help with your mission - comes supplied with the tablet, specialised space suit, chameleon jumpsuit and mask, \ - agent card, specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." - item = /obj/item/storage/box/syndicate/contract_kit - cost = 20 - player_minimum = 20 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/bundles_TC/bundle_A - name = "Syndi-kit Tactical" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ - you will receive. May contain discontinued and/or exotic items." - item = /obj/item/storage/box/syndicate/bundle_A - cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bundle_B - name = "Syndi-kit Special" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." - item = /obj/item/storage/box/syndicate/bundle_B - cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/surplus - name = "Syndicate Surplus Crate" - desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 50 TC." - item = /obj/structure/closet/crate - cost = 20 - player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - var/starting_crate_value = 50 - -/datum/uplink_item/bundles_TC/surplus/super - name = "Super Surplus Crate" - desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 125 TC." - cost = 40 - player_minimum = 40 - starting_crate_value = 125 - -/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) - - var/crate_value = starting_crate_value - var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) - if(U.purchase_log) - U.purchase_log.LogPurchase(C, src, cost) - while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - - if(!I.surplus || prob(100 - I.surplus)) - continue - if(crate_value < I.cost) - continue - crate_value -= I.cost - var/obj/goods = new I.item(C) - if(U.purchase_log) - U.purchase_log.LogPurchase(goods, I, 0) - return C - -/datum/uplink_item/bundles_TC/random - name = "Random Item" - desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech - cost = 0 - -/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = U.uplink_items - var/list/possible_items = list() - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(src == I || !I.item) - continue - if(U.telecrystals < I.cost) - continue - if(I.limited_stock == 0) - continue - possible_items += I - - if(possible_items.len) - var/datum/uplink_item/I = pick(possible_items) - SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) - U.MakePurchase(user, I) - -/datum/uplink_item/bundles_TC/telecrystal - name = "1 Raw Telecrystal" - desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal - cost = 1 - // Don't add telecrystals to the purchase_log since - // it's just used to buy more items (including itself!) - purchase_log_vis = FALSE - -/datum/uplink_item/bundles_TC/telecrystal/five - name = "5 Raw Telecrystals" - desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/five - cost = 5 - -/datum/uplink_item/bundles_TC/telecrystal/twenty - name = "20 Raw Telecrystals" - desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/twenty - cost = 20 - -// Dangerous Items -/datum/uplink_item/dangerous - category = "Conspicuous Weapons" - -/datum/uplink_item/dangerous/rawketlawnchair - name = "84mm Rocket Propelled Grenade Launcher" - desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ - Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher - cost = 8 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/pneumatic_cannon/pie/selfcharge - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/transforming/energy/sword/bananium - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - -/datum/uplink_item/dangerous/shotgun - name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ - quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/shotgun/bulldog - cost = 8 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/smg - name = "C-20r Submachine Gun" - desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ - 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/c20r - cost = 10 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/doublesword - name = "Double-Bladed Energy Sword" - desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ - all energy projectiles, but requires two hands to wield." - item = /obj/item/twohanded/dualsaber - player_minimum = 25 - cost = 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/doublesword/get_discount() - return pick(4;0.8,2;0.65,1;0.5) - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/transforming/energy/sword/saber - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bostaff - name = "Bo Staff" - desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm." - item = /obj/item/twohanded/bostaff - cost = 8 - -/datum/uplink_item/dangerous/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 - -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - item = /obj/item/guardiancreator/tech - cost = 15 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 0 - //exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //yogs: removes restrictions on liabilit- I mean punchghosts - player_minimum = 25 - restricted = TRUE - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 20 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/minigun - name = "M-546 Osprey" - desc = "A fully-loaded minigun which packs a big punch. \ - This deadly giant weapon has a massive 500-round magazine of devastating 5.46mm caseless ammunition.\ - Slaughter your enemies through sheer force. We made this gun so advanced that it fires the whole bullet.\ - Thats 60% more bullet per bullet and no more useless casings!" - item = /obj/item/minigunbackpack - cost = 36 - surplus = 0 - cant_discount = TRUE - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 18 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/powerfist - name = "Power Fist" - desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." - item = /obj/item/melee/powerfist - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bolt_action - name = "Surplus Rifle" - desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/rifle/boltaction - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver" - desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver - cost = 13 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/foamsmg - name = "Toy Submachine Gun" - desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/c20r/toy - cost = 5 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foammachinegun - name = "Toy Machine Gun" - desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ - riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/l6_saw/toy - cost = 10 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foampistol - name = "Toy Pistol with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/toy/pistol/riot - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 10 - -// Stealthy Weapons -/datum/uplink_item/stealthy_weapons - category = "Stealthy Weapons" - -/datum/uplink_item/stealthy_weapons/combatglovesplus - name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ - to learn the abilities of krav maga to the wearer." - item = /obj/item/clothing/gloves/krav_maga/combatglovesplus - cost = 5 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Martial Arts Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ - deflecting all ranged weapon fire when throwmode is enabled, but you also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - cost = 14 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. \ - Small enough to fit into a pocket or slip into a bag unnoticed. \ - It will synthesize and fire bolts tipped with a debilitating \ - toxin that will damage and disorient targets, causing them to \ - slur as if inebriated. It can produce an infinite number \ - of bolts, but takes time to automatically recharge after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - cost = 11 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/origami_kit - name = "Boxed Origami Kit" - desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ - perfectly aerodynamic (and potentially lethal) paper airplanes." - item = /obj/item/storage/box/syndie_kit/origami_bundle - cost = 14 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ - On death, these nodules take control of the dead body, causing limited revivification, \ - along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Suppressor" - desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." - item = /obj/item/suppressor - cost = 3 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -// Ammunition -/datum/uplink_item/ammo - category = "Ammunition" - surplus = 40 - -/datum/uplink_item/ammo/pistol - name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." - item = /obj/item/ammo_box/magazine/m10mm - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolap - name = "10mm Armour Piercing Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolhp - name = "10mm Hollow Point Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp - cost = 3 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolfire - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/shotgun - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/shotgun/buck - name = "12g Buckshot Drum" - desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g - -/datum/uplink_item/ammo/shotgun/dragon - name = "12g Dragon's Breath Drum" - desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ - 'I'm a fire starter, twisted fire starter!'" - item = /obj/item/ammo_box/magazine/m12g/dragon - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/meteor - name = "12g Meteorslug Shells" - desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ - Great for blasting airlocks off their frames and knocking down enemies." - item = /obj/item/ammo_box/magazine/m12g/meteor - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 4 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - illegal_tech = FALSE - -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade" - desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_casing/a40mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg/bag - name = ".45 Ammo Duffel Bag" - desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg - cost = 20 //instead of 27 TC - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 - cost = 3 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 - -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/carbine - name = "5.56mm Toploader Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." - item = /obj/item/ammo_box/magazine/m556 - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun/basic - name = "7.12x82mm Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ - By the time you need to use this, you'll already be standing on a pile of corpses." - item = /obj/item/ammo_box/magazine/mm712x82 - -/datum/uplink_item/ammo/machinegun/ap - name = "7.12x82mm (Armor Penetrating) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ - to puncture even the most durable armor." - item = /obj/item/ammo_box/magazine/mm712x82/ap - cost = 9 - -/datum/uplink_item/ammo/machinegun/hollow - name = "7.12x82mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm712x82/hollow - -/datum/uplink_item/ammo/machinegun/incen - name = "7.12x82mm (Incendiary) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ - mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." - item = /obj/item/ammo_box/magazine/mm712x82/incen - -/datum/uplink_item/ammo/rocket - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/rocket/basic - name = "84mm HE Rocket" - desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" - item = /obj/item/ammo_casing/caseless/rocket - cost = 4 - -/datum/uplink_item/ammo/rocket/hedp - name = "84mm HEDP Rocket" - desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ - Strike fear into the hearts of your enemies." - item = /obj/item/ammo_casing/caseless/rocket/hedp - cost = 6 - -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/toydarts - name = "Box of Riot Darts" - desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" - item = /obj/item/ammo_box/foambox/riot - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - illegal_tech = FALSE - -/datum/uplink_item/ammo/bioterror - name = "Box of Bioterror Syringes" - desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ - and broca systems, making it impossible for them to move or speak for some time." - item = /obj/item/storage/box/syndie_kit/bioterror - cost = 6 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/bolt_action - name = "Surplus Rifle Clip" - desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/dark_gygax/bag - name = "Dark Gygax Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the incendiary carbine and flash bang launcher that are equipped on a standard Dark Gygax exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/mauler/bag - name = "Mauler Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile launcher that are equipped on a standard Mauler exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler - cost = 6 - include_modes = list(/datum/game_mode/nuclear) - -//Grenades and Explosives -/datum/uplink_item/explosives - category = "Explosives" - -/datum/uplink_item/explosives/bioterrorfoam - name = "Bioterror Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! Discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 6 - manufacturer = /datum/corporation/bolsynpowell - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/plastic/c4 - cost = 1 - -/datum/uplink_item/explosives/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 8 //20% discount! - cant_discount = TRUE - -/datum/uplink_item/explosives/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ - X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ - For when you want a controlled explosion that leaves a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/explosives/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ - detonate PDAs of crewmembers who have their message feature enabled. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/cartridge/virus/syndicate - cost = 6 - manufacturer = /datum/corporation/traitor/cybersun - restricted = TRUE - -/datum/uplink_item/explosives/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ - security's energy weapons and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/explosives/ducky - name = "Exploding Rubber Duck" - desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on." - item = /obj/item/deployablemine/traitor - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 12 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/explosives/grenadier - name = "Grenadier's belt" - desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." - item = /obj/item/storage/belt/grenade/full - include_modes = list(/datum/game_mode/nuclear) - cost = 22 - surplus = 0 - -/datum/uplink_item/explosives/bigducky - name = "High Yield Exploding Rubber Duck" - desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on. \ - This variant has been fitted with high yield X4 charges for a larger explosion." - item = /obj/item/deployablemine/traitor/bigboom - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - manufacturer = /datum/corporation/traitor/donkco - surplus = 8 - -/datum/uplink_item/explosives/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/explosives/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so. \ - The bomb core can be pried out and manually detonated with other explosives." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/explosives/syndicate_bomb/emp - name = "Syndicate EMP Bomb" - desc = "A variation of the syndicate bomb designed to produce a large EMP effect." - item = /obj/item/sbeacondrop/emp - cost = 7 - -/datum/uplink_item/explosives/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/tearstache - name = "Tearstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -//Support and Mechs -/datum/uplink_item/support - category = "Support and Exosuits" - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/support/reinforcement - name = "Reinforcements" - desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ - to arm them as well." - item = /obj/item/antag_spawner/nuke_ops - cost = 25 - refundable = TRUE - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/support/reinforcement/assault_borg - name = "Syndicate Assault Cyborg" - desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ - Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault - refundable = TRUE - cost = 65 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/medical_borg - name = "Syndicate Medical Cyborg" - desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ - It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ - Thanks to its organ storage bag, it can perform surgery as well as any humanoid." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/saboteur_borg - name = "Syndicate Saboteur Cyborg" - desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ - Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ - Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/gygax - name = "Dark Gygax Exosuit" - desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ - for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." - item = /obj/mecha/combat/gygax/dark/loaded - cost = 80 - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/mecha/combat/honker/dark/loaded - cost = 80 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ - and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/mecha/combat/marauder/mauler/loaded - cost = 140 - -// Stealth Items -/datum/uplink_item/stealthy_tools - category = "Stealth Gadgets" - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ - from other identification cards. The access is cumulative, so scanning one card does not erase the \ - access gained from another. In addition, they can be forged to display a new assignment and name. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/syndicate - cost = 2 - -/datum/uplink_item/stealthy_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/syndireverse - name = "Bluespace Projectile Weapon Disrupter" - desc = "Hidden in an ordinary-looking playing card, this device will teleport an opponent's gun to your hand when they fire at you. Just make sure to hold this in your hand!" - item = /obj/item/syndicateReverseCard - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/stealthy_tools/chameleon - name = "Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anyone on the station, and more! \ - Due to budget cuts, the shoes don't provide protection against slipping." - item = /obj/item/storage/box/syndie_kit/chameleon - cost = 2 - manufacturer = /datum/corporation/traitor/cybersun - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ - This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." - item = /obj/item/codespeak_manual/unlimited - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ - Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ - Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." - item = /obj/item/flashlight/emp - cost = 2 //yogs no one uses this lol - manufacturer = /datum/corporation/traitor/donkco - surplus = 30 - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 30 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/syndigaloshes - name = "No-Slip Chameleon Shoes" - desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ - They do not work on heavily lubricated surfaces." - item = /obj/item/clothing/shoes/chameleon/noslip/syndicate - cost = 2 - manufacturer = /datum/corporation/traitor/waffleco - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 20 - -/datum/uplink_item/stealthy_tools/syndigaloshes/nuke - item = /obj/item/clothing/shoes/chameleon/noslip/syndicate - cost = 4 - exclude_modes = list() - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." - item = /obj/item/jammer - cost = 5 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/smugglersatchel - name = "Smuggler's Satchel" - desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." - item = /obj/item/storage/backpack/satchel/flat/with_tools - cost = 1 - surplus = 30 - -/datum/uplink_item/stealthy_tools/armorpolish - name = "Armor Polish" - desc = "This two use polish will strengthen clothing to be as strong as a standard-issue armor vest. \ - Reinforced with nanite technology, you are able to stay looking good while bashing heads in. \ - Beware, you can only polish suits and headgear!" - item = /obj/item/armorpolish - cost = 6 - - - -//Space Suits and Hardsuits -/datum/uplink_item/suits - category = "Space Suits" - surplus = 40 - -/datum/uplink_item/suits/space_suit - name = "Syndicate Space Suit" - desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ - sightings, however." - item = /obj/item/storage/box/syndie_kit/space - cost = 4 - -/datum/uplink_item/suits/hardsuit - name = "Syndicate Hardsuit" - desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ - that runs off standard atmospheric tanks. Toggling the suit in and out of \ - combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ - Additionally the suit is collapsible, making it small enough to fit within a backpack. \ - Nanotrasen crew who spot these suits are known to panic." - item = /obj/item/clothing/suit/space/hardsuit/syndi - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better - -/datum/uplink_item/suits/hardsuit/elite - name = "Elite Syndicate Hardsuit" - desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." - item = /obj/item/clothing/suit/space/hardsuit/syndi/elite - cost = 8 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -/datum/uplink_item/suits/hardsuit/shielded - name = "Shielded Syndicate Hardsuit" - desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ - The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." - item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi - cost = 30 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -// Devices and Tools -/datum/uplink_item/device_tools - category = "Misc. Gadgets" - -/datum/uplink_item/device_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ - This pack contains three as well as a crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 20 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use this to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ - Bugging cameras allows you to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 90 - -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/emag - name = "Cryptographic Sequencer" - desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ - in electronic devices, subverts intended functions, and easily breaks security mechanisms." - item = /obj/item/card/emag - cost = 6 - -/datum/uplink_item/device_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ - Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 1 - -/datum/uplink_item/device_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - restricted = TRUE - -/datum/uplink_item/device_tools/failsafe - name = "Failsafe Uplink Code" - desc = "When entered the uplink will self-destruct immediately." - item = /obj/effect/gibspawner/generic - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - restricted = TRUE - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!U) - return - U.failsafe_code = U.generate_code() - var/code = "[islist(U.failsafe_code) ? english_list(U.failsafe_code) : U.failsafe_code]" - to_chat(user, "The new failsafe code for this uplink is now : [code].") - if(user.mind) - user.mind.store_memory("Failsafe code for [U.parent] : [code]") - return U.parent //For log icon - -/datum/uplink_item/device_tools/toolbox - name = "Full Syndicate Toolbox" - desc = "A suspicious black and red syndicate toolbox. It comes loaded with a full tool set including a \ - multitool and combat gloves that are resistant to shocks and heat. It is very compact and will \ - fit in any standard Nanotrasen backpack." - item = /obj/item/storage/toolbox/syndicate - cost = 1 - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/aiModule/syndicate - cost = 4 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/hypnotic_flash - name = "Hypnotic Flash" - desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - item = /obj/item/assembly/flash/hypnotic - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire. Don't cross the streams!" - item = /obj/item/gun/medbeam - cost = 8 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/medgun_uber - name = "Augmented Medbeam Gun" - desc = "An augmented version of the classic Medbeam Gun that we picked up off the corpse of a german scientist. \ - It has an invulnerability mode that can be activated for a few seconds after healing for a long while. \ - This one comes uncharged, so be sure to give it a whirl before getting into combat. Goes well with a M-546 Osprey." - item = /obj/item/gun/medbeam/uber - cost = 25 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ - in containment. Because of its size, it cannot be carried. Ordering this \ - sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs - -/datum/uplink_item/device_tools/supermatter_delaminator - name = "Antinoblium Shard" - desc = "A special variant of supermatter crystal reverse engineered by syndicate scientists using samples retrieved by agents. \ - Attaching this to an active supermatter crystal will destabilize the internal crystal well, causing an energy cascade. \ - Ensures a storm of EMP waves that blacks out the entire station and eventually the full delamination of the crystal. \ - Comes with a secure radiation shielded containment box, special tweezers and usage instructions." - item = /obj/item/storage/box/syndie_kit/supermatter_delaminator - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - item = /obj/item/powersink - cost = 8 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." - item = /obj/item/healthanalyzer/rad_laser - cost = 4 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/device_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/hypospray/medipen/stimpack/large // Yogs -- Stimpack change - cost = 5 - surplus = 90 - -/datum/uplink_item/device_tools/medkit - name = "Syndicate Combat Medic Kit" - desc = "Included is a combat stimulant injector \ - for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ - and other supplies helpful for a field medic." - item = /obj/item/storage/firstaid/tactical - cost = 4 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 50 - -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery - cost = 3 - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/syndietome - name = "Syndicate Tome" - desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ - the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ - of the originals, these inferior copies are still quite useful, being able to provide \ - both weal and woe on the battlefield, even if they do occasionally bite off a finger." - item = /obj/item/storage/book/bible/syndicate - cost = 5 - -/datum/uplink_item/device_tools/thermal - name = "Thermal Imaging Glasses" - desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ - They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ - emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ - and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." - item = /obj/item/clothing/glasses/thermal/syndi - cost = 4 - -/datum/uplink_item/device_tools/potion - name = "Syndicate Sentience Potion" - item = /obj/item/slimepotion/slime/sentience/nuclear - desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ - Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." - cost = 4 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/suspiciousphone - name = "Protocol CRAB-17 Phone" - desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ - The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." - item = /obj/item/suspiciousphone - cost = 7 - manufacturer = /datum/corporation/traitor/waffleco - limited_stock = 1 - -// Implants -/datum/uplink_item/implants - category = "Implants" - surplus = 50 - -/datum/uplink_item/implants/adrenal - name = "Adrenal Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ - cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." - item = /obj/item/storage/box/syndie_kit/imp_adrenal - cost = 8 - player_minimum = 25 - -/datum/uplink_item/implants/antistun - name = "CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/autosurgeon/anti_stun - cost = 12 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/implants/microbomb - name = "Microbomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - The more implants inside of you, the higher the explosive power. \ - This will permanently destroy your body, however." - item = /obj/item/storage/box/syndie_kit/imp_microbomb - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/macrobomb - name = "Macrobomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - Upon death, releases a massive explosion that will wipe out everything nearby." - item = /obj/item/storage/box/syndie_kit/imp_macrobomb - cost = 20 - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/implants/radio - name = "Internal Syndicate Radio Implant" - desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ - Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." - item = /obj/item/storage/box/syndie_kit/imp_radio - cost = 4 - manufacturer = /datum/corporation/traitor/donkco - restricted = TRUE - -/datum/uplink_item/implants/reviver - name = "Reviver Implant" - desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/autosurgeon/reviver - cost = 8 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/stealthimplant - name = "Stealth Implant" - desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ - On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." - item = /obj/item/storage/box/syndie_kit/imp_stealth - manufacturer = /datum/corporation/traitor/donkco - cost = 8 - -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two regular-sized items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 - -/datum/uplink_item/implants/thermals - name = "Thermal Eyes" - desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/autosurgeon/thermal_eyes - cost = 8 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ - Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit/imp_uplink - cost = 4 - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - -/datum/uplink_item/implants/mindshield - name = "Syndicate Brainwash Denial Implant" - desc = "An implant injected into the body, to deny brainwashing attempts." - item = /obj/item/storage/box/syndie_kit/imp_mindshield - limited_stock = 3 - player_minimum = 30 - illegal_tech = FALSE // This is a cheap knockoff of NT tech. - surplus = 5 - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/implants/xray - name = "X-ray Vision Implant" - desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/autosurgeon/xray_eyes - cost = 10 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -//Race-specific items -/datum/uplink_item/race_restricted - category = "Species-Restricted" - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/race_restricted/syndilamp - name = "Extra-Bright Lantern" - desc = "We heard that moths such as yourself really like lamps, so we decided to grant you early access to a prototype \ - Syndicate brand \"Extra-Bright Lantern™\". Enjoy." - cost = 2 - item = /obj/item/flashlight/lantern/syndicate - restricted_species = list("moth") - -/datum/uplink_item/race_restricted/syndigenetics - name = "Fire Breath implanter" - desc = "Recently Syndicate scientist have found the formula of returning lizards genetics back in time and giving them the ability to breath fire." - cost = 6 - item = /obj/item/dnainjector/firebreath - restricted_species = list("lizard") - -/datum/uplink_item/race_restricted/flyingfang - name = "Flying Fang Tablet" - desc = "This tablet contains a set of old lizard fighting techniques, increasing your melee combat effectiveness but preventing you from using armor, most common stun weapons, or guns." - cost = 14 - item = /obj/item/book/granter/martial/flyingfang - restricted_species = list("lizard") - -/datum/uplink_item/race_restricted/angelcoolboy - name = "Angel Potion" - desc = "We mixed a bird and a human and we somehow made a potion that turns you into a holy creature." - cost = 5 - item = /obj/item/reagent_containers/glass/bottle/potion/flight/syndicate - restricted_species = list("human") - -/datum/uplink_item/race_restricted/killertomatos - name = "Killer Tomatoes" - desc = "The Syndicates local gardeners brewed these up for our plant comrades (does not work against fellow plants)." - cost = 3 - manufacturer = /datum/corporation/traitor/donkco - item = /obj/item/seeds/tomato/killer - restricted_species = list("pod") - -/datum/uplink_item/race_restricted/radiationbomb - name = "Radiation grenade" - desc = "A radiation bomb guaranteed to irradiate the fuck out of non-gaseous lifeforms." - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/grenade/chem_grenade/radiation - restricted_species = list("plasmaman") - -// Role-specific items -/datum/uplink_item/role_restricted - category = "Role-Restricted" - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/role_restricted/ancient_jumpsuit - name = "Ancient Jumpsuit" - desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." - item = /obj/item/clothing/under/color/grey/glorf - cost = 20 - restricted_roles = list("Assistant") - surplus = 0 - -/datum/uplink_item/role_restricted/oldtoolboxclean - name = "Ancient Toolbox" - desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." - item = /obj/item/storage/toolbox/mechanical/old/clean - cost = 2 - restricted_roles = list("Assistant") - surplus = 0 - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list("Clown") - surplus = 0 //No fun unless you're the clown! - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/mecha/combat/honker/dark/loaded - cost = 35 - restricted_roles = list("Clown") - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - -/datum/uplink_item/role_restricted/arm_medical_gun - name = "Arm Mounted Medical Beamgun" - desc = "An arm mounted medical beamgun to heal your best buds (disclaimer: does not come with friends)." - item = /obj/item/autosurgeon/medibeam - restricted_roles = list("Medical Doctor", "Chief Medical Officer") - cost = 8 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/role_restricted/cat_grenade - name = "Feral Cat Delivery Grenade" - desc = "The feral cat delivery grenade contains 5 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight." - item = /obj/item/grenade/spawnergrenade/feral_cats - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Psychiatrist")///why? Becuase its funny that a person in charge of your mental wellbeing has a cat granade..<---(he cant spell) - -/datum/uplink_item/role_restricted/blastcannon - name = "Blast Cannon" - desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ - withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ - blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." - item = /obj/item/gun/blastcannon - cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Research Director", "Scientist") - -/datum/uplink_item/role_restricted/gorillacubes - name = "Box of Gorilla Cubes" - desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ - Caution: Product may rehydrate when exposed to water." - item = /obj/item/storage/box/gorillacubes - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist") - cost = 5 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/role_restricted/clown_bomb - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 7 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/spider_injector - name = "Australicus Slime Mutator" - desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ - some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ - to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ - also give them a bit of sentience though." - item = /obj/item/reagent_containers/syringe/spider_extract - cost = 25 //yogs - increase price to reduce grief potential - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Research Director", "Scientist", "Roboticist") - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs // >Increase price to reduce grief > limit it to hijack only :think: - -/datum/uplink_item/role_restricted/clowncar - name = "Clown Car" - desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ - Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ - You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ - someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ - are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ - Premium features can be unlocked with a cryptographic sequencer!" - item = /obj/vehicle/sealed/car/clowncar - cost = 20 - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/concealed_weapon_bay - name = "Concealed Weapon Bay" - desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ - It also hides the equipped weapon from plain sight. \ - Only one can fit on a mecha." - item = /obj/item/mecha_parts/concealed_weapon_bay - cost = 3 - manufacturer = /datum/corporation/traitor/donkco - restricted_roles = list("Roboticist", "Research Director") - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ - Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - restricted_roles = list("Chaplain","Curator") - limited_stock = 1 //please don't spam deadchat - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list("Chaplain") - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ - The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - restricted_roles = list("Cook", "Botanist", "Clown", "Mime") - -/datum/uplink_item/role_restricted/ez_clean_bundle - name = "EZ Clean Grenade Bundle" - desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ - The acid only affects carbon-based creatures." - item = /obj/item/storage/box/syndie_kit/ez_clean - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 20 - restricted_roles = list("Janitor") - -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ - Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list("Mime") - surplus = 0 - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ - Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - manufacturer = /datum/corporation/traitor/donkco // Unless you're donk co, then it's 8 - limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner") - -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis - cost = 15 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/modified_syringe_gun - name = "Modified Syringe Gun" - desc = "A syringe gun that fires DNA injectors instead of normal syringes." - item = /obj/item/gun/syringe/dna - cost = 14 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/chemical_gun - name = "Reagent Dartgun" - desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." - item = /obj/item/gun/chem - cost = 12 - restricted_roles = list("Chemist", "Chief Medical Officer", "Virologist") - -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/hierophant_antenna - name = "Hierophant's Antenna" - desc = "Amplifies the reception signals of the hierophant staff, allows the herald's power to reach the station!" - cost = 14 - manufacturer = /datum/corporation/traitor/cybersun - item = /obj/item/hierophant_antenna - restricted_roles = list("Shaft Miner") - -// Pointless -/datum/uplink_item/badass - category = "(Pointless) Badassery" - surplus = 0 - -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken - -/datum/uplink_item/badass/costumes - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/badass/costumes/centcom_official - name = "CentCom Official Costume" - desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ - Radio headset does not include encryption key. No gun included." - item = /obj/item/storage/box/syndie_kit/centcom_costume - -/datum/uplink_item/badass/costumes/clown - name = "Clown Costume" - desc = "Nothing is more terrifying than clowns with fully automatic weaponry." - item = /obj/item/storage/backpack/duffelbag/clown/syndie - -/datum/uplink_item/badass/crafting_weapons - name = "Makeshift Weapons" - desc = "A one use book that grants access to a number of secret crafting recipes once it has been read." - item = /obj/item/book/granter/crafting_recipe/weapons - cost = 4 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiefedora - name = "Syndicate Fedora" - desc = "This Syndicate Fedora of micro-woven adamantium silk is sure to prove your style!" - item = /obj/item/clothing/head/det_hat/evil - cost = 3 - -/datum/uplink_item/badass/balloon - name = "Syndicate Balloon" - desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ - Can blow the deepest of covers." - item = /obj/item/toy/syndicateballoon - cost = 20 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - restricted = TRUE - -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 40 - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - illegal_tech = FALSE - -/datum/uplink_item/badass/antagcape - name = "Red Syndicate Cape" - desc = "A cape to show off your small-time thuggery." - item = /obj/item/clothing/neck/skillcape/antag - cost = 10 - illegal_tech = FALSE - -/datum/uplink_item/badass/antagcapetrimmed - name = "Bloody Shiny Syndicate Cape" - desc = "A cape to show off your grand villainous deeds." - item = /obj/item/clothing/neck/skillcape/trimmed/antag - cost = 20 - illegal_tech = FALSE +GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) + +/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) + var/list/filtered_uplink_items = list() + var/list/sale_items = list() + + for(var/path in GLOB.uplink_items) + var/datum/uplink_item/I = new path + if(!I.item) + continue + if(I.include_modes.len) + if(!gamemode && SSticker.mode && !(SSticker.mode.type in I.include_modes)) + continue + if(gamemode && !(gamemode in I.include_modes)) + continue + if(I.exclude_modes.len) + if(!gamemode && SSticker.mode && (SSticker.mode.type in I.exclude_modes)) + continue + if(gamemode && (gamemode in I.exclude_modes)) + continue + if(I.player_minimum && I.player_minimum > GLOB.joined_player_list.len) + continue + if (I.restricted && !allow_restricted) + continue + + if(!filtered_uplink_items[I.category]) + filtered_uplink_items[I.category] = list() + filtered_uplink_items[I.category][I.name] = I + if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) + sale_items += I + if(allow_sales) + var/datum/team/nuclear/nuclear_team + if (gamemode == /datum/game_mode/nuclear) // uplink code kind of needs a redesign + nuclear_team = locate() in GLOB.antagonist_teams // the team discounts could be a in a GLOB with this design but it would make sense for them to be team specific... + if (!nuclear_team) + create_uplink_sales(3, "Discounted Gear", 1, sale_items, filtered_uplink_items) + else + if (!nuclear_team.team_discounts) + // create 5 unlimited stock discounts + create_uplink_sales(5, "Discounted Team Gear", -1, sale_items, filtered_uplink_items) + // Create 10 limited stock discounts + create_uplink_sales(10, "Limited Stock Team Gear", 1, sale_items, filtered_uplink_items) + nuclear_team.team_discounts = list("Discounted Team Gear" = filtered_uplink_items["Discounted Team Gear"], "Limited Stock Team Gear" = filtered_uplink_items["Limited Stock Team Gear"]) + else + for(var/cat in nuclear_team.team_discounts) + for(var/item in nuclear_team.team_discounts[cat]) + var/datum/uplink_item/D = nuclear_team.team_discounts[cat][item] + var/datum/uplink_item/O = filtered_uplink_items[initial(D.category)][initial(D.name)] + O.refundable = FALSE + + filtered_uplink_items["Discounted Team Gear"] = nuclear_team.team_discounts["Discounted Team Gear"] + filtered_uplink_items["Limited Stock Team Gear"] = nuclear_team.team_discounts["Limited Stock Team Gear"] + + + return filtered_uplink_items + +/proc/create_uplink_sales(num, category_name, limited_stock, sale_items, uplink_items) + if (num <= 0) + return + + if(!uplink_items[category_name]) + uplink_items[category_name] = list() + + for (var/i in 1 to num) + var/datum/uplink_item/I = pick_n_take(sale_items) + var/datum/uplink_item/A = new I.type + var/discount = A.get_discount() + var/list/disclaimer = list("Void where prohibited.", "Not recommended for children.", "Contains small parts.", "Check local laws for legality in region.", "Do not taunt.", "Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform.", "Keep away from fire or flames.", "Product is provided \"as is\" without any implied or expressed warranties.", "As seen on TV.", "For recreational use only.", "Use only as directed.", "16% sales tax will be charged for orders originating within Space Nebraska.") + A.limited_stock = limited_stock + if(A.cost >= 20) //Tough love for nuke ops + discount *= 0.5 + A.category = category_name + A.cost = max(round(A.cost * discount),1) + A.name += " ([round(((initial(A.cost)-A.cost)/initial(A.cost))*100)]% off!)" + A.desc += " Normally costs [initial(A.cost)] TC. All sales final. [pick(disclaimer)]" + A.item = I.item + if (A.refundable) + var/obj/item/antag_spawner/S = new A.item() + S.discountPrice = A.cost + A.item = S + uplink_items[category_name][A.name] = A + + +/** + * Uplink Items + * + * Items that can be spawned from an uplink. Can be limited by gamemode. +**/ +/datum/uplink_item + var/name = "item name" + var/category = "item category" + var/desc = "item description" + var/item = null // Path to the item to spawn. + var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). + var/cost = 0 + var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. + var/refundable = FALSE + var/surplus = 100 // Chance of being included in the surplus crate. + var/cant_discount = FALSE + var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited + var/list/include_modes = list() // Game modes to allow this item in. + var/list/exclude_modes = list() // Game modes to disallow this item from. + var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. + var/player_minimum //The minimum crew size needed for this item to be added to uplinks. + var/purchase_log_vis = TRUE // Visible in the purchase log? + var/restricted = FALSE // Adds restrictions for VR/Events + var/list/restricted_species //Limits items to a specific species. Hopefully. + var/illegal_tech = TRUE // Can this item be deconstructed to unlock certain techweb research nodes? + /// the manufacturer of the item. Gives up to a 20% discount if you're from that corporation + var/datum/corporation/manufacturer + +/datum/uplink_item/proc/get_discount() + return pick(4;0.75,2;0.5,1;0.25) + +/datum/uplink_item/proc/purchase(mob/user, datum/component/uplink/U) + var/atom/A = spawn_item(item, user, U) + if(purchase_log_vis && U.purchase_log) + U.purchase_log.LogPurchase(A, src, cost) + +/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!spawn_path) + return + var/atom/A + if(ispath(spawn_path)) + A = new spawn_path(get_turf(user)) + else + A = spawn_path + if(ishuman(user) && istype(A, /obj/item)) + var/mob/living/carbon/human/H = user + if(H.put_in_hands(A)) + to_chat(H, "[A] materializes into your hands!") + return A + to_chat(user, "[A] materializes onto the floor.") + return A + +//Discounts (dynamically filled above) +/datum/uplink_item/discounts + category = "Discounts" + +//All bundles and telecrystals +/datum/uplink_item/bundles_TC + category = "Bundles" + surplus = 0 + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/chemical + name = "Bioterror bundle" + desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ + box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." + item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + cost = 30 // normally 42 + manufacturer = /datum/corporation/traitor/donkco + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bulldog + name = "Bulldog bundle" + desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ + Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." + item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + cost = 13 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/c20r + name = "C-20r bundle" + desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/cyber_implants + name = "Cybernetic Implants Bundle" + desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." + item = /obj/item/storage/box/cyber_implants + cost = 40 + manufacturer = /datum/corporation/traitor/cybersun + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/medical + name = "Medical bundle" + desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ + a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." + item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + cost = 15 // normally 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/sniper + name = "Sniper bundle" + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ + two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ + We'll throw in a free red tie if you order NOW." + item = /obj/item/storage/briefcase/sniperbundle + cost = 20 // normally 26 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/firestarter + name = "Spetsnaz Pyro bundle" + desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ + Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ + Order NOW and comrade Boris will throw in an extra tracksuit." + item = /obj/item/storage/backpack/duffelbag/syndie/firestarter + cost = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/contract_kit + name = "Contract Kit" + desc = "The Syndicate have offered you the chance to become a contractor, take on kidnapping contracts for TC and cash payouts. Upon purchase, \ + you'll be granted your own contract uplink embedded within the supplied tablet computer. Additionally, you'll be granted \ + standard contractor gear to help with your mission - comes supplied with the tablet, specialised space suit, chameleon jumpsuit and mask, \ + agent card, specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." + item = /obj/item/storage/box/syndicate/contract_kit + cost = 20 + player_minimum = 20 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/bundles_TC/bundle_A + name = "Syndi-kit Tactical" + desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ + These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ + you will receive. May contain discontinued and/or exotic items." + item = /obj/item/storage/box/syndicate/bundle_A + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bundle_B + name = "Syndi-kit Special" + desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ + In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." + item = /obj/item/storage/box/syndicate/bundle_B + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/surplus + name = "Syndicate Surplus Crate" + desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 50 TC." + item = /obj/structure/closet/crate + cost = 20 + player_minimum = 25 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + var/starting_crate_value = 50 + +/datum/uplink_item/bundles_TC/surplus/super + name = "Super Surplus Crate" + desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 125 TC." + cost = 40 + player_minimum = 40 + starting_crate_value = 125 + +/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) + + var/crate_value = starting_crate_value + var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) + if(U.purchase_log) + U.purchase_log.LogPurchase(C, src, cost) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + var/obj/goods = new I.item(C) + if(U.purchase_log) + U.purchase_log.LogPurchase(goods, I, 0) + return C + +/datum/uplink_item/bundles_TC/random + name = "Random Item" + desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech + cost = 0 + +/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = U.uplink_items + var/list/possible_items = list() + for(var/category in uplink_items) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(src == I || !I.item) + continue + if(U.telecrystals < I.cost) + continue + if(I.limited_stock == 0) + continue + possible_items += I + + if(possible_items.len) + var/datum/uplink_item/I = pick(possible_items) + SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) + U.MakePurchase(user, I) + +/datum/uplink_item/bundles_TC/telecrystal + name = "1 Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + // Don't add telecrystals to the purchase_log since + // it's just used to buy more items (including itself!) + purchase_log_vis = FALSE + +/datum/uplink_item/bundles_TC/telecrystal/five + name = "5 Raw Telecrystals" + desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/five + cost = 5 + +/datum/uplink_item/bundles_TC/telecrystal/twenty + name = "20 Raw Telecrystals" + desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/twenty + cost = 20 + +// Dangerous Items +/datum/uplink_item/dangerous + category = "Conspicuous Weapons" + +/datum/uplink_item/dangerous/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back!" + item = /obj/item/gun/ballistic/rocketlauncher + cost = 8 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/pneumatic_cannon/pie/selfcharge + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/transforming/energy/sword/bananium + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + +/datum/uplink_item/dangerous/shotgun + name = "Bulldog Shotgun" + desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ + quarter anti-personnel engagements." + item = /obj/item/gun/ballistic/shotgun/bulldog + cost = 8 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/smg + name = "C-20r Submachine Gun" + desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ + 24-round magazine and is compatible with suppressors." + item = /obj/item/gun/ballistic/automatic/c20r + cost = 10 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/doublesword + name = "Double-Bladed Energy Sword" + desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ + all energy projectiles, but requires two hands to wield." + item = /obj/item/twohanded/dualsaber + player_minimum = 25 + cost = 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/doublesword/get_discount() + return pick(4;0.8,2;0.65,1;0.5) + +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bostaff + name = "Bo Staff" + desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm." + item = /obj/item/twohanded/bostaff + cost = 8 + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/rapid + name = "Gloves of the North Star" + desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." + item = /obj/item/clothing/gloves/rapid + cost = 8 + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." + item = /obj/item/guardiancreator/tech + cost = 15 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 0 + //exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //yogs: removes restrictions on liabilit- I mean punchghosts + player_minimum = 25 + restricted = TRUE + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/minigun + name = "M-546 Osprey" + desc = "A fully-loaded minigun which packs a big punch. \ + This deadly giant weapon has a massive 500-round magazine of devastating 5.46mm caseless ammunition.\ + Slaughter your enemies through sheer force. We made this gun so advanced that it fires the whole bullet.\ + Thats 60% more bullet per bullet and no more useless casings!" + item = /obj/item/minigunbackpack + cost = 36 + surplus = 0 + cant_discount = TRUE + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a toggleable 40mm underbarrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/powerfist + name = "Power Fist" + desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + item = /obj/item/melee/powerfist + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/pistol + name = "Stechkin Pistol" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + item = /obj/item/gun/ballistic/automatic/pistol + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bolt_action + name = "Surplus Rifle" + desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." + item = /obj/item/gun/ballistic/rifle/boltaction + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver" + desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." + item = /obj/item/gun/ballistic/revolver + cost = 13 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/foamsmg + name = "Toy Submachine Gun" + desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." + item = /obj/item/gun/ballistic/automatic/c20r/toy + cost = 5 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foammachinegun + name = "Toy Machine Gun" + desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ + riot grade darts, that can briefly incapacitate someone in just one volley." + item = /obj/item/gun/ballistic/automatic/l6_saw/toy + cost = 10 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foampistol + name = "Toy Pistol with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/toy/pistol/riot + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 10 + +// Stealthy Weapons +/datum/uplink_item/stealthy_weapons + category = "Stealthy Weapons" + +/datum/uplink_item/stealthy_weapons/combatglovesplus + name = "Combat Gloves Plus" + desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ + to learn the abilities of krav maga to the wearer." + item = /obj/item/clothing/gloves/krav_maga/combatglovesplus + cost = 5 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + cost = 13 + surplus = 0 + +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Martial Arts Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ + deflecting all ranged weapon fire when throwmode is enabled, but you also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + cost = 14 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. \ + Small enough to fit into a pocket or slip into a bag unnoticed. \ + It will synthesize and fire bolts tipped with a debilitating \ + toxin that will damage and disorient targets, causing them to \ + slur as if inebriated. It can produce an infinite number \ + of bolts, but takes time to automatically recharge after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + cost = 11 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/origami_kit + name = "Boxed Origami Kit" + desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ + perfectly aerodynamic (and potentially lethal) paper airplanes." + item = /obj/item/storage/box/syndie_kit/origami_bundle + cost = 14 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ + On death, these nodules take control of the dead body, causing limited revivification, \ + along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + cant_discount = TRUE + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Suppressor" + desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." + item = /obj/item/suppressor + cost = 3 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +// Ammunition +/datum/uplink_item/ammo + category = "Ammunition" + surplus = 40 + +/datum/uplink_item/ammo/pistol + name = "10mm Handgun Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." + item = /obj/item/ammo_box/magazine/m10mm + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolap + name = "10mm Armour Piercing Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/m10mm/ap + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolhp + name = "10mm Hollow Point Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/m10mm/hp + cost = 3 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/shotgun + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + +/datum/uplink_item/ammo/shotgun/buck + name = "12g Buckshot Drum" + desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." + item = /obj/item/ammo_box/magazine/m12g + +/datum/uplink_item/ammo/shotgun/dragon + name = "12g Dragon's Breath Drum" + desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ + 'I'm a fire starter, twisted fire starter!'" + item = /obj/item/ammo_box/magazine/m12g/dragon + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/meteor + name = "12g Meteorslug Shells" + desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ + Great for blasting airlocks off their frames and knocking down enemies." + item = /obj/item/ammo_box/magazine/m12g/meteor + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." + cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + item = /obj/item/ammo_box/a357 + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + illegal_tech = FALSE + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg/bag + name = ".45 Ammo Duffel Bag" + desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg + cost = 20 //instead of 27 TC + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + +/datum/uplink_item/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun/basic + name = "7.12x82mm Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ + By the time you need to use this, you'll already be standing on a pile of corpses." + item = /obj/item/ammo_box/magazine/mm712x82 + +/datum/uplink_item/ammo/machinegun/ap + name = "7.12x82mm (Armor Penetrating) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ + to puncture even the most durable armor." + item = /obj/item/ammo_box/magazine/mm712x82/ap + cost = 9 + +/datum/uplink_item/ammo/machinegun/hollow + name = "7.12x82mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm712x82/hollow + +/datum/uplink_item/ammo/machinegun/incen + name = "7.12x82mm (Incendiary) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ + mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." + item = /obj/item/ammo_box/magazine/mm712x82/incen + +/datum/uplink_item/ammo/rocket + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/rocket/basic + name = "84mm HE Rocket" + desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" + item = /obj/item/ammo_casing/caseless/rocket + cost = 4 + +/datum/uplink_item/ammo/rocket/hedp + name = "84mm HEDP Rocket" + desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ + Strike fear into the hearts of your enemies." + item = /obj/item/ammo_casing/caseless/rocket/hedp + cost = 6 + +/datum/uplink_item/ammo/pistolaps + name = "9mm Handgun Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." + item = /obj/item/ammo_box/magazine/pistolm9mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/toydarts + name = "Box of Riot Darts" + desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" + item = /obj/item/ammo_box/foambox/riot + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + illegal_tech = FALSE + +/datum/uplink_item/ammo/bioterror + name = "Box of Bioterror Syringes" + desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ + and broca systems, making it impossible for them to move or speak for some time." + item = /obj/item/storage/box/syndie_kit/bioterror + cost = 6 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/bolt_action + name = "Surplus Rifle Clip" + desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." + item = /obj/item/ammo_box/a762 + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/dark_gygax/bag + name = "Dark Gygax Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the incendiary carbine and flash bang launcher that are equipped on a standard Dark Gygax exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/mauler/bag + name = "Mauler Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile launcher that are equipped on a standard Mauler exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler + cost = 6 + include_modes = list(/datum/game_mode/nuclear) + +//Grenades and Explosives +/datum/uplink_item/explosives + category = "Explosives" + +/datum/uplink_item/explosives/bioterrorfoam + name = "Bioterror Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! Discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 6 + manufacturer = /datum/corporation/bolsynpowell + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + cost = 8 //20% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ + X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ + For when you want a controlled explosion that leaves a wider, deeper, hole." + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." + item = /obj/item/cartridge/virus/syndicate + cost = 6 + manufacturer = /datum/corporation/traitor/cybersun + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ + security's energy weapons and silicon lifeforms when you're in a tight spot." + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/explosives/ducky + name = "Exploding Rubber Duck" + desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on." + item = /obj/item/deployablemine/traitor + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 12 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/belt/grenade/full + include_modes = list(/datum/game_mode/nuclear) + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/bigducky + name = "High Yield Exploding Rubber Duck" + desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on. \ + This variant has been fitted with high yield X4 charges for a larger explosion." + item = /obj/item/deployablemine/traitor/bigboom + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + item = /obj/item/pizzabox/bomb + cost = 6 + manufacturer = /datum/corporation/traitor/donkco + surplus = 8 + +/datum/uplink_item/explosives/soap_clusterbang + name = "Slipocalypse Clusterbang" + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so. \ + The bomb core can be pried out and manually detonated with other explosives." + item = /obj/item/sbeacondrop/bomb + cost = 11 + +/datum/uplink_item/explosives/syndicate_bomb/emp + name = "Syndicate EMP Bomb" + desc = "A variation of the syndicate bomb designed to produce a large EMP effect." + item = /obj/item/sbeacondrop/emp + cost = 7 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + item = /obj/item/grenade/syndieminibomb + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/tearstache + name = "Tearstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +//Support and Mechs +/datum/uplink_item/support + category = "Support and Exosuits" + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/support/reinforcement + name = "Reinforcements" + desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ + to arm them as well." + item = /obj/item/antag_spawner/nuke_ops + cost = 25 + refundable = TRUE + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/support/reinforcement/assault_borg + name = "Syndicate Assault Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ + Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault + refundable = TRUE + cost = 65 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/medical_borg + name = "Syndicate Medical Cyborg" + desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ + It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ + Thanks to its organ storage bag, it can perform surgery as well as any humanoid." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/saboteur_borg + name = "Syndicate Saboteur Cyborg" + desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ + Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ + Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/gygax + name = "Dark Gygax Exosuit" + desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ + for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." + item = /obj/mecha/combat/gygax/dark/loaded + cost = 80 + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/mecha/combat/honker/dark/loaded + cost = 80 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ + and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." + item = /obj/mecha/combat/marauder/mauler/loaded + cost = 140 + +// Stealth Items +/datum/uplink_item/stealthy_tools + category = "Stealth Gadgets" + +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ + from other identification cards. The access is cumulative, so scanning one card does not erase the \ + access gained from another. In addition, they can be forged to display a new assignment and name. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/syndicate + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/syndireverse + name = "Bluespace Projectile Weapon Disrupter" + desc = "Hidden in an ordinary-looking playing card, this device will teleport an opponent's gun to your hand when they fire at you. Just make sure to hold this in your hand!" + item = /obj/item/syndicateReverseCard + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/stealthy_tools/chameleon + name = "Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anyone on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping." + item = /obj/item/storage/box/syndie_kit/chameleon + cost = 2 + manufacturer = /datum/corporation/traitor/cybersun + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ + This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + item = /obj/item/codespeak_manual/unlimited + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ + Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ + Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." + item = /obj/item/flashlight/emp + cost = 2 //yogs no one uses this lol + manufacturer = /datum/corporation/traitor/donkco + surplus = 30 + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 30 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/syndigaloshes + name = "No-Slip Chameleon Shoes" + desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ + They do not work on heavily lubricated surfaces." + item = /obj/item/clothing/shoes/chameleon/noslip/syndicate + cost = 2 + manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 20 + +/datum/uplink_item/stealthy_tools/syndigaloshes/nuke + item = /obj/item/clothing/shoes/chameleon/noslip/syndicate + cost = 4 + exclude_modes = list() + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." + item = /obj/item/jammer + cost = 5 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/smugglersatchel + name = "Smuggler's Satchel" + desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ + your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." + item = /obj/item/storage/backpack/satchel/flat/with_tools + cost = 1 + surplus = 30 + +/datum/uplink_item/stealthy_tools/armorpolish + name = "Armor Polish" + desc = "This two use polish will strengthen clothing to be as strong as a standard-issue armor vest. \ + Reinforced with nanite technology, you are able to stay looking good while bashing heads in. \ + Beware, you can only polish suits and headgear!" + item = /obj/item/armorpolish + cost = 6 + + + +//Space Suits and Hardsuits +/datum/uplink_item/suits + category = "Space Suits" + surplus = 40 + +/datum/uplink_item/suits/space_suit + name = "Syndicate Space Suit" + desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ + fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ + sightings, however." + item = /obj/item/storage/box/syndie_kit/space + cost = 4 + +/datum/uplink_item/suits/hardsuit + name = "Syndicate Hardsuit" + desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ + that runs off standard atmospheric tanks. Toggling the suit in and out of \ + combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ + Additionally the suit is collapsible, making it small enough to fit within a backpack. \ + Nanotrasen crew who spot these suits are known to panic." + item = /obj/item/clothing/suit/space/hardsuit/syndi + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better + +/datum/uplink_item/suits/hardsuit/elite + name = "Elite Syndicate Hardsuit" + desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ + provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." + item = /obj/item/clothing/suit/space/hardsuit/syndi/elite + cost = 8 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() + +/datum/uplink_item/suits/hardsuit/shielded + name = "Shielded Syndicate Hardsuit" + desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ + The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." + item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi + cost = 30 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() + +// Devices and Tools +/datum/uplink_item/device_tools + category = "Misc. Gadgets" + +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ + This pack contains three as well as a crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 20 + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use this to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ + Bugging cameras allows you to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/emag + name = "Cryptographic Sequencer" + desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ + in electronic devices, subverts intended functions, and easily breaks security mechanisms." + item = /obj/item/card/emag + cost = 6 + +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ + Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 1 + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + restricted = TRUE + +/datum/uplink_item/device_tools/failsafe + name = "Failsafe Uplink Code" + desc = "When entered the uplink will self-destruct immediately." + item = /obj/effect/gibspawner/generic + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + restricted = TRUE + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!U) + return + U.failsafe_code = U.generate_code() + var/code = "[islist(U.failsafe_code) ? english_list(U.failsafe_code) : U.failsafe_code]" + to_chat(user, "The new failsafe code for this uplink is now : [code].") + if(user.mind) + user.mind.store_memory("Failsafe code for [U.parent] : [code]") + return U.parent //For log icon + +/datum/uplink_item/device_tools/toolbox + name = "Full Syndicate Toolbox" + desc = "A suspicious black and red syndicate toolbox. It comes loaded with a full tool set including a \ + multitool and combat gloves that are resistant to shocks and heat. It is very compact and will \ + fit in any standard Nanotrasen backpack." + item = /obj/item/storage/toolbox/syndicate + cost = 1 + +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + item = /obj/item/aiModule/syndicate + cost = 4 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/hypnotic_flash + name = "Hypnotic Flash" + desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + item = /obj/item/assembly/flash/hypnotic + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 8 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/medgun_uber + name = "Augmented Medbeam Gun" + desc = "An augmented version of the classic Medbeam Gun that we picked up off the corpse of a german scientist. \ + It has an invulnerability mode that can be activated for a few seconds after healing for a long while. \ + This one comes uncharged, so be sure to give it a whirl before getting into combat. Goes well with a M-546 Osprey." + item = /obj/item/gun/medbeam/uber + cost = 25 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ + in containment. Because of its size, it cannot be carried. Ordering this \ + sends you a small beacon that will teleport the larger beacon to your location upon activation." + item = /obj/item/sbeacondrop + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + +/datum/uplink_item/device_tools/supermatter_delaminator + name = "Antinoblium Shard" + desc = "A special variant of supermatter crystal reverse engineered by syndicate scientists using samples retrieved by agents. \ + Attaching this to an active supermatter crystal will destabilize the internal crystal well, causing an energy cascade. \ + Ensures a storm of EMP waves that blacks out the entire station and eventually the full delamination of the crystal. \ + Comes with a secure radiation shielded containment box, special tweezers and usage instructions." + item = /obj/item/storage/box/syndie_kit/supermatter_delaminator + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." + item = /obj/item/powersink + cost = 8 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls the delay before the effect kicks in." + item = /obj/item/healthanalyzer/rad_laser + cost = 4 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + item = /obj/item/reagent_containers/hypospray/medipen/stimpack/large // Yogs -- Stimpack change + cost = 5 + surplus = 90 + +/datum/uplink_item/device_tools/medkit + name = "Syndicate Combat Medic Kit" + desc = "Included is a combat stimulant injector \ + for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ + and other supplies helpful for a field medic." + item = /obj/item/storage/firstaid/tactical + cost = 4 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 50 + +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/syndietome + name = "Syndicate Tome" + desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ + the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ + of the originals, these inferior copies are still quite useful, being able to provide \ + both weal and woe on the battlefield, even if they do occasionally bite off a finger." + item = /obj/item/storage/book/bible/syndicate + cost = 5 + +/datum/uplink_item/device_tools/thermal + name = "Thermal Imaging Glasses" + desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ + They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ + emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ + and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." + item = /obj/item/clothing/glasses/thermal/syndi + cost = 4 + +/datum/uplink_item/device_tools/potion + name = "Syndicate Sentience Potion" + item = /obj/item/slimepotion/slime/sentience/nuclear + desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ + Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." + cost = 4 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/suspiciousphone + name = "Protocol CRAB-17 Phone" + desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ + The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." + item = /obj/item/suspiciousphone + cost = 7 + manufacturer = /datum/corporation/traitor/waffleco + limited_stock = 1 + +// Implants +/datum/uplink_item/implants + category = "Implants" + surplus = 50 + +/datum/uplink_item/implants/adrenal + name = "Adrenal Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ + cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." + item = /obj/item/storage/box/syndie_kit/imp_adrenal + cost = 8 + player_minimum = 25 + +/datum/uplink_item/implants/antistun + name = "CNS Rebooter Implant" + desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." + item = /obj/item/autosurgeon/anti_stun + cost = 12 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/implants/microbomb + name = "Microbomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + The more implants inside of you, the higher the explosive power. \ + This will permanently destroy your body, however." + item = /obj/item/storage/box/syndie_kit/imp_microbomb + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/macrobomb + name = "Macrobomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + Upon death, releases a massive explosion that will wipe out everything nearby." + item = /obj/item/storage/box/syndie_kit/imp_macrobomb + cost = 20 + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/implants/radio + name = "Internal Syndicate Radio Implant" + desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ + Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." + item = /obj/item/storage/box/syndie_kit/imp_radio + cost = 4 + manufacturer = /datum/corporation/traitor/donkco + restricted = TRUE + +/datum/uplink_item/implants/reviver + name = "Reviver Implant" + desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." + item = /obj/item/autosurgeon/reviver + cost = 8 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/stealthimplant + name = "Stealth Implant" + desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ + On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." + item = /obj/item/storage/box/syndie_kit/imp_stealth + manufacturer = /datum/corporation/traitor/donkco + cost = 8 + +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two regular-sized items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 + +/datum/uplink_item/implants/thermals + name = "Thermal Eyes" + desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." + item = /obj/item/autosurgeon/thermal_eyes + cost = 8 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ + Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit/imp_uplink + cost = 4 + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + +/datum/uplink_item/implants/mindshield + name = "Syndicate Brainwash Denial Implant" + desc = "An implant injected into the body, to deny brainwashing attempts." + item = /obj/item/storage/box/syndie_kit/imp_mindshield + limited_stock = 3 + player_minimum = 30 + illegal_tech = FALSE // This is a cheap knockoff of NT tech. + surplus = 5 + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/implants/xray + name = "X-ray Vision Implant" + desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." + item = /obj/item/autosurgeon/xray_eyes + cost = 10 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +//Race-specific items +/datum/uplink_item/race_restricted + category = "Species-Restricted" + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/race_restricted/syndilamp + name = "Extra-Bright Lantern" + desc = "We heard that moths such as yourself really like lamps, so we decided to grant you early access to a prototype \ + Syndicate brand \"Extra-Bright Lantern™\". Enjoy." + cost = 2 + item = /obj/item/flashlight/lantern/syndicate + restricted_species = list("moth") + +/datum/uplink_item/race_restricted/syndigenetics + name = "Fire Breath implanter" + desc = "Recently Syndicate scientist have found the formula of returning lizards genetics back in time and giving them the ability to breath fire." + cost = 6 + item = /obj/item/dnainjector/firebreath + restricted_species = list("lizard") + +/datum/uplink_item/race_restricted/flyingfang + name = "Flying Fang Tablet" + desc = "This tablet contains a set of old lizard fighting techniques, increasing your melee combat effectiveness but preventing you from using armor, most common stun weapons, or guns." + cost = 14 + item = /obj/item/book/granter/martial/flyingfang + restricted_species = list("lizard") + +/datum/uplink_item/race_restricted/angelcoolboy + name = "Angel Potion" + desc = "We mixed a bird and a human and we somehow made a potion that turns you into a holy creature." + cost = 5 + item = /obj/item/reagent_containers/glass/bottle/potion/flight/syndicate + restricted_species = list("human") + +/datum/uplink_item/race_restricted/killertomatos + name = "Killer Tomatoes" + desc = "The Syndicates local gardeners brewed these up for our plant comrades (does not work against fellow plants)." + cost = 3 + manufacturer = /datum/corporation/traitor/donkco + item = /obj/item/seeds/tomato/killer + restricted_species = list("pod") + +/datum/uplink_item/race_restricted/radiationbomb + name = "Radiation grenade" + desc = "A radiation bomb guaranteed to irradiate the fuck out of non-gaseous lifeforms." + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/grenade/chem_grenade/radiation + restricted_species = list("plasmaman") + +// Role-specific items +/datum/uplink_item/role_restricted + category = "Role-Restricted" + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/role_restricted/ancient_jumpsuit + name = "Ancient Jumpsuit" + desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." + item = /obj/item/clothing/under/color/grey/glorf + cost = 20 + restricted_roles = list("Assistant") + surplus = 0 + +/datum/uplink_item/role_restricted/oldtoolboxclean + name = "Ancient Toolbox" + desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." + item = /obj/item/storage/toolbox/mechanical/old/clean + cost = 2 + restricted_roles = list("Assistant") + surplus = 0 + +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/pneumatic_cannon/pie/selfcharge + restricted_roles = list("Clown") + surplus = 0 //No fun unless you're the clown! + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/mecha/combat/honker/dark/loaded + cost = 35 + restricted_roles = list("Clown") + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + +/datum/uplink_item/role_restricted/arm_medical_gun + name = "Arm Mounted Medical Beamgun" + desc = "An arm mounted medical beamgun to heal your best buds (disclaimer: does not come with friends)." + item = /obj/item/autosurgeon/medibeam + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Mining Medic") + cost = 8 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/role_restricted/cat_grenade + name = "Feral Cat Delivery Grenade" + desc = "The feral cat delivery grenade contains 5 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight." + item = /obj/item/grenade/spawnergrenade/feral_cats + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Psychiatrist")///why? Becuase its funny that a person in charge of your mental wellbeing has a cat granade..<---(he cant spell) + +/datum/uplink_item/role_restricted/blastcannon + name = "Blast Cannon" + desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ + withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ + blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." + item = /obj/item/gun/blastcannon + cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Research Director", "Scientist") + +/datum/uplink_item/role_restricted/gorillacubes + name = "Box of Gorilla Cubes" + desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + item = /obj/item/storage/box/gorillacubes + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + item = /obj/item/disk/surgery/brainwashing + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist", "Mining Medic") + cost = 5 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/role_restricted/clown_bomb + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 7 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/spider_injector + name = "Australicus Slime Mutator" + desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ + some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ + to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ + also give them a bit of sentience though." + item = /obj/item/reagent_containers/syringe/spider_extract + cost = 25 //yogs - increase price to reduce grief potential + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Research Director", "Scientist", "Roboticist") + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs // >Increase price to reduce grief > limit it to hijack only :think: + +/datum/uplink_item/role_restricted/clowncar + name = "Clown Car" + desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ + Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ + You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ + someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ + are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ + Premium features can be unlocked with a cryptographic sequencer!" + item = /obj/vehicle/sealed/car/clowncar + cost = 20 + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/concealed_weapon_bay + name = "Concealed Weapon Bay" + desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ + It also hides the equipped weapon from plain sight. \ + Only one can fit on a mecha." + item = /obj/item/mecha_parts/concealed_weapon_bay + cost = 3 + manufacturer = /datum/corporation/traitor/donkco + restricted_roles = list("Roboticist", "Research Director") + +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ + Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + restricted_roles = list("Chaplain","Curator") + limited_stock = 1 //please don't spam deadchat + +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + item = /obj/item/his_grace + cost = 20 + restricted_roles = list("Chaplain") + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ + The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + item = /obj/item/hot_potato/syndicate + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + restricted_roles = list("Cook", "Botanist", "Clown", "Mime") + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ + The acid only affects carbon-based creatures." + item = /obj/item/storage/box/syndie_kit/ez_clean + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 20 + restricted_roles = list("Janitor") + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ + Obviously only works for Mimes." + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list("Mime") + surplus = 0 + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ + Occupies 35% mod capacity." + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + manufacturer = /datum/corporation/traitor/donkco // Unless you're donk co, then it's 8 + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner", "Mining Medic") + +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 15 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/modified_syringe_gun + name = "Modified Syringe Gun" + desc = "A syringe gun that fires DNA injectors instead of normal syringes." + item = /obj/item/gun/syringe/dna + cost = 14 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/chemical_gun + name = "Reagent Dartgun" + desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." + item = /obj/item/gun/chem + cost = 12 + restricted_roles = list("Chemist", "Chief Medical Officer", "Virologist") + +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + cost = 5 + item = /obj/item/reverse_bear_trap + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + cost = 14 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/storage/box/hug/reverse_revolver + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/hierophant_antenna + name = "Hierophant's Antenna" + desc = "Amplifies the reception signals of the hierophant staff, allows the herald's power to reach the station!" + cost = 14 + manufacturer = /datum/corporation/traitor/cybersun + item = /obj/item/hierophant_antenna + restricted_roles = list("Shaft Miner") + +// Pointless +/datum/uplink_item/badass + category = "(Pointless) Badassery" + surplus = 0 + +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Please note that this kit did NOT pass quality control." + item = /obj/item/storage/box/syndie_kit/chameleon/broken + +/datum/uplink_item/badass/costumes + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/badass/costumes/centcom_official + name = "CentCom Official Costume" + desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ + Radio headset does not include encryption key. No gun included." + item = /obj/item/storage/box/syndie_kit/centcom_costume + +/datum/uplink_item/badass/costumes/clown + name = "Clown Costume" + desc = "Nothing is more terrifying than clowns with fully automatic weaponry." + item = /obj/item/storage/backpack/duffelbag/clown/syndie + +/datum/uplink_item/badass/crafting_weapons + name = "Makeshift Weapons" + desc = "A one use book that grants access to a number of secret crafting recipes once it has been read." + item = /obj/item/book/granter/crafting_recipe/weapons + cost = 4 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiefedora + name = "Syndicate Fedora" + desc = "This Syndicate Fedora of micro-woven adamantium silk is sure to prove your style!" + item = /obj/item/clothing/head/det_hat/evil + cost = 3 + +/datum/uplink_item/badass/balloon + name = "Syndicate Balloon" + desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ + Can blow the deepest of covers." + item = /obj/item/toy/syndicateballoon + cost = 20 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 + restricted = TRUE + +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 40 + +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + illegal_tech = FALSE + +/datum/uplink_item/badass/antagcape + name = "Red Syndicate Cape" + desc = "A cape to show off your small-time thuggery." + item = /obj/item/clothing/neck/skillcape/antag + cost = 10 + illegal_tech = FALSE + +/datum/uplink_item/badass/antagcapetrimmed + name = "Bloody Shiny Syndicate Cape" + desc = "A cape to show off your grand villainous deeds." + item = /obj/item/clothing/neck/skillcape/trimmed/antag + cost = 20 + illegal_tech = FALSE From 39feb97873fcc31fd617e7fcf56be9818e643e18 Mon Sep 17 00:00:00 2001 From: nmajask Date: Mon, 31 May 2021 04:09:42 -0400 Subject: [PATCH 08/12] Comments and Paramedic Medigun Added comments to the changed TG code Gave Paramedic access to the Arm Mounted Medical Beamgun --- code/modules/uplink/uplink_items.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 3ebfd4753df1..f9e289a917e6 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1805,7 +1805,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) name = "Arm Mounted Medical Beamgun" desc = "An arm mounted medical beamgun to heal your best buds (disclaimer: does not come with friends)." item = /obj/item/autosurgeon/medibeam - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Mining Medic") + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Paramedic", "Mining Medic") //yogs cost = 8 manufacturer = /datum/corporation/traitor/cybersun @@ -1842,7 +1842,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ Insert into an Operating Console to enable the procedure." item = /obj/item/disk/surgery/brainwashing - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist", "Mining Medic") + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist", "Mining Medic") //yogs cost = 5 manufacturer = /datum/corporation/traitor/cybersun @@ -1950,7 +1950,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) cost = 5 //you need two for full damage, so total of 10 for maximum damage manufacturer = /datum/corporation/traitor/donkco // Unless you're donk co, then it's 8 limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner", "Mining Medic") + restricted_roles = list("Shaft Miner", "Mining Medic") //yogs /datum/uplink_item/role_restricted/magillitis_serum name = "Magillitis Serum Autoinjector" From 02715fb1dff646f7649dffe8598e22318d02fc74 Mon Sep 17 00:00:00 2001 From: nmajask Date: Fri, 4 Jun 2021 03:14:54 -0400 Subject: [PATCH 09/12] Adds polymorph tator items Man, this pull is never going to be reviewed Gives Polymorphs a traitor item, a box with some xeno organs There is another item commented out that is a kit containing stuff to start a xeno infestation, if requested I can remove or uncomment it --- yogstation/code/modules/uplink/uplink_item.dm | 266 +++++++++--------- 1 file changed, 140 insertions(+), 126 deletions(-) diff --git a/yogstation/code/modules/uplink/uplink_item.dm b/yogstation/code/modules/uplink/uplink_item.dm index bb8cea1c4a70..872c54e092d2 100644 --- a/yogstation/code/modules/uplink/uplink_item.dm +++ b/yogstation/code/modules/uplink/uplink_item.dm @@ -1,126 +1,140 @@ -/datum/uplink_item - var/list/include_objectives = list() //objectives to allow the buyer to buy this item - var/list/exclude_objectives = list() //objectives to disallow the buyer from buying this item - var/surplus_nullcrates - -/datum/uplink_item/New() - . = ..() - if(isnull(surplus_nullcrates)) - surplus_nullcrates = surplus - -///////////////////////////////// -////////Item re-balancing//////// -///////////////////////////////// - -/datum/uplink_item/dangerous - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/throwingweapons - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/martialarts - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/cqc - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/romerol_kit - category = "Conspicuous Weapons" - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) - -/datum/uplink_item/stealthy_weapons/soap_clusterbang - category = "Conspicuous Weapons" - -/datum/uplink_item/device_tools/hypnotic_flash - restricted_roles = list("Psychiatrist") - category = "Role-Restricted" - - -/datum/uplink_item/dangerous/syndicate_minibomb - cost = 4 - -/datum/uplink_item/role_restricted/his_grace - include_objectives = list(/datum/objective/hijack) - -/datum/uplink_item/stealthy_tools/mulligan - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) - -/datum/uplink_item/device_tools/fakenucleardisk - surplus_nullcrates = 0 - -////////////////////////// -/////////New Items//////// -////////////////////////// - -/datum/uplink_item/stealthy_weapons/door_charge - name = "Explosive Airlock Charge" - desc = "A small, easily concealable device. It can be applied to an open airlock panel, booby-trapping it. \ - The next person to use that airlock will trigger an explosion, knocking them down and destroying \ - the airlock maintenance panel." - item = /obj/item/doorCharge - cost = 2 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear) - - -/datum/uplink_item/device_tools/arm - name = "Additional Arm" - desc = "An additional arm, automatically added to your body upon purchase, allows you to use more items at once" - item = /obj/item/melee/supermatter_sword //doesn't actually spawn a supermatter sword, but it needs an object to show up in the menu :^) - cost = 5 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/arm/nuke - cost = 15 - exclude_modes = list() - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/arm/spawn_item(spawn_item, mob/user) - var/limbs = user.held_items.len - user.change_number_of_hands(limbs+1) - to_chat(user, "You feel more dexterous") - -/datum/uplink_item/role_restricted/gondola_meat - name = "Gondola meat" - desc = "A slice of gondola meat will turn any hard-working, brainwashed NT employee into a goody-two-shoes gondola in a matter of minutes." - item = /obj/item/reagent_containers/food/snacks/meat/slab/gondola - cost = 6 - restricted_roles = list("Cook") - -/datum/uplink_item/role_restricted/cluwneburger - name = "Cluwne Burger" - desc = "A burger infused with the tears of thousands of cluwnes. Infects anyone who takes a bite and pretty much everyone else on the station with a cluwnification virus which will quickly turn them into a cluwne. Can only be cured with Mimanas." - item = /obj/item/storage/box/syndie_kit/cluwnification - cost = 25 - restricted_roles = list("Clown", "Cook") - -/datum/uplink_item/role_restricted/syndicate_basket - name = "Syndicate Frying Basket" - desc = "A syndicate basket which allows the deep frying of dead corpses, ejects anything which the corpse is wearing." - item = /obj/item/syndicate_basket - cost = 7 - restricted_roles = list("Cook") - -/datum/uplink_item/implants/mindslave - name = "Mindslave Implant" - desc = "An implant injected into another body, forcing the victim to obey any command by the user." - item = /obj/item/storage/box/syndie_kit/imp_mindslave - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 20 - -/datum/uplink_item/implants/greytide - name = "Greytide Implant" - desc = "An implant injected into another body, forcing the victim to greytide." - item = /obj/item/storage/box/syndie_kit/imp_greytide - cost = 5 - surplus = 20 - restricted_roles = list("Assistant") - -/datum/uplink_item/badass/frying_pan - name = "Bananium Plated Frying Pan" - desc = "A frying pan imbued with ancient powers." - item = /obj/item/melee/fryingpan/bananium - cost = 40 - cant_discount = TRUE +/datum/uplink_item + var/list/include_objectives = list() //objectives to allow the buyer to buy this item + var/list/exclude_objectives = list() //objectives to disallow the buyer from buying this item + var/surplus_nullcrates + +/datum/uplink_item/New() + . = ..() + if(isnull(surplus_nullcrates)) + surplus_nullcrates = surplus + +///////////////////////////////// +////////Item re-balancing//////// +///////////////////////////////// + +/datum/uplink_item/dangerous + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/throwingweapons + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/martialarts + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/cqc + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/romerol_kit + category = "Conspicuous Weapons" + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) + +/datum/uplink_item/stealthy_weapons/soap_clusterbang + category = "Conspicuous Weapons" + +/datum/uplink_item/device_tools/hypnotic_flash + restricted_roles = list("Psychiatrist") + category = "Role-Restricted" + + +/datum/uplink_item/dangerous/syndicate_minibomb + cost = 4 + +/datum/uplink_item/role_restricted/his_grace + include_objectives = list(/datum/objective/hijack) + +/datum/uplink_item/stealthy_tools/mulligan + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) + +/datum/uplink_item/device_tools/fakenucleardisk + surplus_nullcrates = 0 + +////////////////////////// +/////////New Items//////// +////////////////////////// + +/datum/uplink_item/stealthy_weapons/door_charge + name = "Explosive Airlock Charge" + desc = "A small, easily concealable device. It can be applied to an open airlock panel, booby-trapping it. \ + The next person to use that airlock will trigger an explosion, knocking them down and destroying \ + the airlock maintenance panel." + item = /obj/item/doorCharge + cost = 2 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear) + + +/datum/uplink_item/device_tools/arm + name = "Additional Arm" + desc = "An additional arm, automatically added to your body upon purchase, allows you to use more items at once" + item = /obj/item/melee/supermatter_sword //doesn't actually spawn a supermatter sword, but it needs an object to show up in the menu :^) + cost = 5 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/arm/nuke + cost = 15 + exclude_modes = list() + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/arm/spawn_item(spawn_item, mob/user) + var/limbs = user.held_items.len + user.change_number_of_hands(limbs+1) + to_chat(user, "You feel more dexterous") + +///datum/uplink_item/race_restricted/xeno_infestation_kit //Disabled as creating a xeno infestation is not very helpful, bit left it in here in case you want it +// name = "Xenomorph Infestation Starter Kit" +// desc = "A kit containing the basics for starting a xenomorph infestation. Contains a hivenode, autosurgen, and three alien embryos. Does not include hosts." +// cost = 5 +// item = /obj/item/storage/box/syndie_kit/xeno_infestation_kit +// restricted_species = list("polysmorph") + + /datum/uplink_item/race_restricted/xeno_organ_kit + name = "Xenomorph Organ Kit" + desc = "A kit containing the some organs that were... \"donated\" by your ancestors. Contains a autosurgen, plasma vessel, resin spinner, an acid gland, and a neurotoxin gland." + cost = 15 //Price might not be ballenced as I am not too familiar with tator uplink stuff, feedback would be nice + item = /obj/item/storage/box/syndie_kit/xeno_organ_kit + restricted_species = list("polysmorph") + +/datum/uplink_item/role_restricted/gondola_meat + name = "Gondola meat" + desc = "A slice of gondola meat will turn any hard-working, brainwashed NT employee into a goody-two-shoes gondola in a matter of minutes." + item = /obj/item/reagent_containers/food/snacks/meat/slab/gondola + cost = 6 + restricted_roles = list("Cook") + +/datum/uplink_item/role_restricted/cluwneburger + name = "Cluwne Burger" + desc = "A burger infused with the tears of thousands of cluwnes. Infects anyone who takes a bite and pretty much everyone else on the station with a cluwnification virus which will quickly turn them into a cluwne. Can only be cured with Mimanas." + item = /obj/item/storage/box/syndie_kit/cluwnification + cost = 25 + restricted_roles = list("Clown", "Cook") + +/datum/uplink_item/role_restricted/syndicate_basket + name = "Syndicate Frying Basket" + desc = "A syndicate basket which allows the deep frying of dead corpses, ejects anything which the corpse is wearing." + item = /obj/item/syndicate_basket + cost = 7 + restricted_roles = list("Cook") + +/datum/uplink_item/implants/mindslave + name = "Mindslave Implant" + desc = "An implant injected into another body, forcing the victim to obey any command by the user." + item = /obj/item/storage/box/syndie_kit/imp_mindslave + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 20 + +/datum/uplink_item/implants/greytide + name = "Greytide Implant" + desc = "An implant injected into another body, forcing the victim to greytide." + item = /obj/item/storage/box/syndie_kit/imp_greytide + cost = 5 + surplus = 20 + restricted_roles = list("Assistant") + +/datum/uplink_item/badass/frying_pan + name = "Bananium Plated Frying Pan" + desc = "A frying pan imbued with ancient powers." + item = /obj/item/melee/fryingpan/bananium + cost = 40 + cant_discount = TRUE From 30fd9bd9a160e96092a92c3509939a98fc42e62c Mon Sep 17 00:00:00 2001 From: nmajask Date: Fri, 4 Jun 2021 03:16:38 -0400 Subject: [PATCH 10/12] Added stuff for the polymorph tator items Just added two kits, with one commented out --- .../game/objects/items/storage/uplink_kits.dm | 67 ++++++++++++------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/yogstation/code/game/objects/items/storage/uplink_kits.dm b/yogstation/code/game/objects/items/storage/uplink_kits.dm index 8156ef25b122..8ce7288e509e 100644 --- a/yogstation/code/game/objects/items/storage/uplink_kits.dm +++ b/yogstation/code/game/objects/items/storage/uplink_kits.dm @@ -1,24 +1,43 @@ -/obj/item/storage/box/syndie_kit/cluwnification - name = "Cluwne Burger Happy Meal (with mimanas)" - -/obj/item/storage/box/syndie_kit/cluwnification/PopulateContents() - new /obj/item/reagent_containers/food/snacks/burger/cluwneburger(src) - new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) - new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) - new /obj/item/reagent_containers/food/snacks/fries(src) - new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src) - new /obj/item/toy/plush/goatplushie/angry(src) - new /obj/item/gun/ballistic/automatic/pistol(src) - new /obj/item/ammo_box/magazine/m10mm(src) - -/obj/item/storage/box/syndie_kit/imp_mindslave - name = "Mindslave Implant (with injector)" - -/obj/item/storage/box/syndie_kit/imp_mindslave/PopulateContents() - new /obj/item/implanter/mindslave(src) - -/obj/item/storage/box/syndie_kit/imp_greytide - name = "Greytide Implant (with injector)" - -/obj/item/storage/box/syndie_kit/imp_greytide/PopulateContents() - new /obj/item/implanter/greytide(src) +/obj/item/storage/box/syndie_kit/cluwnification + name = "Cluwne Burger Happy Meal (with mimanas)" + +/obj/item/storage/box/syndie_kit/cluwnification/PopulateContents() + new /obj/item/reagent_containers/food/snacks/burger/cluwneburger(src) + new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) + new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) + new /obj/item/reagent_containers/food/snacks/fries(src) + new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src) + new /obj/item/toy/plush/goatplushie/angry(src) + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/ammo_box/magazine/m10mm(src) + +/obj/item/storage/box/syndie_kit/imp_mindslave + name = "Mindslave Implant (with injector)" + +/obj/item/storage/box/syndie_kit/imp_mindslave/PopulateContents() + new /obj/item/implanter/mindslave(src) + +/obj/item/storage/box/syndie_kit/imp_greytide + name = "Greytide Implant (with injector)" + +/obj/item/storage/box/syndie_kit/imp_greytide/PopulateContents() + new /obj/item/implanter/greytide(src) + +///obj/item/storage/box/syndie_kit/xeno_infestation_kit //disabled as creating a xenomorph infestation is not very helpful, but left it in here incase you want to add it +// name = "Xenomorph Infestation Starter Kit" +// +///obj/item/storage/box/syndie_kit/xeno_infestation_kit/PopulateContents() +// new /obj/item/autosurgeon/hivenode(src) +// for(var/i in 1 to 3) +// new /obj/item/organ/body_egg/alien_embryo(src) + +/obj/item/storage/box/syndie_kit/xeno_organ_kit //Just a kit with some basic xeno organs in it and an autosurgeon, as they are kinda rare and cool + name = "Xenomorph Organ Kit" + +/obj/item/storage/box/syndie_kit/xeno_organ_kit/PopulateContents() + new /obj/item/autosurgeon/plasmavessel(src) + new /obj/item/organ/alien/resinspinner(src) + new /obj/item/organ/alien/neurotoxin(src) + new /obj/item/organ/alien/acid(src) + //new /obj/item/organ/alien/hivenode(src) //disabled as a hive node is fairly pointless if you arent dealing with xenos have an egg sac, or know someone else with one. + //new /obj/item/organ/alien/eggsac(src) //disabled as an egg sac is not very helpful for a traitor and can ruin some rounds... *ahem* From 37e7e56bce4ea5ce7ea561d704baf720831d9bec Mon Sep 17 00:00:00 2001 From: nmajask Date: Fri, 4 Jun 2021 03:19:18 -0400 Subject: [PATCH 11/12] Added stuff for some polymorph tator items Two auto surgeons were added, one was commented out. --- code/modules/surgery/organs/autosurgeon.dm | 204 +++++++++++---------- 1 file changed, 105 insertions(+), 99 deletions(-) diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 96b3179df780..822d57517ce8 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -1,99 +1,105 @@ -#define INFINITE -1 - -/obj/item/autosurgeon - name = "autosurgeon" - desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert implants/organs and a screwdriver slot for removing accidentally added items." - icon = 'icons/obj/device.dmi' - icon_state = "autoimplanter" - item_state = "nothing" - w_class = WEIGHT_CLASS_SMALL - var/obj/item/organ/storedorgan - var/organ_type = /obj/item/organ - var/uses = INFINITE - var/starting_organ - -/obj/item/autosurgeon/Initialize(mapload) - . = ..() - if(starting_organ) - insert_organ(new starting_organ(src)) - -/obj/item/autosurgeon/proc/insert_organ(var/obj/item/I) - storedorgan = I - I.forceMove(src) - name = "[initial(name)] ([storedorgan.name])" - -/obj/item/autosurgeon/attack_self(mob/user)//when the object it used... - if(!uses) - to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") - return - else if(!storedorgan) - to_chat(user, "[src] currently has no implant stored.") - return - storedorgan.Insert(user)//insert stored organ into the user - user.visible_message("[user] presses a button on [src], and you hear a short mechanical noise.", "You feel a sharp sting as [src] plunges into your body.") - playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1) - storedorgan = null - name = initial(name) - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - -/obj/item/autosurgeon/attack_self_tk(mob/user) - return //stops TK fuckery - -/obj/item/autosurgeon/attackby(obj/item/I, mob/user, params) - if(istype(I, organ_type)) - if(storedorgan) - to_chat(user, "[src] already has an implant stored.") - return - else if(!uses) - to_chat(user, "[src] has already been used up.") - return - if(!user.transferItemToLoc(I, src)) - return - storedorgan = I - to_chat(user, "You insert the [I] into [src].") - else - return ..() - -/obj/item/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) - if(..()) - return TRUE - if(!storedorgan) - to_chat(user, "There's no implant in [src] for you to remove.") - else - var/atom/drop_loc = user.drop_location() - for(var/J in src) - var/atom/movable/AM = J - AM.forceMove(drop_loc) - - to_chat(user, "You remove the [storedorgan] from [src].") - I.play_tool_sound(src) - storedorgan = null - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - return TRUE - -/obj/item/autosurgeon/cmo - desc = "A single use autosurgeon that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." - uses = 1 - starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical - - -/obj/item/autosurgeon/thermal_eyes - starting_organ = /obj/item/organ/eyes/robotic/thermals - -/obj/item/autosurgeon/xray_eyes - starting_organ = /obj/item/organ/eyes/robotic/xray - -/obj/item/autosurgeon/anti_stun - starting_organ = /obj/item/organ/cyberimp/brain/anti_stun - -/obj/item/autosurgeon/reviver - starting_organ = /obj/item/organ/cyberimp/chest/reviver - -/obj/item/autosurgeon/medibeam - starting_organ = /obj/item/organ/cyberimp/arm/medibeam +#define INFINITE -1 + +/obj/item/autosurgeon + name = "autosurgeon" + desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert implants/organs and a screwdriver slot for removing accidentally added items." + icon = 'icons/obj/device.dmi' + icon_state = "autoimplanter" + item_state = "nothing" + w_class = WEIGHT_CLASS_SMALL + var/obj/item/organ/storedorgan + var/organ_type = /obj/item/organ + var/uses = INFINITE + var/starting_organ + +/obj/item/autosurgeon/Initialize(mapload) + . = ..() + if(starting_organ) + insert_organ(new starting_organ(src)) + +/obj/item/autosurgeon/proc/insert_organ(var/obj/item/I) + storedorgan = I + I.forceMove(src) + name = "[initial(name)] ([storedorgan.name])" + +/obj/item/autosurgeon/attack_self(mob/user)//when the object it used... + if(!uses) + to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") + return + else if(!storedorgan) + to_chat(user, "[src] currently has no implant stored.") + return + storedorgan.Insert(user)//insert stored organ into the user + user.visible_message("[user] presses a button on [src], and you hear a short mechanical noise.", "You feel a sharp sting as [src] plunges into your body.") + playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1) + storedorgan = null + name = initial(name) + if(uses != INFINITE) + uses-- + if(!uses) + desc = "[initial(desc)] Looks like it's been used up." + +/obj/item/autosurgeon/attack_self_tk(mob/user) + return //stops TK fuckery + +/obj/item/autosurgeon/attackby(obj/item/I, mob/user, params) + if(istype(I, organ_type)) + if(storedorgan) + to_chat(user, "[src] already has an implant stored.") + return + else if(!uses) + to_chat(user, "[src] has already been used up.") + return + if(!user.transferItemToLoc(I, src)) + return + storedorgan = I + to_chat(user, "You insert the [I] into [src].") + else + return ..() + +/obj/item/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) + if(..()) + return TRUE + if(!storedorgan) + to_chat(user, "There's no implant in [src] for you to remove.") + else + var/atom/drop_loc = user.drop_location() + for(var/J in src) + var/atom/movable/AM = J + AM.forceMove(drop_loc) + + to_chat(user, "You remove the [storedorgan] from [src].") + I.play_tool_sound(src) + storedorgan = null + if(uses != INFINITE) + uses-- + if(!uses) + desc = "[initial(desc)] Looks like it's been used up." + return TRUE + +/obj/item/autosurgeon/cmo + desc = "A single use autosurgeon that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." + uses = 1 + starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical + + +/obj/item/autosurgeon/thermal_eyes + starting_organ = /obj/item/organ/eyes/robotic/thermals + +/obj/item/autosurgeon/xray_eyes + starting_organ = /obj/item/organ/eyes/robotic/xray + +/obj/item/autosurgeon/anti_stun + starting_organ = /obj/item/organ/cyberimp/brain/anti_stun + +/obj/item/autosurgeon/reviver + starting_organ = /obj/item/organ/cyberimp/chest/reviver + +/obj/item/autosurgeon/medibeam + starting_organ = /obj/item/organ/cyberimp/arm/medibeam + +///obj/item/autosurgeon/hivenode //Yogs Start: put this here as putting it in a copy put in the yougs folder will caue it to be loaded too late +// starting_organ = /obj/item/organ/alien/hivenode //disabled as it is ony used for /obj/item/storage/box/syndie_kit/xeno_infestation_kit, which is disabled too. Obviosly uncomment this if you want to use the other, or delete this if delete xeno_infestation_kit + +/obj/item/autosurgeon/plasmavessel //Just an autosurgeon with a plasma vessel in it, used in /obj/item/storage/box/syndie_kit/xeno_organ_kit + starting_organ = /obj/item/organ/alien/plasmavessel //Yogs End From b4774ec0cc3e000051100af2ae912c5e476ec714 Mon Sep 17 00:00:00 2001 From: nmajask Date: Thu, 17 Jun 2021 19:29:09 -0400 Subject: [PATCH 12/12] Should fix the polymorph traitor items think it was an accidental indent --- code/modules/surgery/organs/autosurgeon.dm | 210 +- code/modules/uplink/uplink_items.dm | 4188 ++++++++--------- .../game/objects/items/storage/uplink_kits.dm | 86 +- yogstation/code/modules/uplink/uplink_item.dm | 280 +- 4 files changed, 2382 insertions(+), 2382 deletions(-) diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 822d57517ce8..e073aa74359b 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -1,105 +1,105 @@ -#define INFINITE -1 - -/obj/item/autosurgeon - name = "autosurgeon" - desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert implants/organs and a screwdriver slot for removing accidentally added items." - icon = 'icons/obj/device.dmi' - icon_state = "autoimplanter" - item_state = "nothing" - w_class = WEIGHT_CLASS_SMALL - var/obj/item/organ/storedorgan - var/organ_type = /obj/item/organ - var/uses = INFINITE - var/starting_organ - -/obj/item/autosurgeon/Initialize(mapload) - . = ..() - if(starting_organ) - insert_organ(new starting_organ(src)) - -/obj/item/autosurgeon/proc/insert_organ(var/obj/item/I) - storedorgan = I - I.forceMove(src) - name = "[initial(name)] ([storedorgan.name])" - -/obj/item/autosurgeon/attack_self(mob/user)//when the object it used... - if(!uses) - to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") - return - else if(!storedorgan) - to_chat(user, "[src] currently has no implant stored.") - return - storedorgan.Insert(user)//insert stored organ into the user - user.visible_message("[user] presses a button on [src], and you hear a short mechanical noise.", "You feel a sharp sting as [src] plunges into your body.") - playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1) - storedorgan = null - name = initial(name) - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - -/obj/item/autosurgeon/attack_self_tk(mob/user) - return //stops TK fuckery - -/obj/item/autosurgeon/attackby(obj/item/I, mob/user, params) - if(istype(I, organ_type)) - if(storedorgan) - to_chat(user, "[src] already has an implant stored.") - return - else if(!uses) - to_chat(user, "[src] has already been used up.") - return - if(!user.transferItemToLoc(I, src)) - return - storedorgan = I - to_chat(user, "You insert the [I] into [src].") - else - return ..() - -/obj/item/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) - if(..()) - return TRUE - if(!storedorgan) - to_chat(user, "There's no implant in [src] for you to remove.") - else - var/atom/drop_loc = user.drop_location() - for(var/J in src) - var/atom/movable/AM = J - AM.forceMove(drop_loc) - - to_chat(user, "You remove the [storedorgan] from [src].") - I.play_tool_sound(src) - storedorgan = null - if(uses != INFINITE) - uses-- - if(!uses) - desc = "[initial(desc)] Looks like it's been used up." - return TRUE - -/obj/item/autosurgeon/cmo - desc = "A single use autosurgeon that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." - uses = 1 - starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical - - -/obj/item/autosurgeon/thermal_eyes - starting_organ = /obj/item/organ/eyes/robotic/thermals - -/obj/item/autosurgeon/xray_eyes - starting_organ = /obj/item/organ/eyes/robotic/xray - -/obj/item/autosurgeon/anti_stun - starting_organ = /obj/item/organ/cyberimp/brain/anti_stun - -/obj/item/autosurgeon/reviver - starting_organ = /obj/item/organ/cyberimp/chest/reviver - -/obj/item/autosurgeon/medibeam - starting_organ = /obj/item/organ/cyberimp/arm/medibeam - -///obj/item/autosurgeon/hivenode //Yogs Start: put this here as putting it in a copy put in the yougs folder will caue it to be loaded too late -// starting_organ = /obj/item/organ/alien/hivenode //disabled as it is ony used for /obj/item/storage/box/syndie_kit/xeno_infestation_kit, which is disabled too. Obviosly uncomment this if you want to use the other, or delete this if delete xeno_infestation_kit - -/obj/item/autosurgeon/plasmavessel //Just an autosurgeon with a plasma vessel in it, used in /obj/item/storage/box/syndie_kit/xeno_organ_kit - starting_organ = /obj/item/organ/alien/plasmavessel //Yogs End +#define INFINITE -1 + +/obj/item/autosurgeon + name = "autosurgeon" + desc = "A device that automatically inserts an implant or organ into the user without the hassle of extensive surgery. It has a slot to insert implants/organs and a screwdriver slot for removing accidentally added items." + icon = 'icons/obj/device.dmi' + icon_state = "autoimplanter" + item_state = "nothing" + w_class = WEIGHT_CLASS_SMALL + var/obj/item/organ/storedorgan + var/organ_type = /obj/item/organ + var/uses = INFINITE + var/starting_organ + +/obj/item/autosurgeon/Initialize(mapload) + . = ..() + if(starting_organ) + insert_organ(new starting_organ(src)) + +/obj/item/autosurgeon/proc/insert_organ(var/obj/item/I) + storedorgan = I + I.forceMove(src) + name = "[initial(name)] ([storedorgan.name])" + +/obj/item/autosurgeon/attack_self(mob/user)//when the object it used... + if(!uses) + to_chat(user, "[src] has already been used. The tools are dull and won't reactivate.") + return + else if(!storedorgan) + to_chat(user, "[src] currently has no implant stored.") + return + storedorgan.Insert(user)//insert stored organ into the user + user.visible_message("[user] presses a button on [src], and you hear a short mechanical noise.", "You feel a sharp sting as [src] plunges into your body.") + playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, 1) + storedorgan = null + name = initial(name) + if(uses != INFINITE) + uses-- + if(!uses) + desc = "[initial(desc)] Looks like it's been used up." + +/obj/item/autosurgeon/attack_self_tk(mob/user) + return //stops TK fuckery + +/obj/item/autosurgeon/attackby(obj/item/I, mob/user, params) + if(istype(I, organ_type)) + if(storedorgan) + to_chat(user, "[src] already has an implant stored.") + return + else if(!uses) + to_chat(user, "[src] has already been used up.") + return + if(!user.transferItemToLoc(I, src)) + return + storedorgan = I + to_chat(user, "You insert the [I] into [src].") + else + return ..() + +/obj/item/autosurgeon/screwdriver_act(mob/living/user, obj/item/I) + if(..()) + return TRUE + if(!storedorgan) + to_chat(user, "There's no implant in [src] for you to remove.") + else + var/atom/drop_loc = user.drop_location() + for(var/J in src) + var/atom/movable/AM = J + AM.forceMove(drop_loc) + + to_chat(user, "You remove the [storedorgan] from [src].") + I.play_tool_sound(src) + storedorgan = null + if(uses != INFINITE) + uses-- + if(!uses) + desc = "[initial(desc)] Looks like it's been used up." + return TRUE + +/obj/item/autosurgeon/cmo + desc = "A single use autosurgeon that contains a medical heads-up display augment. A screwdriver can be used to remove it, but implants can't be placed back in." + uses = 1 + starting_organ = /obj/item/organ/cyberimp/eyes/hud/medical + + +/obj/item/autosurgeon/thermal_eyes + starting_organ = /obj/item/organ/eyes/robotic/thermals + +/obj/item/autosurgeon/xray_eyes + starting_organ = /obj/item/organ/eyes/robotic/xray + +/obj/item/autosurgeon/anti_stun + starting_organ = /obj/item/organ/cyberimp/brain/anti_stun + +/obj/item/autosurgeon/reviver + starting_organ = /obj/item/organ/cyberimp/chest/reviver + +/obj/item/autosurgeon/medibeam + starting_organ = /obj/item/organ/cyberimp/arm/medibeam + +///obj/item/autosurgeon/hivenode //Yogs Start: put this here as putting it in a copy put in the yougs folder will caue it to be loaded too late +// starting_organ = /obj/item/organ/alien/hivenode //disabled as it is ony used for /obj/item/storage/box/syndie_kit/xeno_infestation_kit, which is disabled too. Obviosly uncomment this if you want to use the other, or delete this if delete xeno_infestation_kit + +/obj/item/autosurgeon/plasmavessel //Just an autosurgeon with a plasma vessel in it, used in /obj/item/storage/box/syndie_kit/xeno_organ_kit + starting_organ = /obj/item/organ/alien/plasmavessel //Yogs End diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index f9e289a917e6..5bb6c624bb2c 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,2094 +1,2094 @@ -GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) - -/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) - var/list/filtered_uplink_items = list() - var/list/sale_items = list() - - for(var/path in GLOB.uplink_items) - var/datum/uplink_item/I = new path - if(!I.item) - continue - if(I.include_modes.len) - if(!gamemode && SSticker.mode && !(SSticker.mode.type in I.include_modes)) - continue - if(gamemode && !(gamemode in I.include_modes)) - continue - if(I.exclude_modes.len) - if(!gamemode && SSticker.mode && (SSticker.mode.type in I.exclude_modes)) - continue - if(gamemode && (gamemode in I.exclude_modes)) - continue - if(I.player_minimum && I.player_minimum > GLOB.joined_player_list.len) - continue - if (I.restricted && !allow_restricted) - continue - - if(!filtered_uplink_items[I.category]) - filtered_uplink_items[I.category] = list() - filtered_uplink_items[I.category][I.name] = I - if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) - sale_items += I - if(allow_sales) - var/datum/team/nuclear/nuclear_team - if (gamemode == /datum/game_mode/nuclear) // uplink code kind of needs a redesign - nuclear_team = locate() in GLOB.antagonist_teams // the team discounts could be a in a GLOB with this design but it would make sense for them to be team specific... - if (!nuclear_team) - create_uplink_sales(3, "Discounted Gear", 1, sale_items, filtered_uplink_items) - else - if (!nuclear_team.team_discounts) - // create 5 unlimited stock discounts - create_uplink_sales(5, "Discounted Team Gear", -1, sale_items, filtered_uplink_items) - // Create 10 limited stock discounts - create_uplink_sales(10, "Limited Stock Team Gear", 1, sale_items, filtered_uplink_items) - nuclear_team.team_discounts = list("Discounted Team Gear" = filtered_uplink_items["Discounted Team Gear"], "Limited Stock Team Gear" = filtered_uplink_items["Limited Stock Team Gear"]) - else - for(var/cat in nuclear_team.team_discounts) - for(var/item in nuclear_team.team_discounts[cat]) - var/datum/uplink_item/D = nuclear_team.team_discounts[cat][item] - var/datum/uplink_item/O = filtered_uplink_items[initial(D.category)][initial(D.name)] - O.refundable = FALSE - - filtered_uplink_items["Discounted Team Gear"] = nuclear_team.team_discounts["Discounted Team Gear"] - filtered_uplink_items["Limited Stock Team Gear"] = nuclear_team.team_discounts["Limited Stock Team Gear"] - - - return filtered_uplink_items - -/proc/create_uplink_sales(num, category_name, limited_stock, sale_items, uplink_items) - if (num <= 0) - return - - if(!uplink_items[category_name]) - uplink_items[category_name] = list() - - for (var/i in 1 to num) - var/datum/uplink_item/I = pick_n_take(sale_items) - var/datum/uplink_item/A = new I.type - var/discount = A.get_discount() - var/list/disclaimer = list("Void where prohibited.", "Not recommended for children.", "Contains small parts.", "Check local laws for legality in region.", "Do not taunt.", "Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform.", "Keep away from fire or flames.", "Product is provided \"as is\" without any implied or expressed warranties.", "As seen on TV.", "For recreational use only.", "Use only as directed.", "16% sales tax will be charged for orders originating within Space Nebraska.") - A.limited_stock = limited_stock - if(A.cost >= 20) //Tough love for nuke ops - discount *= 0.5 - A.category = category_name - A.cost = max(round(A.cost * discount),1) - A.name += " ([round(((initial(A.cost)-A.cost)/initial(A.cost))*100)]% off!)" - A.desc += " Normally costs [initial(A.cost)] TC. All sales final. [pick(disclaimer)]" - A.item = I.item - if (A.refundable) - var/obj/item/antag_spawner/S = new A.item() - S.discountPrice = A.cost - A.item = S - uplink_items[category_name][A.name] = A - - -/** - * Uplink Items - * - * Items that can be spawned from an uplink. Can be limited by gamemode. -**/ -/datum/uplink_item - var/name = "item name" - var/category = "item category" - var/desc = "item description" - var/item = null // Path to the item to spawn. - var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). - var/cost = 0 - var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. - var/refundable = FALSE - var/surplus = 100 // Chance of being included in the surplus crate. - var/cant_discount = FALSE - var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited - var/list/include_modes = list() // Game modes to allow this item in. - var/list/exclude_modes = list() // Game modes to disallow this item from. - var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. - var/player_minimum //The minimum crew size needed for this item to be added to uplinks. - var/purchase_log_vis = TRUE // Visible in the purchase log? - var/restricted = FALSE // Adds restrictions for VR/Events - var/list/restricted_species //Limits items to a specific species. Hopefully. - var/illegal_tech = TRUE // Can this item be deconstructed to unlock certain techweb research nodes? - /// the manufacturer of the item. Gives up to a 20% discount if you're from that corporation - var/datum/corporation/manufacturer - -/datum/uplink_item/proc/get_discount() - return pick(4;0.75,2;0.5,1;0.25) - -/datum/uplink_item/proc/purchase(mob/user, datum/component/uplink/U) - var/atom/A = spawn_item(item, user, U) - if(purchase_log_vis && U.purchase_log) - U.purchase_log.LogPurchase(A, src, cost) - -/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!spawn_path) - return - var/atom/A - if(ispath(spawn_path)) - A = new spawn_path(get_turf(user)) - else - A = spawn_path - if(ishuman(user) && istype(A, /obj/item)) - var/mob/living/carbon/human/H = user - if(H.put_in_hands(A)) - to_chat(H, "[A] materializes into your hands!") - return A - to_chat(user, "[A] materializes onto the floor.") - return A - -//Discounts (dynamically filled above) -/datum/uplink_item/discounts - category = "Discounts" - -//All bundles and telecrystals -/datum/uplink_item/bundles_TC - category = "Bundles" - surplus = 0 - cant_discount = TRUE - -/datum/uplink_item/bundles_TC/chemical - name = "Bioterror bundle" - desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ - box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." - item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle - cost = 30 // normally 42 - manufacturer = /datum/corporation/traitor/donkco - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bulldog - name = "Bulldog bundle" - desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ - Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." - item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - cost = 13 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/cyber_implants - name = "Cybernetic Implants Bundle" - desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." - item = /obj/item/storage/box/cyber_implants - cost = 40 - manufacturer = /datum/corporation/traitor/cybersun - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/medical - name = "Medical bundle" - desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ - a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." - item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle - cost = 15 // normally 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ - two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ - We'll throw in a free red tie if you order NOW." - item = /obj/item/storage/briefcase/sniperbundle - cost = 20 // normally 26 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/firestarter - name = "Spetsnaz Pyro bundle" - desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ - Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." - item = /obj/item/storage/backpack/duffelbag/syndie/firestarter - cost = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/contract_kit - name = "Contract Kit" - desc = "The Syndicate have offered you the chance to become a contractor, take on kidnapping contracts for TC and cash payouts. Upon purchase, \ - you'll be granted your own contract uplink embedded within the supplied tablet computer. Additionally, you'll be granted \ - standard contractor gear to help with your mission - comes supplied with the tablet, specialised space suit, chameleon jumpsuit and mask, \ - agent card, specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." - item = /obj/item/storage/box/syndicate/contract_kit - cost = 20 - player_minimum = 20 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/bundles_TC/bundle_A - name = "Syndi-kit Tactical" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ - you will receive. May contain discontinued and/or exotic items." - item = /obj/item/storage/box/syndicate/bundle_A - cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/bundle_B - name = "Syndi-kit Special" - desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ - In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." - item = /obj/item/storage/box/syndicate/bundle_B - cost = 20 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/bundles_TC/surplus - name = "Syndicate Surplus Crate" - desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 50 TC." - item = /obj/structure/closet/crate - cost = 20 - player_minimum = 25 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - var/starting_crate_value = 50 - -/datum/uplink_item/bundles_TC/surplus/super - name = "Super Surplus Crate" - desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ - but you never know. Contents are sorted to always be worth 125 TC." - cost = 40 - player_minimum = 40 - starting_crate_value = 125 - -/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) - - var/crate_value = starting_crate_value - var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) - if(U.purchase_log) - U.purchase_log.LogPurchase(C, src, cost) - while(crate_value) - var/category = pick(uplink_items) - var/item = pick(uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - - if(!I.surplus || prob(100 - I.surplus)) - continue - if(crate_value < I.cost) - continue - crate_value -= I.cost - var/obj/goods = new I.item(C) - if(U.purchase_log) - U.purchase_log.LogPurchase(goods, I, 0) - return C - -/datum/uplink_item/bundles_TC/random - name = "Random Item" - desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." - item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech - cost = 0 - -/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) - var/list/uplink_items = U.uplink_items - var/list/possible_items = list() - for(var/category in uplink_items) - for(var/item in uplink_items[category]) - var/datum/uplink_item/I = uplink_items[category][item] - if(src == I || !I.item) - continue - if(U.telecrystals < I.cost) - continue - if(I.limited_stock == 0) - continue - possible_items += I - - if(possible_items.len) - var/datum/uplink_item/I = pick(possible_items) - SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) - U.MakePurchase(user, I) - -/datum/uplink_item/bundles_TC/telecrystal - name = "1 Raw Telecrystal" - desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal - cost = 1 - // Don't add telecrystals to the purchase_log since - // it's just used to buy more items (including itself!) - purchase_log_vis = FALSE - -/datum/uplink_item/bundles_TC/telecrystal/five - name = "5 Raw Telecrystals" - desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/five - cost = 5 - -/datum/uplink_item/bundles_TC/telecrystal/twenty - name = "20 Raw Telecrystals" - desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." - item = /obj/item/stack/telecrystal/twenty - cost = 20 - -// Dangerous Items -/datum/uplink_item/dangerous - category = "Conspicuous Weapons" - -/datum/uplink_item/dangerous/rawketlawnchair - name = "84mm Rocket Propelled Grenade Launcher" - desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ - Guaranteed to send your target out with a bang or your money back!" - item = /obj/item/gun/ballistic/rocketlauncher - cost = 8 - surplus = 30 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/pneumatic_cannon/pie/selfcharge - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bananashield - name = "Bananium Energy Shield" - desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ - by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ - and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." - item = /obj/item/shield/energy/bananium - cost = 16 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/clownsword - name = "Bananium Energy Sword" - desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ - impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." - item = /obj/item/melee/transforming/energy/sword/bananium - cost = 3 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bioterror - name = "Biohazardous Chemical Sprayer" - desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ - Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ - Use with extreme caution, to prevent exposure to yourself and your fellow operatives." - item = /obj/item/reagent_containers/spray/chemsprayer/bioterror - cost = 20 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/throwingweapons - name = "Box of Throwing Weapons" - desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ - throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." - item = /obj/item/storage/box/syndie_kit/throwing_weapons - cost = 3 - -/datum/uplink_item/dangerous/shotgun - name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ - quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/shotgun/bulldog - cost = 8 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/smg - name = "C-20r Submachine Gun" - desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ - 24-round magazine and is compatible with suppressors." - item = /obj/item/gun/ballistic/automatic/c20r - cost = 10 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/doublesword - name = "Double-Bladed Energy Sword" - desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ - all energy projectiles, but requires two hands to wield." - item = /obj/item/twohanded/dualsaber - player_minimum = 25 - cost = 16 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/doublesword/get_discount() - return pick(4;0.8,2;0.65,1;0.5) - -/datum/uplink_item/dangerous/sword - name = "Energy Sword" - desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ - pocketed when inactive. Activating it produces a loud, distinctive noise." - item = /obj/item/melee/transforming/energy/sword/saber - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bostaff - name = "Bo Staff" - desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm." - item = /obj/item/twohanded/bostaff - cost = 8 - -/datum/uplink_item/dangerous/shield - name = "Energy Shield" - desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ - against other attacks. Pair with an Energy Sword for a killer combination." - item = /obj/item/shield/energy - cost = 16 - surplus = 20 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/flamethrower - name = "Flamethrower" - desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ - stations. Make a statement by roasting the filth in their own greed. Use with caution." - item = /obj/item/flamethrower/full/tank - cost = 4 - surplus = 40 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/rapid - name = "Gloves of the North Star" - desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." - item = /obj/item/clothing/gloves/rapid - cost = 8 - -/datum/uplink_item/dangerous/guardian - name = "Holoparasites" - desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ - organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." - item = /obj/item/guardiancreator/tech - cost = 15 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 0 - //exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //yogs: removes restrictions on liabilit- I mean punchghosts - player_minimum = 25 - restricted = TRUE - -/datum/uplink_item/dangerous/machinegun - name = "L6 Squad Automatic Weapon" - desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ - This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." - item = /obj/item/gun/ballistic/automatic/l6_saw - cost = 20 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/minigun - name = "M-546 Osprey" - desc = "A fully-loaded minigun which packs a big punch. \ - This deadly giant weapon has a massive 500-round magazine of devastating 5.46mm caseless ammunition.\ - Slaughter your enemies through sheer force. We made this gun so advanced that it fires the whole bullet.\ - Thats 60% more bullet per bullet and no more useless casings!" - item = /obj/item/minigunbackpack - cost = 36 - surplus = 0 - cant_discount = TRUE - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/carbine - name = "M-90gl Carbine" - desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ - with a toggleable 40mm underbarrel grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 18 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/powerfist - name = "Power Fist" - desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ - Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ - Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ - deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." - item = /obj/item/melee/powerfist - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/dangerous/sniper - name = "Sniper Rifle" - desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" - item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate - cost = 16 - surplus = 25 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/pistol - name = "Stechkin Pistol" - desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ - with suppressors." - item = /obj/item/gun/ballistic/automatic/pistol - cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/bolt_action - name = "Surplus Rifle" - desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." - item = /obj/item/gun/ballistic/rifle/boltaction - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/revolver - name = "Syndicate Revolver" - desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." - item = /obj/item/gun/ballistic/revolver - cost = 13 - surplus = 50 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/dangerous/foamsmg - name = "Toy Submachine Gun" - desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." - item = /obj/item/gun/ballistic/automatic/c20r/toy - cost = 5 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foammachinegun - name = "Toy Machine Gun" - desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ - riot grade darts, that can briefly incapacitate someone in just one volley." - item = /obj/item/gun/ballistic/automatic/l6_saw/toy - cost = 10 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/dangerous/foampistol - name = "Toy Pistol with Riot Darts" - desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ - darts effective at incapacitating a target." - item = /obj/item/gun/ballistic/automatic/toy/pistol/riot - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 10 - -// Stealthy Weapons -/datum/uplink_item/stealthy_weapons - category = "Stealthy Weapons" - -/datum/uplink_item/stealthy_weapons/combatglovesplus - name = "Combat Gloves Plus" - desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ - to learn the abilities of krav maga to the wearer." - item = /obj/item/clothing/gloves/krav_maga/combatglovesplus - cost = 5 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/stealthy_weapons/cqc - name = "CQC Manual" - desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." - item = /obj/item/book/granter/martial/cqc - cost = 13 - surplus = 0 - -/datum/uplink_item/stealthy_weapons/dart_pistol - name = "Dart Pistol" - desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ - space a small item can." - item = /obj/item/gun/syringe/syndicate - cost = 4 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/dehy_carp - name = "Dehydrated Space Carp" - desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ - your hand before use so it knows not to kill you." - item = /obj/item/toy/plush/carpplushie/dehy_carp - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/stealthy_weapons/edagger - name = "Energy Dagger" - desc = "A dagger made of energy that looks and functions as a pen when off." - item = /obj/item/pen/edagger - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/stealthy_weapons/martialarts - name = "Martial Arts Scroll" - desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ - deflecting all ranged weapon fire when throwmode is enabled, but you also refuse to use dishonorable ranged weaponry." - item = /obj/item/book/granter/martial/carp - cost = 14 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_weapons/crossbow - name = "Miniature Energy Crossbow" - desc = "A short bow mounted across a tiller in miniature. \ - Small enough to fit into a pocket or slip into a bag unnoticed. \ - It will synthesize and fire bolts tipped with a debilitating \ - toxin that will damage and disorient targets, causing them to \ - slur as if inebriated. It can produce an infinite number \ - of bolts, but takes time to automatically recharge after each shot." - item = /obj/item/gun/energy/kinetic_accelerator/crossbow - cost = 11 - surplus = 50 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/origami_kit - name = "Boxed Origami Kit" - desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ - perfectly aerodynamic (and potentially lethal) paper airplanes." - item = /obj/item/storage/box/syndie_kit/origami_bundle - cost = 14 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. - -/datum/uplink_item/stealthy_weapons/traitor_chem_bottle - name = "Poison Kit" - desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." - item = /obj/item/storage/box/syndie_kit/chemical - cost = 6 - surplus = 50 - -/datum/uplink_item/stealthy_weapons/romerol_kit - name = "Romerol" - desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ - On death, these nodules take control of the dead body, causing limited revivification, \ - along with slurred speech, aggression, and the ability to infect others with this agent." - item = /obj/item/storage/box/syndie_kit/romerol - cost = 25 - cant_discount = TRUE - -/datum/uplink_item/stealthy_weapons/sleepy_pen - name = "Sleepy Pen" - desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ - strong anesthetic and a chemical that prevents the target from speaking. \ - The pen holds one dose of the mixture. Note that before the target \ - falls asleep, they will be able to move and act." - item = /obj/item/pen/sleepy - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_weapons/suppressor - name = "Suppressor" - desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." - item = /obj/item/suppressor - cost = 3 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -// Ammunition -/datum/uplink_item/ammo - category = "Ammunition" - surplus = 40 - -/datum/uplink_item/ammo/pistol - name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." - item = /obj/item/ammo_box/magazine/m10mm - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolap - name = "10mm Armour Piercing Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolhp - name = "10mm Hollow Point Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp - cost = 3 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/pistolfire - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/shotgun - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/bag - name = "12g Ammo Duffel Bag" - desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - cost = 12 - -/datum/uplink_item/ammo/shotgun/buck - name = "12g Buckshot Drum" - desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." - item = /obj/item/ammo_box/magazine/m12g - -/datum/uplink_item/ammo/shotgun/dragon - name = "12g Dragon's Breath Drum" - desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ - 'I'm a fire starter, twisted fire starter!'" - item = /obj/item/ammo_box/magazine/m12g/dragon - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/meteor - name = "12g Meteorslug Shells" - desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ - Great for blasting airlocks off their frames and knocking down enemies." - item = /obj/item/ammo_box/magazine/m12g/meteor - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/shotgun/slug - name = "12g Slug Drum" - desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ - Now 8 times less likely to shoot your pals." - cost = 3 - item = /obj/item/ammo_box/magazine/m12g/slug - -/datum/uplink_item/ammo/revolver - name = ".357 Speed Loader" - desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ - For when you really need a lot of things dead." - item = /obj/item/ammo_box/a357 - cost = 4 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - illegal_tech = FALSE - -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade" - desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ - Your teammates will ask you to not shoot these down small hallways." - item = /obj/item/ammo_casing/a40mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg/bag - name = ".45 Ammo Duffel Bag" - desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg - cost = 20 //instead of 27 TC - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/smg - name = ".45 SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." - item = /obj/item/ammo_box/magazine/smgm45 - cost = 3 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/sniper/basic - name = ".50 Magazine" - desc = "An additional standard 6-round magazine for use with .50 sniper rifles." - item = /obj/item/ammo_box/magazine/sniper_rounds - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 Penetrator Magazine" - desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ - Can pierce walls and multiple enemies." - item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator - cost = 5 - -/datum/uplink_item/ammo/sniper/soporific - name = ".50 Soporific Magazine" - desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/soporific - cost = 6 - -/datum/uplink_item/ammo/carbine - name = "5.56mm Toploader Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." - item = /obj/item/ammo_box/magazine/m556 - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/machinegun/basic - name = "7.12x82mm Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ - By the time you need to use this, you'll already be standing on a pile of corpses." - item = /obj/item/ammo_box/magazine/mm712x82 - -/datum/uplink_item/ammo/machinegun/ap - name = "7.12x82mm (Armor Penetrating) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ - to puncture even the most durable armor." - item = /obj/item/ammo_box/magazine/mm712x82/ap - cost = 9 - -/datum/uplink_item/ammo/machinegun/hollow - name = "7.12x82mm (Hollow-Point) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ - with the unarmored masses of crew." - item = /obj/item/ammo_box/magazine/mm712x82/hollow - -/datum/uplink_item/ammo/machinegun/incen - name = "7.12x82mm (Incendiary) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ - mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." - item = /obj/item/ammo_box/magazine/mm712x82/incen - -/datum/uplink_item/ammo/rocket - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/rocket/basic - name = "84mm HE Rocket" - desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" - item = /obj/item/ammo_casing/caseless/rocket - cost = 4 - -/datum/uplink_item/ammo/rocket/hedp - name = "84mm HEDP Rocket" - desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ - Strike fear into the hearts of your enemies." - item = /obj/item/ammo_casing/caseless/rocket/hedp - cost = 6 - -/datum/uplink_item/ammo/pistolaps - name = "9mm Handgun Magazine" - desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." - item = /obj/item/ammo_box/magazine/pistolm9mm - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/toydarts - name = "Box of Riot Darts" - desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" - item = /obj/item/ammo_box/foambox/riot - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 0 - illegal_tech = FALSE - -/datum/uplink_item/ammo/bioterror - name = "Box of Bioterror Syringes" - desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ - and broca systems, making it impossible for them to move or speak for some time." - item = /obj/item/storage/box/syndie_kit/bioterror - cost = 6 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/ammo/bolt_action - name = "Surplus Rifle Clip" - desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." - item = /obj/item/ammo_box/a762 - cost = 1 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/dark_gygax/bag - name = "Dark Gygax Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the incendiary carbine and flash bang launcher that are equipped on a standard Dark Gygax exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax - cost = 4 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/ammo/mauler/bag - name = "Mauler Ammo Bag" - desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile launcher that are equipped on a standard Mauler exosuit." - item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler - cost = 6 - include_modes = list(/datum/game_mode/nuclear) - -//Grenades and Explosives -/datum/uplink_item/explosives - category = "Explosives" - -/datum/uplink_item/explosives/bioterrorfoam - name = "Bioterror Foam Grenade" - desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ - mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ - using additional spore toxin. Ensure suit is sealed before use." - item = /obj/item/grenade/chem_grenade/bioterrorfoam - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/bombanana - name = "Bombanana" - desc = "A banana with an explosive taste! Discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ - a few seconds after the banana is eaten." - item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana - cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/buzzkill - name = "Buzzkill Grenade Box" - desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ - with random toxins." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 6 - manufacturer = /datum/corporation/bolsynpowell - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/c4 - name = "Composition C-4" - desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ - an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ - minimum setting of 10 seconds." - item = /obj/item/grenade/plastic/c4 - cost = 1 - -/datum/uplink_item/explosives/c4bag - name = "Bag of C-4 explosives" - desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." - item = /obj/item/storage/backpack/duffelbag/syndie/c4 - cost = 8 //20% discount! - cant_discount = TRUE - -/datum/uplink_item/explosives/x4bag - name = "Bag of X-4 explosives" - desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ - X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ - For when you want a controlled explosion that leaves a wider, deeper, hole." - item = /obj/item/storage/backpack/duffelbag/syndie/x4 - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/explosives/clown_bomb_clownops - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 15 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/detomatix - name = "Detomatix PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ - detonate PDAs of crewmembers who have their message feature enabled. \ - The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." - item = /obj/item/cartridge/virus/syndicate - cost = 6 - manufacturer = /datum/corporation/traitor/cybersun - restricted = TRUE - -/datum/uplink_item/explosives/emp - name = "EMP Grenades and Implanter Kit" - desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ - security's energy weapons and silicon lifeforms when you're in a tight spot." - item = /obj/item/storage/box/syndie_kit/emp - cost = 2 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/explosives/ducky - name = "Exploding Rubber Duck" - desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on." - item = /obj/item/deployablemine/traitor - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/virus_grenade - name = "Fungal Tuberculosis Grenade" - desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ - autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ - the BVAK solution." - item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade - cost = 12 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/explosives/grenadier - name = "Grenadier's belt" - desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." - item = /obj/item/storage/belt/grenade/full - include_modes = list(/datum/game_mode/nuclear) - cost = 22 - surplus = 0 - -/datum/uplink_item/explosives/bigducky - name = "High Yield Exploding Rubber Duck" - desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on. \ - This variant has been fitted with high yield X4 charges for a larger explosion." - item = /obj/item/deployablemine/traitor/bigboom - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/pizza_bomb - name = "Pizza Bomb" - desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ - opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" - item = /obj/item/pizzabox/bomb - cost = 6 - manufacturer = /datum/corporation/traitor/donkco - surplus = 8 - -/datum/uplink_item/explosives/soap_clusterbang - name = "Slipocalypse Clusterbang" - desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" - item = /obj/item/grenade/clusterbuster/soap - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/explosives/syndicate_bomb - name = "Syndicate Bomb" - desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so. \ - The bomb core can be pried out and manually detonated with other explosives." - item = /obj/item/sbeacondrop/bomb - cost = 11 - -/datum/uplink_item/explosives/syndicate_bomb/emp - name = "Syndicate EMP Bomb" - desc = "A variation of the syndicate bomb designed to produce a large EMP effect." - item = /obj/item/sbeacondrop/emp - cost = 7 - -/datum/uplink_item/explosives/syndicate_detonator - name = "Syndicate Detonator" - desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ - and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ - Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ - the blast radius before using the detonator." - item = /obj/item/syndicatedetonator - cost = 3 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/syndicate_minibomb - name = "Syndicate Minibomb" - desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ - in addition to dealing high amounts of damage to nearby personnel." - item = /obj/item/grenade/syndieminibomb - cost = 6 - exclude_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/tearstache - name = "Tearstache Grenade" - desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ - remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." - item = /obj/item/grenade/chem_grenade/teargas/moustache - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/explosives/viscerators - name = "Viscerator Delivery Grenade" - desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ - any non-operatives in the area." - item = /obj/item/grenade/spawnergrenade/manhacks - cost = 5 - surplus = 35 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -//Support and Mechs -/datum/uplink_item/support - category = "Support and Exosuits" - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/support/clown_reinforcement - name = "Clown Reinforcements" - desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." - item = /obj/item/antag_spawner/nuke_ops/clown - cost = 20 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/support/reinforcement - name = "Reinforcements" - desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ - to arm them as well." - item = /obj/item/antag_spawner/nuke_ops - cost = 25 - refundable = TRUE - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/support/reinforcement/assault_borg - name = "Syndicate Assault Cyborg" - desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ - Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault - refundable = TRUE - cost = 65 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/medical_borg - name = "Syndicate Medical Cyborg" - desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ - It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ - Thanks to its organ storage bag, it can perform surgery as well as any humanoid." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/reinforcement/saboteur_borg - name = "Syndicate Saboteur Cyborg" - desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ - Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ - Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." - item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur - refundable = TRUE - cost = 35 - restricted = TRUE - -/datum/uplink_item/support/gygax - name = "Dark Gygax Exosuit" - desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ - for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." - item = /obj/mecha/combat/gygax/dark/loaded - cost = 80 - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/mecha/combat/honker/dark/loaded - cost = 80 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/support/mauler - name = "Mauler Exosuit" - desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ - and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." - item = /obj/mecha/combat/marauder/mauler/loaded - cost = 140 - -// Stealth Items -/datum/uplink_item/stealthy_tools - category = "Stealth Gadgets" - -/datum/uplink_item/stealthy_tools/agent_card - name = "Agent Identification Card" - desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ - from other identification cards. The access is cumulative, so scanning one card does not erase the \ - access gained from another. In addition, they can be forged to display a new assignment and name. \ - This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ - with these cards." - item = /obj/item/card/id/syndicate - cost = 2 - -/datum/uplink_item/stealthy_tools/ai_detector - name = "Artificial Intelligence Detector" - desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ - activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ - an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ - blind spots can help you identify escape routes." - item = /obj/item/multitool/ai_detect - cost = 1 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/syndireverse - name = "Bluespace Projectile Weapon Disrupter" - desc = "Hidden in an ordinary-looking playing card, this device will teleport an opponent's gun to your hand when they fire at you. Just make sure to hold this in your hand!" - item = /obj/item/syndicateReverseCard - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/stealthy_tools/chameleon - name = "Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anyone on the station, and more! \ - Due to budget cuts, the shoes don't provide protection against slipping." - item = /obj/item/storage/box/syndie_kit/chameleon - cost = 2 - manufacturer = /datum/corporation/traitor/cybersun - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/chameleon_proj - name = "Chameleon Projector" - desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ - move the projector from their hand. Disguised users move slowly, and projectiles pass over them." - item = /obj/item/chameleon - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/codespeak_manual - name = "Codespeak Manual" - desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ - This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." - item = /obj/item/codespeak_manual/unlimited - cost = 3 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/stealthy_tools/combatbananashoes - name = "Combat Banana Shoes" - desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ - can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ - squeak significantly louder." - item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat - cost = 6 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/emplight - name = "EMP Flashlight" - desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ - Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ - Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." - item = /obj/item/flashlight/emp - cost = 2 //yogs no one uses this lol - manufacturer = /datum/corporation/traitor/donkco - surplus = 30 - -/datum/uplink_item/stealthy_tools/mulligan - name = "Mulligan" - desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ - and appearance." - item = /obj/item/reagent_containers/syringe/mulligan - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 30 - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/stealthy_tools/syndigaloshes - name = "No-Slip Chameleon Shoes" - desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ - They do not work on heavily lubricated surfaces." - item = /obj/item/clothing/shoes/chameleon/noslip/syndicate - cost = 2 - manufacturer = /datum/corporation/traitor/waffleco - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - player_minimum = 20 - -/datum/uplink_item/stealthy_tools/syndigaloshes/nuke - item = /obj/item/clothing/shoes/chameleon/noslip/syndicate - cost = 4 - exclude_modes = list() - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/stealthy_tools/jammer - name = "Radio Jammer" - desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." - item = /obj/item/jammer - cost = 5 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/stealthy_tools/smugglersatchel - name = "Smuggler's Satchel" - desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ - your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." - item = /obj/item/storage/backpack/satchel/flat/with_tools - cost = 1 - surplus = 30 - -/datum/uplink_item/stealthy_tools/armorpolish - name = "Armor Polish" - desc = "This two use polish will strengthen clothing to be as strong as a standard-issue armor vest. \ - Reinforced with nanite technology, you are able to stay looking good while bashing heads in. \ - Beware, you can only polish suits and headgear!" - item = /obj/item/armorpolish - cost = 6 - - - -//Space Suits and Hardsuits -/datum/uplink_item/suits - category = "Space Suits" - surplus = 40 - -/datum/uplink_item/suits/space_suit - name = "Syndicate Space Suit" - desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ - fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ - sightings, however." - item = /obj/item/storage/box/syndie_kit/space - cost = 4 - -/datum/uplink_item/suits/hardsuit - name = "Syndicate Hardsuit" - desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ - that runs off standard atmospheric tanks. Toggling the suit in and out of \ - combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ - Additionally the suit is collapsible, making it small enough to fit within a backpack. \ - Nanotrasen crew who spot these suits are known to panic." - item = /obj/item/clothing/suit/space/hardsuit/syndi - cost = 8 - exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better - -/datum/uplink_item/suits/hardsuit/elite - name = "Elite Syndicate Hardsuit" - desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." - item = /obj/item/clothing/suit/space/hardsuit/syndi/elite - cost = 8 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -/datum/uplink_item/suits/hardsuit/shielded - name = "Shielded Syndicate Hardsuit" - desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ - The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." - item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi - cost = 30 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - exclude_modes = list() - -// Devices and Tools -/datum/uplink_item/device_tools - category = "Misc. Gadgets" - -/datum/uplink_item/device_tools/cutouts - name = "Adaptive Cardboard Cutouts" - desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ - This pack contains three as well as a crayon for changing their appearances." - item = /obj/item/storage/box/syndie_kit/cutouts - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 20 - -/datum/uplink_item/device_tools/assault_pod - name = "Assault Pod Targeting Device" - desc = "Use this to select the landing zone of your assault pod." - item = /obj/item/assault_pod - cost = 30 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/binary - name = "Binary Translator Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ - such as AI units and cyborgs, over their private binary channel. Caution should \ - be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." - item = /obj/item/encryptionkey/binary - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/magboots - name = "Blood-Red Magboots" - desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ - during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ - 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." - item = /obj/item/clothing/shoes/magboots/syndie - cost = 2 - -/datum/uplink_item/device_tools/briefcase_launchpad - name = "Briefcase Launchpad" - desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ - Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." - surplus = 0 - item = /obj/item/storage/briefcase/launchpad - cost = 6 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/camera_bug - name = "Camera Bug" - desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ - Bugging cameras allows you to disable them remotely." - item = /obj/item/camera_bug - cost = 1 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 90 - -/datum/uplink_item/device_tools/military_belt - name = "Chest Rig" - desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." - item = /obj/item/storage/belt/military - cost = 1 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/emag - name = "Cryptographic Sequencer" - desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ - in electronic devices, subverts intended functions, and easily breaks security mechanisms." - item = /obj/item/card/emag - cost = 6 - -/datum/uplink_item/device_tools/fakenucleardisk - name = "Decoy Nuclear Authentication Disk" - desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ - Don't try to give this to us to complete your objective, we know better!" - item = /obj/item/disk/nuclear/fake - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 1 - -/datum/uplink_item/device_tools/frame - name = "F.R.A.M.E. PDA Cartridge" - desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ - when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ - You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ - telecrystals normally." - item = /obj/item/cartridge/virus/frame - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - restricted = TRUE - -/datum/uplink_item/device_tools/failsafe - name = "Failsafe Uplink Code" - desc = "When entered the uplink will self-destruct immediately." - item = /obj/effect/gibspawner/generic - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - restricted = TRUE - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) - if(!U) - return - U.failsafe_code = U.generate_code() - var/code = "[islist(U.failsafe_code) ? english_list(U.failsafe_code) : U.failsafe_code]" - to_chat(user, "The new failsafe code for this uplink is now : [code].") - if(user.mind) - user.mind.store_memory("Failsafe code for [U.parent] : [code]") - return U.parent //For log icon - -/datum/uplink_item/device_tools/toolbox - name = "Full Syndicate Toolbox" - desc = "A suspicious black and red syndicate toolbox. It comes loaded with a full tool set including a \ - multitool and combat gloves that are resistant to shocks and heat. It is very compact and will \ - fit in any standard Nanotrasen backpack." - item = /obj/item/storage/toolbox/syndicate - cost = 1 - -/datum/uplink_item/device_tools/hacked_module - name = "Hacked AI Law Upload Module" - desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ - Be careful with wording, as artificial intelligences may look for loopholes to exploit." - item = /obj/item/aiModule/syndicate - cost = 4 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/hypnotic_flash - name = "Hypnotic Flash" - desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." - item = /obj/item/assembly/flash/hypnotic - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/device_tools/medgun - name = "Medbeam Gun" - desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ - operatives in the fight, even while under fire. Don't cross the streams!" - item = /obj/item/gun/medbeam - cost = 8 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/medgun_uber - name = "Augmented Medbeam Gun" - desc = "An augmented version of the classic Medbeam Gun that we picked up off the corpse of a german scientist. \ - It has an invulnerability mode that can be activated for a few seconds after healing for a long while. \ - This one comes uncharged, so be sure to give it a whirl before getting into combat. Goes well with a M-546 Osprey." - item = /obj/item/gun/medbeam/uber - cost = 25 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/singularity_beacon - name = "Power Beacon" - desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ - active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ - in containment. Because of its size, it cannot be carried. Ordering this \ - sends you a small beacon that will teleport the larger beacon to your location upon activation." - item = /obj/item/sbeacondrop - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs - -/datum/uplink_item/device_tools/supermatter_delaminator - name = "Antinoblium Shard" - desc = "A special variant of supermatter crystal reverse engineered by syndicate scientists using samples retrieved by agents. \ - Attaching this to an active supermatter crystal will destabilize the internal crystal well, causing an energy cascade. \ - Ensures a storm of EMP waves that blacks out the entire station and eventually the full delamination of the crystal. \ - Comes with a secure radiation shielded containment box, special tweezers and usage instructions." - item = /obj/item/storage/box/syndie_kit/supermatter_delaminator - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs - -/datum/uplink_item/device_tools/powersink - name = "Power Sink" - desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ - load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ - traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." - item = /obj/item/powersink - cost = 8 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/device_tools/rad_laser - name = "Radioactive Microlaser" - desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ - powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ - of humanoids. It has two settings: intensity, which controls the power of the radiation, \ - and wavelength, which controls the delay before the effect kicks in." - item = /obj/item/healthanalyzer/rad_laser - cost = 4 - manufacturer = /datum/corporation/traitor/donkco - -/datum/uplink_item/device_tools/stimpack - name = "Stimpack" - desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ - 5 minutes after injection." - item = /obj/item/reagent_containers/hypospray/medipen/stimpack/large // Yogs -- Stimpack change - cost = 5 - surplus = 90 - -/datum/uplink_item/device_tools/medkit - name = "Syndicate Combat Medic Kit" - desc = "Included is a combat stimulant injector \ - for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ - and other supplies helpful for a field medic." - item = /obj/item/storage/firstaid/tactical - cost = 4 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - -/datum/uplink_item/device_tools/soap - name = "Syndicate Soap" - desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ - You can also drop it underfoot to slip people." - item = /obj/item/soap/syndie - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 50 - -/datum/uplink_item/device_tools/surgerybag - name = "Syndicate Surgery Duffel Bag" - desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ - a Syndicate brand MMI, a straitjacket, and a muzzle." - item = /obj/item/storage/backpack/duffelbag/syndie/surgery - cost = 3 - -/datum/uplink_item/device_tools/encryptionkey - name = "Syndicate Encryption Key" - desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ - as well as talk on an encrypted Syndicate channel with other agents that have the same key." - item = /obj/item/encryptionkey/syndicate - cost = 2 - surplus = 75 - restricted = TRUE - -/datum/uplink_item/device_tools/syndietome - name = "Syndicate Tome" - desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ - the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ - of the originals, these inferior copies are still quite useful, being able to provide \ - both weal and woe on the battlefield, even if they do occasionally bite off a finger." - item = /obj/item/storage/book/bible/syndicate - cost = 5 - -/datum/uplink_item/device_tools/thermal - name = "Thermal Imaging Glasses" - desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ - They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ - emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ - and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." - item = /obj/item/clothing/glasses/thermal/syndi - cost = 4 - -/datum/uplink_item/device_tools/potion - name = "Syndicate Sentience Potion" - item = /obj/item/slimepotion/slime/sentience/nuclear - desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ - Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." - cost = 4 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - restricted = TRUE - -/datum/uplink_item/device_tools/suspiciousphone - name = "Protocol CRAB-17 Phone" - desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ - The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." - item = /obj/item/suspiciousphone - cost = 7 - manufacturer = /datum/corporation/traitor/waffleco - limited_stock = 1 - -// Implants -/datum/uplink_item/implants - category = "Implants" - surplus = 50 - -/datum/uplink_item/implants/adrenal - name = "Adrenal Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ - cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." - item = /obj/item/storage/box/syndie_kit/imp_adrenal - cost = 8 - player_minimum = 25 - -/datum/uplink_item/implants/antistun - name = "CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." - item = /obj/item/autosurgeon/anti_stun - cost = 12 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/freedom - name = "Freedom Implant" - desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ - user from common restraints such as handcuffs." - item = /obj/item/storage/box/syndie_kit/imp_freedom - cost = 5 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/implants/microbomb - name = "Microbomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - The more implants inside of you, the higher the explosive power. \ - This will permanently destroy your body, however." - item = /obj/item/storage/box/syndie_kit/imp_microbomb - cost = 2 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/macrobomb - name = "Macrobomb Implant" - desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ - Upon death, releases a massive explosion that will wipe out everything nearby." - item = /obj/item/storage/box/syndie_kit/imp_macrobomb - cost = 20 - include_modes = list(/datum/game_mode/nuclear) - restricted = TRUE - -/datum/uplink_item/implants/radio - name = "Internal Syndicate Radio Implant" - desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ - Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." - item = /obj/item/storage/box/syndie_kit/imp_radio - cost = 4 - manufacturer = /datum/corporation/traitor/donkco - restricted = TRUE - -/datum/uplink_item/implants/reviver - name = "Reviver Implant" - desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." - item = /obj/item/autosurgeon/reviver - cost = 8 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/stealthimplant - name = "Stealth Implant" - desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ - On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." - item = /obj/item/storage/box/syndie_kit/imp_stealth - manufacturer = /datum/corporation/traitor/donkco - cost = 8 - -/datum/uplink_item/implants/storage - name = "Storage Implant" - desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ - pocket capable of storing two regular-sized items." - item = /obj/item/storage/box/syndie_kit/imp_storage - cost = 8 - -/datum/uplink_item/implants/thermals - name = "Thermal Eyes" - desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." - item = /obj/item/autosurgeon/thermal_eyes - cost = 8 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/implants/uplink - name = "Uplink Implant" - desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ - Undetectable (except via surgery), and excellent for escaping confinement." - item = /obj/item/storage/box/syndie_kit/imp_uplink - cost = 4 - // An empty uplink is kinda useless. - surplus = 0 - restricted = TRUE - -/datum/uplink_item/implants/mindshield - name = "Syndicate Brainwash Denial Implant" - desc = "An implant injected into the body, to deny brainwashing attempts." - item = /obj/item/storage/box/syndie_kit/imp_mindshield - limited_stock = 3 - player_minimum = 30 - illegal_tech = FALSE // This is a cheap knockoff of NT tech. - surplus = 5 - cost = 1 - manufacturer = /datum/corporation/traitor/waffleco - -/datum/uplink_item/implants/xray - name = "X-ray Vision Implant" - desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." - item = /obj/item/autosurgeon/xray_eyes - cost = 10 - surplus = 0 - include_modes = list(/datum/game_mode/nuclear) - -//Race-specific items -/datum/uplink_item/race_restricted - category = "Species-Restricted" - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/race_restricted/syndilamp - name = "Extra-Bright Lantern" - desc = "We heard that moths such as yourself really like lamps, so we decided to grant you early access to a prototype \ - Syndicate brand \"Extra-Bright Lantern™\". Enjoy." - cost = 2 - item = /obj/item/flashlight/lantern/syndicate - restricted_species = list("moth") - -/datum/uplink_item/race_restricted/syndigenetics - name = "Fire Breath implanter" - desc = "Recently Syndicate scientist have found the formula of returning lizards genetics back in time and giving them the ability to breath fire." - cost = 6 - item = /obj/item/dnainjector/firebreath - restricted_species = list("lizard") - -/datum/uplink_item/race_restricted/flyingfang - name = "Flying Fang Tablet" - desc = "This tablet contains a set of old lizard fighting techniques, increasing your melee combat effectiveness but preventing you from using armor, most common stun weapons, or guns." - cost = 14 - item = /obj/item/book/granter/martial/flyingfang - restricted_species = list("lizard") - -/datum/uplink_item/race_restricted/angelcoolboy - name = "Angel Potion" - desc = "We mixed a bird and a human and we somehow made a potion that turns you into a holy creature." - cost = 5 - item = /obj/item/reagent_containers/glass/bottle/potion/flight/syndicate - restricted_species = list("human") - -/datum/uplink_item/race_restricted/killertomatos - name = "Killer Tomatoes" - desc = "The Syndicates local gardeners brewed these up for our plant comrades (does not work against fellow plants)." - cost = 3 - manufacturer = /datum/corporation/traitor/donkco - item = /obj/item/seeds/tomato/killer - restricted_species = list("pod") - -/datum/uplink_item/race_restricted/radiationbomb - name = "Radiation grenade" - desc = "A radiation bomb guaranteed to irradiate the fuck out of non-gaseous lifeforms." - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/grenade/chem_grenade/radiation - restricted_species = list("plasmaman") - -// Role-specific items -/datum/uplink_item/role_restricted - category = "Role-Restricted" - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - surplus = 0 - -/datum/uplink_item/role_restricted/ancient_jumpsuit - name = "Ancient Jumpsuit" - desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." - item = /obj/item/clothing/under/color/grey/glorf - cost = 20 - restricted_roles = list("Assistant") - surplus = 0 - -/datum/uplink_item/role_restricted/oldtoolboxclean - name = "Ancient Toolbox" - desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." - item = /obj/item/storage/toolbox/mechanical/old/clean - cost = 2 - restricted_roles = list("Assistant") - surplus = 0 - -/datum/uplink_item/role_restricted/pie_cannon - name = "Banana Cream Pie Cannon" - desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" - cost = 10 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/pneumatic_cannon/pie/selfcharge - restricted_roles = list("Clown") - surplus = 0 //No fun unless you're the clown! - -/datum/uplink_item/support/honker - name = "Dark H.O.N.K." - desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." - item = /obj/mecha/combat/honker/dark/loaded - cost = 35 - restricted_roles = list("Clown") - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - -/datum/uplink_item/role_restricted/arm_medical_gun - name = "Arm Mounted Medical Beamgun" - desc = "An arm mounted medical beamgun to heal your best buds (disclaimer: does not come with friends)." - item = /obj/item/autosurgeon/medibeam - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Paramedic", "Mining Medic") //yogs - cost = 8 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/role_restricted/cat_grenade - name = "Feral Cat Delivery Grenade" - desc = "The feral cat delivery grenade contains 5 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight." - item = /obj/item/grenade/spawnergrenade/feral_cats - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Psychiatrist")///why? Becuase its funny that a person in charge of your mental wellbeing has a cat granade..<---(he cant spell) - -/datum/uplink_item/role_restricted/blastcannon - name = "Blast Cannon" - desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ - withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ - blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ - disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." - item = /obj/item/gun/blastcannon - cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Research Director", "Scientist") - -/datum/uplink_item/role_restricted/gorillacubes - name = "Box of Gorilla Cubes" - desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ - Caution: Product may rehydrate when exposed to water." - item = /obj/item/storage/box/gorillacubes - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/brainwash_disk - name = "Brainwashing Surgery Program" - desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ - Insert into an Operating Console to enable the procedure." - item = /obj/item/disk/surgery/brainwashing - restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist", "Mining Medic") //yogs - cost = 5 - manufacturer = /datum/corporation/traitor/cybersun - -/datum/uplink_item/role_restricted/clown_bomb - name = "Clown Bomb" - desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ - with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ - movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ - transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ - be defused, and some crew may attempt to do so." - item = /obj/item/sbeacondrop/clownbomb - cost = 7 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/spider_injector - name = "Australicus Slime Mutator" - desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ - some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ - to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ - also give them a bit of sentience though." - item = /obj/item/reagent_containers/syringe/spider_extract - cost = 25 //yogs - increase price to reduce grief potential - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Research Director", "Scientist", "Roboticist") - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs // >Increase price to reduce grief > limit it to hijack only :think: - -/datum/uplink_item/role_restricted/clowncar - name = "Clown Car" - desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ - Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ - You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ - someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ - are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ - Premium features can be unlocked with a cryptographic sequencer!" - item = /obj/vehicle/sealed/car/clowncar - cost = 20 - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/concealed_weapon_bay - name = "Concealed Weapon Bay" - desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ - It also hides the equipped weapon from plain sight. \ - Only one can fit on a mecha." - item = /obj/item/mecha_parts/concealed_weapon_bay - cost = 3 - manufacturer = /datum/corporation/traitor/donkco - restricted_roles = list("Roboticist", "Research Director") - -/datum/uplink_item/role_restricted/haunted_magic_eightball - name = "Haunted Magic Eightball" - desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ - Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." - item = /obj/item/toy/eightball/haunted - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - restricted_roles = list("Chaplain","Curator") - limited_stock = 1 //please don't spam deadchat - -/datum/uplink_item/role_restricted/his_grace - name = "His Grace" - desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ - His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ - However, if left alone for long enough, He will fall back to slumber. \ - To activate His Grace, simply unlatch Him." - item = /obj/item/his_grace - cost = 20 - restricted_roles = list("Chaplain") - surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain - -/datum/uplink_item/role_restricted/explosive_hot_potato - name = "Exploding Hot Potato" - desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ - The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." - item = /obj/item/hot_potato/syndicate - cost = 4 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 0 - restricted_roles = list("Cook", "Botanist", "Clown", "Mime") - -/datum/uplink_item/role_restricted/ez_clean_bundle - name = "EZ Clean Grenade Bundle" - desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ - The acid only affects carbon-based creatures." - item = /obj/item/storage/box/syndie_kit/ez_clean - cost = 6 - manufacturer = /datum/corporation/traitor/waffleco - surplus = 20 - restricted_roles = list("Janitor") - -/datum/uplink_item/role_restricted/mimery - name = "Guide to Advanced Mimery Series" - desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ - Obviously only works for Mimes." - cost = 12 - item = /obj/item/storage/box/syndie_kit/mimery - restricted_roles = list("Mime") - surplus = 0 - -/datum/uplink_item/role_restricted/pressure_mod - name = "Kinetic Accelerator Pressure Mod" - desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ - Occupies 35% mod capacity." - item = /obj/item/borg/upgrade/modkit/indoors - cost = 5 //you need two for full damage, so total of 10 for maximum damage - manufacturer = /datum/corporation/traitor/donkco // Unless you're donk co, then it's 8 - limited_stock = 2 //you can't use more than two! - restricted_roles = list("Shaft Miner", "Mining Medic") //yogs - -/datum/uplink_item/role_restricted/magillitis_serum - name = "Magillitis Serum Autoinjector" - desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ - Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." - item = /obj/item/reagent_containers/hypospray/magillitis - cost = 15 - manufacturer = /datum/corporation/traitor/waffleco - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/modified_syringe_gun - name = "Modified Syringe Gun" - desc = "A syringe gun that fires DNA injectors instead of normal syringes." - item = /obj/item/gun/syringe/dna - cost = 14 - restricted_roles = list("Geneticist", "Chief Medical Officer") - -/datum/uplink_item/role_restricted/chemical_gun - name = "Reagent Dartgun" - desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." - item = /obj/item/gun/chem - cost = 12 - restricted_roles = list("Chemist", "Chief Medical Officer", "Virologist") - -/datum/uplink_item/role_restricted/reverse_bear_trap - name = "Reverse Bear Trap" - desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ - violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ - head after three seconds uninterrupted." - cost = 5 - item = /obj/item/reverse_bear_trap - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/reverse_revolver - name = "Reverse Revolver" - desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ - The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." - cost = 14 - manufacturer = /datum/corporation/traitor/waffleco - item = /obj/item/storage/box/hug/reverse_revolver - restricted_roles = list("Clown") - -/datum/uplink_item/role_restricted/hierophant_antenna - name = "Hierophant's Antenna" - desc = "Amplifies the reception signals of the hierophant staff, allows the herald's power to reach the station!" - cost = 14 - manufacturer = /datum/corporation/traitor/cybersun - item = /obj/item/hierophant_antenna - restricted_roles = list("Shaft Miner") - -// Pointless -/datum/uplink_item/badass - category = "(Pointless) Badassery" - surplus = 0 - -/datum/uplink_item/badass/costumes/obvious_chameleon - name = "Broken Chameleon Kit" - desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ - Please note that this kit did NOT pass quality control." - item = /obj/item/storage/box/syndie_kit/chameleon/broken - -/datum/uplink_item/badass/costumes - surplus = 0 - include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) - cost = 4 - cant_discount = TRUE - -/datum/uplink_item/badass/costumes/centcom_official - name = "CentCom Official Costume" - desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ - Radio headset does not include encryption key. No gun included." - item = /obj/item/storage/box/syndie_kit/centcom_costume - -/datum/uplink_item/badass/costumes/clown - name = "Clown Costume" - desc = "Nothing is more terrifying than clowns with fully automatic weaponry." - item = /obj/item/storage/backpack/duffelbag/clown/syndie - -/datum/uplink_item/badass/crafting_weapons - name = "Makeshift Weapons" - desc = "A one use book that grants access to a number of secret crafting recipes once it has been read." - item = /obj/item/book/granter/crafting_recipe/weapons - cost = 4 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiefedora - name = "Syndicate Fedora" - desc = "This Syndicate Fedora of micro-woven adamantium silk is sure to prove your style!" - item = /obj/item/clothing/head/det_hat/evil - cost = 3 - -/datum/uplink_item/badass/balloon - name = "Syndicate Balloon" - desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ - Can blow the deepest of covers." - item = /obj/item/toy/syndicateballoon - cost = 20 - cant_discount = TRUE - illegal_tech = FALSE - -/datum/uplink_item/badass/syndiecash - name = "Syndicate Briefcase Full of Cash" - desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ - and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ - manufactured to pack a little bit more of a punch if your client needs some convincing." - item = /obj/item/storage/secure/briefcase/syndie - cost = 1 - restricted = TRUE - -/datum/uplink_item/badass/syndiecards - name = "Syndicate Playing Cards" - desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ - making them slightly more robust than a normal deck of cards. \ - You can also play card games with them or leave them on your victims." - item = /obj/item/toy/cards/deck/syndicate - cost = 1 - manufacturer = /datum/corporation/traitor/donkco - surplus = 40 - -/datum/uplink_item/badass/syndiecigs - name = "Syndicate Smokes" - desc = "Strong flavor, dense smoke, infused with omnizine." - item = /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate - cost = 2 - manufacturer = /datum/corporation/traitor/donkco - illegal_tech = FALSE - -/datum/uplink_item/badass/antagcape - name = "Red Syndicate Cape" - desc = "A cape to show off your small-time thuggery." - item = /obj/item/clothing/neck/skillcape/antag - cost = 10 - illegal_tech = FALSE - -/datum/uplink_item/badass/antagcapetrimmed - name = "Bloody Shiny Syndicate Cape" - desc = "A cape to show off your grand villainous deeds." - item = /obj/item/clothing/neck/skillcape/trimmed/antag - cost = 20 - illegal_tech = FALSE +GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) + +/proc/get_uplink_items(var/datum/game_mode/gamemode = null, allow_sales = TRUE, allow_restricted = TRUE) + var/list/filtered_uplink_items = list() + var/list/sale_items = list() + + for(var/path in GLOB.uplink_items) + var/datum/uplink_item/I = new path + if(!I.item) + continue + if(I.include_modes.len) + if(!gamemode && SSticker.mode && !(SSticker.mode.type in I.include_modes)) + continue + if(gamemode && !(gamemode in I.include_modes)) + continue + if(I.exclude_modes.len) + if(!gamemode && SSticker.mode && (SSticker.mode.type in I.exclude_modes)) + continue + if(gamemode && (gamemode in I.exclude_modes)) + continue + if(I.player_minimum && I.player_minimum > GLOB.joined_player_list.len) + continue + if (I.restricted && !allow_restricted) + continue + + if(!filtered_uplink_items[I.category]) + filtered_uplink_items[I.category] = list() + filtered_uplink_items[I.category][I.name] = I + if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) + sale_items += I + if(allow_sales) + var/datum/team/nuclear/nuclear_team + if (gamemode == /datum/game_mode/nuclear) // uplink code kind of needs a redesign + nuclear_team = locate() in GLOB.antagonist_teams // the team discounts could be a in a GLOB with this design but it would make sense for them to be team specific... + if (!nuclear_team) + create_uplink_sales(3, "Discounted Gear", 1, sale_items, filtered_uplink_items) + else + if (!nuclear_team.team_discounts) + // create 5 unlimited stock discounts + create_uplink_sales(5, "Discounted Team Gear", -1, sale_items, filtered_uplink_items) + // Create 10 limited stock discounts + create_uplink_sales(10, "Limited Stock Team Gear", 1, sale_items, filtered_uplink_items) + nuclear_team.team_discounts = list("Discounted Team Gear" = filtered_uplink_items["Discounted Team Gear"], "Limited Stock Team Gear" = filtered_uplink_items["Limited Stock Team Gear"]) + else + for(var/cat in nuclear_team.team_discounts) + for(var/item in nuclear_team.team_discounts[cat]) + var/datum/uplink_item/D = nuclear_team.team_discounts[cat][item] + var/datum/uplink_item/O = filtered_uplink_items[initial(D.category)][initial(D.name)] + O.refundable = FALSE + + filtered_uplink_items["Discounted Team Gear"] = nuclear_team.team_discounts["Discounted Team Gear"] + filtered_uplink_items["Limited Stock Team Gear"] = nuclear_team.team_discounts["Limited Stock Team Gear"] + + + return filtered_uplink_items + +/proc/create_uplink_sales(num, category_name, limited_stock, sale_items, uplink_items) + if (num <= 0) + return + + if(!uplink_items[category_name]) + uplink_items[category_name] = list() + + for (var/i in 1 to num) + var/datum/uplink_item/I = pick_n_take(sale_items) + var/datum/uplink_item/A = new I.type + var/discount = A.get_discount() + var/list/disclaimer = list("Void where prohibited.", "Not recommended for children.", "Contains small parts.", "Check local laws for legality in region.", "Do not taunt.", "Not responsible for direct, indirect, incidental or consequential damages resulting from any defect, error or failure to perform.", "Keep away from fire or flames.", "Product is provided \"as is\" without any implied or expressed warranties.", "As seen on TV.", "For recreational use only.", "Use only as directed.", "16% sales tax will be charged for orders originating within Space Nebraska.") + A.limited_stock = limited_stock + if(A.cost >= 20) //Tough love for nuke ops + discount *= 0.5 + A.category = category_name + A.cost = max(round(A.cost * discount),1) + A.name += " ([round(((initial(A.cost)-A.cost)/initial(A.cost))*100)]% off!)" + A.desc += " Normally costs [initial(A.cost)] TC. All sales final. [pick(disclaimer)]" + A.item = I.item + if (A.refundable) + var/obj/item/antag_spawner/S = new A.item() + S.discountPrice = A.cost + A.item = S + uplink_items[category_name][A.name] = A + + +/** + * Uplink Items + * + * Items that can be spawned from an uplink. Can be limited by gamemode. +**/ +/datum/uplink_item + var/name = "item name" + var/category = "item category" + var/desc = "item description" + var/item = null // Path to the item to spawn. + var/refund_path = null // Alternative path for refunds, in case the item purchased isn't what is actually refunded (ie: holoparasites). + var/cost = 0 + var/refund_amount = 0 // specified refund amount in case there needs to be a TC penalty for refunds. + var/refundable = FALSE + var/surplus = 100 // Chance of being included in the surplus crate. + var/cant_discount = FALSE + var/limited_stock = -1 //Setting this above zero limits how many times this item can be bought by the same traitor in a round, -1 is unlimited + var/list/include_modes = list() // Game modes to allow this item in. + var/list/exclude_modes = list() // Game modes to disallow this item from. + var/list/restricted_roles = list() //If this uplink item is only available to certain roles. Roles are dependent on the frequency chip or stored ID. + var/player_minimum //The minimum crew size needed for this item to be added to uplinks. + var/purchase_log_vis = TRUE // Visible in the purchase log? + var/restricted = FALSE // Adds restrictions for VR/Events + var/list/restricted_species //Limits items to a specific species. Hopefully. + var/illegal_tech = TRUE // Can this item be deconstructed to unlock certain techweb research nodes? + /// the manufacturer of the item. Gives up to a 20% discount if you're from that corporation + var/datum/corporation/manufacturer + +/datum/uplink_item/proc/get_discount() + return pick(4;0.75,2;0.5,1;0.25) + +/datum/uplink_item/proc/purchase(mob/user, datum/component/uplink/U) + var/atom/A = spawn_item(item, user, U) + if(purchase_log_vis && U.purchase_log) + U.purchase_log.LogPurchase(A, src, cost) + +/datum/uplink_item/proc/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!spawn_path) + return + var/atom/A + if(ispath(spawn_path)) + A = new spawn_path(get_turf(user)) + else + A = spawn_path + if(ishuman(user) && istype(A, /obj/item)) + var/mob/living/carbon/human/H = user + if(H.put_in_hands(A)) + to_chat(H, "[A] materializes into your hands!") + return A + to_chat(user, "[A] materializes onto the floor.") + return A + +//Discounts (dynamically filled above) +/datum/uplink_item/discounts + category = "Discounts" + +//All bundles and telecrystals +/datum/uplink_item/bundles_TC + category = "Bundles" + surplus = 0 + cant_discount = TRUE + +/datum/uplink_item/bundles_TC/chemical + name = "Bioterror bundle" + desc = "For the madman: Contains a handheld Bioterror chem sprayer, a Bioterror foam grenade, a box of lethal chemicals, a dart pistol, \ + box of syringes, Donksoft assault rifle, and some riot darts. Remember: Seal suit and equip internals before use." + item = /obj/item/storage/backpack/duffelbag/syndie/med/bioterrorbundle + cost = 30 // normally 42 + manufacturer = /datum/corporation/traitor/donkco + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bulldog + name = "Bulldog bundle" + desc = "Lean and mean: Optimized for people that want to get up close and personal. Contains the popular \ + Bulldog shotgun, two 12g buckshot drums, and a pair of Thermal imaging goggles." + item = /obj/item/storage/backpack/duffelbag/syndie/bulldogbundle + cost = 13 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/c20r + name = "C-20r bundle" + desc = "Old Faithful: The classic C-20r, bundled with two magazines and a (surplus) suppressor at discount price." + item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle + cost = 14 // normally 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/cyber_implants + name = "Cybernetic Implants Bundle" + desc = "A random selection of cybernetic implants. Guaranteed 5 high quality implants. Comes with an autosurgeon." + item = /obj/item/storage/box/cyber_implants + cost = 40 + manufacturer = /datum/corporation/traitor/cybersun + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/medical + name = "Medical bundle" + desc = "The support specialist: Aid your fellow operatives with this medical bundle. Contains a tactical medkit, \ + a Donksoft LMG, a box of riot darts and a pair of magboots to rescue your friends in no-gravity environments." + item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle + cost = 15 // normally 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/sniper + name = "Sniper bundle" + desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ + two soporific knockout magazines, a free surplus suppressor, and a sharp-looking tactical turtleneck suit. \ + We'll throw in a free red tie if you order NOW." + item = /obj/item/storage/briefcase/sniperbundle + cost = 20 // normally 26 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/firestarter + name = "Spetsnaz Pyro bundle" + desc = "For systematic suppression of carbon lifeforms in close quarters: Contains a lethal New Russian backpack spray, Elite hardsuit, \ + Stechkin APS pistol, two magazines, a minibomb and a stimulant syringe. \ + Order NOW and comrade Boris will throw in an extra tracksuit." + item = /obj/item/storage/backpack/duffelbag/syndie/firestarter + cost = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/contract_kit + name = "Contract Kit" + desc = "The Syndicate have offered you the chance to become a contractor, take on kidnapping contracts for TC and cash payouts. Upon purchase, \ + you'll be granted your own contract uplink embedded within the supplied tablet computer. Additionally, you'll be granted \ + standard contractor gear to help with your mission - comes supplied with the tablet, specialised space suit, chameleon jumpsuit and mask, \ + agent card, specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." + item = /obj/item/storage/box/syndicate/contract_kit + cost = 20 + player_minimum = 20 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/bundles_TC/bundle_A + name = "Syndi-kit Tactical" + desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ + These items are collectively worth more than 20 telecrystals, but you do not know which specialization \ + you will receive. May contain discontinued and/or exotic items." + item = /obj/item/storage/box/syndicate/bundle_A + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/bundle_B + name = "Syndi-kit Special" + desc = "Syndicate Bundles, also known as Syndi-Kits, are specialized groups of items that arrive in a plain box. \ + In Syndi-kit Special, you will receive items used by famous syndicate agents of the past. Collectively worth more than 20 telecrystals, the syndicate loves a good throwback." + item = /obj/item/storage/box/syndicate/bundle_B + cost = 20 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/bundles_TC/surplus + name = "Syndicate Surplus Crate" + desc = "A dusty crate from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 50 TC." + item = /obj/structure/closet/crate + cost = 20 + player_minimum = 25 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + var/starting_crate_value = 50 + +/datum/uplink_item/bundles_TC/surplus/super + name = "Super Surplus Crate" + desc = "A dusty SUPER-SIZED from the back of the Syndicate warehouse. Rumored to contain a valuable assortment of items, \ + but you never know. Contents are sorted to always be worth 125 TC." + cost = 40 + player_minimum = 40 + starting_crate_value = 125 + +/datum/uplink_item/bundles_TC/surplus/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = get_uplink_items(SSticker && SSticker.mode? SSticker.mode : null, FALSE) + + var/crate_value = starting_crate_value + var/obj/structure/closet/crate/C = spawn_item(/obj/structure/closet/crate, user, U) + if(U.purchase_log) + U.purchase_log.LogPurchase(C, src, cost) + while(crate_value) + var/category = pick(uplink_items) + var/item = pick(uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + + if(!I.surplus || prob(100 - I.surplus)) + continue + if(crate_value < I.cost) + continue + crate_value -= I.cost + var/obj/goods = new I.item(C) + if(U.purchase_log) + U.purchase_log.LogPurchase(goods, I, 0) + return C + +/datum/uplink_item/bundles_TC/random + name = "Random Item" + desc = "Picking this will purchase a random item. Useful if you have some TC to spare or if you haven't decided on a strategy yet." + item = /obj/effect/gibspawner/generic // non-tangible item because techwebs use this path to determine illegal tech + cost = 0 + +/datum/uplink_item/bundles_TC/random/purchase(mob/user, datum/component/uplink/U) + var/list/uplink_items = U.uplink_items + var/list/possible_items = list() + for(var/category in uplink_items) + for(var/item in uplink_items[category]) + var/datum/uplink_item/I = uplink_items[category][item] + if(src == I || !I.item) + continue + if(U.telecrystals < I.cost) + continue + if(I.limited_stock == 0) + continue + possible_items += I + + if(possible_items.len) + var/datum/uplink_item/I = pick(possible_items) + SSblackbox.record_feedback("tally", "traitor_random_uplink_items_gotten", 1, initial(I.name)) + U.MakePurchase(user, I) + +/datum/uplink_item/bundles_TC/telecrystal + name = "1 Raw Telecrystal" + desc = "A telecrystal in its rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal + cost = 1 + // Don't add telecrystals to the purchase_log since + // it's just used to buy more items (including itself!) + purchase_log_vis = FALSE + +/datum/uplink_item/bundles_TC/telecrystal/five + name = "5 Raw Telecrystals" + desc = "Five telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/five + cost = 5 + +/datum/uplink_item/bundles_TC/telecrystal/twenty + name = "20 Raw Telecrystals" + desc = "Twenty telecrystals in their rawest and purest form; can be utilized on active uplinks to increase their telecrystal count." + item = /obj/item/stack/telecrystal/twenty + cost = 20 + +// Dangerous Items +/datum/uplink_item/dangerous + category = "Conspicuous Weapons" + +/datum/uplink_item/dangerous/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher" + desc = "A reusable rocket propelled grenade launcher preloaded with a low-yield 84mm HE round. \ + Guaranteed to send your target out with a bang or your money back!" + item = /obj/item/gun/ballistic/rocketlauncher + cost = 8 + surplus = 30 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/pneumatic_cannon/pie/selfcharge + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bananashield + name = "Bananium Energy Shield" + desc = "A clown's most powerful defensive weapon, this personal shield provides near immunity to ranged energy attacks \ + by bouncing them back at the ones who fired them. It can also be thrown to bounce off of people, slipping them, \ + and returning to you even if you miss. WARNING: DO NOT ATTEMPT TO STAND ON SHIELD WHILE DEPLOYED, EVEN IF WEARING ANTI-SLIP SHOES." + item = /obj/item/shield/energy/bananium + cost = 16 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/clownsword + name = "Bananium Energy Sword" + desc = "An energy sword that deals no damage, but will slip anyone it contacts, be it by melee attack, thrown \ + impact, or just stepping on it. Beware friendly fire, as even anti-slip shoes will not protect against it." + item = /obj/item/melee/transforming/energy/sword/bananium + cost = 3 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bioterror + name = "Biohazardous Chemical Sprayer" + desc = "A handheld chemical sprayer that allows a wide dispersal of selected chemicals. Especially tailored by the Tiger \ + Cooperative, the deadly blend it comes stocked with will disorient, damage, and disable your foes... \ + Use with extreme caution, to prevent exposure to yourself and your fellow operatives." + item = /obj/item/reagent_containers/spray/chemsprayer/bioterror + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/throwingweapons + name = "Box of Throwing Weapons" + desc = "A box of shurikens and reinforced bolas from ancient Earth martial arts. They are highly effective \ + throwing weapons. The bolas can knock a target down and the shurikens will embed into limbs." + item = /obj/item/storage/box/syndie_kit/throwing_weapons + cost = 3 + +/datum/uplink_item/dangerous/shotgun + name = "Bulldog Shotgun" + desc = "A fully-loaded semi-automatic drum-fed shotgun. Compatible with all 12g rounds. Designed for close \ + quarter anti-personnel engagements." + item = /obj/item/gun/ballistic/shotgun/bulldog + cost = 8 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/smg + name = "C-20r Submachine Gun" + desc = "A fully-loaded Scarborough Arms bullpup submachine gun. The C-20r fires .45 rounds with a \ + 24-round magazine and is compatible with suppressors." + item = /obj/item/gun/ballistic/automatic/c20r + cost = 10 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/doublesword + name = "Double-Bladed Energy Sword" + desc = "The double-bladed energy sword does slightly more damage than a standard energy sword and will deflect \ + all energy projectiles, but requires two hands to wield." + item = /obj/item/twohanded/dualsaber + player_minimum = 25 + cost = 16 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/doublesword/get_discount() + return pick(4;0.8,2;0.65,1;0.5) + +/datum/uplink_item/dangerous/sword + name = "Energy Sword" + desc = "The energy sword is an edged weapon with a blade of pure energy. The sword is small enough to be \ + pocketed when inactive. Activating it produces a loud, distinctive noise." + item = /obj/item/melee/transforming/energy/sword/saber + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bostaff + name = "Bo Staff" + desc = "A wielded wooden staff that can be used to incapacitate opponents if intending to disarm." + item = /obj/item/twohanded/bostaff + cost = 8 + +/datum/uplink_item/dangerous/shield + name = "Energy Shield" + desc = "An incredibly useful personal shield projector, capable of reflecting energy projectiles and defending \ + against other attacks. Pair with an Energy Sword for a killer combination." + item = /obj/item/shield/energy + cost = 16 + surplus = 20 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/flamethrower + name = "Flamethrower" + desc = "A flamethrower, fueled by a portion of highly flammable biotoxins stolen previously from Nanotrasen \ + stations. Make a statement by roasting the filth in their own greed. Use with caution." + item = /obj/item/flamethrower/full/tank + cost = 4 + surplus = 40 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/rapid + name = "Gloves of the North Star" + desc = "These gloves let the user punch people very fast. Does not improve weapon attack speed or the meaty fists of a hulk." + item = /obj/item/clothing/gloves/rapid + cost = 8 + +/datum/uplink_item/dangerous/guardian + name = "Holoparasites" + desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an \ + organic host as a home base and source of fuel. Holoparasites come in various types and share damage with their host." + item = /obj/item/guardiancreator/tech + cost = 15 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 0 + //exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) //yogs: removes restrictions on liabilit- I mean punchghosts + player_minimum = 25 + restricted = TRUE + +/datum/uplink_item/dangerous/machinegun + name = "L6 Squad Automatic Weapon" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 7.12x82mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + cost = 20 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/minigun + name = "M-546 Osprey" + desc = "A fully-loaded minigun which packs a big punch. \ + This deadly giant weapon has a massive 500-round magazine of devastating 5.46mm caseless ammunition.\ + Slaughter your enemies through sheer force. We made this gun so advanced that it fires the whole bullet.\ + Thats 60% more bullet per bullet and no more useless casings!" + item = /obj/item/minigunbackpack + cost = 36 + surplus = 0 + cant_discount = TRUE + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/carbine + name = "M-90gl Carbine" + desc = "A fully-loaded, specialized three-round burst carbine that fires 5.56mm ammunition from a 30 round magazine \ + with a toggleable 40mm underbarrel grenade launcher." + item = /obj/item/gun/ballistic/automatic/m90 + cost = 18 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/powerfist + name = "Power Fist" + desc = "The power-fist is a metal gauntlet with a built-in piston-ram powered by an external gas supply.\ + Upon hitting a target, the piston-ram will extend forward to make contact for some serious damage. \ + Using a wrench on the piston valve will allow you to tweak the amount of gas used per punch to \ + deal extra damage and hit targets further. Use a screwdriver to take out any attached tanks." + item = /obj/item/melee/powerfist + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/dangerous/sniper + name = "Sniper Rifle" + desc = "Ranged fury, Syndicate style. Guaranteed to cause shock and awe or your TC back!" + item = /obj/item/gun/ballistic/automatic/sniper_rifle/syndicate + cost = 16 + surplus = 25 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/pistol + name = "Stechkin Pistol" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors." + item = /obj/item/gun/ballistic/automatic/pistol + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/bolt_action + name = "Surplus Rifle" + desc = "A horribly outdated bolt action weapon. You've got to be desperate to use this." + item = /obj/item/gun/ballistic/rifle/boltaction + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/revolver + name = "Syndicate Revolver" + desc = "A brutally simple Syndicate revolver that fires .357 Magnum rounds and has 7 chambers." + item = /obj/item/gun/ballistic/revolver + cost = 13 + surplus = 50 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/dangerous/foamsmg + name = "Toy Submachine Gun" + desc = "A fully-loaded Donksoft bullpup submachine gun that fires riot grade darts with a 20-round magazine." + item = /obj/item/gun/ballistic/automatic/c20r/toy + cost = 5 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foammachinegun + name = "Toy Machine Gun" + desc = "A fully-loaded Donksoft belt-fed machine gun. This weapon has a massive 50-round magazine of devastating \ + riot grade darts, that can briefly incapacitate someone in just one volley." + item = /obj/item/gun/ballistic/automatic/l6_saw/toy + cost = 10 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/dangerous/foampistol + name = "Toy Pistol with Riot Darts" + desc = "An innocent-looking toy pistol designed to fire foam darts. Comes loaded with riot-grade \ + darts effective at incapacitating a target." + item = /obj/item/gun/ballistic/automatic/toy/pistol/riot + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 10 + +// Stealthy Weapons +/datum/uplink_item/stealthy_weapons + category = "Stealthy Weapons" + +/datum/uplink_item/stealthy_weapons/combatglovesplus + name = "Combat Gloves Plus" + desc = "A pair of gloves that are fireproof and shock resistant, however unlike the regular Combat Gloves this one uses nanotechnology \ + to learn the abilities of krav maga to the wearer." + item = /obj/item/clothing/gloves/krav_maga/combatglovesplus + cost = 5 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/stealthy_weapons/cqc + name = "CQC Manual" + desc = "A manual that teaches a single user tactical Close-Quarters Combat before self-destructing." + item = /obj/item/book/granter/martial/cqc + cost = 13 + surplus = 0 + +/datum/uplink_item/stealthy_weapons/dart_pistol + name = "Dart Pistol" + desc = "A miniaturized version of a normal syringe gun. It is very quiet when fired and can fit into any \ + space a small item can." + item = /obj/item/gun/syringe/syndicate + cost = 4 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/dehy_carp + name = "Dehydrated Space Carp" + desc = "Looks like a plush toy carp, but just add water and it becomes a real-life space carp! Activate in \ + your hand before use so it knows not to kill you." + item = /obj/item/toy/plush/carpplushie/dehy_carp + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/stealthy_weapons/edagger + name = "Energy Dagger" + desc = "A dagger made of energy that looks and functions as a pen when off." + item = /obj/item/pen/edagger + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/stealthy_weapons/martialarts + name = "Martial Arts Scroll" + desc = "This scroll contains the secrets of an ancient martial arts technique. You will master unarmed combat, \ + deflecting all ranged weapon fire when throwmode is enabled, but you also refuse to use dishonorable ranged weaponry." + item = /obj/item/book/granter/martial/carp + cost = 14 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_weapons/crossbow + name = "Miniature Energy Crossbow" + desc = "A short bow mounted across a tiller in miniature. \ + Small enough to fit into a pocket or slip into a bag unnoticed. \ + It will synthesize and fire bolts tipped with a debilitating \ + toxin that will damage and disorient targets, causing them to \ + slur as if inebriated. It can produce an infinite number \ + of bolts, but takes time to automatically recharge after each shot." + item = /obj/item/gun/energy/kinetic_accelerator/crossbow + cost = 11 + surplus = 50 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/origami_kit + name = "Boxed Origami Kit" + desc = "This box contains a guide on how to craft masterful works of origami, allowing you to transform normal pieces of paper into \ + perfectly aerodynamic (and potentially lethal) paper airplanes." + item = /obj/item/storage/box/syndie_kit/origami_bundle + cost = 14 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear) //clown ops intentionally left in, because that seems like some s-tier shenanigans. + +/datum/uplink_item/stealthy_weapons/traitor_chem_bottle + name = "Poison Kit" + desc = "An assortment of deadly chemicals packed into a compact box. Comes with a syringe for more precise application." + item = /obj/item/storage/box/syndie_kit/chemical + cost = 6 + surplus = 50 + +/datum/uplink_item/stealthy_weapons/romerol_kit + name = "Romerol" + desc = "A highly experimental bioterror agent which creates dormant nodules to be etched into the grey matter of the brain. \ + On death, these nodules take control of the dead body, causing limited revivification, \ + along with slurred speech, aggression, and the ability to infect others with this agent." + item = /obj/item/storage/box/syndie_kit/romerol + cost = 25 + cant_discount = TRUE + +/datum/uplink_item/stealthy_weapons/sleepy_pen + name = "Sleepy Pen" + desc = "A syringe disguised as a functional pen, filled with a potent mix of drugs, including a \ + strong anesthetic and a chemical that prevents the target from speaking. \ + The pen holds one dose of the mixture. Note that before the target \ + falls asleep, they will be able to move and act." + item = /obj/item/pen/sleepy + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_weapons/suppressor + name = "Suppressor" + desc = "This suppressor will silence the shots of the weapon it is attached to for increased stealth and superior ambushing capability. It is compatible with many small ballistic guns including the Stechkin and C-20r, but not revolvers or energy guns." + item = /obj/item/suppressor + cost = 3 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +// Ammunition +/datum/uplink_item/ammo + category = "Ammunition" + surplus = 40 + +/datum/uplink_item/ammo/pistol + name = "10mm Handgun Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol." + item = /obj/item/ammo_box/magazine/m10mm + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolap + name = "10mm Armour Piercing Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/m10mm/ap + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolhp + name = "10mm Hollow Point Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/m10mm/hp + cost = 3 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/pistolfire + name = "10mm Incendiary Magazine" + desc = "An additional 8-round 10mm magazine; compatible with the Stechkin Pistol. \ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire + cost = 2 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/shotgun + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/bag + name = "12g Ammo Duffel Bag" + desc = "A duffel bag filled with enough 12g ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun + cost = 12 + +/datum/uplink_item/ammo/shotgun/buck + name = "12g Buckshot Drum" + desc = "An additional 8-round buckshot magazine for use with the Bulldog shotgun. Front towards enemy." + item = /obj/item/ammo_box/magazine/m12g + +/datum/uplink_item/ammo/shotgun/dragon + name = "12g Dragon's Breath Drum" + desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. \ + 'I'm a fire starter, twisted fire starter!'" + item = /obj/item/ammo_box/magazine/m12g/dragon + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/meteor + name = "12g Meteorslug Shells" + desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ + Great for blasting airlocks off their frames and knocking down enemies." + item = /obj/item/ammo_box/magazine/m12g/meteor + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/shotgun/slug + name = "12g Slug Drum" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." + cost = 3 + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo/revolver + name = ".357 Speed Loader" + desc = "A speed loader that contains seven additional .357 Magnum rounds; usable with the Syndicate revolver. \ + For when you really need a lot of things dead." + item = /obj/item/ammo_box/a357 + cost = 4 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + illegal_tech = FALSE + +/datum/uplink_item/ammo/a40mm + name = "40mm Grenade" + desc = "A 40mm HE grenade for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways." + item = /obj/item/ammo_casing/a40mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg/bag + name = ".45 Ammo Duffel Bag" + desc = "A duffel bag filled with enough .45 ammo to supply an entire team, at a discounted price." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/smg + cost = 20 //instead of 27 TC + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/smg + name = ".45 SMG Magazine" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + cost = 3 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/sniper/basic + name = ".50 Magazine" + desc = "An additional standard 6-round magazine for use with .50 sniper rifles." + item = /obj/item/ammo_box/magazine/sniper_rounds + +/datum/uplink_item/ammo/sniper/penetrator + name = ".50 Penetrator Magazine" + desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \ + Can pierce walls and multiple enemies." + item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator + cost = 5 + +/datum/uplink_item/ammo/sniper/soporific + name = ".50 Soporific Magazine" + desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/soporific + cost = 6 + +/datum/uplink_item/ammo/carbine + name = "5.56mm Toploader Magazine" + desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 7.12x82mm rounds, but they still offer more power than .45 ammo." + item = /obj/item/ammo_box/magazine/m556 + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/machinegun/basic + name = "7.12x82mm Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use with the L6 SAW. \ + By the time you need to use this, you'll already be standing on a pile of corpses." + item = /obj/item/ammo_box/magazine/mm712x82 + +/datum/uplink_item/ammo/machinegun/ap + name = "7.12x82mm (Armor Penetrating) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with special properties \ + to puncture even the most durable armor." + item = /obj/item/ammo_box/magazine/mm712x82/ap + cost = 9 + +/datum/uplink_item/ammo/machinegun/hollow + name = "7.12x82mm (Hollow-Point) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; equipped with hollow-point tips to help \ + with the unarmored masses of crew." + item = /obj/item/ammo_box/magazine/mm712x82/hollow + +/datum/uplink_item/ammo/machinegun/incen + name = "7.12x82mm (Incendiary) Box Magazine" + desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; tipped with a special flammable \ + mixture that'll ignite anyone struck by the bullet. Some men just want to watch the world burn." + item = /obj/item/ammo_box/magazine/mm712x82/incen + +/datum/uplink_item/ammo/rocket + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/rocket/basic + name = "84mm HE Rocket" + desc = "A low-yield anti-personnel HE rocket. Gonna take you out in style!" + item = /obj/item/ammo_casing/caseless/rocket + cost = 4 + +/datum/uplink_item/ammo/rocket/hedp + name = "84mm HEDP Rocket" + desc = "A high-yield HEDP rocket; extremely effective against armored targets, as well as surrounding personnel. \ + Strike fear into the hearts of your enemies." + item = /obj/item/ammo_casing/caseless/rocket/hedp + cost = 6 + +/datum/uplink_item/ammo/pistolaps + name = "9mm Handgun Magazine" + desc = "An additional 15-round 9mm magazine, compatible with the Stechkin APS pistol, found in the Spetsnaz Pyro bundle." + item = /obj/item/ammo_box/magazine/pistolm9mm + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/toydarts + name = "Box of Riot Darts" + desc = "A box of 40 Donksoft riot darts, for reloading any compatible foam dart magazine. Don't forget to share!" + item = /obj/item/ammo_box/foambox/riot + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 0 + illegal_tech = FALSE + +/datum/uplink_item/ammo/bioterror + name = "Box of Bioterror Syringes" + desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor \ + and broca systems, making it impossible for them to move or speak for some time." + item = /obj/item/storage/box/syndie_kit/bioterror + cost = 6 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/ammo/bolt_action + name = "Surplus Rifle Clip" + desc = "A stripper clip used to quickly load bolt action rifles. Contains 5 rounds." + item = /obj/item/ammo_box/a762 + cost = 1 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/dark_gygax/bag + name = "Dark Gygax Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the incendiary carbine and flash bang launcher that are equipped on a standard Dark Gygax exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/dark_gygax + cost = 4 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/ammo/mauler/bag + name = "Mauler Ammo Bag" + desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile launcher that are equipped on a standard Mauler exosuit." + item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler + cost = 6 + include_modes = list(/datum/game_mode/nuclear) + +//Grenades and Explosives +/datum/uplink_item/explosives + category = "Explosives" + +/datum/uplink_item/explosives/bioterrorfoam + name = "Bioterror Foam Grenade" + desc = "A powerful chemical foam grenade which creates a deadly torrent of foam that will mute, blind, confuse, \ + mutate, and irritate carbon lifeforms. Specially brewed by Tiger Cooperative chemical weapons specialists \ + using additional spore toxin. Ensure suit is sealed before use." + item = /obj/item/grenade/chem_grenade/bioterrorfoam + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/bombanana + name = "Bombanana" + desc = "A banana with an explosive taste! Discard the peel quickly, as it will explode with the force of a Syndicate minibomb \ + a few seconds after the banana is eaten." + item = /obj/item/reagent_containers/food/snacks/grown/banana/bombanana + cost = 4 //it is a bit cheaper than a minibomb because you have to take off your helmet to eat it, which is how you arm it + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/buzzkill + name = "Buzzkill Grenade Box" + desc = "A box with three grenades that release a swarm of angry bees upon activation. These bees indiscriminately attack friend or foe \ + with random toxins." + item = /obj/item/storage/box/syndie_kit/bee_grenades + cost = 6 + manufacturer = /datum/corporation/bolsynpowell + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/c4 + name = "Composition C-4" + desc = "C-4 is plastic explosive of the common variety Composition C. You can use it to breach walls, sabotage equipment, or connect \ + an assembly to it in order to alter the way it detonates. It can be attached to almost all objects and has a modifiable timer with a \ + minimum setting of 10 seconds." + item = /obj/item/grenade/plastic/c4 + cost = 1 + +/datum/uplink_item/explosives/c4bag + name = "Bag of C-4 explosives" + desc = "Because sometimes quantity is quality. Contains 10 C-4 plastic explosives." + item = /obj/item/storage/backpack/duffelbag/syndie/c4 + cost = 8 //20% discount! + cant_discount = TRUE + +/datum/uplink_item/explosives/x4bag + name = "Bag of X-4 explosives" + desc = "Contains 3 X-4 shaped plastic explosives. Similar to C4, but with a stronger blast that is directional instead of circular. \ + X-4 can be placed on a solid surface, such as a wall or window, and it will blast through the wall, injuring anything on the opposite side, while being safer to the user. \ + For when you want a controlled explosion that leaves a wider, deeper, hole." + item = /obj/item/storage/backpack/duffelbag/syndie/x4 + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/explosives/clown_bomb_clownops + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 15 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/detomatix + name = "Detomatix PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you four opportunities to \ + detonate PDAs of crewmembers who have their message feature enabled. \ + The concussive effect from the explosion will knock the recipient out for a short period, and deafen them for longer." + item = /obj/item/cartridge/virus/syndicate + cost = 6 + manufacturer = /datum/corporation/traitor/cybersun + restricted = TRUE + +/datum/uplink_item/explosives/emp + name = "EMP Grenades and Implanter Kit" + desc = "A box that contains five EMP grenades and an EMP implant with three uses. Useful to disrupt communications, \ + security's energy weapons and silicon lifeforms when you're in a tight spot." + item = /obj/item/storage/box/syndie_kit/emp + cost = 2 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/explosives/ducky + name = "Exploding Rubber Duck" + desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on." + item = /obj/item/deployablemine/traitor + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/virus_grenade + name = "Fungal Tuberculosis Grenade" + desc = "A primed bio-grenade packed into a compact box. Comes with five Bio Virus Antidote Kit (BVAK) \ + autoinjectors for rapid application on up to two targets each, a syringe, and a bottle containing \ + the BVAK solution." + item = /obj/item/storage/box/syndie_kit/tuberculosisgrenade + cost = 12 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/explosives/grenadier + name = "Grenadier's belt" + desc = "A belt containing 26 lethally dangerous and destructive grenades. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/belt/grenade/full + include_modes = list(/datum/game_mode/nuclear) + cost = 22 + surplus = 0 + +/datum/uplink_item/explosives/bigducky + name = "High Yield Exploding Rubber Duck" + desc = "A seemingly innocent rubber duck. When placed, it arms, and will violently explode when stepped on. \ + This variant has been fitted with high yield X4 charges for a larger explosion." + item = /obj/item/deployablemine/traitor/bigboom + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/pizza_bomb + name = "Pizza Bomb" + desc = "A pizza box with a bomb cunningly attached to the lid. The timer needs to be set by opening the box; afterwards, \ + opening the box again will trigger the detonation after the timer has elapsed. Comes with free pizza, for you or your target!" + item = /obj/item/pizzabox/bomb + cost = 6 + manufacturer = /datum/corporation/traitor/donkco + surplus = 8 + +/datum/uplink_item/explosives/soap_clusterbang + name = "Slipocalypse Clusterbang" + desc = "A traditional clusterbang grenade with a payload consisting entirely of Syndicate soap. Useful in any scenario!" + item = /obj/item/grenade/clusterbuster/soap + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/explosives/syndicate_bomb + name = "Syndicate Bomb" + desc = "The Syndicate bomb is a fearsome device capable of massive destruction. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so. \ + The bomb core can be pried out and manually detonated with other explosives." + item = /obj/item/sbeacondrop/bomb + cost = 11 + +/datum/uplink_item/explosives/syndicate_bomb/emp + name = "Syndicate EMP Bomb" + desc = "A variation of the syndicate bomb designed to produce a large EMP effect." + item = /obj/item/sbeacondrop/emp + cost = 7 + +/datum/uplink_item/explosives/syndicate_detonator + name = "Syndicate Detonator" + desc = "The Syndicate detonator is a companion device to the Syndicate bomb. Simply press the included button \ + and an encrypted radio frequency will instruct all live Syndicate bombs to detonate. \ + Useful for when speed matters or you wish to synchronize multiple bomb blasts. Be sure to stand clear of \ + the blast radius before using the detonator." + item = /obj/item/syndicatedetonator + cost = 3 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/syndicate_minibomb + name = "Syndicate Minibomb" + desc = "The minibomb is a grenade with a five-second fuse. Upon detonation, it will create a small hull breach \ + in addition to dealing high amounts of damage to nearby personnel." + item = /obj/item/grenade/syndieminibomb + cost = 6 + exclude_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/tearstache + name = "Tearstache Grenade" + desc = "A teargas grenade that launches sticky moustaches onto the face of anyone not wearing a clown or mime mask. The moustaches will \ + remain attached to the face of all targets for one minute, preventing the use of breath masks and other such devices." + item = /obj/item/grenade/chem_grenade/teargas/moustache + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/explosives/viscerators + name = "Viscerator Delivery Grenade" + desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/grenade/spawnergrenade/manhacks + cost = 5 + surplus = 35 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +//Support and Mechs +/datum/uplink_item/support + category = "Support and Exosuits" + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/support/clown_reinforcement + name = "Clown Reinforcements" + desc = "Call in an additional clown to share the fun, equipped with full starting gear, but no telecrystals." + item = /obj/item/antag_spawner/nuke_ops/clown + cost = 20 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/support/reinforcement + name = "Reinforcements" + desc = "Call in an additional team member. They won't come with any gear, so you'll have to save some telecrystals \ + to arm them as well." + item = /obj/item/antag_spawner/nuke_ops + cost = 25 + refundable = TRUE + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/support/reinforcement/assault_borg + name = "Syndicate Assault Cyborg" + desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. \ + Comes equipped with a self-resupplying LMG, a grenade launcher, energy sword, emag, pinpointer, flash and crowbar." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/assault + refundable = TRUE + cost = 65 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/medical_borg + name = "Syndicate Medical Cyborg" + desc = "A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. \ + It comes equipped with a nanite hypospray, a medical beamgun, combat defibrillator, full surgical kit including an energy saw, an emag, pinpointer and flash. \ + Thanks to its organ storage bag, it can perform surgery as well as any humanoid." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/medical + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/reinforcement/saboteur_borg + name = "Syndicate Saboteur Cyborg" + desc = "A streamlined engineering cyborg, equipped with covert modules. Also incapable of leaving the welder in the shuttle. \ + Aside from regular Engineering equipment, it comes with a special destination tagger that lets it traverse disposals networks. \ + Its chameleon projector lets it disguise itself as a Nanotrasen cyborg, on top it has thermal vision and a pinpointer." + item = /obj/item/antag_spawner/nuke_ops/borg_tele/saboteur + refundable = TRUE + cost = 35 + restricted = TRUE + +/datum/uplink_item/support/gygax + name = "Dark Gygax Exosuit" + desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent \ + for hit-and-run style attacks. Features an incendiary carbine, flash bang launcher, teleporter, ion thrusters and a Tesla energy array." + item = /obj/mecha/combat/gygax/dark/loaded + cost = 80 + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/mecha/combat/honker/dark/loaded + cost = 80 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/support/mauler + name = "Mauler Exosuit" + desc = "A massive and incredibly deadly military-grade exosuit. Features long-range targeting, thrust vectoring \ + and deployable smoke. Comes equipped with an LMG, scattershot carbine, missile rack, an antiprojectile armor booster and a Tesla energy array." + item = /obj/mecha/combat/marauder/mauler/loaded + cost = 140 + +// Stealth Items +/datum/uplink_item/stealthy_tools + category = "Stealth Gadgets" + +/datum/uplink_item/stealthy_tools/agent_card + name = "Agent Identification Card" + desc = "Agent cards prevent artificial intelligences from tracking the wearer, and can copy access \ + from other identification cards. The access is cumulative, so scanning one card does not erase the \ + access gained from another. In addition, they can be forged to display a new assignment and name. \ + This can be done an unlimited amount of times. Some Syndicate areas and devices can only be accessed \ + with these cards." + item = /obj/item/card/id/syndicate + cost = 2 + +/datum/uplink_item/stealthy_tools/ai_detector + name = "Artificial Intelligence Detector" + desc = "A functional multitool that turns red when it detects an artificial intelligence watching it, and can be \ + activated to display their exact viewing location and nearby security camera blind spots. Knowing when \ + an artificial intelligence is watching you is useful for knowing when to maintain cover, and finding nearby \ + blind spots can help you identify escape routes." + item = /obj/item/multitool/ai_detect + cost = 1 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/syndireverse + name = "Bluespace Projectile Weapon Disrupter" + desc = "Hidden in an ordinary-looking playing card, this device will teleport an opponent's gun to your hand when they fire at you. Just make sure to hold this in your hand!" + item = /obj/item/syndicateReverseCard + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/stealthy_tools/chameleon + name = "Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anyone on the station, and more! \ + Due to budget cuts, the shoes don't provide protection against slipping." + item = /obj/item/storage/box/syndie_kit/chameleon + cost = 2 + manufacturer = /datum/corporation/traitor/cybersun + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/chameleon_proj + name = "Chameleon Projector" + desc = "Projects an image across a user, disguising them as an object scanned with it, as long as they don't \ + move the projector from their hand. Disguised users move slowly, and projectiles pass over them." + item = /obj/item/chameleon + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/codespeak_manual + name = "Codespeak Manual" + desc = "Syndicate agents can be trained to use a series of codewords to convey complex information, which sounds like random concepts and drinks to anyone listening. \ + This manual teaches you this Codespeak. You can also hit someone else with the manual in order to teach them. This is the deluxe edition, which has unlimited uses." + item = /obj/item/codespeak_manual/unlimited + cost = 3 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/stealthy_tools/combatbananashoes + name = "Combat Banana Shoes" + desc = "While making the wearer immune to most slipping attacks like regular combat clown shoes, these shoes \ + can generate a large number of synthetic banana peels as the wearer walks, slipping up would-be pursuers. They also \ + squeak significantly louder." + item = /obj/item/clothing/shoes/clown_shoes/banana_shoes/combat + cost = 6 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/emplight + name = "EMP Flashlight" + desc = "A small, self-recharging, short-ranged EMP device disguised as a working flashlight. \ + Useful for disrupting headsets, cameras, doors, lockers and borgs during stealth operations. \ + Attacking a target with this flashlight will direct an EM pulse at it and consumes a charge." + item = /obj/item/flashlight/emp + cost = 2 //yogs no one uses this lol + manufacturer = /datum/corporation/traitor/donkco + surplus = 30 + +/datum/uplink_item/stealthy_tools/mulligan + name = "Mulligan" + desc = "Screwed up and have security on your tail? This handy syringe will give you a completely new identity \ + and appearance." + item = /obj/item/reagent_containers/syringe/mulligan + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 30 + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/stealthy_tools/syndigaloshes + name = "No-Slip Chameleon Shoes" + desc = "These shoes will allow the wearer to run on wet floors and slippery objects without falling down. \ + They do not work on heavily lubricated surfaces." + item = /obj/item/clothing/shoes/chameleon/noslip/syndicate + cost = 2 + manufacturer = /datum/corporation/traitor/waffleco + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + player_minimum = 20 + +/datum/uplink_item/stealthy_tools/syndigaloshes/nuke + item = /obj/item/clothing/shoes/chameleon/noslip/syndicate + cost = 4 + exclude_modes = list() + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/stealthy_tools/jammer + name = "Radio Jammer" + desc = "This device will disrupt any nearby outgoing radio communication when activated. Does not affect binary chat." + item = /obj/item/jammer + cost = 5 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/stealthy_tools/smugglersatchel + name = "Smuggler's Satchel" + desc = "This satchel is thin enough to be hidden in the gap between plating and tiling; great for stashing \ + your stolen goods. Comes with a crowbar, a floor tile and some contraband inside." + item = /obj/item/storage/backpack/satchel/flat/with_tools + cost = 1 + surplus = 30 + +/datum/uplink_item/stealthy_tools/armorpolish + name = "Armor Polish" + desc = "This two use polish will strengthen clothing to be as strong as a standard-issue armor vest. \ + Reinforced with nanite technology, you are able to stay looking good while bashing heads in. \ + Beware, you can only polish suits and headgear!" + item = /obj/item/armorpolish + cost = 6 + + + +//Space Suits and Hardsuits +/datum/uplink_item/suits + category = "Space Suits" + surplus = 40 + +/datum/uplink_item/suits/space_suit + name = "Syndicate Space Suit" + desc = "This red and black Syndicate space suit is less encumbering than Nanotrasen variants, \ + fits inside bags, and has a weapon slot. Nanotrasen crew members are trained to report red space suit \ + sightings, however." + item = /obj/item/storage/box/syndie_kit/space + cost = 4 + +/datum/uplink_item/suits/hardsuit + name = "Syndicate Hardsuit" + desc = "The feared suit of a Syndicate nuclear agent. Features slightly better armoring and a built in jetpack \ + that runs off standard atmospheric tanks. Toggling the suit in and out of \ + combat mode will allow you all the mobility of a loose fitting uniform without sacrificing armoring. \ + Additionally the suit is collapsible, making it small enough to fit within a backpack. \ + Nanotrasen crew who spot these suits are known to panic." + item = /obj/item/clothing/suit/space/hardsuit/syndi + cost = 8 + exclude_modes = list(/datum/game_mode/nuclear) //you can't buy it in nuke, because the elite hardsuit costs the same while being better + +/datum/uplink_item/suits/hardsuit/elite + name = "Elite Syndicate Hardsuit" + desc = "An upgraded, elite version of the Syndicate hardsuit. It features fireproofing, and also \ + provides the user with superior armor and mobility compared to the standard Syndicate hardsuit." + item = /obj/item/clothing/suit/space/hardsuit/syndi/elite + cost = 8 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() + +/datum/uplink_item/suits/hardsuit/shielded + name = "Shielded Syndicate Hardsuit" + desc = "An upgraded version of the standard Syndicate hardsuit. It features a built-in energy shielding system. \ + The shields can handle up to three impacts within a short duration and will rapidly recharge while not under fire." + item = /obj/item/clothing/suit/space/hardsuit/shielded/syndi + cost = 30 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + exclude_modes = list() + +// Devices and Tools +/datum/uplink_item/device_tools + category = "Misc. Gadgets" + +/datum/uplink_item/device_tools/cutouts + name = "Adaptive Cardboard Cutouts" + desc = "These cardboard cutouts are coated with a thin material that prevents discoloration and makes the images on them appear more lifelike. \ + This pack contains three as well as a crayon for changing their appearances." + item = /obj/item/storage/box/syndie_kit/cutouts + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 20 + +/datum/uplink_item/device_tools/assault_pod + name = "Assault Pod Targeting Device" + desc = "Use this to select the landing zone of your assault pod." + item = /obj/item/assault_pod + cost = 30 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/binary + name = "Binary Translator Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to and talk with silicon-based lifeforms, \ + such as AI units and cyborgs, over their private binary channel. Caution should \ + be taken while doing this, as unless they are allied with you, they are programmed to report such intrusions." + item = /obj/item/encryptionkey/binary + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/magboots + name = "Blood-Red Magboots" + desc = "A pair of magnetic boots with a Syndicate paintjob that assist with freer movement in space or on-station \ + during gravitational generator failures. These reverse-engineered knockoffs of Nanotrasen's \ + 'Advanced Magboots' slow you down in simulated-gravity environments much like the standard issue variety." + item = /obj/item/clothing/shoes/magboots/syndie + cost = 2 + +/datum/uplink_item/device_tools/briefcase_launchpad + name = "Briefcase Launchpad" + desc = "A briefcase containing a launchpad, a device able to teleport items and people to and from targets up to eight tiles away from the briefcase. \ + Also includes a remote control, disguised as an ordinary folder. Touch the briefcase with the remote to link it." + surplus = 0 + item = /obj/item/storage/briefcase/launchpad + cost = 6 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/camera_bug + name = "Camera Bug" + desc = "Enables you to view all cameras on the main network, set up motion alerts and track a target. \ + Bugging cameras allows you to disable them remotely." + item = /obj/item/camera_bug + cost = 1 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 90 + +/datum/uplink_item/device_tools/military_belt + name = "Chest Rig" + desc = "A robust seven-slot set of webbing that is capable of holding all manner of tactical equipment." + item = /obj/item/storage/belt/military + cost = 1 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/emag + name = "Cryptographic Sequencer" + desc = "The cryptographic sequencer, electromagnetic card, or emag, is a small card that unlocks hidden functions \ + in electronic devices, subverts intended functions, and easily breaks security mechanisms." + item = /obj/item/card/emag + cost = 6 + +/datum/uplink_item/device_tools/fakenucleardisk + name = "Decoy Nuclear Authentication Disk" + desc = "It's just a normal disk. Visually it's identical to the real deal, but it won't hold up under closer scrutiny by the Captain. \ + Don't try to give this to us to complete your objective, we know better!" + item = /obj/item/disk/nuclear/fake + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 1 + +/datum/uplink_item/device_tools/frame + name = "F.R.A.M.E. PDA Cartridge" + desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \ + when used cause the targeted PDA to become a new uplink with zero TCs, and immediately become unlocked. \ + You will receive the unlock code upon activating the virus, and the new uplink may be charged with \ + telecrystals normally." + item = /obj/item/cartridge/virus/frame + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + restricted = TRUE + +/datum/uplink_item/device_tools/failsafe + name = "Failsafe Uplink Code" + desc = "When entered the uplink will self-destruct immediately." + item = /obj/effect/gibspawner/generic + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + restricted = TRUE + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/failsafe/spawn_item(spawn_path, mob/user, datum/component/uplink/U) + if(!U) + return + U.failsafe_code = U.generate_code() + var/code = "[islist(U.failsafe_code) ? english_list(U.failsafe_code) : U.failsafe_code]" + to_chat(user, "The new failsafe code for this uplink is now : [code].") + if(user.mind) + user.mind.store_memory("Failsafe code for [U.parent] : [code]") + return U.parent //For log icon + +/datum/uplink_item/device_tools/toolbox + name = "Full Syndicate Toolbox" + desc = "A suspicious black and red syndicate toolbox. It comes loaded with a full tool set including a \ + multitool and combat gloves that are resistant to shocks and heat. It is very compact and will \ + fit in any standard Nanotrasen backpack." + item = /obj/item/storage/toolbox/syndicate + cost = 1 + +/datum/uplink_item/device_tools/hacked_module + name = "Hacked AI Law Upload Module" + desc = "When used with an upload console, this module allows you to upload priority laws to an artificial intelligence. \ + Be careful with wording, as artificial intelligences may look for loopholes to exploit." + item = /obj/item/aiModule/syndicate + cost = 4 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/hypnotic_flash + name = "Hypnotic Flash" + desc = "A modified flash able to hypnotize targets. If the target is not in a mentally vulnerable state, it will only confuse and pacify them temporarily." + item = /obj/item/assembly/flash/hypnotic + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/device_tools/medgun + name = "Medbeam Gun" + desc = "A wonder of Syndicate engineering, the Medbeam gun, or Medi-Gun enables a medic to keep his fellow \ + operatives in the fight, even while under fire. Don't cross the streams!" + item = /obj/item/gun/medbeam + cost = 8 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/medgun_uber + name = "Augmented Medbeam Gun" + desc = "An augmented version of the classic Medbeam Gun that we picked up off the corpse of a german scientist. \ + It has an invulnerability mode that can be activated for a few seconds after healing for a long while. \ + This one comes uncharged, so be sure to give it a whirl before getting into combat. Goes well with a M-546 Osprey." + item = /obj/item/gun/medbeam/uber + cost = 25 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/singularity_beacon + name = "Power Beacon" + desc = "When screwed to wiring attached to an electric grid and activated, this large device pulls any \ + active gravitational singularities or tesla balls towards it. This will not work when the engine is still \ + in containment. Because of its size, it cannot be carried. Ordering this \ + sends you a small beacon that will teleport the larger beacon to your location upon activation." + item = /obj/item/sbeacondrop + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + +/datum/uplink_item/device_tools/supermatter_delaminator + name = "Antinoblium Shard" + desc = "A special variant of supermatter crystal reverse engineered by syndicate scientists using samples retrieved by agents. \ + Attaching this to an active supermatter crystal will destabilize the internal crystal well, causing an energy cascade. \ + Ensures a storm of EMP waves that blacks out the entire station and eventually the full delamination of the crystal. \ + Comes with a secure radiation shielded containment box, special tweezers and usage instructions." + item = /obj/item/storage/box/syndie_kit/supermatter_delaminator + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs + +/datum/uplink_item/device_tools/powersink + name = "Power Sink" + desc = "When screwed to wiring attached to a power grid and activated, this large device lights up and places excessive \ + load on the grid, causing a station-wide blackout. The sink is large and cannot be stored in most \ + traditional bags and boxes. Caution: Will explode if the powernet contains sufficient amounts of energy." + item = /obj/item/powersink + cost = 8 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a \ + powerful burst of radiation, which, after a short delay, can incapacitate all but the most protected \ + of humanoids. It has two settings: intensity, which controls the power of the radiation, \ + and wavelength, which controls the delay before the effect kicks in." + item = /obj/item/healthanalyzer/rad_laser + cost = 4 + manufacturer = /datum/corporation/traitor/donkco + +/datum/uplink_item/device_tools/stimpack + name = "Stimpack" + desc = "Stimpacks, the tool of many great heroes, make you nearly immune to stuns and knockdowns for about \ + 5 minutes after injection." + item = /obj/item/reagent_containers/hypospray/medipen/stimpack/large // Yogs -- Stimpack change + cost = 5 + surplus = 90 + +/datum/uplink_item/device_tools/medkit + name = "Syndicate Combat Medic Kit" + desc = "Included is a combat stimulant injector \ + for rapid healing, a medical night vision HUD for quick identification of injured personnel, \ + and other supplies helpful for a field medic." + item = /obj/item/storage/firstaid/tactical + cost = 4 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + +/datum/uplink_item/device_tools/soap + name = "Syndicate Soap" + desc = "A sinister-looking surfactant used to clean blood stains to hide murders and prevent DNA analysis. \ + You can also drop it underfoot to slip people." + item = /obj/item/soap/syndie + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 50 + +/datum/uplink_item/device_tools/surgerybag + name = "Syndicate Surgery Duffel Bag" + desc = "The Syndicate surgery duffel bag is a toolkit containing all surgery tools, surgical drapes, \ + a Syndicate brand MMI, a straitjacket, and a muzzle." + item = /obj/item/storage/backpack/duffelbag/syndie/surgery + cost = 3 + +/datum/uplink_item/device_tools/encryptionkey + name = "Syndicate Encryption Key" + desc = "A key that, when inserted into a radio headset, allows you to listen to all station department channels \ + as well as talk on an encrypted Syndicate channel with other agents that have the same key." + item = /obj/item/encryptionkey/syndicate + cost = 2 + surplus = 75 + restricted = TRUE + +/datum/uplink_item/device_tools/syndietome + name = "Syndicate Tome" + desc = "Using rare artifacts acquired at great cost, the Syndicate has reverse engineered \ + the seemingly magical books of a certain cult. Though lacking the esoteric abilities \ + of the originals, these inferior copies are still quite useful, being able to provide \ + both weal and woe on the battlefield, even if they do occasionally bite off a finger." + item = /obj/item/storage/book/bible/syndicate + cost = 5 + +/datum/uplink_item/device_tools/thermal + name = "Thermal Imaging Glasses" + desc = "These goggles can be turned to resemble common eyewear found throughout the station. \ + They allow you to see organisms through walls by capturing the upper portion of the infrared light spectrum, \ + emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms \ + and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks." + item = /obj/item/clothing/glasses/thermal/syndi + cost = 4 + +/datum/uplink_item/device_tools/potion + name = "Syndicate Sentience Potion" + item = /obj/item/slimepotion/slime/sentience/nuclear + desc = "A potion recovered at great risk by undercover Syndicate operatives and then subsequently modified with Syndicate technology. \ + Using it will make any animal sentient, and bound to serve you, as well as implanting an internal radio for communication and an internal ID card for opening doors." + cost = 4 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + restricted = TRUE + +/datum/uplink_item/device_tools/suspiciousphone + name = "Protocol CRAB-17 Phone" + desc = "The Protocol CRAB-17 Phone, a phone borrowed from an unknown third party, it can be used to crash the space market, funneling the losses of the crew to your bank account.\ + The crew can move their funds to a new banking site though, unless they HODL, in which case they deserve it." + item = /obj/item/suspiciousphone + cost = 7 + manufacturer = /datum/corporation/traitor/waffleco + limited_stock = 1 + +// Implants +/datum/uplink_item/implants + category = "Implants" + surplus = 50 + +/datum/uplink_item/implants/adrenal + name = "Adrenal Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will inject a chemical \ + cocktail which removes all incapacitating effects, lets the user run faster and has a mild healing effect." + item = /obj/item/storage/box/syndie_kit/imp_adrenal + cost = 8 + player_minimum = 25 + +/datum/uplink_item/implants/antistun + name = "CNS Rebooter Implant" + desc = "This implant will help you get back up on your feet faster after being stunned. Comes with an autosurgeon." + item = /obj/item/autosurgeon/anti_stun + cost = 12 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/freedom + name = "Freedom Implant" + desc = "An implant injected into the body and later activated at the user's will. It will attempt to free the \ + user from common restraints such as handcuffs." + item = /obj/item/storage/box/syndie_kit/imp_freedom + cost = 5 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/implants/microbomb + name = "Microbomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + The more implants inside of you, the higher the explosive power. \ + This will permanently destroy your body, however." + item = /obj/item/storage/box/syndie_kit/imp_microbomb + cost = 2 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/macrobomb + name = "Macrobomb Implant" + desc = "An implant injected into the body, and later activated either manually or automatically upon death. \ + Upon death, releases a massive explosion that will wipe out everything nearby." + item = /obj/item/storage/box/syndie_kit/imp_macrobomb + cost = 20 + include_modes = list(/datum/game_mode/nuclear) + restricted = TRUE + +/datum/uplink_item/implants/radio + name = "Internal Syndicate Radio Implant" + desc = "An implant injected into the body, allowing the use of an internal Syndicate radio. \ + Used just like a regular headset, but can be disabled to use external headsets normally and to avoid detection." + item = /obj/item/storage/box/syndie_kit/imp_radio + cost = 4 + manufacturer = /datum/corporation/traitor/donkco + restricted = TRUE + +/datum/uplink_item/implants/reviver + name = "Reviver Implant" + desc = "This implant will attempt to revive and heal you if you lose consciousness. Comes with an autosurgeon." + item = /obj/item/autosurgeon/reviver + cost = 8 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/stealthimplant + name = "Stealth Implant" + desc = "This one-of-a-kind implant will make you almost invisible if you play your cards right. \ + On activation, it will conceal you inside a chameleon cardboard box that is only revealed once someone bumps into it." + item = /obj/item/storage/box/syndie_kit/imp_stealth + manufacturer = /datum/corporation/traitor/donkco + cost = 8 + +/datum/uplink_item/implants/storage + name = "Storage Implant" + desc = "An implant injected into the body, and later activated at the user's will. It will open a small bluespace \ + pocket capable of storing two regular-sized items." + item = /obj/item/storage/box/syndie_kit/imp_storage + cost = 8 + +/datum/uplink_item/implants/thermals + name = "Thermal Eyes" + desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." + item = /obj/item/autosurgeon/thermal_eyes + cost = 8 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/implants/uplink + name = "Uplink Implant" + desc = "An implant injected into the body, and later activated at the user's will. Has no telecrystals and must be charged by the use of physical telecrystals. \ + Undetectable (except via surgery), and excellent for escaping confinement." + item = /obj/item/storage/box/syndie_kit/imp_uplink + cost = 4 + // An empty uplink is kinda useless. + surplus = 0 + restricted = TRUE + +/datum/uplink_item/implants/mindshield + name = "Syndicate Brainwash Denial Implant" + desc = "An implant injected into the body, to deny brainwashing attempts." + item = /obj/item/storage/box/syndie_kit/imp_mindshield + limited_stock = 3 + player_minimum = 30 + illegal_tech = FALSE // This is a cheap knockoff of NT tech. + surplus = 5 + cost = 1 + manufacturer = /datum/corporation/traitor/waffleco + +/datum/uplink_item/implants/xray + name = "X-ray Vision Implant" + desc = "These cybernetic eyes will give you X-ray vision. Comes with an autosurgeon." + item = /obj/item/autosurgeon/xray_eyes + cost = 10 + surplus = 0 + include_modes = list(/datum/game_mode/nuclear) + +//Race-specific items +/datum/uplink_item/race_restricted + category = "Species-Restricted" + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/race_restricted/syndilamp + name = "Extra-Bright Lantern" + desc = "We heard that moths such as yourself really like lamps, so we decided to grant you early access to a prototype \ + Syndicate brand \"Extra-Bright Lantern™\". Enjoy." + cost = 2 + item = /obj/item/flashlight/lantern/syndicate + restricted_species = list("moth") + +/datum/uplink_item/race_restricted/syndigenetics + name = "Fire Breath implanter" + desc = "Recently Syndicate scientist have found the formula of returning lizards genetics back in time and giving them the ability to breath fire." + cost = 6 + item = /obj/item/dnainjector/firebreath + restricted_species = list("lizard") + +/datum/uplink_item/race_restricted/flyingfang + name = "Flying Fang Tablet" + desc = "This tablet contains a set of old lizard fighting techniques, increasing your melee combat effectiveness but preventing you from using armor, most common stun weapons, or guns." + cost = 14 + item = /obj/item/book/granter/martial/flyingfang + restricted_species = list("lizard") + +/datum/uplink_item/race_restricted/angelcoolboy + name = "Angel Potion" + desc = "We mixed a bird and a human and we somehow made a potion that turns you into a holy creature." + cost = 5 + item = /obj/item/reagent_containers/glass/bottle/potion/flight/syndicate + restricted_species = list("human") + +/datum/uplink_item/race_restricted/killertomatos + name = "Killer Tomatoes" + desc = "The Syndicates local gardeners brewed these up for our plant comrades (does not work against fellow plants)." + cost = 3 + manufacturer = /datum/corporation/traitor/donkco + item = /obj/item/seeds/tomato/killer + restricted_species = list("pod") + +/datum/uplink_item/race_restricted/radiationbomb + name = "Radiation grenade" + desc = "A radiation bomb guaranteed to irradiate the fuck out of non-gaseous lifeforms." + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/grenade/chem_grenade/radiation + restricted_species = list("plasmaman") + +// Role-specific items +/datum/uplink_item/role_restricted + category = "Role-Restricted" + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + surplus = 0 + +/datum/uplink_item/role_restricted/ancient_jumpsuit + name = "Ancient Jumpsuit" + desc = "A tattered old jumpsuit that will provide absolutely no benefit to you. It fills the wearer with a strange compulsion to blurt out 'glorf'." + item = /obj/item/clothing/under/color/grey/glorf + cost = 20 + restricted_roles = list("Assistant") + surplus = 0 + +/datum/uplink_item/role_restricted/oldtoolboxclean + name = "Ancient Toolbox" + desc = "An iconic toolbox design notorious with Assistants everywhere, this design was especially made to become more robust the more telecrystals it has inside it! Tools and insulated gloves included." + item = /obj/item/storage/toolbox/mechanical/old/clean + cost = 2 + restricted_roles = list("Assistant") + surplus = 0 + +/datum/uplink_item/role_restricted/pie_cannon + name = "Banana Cream Pie Cannon" + desc = "A special pie cannon for a special clown, this gadget can hold up to 20 pies and automatically fabricates one every two seconds!" + cost = 10 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/pneumatic_cannon/pie/selfcharge + restricted_roles = list("Clown") + surplus = 0 //No fun unless you're the clown! + +/datum/uplink_item/support/honker + name = "Dark H.O.N.K." + desc = "A clown combat mech equipped with bombanana peel and tearstache grenade launchers, as well as the ubiquitous HoNkER BlAsT 5000." + item = /obj/mecha/combat/honker/dark/loaded + cost = 35 + restricted_roles = list("Clown") + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + +/datum/uplink_item/role_restricted/arm_medical_gun + name = "Arm Mounted Medical Beamgun" + desc = "An arm mounted medical beamgun to heal your best buds (disclaimer: does not come with friends)." + item = /obj/item/autosurgeon/medibeam + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Paramedic", "Mining Medic") //yogs + cost = 8 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/role_restricted/cat_grenade + name = "Feral Cat Delivery Grenade" + desc = "The feral cat delivery grenade contains 5 dehydrated feral cats in a similar manner to dehydrated monkeys, which, upon detonation, will be rehydrated by a small reservoir of water contained within the grenade. These cats will then attack anything in sight." + item = /obj/item/grenade/spawnergrenade/feral_cats + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Psychiatrist")///why? Becuase its funny that a person in charge of your mental wellbeing has a cat granade..<---(he cant spell) + +/datum/uplink_item/role_restricted/blastcannon + name = "Blast Cannon" + desc = "A highly specialized weapon, the Blast Cannon is actually relatively simple. It contains an attachment for a tank transfer valve mounted to an angled pipe specially constructed \ + withstand extreme pressure and temperatures, and has a mechanical trigger for triggering the transfer valve. Essentially, it turns the explosive force of a bomb into a narrow-angle \ + blast wave \"projectile\". Aspiring scientists may find this highly useful, as forcing the pressure shockwave into a narrow angle seems to be able to bypass whatever quirk of physics \ + disallows explosive ranges above a certain distance, allowing for the device to use the theoretical yield of a transfer valve bomb, instead of the factual yield." + item = /obj/item/gun/blastcannon + cost = 14 //High cost because of the potential for extreme damage in the hands of a skilled scientist. + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Research Director", "Scientist") + +/datum/uplink_item/role_restricted/gorillacubes + name = "Box of Gorilla Cubes" + desc = "A box with three Waffle Co. brand gorilla cubes. Eat big to get big. \ + Caution: Product may rehydrate when exposed to water." + item = /obj/item/storage/box/gorillacubes + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/brainwash_disk + name = "Brainwashing Surgery Program" + desc = "A disk containing the procedure to perform a brainwashing surgery, allowing you to implant an objective onto a target. \ + Insert into an Operating Console to enable the procedure." + item = /obj/item/disk/surgery/brainwashing + restricted_roles = list("Medical Doctor", "Chief Medical Officer", "Roboticist", "Mining Medic") //yogs + cost = 5 + manufacturer = /datum/corporation/traitor/cybersun + +/datum/uplink_item/role_restricted/clown_bomb + name = "Clown Bomb" + desc = "The Clown bomb is a hilarious device capable of massive pranks. It has an adjustable timer, \ + with a minimum of 60 seconds, and can be bolted to the floor with a wrench to prevent \ + movement. The bomb is bulky and cannot be moved; upon ordering this item, a smaller beacon will be \ + transported to you that will teleport the actual bomb to it upon activation. Note that this bomb can \ + be defused, and some crew may attempt to do so." + item = /obj/item/sbeacondrop/clownbomb + cost = 7 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/spider_injector + name = "Australicus Slime Mutator" + desc = "Crikey mate, it's been a wild travel from the Australicus sector but we've managed to get \ + some special spider extract from the giant spiders down there. Use this injector on a gold slime core \ + to create a few of the same type of spiders we found on the planets over there. They're a bit tame until you \ + also give them a bit of sentience though." + item = /obj/item/reagent_containers/syringe/spider_extract + cost = 25 //yogs - increase price to reduce grief potential + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Research Director", "Scientist", "Roboticist") + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) //yogs // >Increase price to reduce grief > limit it to hijack only :think: + +/datum/uplink_item/role_restricted/clowncar + name = "Clown Car" + desc = "The Clown Car is the ultimate transportation method for any worthy clown! \ + Simply insert your bikehorn and get in, and get ready to have the funniest ride of your life! \ + You can ram any spacemen you come across and stuff them into your car, kidnapping them and locking them inside until \ + someone saves them or they manage to crawl out. Be sure not to ram into any walls or vending machines, as the springloaded seats \ + are very sensitive. Now with our included lube defense mechanism which will protect you against any angry shitcurity! \ + Premium features can be unlocked with a cryptographic sequencer!" + item = /obj/vehicle/sealed/car/clowncar + cost = 20 + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/concealed_weapon_bay + name = "Concealed Weapon Bay" + desc = "A modification for non-combat mechas that allows them to equip one piece of equipment designed for combat mechs. \ + It also hides the equipped weapon from plain sight. \ + Only one can fit on a mecha." + item = /obj/item/mecha_parts/concealed_weapon_bay + cost = 3 + manufacturer = /datum/corporation/traitor/donkco + restricted_roles = list("Roboticist", "Research Director") + +/datum/uplink_item/role_restricted/haunted_magic_eightball + name = "Haunted Magic Eightball" + desc = "Most magic eightballs are toys with dice inside. Although identical in appearance to the harmless toys, this occult device reaches into the spirit world to find its answers. \ + Be warned, that spirits are often capricious or just little assholes. To use, simply speak your question aloud, then begin shaking." + item = /obj/item/toy/eightball/haunted + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + restricted_roles = list("Chaplain","Curator") + limited_stock = 1 //please don't spam deadchat + +/datum/uplink_item/role_restricted/his_grace + name = "His Grace" + desc = "An incredibly dangerous weapon recovered from a station overcome by the grey tide. Once activated, He will thirst for blood and must be used to kill to sate that thirst. \ + His Grace grants gradual regeneration and complete stun immunity to His wielder, but be wary: if He gets too hungry, He will become impossible to drop and eventually kill you if not fed. \ + However, if left alone for long enough, He will fall back to slumber. \ + To activate His Grace, simply unlatch Him." + item = /obj/item/his_grace + cost = 20 + restricted_roles = list("Chaplain") + surplus = 5 //Very low chance to get it in a surplus crate even without being the chaplain + +/datum/uplink_item/role_restricted/explosive_hot_potato + name = "Exploding Hot Potato" + desc = "A potato rigged with explosives. On activation, a special mechanism is activated that prevents it from being dropped. \ + The only way to get rid of it if you are holding it is to attack someone else with it, causing it to latch to that person instead." + item = /obj/item/hot_potato/syndicate + cost = 4 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 0 + restricted_roles = list("Cook", "Botanist", "Clown", "Mime") + +/datum/uplink_item/role_restricted/ez_clean_bundle + name = "EZ Clean Grenade Bundle" + desc = "A box with three cleaner grenades using the trademark Waffle Co. formula. Serves as a cleaner and causes acid damage to anyone standing nearby. \ + The acid only affects carbon-based creatures." + item = /obj/item/storage/box/syndie_kit/ez_clean + cost = 6 + manufacturer = /datum/corporation/traitor/waffleco + surplus = 20 + restricted_roles = list("Janitor") + +/datum/uplink_item/role_restricted/mimery + name = "Guide to Advanced Mimery Series" + desc = "The classical two part series on how to further hone your mime skills. Upon studying the series, the user should be able to make 3x1 invisible walls, and shoot bullets out of their fingers. \ + Obviously only works for Mimes." + cost = 12 + item = /obj/item/storage/box/syndie_kit/mimery + restricted_roles = list("Mime") + surplus = 0 + +/datum/uplink_item/role_restricted/pressure_mod + name = "Kinetic Accelerator Pressure Mod" + desc = "A modification kit which allows Kinetic Accelerators to do greatly increased damage while indoors. \ + Occupies 35% mod capacity." + item = /obj/item/borg/upgrade/modkit/indoors + cost = 5 //you need two for full damage, so total of 10 for maximum damage + manufacturer = /datum/corporation/traitor/donkco // Unless you're donk co, then it's 8 + limited_stock = 2 //you can't use more than two! + restricted_roles = list("Shaft Miner", "Mining Medic") //yogs + +/datum/uplink_item/role_restricted/magillitis_serum + name = "Magillitis Serum Autoinjector" + desc = "A single-use autoinjector which contains an experimental serum that causes rapid muscular growth in Hominidae. \ + Side-affects may include hypertrichosis, violent outbursts, and an unending affinity for bananas." + item = /obj/item/reagent_containers/hypospray/magillitis + cost = 15 + manufacturer = /datum/corporation/traitor/waffleco + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/modified_syringe_gun + name = "Modified Syringe Gun" + desc = "A syringe gun that fires DNA injectors instead of normal syringes." + item = /obj/item/gun/syringe/dna + cost = 14 + restricted_roles = list("Geneticist", "Chief Medical Officer") + +/datum/uplink_item/role_restricted/chemical_gun + name = "Reagent Dartgun" + desc = "A heavily modified syringe gun which is capable of synthesizing its own chemical darts using input reagents. Can hold 100u of reagents." + item = /obj/item/gun/chem + cost = 12 + restricted_roles = list("Chemist", "Chief Medical Officer", "Virologist") + +/datum/uplink_item/role_restricted/reverse_bear_trap + name = "Reverse Bear Trap" + desc = "An ingenious execution device worn on (or forced onto) the head. Arming it starts a 1-minute kitchen timer mounted on the bear trap. When it goes off, the trap's jaws will \ + violently open, instantly killing anyone wearing it by tearing their jaws in half. To arm, attack someone with it while they're not wearing headgear, and you will force it onto their \ + head after three seconds uninterrupted." + cost = 5 + item = /obj/item/reverse_bear_trap + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/reverse_revolver + name = "Reverse Revolver" + desc = "A revolver that always fires at its user. \"Accidentally\" drop your weapon, then watch as the greedy corporate pigs blow their own brains all over the wall. \ + The revolver itself is actually real. Only clumsy people, and clowns, can fire it normally. Comes in a box of hugs. Honk." + cost = 14 + manufacturer = /datum/corporation/traitor/waffleco + item = /obj/item/storage/box/hug/reverse_revolver + restricted_roles = list("Clown") + +/datum/uplink_item/role_restricted/hierophant_antenna + name = "Hierophant's Antenna" + desc = "Amplifies the reception signals of the hierophant staff, allows the herald's power to reach the station!" + cost = 14 + manufacturer = /datum/corporation/traitor/cybersun + item = /obj/item/hierophant_antenna + restricted_roles = list("Shaft Miner") + +// Pointless +/datum/uplink_item/badass + category = "(Pointless) Badassery" + surplus = 0 + +/datum/uplink_item/badass/costumes/obvious_chameleon + name = "Broken Chameleon Kit" + desc = "A set of items that contain chameleon technology allowing you to disguise as pretty much anything on the station, and more! \ + Please note that this kit did NOT pass quality control." + item = /obj/item/storage/box/syndie_kit/chameleon/broken + +/datum/uplink_item/badass/costumes + surplus = 0 + include_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) + cost = 4 + cant_discount = TRUE + +/datum/uplink_item/badass/costumes/centcom_official + name = "CentCom Official Costume" + desc = "Ask the crew to \"inspect\" their nuclear disk and weapons system, and then when they decline, pull out a fully automatic rifle and gun down the Captain. \ + Radio headset does not include encryption key. No gun included." + item = /obj/item/storage/box/syndie_kit/centcom_costume + +/datum/uplink_item/badass/costumes/clown + name = "Clown Costume" + desc = "Nothing is more terrifying than clowns with fully automatic weaponry." + item = /obj/item/storage/backpack/duffelbag/clown/syndie + +/datum/uplink_item/badass/crafting_weapons + name = "Makeshift Weapons" + desc = "A one use book that grants access to a number of secret crafting recipes once it has been read." + item = /obj/item/book/granter/crafting_recipe/weapons + cost = 4 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiefedora + name = "Syndicate Fedora" + desc = "This Syndicate Fedora of micro-woven adamantium silk is sure to prove your style!" + item = /obj/item/clothing/head/det_hat/evil + cost = 3 + +/datum/uplink_item/badass/balloon + name = "Syndicate Balloon" + desc = "For showing that you are THE BOSS: A useless red balloon with the Syndicate logo on it. \ + Can blow the deepest of covers." + item = /obj/item/toy/syndicateballoon + cost = 20 + cant_discount = TRUE + illegal_tech = FALSE + +/datum/uplink_item/badass/syndiecash + name = "Syndicate Briefcase Full of Cash" + desc = "A secure briefcase containing 5000 space credits. Useful for bribing personnel, or purchasing goods \ + and services at lucrative prices. The briefcase also feels a little heavier to hold; it has been \ + manufactured to pack a little bit more of a punch if your client needs some convincing." + item = /obj/item/storage/secure/briefcase/syndie + cost = 1 + restricted = TRUE + +/datum/uplink_item/badass/syndiecards + name = "Syndicate Playing Cards" + desc = "A special deck of space-grade playing cards with a mono-molecular edge and metal reinforcement, \ + making them slightly more robust than a normal deck of cards. \ + You can also play card games with them or leave them on your victims." + item = /obj/item/toy/cards/deck/syndicate + cost = 1 + manufacturer = /datum/corporation/traitor/donkco + surplus = 40 + +/datum/uplink_item/badass/syndiecigs + name = "Syndicate Smokes" + desc = "Strong flavor, dense smoke, infused with omnizine." + item = /obj/item/storage/box/fancy/cigarettes/cigpack_syndicate + cost = 2 + manufacturer = /datum/corporation/traitor/donkco + illegal_tech = FALSE + +/datum/uplink_item/badass/antagcape + name = "Red Syndicate Cape" + desc = "A cape to show off your small-time thuggery." + item = /obj/item/clothing/neck/skillcape/antag + cost = 10 + illegal_tech = FALSE + +/datum/uplink_item/badass/antagcapetrimmed + name = "Bloody Shiny Syndicate Cape" + desc = "A cape to show off your grand villainous deeds." + item = /obj/item/clothing/neck/skillcape/trimmed/antag + cost = 20 + illegal_tech = FALSE diff --git a/yogstation/code/game/objects/items/storage/uplink_kits.dm b/yogstation/code/game/objects/items/storage/uplink_kits.dm index 8ce7288e509e..b1e3c236ac38 100644 --- a/yogstation/code/game/objects/items/storage/uplink_kits.dm +++ b/yogstation/code/game/objects/items/storage/uplink_kits.dm @@ -1,43 +1,43 @@ -/obj/item/storage/box/syndie_kit/cluwnification - name = "Cluwne Burger Happy Meal (with mimanas)" - -/obj/item/storage/box/syndie_kit/cluwnification/PopulateContents() - new /obj/item/reagent_containers/food/snacks/burger/cluwneburger(src) - new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) - new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) - new /obj/item/reagent_containers/food/snacks/fries(src) - new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src) - new /obj/item/toy/plush/goatplushie/angry(src) - new /obj/item/gun/ballistic/automatic/pistol(src) - new /obj/item/ammo_box/magazine/m10mm(src) - -/obj/item/storage/box/syndie_kit/imp_mindslave - name = "Mindslave Implant (with injector)" - -/obj/item/storage/box/syndie_kit/imp_mindslave/PopulateContents() - new /obj/item/implanter/mindslave(src) - -/obj/item/storage/box/syndie_kit/imp_greytide - name = "Greytide Implant (with injector)" - -/obj/item/storage/box/syndie_kit/imp_greytide/PopulateContents() - new /obj/item/implanter/greytide(src) - -///obj/item/storage/box/syndie_kit/xeno_infestation_kit //disabled as creating a xenomorph infestation is not very helpful, but left it in here incase you want to add it -// name = "Xenomorph Infestation Starter Kit" -// -///obj/item/storage/box/syndie_kit/xeno_infestation_kit/PopulateContents() -// new /obj/item/autosurgeon/hivenode(src) -// for(var/i in 1 to 3) -// new /obj/item/organ/body_egg/alien_embryo(src) - -/obj/item/storage/box/syndie_kit/xeno_organ_kit //Just a kit with some basic xeno organs in it and an autosurgeon, as they are kinda rare and cool - name = "Xenomorph Organ Kit" - -/obj/item/storage/box/syndie_kit/xeno_organ_kit/PopulateContents() - new /obj/item/autosurgeon/plasmavessel(src) - new /obj/item/organ/alien/resinspinner(src) - new /obj/item/organ/alien/neurotoxin(src) - new /obj/item/organ/alien/acid(src) - //new /obj/item/organ/alien/hivenode(src) //disabled as a hive node is fairly pointless if you arent dealing with xenos have an egg sac, or know someone else with one. - //new /obj/item/organ/alien/eggsac(src) //disabled as an egg sac is not very helpful for a traitor and can ruin some rounds... *ahem* +/obj/item/storage/box/syndie_kit/cluwnification + name = "Cluwne Burger Happy Meal (with mimanas)" + +/obj/item/storage/box/syndie_kit/cluwnification/PopulateContents() + new /obj/item/reagent_containers/food/snacks/burger/cluwneburger(src) + new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) + new /obj/item/reagent_containers/food/snacks/grown/banana/mime(src) + new /obj/item/reagent_containers/food/snacks/fries(src) + new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src) + new /obj/item/toy/plush/goatplushie/angry(src) + new /obj/item/gun/ballistic/automatic/pistol(src) + new /obj/item/ammo_box/magazine/m10mm(src) + +/obj/item/storage/box/syndie_kit/imp_mindslave + name = "Mindslave Implant (with injector)" + +/obj/item/storage/box/syndie_kit/imp_mindslave/PopulateContents() + new /obj/item/implanter/mindslave(src) + +/obj/item/storage/box/syndie_kit/imp_greytide + name = "Greytide Implant (with injector)" + +/obj/item/storage/box/syndie_kit/imp_greytide/PopulateContents() + new /obj/item/implanter/greytide(src) + +///obj/item/storage/box/syndie_kit/xeno_infestation_kit //disabled as creating a xenomorph infestation is not very helpful, but left it in here incase you want to add it +// name = "Xenomorph Infestation Starter Kit" +// +///obj/item/storage/box/syndie_kit/xeno_infestation_kit/PopulateContents() +// new /obj/item/autosurgeon/hivenode(src) +// for(var/i in 1 to 3) +// new /obj/item/organ/body_egg/alien_embryo(src) + +/obj/item/storage/box/syndie_kit/xeno_organ_kit //Just a kit with some basic xeno organs in it and an autosurgeon, as they are kinda rare and cool + name = "Xenomorph Organ Kit" + +/obj/item/storage/box/syndie_kit/xeno_organ_kit/PopulateContents() + new /obj/item/autosurgeon/plasmavessel(src) + new /obj/item/organ/alien/resinspinner(src) + new /obj/item/organ/alien/neurotoxin(src) + new /obj/item/organ/alien/acid(src) + //new /obj/item/organ/alien/hivenode(src) //disabled as a hive node is fairly pointless if you arent dealing with xenos have an egg sac, or know someone else with one. + //new /obj/item/organ/alien/eggsac(src) //disabled as an egg sac is not very helpful for a traitor and can ruin some rounds... *ahem* diff --git a/yogstation/code/modules/uplink/uplink_item.dm b/yogstation/code/modules/uplink/uplink_item.dm index 872c54e092d2..0edd926fcc40 100644 --- a/yogstation/code/modules/uplink/uplink_item.dm +++ b/yogstation/code/modules/uplink/uplink_item.dm @@ -1,140 +1,140 @@ -/datum/uplink_item - var/list/include_objectives = list() //objectives to allow the buyer to buy this item - var/list/exclude_objectives = list() //objectives to disallow the buyer from buying this item - var/surplus_nullcrates - -/datum/uplink_item/New() - . = ..() - if(isnull(surplus_nullcrates)) - surplus_nullcrates = surplus - -///////////////////////////////// -////////Item re-balancing//////// -///////////////////////////////// - -/datum/uplink_item/dangerous - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/throwingweapons - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/martialarts - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/cqc - category = "Conspicuous Weapons" - -/datum/uplink_item/stealthy_weapons/romerol_kit - category = "Conspicuous Weapons" - include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) - -/datum/uplink_item/stealthy_weapons/soap_clusterbang - category = "Conspicuous Weapons" - -/datum/uplink_item/device_tools/hypnotic_flash - restricted_roles = list("Psychiatrist") - category = "Role-Restricted" - - -/datum/uplink_item/dangerous/syndicate_minibomb - cost = 4 - -/datum/uplink_item/role_restricted/his_grace - include_objectives = list(/datum/objective/hijack) - -/datum/uplink_item/stealthy_tools/mulligan - exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) - -/datum/uplink_item/device_tools/fakenucleardisk - surplus_nullcrates = 0 - -////////////////////////// -/////////New Items//////// -////////////////////////// - -/datum/uplink_item/stealthy_weapons/door_charge - name = "Explosive Airlock Charge" - desc = "A small, easily concealable device. It can be applied to an open airlock panel, booby-trapping it. \ - The next person to use that airlock will trigger an explosion, knocking them down and destroying \ - the airlock maintenance panel." - item = /obj/item/doorCharge - cost = 2 - surplus = 10 - exclude_modes = list(/datum/game_mode/nuclear) - - -/datum/uplink_item/device_tools/arm - name = "Additional Arm" - desc = "An additional arm, automatically added to your body upon purchase, allows you to use more items at once" - item = /obj/item/melee/supermatter_sword //doesn't actually spawn a supermatter sword, but it needs an object to show up in the menu :^) - cost = 5 - surplus = 0 - exclude_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/arm/nuke - cost = 15 - exclude_modes = list() - include_modes = list(/datum/game_mode/nuclear) - -/datum/uplink_item/device_tools/arm/spawn_item(spawn_item, mob/user) - var/limbs = user.held_items.len - user.change_number_of_hands(limbs+1) - to_chat(user, "You feel more dexterous") - -///datum/uplink_item/race_restricted/xeno_infestation_kit //Disabled as creating a xeno infestation is not very helpful, bit left it in here in case you want it -// name = "Xenomorph Infestation Starter Kit" -// desc = "A kit containing the basics for starting a xenomorph infestation. Contains a hivenode, autosurgen, and three alien embryos. Does not include hosts." -// cost = 5 -// item = /obj/item/storage/box/syndie_kit/xeno_infestation_kit -// restricted_species = list("polysmorph") - - /datum/uplink_item/race_restricted/xeno_organ_kit - name = "Xenomorph Organ Kit" - desc = "A kit containing the some organs that were... \"donated\" by your ancestors. Contains a autosurgen, plasma vessel, resin spinner, an acid gland, and a neurotoxin gland." - cost = 15 //Price might not be ballenced as I am not too familiar with tator uplink stuff, feedback would be nice - item = /obj/item/storage/box/syndie_kit/xeno_organ_kit - restricted_species = list("polysmorph") - -/datum/uplink_item/role_restricted/gondola_meat - name = "Gondola meat" - desc = "A slice of gondola meat will turn any hard-working, brainwashed NT employee into a goody-two-shoes gondola in a matter of minutes." - item = /obj/item/reagent_containers/food/snacks/meat/slab/gondola - cost = 6 - restricted_roles = list("Cook") - -/datum/uplink_item/role_restricted/cluwneburger - name = "Cluwne Burger" - desc = "A burger infused with the tears of thousands of cluwnes. Infects anyone who takes a bite and pretty much everyone else on the station with a cluwnification virus which will quickly turn them into a cluwne. Can only be cured with Mimanas." - item = /obj/item/storage/box/syndie_kit/cluwnification - cost = 25 - restricted_roles = list("Clown", "Cook") - -/datum/uplink_item/role_restricted/syndicate_basket - name = "Syndicate Frying Basket" - desc = "A syndicate basket which allows the deep frying of dead corpses, ejects anything which the corpse is wearing." - item = /obj/item/syndicate_basket - cost = 7 - restricted_roles = list("Cook") - -/datum/uplink_item/implants/mindslave - name = "Mindslave Implant" - desc = "An implant injected into another body, forcing the victim to obey any command by the user." - item = /obj/item/storage/box/syndie_kit/imp_mindslave - cost = 7 - manufacturer = /datum/corporation/traitor/cybersun - surplus = 20 - -/datum/uplink_item/implants/greytide - name = "Greytide Implant" - desc = "An implant injected into another body, forcing the victim to greytide." - item = /obj/item/storage/box/syndie_kit/imp_greytide - cost = 5 - surplus = 20 - restricted_roles = list("Assistant") - -/datum/uplink_item/badass/frying_pan - name = "Bananium Plated Frying Pan" - desc = "A frying pan imbued with ancient powers." - item = /obj/item/melee/fryingpan/bananium - cost = 40 - cant_discount = TRUE +/datum/uplink_item + var/list/include_objectives = list() //objectives to allow the buyer to buy this item + var/list/exclude_objectives = list() //objectives to disallow the buyer from buying this item + var/surplus_nullcrates + +/datum/uplink_item/New() + . = ..() + if(isnull(surplus_nullcrates)) + surplus_nullcrates = surplus + +///////////////////////////////// +////////Item re-balancing//////// +///////////////////////////////// + +/datum/uplink_item/dangerous + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/throwingweapons + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/martialarts + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/cqc + category = "Conspicuous Weapons" + +/datum/uplink_item/stealthy_weapons/romerol_kit + category = "Conspicuous Weapons" + include_objectives = list(/datum/objective/hijack, /datum/objective/martyr) + +/datum/uplink_item/stealthy_weapons/soap_clusterbang + category = "Conspicuous Weapons" + +/datum/uplink_item/device_tools/hypnotic_flash + restricted_roles = list("Psychiatrist") + category = "Role-Restricted" + + +/datum/uplink_item/dangerous/syndicate_minibomb + cost = 4 + +/datum/uplink_item/role_restricted/his_grace + include_objectives = list(/datum/objective/hijack) + +/datum/uplink_item/stealthy_tools/mulligan + exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) + +/datum/uplink_item/device_tools/fakenucleardisk + surplus_nullcrates = 0 + +////////////////////////// +/////////New Items//////// +////////////////////////// + +/datum/uplink_item/stealthy_weapons/door_charge + name = "Explosive Airlock Charge" + desc = "A small, easily concealable device. It can be applied to an open airlock panel, booby-trapping it. \ + The next person to use that airlock will trigger an explosion, knocking them down and destroying \ + the airlock maintenance panel." + item = /obj/item/doorCharge + cost = 2 + surplus = 10 + exclude_modes = list(/datum/game_mode/nuclear) + + +/datum/uplink_item/device_tools/arm + name = "Additional Arm" + desc = "An additional arm, automatically added to your body upon purchase, allows you to use more items at once" + item = /obj/item/melee/supermatter_sword //doesn't actually spawn a supermatter sword, but it needs an object to show up in the menu :^) + cost = 5 + surplus = 0 + exclude_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/arm/nuke + cost = 15 + exclude_modes = list() + include_modes = list(/datum/game_mode/nuclear) + +/datum/uplink_item/device_tools/arm/spawn_item(spawn_item, mob/user) + var/limbs = user.held_items.len + user.change_number_of_hands(limbs+1) + to_chat(user, "You feel more dexterous") + +///datum/uplink_item/race_restricted/xeno_infestation_kit //Disabled as creating a xeno infestation is not very helpful, bit left it in here in case you want it +// name = "Xenomorph Infestation Starter Kit" +// desc = "A kit containing the basics for starting a xenomorph infestation. Contains a hivenode, autosurgen, and three alien embryos. Does not include hosts." +// cost = 5 +// item = /obj/item/storage/box/syndie_kit/xeno_infestation_kit +// restricted_species = list("polysmorph") + +/datum/uplink_item/race_restricted/xeno_organ_kit + name = "Xenomorph Organ Kit" + desc = "A kit containing the some organs that were... \"donated\" by your ancestors. Contains a autosurgen, plasma vessel, resin spinner, an acid gland, and a neurotoxin gland." + cost = 15 //Price might not be ballenced as I am not too familiar with tator uplink stuff, feedback would be nice + item = /obj/item/storage/box/syndie_kit/xeno_organ_kit + restricted_species = list("polysmorph") + +/datum/uplink_item/role_restricted/gondola_meat + name = "Gondola meat" + desc = "A slice of gondola meat will turn any hard-working, brainwashed NT employee into a goody-two-shoes gondola in a matter of minutes." + item = /obj/item/reagent_containers/food/snacks/meat/slab/gondola + cost = 6 + restricted_roles = list("Cook") + +/datum/uplink_item/role_restricted/cluwneburger + name = "Cluwne Burger" + desc = "A burger infused with the tears of thousands of cluwnes. Infects anyone who takes a bite and pretty much everyone else on the station with a cluwnification virus which will quickly turn them into a cluwne. Can only be cured with Mimanas." + item = /obj/item/storage/box/syndie_kit/cluwnification + cost = 25 + restricted_roles = list("Clown", "Cook") + +/datum/uplink_item/role_restricted/syndicate_basket + name = "Syndicate Frying Basket" + desc = "A syndicate basket which allows the deep frying of dead corpses, ejects anything which the corpse is wearing." + item = /obj/item/syndicate_basket + cost = 7 + restricted_roles = list("Cook") + +/datum/uplink_item/implants/mindslave + name = "Mindslave Implant" + desc = "An implant injected into another body, forcing the victim to obey any command by the user." + item = /obj/item/storage/box/syndie_kit/imp_mindslave + cost = 7 + manufacturer = /datum/corporation/traitor/cybersun + surplus = 20 + +/datum/uplink_item/implants/greytide + name = "Greytide Implant" + desc = "An implant injected into another body, forcing the victim to greytide." + item = /obj/item/storage/box/syndie_kit/imp_greytide + cost = 5 + surplus = 20 + restricted_roles = list("Assistant") + +/datum/uplink_item/badass/frying_pan + name = "Bananium Plated Frying Pan" + desc = "A frying pan imbued with ancient powers." + item = /obj/item/melee/fryingpan/bananium + cost = 40 + cant_discount = TRUE