diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 295b71027fc..b95a20d23b6 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -182,12 +182,42 @@ var/list/uplink_items = list()
item = /obj/item/weapon/gun/projectile/revolver
cost = 6
+/datum/uplink_item/dangerous/smg
+ name = "C-20r Submachine Gun"
+ desc = "A fully-loaded Scarborough Arms-developed submachine gun that fires 12mm automatic rounds with a 20-round magazine."
+ item = /obj/item/weapon/gun/projectile/automatic/c20r
+ cost = 6
+ gamemodes = list("nuclear emergency")
+
+/datum/uplink_item/dangerous/machinegun
+ name = "L6 Squad Automatic Weapon"
+ desc = "A traditionally constructed machine gun made by AA-2531. This deadly weapon has a massive 50-round magazine of 7.62×51mm ammunition."
+ item = /obj/item/weapon/gun/projectile/automatic/l6_saw
+ cost = 10
+ gamemodes = list("nuclear emergency")
+
+
/datum/uplink_item/dangerous/ammo
name = "Ammo-357"
desc = "Seven additional rounds for the revolver. Reports indicate the presence of machinery aboard Nanotrasen space stations suitable for producing extra .357 cartridges."
item = /obj/item/ammo_box/a357
cost = 2
+/datum/uplink_item/ammo/smg
+ name = "Ammo-12mm"
+ desc = "A 20-round 12mm magazine for use in the C-20r submachine gun."
+ item = /obj/item/ammo_box/magazine/m12mm
+ cost = 1
+ gamemodes = list("nuclear emergency")
+
+
+/datum/uplink_item/ammo/machinegun
+ name = "Ammo-7.62×51mm"
+ desc = "A 50-round magazine of 7.62×51mm ammunition for use in the L6 SAW machinegun. By the time you need to use this, you'll already be on a pile of corpses."
+ item = /obj/item/ammo_box/magazine/m762
+ cost = 3
+ gamemodes = list("nuclear emergency")
+
/datum/uplink_item/dangerous/crossbow
name = "Energy Crossbow"
desc = "A miniature energy crossbow that is small enough both to fit into a pocket and to slip into a backpack unnoticed by observers. Fires bolts tipped with toxin, a poisonous substance that is the product of a living organism. Stuns enemies for a short period of time. Recharges automatically."
@@ -236,6 +266,12 @@ var/list/uplink_items = list()
item = /obj/item/weapon/cartridge/syndicate
cost = 3
+/datum/uplink_item/stealthy_weapons/silencer
+ name = "Stetchkin Silencer"
+ desc = "Fitted for use on the Stetchkin pistol, this silencer will make its shots quieter when equipped onto it."
+ item = /obj/item/weapon/silencer
+ cost = 1
+ gamemodes = list("nuclear emergency")
// STEALTHY TOOLS
@@ -291,6 +327,15 @@ var/list/uplink_items = list()
item = /obj/item/weapon/storage/toolbox/syndicate
cost = 1
+
+/datum/uplink_item/device_tools/medkit
+ name = "Syndicate Medical Supply Kit"
+ desc = "A basic medical kit for treating injuries in the field."
+ item = /obj/item/weapon/storage/firstaid/adv
+ cost = 3
+ gamemodes = list("nuclear emergency")
+
+
/datum/uplink_item/device_tools/space_suit
name = "Space Suit"
desc = "The red syndicate space suit is less encumbering than Nanotrasen variants, fits inside bags, and has a weapon slot. Nanotrasen crewmembers are trained to report red space suit sightings."
@@ -436,4 +481,4 @@ var/list/uplink_items = list()
var/datum/uplink_item/I = pick(possible_items)
U.uses -= max(0, I.cost)
feedback_add_details("traitor_uplink_items_bought","RN")
- return new I.item(loc)
+ return new I.item(loc)
\ No newline at end of file
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 3555c7766a2..1e2bb5d9886 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -219,10 +219,11 @@ proc/issyndicate(mob/living/M as mob)
if(synd_mob.backbag == 2) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(synd_mob), slot_back)
if(synd_mob.backbag == 3) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(synd_mob), slot_back)
if(synd_mob.backbag == 4) synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(synd_mob), slot_back)
- synd_mob.equip_to_slot_or_del(new /obj/item/ammo_box/magazine/m12mm(synd_mob), slot_in_backpack)
- synd_mob.equip_to_slot_or_del(new /obj/item/ammo_box/magazine/m12mm(synd_mob), slot_in_backpack)
+ synd_mob.equip_to_slot_or_del(new /obj/item/ammo_box/magazine/m10mm(synd_mob), slot_in_backpack)
+ synd_mob.equip_to_slot_or_del(new /obj/item/ammo_box/magazine/m10mm(synd_mob), slot_in_backpack)
+ synd_mob.equip_to_slot_or_del(new /obj/item/ammo_box/magazine/m10mm(synd_mob), slot_in_backpack)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/cyanide(synd_mob), slot_in_backpack)
- synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/c20r(synd_mob), slot_belt)
+ synd_mob.equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/automatic/pistol(synd_mob), slot_belt)
synd_mob.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(synd_mob.back), slot_in_backpack)
if(synd_mob.species)
diff --git a/code/game/objects/items/weapons/explosives.dm b/code/game/objects/items/weapons/explosives.dm
index edf71953e33..ab9beb64800 100644
--- a/code/game/objects/items/weapons/explosives.dm
+++ b/code/game/objects/items/weapons/explosives.dm
@@ -1,5 +1,3 @@
-
-
/obj/item/weapon/plastique
name = "plastic explosives"
desc = "Used to put holes in specific areas without too much extra hole."
@@ -7,7 +5,7 @@
icon = 'icons/obj/assemblies.dmi'
icon_state = "plastic-explosive0"
item_state = "plasticx"
- flags = FPRINT | TABLEPASS | USEDELAY
+ flags = NOBLUDGEON
w_class = 2.0
origin_tech = "syndicate=2"
var/datum/wires/explosive/plastic/wires = null
@@ -62,6 +60,7 @@
timer = newtime
user << "Timer set for [timer] seconds."
+
/obj/item/weapon/plastique/afterattack(atom/target as obj|turf, mob/user as mob, flag)
if (!flag)
return
@@ -69,24 +68,27 @@
return
user << "Planting explosives..."
if(ismob(target))
-
user.attack_log += "\[[time_stamp()]\] [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])"
msg_admin_attack("[user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey]) (JMP)")
user.visible_message("\red [user.name] is trying to plant some kind of explosive on [target.name]!")
+
if(do_after(user, 50) && in_range(user, target))
user.drop_item()
src.target = target
loc = null
+
if (ismob(target))
- var/mob/M = target
- target:attack_log += "\[[time_stamp()]\] Had the [name] planted on them by [user.real_name] ([user.ckey])"
+ add_logs(user, target, "planted [name] on")
user.visible_message("\red [user.name] finished planting an explosive on [target.name]!")
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
+ message_admins("[key_name(user, user.client)](?) planted C4 on [key_name(target)](?) with [timer] second fuse",0,1)
+ log_game("[key_name(user)] planted C4 on [key_name(target)] with [timer] second fuse")
+
+ else
+ message_admins("[key_name(user, user.client)](?) planted C4 on [target.name] at ([target.x],[target.y],[target.z] - JMP) with [timer] second fuse",0,1)
+ log_game("[key_name(user)] planted C4 on [target.name] at ([target.x],[target.y],[target.z]) with [timer] second fuse")
+
target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2")
user << "Bomb has been planted. Timer counting down from [timer]."
spawn(timer*10)
@@ -99,7 +101,7 @@
if(!target)
target = src
if(location)
- explosion(location, -1, -1, 2, 3)
+ explosion(location, -1, -1, 4, 4)
if(target)
if (istype(target, /turf/simulated/wall))
diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
index 840c82dd3bf..e26165043b2 100644
--- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm
+++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm
@@ -33,9 +33,6 @@
sleep(2)
new /obj/item/ammo_box/magazine/m12mm(src)
new /obj/item/ammo_box/magazine/m12mm(src)
- new /obj/item/ammo_box/magazine/m12mm(src)
- new /obj/item/ammo_box/magazine/m12mm(src)
- new /obj/item/ammo_box/magazine/m12mm(src)
new /obj/item/weapon/storage/box/handcuffs(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/weapon/gun/energy/gun(src)
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 0a21dfd5847..d626591afe7 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -46,7 +46,7 @@
/obj/item/ammo_casing/c10mm
desc = "A 10mm bullet casing."
caliber = "10mm"
- projectile_type = "obj/item/projectile/bullet/midbullet10"
+ projectile_type = "/obj/item/projectile/bullet/midbullet10"
/obj/item/ammo_casing/a12mm
desc = "A 12mm bullet casing."
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index 0dc707045ee..d14e2aee8a2 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -75,7 +75,7 @@
/obj/item/weapon/gun/projectile/automatic/pistol
name = "\improper Stechtkin pistol"
- desc = "A small, easily concealable gun. Uses 9mm rounds."
+ desc = "A small, easily concealable gun. Uses 10mm rounds."
icon_state = "pistol"
w_class = 2
silenced = 0
@@ -90,6 +90,8 @@
return
user << "You unscrew [silenced] from [src]."
user.put_in_hands(silenced)
+ var/obj/item/weapon/silencer/S = silenced
+ fire_sound = S.oldsound
silenced = 0
w_class = 2
update_icon()
@@ -105,6 +107,9 @@
user.drop_item()
user << "You screw [I] onto [src]."
silenced = I //dodgy?
+ var/obj/item/weapon/silencer/S = I
+ S.oldsound = fire_sound
+ fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
w_class = 3
I.loc = src //put the silencer into the gun
update_icon()
@@ -116,10 +121,10 @@
icon_state = "[initial(icon_state)][silenced ? "-silencer" : ""][chambered ? "" : "-e"]"
return
-
/obj/item/weapon/silencer
name = "silencer"
desc = "a silencer"
icon = 'icons/obj/gun.dmi'
icon_state = "silencer"
- w_class = 2
\ No newline at end of file
+ w_class = 2
+ var/oldsound = 0 //Stores the true sound the gun made before it was silenced
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm
index a828ff712cd..8a9df9ad300 100644
--- a/code/modules/projectiles/projectile/bullets.dm
+++ b/code/modules/projectiles/projectile/bullets.dm
@@ -46,10 +46,9 @@
/obj/item/projectile/bullet/midbullet12
- damage = 20
+ damage = 25
stun = 5
weaken = 5
- embed = 0
/obj/item/projectile/bullet/midbullet9
damage = 25
@@ -95,7 +94,7 @@
stutter = 10
/obj/item/projectile/bullet/a762
- damage = 25
+ damage = 35
/obj/item/projectile/bullet/incendiary
diff --git a/sound/weapons/Gunshot_silenced.ogg b/sound/weapons/Gunshot_silenced.ogg
new file mode 100644
index 00000000000..ef250d86aa8
Binary files /dev/null and b/sound/weapons/Gunshot_silenced.ogg differ