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