diff --git a/_maps/map_files/Basketball/ass_blast_usa.dmm b/_maps/map_files/Basketball/ass_blast_usa.dmm index d4d7a435ebe..4b3354ba649 100644 --- a/_maps/map_files/Basketball/ass_blast_usa.dmm +++ b/_maps/map_files/Basketball/ass_blast_usa.dmm @@ -27,7 +27,7 @@ /area/centcom/basketball) "cz" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/sniper_rifle, +/obj/item/gun/ballistic/rifle/sniper_rifle, /turf/open/floor/iron/dark, /area/centcom/basketball) "dr" = ( diff --git a/_maps/templates/battlecruiser_starfury.dmm b/_maps/templates/battlecruiser_starfury.dmm index 22697e2ac9f..979b5f2b058 100644 --- a/_maps/templates/battlecruiser_starfury.dmm +++ b/_maps/templates/battlecruiser_starfury.dmm @@ -2088,28 +2088,28 @@ /obj/item/ammo_box/a40mm{ icon_state = "40mm-4" }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30"; pixel_x = 2; pixel_y = 4 }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30"; pixel_x = 2; pixel_y = 4 }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30" }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30" }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30"; pixel_x = -2; pixel_y = -4 }, -/obj/item/ammo_box/magazine/m556{ +/obj/item/ammo_box/magazine/m223{ icon_state = "5.56m-30"; pixel_x = -2; pixel_y = -4 @@ -2475,7 +2475,7 @@ layer = 2.9 }, /obj/item/storage/belt/military, -/obj/item/ammo_box/magazine/mm712x82, +/obj/item/ammo_box/magazine/m7mm, /obj/item/gun/ballistic/automatic/l6_saw, /turf/open/floor/pod/light, /area/shuttle/sbc_starfury) diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm index 64f4d6d8cf7..e76b1cae4f6 100644 --- a/code/__DEFINES/projectiles.dm +++ b/code/__DEFINES/projectiles.dm @@ -11,7 +11,7 @@ // Caliber defines: (current count stands at 24) /// The caliber used by the [L6 SAW][/obj/item/gun/ballistic/automatic/l6_saw]. -#define CALIBER_712X82MM "mm71282" +#define CALIBER_A7MM "a7mm" /// The caliber used by the [security auto-rifle][/obj/item/gun/ballistic/automatic/wt550]. #define CALIBER_46X30MM "4.6x30mm" /// The caliber used by the Nanotrasen Saber SMG, PP-95 SMG and Type U3 Uzi. Also used as the default caliber for pistols but only the stechkin APS machine pistol doesn't override it. @@ -33,7 +33,7 @@ /// The caliber used by [one revolver variant][/obj/item/gun/ballistic/revolver/nagant]. #define CALIBER_N762 "n762" /// The caliber used by the the M-90gl Carbine, and NT-ARG 'Boarder'. -#define CALIBER_A556 "a556" +#define CALIBER_A223 "a223" /// The caliber used by bolt action rifles. #define CALIBER_A762 "a762" /// The caliber used by shotguns. diff --git a/code/game/objects/effects/spawners/random/clothing.dm b/code/game/objects/effects/spawners/random/clothing.dm index 437c9475458..3d2bb47cbf0 100644 --- a/code/game/objects/effects/spawners/random/clothing.dm +++ b/code/game/objects/effects/spawners/random/clothing.dm @@ -173,3 +173,62 @@ /obj/item/storage/backpack/duffelbag/engineering, /obj/item/storage/backpack/duffelbag/clown, ) + +/obj/effect/spawner/random/clothing/funny_hats + name = "random hat spawner" + icon_state = "hat" + desc = "This is the update that ruined Spacestation 13 forever. I can't believe what the TG Coders have done. \ + They've added fucking HATS! HATS!!! In MY competitive-roleplay-action-click-shooter-stabber-against-two-sides-to-detonate-the-payload game? \ + This isn't what I signed up for and why I supported this game! My game is chugging with every update to this stupid project and \ + I can't fucking stand it anymore. And instead of fixing the bugs or getting rid of the exploits, they just keep adding more \ + fucking hats so that the dumbasses that keep feeding into the coders bullshit will eat it up and ignore the glaring problems with it. \ + They've stopped caring. We've not had a REAL update in almost 5 years of development! Just removals! It's been all downhill since cloning and stuns were removed. \ + And frankly, I don't know what to do. There isn't any other competitive-roleplay-action-click-shooter-stabber-against-two-sides-to-detonate-the-payload game \ + out there that isn't trying to get my donator money just so I can have a single sprite added to the game and autoequipped to my character. \ + Next thing you know, the coders are going to have us PAY for these goddamn pixels on our character! Imagine having to pay for extra pixels! \ + I'm fucking DONE WITH THIS GAME! I'M THROUGH WITH THIS SHIT! FUCK THE CODERS! I JUST WANT TO PLAY MY COMPETITIVE-ROLEPLAY-ACTION-\ + CLICK-SHOOTER-STABBER-AGAINST-TWO-SIDES-TO-DETONATE-THE-PAYLOAD GAME THAT ISN'T DRAGGED DOWN BY HORRIBLE ADMINS THAT BAN ME WHEN I SAY \ + CERTAIN WORDS THAT I AM ENTITLED TO SAY ON THE INTERNET! I'M THROUGH WITH THIS! I'M GOING TO GO PLAY A PURE, GENUINE GAME. WITH NO FUCKING HATS!" + loot = list( + /obj/item/clothing/head/costume/powdered_wig, + /obj/item/clothing/head/costume/cueball, + /obj/item/clothing/head/costume/snowman, + /obj/item/clothing/head/costume/witchwig, + /obj/item/clothing/head/costume/maidheadband, + /obj/item/clothing/head/costume/chicken, + /obj/item/clothing/head/costume/griffin, + /obj/item/clothing/head/costume/xenos, + /obj/item/clothing/head/costume/lobsterhat, + /obj/item/clothing/head/costume/cardborg, + /obj/item/clothing/head/costume/football_helmet, + /obj/item/clothing/head/costume/tv_head/fov_less, + /obj/item/clothing/head/costume/tmc, + /obj/item/clothing/head/costume/deckers, + /obj/item/clothing/head/costume/yuri, + /obj/item/clothing/head/costume/allies, + /obj/item/clothing/head/frenchberet, + /obj/item/clothing/head/costume/crown, + /obj/item/clothing/head/fedora, + /obj/item/clothing/head/beanie/red, + /obj/item/clothing/head/beanie/darkblue, + /obj/item/clothing/head/rasta, + /obj/item/clothing/head/costume/constable, + /obj/item/clothing/head/bio_hood/plague, + /obj/item/clothing/head/costume/nursehat, + /obj/item/clothing/head/hats/bowler, + /obj/item/clothing/head/costume/bearpelt, + /obj/item/clothing/head/flatcap, + /obj/item/clothing/head/cowboy, + /obj/item/clothing/head/costume/rice_hat, + /obj/item/clothing/head/costume/pharaoh, + /obj/item/clothing/head/costume/delinquent, + /obj/item/clothing/head/costume/jackbros, + /obj/item/clothing/head/costume/ushanka, + /obj/item/clothing/head/costume/nightcap/blue, + /obj/item/clothing/head/costume/nightcap/red, + /obj/item/clothing/head/mothcap, + /obj/item/clothing/head/cone, + /obj/item/clothing/head/collectable/petehat, + /obj/item/clothing/head/collectable/wizard, + /obj/item/clothing/head/wizard/marisa/fake, + ) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index c1ce4cce7f3..4bc5eb2f9e5 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -702,23 +702,6 @@ icon_state = "duffel-syndieammo" inhand_icon_state = "duffel-syndieammo" -/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun - desc = "A large duffel bag, packed to the brim with Bulldog shotgun magazines." - -/obj/item/storage/backpack/duffelbag/syndie/ammo/shotgun/PopulateContents() - for(var/i in 1 to 6) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/ammo_box/magazine/m12g/slug(src) - new /obj/item/ammo_box/magazine/m12g/slug(src) - new /obj/item/ammo_box/magazine/m12g/dragon(src) - -/obj/item/storage/backpack/duffelbag/syndie/ammo/smg - desc = "A large duffel bag, packed to the brim with C-20r magazines." - -/obj/item/storage/backpack/duffelbag/syndie/ammo/smg/PopulateContents() - for(var/i in 1 to 9) - new /obj/item/ammo_box/magazine/smgm45(src) - /obj/item/storage/backpack/duffelbag/syndie/ammo/mech desc = "A large duffel bag, packed to the brim with various exosuit ammo." @@ -743,24 +726,6 @@ new /obj/item/mecha_ammo/missiles_srm(src) new /obj/item/mecha_ammo/missiles_srm(src) -/obj/item/storage/backpack/duffelbag/syndie/c20rbundle - desc = "A large duffel bag containing a C-20r, some magazines, and a cheap looking suppressor." - -/obj/item/storage/backpack/duffelbag/syndie/c20rbundle/PopulateContents() - new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/ammo_box/magazine/smgm45(src) - new /obj/item/gun/ballistic/automatic/c20r(src) - new /obj/item/suppressor(src) - -/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle - desc = "A large duffel bag containing a Bulldog, some drums, and a pair of thermal imaging glasses." - -/obj/item/storage/backpack/duffelbag/syndie/bulldogbundle/PopulateContents() - new /obj/item/gun/ballistic/shotgun/bulldog(src) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/ammo_box/magazine/m12g(src) - new /obj/item/clothing/glasses/thermal/syndi(src) - /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle desc = "A large duffel bag containing a medical equipment, a Donksoft LMG, a big jumbo box of riot darts, and a magboot MODsuit module." diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index cab2f4e88da..aa327ebf88b 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -619,11 +619,10 @@ /obj/item/storage/belt/grenade/full/PopulateContents() generate_items_inside(list( - /obj/item/grenade/chem_grenade/facid = 1, /obj/item/grenade/chem_grenade/incendiary = 2, /obj/item/grenade/empgrenade = 2, /obj/item/grenade/frag = 10, - /obj/item/grenade/flashbang = 1, + /obj/item/grenade/flashbang = 2, /obj/item/grenade/gluon = 4, /obj/item/grenade/smokebomb = 4, /obj/item/grenade/syndieminibomb = 2, diff --git a/code/game/objects/items/storage/briefcase.dm b/code/game/objects/items/storage/briefcase.dm index 299c10df5af..719f296b39c 100644 --- a/code/game/objects/items/storage/briefcase.dm +++ b/code/game/objects/items/storage/briefcase.dm @@ -60,7 +60,7 @@ user.visible_message(span_suicide("[user] looks overwhelmed with paperwork! It looks like [user.p_theyre()] trying to commit suicide!")) return OXYLOSS -/obj/item/storage/briefcase/sniperbundle +/obj/item/storage/briefcase/sniper desc = "Its label reads \"genuine hardened Captain leather\", but suspiciously has no other tags or branding. Smells like L'Air du Temps." force = 10 @@ -69,6 +69,6 @@ new /obj/item/gun/ballistic/rifle/sniper_rifle/syndicate(src) new /obj/item/clothing/neck/tie/red/hitman(src) new /obj/item/clothing/under/syndicate/sniper(src) + new /obj/item/ammo_box/magazine/sniper_rounds(src) + new /obj/item/ammo_box/magazine/sniper_rounds(src) new /obj/item/ammo_box/magazine/sniper_rounds/disruptor(src) - new /obj/item/ammo_box/magazine/sniper_rounds/disruptor(src) - new /obj/item/suppressor(src) diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index eded2483104..028c911742f 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -313,24 +313,136 @@ name = "old toolbox" custom_materials = list(/datum/material/hauntium = SMALL_MATERIAL_AMOUNT*5) -/obj/item/storage/toolbox/mosincase - name = "ancient gun case" - desc = "A weapon's case. Has the symbol of the Third Soviet Union stamped on the side." +/obj/item/storage/toolbox/guncase + name = "gun case" + desc = "A weapon's case. Has a blood-red 'S' stamped on the cover." icon = 'icons/obj/storage/case.dmi' - icon_state = "mosin_case" + icon_state = "infiltrator_case" lefthand_file = 'icons/mob/inhands/equipment/toolbox_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/toolbox_righthand.dmi' - inhand_icon_state = "mosin_case" + inhand_icon_state = "infiltrator_case" has_latches = FALSE + var/weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol + var/extra_to_spawn = /obj/item/ammo_box/magazine/m9mm -/obj/item/storage/toolbox/mosincase/Initialize(mapload) +/obj/item/storage/toolbox/guncase/Initialize(mapload) . = ..() atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY - atom_storage.max_total_storage = 7 //enough to hold ONE mosin and the ammo boxes + atom_storage.max_total_storage = 7 //enough to hold ONE bulky gun and the ammo boxes atom_storage.max_slots = 4 -/obj/item/storage/toolbox/mosincase/PopulateContents() - new /obj/effect/spawner/random/mosin (src) +/obj/item/storage/toolbox/guncase/PopulateContents() + new weapon_to_spawn (src) for(var/i in 1 to 3) - new /obj/effect/spawner/random/mosin/ammo (src) + new extra_to_spawn (src) +/obj/item/storage/toolbox/guncase/bulldog + name = "bulldog gun case" + weapon_to_spawn = /obj/item/gun/ballistic/shotgun/bulldog + extra_to_spawn = /obj/item/ammo_box/magazine/m12g + +/obj/item/storage/toolbox/guncase/c20r + name = "c-20r gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/c20r + extra_to_spawn = /obj/item/ammo_box/magazine/smgm45 + +/obj/item/storage/toolbox/guncase/clandestine + name = "clandestine gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/clandestine + extra_to_spawn = /obj/item/ammo_box/magazine/m10mm + +/obj/item/storage/toolbox/guncase/m90gl + name = "m-90gl gun case" + weapon_to_spawn = /obj/item/gun/ballistic/automatic/m90 + extra_to_spawn = /obj/item/ammo_box/magazine/m223 + +/obj/item/storage/toolbox/guncase/m90gl/PopulateContents() + new weapon_to_spawn (src) + for(var/i in 1 to 2) + new extra_to_spawn (src) + new /obj/item/ammo_box/a40mm/rubber (src) + +/obj/item/storage/toolbox/guncase/rocketlauncher + name = "rocket launcher gun case" + weapon_to_spawn = /obj/item/gun/ballistic/rocketlauncher + extra_to_spawn = /obj/item/ammo_box/rocket + +/obj/item/storage/toolbox/guncase/rocketlauncher/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + +/obj/item/storage/toolbox/guncase/revolver + name = "revolver gun case" + weapon_to_spawn = /obj/item/gun/ballistic/revolver/syndicate + extra_to_spawn = /obj/item/ammo_box/a357 + +/obj/item/storage/toolbox/guncase/sword_and_board + name = "energy sword and shield weapon case" + weapon_to_spawn = /obj/item/melee/energy/sword + extra_to_spawn = /obj/item/shield/energy + +/obj/item/storage/toolbox/guncase/sword_and_board/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + new /obj/item/mod/module/hat_stabilizer (src) + new /obj/item/clothing/head/costume/knight (src) + +/obj/item/storage/toolbox/guncase/cqc + name = "\improper CQC equipment case" + weapon_to_spawn = /obj/item/book/granter/martial/cqc + extra_to_spawn = /obj/item/storage/box/syndie_kit/imp_stealth + +/obj/item/storage/toolbox/guncase/cqc/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + new /obj/item/mod/module/hat_stabilizer (src) + new /obj/item/clothing/head/costume/snakeeater (src) + +/obj/item/clothing/head/costume/snakeeater + name = "strange bandana" + desc = "A bandana. It seems to have a little carp embroidered on the inside, as well as the kanji '魚'." + icon_state = "snake_eater" + inhand_icon_state = null + +/obj/item/clothing/head/costume/knight + name = "fake medieval helmet" + desc = "A classic metal helmet. Though, this one seems to be very obviously fake..." + icon = 'icons/obj/clothing/head/helmet.dmi' + worn_icon = 'icons/mob/clothing/head/helmet.dmi' + icon_state = "knight_green" + inhand_icon_state = "knight_helmet" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT + flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + dog_fashion = null + +/obj/item/storage/toolbox/guncase/doublesword + name = "double-energy sword weapon case" + weapon_to_spawn = /obj/item/dualsaber + extra_to_spawn = /obj/item/soap/syndie + +/obj/item/storage/toolbox/guncase/doublesword/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_BULKY + atom_storage.max_total_storage = 10 //it'll hold enough + atom_storage.max_slots = 5 + +/obj/item/storage/toolbox/guncase/doublesword/PopulateContents() + new weapon_to_spawn (src) + new extra_to_spawn (src) + new /obj/item/mod/module/noslip (src) + new /obj/item/reagent_containers/hypospray/medipen/methamphetamine (src) + new /obj/item/clothing/under/rank/prisoner/nosensor (src) + +/obj/item/storage/toolbox/guncase/soviet + name = "ancient gun case" + desc = "A weapon's case. Has the symbol of the Third Soviet Union stamped on the side." + icon_state = "mosin_case" + inhand_icon_state = "mosin_case" + weapon_to_spawn = /obj/effect/spawner/random/mosin + extra_to_spawn = /obj/effect/spawner/random/mosin/ammo + +/obj/item/storage/toolbox/guncase/soviet/plastikov + name = "ancient surplus gun case" + desc = "A gun case. Has the symbol of the Third Soviet Union stamped on the side." + weapon_to_spawn = /obj/item/gun/ballistic/automatic/plastikov + extra_to_spawn = /obj/item/food/rationpack //sorry comrade, cannot get you more ammo, here, have lunch diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index 12026cc7d0f..4d300204bb3 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -588,19 +588,30 @@ for(var/i in 1 to 3) new /obj/item/grenade/spawnergrenade/buzzkill(src) +/obj/item/storage/box/syndie_kit/manhack_grenades/PopulateContents() + for(var/i in 1 to 3) + new /obj/item/grenade/spawnergrenade/manhacks(src) + /obj/item/storage/box/syndie_kit/sleepytime/PopulateContents() new /obj/item/clothing/under/syndicate/bloodred/sleepytime(src) new /obj/item/reagent_containers/cup/glass/mug/coco(src) new /obj/item/toy/plush/carpplushie(src) new /obj/item/bedsheet/syndie(src) +/obj/item/storage/box/syndie_kit/demoman/PopulateContents() + new /obj/item/gun/grenadelauncher(src) + new /obj/item/storage/belt/grenade/full(src) + if(prob(1)) + new /obj/item/clothing/head/hats/hos/shako(src) + new /obj/item/mod/module/hat_stabilizer(src) + /// Surplus Ammo Box -/obj/item/storage/box/syndie_kit/surplus +/obj/item/storage/box/syndie_kit/sniper_surplus name = "surplus .50 BMG magazine box" desc = "A shoddy box full of surplus .50 BMG magazines. Not as strong, but good enough to keep lead in the air." -/obj/item/storage/box/syndie_kit/surplus/PopulateContents() +/obj/item/storage/box/syndie_kit/sniper_surplus/PopulateContents() for(var/i in 1 to 7) new /obj/item/ammo_box/magazine/sniper_rounds/surplus(src) diff --git a/code/game/objects/structures/crates_lockers/crates/large.dm b/code/game/objects/structures/crates_lockers/crates/large.dm index ef6e25d343c..3fe68ee5763 100644 --- a/code/game/objects/structures/crates_lockers/crates/large.dm +++ b/code/game/objects/structures/crates_lockers/crates/large.dm @@ -55,3 +55,18 @@ to_chat(user, span_warning("You need a crowbar to pry this open!")) return FALSE //Just stop. Do nothing. Don't turn into an invisible sprite. Don't open like a locker. //The large crate has no non-attack interactions other than the crowbar, anyway. + +/obj/structure/closet/crate/large/hats/PopulateContents() + ..() + for (var/i in 1 to 5) + new /obj/effect/spawner/random/clothing/funny_hats(src) + for (var/i in 1 to 5) + new /obj/item/mod/module/hat_stabilizer(src) + if(prob(1)) + var/our_contents = list() + for(var/obj/item/clothing/head/any_hat in contents) + our_contents[any_hat]++ + if(our_contents) + var/obj/item/clothing/head/lucky_hat = pick(our_contents) + lucky_hat.AddComponent(/datum/component/unusual_effect, color = "#FFEA0030", include_particles = TRUE) + lucky_hat.name = "unusual [name]" diff --git a/code/modules/cargo/packs/imports.dm b/code/modules/cargo/packs/imports.dm index db4de55df60..eda2bf3ecb2 100644 --- a/code/modules/cargo/packs/imports.dm +++ b/code/modules/cargo/packs/imports.dm @@ -224,7 +224,7 @@ /obj/item/clothing/mask/russian_balaclava, /obj/item/clothing/head/helmet/rus_ushanka, /obj/item/clothing/suit/armor/vest/russian_coat, - /obj/item/storage/toolbox/mosincase = 2, + /obj/item/storage/toolbox/guncase/soviet = 2, ) /datum/supply_pack/imports/russian/fill(obj/structure/closet/crate/our_crate) diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 01f15e04ea4..6fdecff829b 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -229,7 +229,7 @@ /obj/item/clothing/under/rank/prisoner name = "prison jumpsuit" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "jumpsuit" icon_preview = 'icons/obj/fluff/previews.dmi' icon_state_preview = "prisonsuit" @@ -243,9 +243,14 @@ sensor_mode = SENSOR_COORDS random_sensor = FALSE +/obj/item/clothing/under/rank/prisoner/nosensor + desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"OFF\" position." + has_sensor = NO_SENSORS + sensor_mode = SENSOR_OFF + /obj/item/clothing/under/rank/prisoner/skirt name = "prison jumpskirt" - desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + desc = "Standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." icon_state = "jumpskirt" icon_preview = 'icons/obj/fluff/previews.dmi' icon_state_preview = "prisonskirt" diff --git a/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm index e5ba1d5fc0b..830fb83c0f3 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/forgottenship.dm @@ -136,7 +136,7 @@ GLOBAL_VAR_INIT(fscpassword, generate_password()) rapid_melee = 1 retreat_distance = 2 minimum_distance = 4 - casingtype = /obj/item/ammo_casing/a556/weak + casingtype = /obj/item/ammo_casing/a223/weak projectilesound = 'sound/weapons/gun/smg/shot.ogg' loot = list(/obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier) mob_spawner = /obj/effect/mob_spawn/corpse/human/nanotrasenassaultsoldier diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm index 896fea98034..d3d74f283c5 100644 --- a/code/modules/projectiles/ammunition/ballistic/lmg.dm +++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm @@ -1,33 +1,33 @@ -// 7.12x82mm (SAW) +// 7mm (SAW) -/obj/item/ammo_casing/mm712x82 - name = "7.12x82mm bullet casing" - desc = "A 7.12x82mm bullet casing." +/obj/item/ammo_casing/m7mm + name = "7mm bullet casing" + desc = "A 7mm bullet casing." icon_state = "762-casing" - caliber = CALIBER_712X82MM - projectile_type = /obj/projectile/bullet/mm712x82 + caliber = CALIBER_A7MM + projectile_type = /obj/projectile/bullet/a7mm -/obj/item/ammo_casing/mm712x82/ap - name = "7.12x82mm armor-piercing bullet casing" - desc = "A 7.12x82mm bullet casing designed with a hardened-tipped core to help penetrate armored targets." - projectile_type = /obj/projectile/bullet/mm712x82/ap +/obj/item/ammo_casing/m7mm/ap + name = "7mm armor-piercing bullet casing" + desc = "A 7mm bullet casing designed with a hardened-tipped core to help penetrate armored targets." + projectile_type = /obj/projectile/bullet/a7mm/ap -/obj/item/ammo_casing/mm712x82/hollow - name = "7.12x82mm hollow-point bullet casing" - desc = "A 7.12x82mm bullet casing designed to cause more damage to unarmored targets." - projectile_type = /obj/projectile/bullet/mm712x82/hp +/obj/item/ammo_casing/m7mm/hollow + name = "7mm hollow-point bullet casing" + desc = "A 7mm bullet casing designed to cause more damage to unarmored targets." + projectile_type = /obj/projectile/bullet/a7mm/hp -/obj/item/ammo_casing/mm712x82/incen - name = "7.12x82mm incendiary bullet casing" - desc = "A 7.12x82mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames." - projectile_type = /obj/projectile/bullet/incendiary/mm712x82 +/obj/item/ammo_casing/m7mm/incen + name = "7mm incendiary bullet casing" + desc = "A 7mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames." + projectile_type = /obj/projectile/bullet/incendiary/a7mm -/obj/item/ammo_casing/mm712x82/match - name = "7.12x82mm match bullet casing" - desc = "A 7.12x82mm bullet casing manufactured to unfailingly high standards, you could pull off some cool trickshots with this." - projectile_type = /obj/projectile/bullet/mm712x82/match +/obj/item/ammo_casing/m7mm/match + name = "7mm match bullet casing" + desc = "A 7mm bullet casing manufactured to unfailingly high standards, you could pull off some cool trickshots with this." + projectile_type = /obj/projectile/bullet/a7mm/match -/obj/item/ammo_casing/mm712x82/bouncy - name = "7.12x82mm rubber bullet casing" - desc = "A 7.12x82mm rubber bullet casing manufactured to unfailingly disastrous standards, you could piss off a lot of people spraying this down a hallway." - projectile_type = /obj/projectile/bullet/mm712x82/bouncy +/obj/item/ammo_casing/m7mm/bouncy + name = "7mm rubber bullet casing" + desc = "A 7mm rubber bullet casing manufactured to unfailingly disastrous standards, you could piss off a lot of people spraying this down a hallway." + projectile_type = /obj/projectile/bullet/a7mm/bouncy diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 54b3f39cd85..811b4309f52 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -14,6 +14,14 @@ desc = "A .357 bullet casing, manufactured to exceedingly high standards." projectile_type = /obj/projectile/bullet/a357/match +/obj/item/ammo_casing/a357/phasic + name = ".357 phasic bullet casing" + projectile_type = /obj/projectile/bullet/a357/phasic + +/obj/item/ammo_casing/a357/heartseeker + name = ".357 heartseeker bullet casing" + projectile_type = /obj/projectile/bullet/a357/heartseeker + // 7.62x38mmR (Nagant Revolver) /obj/item/ammo_casing/n762 diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index 38515fb7820..4e07c4c6ff9 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -15,21 +15,21 @@ /obj/item/ammo_casing/a762/enchanted projectile_type = /obj/projectile/bullet/a762/enchanted -// 5.56mm (M-90gl Carbine) +// .223 (M-90gl Carbine) -/obj/item/ammo_casing/a556 - name = "5.56mm bullet casing" - desc = "A 5.56mm bullet casing." - caliber = CALIBER_A556 - projectile_type = /obj/projectile/bullet/a556 +/obj/item/ammo_casing/a223 + name = ".223 bullet casing" + desc = "A .223 bullet casing." + caliber = CALIBER_A223 + projectile_type = /obj/projectile/bullet/a223 -/obj/item/ammo_casing/a556/phasic - name = "5.56mm phasic bullet casing" - desc = "A 5.56mm phasic bullet casing." - projectile_type = /obj/projectile/bullet/a556/phasic +/obj/item/ammo_casing/a223/phasic + name = ".223 phasic bullet casing" + desc = "A .223 phasic bullet casing." + projectile_type = /obj/projectile/bullet/a223/phasic -/obj/item/ammo_casing/a556/weak - projectile_type = /obj/projectile/bullet/a556/weak +/obj/item/ammo_casing/a223/weak + projectile_type = /obj/projectile/bullet/a223/weak // 40mm (Grenade Launcher) @@ -39,3 +39,8 @@ caliber = CALIBER_40MM icon_state = "40mmHE" projectile_type = /obj/projectile/bullet/a40mm + +/obj/item/ammo_casing/a40mm/rubber + name = "40mm rubber shell" + desc = "A cased rubber slug. The big brother of the beanbag slug, this thing will knock someone out in one. Doesn't do so great against anyone in armor." + projectile_type = /obj/projectile/bullet/shotgun_beanbag/a40mm diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index 594a1341d2c..7e84bc1a918 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -32,6 +32,11 @@ desc = "A .45 bullet casing." projectile_type = /obj/projectile/bullet/c45/ap +/obj/item/ammo_casing/c45/hp + name = ".45 hollow point bullet casing" + desc = "A .45 bullet casing." + projectile_type = /obj/projectile/bullet/c45/hp + /obj/item/ammo_casing/c45/inc name = ".45 incendiary bullet casing" desc = "A .45 bullet casing." diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index c14275843db..4be643b0e19 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -7,11 +7,28 @@ caliber = CALIBER_357 multiple_sprites = AMMO_BOX_PER_BULLET item_flags = NO_MAT_REDEMPTION + ammo_band_icon = "+357_ammo_band" + ammo_band_color = null /obj/item/ammo_box/a357/match name = "speed loader (.357 Match)" desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." ammo_type = /obj/item/ammo_casing/a357/match + ammo_band_color = "#77828a" + +/obj/item/ammo_box/a357/phasic + name = "speed loader (.357 Phasic)" + desc = "Designed to quickly reload revolvers. Holds phasic ammo, also known as 'Ghost Lead', allowing it to pass through non-organic material." + ammo_type = /obj/item/ammo_casing/a357/phasic + ammo_band_color = "#693a6a" + +/obj/item/ammo_box/a357/heartseeker + name = "speed loader (.357 Heartseeker)" + desc = "Designed to quickly reload revolvers. Holds heartseeker ammo, which veers into targets with exceptional precision using \ + an unknown method. It apparently predicts movement using neural pulses in the brain, but that's less marketable. \ + As seen in the hit NTFlik horror-space western film, Forget-Me-Not! Brought to you by Roseus Galactic!" + ammo_type = /obj/item/ammo_casing/a357/heartseeker + ammo_band_color = "#a91e1e" /obj/item/ammo_box/c38 name = "speed loader (.38)" @@ -86,6 +103,20 @@ max_ammo = 4 multiple_sprites = AMMO_BOX_PER_BULLET +/obj/item/ammo_box/a40mm/rubber + name = "ammo box (40mm rubber slug)" + ammo_type = /obj/item/ammo_casing/a40mm/rubber + +/obj/item/ammo_box/rocket + name = "rocket bouquet (84mm HE)" + icon_state = "rocketbundle" + ammo_type = /obj/item/ammo_casing/rocket + max_ammo = 3 + multiple_sprites = AMMO_BOX_PER_BULLET + +/obj/item/ammo_box/rocket/can_load(mob/user) + return FALSE + /obj/item/ammo_box/a762 name = "stripper clip (7.62mm)" desc = "A stripper clip." diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index f711f46b54e..5af59b03777 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -1,34 +1,34 @@ -/obj/item/ammo_box/magazine/mm712x82 - name = "box magazine (7.12x82mm)" - icon_state = "a762-50" - ammo_type = /obj/item/ammo_casing/mm712x82 - caliber = CALIBER_712X82MM +/obj/item/ammo_box/magazine/m7mm + name = "box magazine (7mm)" + icon_state = "a7mm-50" + ammo_type = /obj/item/ammo_casing/m7mm + caliber = CALIBER_A7MM max_ammo = 50 -/obj/item/ammo_box/magazine/mm712x82/hollow - name = "box magazine (Hollow-Point 7.12x82mm)" - ammo_type = /obj/item/ammo_casing/mm712x82/hollow +/obj/item/ammo_box/magazine/m7mm/hollow + name = "box magazine (Hollow-Point 7mm)" + ammo_type = /obj/item/ammo_casing/m7mm/hollow -/obj/item/ammo_box/magazine/mm712x82/ap - name = "box magazine (Armor Penetrating 7.12x82mm)" - ammo_type = /obj/item/ammo_casing/mm712x82/ap +/obj/item/ammo_box/magazine/m7mm/ap + name = "box magazine (Armor Penetrating 7mm)" + ammo_type = /obj/item/ammo_casing/m7mm/ap -/obj/item/ammo_box/magazine/mm712x82/incen - name = "box magazine (Incendiary 7.12x82mm)" - ammo_type = /obj/item/ammo_casing/mm712x82/incen +/obj/item/ammo_box/magazine/m7mm/incen + name = "box magazine (Incendiary 7mm)" + ammo_type = /obj/item/ammo_casing/m7mm/incen -/obj/item/ammo_box/magazine/mm712x82/match - name = "box magazine (Match 7.12x82mm)" - ammo_type = /obj/item/ammo_casing/mm712x82/match +/obj/item/ammo_box/magazine/m7mm/match + name = "box magazine (Match 7mm)" + ammo_type = /obj/item/ammo_casing/m7mm/match -/obj/item/ammo_box/magazine/mm712x82/bouncy - name = "box magazine (Rubber 7.12x82mm)" - ammo_type = /obj/item/ammo_casing/mm712x82/bouncy +/obj/item/ammo_box/magazine/m7mm/bouncy + name = "box magazine (Rubber 7mm)" + ammo_type = /obj/item/ammo_casing/m7mm/bouncy -/obj/item/ammo_box/magazine/mm712x82/bouncy/hicap - name = "hi-cap box magazine (Rubber 7.12x82mm)" +/obj/item/ammo_box/magazine/m7mm/bouncy/hicap + name = "hi-cap box magazine (Rubber 7mm)" max_ammo = 150 -/obj/item/ammo_box/magazine/mm712x82/update_icon_state() +/obj/item/ammo_box/magazine/m7mm/update_icon_state() . = ..() - icon_state = "a762-[min(round(ammo_count(), 10), 50)]" //Min is used to prevent high capacity magazines from attempting to get sprites with larger capacities + icon_state = "a7mm-[min(round(ammo_count(), 10), 50)]" //Min is used to prevent high capacity magazines from attempting to get sprites with larger capacities diff --git a/code/modules/projectiles/boxes_magazines/external/rifle.dm b/code/modules/projectiles/boxes_magazines/external/rifle.dm index a4d9bacad89..882fefedec1 100644 --- a/code/modules/projectiles/boxes_magazines/external/rifle.dm +++ b/code/modules/projectiles/boxes_magazines/external/rifle.dm @@ -10,14 +10,14 @@ . = ..() icon_state = "[base_icon_state]-[LAZYLEN(stored_ammo) ? "full" : "empty"]" -/obj/item/ammo_box/magazine/m556 - name = "toploader magazine (5.56mm)" - icon_state = "5.56m" - ammo_type = /obj/item/ammo_casing/a556 - caliber = CALIBER_A556 +/obj/item/ammo_box/magazine/m223 + name = "toploader magazine (.223)" + icon_state = ".223" + ammo_type = /obj/item/ammo_casing/a223 + caliber = CALIBER_A223 max_ammo = 30 multiple_sprites = AMMO_BOX_FULL_EMPTY -/obj/item/ammo_box/magazine/m556/phasic - name = "toploader magazine (5.56mm Phasic)" - ammo_type = /obj/item/ammo_casing/a556/phasic +/obj/item/ammo_box/magazine/m223/phasic + name = "toploader magazine (.223 Phasic)" + ammo_type = /obj/item/ammo_casing/a223/phasic diff --git a/code/modules/projectiles/boxes_magazines/external/smg.dm b/code/modules/projectiles/boxes_magazines/external/smg.dm index a4e2489bdfa..7e9fc44f585 100644 --- a/code/modules/projectiles/boxes_magazines/external/smg.dm +++ b/code/modules/projectiles/boxes_magazines/external/smg.dm @@ -90,6 +90,10 @@ name = "SMG magazine (Armour Piercing .45)" ammo_type = /obj/item/ammo_casing/c45/ap +/obj/item/ammo_box/magazine/smgm45/hp + name = "SMG magazine (Hollow Point .45)" + ammo_type = /obj/item/ammo_casing/c45/hp + /obj/item/ammo_box/magazine/smgm45/incen name = "SMG magazine (Incendiary .45)" ammo_type = /obj/item/ammo_casing/c45/inc diff --git a/code/modules/projectiles/boxes_magazines/external/toy.dm b/code/modules/projectiles/boxes_magazines/external/toy.dm index 1c2a6470796..3a841c605a1 100644 --- a/code/modules/projectiles/boxes_magazines/external/toy.dm +++ b/code/modules/projectiles/boxes_magazines/external/toy.dm @@ -44,8 +44,8 @@ /obj/item/ammo_box/magazine/toy/m762 name = "donksoft box magazine" - icon_state = "a762-toy" - base_icon_state = "a762" + icon_state = "a7mm-toy" + base_icon_state = "a7mm" ammo_type = /obj/item/ammo_casing/foam_dart max_ammo = 50 @@ -54,5 +54,5 @@ icon_state = "[base_icon_state]-[round(ammo_count(), 10)]" /obj/item/ammo_box/magazine/toy/m762/riot - icon_state = "a762-riot" + icon_state = "a7mm-riot" ammo_type = /obj/item/ammo_casing/foam_dart/riot diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index 16b1b787366..387081d6a0c 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -154,7 +154,7 @@ w_class = WEIGHT_CLASS_BULKY inhand_icon_state = "m90" selector_switch_icon = TRUE - accepted_magazine_type = /obj/item/ammo_box/magazine/m556 + accepted_magazine_type = /obj/item/ammo_box/magazine/m223 can_suppress = FALSE var/obj/item/gun/ballistic/revolver/grenadelauncher/underbarrel burst_size = 3 @@ -229,7 +229,7 @@ icon_state = "arg" inhand_icon_state = "arg" slot_flags = 0 - accepted_magazine_type = /obj/item/ammo_box/magazine/m556 + accepted_magazine_type = /obj/item/ammo_box/magazine/m223 can_suppress = FALSE burst_size = 3 fire_delay = 1 @@ -238,13 +238,13 @@ /obj/item/gun/ballistic/automatic/l6_saw name = "\improper L6 SAW" - desc = "A heavily modified 7.12x82mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." + desc = "A heavily modified 7mm light machine gun, designated 'L6 SAW'. Has 'Aussec Armoury - 2531' engraved on the receiver below the designation." icon_state = "l6" inhand_icon_state = "l6closedmag" base_icon_state = "l6" w_class = WEIGHT_CLASS_HUGE slot_flags = 0 - accepted_magazine_type = /obj/item/ammo_box/magazine/mm712x82 + accepted_magazine_type = /obj/item/ammo_box/magazine/m7mm weapon_weight = WEAPON_HEAVY burst_size = 1 actions_types = list() diff --git a/code/modules/projectiles/projectile/bullets/lmg.dm b/code/modules/projectiles/projectile/bullets/lmg.dm index f6081c7b070..5601df06dd5 100644 --- a/code/modules/projectiles/projectile/bullets/lmg.dm +++ b/code/modules/projectiles/projectile/bullets/lmg.dm @@ -24,21 +24,22 @@ /obj/projectile/bullet/syndicate_turret damage = 20 -// 7.12x82mm (SAW) +// 7mm (SAW) -/obj/projectile/bullet/mm712x82 - name = "7.12x82mm bullet" +/obj/projectile/bullet/a7mm + name = "7mm bullet" damage = 30 armour_penetration = 5 wound_bonus = -50 wound_falloff_tile = 0 -/obj/projectile/bullet/mm712x82/ap - name = "7.12x82mm armor-piercing bullet" +/obj/projectile/bullet/a7mm/ap + name = "7mm armor-piercing bullet" + damage = 25 armour_penetration = 75 -/obj/projectile/bullet/mm712x82/hp - name = "7.12x82mm hollow-point bullet" +/obj/projectile/bullet/a7mm/hp + name = "7mm hollow-point bullet" damage = 50 sharpness = SHARP_EDGED weak_against_armour = TRUE @@ -46,20 +47,20 @@ bare_wound_bonus = 30 wound_falloff_tile = -8 -/obj/projectile/bullet/incendiary/mm712x82 - name = "7.12x82mm incendiary bullet" +/obj/projectile/bullet/incendiary/a7mm + name = "7mm incendiary bullet" damage = 15 fire_stacks = 3 -/obj/projectile/bullet/mm712x82/match - name = "7.12x82mm match bullet" +/obj/projectile/bullet/a7mm/match + name = "7mm match bullet" ricochets_max = 2 ricochet_chance = 60 ricochet_auto_aim_range = 4 ricochet_incidence_leeway = 55 -/obj/projectile/bullet/mm712x82/bouncy - name = "7.12x82mm rubber bullet" +/obj/projectile/bullet/a7mm/bouncy + name = "7mm rubber bullet" damage = 20 ricochets_max = 40 ricochet_chance = 500 // will bounce off anything and everything, whether they like it or not diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index 8a9ce8c7649..b5411c937be 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -109,6 +109,20 @@ damage = 60 wound_bonus = -30 +/obj/projectile/bullet/a357/phasic + name = ".357 phasic bullet" + icon_state = "gaussphase" + damage = 35 + armour_penetration = 100 + projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS + +/obj/projectile/bullet/a357/heartseeker + name = ".357 heartseeker bullet" + icon_state = "gauss" + damage = 50 + homing = TRUE + homing_turn_speed = 120 + // admin only really, for ocelot memes /obj/projectile/bullet/a357/match name = ".357 match bullet" diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 712e4dcc0f2..61266ff1769 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -1,19 +1,19 @@ -// 5.56mm (M-90gl Carbine) +// .223 (M-90gl Carbine) -/obj/projectile/bullet/a556 - name = "5.56mm bullet" +/obj/projectile/bullet/a223 + name = ".223 bullet" damage = 35 armour_penetration = 30 wound_bonus = -40 -/obj/projectile/bullet/a556/weak //centcom +/obj/projectile/bullet/a223/weak //centcom damage = 20 -/obj/projectile/bullet/a556/phasic - name = "5.56mm phasic bullet" +/obj/projectile/bullet/a223/phasic + name = ".223 phasic bullet" icon_state = "gaussphase" - damage = 20 - armour_penetration = 70 + damage = 30 + armour_penetration = 100 projectile_phasing = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS // 7.62 (Nagant Rifle) diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 813a10b14e9..446654a3489 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -24,6 +24,14 @@ sharpness = NONE embedding = null +/obj/projectile/bullet/shotgun_beanbag/a40mm + name = "rubber slug" + icon_state = "cannonball" + damage = 20 + stamina = 160 //BONK + wound_bonus = 30 + weak_against_armour = TRUE + /obj/projectile/bullet/incendiary/shotgun name = "incendiary slug" icon_state = "pellet" diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 7dec4b9da21..8befcb690ec 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -10,6 +10,11 @@ name = ".45 armor-piercing bullet" armour_penetration = 50 +/obj/projectile/bullet/c45/hp + name = ".45 hollow point bullet" + damage = 50 + weak_against_armour = TRUE + /obj/projectile/bullet/incendiary/c45 name = ".45 incendiary bullet" damage = 15 diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index 5d76b547119..899f737d8cc 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -26,13 +26,15 @@ var/random_crits_enabled = TRUE // Worst thing Valve ever added /obj/projectile/bullet/rocket/on_hit(atom/target, blocked = FALSE) + var/random_crit_gib = FALSE if(isliving(target) && prob(1) && random_crits_enabled) var/mob/living/gibbed_dude = target if(gibbed_dude.stat < HARD_CRIT) gibbed_dude.say("Is that a fucking ro-", forced = "hit by rocket") + random_crit_gib = TRUE ..() - do_boom(target) + do_boom(target, random_crit_gib) if(anti_armour_damage && ismecha(target)) var/obj/vehicle/sealed/mecha/M = target M.take_damage(anti_armour_damage) @@ -43,11 +45,15 @@ /** This proc allows us to customize the conditions necesary for the rocket to detonate, allowing for different explosions for living targets, turf targets, among other potential differences. This granularity is helpful for things like the special rockets mechs use. */ -/obj/projectile/bullet/rocket/proc/do_boom(atom/target) +/obj/projectile/bullet/rocket/proc/do_boom(atom/target, random_crit_gib = FALSE) if(!isliving(target)) //if the target isn't alive, so is a wall or something explosion(target, heavy_impact_range = 1, light_impact_range = 2, flame_range = 3, flash_range = 4, explosion_cause = src) else explosion(target, light_impact_range = 2, flame_range = 3, flash_range = 4, explosion_cause = src) + if(random_crit_gib) + var/mob/living/gibbed_dude = target + new /obj/effect/temp_visual/crit(get_turf(gibbed_dude)) + gibbed_dude.gib() /// PM9 HEAP rocket - the anti-anything missile you always craved. /obj/projectile/bullet/rocket/heap diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index e1a444b52d3..b08ffac4647 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -178,6 +178,13 @@ amount_per_transfer_from_this = 50 list_reagents = list(/datum/reagent/medicine/stimulants = 50) +/obj/item/reagent_containers/hypospray/medipen/methamphetamine + name = "methamphetamine medipen" + volume = 24 + amount_per_transfer_from_this = 24 + desc = "Contains a relatively safe quantity of methamphetamine, along with mannitol to ensure that brain damage is kept at a minimum." + list_reagents = list(/datum/reagent/drug/methamphetamine = 10, /datum/reagent/medicine/mannitol = 14) + /obj/item/reagent_containers/hypospray/medipen/morphine name = "morphine medipen" desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 0987df92bd9..d28ffa4062c 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -157,6 +157,9 @@ /obj/item/autosurgeon/syndicate/anti_stun starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_stun +/obj/item/autosurgeon/syndicate/anti_drop + starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_drop + /obj/item/autosurgeon/syndicate/reviver starting_organ = /obj/item/organ/internal/cyberimp/chest/reviver diff --git a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm index 48f48bf674c..55624e88bf1 100644 --- a/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm +++ b/code/modules/surgery/organs/internal/cyberimp/augments_internal.dm @@ -167,15 +167,9 @@ name = "boxed cybernetic implants" desc = "A sleek, sturdy box." icon_state = "cyber_implants" - var/list/boxed = list( - /obj/item/autosurgeon/syndicate/thermal_eyes, - /obj/item/autosurgeon/syndicate/xray_eyes, - /obj/item/autosurgeon/syndicate/anti_stun, - /obj/item/autosurgeon/syndicate/reviver) - var/amount = 5 /obj/item/storage/box/cyber_implants/PopulateContents() - var/implant - while(contents.len <= amount) - implant = pick(boxed) - new implant(src) + new /obj/item/autosurgeon/syndicate/xray_eyes(src) + new /obj/item/autosurgeon/syndicate/anti_stun(src) + new /obj/item/autosurgeon/syndicate/reviver(src) + new /obj/item/autosurgeon/syndicate/anti_drop(src) diff --git a/code/modules/uplink/uplink_items/ammunition.dm b/code/modules/uplink/uplink_items/ammunition.dm index 4ab97445251..292f87ffe13 100644 --- a/code/modules/uplink/uplink_items/ammunition.dm +++ b/code/modules/uplink/uplink_items/ammunition.dm @@ -58,5 +58,5 @@ progression_minimum = 30 MINUTES item = /obj/item/ammo_box/a357 cost = 4 - purchasable_from = ~UPLINK_CLOWN_OPS + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version illegal_tech = FALSE diff --git a/code/modules/uplink/uplink_items/clownops.dm b/code/modules/uplink/uplink_items/clownops.dm new file mode 100644 index 00000000000..b973869cf12 --- /dev/null +++ b/code/modules/uplink/uplink_items/clownops.dm @@ -0,0 +1,141 @@ + +// Clown Operative Stuff +// Maybe someday, someone will care to maintain this + +/datum/uplink_item/weapon_kits/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 + item = /obj/item/pneumatic_cannon/pie/selfcharge + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/weapon_kits/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 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/weapon_kits/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/energy/sword/bananium + cost = 3 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/weapon_kits/clownoppin + name = "Ultra Hilarious Firing Pin" + desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." + cost = 1 //much cheaper for clown ops than for clowns + item = /obj/item/firing_pin/clown/ultra + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + +/datum/uplink_item/weapon_kits/clownopsuperpin + name = "Super Ultra Hilarious Firing Pin" + desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." + cost = 4 //much cheaper for clown ops than for clowns + item = /obj/item/firing_pin/clown/ultra/selfdestruct + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + +/datum/uplink_item/weapon_kits/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 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/weapon_kits/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 + surplus = 0 + purchasable_from = UPLINK_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/food/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 + purchasable_from = UPLINK_CLOWN_OPS + +/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 %MIN_BOMB_TIMER 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 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/clown_bomb_clownops/New() + . = ..() + desc = replacetext(desc, "%MIN_BOMB_TIMER", SYNDIEBOMB_MIN_TIMER_SECONDS) + +/datum/uplink_item/explosives/tearstache + name = "Teachstache 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 + surplus = 0 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/pinata + name = "Weapons Grade Pinata Kit" + desc = "A pinata filled with both candy and explosives as well as two belts to carry them on, crack it open and see what you get!" + item = /obj/item/storage/box/syndie_kit/pinata + purchasable_from = UPLINK_CLOWN_OPS + limited_stock = 1 + cost = 12 //This is effectively the clown ops version of the grenadier belt where you should on average get 8 explosives if you use a weapon with exactly 10 force. + surplus = 0 + +/datum/uplink_item/reinforcement/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 + purchasable_from = UPLINK_CLOWN_OPS + restricted = TRUE + refundable = TRUE + +/datum/uplink_item/mech/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/vehicle/sealed/mecha/honker/dark/loaded + cost = 80 + purchasable_from = UPLINK_CLOWN_OPS + +/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 + purchasable_from = UPLINK_CLOWN_OPS + +/datum/uplink_item/badass/clownopclumsinessinjector //clowns can buy this too, but it's in the role-restricted items section for them + name = "Clumsiness Injector" + desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clown operatives who wish to reconnect with their former clownish nature or for clown operatives who wish to torment and play with their prey before killing them." + item = /obj/item/dnainjector/clumsymut + cost = 1 + purchasable_from = UPLINK_CLOWN_OPS + illegal_tech = FALSE + diff --git a/code/modules/uplink/uplink_items/dangerous.dm b/code/modules/uplink/uplink_items/dangerous.dm index 1d3b3cb0a6b..0cdcf3a7bb7 100644 --- a/code/modules/uplink/uplink_items/dangerous.dm +++ b/code/modules/uplink/uplink_items/dangerous.dm @@ -68,7 +68,7 @@ item = /obj/item/dualsaber cost = 16 - purchasable_from = ~UPLINK_CLOWN_OPS + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version /datum/uplink_item/dangerous/doublesword/get_discount_value(discount_type) switch(discount_type) @@ -98,4 +98,4 @@ progression_minimum = 30 MINUTES cost = 13 surplus = 50 - purchasable_from = ~UPLINK_CLOWN_OPS + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) //nukies get their own version diff --git a/code/modules/uplink/uplink_items/nukeops.dm b/code/modules/uplink/uplink_items/nukeops.dm index 8436d72028b..42bc0f56069 100644 --- a/code/modules/uplink/uplink_items/nukeops.dm +++ b/code/modules/uplink/uplink_items/nukeops.dm @@ -1,47 +1,489 @@ -/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 +// Nuclear Operative Weapons and Ammunition + +/datum/uplink_category/weapon_kits + name = "Weapon Kits (Recommended)" + weight = 30 + +/datum/uplink_item/weapon_kits + category = /datum/uplink_category/weapon_kits + surplus = 40 purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/bundles_tc/c20r - name = "C-20r bundle" - desc = "Old Faithful: The classic C-20r, bundled with two magazines and a suppressor at discount price." - item = /obj/item/storage/backpack/duffelbag/syndie/c20rbundle - cost = 14 // normally 16 +// ~~ Ammunition Categories ~~ + +/datum/uplink_category/ammo_nuclear + name = "Additional and Unique Ammunition" + weight = 29 + +/datum/uplink_item/ammo_nuclear + category = /datum/uplink_category/ammo_nuclear + surplus = 40 purchasable_from = UPLINK_NUKE_OPS +// Basic: Run of the mill ammunition for various firearms +/datum/uplink_item/ammo_nuclear/basic + cost = 2 + +// Armor Penetrating: strong into armor, low damage +/datum/uplink_item/ammo_nuclear/ap + cost = 4 + +// Hollow Point: weak into armor, high damage +/datum/uplink_item/ammo_nuclear/hp + cost = 4 + +// Incendiary: sets target on fire, does less damage +/datum/uplink_item/ammo_nuclear/incendiary + cost = 3 + +// Special: does something particularly extra than just any of the above +/datum/uplink_item/ammo_nuclear/special + cost = 5 + +// ~~ Weapon Categories ~~ + +//Low-cost firearms: Around 8 TC each. Meant for easy squad weapon purchases + +/datum/uplink_item/weapon_kits/low_cost + cost = 8 + surplus = 40 + purchasable_from = UPLINK_NUKE_OPS + +// ~~ Bulldog Shotgun ~~ + +/datum/uplink_item/weapon_kits/low_cost/shotgun + name = "Bulldog Shotgun Case (Moderate)" + desc = "A fully-loaded semi-automatic drum-fed shotgun, complete with a secondary magazine you can hotswap. The gun has a handy label to explain how. \ + Compatible with all 12g rounds. Designed for close quarter anti-personnel engagements. Comes with three spare magazines." + item = /obj/item/storage/toolbox/guncase/bulldog + +/datum/uplink_item/ammo_nuclear/basic/buck + name = "12g Buckshot Drum (Bulldog)" + 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_nuclear/basic/slug + name = "12g Slug Drum (Bulldog)" + desc = "An additional 8-round slug magazine for use with the Bulldog shotgun. \ + Now 8 times less likely to shoot your pals." + item = /obj/item/ammo_box/magazine/m12g/slug + +/datum/uplink_item/ammo_nuclear/incendiary/dragon + name = "12g Dragon's Breath Drum (Bulldog)" + 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 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo_nuclear/special/meteor + name = "12g Meteorslug Shells (Bulldog)" + desc = "An alternative 8-round meteorslug magazine for use in the Bulldog shotgun. \ + Great for blasting holes into the hull and knocking down enemies." + item = /obj/item/ammo_box/magazine/m12g/meteor + purchasable_from = UPLINK_NUKE_OPS + +// ~~ Ansem Pistol ~~ + +/datum/uplink_item/weapon_kits/low_cost/clandestine + name = "Ansem Pistol Case (Easy/Spare)" + desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible \ + with suppressors. Comes with three spare magazines." + item = /obj/item/storage/toolbox/guncase/clandestine + +/datum/uplink_item/ammo_nuclear/basic/m10mm + name = "10mm Handgun Magazine (Ansem)" + desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol." + item = /obj/item/ammo_box/magazine/m10mm + +/datum/uplink_item/ammo_nuclear/ap/m10mm + name = "10mm Armour Piercing Magazine (Ansem)" + desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/m10mm/ap + +/datum/uplink_item/ammo_nuclear/hp/m10mm + name = "10mm Hollow Point Magazine (Ansem)" + desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ + These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/m10mm/hp + +/datum/uplink_item/ammo_nuclear/incendiary/m10mm + name = "10mm Incendiary Magazine (Ansem)" + desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ + Loaded with incendiary rounds which inflict less damage, but ignite the target." + item = /obj/item/ammo_box/magazine/m10mm/fire + +//Medium-cost: 14 TC each. Meant for more expensive purchases with a goal in mind. + +/datum/uplink_item/weapon_kits/medium_cost + cost = 14 + surplus = 20 + purchasable_from = UPLINK_NUKE_OPS + +// ~~ C-20r Submachine Gun ~~ + +/datum/uplink_item/weapon_kits/medium_cost/smg + name = "C-20r Submachine Gun Case (Easy)" + 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. Comes with spare three magazines." + item = /obj/item/storage/toolbox/guncase/c20r + +/datum/uplink_item/ammo_nuclear/basic/smg + name = ".45 SMG Magazine (C-20r)" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun." + item = /obj/item/ammo_box/magazine/smgm45 + +/datum/uplink_item/ammo_nuclear/ap/smg + name = ".45 Armor Piercing SMG Magazine (C-20r)" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + These rounds are less effective at injuring the target but penetrate protective gear." + item = /obj/item/ammo_box/magazine/smgm45/ap + +/datum/uplink_item/ammo_nuclear/hp/smg + name = ".45 Hollow Point SMG Magazine (C-20r)" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + These rounds are more damaging but ineffective against armour." + item = /obj/item/ammo_box/magazine/smgm45/hp + +/datum/uplink_item/ammo_nuclear/incendiary/smg + name = ".45 Incendiary SMG Magazine (C-20r)" + desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ + Loaded with incendiary rounds which inflict little damage, but ignite the target." + item = /obj/item/ammo_box/magazine/smgm45/incen + cost = 4 + purchasable_from = UPLINK_NUKE_OPS + +// ~~ Energy Sword and Shield ~~ + +/datum/uplink_item/weapon_kits/medium_cost/sword_and_board + name = "Energy Shield and Sword Case (Very Hard)" + desc = "A case containing an energy sword and energy shield. The shield is capable of deflecting \ + energy and laser projectiles, and the sword most forms of attack. Perfect for the enterprising nuclear knight. " + item = /obj/item/storage/toolbox/guncase/sword_and_board + +// ~~ Syndicate Revolver ~~ +// Nuclear operatives get a special deal on their revolver purchase compared to traitors. + +/datum/uplink_item/weapon_kits/medium_cost/revolvercase + name = "Syndicate Revolver Case (Moderate)" + desc = "Waffle Co.'s modernized Syndicate revolver. Fires 7 brutal rounds of .357 Magnum. \ + A classic operative weapon, brought to the modern era. Comes with 3 additional speedloaders of .357." + item = /obj/item/storage/toolbox/guncase/revolver + +/datum/uplink_item/ammo_nuclear/basic/revolver + name = ".357 Speed Loader (Revolver)" + 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. Operatives get a discount from most of our agents!" + item = /obj/item/ammo_box/a357 + +/datum/uplink_item/ammo_nuclear/special/revolver/phasic + name = ".357 Phasic Speed Loader (Revolver)" + desc = "A speed loader that contains seven additional .357 Magnum phasic rounds; usable with the Syndicate revolver. \ + These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ + The name is a misnomer. It doesn't contain any lead whatsoever!" + item = /obj/item/ammo_box/a357/phasic + +/datum/uplink_item/ammo_nuclear/special/revolver/heartseeker + name = ".357 Heartseeker Speed Loader (Revolver)" + desc = "A speed loader that contains seven additional .357 Magnum heartseeker rounds; usable with the Syndicate revolver. \ + Able to veer straight into targets! Don't miss a shot with heartseeker! As seen in the hit NTFlik horror-space western film, Forget-Me-Not! \ + Brought to you by Roseus Galactic!" + item = /obj/item/ammo_box/a357/heartseeker + cost = 3 + +// ~~ Grenade Launcher ~~ +// 'If god had wanted you to live, he would not have created ME!' + +/datum/uplink_item/weapon_kits/medium_cost/rawketlawnchair + name = "84mm Rocket Propelled Grenade Launcher (Hard)" + 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! Comes with a bouquet of additional rockets!" + item = /obj/item/storage/toolbox/guncase/rocketlauncher + +/datum/uplink_item/ammo_nuclear/basic/rocket + name = "84mm HE Rocket Bouquet (Rocket Launcher)" + desc = "Three low-yield anti-personnel HE rocket wrapped in a bundle. Gonna take you out in style!" + item = /obj/item/ammo_box/rocket + +/datum/uplink_item/ammo_nuclear/ap/rocket + name = "84mm HEAP Rocket (Rocket Launcher)" + desc = "A high-yield HEAP rocket; extremely effective against literally everything and anything near that thing that doesn't exist anymore. \ + Strike fear into the hearts of your enemies." + item = /obj/item/ammo_casing/rocket/heap + +//High-cost: 18 TC each. Really should only be coming out during war for how powerful it is, or be the majority of your TC outside of war. + +/datum/uplink_item/weapon_kits/high_cost + cost = 18 + surplus = 10 + purchasable_from = UPLINK_NUKE_OPS + +// ~~ L6 SAW Machine Gun ~~ + +/datum/uplink_item/weapon_kits/high_cost/machinegun + name = "L6 Squad Automatic Weapon (Moderate)" + desc = "A fully-loaded Aussec Armoury belt-fed machine gun. \ + This deadly weapon has a massive 50-round magazine of devastating 7mm ammunition." + item = /obj/item/gun/ballistic/automatic/l6_saw + +/datum/uplink_item/ammo_nuclear/basic/machinegun + name = "7mm Box Magazine (L6 SAW)" + desc = "A 50-round magazine of 7mm 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/m7mm + +/datum/uplink_item/ammo_nuclear/ap/machinegun + name = "7mm (Armor Penetrating) Box Magazine (L6 SAW)" + desc = "A 50-round magazine of 7mm ammunition for use in the L6 SAW; equipped with special properties \ + to puncture even the most durable armor." + item = /obj/item/ammo_box/magazine/m7mm/ap + +/datum/uplink_item/ammo_nuclear/hp/machinegun + name = "7mm (Hollow-Point) Box Magazine (L6 SAW)" + desc = "A 50-round magazine of 7mm 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/m7mm/hollow + +/datum/uplink_item/ammo_nuclear/incendiary/machinegun + name = "7mm (Incendiary) Box Magazine (L6 SAW)" + desc = "A 50-round magazine of 7mm 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/m7mm/incen + +/datum/uplink_item/ammo_nuclear/special/machinegun + name = "7mm (Match) Box Magazine (L6 SAW)" + desc = "A 50-round magazine of 7mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ + precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." + item = /obj/item/ammo_box/magazine/m7mm/match + +// ~~ M-90gl Carbine ~~ + +/datum/uplink_item/weapon_kits/high_cost/carbine + name = "M-90gl Carbine Case (Hard)" + desc = "A fully-loaded, specialized three-round burst carbine that fires .223 ammunition from a 30 round magazine \ + with a 40mm underbarrel grenade launcher. Use secondary-fire to fire the grenade launcher. Comes with two spare magazines \ + and a box of 40mm rubber slugs." + item = /obj/item/storage/toolbox/guncase/m90gl + +/datum/uplink_item/ammo_nuclear/basic/carbine + name = ".223 Toploader Magazine (M-90gl)" + desc = "An additional 30-round .223 magazine; suitable for use with the M-90gl carbine. \ + These bullets pack less punch than 7mm rounds, but they still offer more power than .45 ammo due to their innate armour penetration." + item = /obj/item/ammo_box/magazine/m223 + +/datum/uplink_item/ammo_nuclear/special/carbine + name = ".223 Toploader Phasic Magazine (M-90gl)" + desc = "An additional 30-round .223 magazine; suitable for use with the M-90gl carbine. \ + These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ + The name is a misnomer. It doesn't contain any lead whatsoever!" + item = /obj/item/ammo_box/magazine/m223/phasic + +/datum/uplink_item/ammo_nuclear/basic/carbine/a40mm + name = "40mm Grenade Box (M-90gl)" + desc = "A box of 40mm HE grenades for use with the M-90gl's under-barrel grenade launcher. \ + Your teammates will ask you to not shoot these down small hallways. \ + You'll do it anyway." + item = /obj/item/ammo_box/a40mm + +// ~~ Anti-Materiel Sniper Rifle ~~ + +/datum/uplink_item/weapon_kits/high_cost/sniper + name = "Anti-Materiel Sniper Rifle Briefcase (Hard)" + desc = "An outdated, but still extremely powerful anti-material sniper rifle. Fires .50 BMG cartridges from a 6 round magazine. \ + Can be fitted with a suppressor. If anyone asks how that even works, tell them it's Nanotrasen's fault. Comes with \ + 3 spare magazines; 2 regular magazines and 1 disruptor magazine. Also comes with a suit and tie." + item = /obj/item/storage/briefcase/sniper + +/datum/uplink_item/ammo_nuclear/basic/sniper + name = ".50 BMG Magazine (AMSR)" + 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_nuclear/basic/sniper/surplussniper + name = ".50 BMG Surplus Magazine Box (AMSR)" + desc = "A box full of surplus .50 BMG magazines. Not as good as high quality magazines, \ + usually lacking the penetrative power and impact, but good enough to keep the gun firing. \ + Useful for arming a squad." + cost = 7 //1 TC per magazine, special price for a special deal! + item = /obj/item/storage/box/syndie_kit/sniper_surplus + +/datum/uplink_item/ammo_nuclear/ap/sniper/penetrator + name = ".50 BMG Penetrator Magazine (AMSR)" + desc = "A 6-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 + +/datum/uplink_item/ammo_nuclear/incendiary/sniper + name = ".50 BMG Incendiary Magazine (AMSR)" + desc = "A 6-round magazine of incendiary ammo. \ + Sets your enemies ablaze, along with everyone else next to them!" + item = /obj/item/ammo_box/magazine/sniper_rounds/incendiary + +/datum/uplink_item/ammo_nuclear/basic/sniper/disruptor + name = ".50 BMG Disruptor Magazine (AMSR)" + desc = "A 6-round magazine of disruptor ammo designed for use with .50 sniper rifles. \ + Put your enemies and their alarm clock to sleep today!" + item = /obj/item/ammo_box/magazine/sniper_rounds/disruptor + +/datum/uplink_item/ammo_nuclear/special/sniper/marksman + name = ".50 BMG Marksman Magazine (AMSR)" + desc = "A 6-round magazine of marksman ammo designed for use with .50 sniper rifles. \ + Blast your enemies with instant shots! Just watch out for the rebound..." + item = /obj/item/ammo_box/magazine/sniper_rounds/marksman + +/datum/uplink_item/weapon_kits/high_cost/cqc + name = "CQC Equipment Case (Very Hard)" + desc = "Contains a manual that instructs you in the ways of CQC, or Close Quarters Combat. Comes with a stealth implant and a snazzy bandana (and a hat stabilizer to go with it)." + item = /obj/item/book/granter/martial/cqc + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + surplus = 0 + +/datum/uplink_item/weapon_kits/high_cost/doublesword + name = "Double-Energy Sword Case (Very Hard)" + desc = "A case containing a double-energy sword, anti-slip module, meth autoinjector, and a bar of soap. \ + Some say the most infamous nuclear operatives utilized this combination of equipment to slaughter hundreds \ + of Nanotrasen employees. However, some also say this is an embellishment from the Tiger Co-operative. \ + The soap did most of the work. Comes with a prisoner uniform so you fit the part." + item = /obj/item/storage/toolbox/guncase/doublesword + +//Meme weapons: Literally just weapons used as a joke, shouldn't be particularly expensive. + +/datum/uplink_item/weapon_kits/surplus_smg + name = "Surplus SMG Case (Flukie)" + desc = "A horribly outdated automatic weapon. Why would you want to use this? Comes with...rations." + item = /obj/item/gun/ballistic/automatic/plastikov + cost = 2 + purchasable_from = UPLINK_NUKE_OPS + +/datum/uplink_item/ammo_nuclear/surplus_smg + name = "Surplus SMG Magazine (Surplus)" + desc = "A cylindrical magazine designed for the PP-95 SMG." + item = /obj/item/ammo_box/magazine/plastikov9mm + cost = 1 + purchasable_from = UPLINK_NUKE_OPS + illegal_tech = FALSE + +// Explosives and Grenades +// ~~ Grenades ~~ + +/datum/uplink_item/explosives/grenades + cost = 15 + surplus = 35 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +/datum/uplink_item/explosives/grenades/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. Courtesy of the BLF and Tiger Cooperative." + item = /obj/item/storage/box/syndie_kit/bee_grenades + +/datum/uplink_item/explosives/grenades/virus_grenade + name = "Fungal Tuberculosis Grenade Box" + 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 + restricted = TRUE + +/datum/uplink_item/explosives/grenades/viscerators + name = "Viscerator Delivery Grenade Box" + desc = "A box containing unique grenades that deploys a swarm of viscerators upon activation, which will chase down and shred \ + any non-operatives in the area." + item = /obj/item/storage/box/syndie_kit/manhack_grenades + +// ~~ Grenadier's Belt Kit ~~ + +/datum/uplink_item/weapon_kits/high_cost/grenadier + name = "Grenadier's Belt and Grenade Launcher Kit (Hard)" + desc = "A belt containing 26 lethally dangerous and destructive grenades, along with a grenade launcher to fire them. Comes with an extra multitool and screwdriver." + item = /obj/item/storage/box/syndie_kit/demoman + purchasable_from = UPLINK_NUKE_OPS + +// ~~ Detonator: In case you lose the old one ~~ + +/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 = 1 + purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS + +// Support (Borgs and Reinforcements) + +/datum/uplink_category/reinforcements + name = "Reinforcements" + weight = 28 + +/datum/uplink_item/reinforcements + category = /datum/uplink_category/reinforcements + surplus = 0 + cost = 35 + purchasable_from = UPLINK_NUKE_OPS + restricted = TRUE + refundable = TRUE + +/datum/uplink_item/reinforcements/operative_reinforcement + name = "Operative Reinforcements" + desc = "Call in an additional team member from one of our factions. \ + They'll come equipped with a mere surplus SMG, so arming them is recommended." + item = /obj/item/antag_spawner/nuke_ops + +/datum/uplink_item/reinforcements/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 + +/datum/uplink_item/reinforcements/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 + +/datum/uplink_item/reinforcements/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 + +// ~~ Disposable Sentry Gun ~~ +// Technically not a spawn but it is a kind of reinforcement...I guess. + +/datum/uplink_item/reinforcements/turretbox + name = "Disposable Sentry Gun" + desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." + item = /obj/item/storage/toolbox/emergency/turret/nukie + cost = 16 + restricted = FALSE + refundable = FALSE + +// Bundles + /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." + desc = "A box containing x-ray eyes, a CNS Rebooter and Reviver implant. Comes with an autosurgeon for each." item = /obj/item/storage/box/cyber_implants - cost = 40 + cost = 25 //worth around 32 TC purchasable_from = UPLINK_NUKE_OPS /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 magboot MODsuit module to rescue your friends in no-gravity environments." + a Donksoft LMG, a box of riot darts and a magboot MODsuit module to rescue your friends in no-gravity environments." item = /obj/item/storage/backpack/duffelbag/syndie/med/medicalbundle cost = 25 // normally 31 purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/bundles_tc/sniper - name = "Sniper bundle" - desc = "Elegant and refined: Contains a collapsed sniper rifle in an expensive carrying case, \ - two .50 BMG disruptor magazines, a free 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 27, the suit and office supplies are free! - purchasable_from = UPLINK_NUKE_OPS - /datum/uplink_item/bundles_tc/firestarter name = "Spetsnaz Pyro bundle" desc = "For systematic suppression of carbon lifeforms in close quarters: Contains an Elite MODsuit with a flamethrower attachment, \ - Stechkin APS machine pistol, two incendiary magazines, a minibomb and a stimulant syringe. \ - Order NOW and comrade Boris will throw in an extra tracksuit." + Stechkin APS machine pistol, two incendiary 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 purchasable_from = UPLINK_NUKE_OPS @@ -49,599 +491,87 @@ /datum/uplink_item/bundles_tc/induction_kit name = "Syndicate Induction Kit" desc = "Met a fellow syndicate agent on the station? Kept some TC in reserve just in case? Or are you communicating with one via the Syndicate channel? \ - Get this kit and you'll be able to induct them into your operative team via a special implant. \ - Additionally, it contains an assortment of useful gear for new operatives, including a space suit, an Ansem pistol, two spare magazines, and more! \ - *NOT* for usage with Reinforcements, and does not brainwash the target!" + Get this kit and you'll be able to induct them into your operative team via a special implant. \ + Additionally, it contains an assortment of useful gear for new operatives, including a space suit, an Ansem pistol, two spare magazines, and more! \ + *NOT* for usage with Reinforcements, and does not brainwash the target!" item = /obj/item/storage/box/syndie_kit/induction_kit cost = 10 purchasable_from = UPLINK_NUKE_OPS -/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 - purchasable_from = UPLINK_NUKE_OPS +// Mech related gear -/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 - item = /obj/item/pneumatic_cannon/pie/selfcharge - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS +/datum/uplink_category/mech + name = "Mech Reinforcement" + weight = 27 -/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 - purchasable_from = UPLINK_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/energy/sword/bananium - cost = 3 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/dangerous/clownoppin - name = "Ultra Hilarious Firing Pin" - desc = "A firing pin that, when inserted into a gun, makes that gun only useable by clowns and clumsy people and makes that gun honk whenever anyone tries to fire it." - cost = 1 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/dangerous/clownopsuperpin - name = "Super Ultra Hilarious Firing Pin" - desc = "Like the ultra hilarious firing pin, except the gun you insert this pin into explodes when someone who isn't clumsy or a clown tries to fire it." - cost = 4 //much cheaper for clown ops than for clowns - item = /obj/item/firing_pin/clown/ultra/selfdestruct - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE - -/datum/uplink_item/dangerous/shotgun - name = "Bulldog Shotgun" - desc = "A fully-loaded semi-automatic drum-fed shotgun, complete with a secondary magazine. Compatible with all 12g rounds. Designed for close \ - quarter anti-personnel engagements." - item = /obj/item/gun/ballistic/shotgun/bulldog - cost = 8 - surplus = 40 - purchasable_from = UPLINK_NUKE_OPS - -/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 = 13 - surplus = 40 - purchasable_from = UPLINK_NUKE_OPS - -/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 - purchasable_from = UPLINK_NUKE_OPS - -/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 = 18 +/datum/uplink_item/mech + category = /datum/uplink_category/mech surplus = 0 purchasable_from = UPLINK_NUKE_OPS + restricted = TRUE -/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 40mm underbarrel grenade launcher. Use secondary-fire to fire the grenade launcher." - item = /obj/item/gun/ballistic/automatic/m90 - cost = 14 - surplus = 50 - purchasable_from = UPLINK_NUKE_OPS +// ~~ Mechs ~~ -/datum/uplink_item/dangerous/sniper - name = "Anti-Materiel Sniper Rifle" - desc = "An outdated, but still extremely powerful anti-material sniper rifle. Fires .50 BMG cartridges from a 6 round magazine. \ - Can be fitted with a suppressor. If anyone asks how that even works, tell them it's Nanotrasen's fault." - item = /obj/item/gun/ballistic/rifle/sniper_rifle/syndicate - cost = 16 - surplus = 25 - purchasable_from = UPLINK_NUKE_OPS +/datum/uplink_item/mech/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 a scattershot shotgun, armor boosters against melee and ranged attacks, ion thrusters and a Tesla energy array." + item = /obj/vehicle/sealed/mecha/gygax/dark/loaded + cost = 60 -/datum/uplink_item/dangerous/pistol_nukeop - name = "Ansem 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/clandestine - cost = 6 - purchasable_from = UPLINK_NUKE_OPS +/datum/uplink_item/mech/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/vehicle/sealed/mecha/marauder/mauler/loaded + cost = 100 -/datum/uplink_item/dangerous/surplus_smg - name = "Surplus SMG" - desc = "A horribly outdated automatic weapon. Why would you want to use this?" - item = /obj/item/gun/ballistic/automatic/plastikov - cost = 2 - purchasable_from = UPLINK_NUKE_OPS +// ~~ Mech Support ~~ -/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 - surplus = 0 - purchasable_from = UPLINK_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 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/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 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - cost = 13 - surplus = 0 - -/datum/uplink_item/ammo/pistol_nukeop - name = "10mm Handgun Magazine" - desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol." - item = /obj/item/ammo_box/magazine/m10mm - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/pistolap_nukeop - name = "10mm Armour Piercing Magazine" - desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/m10mm/ap - cost = 3 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/pistolhp_nukeop - name = "10mm Hollow Point Magazine" - desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ - These rounds are more damaging but ineffective against armour." - item = /obj/item/ammo_box/magazine/m10mm/hp - cost = 3 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/pistolfire_nukeop - name = "10mm Incendiary Magazine" - desc = "An additional 8-round 10mm magazine, compatible with the Ansem pistol. \ - Loaded with incendiary rounds which inflict less damage, but ignite the target." - item = /obj/item/ammo_box/magazine/m10mm/fire - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/shotgun - cost = 2 - purchasable_from = UPLINK_NUKE_OPS - -/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/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/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 - purchasable_from = UPLINK_NUKE_OPS - -/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 holes into the hull and knocking down enemies." - item = /obj/item/ammo_box/magazine/m12g/meteor - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/a40mm - name = "40mm Grenade Box" - desc = "A box of 40mm HE grenades 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_box/a40mm - cost = 6 - purchasable_from = UPLINK_NUKE_OPS - -/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 - purchasable_from = UPLINK_NUKE_OPS - -/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 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smgap - name = ".45 Armor Piercing SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ - These rounds are less effective at injuring the target but penetrate protective gear." - item = /obj/item/ammo_box/magazine/smgm45/ap - cost = 5 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/smgfire - name = ".45 Incendiary SMG Magazine" - desc = "An additional 24-round .45 magazine suitable for use with the C-20r submachine gun.\ - Loaded with incendiary rounds which inflict little damage, but ignite the target." - item = /obj/item/ammo_box/magazine/smgm45/incen - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/sniper - cost = 3 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/sniper/basic - name = ".50 BMG 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/surplusbox - name = ".50 BMG Surplus Magazine Box" - desc = "A box full of surplus .50 BMG magazines. Not as good as high quality magazines, \ - usually lacking the penetrative power and impact, but good enough to keep the gun firing. \ - Useful for arming a squad." - cost = 7 //1 TC per magazine - item = /obj/item/storage/box/syndie_kit/surplus - -/datum/uplink_item/ammo/sniper/penetrator - name = ".50 BMG Penetrator Magazine" - desc = "A 6-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 = 4 - -/datum/uplink_item/ammo/sniper/incendiary - name = ".50 BMG Incendiary Magazine" - desc = "A 6-round magazine of incendiary ammo. \ - Sets your enemies ablaze, along with everyone else next to them!" - item = /obj/item/ammo_box/magazine/sniper_rounds/incendiary - cost = 4 - -/datum/uplink_item/ammo/sniper/disruptor - name = ".50 BMG Disruptor Magazine" - desc = "A 6-round magazine of disruptor ammo designed for use with .50 sniper rifles. \ - Put your enemies and their alarm clock to sleep today!" - item = /obj/item/ammo_box/magazine/sniper_rounds/disruptor - cost = 4 - -/datum/uplink_item/ammo/sniper/marksman - name = ".50 BMG Marksman Magazine" - desc = "A 6-round magazine of marksman ammo designed for use with .50 sniper rifles. \ - Blast your enemies with instant shots! Just watch out for the rebound..." - item = /obj/item/ammo_box/magazine/sniper_rounds/marksman - cost = 4 - -/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 due to their innate armour penetration." - item = /obj/item/ammo_box/magazine/m556 - cost = 4 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/carbinephase - name = "5.56mm Toploader Phasic Magazine" - desc = "An additional 30-round 5.56mm magazine; suitable for use with the M-90gl carbine. \ - These bullets are made from an experimental alloy, 'Ghost Lead', that allows it to pass through almost any non-organic material. \ - The name is a misnomer. It doesn't contain any lead whatsoever!" - item = /obj/item/ammo_box/magazine/m556/phasic - cost = 8 - purchasable_from = UPLINK_NUKE_OPS - -/datum/uplink_item/ammo/machinegun - cost = 6 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/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/machinegun/match - name = "7.12x82mm (Match) Box Magazine" - desc = "A 50-round magazine of 7.12x82mm ammunition for use in the L6 SAW; you didn't know there was a demand for match grade \ - precision bullet hose ammo, but these rounds are finely tuned and perfect for ricocheting off walls all fancy-like." - item = /obj/item/ammo_box/magazine/mm712x82/match - cost = 10 - -/datum/uplink_item/ammo/rocket - purchasable_from = UPLINK_NUKE_OPS - -/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/rocket - cost = 4 - -/datum/uplink_item/ammo/rocket/heap - name = "84mm HEAP Rocket" - desc = "A high-yield HEAP rocket; extremely effective against literally everything and anything near that thing that doesn't exist anymore. \ - Strike fear into the hearts of your enemies." - item = /obj/item/ammo_casing/rocket/heap - cost = 6 - -/datum/uplink_item/ammo/surplus_smg - name = "Surplus SMG Magazine" - desc = "A cylindrical magazine designed for the PP-95 SMG." - item = /obj/item/ammo_box/magazine/plastikov9mm - cost = 1 - purchasable_from = UPLINK_NUKE_OPS - illegal_tech = FALSE - -/datum/uplink_item/ammo/mech/bag +/datum/uplink_item/mech/support_bag name = "Mech Support Kit Bag" desc = "A duffel bag containing ammo for four full reloads of the scattershotm which is equipped on standard Dark Gygax and Mauler exosuits. Also comes with some support equipment for maintaining the mech, including tools and an inducer." item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mech cost = 4 purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/ammo/mauler/bag +/datum/uplink_item/mech/support_bag/mauler name = "Mauler Ammo Bag" desc = "A duffel bag containing ammo for three full reloads of the LMG, scattershot carbine, and SRM-8 missile laucher that are equipped on a standard Mauler exosuit." item = /obj/item/storage/backpack/duffelbag/syndie/ammo/mauler cost = 6 purchasable_from = UPLINK_NUKE_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/food/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 - purchasable_from = UPLINK_CLOWN_OPS - -/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 %MIN_BOMB_TIMER 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 - surplus = 0 - purchasable_from = UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/clown_bomb_clownops/New() - . = ..() - desc = replacetext(desc, "%MIN_BOMB_TIMER", SYNDIEBOMB_MIN_TIMER_SECONDS) - -/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. Courtesy of the BLF and Tiger Cooperative." - item = /obj/item/storage/box/syndie_kit/bee_grenades - cost = 15 - surplus = 35 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_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 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_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 - purchasable_from = UPLINK_NUKE_OPS - cost = 22 - surplus = 0 - -/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 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/tearstache - name = "Teachstache 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 - surplus = 0 - purchasable_from = UPLINK_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 - purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS - -/datum/uplink_item/explosives/pinata - name = "Weapons Grade Pinata Kit" - desc = "A pinata filled with both candy and explosives as well as two belts to carry them on, crack it open and see what you get!" - item = /obj/item/storage/box/syndie_kit/pinata - purchasable_from = UPLINK_CLOWN_OPS - limited_stock = 1 - cost = 12 //This is effectively the clown ops version of the grenadier belt where you should on average get 8 explosives if you use a weapon with exactly 10 force. - surplus = 0 - -//Support and Mechs -/datum/uplink_category/support - name = "Support and Exosuits" - weight = 5 - -/datum/uplink_item/support - category = /datum/uplink_category/support - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS - -/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 - purchasable_from = UPLINK_CLOWN_OPS - restricted = TRUE - refundable = TRUE - -/datum/uplink_item/support/reinforcement - name = "Reinforcements" - desc = "Call in an additional team member from one of our factions. \ - They'll come equipped with a mere surplus SMG, so arming them is recommended." - item = /obj/item/antag_spawner/nuke_ops - cost = 25 - purchasable_from = UPLINK_NUKE_OPS - restricted = TRUE - refundable = 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 - 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 - 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 - 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 a scattershot shotgun, armor boosters against melee and ranged attacks, ion thrusters and a Tesla energy array." - item = /obj/vehicle/sealed/mecha/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/vehicle/sealed/mecha/honker/dark/loaded - cost = 80 - purchasable_from = UPLINK_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/vehicle/sealed/mecha/marauder/mauler/loaded - cost = 140 - -/datum/uplink_item/support/turretbox - name = "Disposable Sentry Gun" - desc = "A disposable sentry gun deployment system cleverly disguised as a toolbox, apply wrench for functionality." - item = /obj/item/storage/toolbox/emergency/turret/nukie - cost = 16 - -/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 - purchasable_from = UPLINK_CLOWN_OPS +// Stealthy Tools /datum/uplink_item/stealthy_tools/syndigaloshes/nuke item = /obj/item/clothing/shoes/chameleon/noslip cost = 4 purchasable_from = UPLINK_NUKE_OPS +/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 + purchasable_from = UPLINK_CLOWN_OPS|UPLINK_NUKE_OPS + cant_discount = TRUE + +// Modsuits + /datum/uplink_item/suits/modsuit/elite name = "Elite Syndicate MODsuit" desc = "An upgraded, elite version of the Syndicate MODsuit. It features fireproofing, and also \ - provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." + provides the user with superior armor and mobility compared to the standard Syndicate MODsuit." item = /obj/item/mod/control/pre_equipped/elite purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS /datum/uplink_item/suits/energy_shield name = "MODsuit Energy Shield Module" desc = "An energy shield module for a MODsuit. The shields can handle up to three impacts \ - within a short duration and will rapidly recharge while not under fire." + within a short duration and will rapidly recharge while not under fire." item = /obj/item/mod/module/energy_shield cost = 15 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS @@ -667,6 +597,8 @@ cost = 2 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS +// Devices + /datum/uplink_item/device_tools/assault_pod name = "Assault Pod Targeting Device" desc = "Use this to select the landing zone of your assault pod." @@ -679,7 +611,7 @@ /datum/uplink_item/device_tools/syndie_jaws_of_life name = "Syndicate Jaws of Life" desc = "Based on a Nanotrasen model, this powerful tool can be used as both a crowbar and a pair of wirecutters. \ - In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." + In its crowbar configuration, it can be used to force open airlocks. Very useful for entering the station or its departments." item = /obj/item/crowbar/power/syndicate cost = 4 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS @@ -687,7 +619,7 @@ /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!" + operatives in the fight, even while under fire. Don't cross the streams!" item = /obj/item/gun/medbeam cost = 15 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS @@ -695,8 +627,8 @@ /datum/uplink_item/device_tools/medkit name = "Syndicate Combat Medic Kit" desc = "This first aid kit is a suspicious black and red. Included is a number of atropine medipens \ - for rapid stabilization and detonation prevention, sutures and regenerative mesh for wound treatment, and patches \ - for faster healing on the field. Also comes with basic medical tools and sterlizer." + for rapid stabilization and detonation prevention, sutures and regenerative mesh for wound treatment, and patches \ + for faster healing on the field. Also comes with basic medical tools and sterlizer." item = /obj/item/storage/medkit/tactical cost = 4 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS @@ -704,9 +636,9 @@ /datum/uplink_item/device_tools/medkit/premium name = "Syndicate Combat Medical Suite" desc = "This first aid kit is a suspicious black and red. Included is an unloaded combat chemical injector \ - for suit-penetrative chem delivery, a medical science night vision HUD for quick identification of injured personnel and chemical supplies, \ - improved medical supplies, including Interdyne-approved pharmaceuticals, a hacked cybernetic surgery toolset arm implant, \ - and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." + for suit-penetrative chem delivery, a medical science night vision HUD for quick identification of injured personnel and chemical supplies, \ + improved medical supplies, including Interdyne-approved pharmaceuticals, a hacked cybernetic surgery toolset arm implant, \ + and some helpful MODsuit modules for for field medical use and operative physiopharmaceutical augmentation." item = /obj/item/storage/medkit/tactical/premium cost = 15 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS @@ -715,71 +647,74 @@ 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." + 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 purchasable_from = UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS restricted = TRUE -/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/syndicate/anti_stun - cost = 12 +// Implants + +/datum/uplink_item/implants/nuclear surplus = 0 purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/implants/microbomb +/datum/uplink_item/implants/nuclear/deathrattle + name = "Box of Deathrattle Implants" + desc = "A collection of implants (and one reusable implanter) that should be injected into the team. When one of the team \ + dies, all other implant holders recieve a mental message informing them of their teammates' name \ + and the location of their death. Unlike most implants, these are designed to be implanted \ + in any creature, biological or mechanical." + item = /obj/item/storage/box/syndie_kit/imp_deathrattle + cost = 4 + +/datum/uplink_item/implants/nuclear/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." + 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 - purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/implants/macrobomb +/datum/uplink_item/implants/nuclear/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." + Upon death, releases a massive explosion that will wipe out everything nearby." item = /obj/item/storage/box/syndie_kit/imp_macrobomb cost = 20 - purchasable_from = UPLINK_NUKE_OPS restricted = TRUE -/datum/uplink_item/implants/reviver +/datum/uplink_item/implants/nuclear/reviverplus 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/syndicate/reviver cost = 8 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/implants/thermals +/datum/uplink_item/implants/nuclear/thermals name = "Thermal Eyes" desc = "These cybernetic eyes will give you thermal vision. Comes with a free autosurgeon." item = /obj/item/autosurgeon/syndicate/thermal_eyes cost = 8 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS -/datum/uplink_item/implants/xray +/datum/uplink_item/implants/nuclear/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/syndicate/xray_eyes - cost = 10 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS + cost = 8 -/datum/uplink_item/implants/deathrattle - name = "Box of Deathrattle Implants" - desc = "A collection of implants (and one reusable implanter) that should be injected into the team. When one of the team \ - dies, all other implant holders recieve a mental message informing them of their teammates' name \ - and the location of their death. Unlike most implants, these are designed to be implanted \ - in any creature, biological or mechanical." - item = /obj/item/storage/box/syndie_kit/imp_deathrattle - cost = 4 - surplus = 0 - purchasable_from = UPLINK_NUKE_OPS +/datum/uplink_item/implants/nuclear/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/syndicate/anti_stun + cost = 8 + +/datum/uplink_item/implants/nuclear/antidrop + name = "Anti-Drop Implant" + desc = "This implant will keep you from dropping things from your hands. Be sure to hold onto the item before activating, and \ + activate it again to turn it off. Comes with an autosurgeon." + item = /obj/item/autosurgeon/syndicate/anti_drop + cost = 8 + +// Badass (meme items) /datum/uplink_item/badass/costumes surplus = 0 @@ -787,62 +722,60 @@ cost = 4 cant_discount = TRUE -/datum/uplink_item/badass/clownopclumsinessinjector //clowns can buy this too, but it's in the role-restricted items section for them - name = "Clumsiness Injector" - desc = "Inject yourself with this to become as clumsy as a clown... or inject someone ELSE with it to make THEM as clumsy as a clown. Useful for clown operatives who wish to reconnect with their former clownish nature or for clown operatives who wish to torment and play with their prey before killing them." - item = /obj/item/dnainjector/clumsymut - cost = 1 - purchasable_from = UPLINK_CLOWN_OPS - illegal_tech = FALSE +// Base Keys -/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 - purchasable_from = UPLINK_CLOWN_OPS|UPLINK_NUKE_OPS +/datum/uplink_category/base_keys + name = "Base Keys" + weight = 27 + +/datum/uplink_item/base_keys + category = /datum/uplink_category/base_keys + surplus = 0 + purchasable_from = UPLINK_NUKE_OPS + cost = 15 cant_discount = TRUE -/datum/uplink_item/support/bomb_key +/datum/uplink_item/base_keys/bomb_key name = "Syndicate Ordnance Laboratory Access Card" desc = "Do you fancy yourself an explosives expert? If so, then consider yourself lucky! With this special Authorization Key, \ - you can blow those corpo suits away with your very own home-made explosive devices. Made in your local firebase's \ - very own Ordnance Laboratory! *The Syndicate is not responsible for injuries or deaths sustained while utilizing the lab." + you can blow those corpo suits away with your very own home-made explosive devices. Made in your local firebase's \ + very own Ordnance Laboratory! *The Syndicate is not responsible for injuries or deaths sustained while utilizing the lab." item = /obj/item/keycard/syndicate_bomb - cost = 15 purchasable_from = UPLINK_NUKE_OPS - cant_discount = TRUE -/datum/uplink_item/support/bio_key +/datum/uplink_item/base_keys/bio_key name = "Syndicate Bio-Weapon Laboratory Access Card" desc = "In the right hands, even vile corpo technology can be turned into a vast arsenal of liberation and justice. From \ - micro-organism symbiosis to slime-core weaponization, this special Authorization Key can let you push past the boundaries \ - of bio-terrorism at breakneck speeds. As a bonus, these labs even come equipped with natural life support! *Plants not included." + micro-organism symbiosis to slime-core weaponization, this special Authorization Key can let you push past the boundaries \ + of bio-terrorism at breakneck speeds. As a bonus, these labs even come equipped with natural life support! *Plants not included." item = /obj/item/keycard/syndicate_bio - cost = 17 purchasable_from = UPLINK_CLOWN_OPS | UPLINK_NUKE_OPS - cant_discount = TRUE -/datum/uplink_item/support/chem_key +/datum/uplink_item/base_keys/chem_key name = "Syndicate Chemical Plant Access Card" desc = "For some of our best Operatives, watching corpo space stations blow up with a flash of retribution just isn't enough. \ - Folks like those prefer a more personal touch to their artistry. For those interested, a special Authorization Key \ - can be instantly delivered to your location. Create groundbreaking chemical agents, cook up, sell the best of drugs, \ - and listen to the best classic music today!" + Folks like those prefer a more personal touch to their artistry. For those interested, a special Authorization Key \ + can be instantly delivered to your location. Create groundbreaking chemical agents, cook up, sell the best of drugs, \ + and listen to the best classic music today!" item = /obj/item/keycard/syndicate_chem - cost = 12 purchasable_from = UPLINK_CLOWN_OPS | UPLINK_NUKE_OPS - cant_discount = TRUE -/datum/uplink_item/support/fridge_key +/datum/uplink_item/base_keys/fridge_key name = "Lopez's Access Card" desc = "Hungry? So is everyone in Firebase Balthazord. Lopez is a great cook, don't get me wrong, but he's stubborn when it \ - comes to the meal plans. Sometimes you just want to pig out. Listen, don't tell anyone, ok? I picked this out of his \ - pocket during this morning's briefing. He's been looking for it since. Take it, get into the fridge, and cook up whatever \ - you need before he gets back. And remember: DON'T TELL ANYONE! -M.T" + comes to the meal plans. Sometimes you just want to pig out. Listen, don't tell anyone, ok? I picked this out of his \ + pocket during this morning's briefing. He's been looking for it since. Take it, get into the fridge, and cook up whatever \ + you need before he gets back. And remember: DON'T TELL ANYONE! -M.T" item = /obj/item/keycard/syndicate_fridge cost = 5 purchasable_from = UPLINK_CLOWN_OPS | UPLINK_NUKE_OPS +// Hats +// It is fundamental for the game's health for there to be a hat crate for nuclear operatives. + +/datum/uplink_item/badass/hats + name = "Hat Crate" + desc = "Hat crate! Contains hats, along with hat stabilizers to wear your hats while you're in your suit! HATS!!!" + item = /obj/structure/closet/crate/large/hats + cost = 5 + purchasable_from = UPLINK_CLOWN_OPS | UPLINK_NUKE_OPS diff --git a/icons/mob/clothing/head/costume.dmi b/icons/mob/clothing/head/costume.dmi index 996cb20bbb1..6116fb94500 100644 Binary files a/icons/mob/clothing/head/costume.dmi and b/icons/mob/clothing/head/costume.dmi differ diff --git a/icons/obj/clothing/head/costume.dmi b/icons/obj/clothing/head/costume.dmi index 72b8bcad450..2bd05db126c 100644 Binary files a/icons/obj/clothing/head/costume.dmi and b/icons/obj/clothing/head/costume.dmi differ diff --git a/icons/obj/weapons/guns/ammo.dmi b/icons/obj/weapons/guns/ammo.dmi index 1cc8bf0712f..074ebca306a 100644 Binary files a/icons/obj/weapons/guns/ammo.dmi and b/icons/obj/weapons/guns/ammo.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 0bcbf65d79b..3a4b18f7e9f 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5254,6 +5254,7 @@ #include "code\modules\uplink\uplink_items\ammunition.dm" #include "code\modules\uplink\uplink_items\badass.dm" #include "code\modules\uplink\uplink_items\bundle.dm" +#include "code\modules\uplink\uplink_items\clownops.dm" #include "code\modules\uplink\uplink_items\dangerous.dm" #include "code\modules\uplink\uplink_items\device_tools.dm" #include "code\modules\uplink\uplink_items\explosive.dm" diff --git a/tools/UpdatePaths/Scripts/77330_common_ammo_caliber_to_weird_caliber.txt b/tools/UpdatePaths/Scripts/77330_common_ammo_caliber_to_weird_caliber.txt new file mode 100644 index 00000000000..19ffd2d62ac --- /dev/null +++ b/tools/UpdatePaths/Scripts/77330_common_ammo_caliber_to_weird_caliber.txt @@ -0,0 +1,13 @@ +#comment This repaths several ammo types to a new type with a different caliber. + +/obj/item/ammo_box/magazine/mm712x82 : : /obj/item/ammo_box/magazine/m7mm + +/obj/item/ammo_casing/mm712x82 : /obj/item/ammo_casing/m7mm{@OLD} + +/obj/projectile/bullet/mm712x82 : /obj/projectile/bullet/a7mm{@OLD} + +/obj/projectile/bullet/m223 : /obj/item/ammo_box/magazine/m223{@OLD} + +/obj/item/ammo_casing/a556 : /obj/item/ammo_casing/a223{@OLD} + +/obj/projectile/bullet/a556 : /obj/projectile/bullet/a223{@OLD}