diff --git a/code/game/machinery/computer/arcade.dm b/code/game/machinery/computer/arcade.dm
index b7c09919a0a..6fe39657869 100644
--- a/code/game/machinery/computer/arcade.dm
+++ b/code/game/machinery/computer/arcade.dm
@@ -573,7 +573,7 @@
else if(href_list["killcrew"]) //shoot a crewmember
var/sheriff = remove_crewmember() //I shot the sheriff
- playsound(loc,'sound/weapons/Gunshot.ogg', 100, 1)
+ playsound(loc,'sound/weapons/gunshots/gunshot.ogg', 100, 1)
if(settlers.len == 0 || alive == 0)
atom_say("The last crewmember [sheriff], shot themselves, GAME OVER!")
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index a71081f0be1..f9d10ad3eb9 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -156,9 +156,9 @@
if("honk")
deejay('sound/items/bikehorn.ogg')
if("pump")
- deejay('sound/weapons/shotgunpump.ogg')
+ deejay('sound/weapons/gun_interactions/shotgunpump.ogg')
if("pop")
- deejay('sound/weapons/gunshot3.ogg')
+ deejay('sound/weapons/gunshots/gunshot3.ogg')
if("saber")
deejay('sound/weapons/saberon.ogg')
if("harm")
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index f417d8cc75f..e9d7f4bcb15 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -986,8 +986,8 @@ var/list/turret_icons
// So, nothing, not even emagging them, makes them switch bullet type.
// So, its best to always have their projectile and eprojectile settings be the same. That way, you know what they will shoot.
// Otherwise, you end up with situations where one of the two bullet types will never be used.
- shot_sound = 'sound/weapons/Gunshot.ogg'
- eshot_sound = 'sound/weapons/Gunshot.ogg'
+ shot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
+ eshot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
icon_state = "syndieturret0"
var/icon_state_initial = "syndieturret0"
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index 276c6807f4f..3d11c425a4e 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -262,6 +262,7 @@
chassis.use_power(projectile_energy_cost)
send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info())
log_message("Rearmed [name].")
+ playsound(src, 'sound/weapons/gun_interactions/rearm.ogg', 50, 1)
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list)
@@ -276,13 +277,13 @@
origin_tech = "materials=4;combat=4"
equip_cooldown = 5
projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath
- fire_sound = 'sound/weapons/Gunshot.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
projectiles = 24
projectile_energy_cost = 15
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced
name = "\improper S.H.H. \"Quietus\" Carbine"
- fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg'
icon_state = "mecha_mime"
equip_cooldown = 15
projectile = /obj/item/projectile/bullet/mime
@@ -301,7 +302,7 @@
origin_tech = "combat=4"
equip_cooldown = 20
projectile = /obj/item/projectile/bullet/midbullet
- fire_sound = 'sound/weapons/Gunshot.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
projectiles = 40
projectile_energy_cost = 25
projectiles_per_shot = 4
@@ -313,7 +314,7 @@
origin_tech = "combat=4"
equip_cooldown = 10
projectile = /obj/item/projectile/bullet/weakbullet3
- fire_sound = 'sound/weapons/Gunshot.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
projectiles = 300
projectile_energy_cost = 20
projectiles_per_shot = 3
diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm
index f56a9ba71ee..d7585608ec7 100644
--- a/code/game/objects/items/latexballoon.dm
+++ b/code/game/objects/items/latexballoon.dm
@@ -28,7 +28,7 @@
/obj/item/latexballon/proc/burst()
if(!air_contents || icon_state != "latexballon_blow")
return
- playsound(src, 'sound/weapons/Gunshot.ogg', 100, 1)
+ playsound(src, 'sound/weapons/gunshots/gunshot.ogg', 100, 1)
icon_state = "latexballon_bursted"
item_state = "lgloves"
if(isliving(loc))
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 04c8eeae615..b2d09e3458c 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1375,7 +1375,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/russian_revolver/suicide_act(mob/user)
user.visible_message("[user] quickly loads six bullets into [src]'s cylinder and points it at [user.p_their()] head before pulling the trigger! It looks like [user.p_theyre()] trying to commit suicide.")
- playsound(loc, 'sound/weapons/Gunshot.ogg', 50, 1)
+ playsound(loc, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, 1)
return (BRUTELOSS)
/obj/item/toy/russian_revolver/New()
@@ -1409,7 +1409,7 @@ obj/item/toy/cards/deck/syndicate/black
return
else
bullet_position = null
- playsound(src, 'sound/weapons/Gunshot.ogg', 50, 1)
+ playsound(src, 'sound/weapons/gunshots/gunshot_strong.ogg', 50, 1)
user.visible_message("[src] goes off!")
user.apply_damage(200, BRUTE, "head", sharp = 1, used_weapon = "Self-inflicted gunshot wound to the head.")
user.death()
diff --git a/code/game/sound.dm b/code/game/sound.dm
index 66fdd2cbc39..8cd08046307 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -135,7 +135,9 @@
if("pageturn")
soundin = pick('sound/effects/pageturn1.ogg', 'sound/effects/pageturn2.ogg','sound/effects/pageturn3.ogg')
if("gunshot")
- soundin = pick('sound/weapons/Gunshot.ogg', 'sound/weapons/Gunshot2.ogg','sound/weapons/Gunshot3.ogg','sound/weapons/Gunshot4.ogg')
+ soundin = pick('sound/weapons/gunshots/gunshot.ogg', 'sound/weapons/gunshots/gunshot2.ogg','sound/weapons/gunshots/gunshot3.ogg','sound/weapons/gunshots/gunshot4.ogg')
+ if("casingdrop")
+ soundin = pick('sound/weapons/gun_interactions/casingfall1.ogg', 'sound/weapons/gun_interactions/casingfall2.ogg', 'sound/weapons/gun_interactions/casingfall3.ogg')
if("computer_ambience")
soundin = pick('sound/goonstation/machines/ambicomp1.ogg', 'sound/goonstation/machines/ambicomp2.ogg', 'sound/goonstation/machines/ambicomp3.ogg')
if("ricochet")
diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm
index 5273bcb768b..9800b5df50b 100644
--- a/code/modules/flufftext/Hallucination.dm
+++ b/code/modules/flufftext/Hallucination.dm
@@ -817,9 +817,9 @@ var/list/non_fakeattack_weapons = list(/obj/item/gun/projectile, /obj/item/ammo_
playsound_local(null, 'sound/voice/bfreeze.ogg', 35, 0)
if(9)
//To make it more realistic, I added two gunshots (enough to kill)
- playsound_local(null, 'sound/weapons/Gunshot.ogg', 25, 1)
+ playsound_local(null, 'sound/weapons/gunshots/gunshot.ogg', 25, 1)
var/timer_pause = rand(10,30)
- addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound_local, null, 'sound/weapons/Gunshot.ogg', 25, 1), timer_pause)
+ addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound_local, null, 'sound/weapons/gunshots/gunshot.ogg', 25, 1), timer_pause)
addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound_local, null, sound(get_sfx("bodyfall"), 25), 25, 1), timer_pause+rand(5,10))
if(10)
playsound_local(null, 'sound/effects/pray_chaplain.ogg', 50)
diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm
index 52641d70a32..68ce8a4b45c 100644
--- a/code/modules/mining/minebot.dm
+++ b/code/modules/mining/minebot.dm
@@ -34,7 +34,7 @@
ranged_message = "shoots"
ranged_cooldown_time = 30
projectiletype = /obj/item/projectile/kinetic
- projectilesound = 'sound/weapons/Gunshot4.ogg'
+ projectilesound = 'sound/weapons/gunshots/gunshot4.ogg'
speak_emote = list("states")
wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver,
/obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron,
diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
index 051f2209729..b9d65c6a14f 100644
--- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm
@@ -15,7 +15,7 @@
melee_damage_upper = 3
attacktext = "claws"
attack_sound = 'sound/weapons/bladeslice.ogg'
- projectilesound = 'sound/weapons/Gunshot.ogg'
+ projectilesound = 'sound/weapons/gunshots/gunshot.ogg'
projectiletype = /obj/item/projectile/hivebotbullet
faction = list("hivebot")
check_friendly_fire = 1
diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm
index 1e0a43e75d1..0269dd76199 100644
--- a/code/modules/projectiles/ammunition.dm
+++ b/code/modules/projectiles/ammunition.dm
@@ -8,6 +8,7 @@
throwforce = 1
w_class = WEIGHT_CLASS_TINY
var/fire_sound = null //What sound should play when this ammo is fired
+ var/drop_sound = "casingdrop" //What sound should play when this ammo hits the ground
var/caliber = null //Which kind of guns it can be loaded into
var/projectile_type = null //The bullet type to create when New() is called
var/obj/item/projectile/BB = null //The loaded bullet
@@ -52,6 +53,7 @@
if(boolets > 0)
box.update_icon()
to_chat(user, "You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.")
+ playsound(src, 'sound/weapons/gun_interactions/bulletinsert.ogg', 50, 1)
else
to_chat(user, "You fail to collect anything!")
else
@@ -129,6 +131,7 @@
if(stored_ammo.len < max_ammo)
stored_ammo += R
R.loc = src
+ playsound(src, 'sound/weapons/gun_interactions/bulletinsert.ogg', 50, 1)
update_mat_value()
return 1
//for accessibles magazines (e.g internal ones) when full, start replacing spent ammo
@@ -140,6 +143,7 @@
stored_ammo += R
R.loc = src
+ playsound(src, 'sound/weapons/gun_interactions/shotguninsert.ogg', 50, 1)
update_mat_value()
return 1
@@ -170,6 +174,7 @@
if(num_loaded)
if(!silent)
to_chat(user, "You load [num_loaded] shell\s into \the [src]!")
+ playsound(src, 'sound/weapons/gun_interactions/shotguninsert.ogg', 50, 1)
A.update_icon()
update_icon()
@@ -179,6 +184,7 @@
var/obj/item/ammo_casing/A = get_round()
if(A)
user.put_in_hands(A)
+ playsound(src, 'sound/weapons/gun_interactions/remove_bullet.ogg', 50, 1)
to_chat(user, "You remove a round from \the [src]!")
update_icon()
diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm
index 46d87d70755..de8fc9beac6 100644
--- a/code/modules/projectiles/ammunition/ammo_casings.dm
+++ b/code/modules/projectiles/ammunition/ammo_casings.dm
@@ -124,6 +124,7 @@
desc = "A 12 gauge lead slug."
icon_state = "blshell"
caliber = "shotgun"
+ drop_sound = 'sound/weapons/gun_interactions/shotgun_fall.ogg'
projectile_type = /obj/item/projectile/bullet
materials = list(MAT_METAL=4000)
diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm
index 10579471b01..8571c97d469 100644
--- a/code/modules/projectiles/ammunition/energy.dm
+++ b/code/modules/projectiles/ammunition/energy.dm
@@ -87,7 +87,7 @@
delay = 15
/obj/item/ammo_casing/energy/electrode/gun
- fire_sound = 'sound/weapons/gunshot.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot.ogg'
e_cost = 100
/obj/item/ammo_casing/energy/electrode/hos //allows balancing of HoS and blueshit guns seperately from other energy weapons
@@ -218,7 +218,7 @@
/obj/item/ammo_casing/energy/clown
projectile_type = /obj/item/projectile/clown
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
select_name = "clown"
/obj/item/ammo_casing/energy/sniper
diff --git a/code/modules/projectiles/ammunition/special.dm b/code/modules/projectiles/ammunition/special.dm
index 21a1ae76356..101c8310b8a 100644
--- a/code/modules/projectiles/ammunition/special.dm
+++ b/code/modules/projectiles/ammunition/special.dm
@@ -48,5 +48,5 @@
/obj/item/ammo_casing/energy/c3dbullet
projectile_type = /obj/item/projectile/bullet/midbullet3
select_name = "spraydown"
- fire_sound = 'sound/weapons/gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
e_cost = 20
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 165e75f1875..e51dbfc21e6 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -17,6 +17,8 @@
attack_verb = list("struck", "hit", "bashed")
var/fire_sound = "gunshot"
+ var/magin_sound = 'sound/weapons/gun_interactions/smg_magin.ogg'
+ var/magout_sound = 'sound/weapons/gun_interactions/smg_magout.ogg'
var/fire_sound_text = "gunshot" //the fire sound that shows in chat messages: laser blast, gunshot, etc.
var/suppressed = 0 //whether or not a message is displayed when fired
var/can_suppress = 0
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index c1e24a9badd..c238c88a126 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -1,3 +1,4 @@
+// Ion Rifles //
/obj/item/gun/energy/ionrifle
name = "ion rifle"
desc = "A man portable anti-armor weapon designed to disable mechanical threats"
@@ -29,6 +30,7 @@
flight_x_offset = 18
flight_y_offset = 11
+// Decloner //
/obj/item/gun/energy/decloner
name = "biological demolecularisor"
desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements."
@@ -44,6 +46,7 @@
if(power_supply.charge > shot.e_cost)
overlays += "decloner_spin"
+// Flora Gun //
/obj/item/gun/energy/floragun
name = "floral somatoray"
desc = "A tool that discharges controlled radiation which induces mutation in plant cells."
@@ -56,12 +59,14 @@
ammo_x_offset = 1
selfcharge = 1
+// Meteor Gun //
/obj/item/gun/energy/meteorgun
name = "meteor gun"
desc = "For the love of god, make sure you're aiming this the right way!"
icon = 'icons/obj/guns/projectile.dmi'
icon_state = "riotgun"
item_state = "c20r"
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
w_class = WEIGHT_CLASS_BULKY
ammo_type = list(/obj/item/ammo_casing/energy/meteor)
cell_type = /obj/item/stock_parts/cell/potato
@@ -78,6 +83,7 @@
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
+// Mind Flayer //
/obj/item/gun/energy/mindflayer
name = "\improper Mind Flayer"
desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon."
@@ -86,6 +92,7 @@
ammo_type = list(/obj/item/ammo_casing/energy/mindflayer)
ammo_x_offset = 2
+// Energy Crossbows //
/obj/item/gun/energy/kinetic_accelerator/crossbow
name = "mini energy crossbow"
desc = "A weapon favored by syndicate stealth specialists."
@@ -132,6 +139,7 @@
shoot_live_shot()
return (OXYLOSS)
+// Plasma Cutters //
/obj/item/gun/energy/plasmacutter
name = "plasma cutter"
desc = "A mining tool capable of expelling concentrated plasma bursts. You could use it to cut limbs off of xenos! Or, you know, mine stuff."
@@ -180,6 +188,7 @@
ammo_type = list(/obj/item/ammo_casing/energy/plasma/adv)
force = 15
+// Wormhole Projectors //
/obj/item/gun/energy/wormhole_projector
name = "bluespace wormhole projector"
desc = "A projector that emits high density quantum-coupled bluespace beams."
@@ -227,7 +236,6 @@
orange.target = get_turf(blue)
/* 3d printer 'pseudo guns' for borgs */
-
/obj/item/gun/energy/printer
name = "cyborg lmg"
desc = "A machinegun that fires 3d-printed flachettes slowly regenerated using a cyborg's internal power source."
@@ -247,6 +255,7 @@
..()
robocharge()
+// Instakill Lasers //
/obj/item/gun/energy/laser/instakill
name = "instakill rifle"
icon_state = "instagib"
@@ -271,6 +280,7 @@
item_state = "instagibblue"
ammo_type = list(/obj/item/ammo_casing/energy/instakill/blue)
+// HONK Rifle //
/obj/item/gun/energy/clown
name = "HONK Rifle"
desc = "Clown Planet's finest."
@@ -291,6 +301,7 @@
ammo_type = list(/obj/item/ammo_casing/energy/toxplasma)
shaded_charge = 1
+// Energy Sniper //
/obj/item/gun/energy/sniperrifle
name = "L.W.A.P. Sniper Rifle"
desc = "A rifle constructed of lightweight materials, fitted with a SMART aiming-system scope."
@@ -303,6 +314,7 @@
zoom_amt = 7 //Long range, enough to see in front of you, but no tiles behind you.
shaded_charge = 1
+// Temperature Gun //
/obj/item/gun/energy/temperature
name = "temperature gun"
icon = 'icons/obj/guns/gun_temperature.dmi'
@@ -486,6 +498,7 @@
if(100 to 202) overlays += "100"
if(-INFINITY to 100) overlays += "0"
+// Mimic Gun //
/obj/item/gun/energy/mimicgun
name = "mimic gun"
desc = "A self-defense weapon that exhausts organic targets, weakening them until they collapse. Why does this one have teeth?"
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index 39654c96a2b..6e558dedbd1 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -8,6 +8,7 @@
var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info
var/obj/item/ammo_box/magazine/magazine
+ var/can_tactical = FALSE //check to see if the gun can tactically reload
/obj/item/gun/projectile/New()
..()
@@ -32,7 +33,7 @@
if(eject_casing)
AC.loc = get_turf(src) //Eject casing onto ground.
AC.SpinAnimation(10, 1) //next gen special effects
-
+ playsound(src, chambered.drop_sound, 100, 1)
if(empty_chamber)
chambered = null
chamber_round()
@@ -51,21 +52,41 @@
return 0
return 1
+/obj/item/gun/projectile/proc/can_reload()
+ return !magazine
+
+/obj/item/gun/projectile/proc/reload(obj/item/ammo_box/magazine/AM, mob/user as mob)
+ user.remove_from_mob(AM)
+ magazine = AM
+ magazine.loc = src
+ playsound(src, magin_sound, 50, 1)
+ chamber_round()
+ AM.update_icon()
+ update_icon()
+ return
+
/obj/item/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob, params)
..()
if(istype(A, /obj/item/ammo_box/magazine))
var/obj/item/ammo_box/magazine/AM = A
- if(!magazine && istype(AM, mag_type))
- user.remove_from_mob(AM)
- magazine = AM
- magazine.loc = src
- to_chat(user, "You load a new magazine into \the [src].")
- chamber_round()
- A.update_icon()
- update_icon()
- return 1
- else if(magazine)
- to_chat(user, "There's already a magazine in \the [src].")
+ if(istype(AM, mag_type))
+ if(can_reload())
+ reload(AM, user)
+ to_chat(user, "You load a new magazine into \the [src].")
+ return TRUE
+ else if(!can_tactical)
+ to_chat(user, "There's already a magazine in \the [src].")
+ return TRUE
+ else
+ to_chat(user, "You perform a tactical reload on \the [src], replacing the magazine.")
+ magazine.loc = get_turf(loc)
+ magazine.update_icon()
+ magazine = null
+ reload(AM, user)
+ return TRUE
+ else
+ to_chat(user, "You can't put this type of ammo in \the [src].")
+ return TRUE
if(istype(A, /obj/item/suppressor))
var/obj/item/suppressor/S = A
if(can_suppress)
@@ -76,7 +97,7 @@
suppressed = A
S.oldsound = fire_sound
S.initial_w_class = w_class
- fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg'
w_class = WEIGHT_CLASS_NORMAL //so pistols do not fit in pockets when suppressed
A.loc = src
update_icon()
@@ -113,11 +134,13 @@
magazine.update_icon()
magazine = null
to_chat(user, "You pull the magazine out of \the [src]!")
+ playsound(src, magout_sound, 50, 1)
else if(chambered)
AC.loc = get_turf(src)
AC.SpinAnimation(10, 1)
chambered = null
to_chat(user, "You unload the round from \the [src]'s chamber.")
+ playsound(src, 'sound/weapons/gun_interactions/remove_bullet.ogg', 50, 1)
else
to_chat(user, "There's no magazine in \the [src].")
update_icon()
diff --git a/code/modules/projectiles/guns/projectile/automatic.dm b/code/modules/projectiles/guns/projectile/automatic.dm
index ecaf8d801b2..399925d0e8a 100644
--- a/code/modules/projectiles/guns/projectile/automatic.dm
+++ b/code/modules/projectiles/guns/projectile/automatic.dm
@@ -2,6 +2,7 @@
w_class = WEIGHT_CLASS_NORMAL
var/alarmed = 0
var/select = 1
+ can_tactical = TRUE
can_suppress = 1
burst_size = 3
fire_delay = 2
@@ -60,7 +61,7 @@
fire_delay = initial(fire_delay)
to_chat(user, "You switch to [burst_size] round burst.")
- playsound(user, 'sound/weapons/empty.ogg', 100, 1)
+ playsound(user, 'sound/weapons/gun_interactions/selector.ogg', 100, 1)
update_icon()
for(var/X in actions)
var/datum/action/A = X
@@ -75,13 +76,16 @@
update_icon()
alarmed = 1
+//Saber SMG//
/obj/item/gun/projectile/automatic/proto
name = "\improper Nanotrasen Saber SMG"
desc = "A prototype three-round burst 9mm submachine gun, designated 'SABR'. Has a threaded barrel for suppressors."
icon_state = "saber"
mag_type = /obj/item/ammo_box/magazine/smgm9mm
origin_tech = "combat=4;materials=2"
+ fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
+//C-20r SMG//
/obj/item/gun/projectile/automatic/c20r
name = "\improper C-20r SMG"
desc = "A two-round burst .45 SMG, designated 'C-20r'. Has a 'Scarborough Arms - Per falcis, per pravitas' buttstamp."
@@ -89,7 +93,7 @@
item_state = "c20r"
origin_tech = "combat=5;materials=2;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/smgm45
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
fire_delay = 2
burst_size = 2
@@ -105,12 +109,16 @@
..()
icon_state = "c20r[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
+//WT550//
/obj/item/gun/projectile/automatic/wt550
name = "security auto rifle"
desc = "An outdated personal defense weapon utilized by law enforcement. The WT-550 Automatic Rifle fires 4.6x30mm rounds."
icon_state = "wt550"
item_state = "arg"
mag_type = /obj/item/ammo_box/magazine/wt550m9
+ fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
fire_delay = 2
can_suppress = 0
burst_size = 1
@@ -120,14 +128,17 @@
..()
icon_state = "wt550[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]"
+//Type-U3 Uzi//
/obj/item/gun/projectile/automatic/mini_uzi
name = "\improper 'Type U3' Uzi"
desc = "A lightweight, burst-fire submachine gun, for when you really want someone dead. Uses 9mm rounds."
icon_state = "mini-uzi"
origin_tech = "combat=4;materials=2;syndicate=4"
mag_type = /obj/item/ammo_box/magazine/uzim9mm
+ fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
burst_size = 2
+//M-90gl Carbine//
/obj/item/gun/projectile/automatic/m90
name = "\improper M-90gl Carbine"
desc = "A three-round burst 5.56 toploading carbine, designated 'M-90gl'. Has an attached underbarrel grenade launcher which can be toggled on and off."
@@ -135,7 +146,9 @@
item_state = "m90-4"
origin_tech = "combat=5;materials=2;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m556
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
can_suppress = 0
var/obj/item/gun/projectile/revolver/grenadelauncher/underbarrel
burst_size = 3
@@ -195,9 +208,10 @@
burst_size = 1
fire_delay = 0
to_chat(user, "You switch to semi-auto.")
- playsound(user, 'sound/weapons/empty.ogg', 100, 1)
+ playsound(user, 'sound/weapons/gun_interactions/selector.ogg', 100, 1)
update_icon()
+//Tommy Gun//
/obj/item/gun/projectile/automatic/tommygun
name = "\improper Thompson SMG"
desc = "A genuine 'Chicago Typewriter'."
@@ -207,11 +221,12 @@
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=3"
mag_type = /obj/item/ammo_box/magazine/tommygunm45
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
can_suppress = 0
burst_size = 4
fire_delay = 1
+//ARG Assault Rifle//
/obj/item/gun/projectile/automatic/ar
name = "ARG"
desc = "A robust assault rile used by Nanotrasen fighting forces."
@@ -220,7 +235,9 @@
slot_flags = 0
origin_tech = "combat=6;engineering=4"
mag_type = /obj/item/ammo_box/magazine/m556
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
can_suppress = 0
burst_size = 3
fire_delay = 1
@@ -234,7 +251,9 @@
w_class = WEIGHT_CLASS_NORMAL
origin_tech = "combat=6;materials=4;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/m12g
- fire_sound = 'sound/weapons/Gunshot4.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
can_suppress = 0
burst_size = 1
fire_delay = 0
@@ -259,6 +278,7 @@
..()
empty_alarm()
+//Laser carbine//
/obj/item/gun/projectile/automatic/lasercarbine
name = "\improper IK-60 Laser Carbine"
desc = "A short, compact carbine like rifle, relying more on battery cartridges rather than a built in power cell. Utilized by the Nanotrasen Navy for combat operations."
@@ -267,7 +287,9 @@
w_class = WEIGHT_CLASS_NORMAL
origin_tech = "combat=4;materials=2"
mag_type = /obj/item/ammo_box/magazine/laser
- fire_sound = 'sound/weapons/emitter2.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_lascarbine.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
can_suppress = 0
burst_size = 2
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index b9fdc969a66..64d0c2d7a67 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -1,3 +1,4 @@
+//Stetchkin//
/obj/item/gun/projectile/automatic/pistol
name = "stechkin pistol"
desc = "A small, easily concealable 10mm handgun. Has a threaded barrel for suppressors."
@@ -5,6 +6,9 @@
w_class = WEIGHT_CLASS_SMALL
origin_tech = "combat=3;materials=2;syndicate=4"
mag_type = /obj/item/ammo_box/magazine/m10mm
+ fire_sound = 'sound/weapons/gunshots/gunshot_pistol.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/pistol_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/pistol_magout.ogg'
can_suppress = 1
burst_size = 1
fire_delay = 0
@@ -18,6 +22,7 @@
icon_state = "[initial(icon_state)][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]"
return
+//M1911//
/obj/item/gun/projectile/automatic/pistol/m1911
name = "\improper M1911"
desc = "A classic .45 handgun with a small magazine capacity."
@@ -26,6 +31,7 @@
mag_type = /obj/item/ammo_box/magazine/m45
can_suppress = 0
+//Enforcer//
/obj/item/gun/projectile/automatic/pistol/enforcer
name = "Enforcer"
desc = "A pistol of modern design."
@@ -72,12 +78,16 @@
magazine = new/obj/item/ammo_box/magazine/enforcer/lethal
..()
+//Desert Eagle//
/obj/item/gun/projectile/automatic/pistol/deagle
name = "desert eagle"
desc = "A robust .50 AE handgun."
icon_state = "deagle"
force = 14.0
mag_type = /obj/item/ammo_box/magazine/m50
+ fire_sound = 'sound/weapons/gunshots/gunshot_pistolH.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/hpistol_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/hpistol_magout.ogg'
can_suppress = 0
/obj/item/gun/projectile/automatic/pistol/deagle/update_icon()
@@ -94,6 +104,7 @@
icon_state = "deaglecamo"
item_state = "deagleg"
+//APS Pistol//
/obj/item/gun/projectile/automatic/pistol/APS
name = "stechkin APS pistol"
desc = "The original russian version of a widely used Syndicate sidearm. Uses 9mm ammo."
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index 8fae0a9bac1..647c690a40d 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -4,6 +4,7 @@
icon_state = "revolver"
mag_type = /obj/item/ammo_box/magazine/internal/cylinder
origin_tech = "combat=3;materials=2"
+ fire_sound = 'sound/weapons/gunshots/gunshot_strong.ogg'
/obj/item/gun/projectile/revolver/New()
..()
@@ -45,6 +46,7 @@
CB.loc = get_turf(loc)
CB.SpinAnimation(10, 1)
CB.update_icon()
+ playsound(get_turf(CB), "casingdrop", 60, 1)
num_unloaded++
if(num_unloaded)
to_chat(user, "You unload [num_unloaded] shell\s from [src].")
@@ -251,6 +253,7 @@
chambered = null
CB.loc = get_turf(loc)
CB.update_icon()
+ playsound(get_turf(CB), "casingdrop", 60, 1)
num_unloaded++
if(num_unloaded)
to_chat(user, "You unload [num_unloaded] shell\s from [src].")
@@ -316,6 +319,7 @@
flags = CONDUCT
slot_flags = SLOT_BACK
mag_type = /obj/item/ammo_box/magazine/internal/shot/dual
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
sawn_desc = "Omar's coming!"
unique_rename = 1
unique_reskin = 1
@@ -348,7 +352,9 @@
CB = magazine.get_round(0)
chambered = null
CB.loc = get_turf(loc)
+ CB.SpinAnimation(10, 1)
CB.update_icon()
+ playsound(get_turf(CB), 'sound/weapons/gun_interactions/shotgun_fall.ogg', 70, 1)
num_unloaded++
if(num_unloaded)
to_chat(user, "You break open \the [src] and unload [num_unloaded] shell\s.")
@@ -369,6 +375,7 @@
force = 10
slot_flags = null
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
sawn_desc = "I'm just here for the gasoline."
unique_rename = 0
unique_reskin = 0
@@ -420,7 +427,7 @@
mag_type = /obj/item/ammo_box/magazine/internal/shot/improvised/cane
sawn_desc = "I'm sorry, but why did you saw your cane in the first place?"
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
- fire_sound = 'sound/weapons/Gunshot_silenced.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg'
suppressed = 1
needs_permit = 0 //its just a cane beepsky.....
diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm
index cd5f5e69865..59bb2595714 100644
--- a/code/modules/projectiles/guns/projectile/saw.dm
+++ b/code/modules/projectiles/guns/projectile/saw.dm
@@ -8,7 +8,9 @@
origin_tech = "combat=6;engineering=3;syndicate=6"
mag_type = /obj/item/ammo_box/magazine/mm556x45
weapon_weight = WEAPON_MEDIUM
- fire_sound = 'sound/weapons/Gunshot3.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/lmg_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/lmg_magout.ogg'
var/cover_open = 0
can_suppress = 0
burst_size = 3
@@ -17,6 +19,7 @@
/obj/item/gun/projectile/automatic/l6_saw/attack_self(mob/user)
cover_open = !cover_open
to_chat(user, "You [cover_open ? "open" : "close"] [src]'s cover.")
+ playsound(src, cover_open ? 'sound/weapons/gun_interactions/sawopen.ogg' : 'sound/weapons/gun_interactions/sawclose.ogg', 50, 1)
update_icon()
/obj/item/gun/projectile/automatic/l6_saw/update_icon()
@@ -42,17 +45,18 @@
magazine.loc = get_turf(loc)
user.put_in_hands(magazine)
magazine = null
+ playsound(src, magout_sound, 50, 1)
update_icon()
to_chat(user, "You remove the magazine from [src].")
-/obj/item/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
- . = ..()
- if(.)
- return
- if(!cover_open)
- to_chat(user, "[src]'s cover is closed! You can't insert a new mag.")
- return
+/obj/item/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
+ if(istype(A, /obj/item/ammo_box/magazine))
+ var/obj/item/ammo_box/magazine/AM = A
+ if(istype(AM, mag_type))
+ if(!cover_open)
+ to_chat(user, "[src]'s cover is closed! You can't insert a new mag.")
+ return
..()
//ammo//
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 55aa5977eb2..366b9b6579f 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -9,6 +9,7 @@
slot_flags = SLOT_BACK
origin_tech = "combat=4;materials=2"
mag_type = /obj/item/ammo_box/magazine/internal/shot
+ fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg'
var/recentpump = 0 // to prevent spammage
/obj/item/gun/projectile/shotgun/attackby(obj/item/A, mob/user, params)
@@ -44,7 +45,7 @@
/obj/item/gun/projectile/shotgun/proc/pump(mob/M)
- playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1)
+ playsound(M, 'sound/weapons/gun_interactions/shotgunpump.ogg', 60, 1)
pump_unload(M)
pump_reload(M)
update_icon() //I.E. fix the desc
@@ -54,6 +55,7 @@
if(chambered)//We have a shell in the chamber
chambered.loc = get_turf(src)//Eject casing
chambered.SpinAnimation(5, 1)
+ playsound(src, chambered.drop_sound, 60, 1)
chambered = null
/obj/item/gun/projectile/shotgun/proc/pump_reload(mob/M)
@@ -206,10 +208,11 @@
item_state = "moistnugget"
slot_flags = 0 //no SLOT_BACK sprite, alas
mag_type = /obj/item/ammo_box/magazine/internal/boltaction
+ fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg'
var/bolt_open = 0
/obj/item/gun/projectile/shotgun/boltaction/pump(mob/M)
- playsound(M, 'sound/weapons/shotgunpump.ogg', 60, 1)
+ playsound(M, 'sound/weapons/gun_interactions/rifle_load.ogg', 60, 1)
if(bolt_open)
pump_reload(M)
else
@@ -312,6 +315,7 @@
to_chat(user, "You switch to tube B.")
else
to_chat(user, "You switch to tube A.")
+ playsound(user, 'sound/weapons/gun_interactions/selector.ogg', 100, 1)
/obj/item/gun/projectile/shotgun/automatic/dual_tube/AltClick(mob/living/user)
if(user.incapacitated() || !Adjacent(user) || !istype(user))
diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm
index 7a610246a21..1683f109cfd 100644
--- a/code/modules/projectiles/guns/projectile/sniper.dm
+++ b/code/modules/projectiles/guns/projectile/sniper.dm
@@ -6,6 +6,9 @@
recoil = 2
weapon_weight = WEAPON_MEDIUM
mag_type = /obj/item/ammo_box/magazine/sniper_rounds
+ fire_sound = 'sound/weapons/gunshots/gunshot_sniper.ogg'
+ magin_sound = 'sound/weapons/gun_interactions/batrifle_magin.ogg'
+ magout_sound = 'sound/weapons/gun_interactions/batrifle_magout.ogg'
fire_delay = 40
burst_size = 1
origin_tech = "combat=7"
diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/projectile/toy.dm
index 1cc35d2ce38..8937fad6047 100644
--- a/code/modules/projectiles/guns/projectile/toy.dm
+++ b/code/modules/projectiles/guns/projectile/toy.dm
@@ -5,7 +5,7 @@
icon_state = "saber"
item_state = "gun"
mag_type = /obj/item/ammo_box/magazine/toy/smg
- fire_sound = 'sound/weapons/Gunshot_smg.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg'
force = 0
throwforce = 0
burst_size = 3
@@ -22,7 +22,7 @@
icon_state = "pistol"
w_class = WEIGHT_CLASS_SMALL
mag_type = /obj/item/ammo_box/magazine/toy/pistol
- fire_sound = 'sound/weapons/Gunshot.ogg'
+ fire_sound = 'sound/weapons/gunshots/gunshot.ogg'
can_suppress = 0
burst_size = 1
fire_delay = 0
diff --git a/sound/weapons/gun_interactions/batrifle_magin.ogg b/sound/weapons/gun_interactions/batrifle_magin.ogg
new file mode 100644
index 00000000000..6e557b892a9
Binary files /dev/null and b/sound/weapons/gun_interactions/batrifle_magin.ogg differ
diff --git a/sound/weapons/gun_interactions/batrifle_magout.ogg b/sound/weapons/gun_interactions/batrifle_magout.ogg
new file mode 100644
index 00000000000..591599f5233
Binary files /dev/null and b/sound/weapons/gun_interactions/batrifle_magout.ogg differ
diff --git a/sound/weapons/gun_interactions/bulletinsert.ogg b/sound/weapons/gun_interactions/bulletinsert.ogg
new file mode 100644
index 00000000000..789ee15b083
Binary files /dev/null and b/sound/weapons/gun_interactions/bulletinsert.ogg differ
diff --git a/sound/weapons/gun_interactions/casingfall1.ogg b/sound/weapons/gun_interactions/casingfall1.ogg
new file mode 100644
index 00000000000..72a04c0fca4
Binary files /dev/null and b/sound/weapons/gun_interactions/casingfall1.ogg differ
diff --git a/sound/weapons/gun_interactions/casingfall2.ogg b/sound/weapons/gun_interactions/casingfall2.ogg
new file mode 100644
index 00000000000..2317ff5d757
Binary files /dev/null and b/sound/weapons/gun_interactions/casingfall2.ogg differ
diff --git a/sound/weapons/gun_interactions/casingfall3.ogg b/sound/weapons/gun_interactions/casingfall3.ogg
new file mode 100644
index 00000000000..39639055c2b
Binary files /dev/null and b/sound/weapons/gun_interactions/casingfall3.ogg differ
diff --git a/sound/weapons/gun_interactions/hpistol_magin.ogg b/sound/weapons/gun_interactions/hpistol_magin.ogg
new file mode 100644
index 00000000000..c74160fdb5d
Binary files /dev/null and b/sound/weapons/gun_interactions/hpistol_magin.ogg differ
diff --git a/sound/weapons/gun_interactions/hpistol_magout.ogg b/sound/weapons/gun_interactions/hpistol_magout.ogg
new file mode 100644
index 00000000000..ddad68ed7d4
Binary files /dev/null and b/sound/weapons/gun_interactions/hpistol_magout.ogg differ
diff --git a/sound/weapons/gun_interactions/lmg_magin.ogg b/sound/weapons/gun_interactions/lmg_magin.ogg
new file mode 100644
index 00000000000..12a11584d5f
Binary files /dev/null and b/sound/weapons/gun_interactions/lmg_magin.ogg differ
diff --git a/sound/weapons/gun_interactions/lmg_magout.ogg b/sound/weapons/gun_interactions/lmg_magout.ogg
new file mode 100644
index 00000000000..d5a70b20b2f
Binary files /dev/null and b/sound/weapons/gun_interactions/lmg_magout.ogg differ
diff --git a/sound/weapons/gun_interactions/pistol_magin.ogg b/sound/weapons/gun_interactions/pistol_magin.ogg
new file mode 100644
index 00000000000..c442f8b1627
Binary files /dev/null and b/sound/weapons/gun_interactions/pistol_magin.ogg differ
diff --git a/sound/weapons/gun_interactions/pistol_magout.ogg b/sound/weapons/gun_interactions/pistol_magout.ogg
new file mode 100644
index 00000000000..334d1a12f29
Binary files /dev/null and b/sound/weapons/gun_interactions/pistol_magout.ogg differ
diff --git a/sound/weapons/gun_interactions/rearm.ogg b/sound/weapons/gun_interactions/rearm.ogg
new file mode 100644
index 00000000000..5bb57f7943a
Binary files /dev/null and b/sound/weapons/gun_interactions/rearm.ogg differ
diff --git a/sound/weapons/gun_interactions/remove_bullet.ogg b/sound/weapons/gun_interactions/remove_bullet.ogg
new file mode 100644
index 00000000000..b30be8ab84d
Binary files /dev/null and b/sound/weapons/gun_interactions/remove_bullet.ogg differ
diff --git a/sound/weapons/gun_interactions/rifle_load.ogg b/sound/weapons/gun_interactions/rifle_load.ogg
new file mode 100644
index 00000000000..8309e26b6dd
Binary files /dev/null and b/sound/weapons/gun_interactions/rifle_load.ogg differ
diff --git a/sound/weapons/gun_interactions/sawclose.ogg b/sound/weapons/gun_interactions/sawclose.ogg
new file mode 100644
index 00000000000..f33a06059fd
Binary files /dev/null and b/sound/weapons/gun_interactions/sawclose.ogg differ
diff --git a/sound/weapons/gun_interactions/sawopen.ogg b/sound/weapons/gun_interactions/sawopen.ogg
new file mode 100644
index 00000000000..c6da68e323e
Binary files /dev/null and b/sound/weapons/gun_interactions/sawopen.ogg differ
diff --git a/sound/weapons/gun_interactions/selector.ogg b/sound/weapons/gun_interactions/selector.ogg
new file mode 100644
index 00000000000..298181609e4
Binary files /dev/null and b/sound/weapons/gun_interactions/selector.ogg differ
diff --git a/sound/weapons/gun_interactions/shotgun_fall.ogg b/sound/weapons/gun_interactions/shotgun_fall.ogg
new file mode 100644
index 00000000000..6a89109a12b
Binary files /dev/null and b/sound/weapons/gun_interactions/shotgun_fall.ogg differ
diff --git a/sound/weapons/gun_interactions/shotguninsert.ogg b/sound/weapons/gun_interactions/shotguninsert.ogg
new file mode 100644
index 00000000000..189324493cf
Binary files /dev/null and b/sound/weapons/gun_interactions/shotguninsert.ogg differ
diff --git a/sound/weapons/shotgunpump.ogg b/sound/weapons/gun_interactions/shotgunpump.ogg
similarity index 100%
rename from sound/weapons/shotgunpump.ogg
rename to sound/weapons/gun_interactions/shotgunpump.ogg
diff --git a/sound/weapons/gun_interactions/smg_magin.ogg b/sound/weapons/gun_interactions/smg_magin.ogg
new file mode 100644
index 00000000000..2bdb3c99e76
Binary files /dev/null and b/sound/weapons/gun_interactions/smg_magin.ogg differ
diff --git a/sound/weapons/gun_interactions/smg_magout.ogg b/sound/weapons/gun_interactions/smg_magout.ogg
new file mode 100644
index 00000000000..d85ff5a40ca
Binary files /dev/null and b/sound/weapons/gun_interactions/smg_magout.ogg differ
diff --git a/sound/weapons/Gunshot.ogg b/sound/weapons/gunshots/gunshot.ogg
similarity index 100%
rename from sound/weapons/Gunshot.ogg
rename to sound/weapons/gunshots/gunshot.ogg
diff --git a/sound/weapons/Gunshot2.ogg b/sound/weapons/gunshots/gunshot2.ogg
similarity index 100%
rename from sound/weapons/Gunshot2.ogg
rename to sound/weapons/gunshots/gunshot2.ogg
diff --git a/sound/weapons/Gunshot3.ogg b/sound/weapons/gunshots/gunshot3.ogg
similarity index 100%
rename from sound/weapons/Gunshot3.ogg
rename to sound/weapons/gunshots/gunshot3.ogg
diff --git a/sound/weapons/Gunshot4.ogg b/sound/weapons/gunshots/gunshot4.ogg
similarity index 100%
rename from sound/weapons/Gunshot4.ogg
rename to sound/weapons/gunshots/gunshot4.ogg
diff --git a/sound/weapons/gunshots/gunshot_lascarbine.ogg b/sound/weapons/gunshots/gunshot_lascarbine.ogg
new file mode 100644
index 00000000000..3c9db8459df
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_lascarbine.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_mg.ogg b/sound/weapons/gunshots/gunshot_mg.ogg
new file mode 100644
index 00000000000..49c2b0c5548
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_mg.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_pistol.ogg b/sound/weapons/gunshots/gunshot_pistol.ogg
new file mode 100644
index 00000000000..c9d63229921
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_pistol.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_pistolH.ogg b/sound/weapons/gunshots/gunshot_pistolH.ogg
new file mode 100644
index 00000000000..7bd82f183e5
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_pistolH.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_rifle.ogg b/sound/weapons/gunshots/gunshot_rifle.ogg
new file mode 100644
index 00000000000..4b26d5e7e6f
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_rifle.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_shotgun.ogg b/sound/weapons/gunshots/gunshot_shotgun.ogg
new file mode 100644
index 00000000000..b546fb734f8
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_shotgun.ogg differ
diff --git a/sound/weapons/Gunshot_silenced.ogg b/sound/weapons/gunshots/gunshot_silenced.ogg
similarity index 100%
rename from sound/weapons/Gunshot_silenced.ogg
rename to sound/weapons/gunshots/gunshot_silenced.ogg
diff --git a/sound/weapons/Gunshot_smg.ogg b/sound/weapons/gunshots/gunshot_smg.ogg
similarity index 100%
rename from sound/weapons/Gunshot_smg.ogg
rename to sound/weapons/gunshots/gunshot_smg.ogg
diff --git a/sound/weapons/gunshots/gunshot_sniper.ogg b/sound/weapons/gunshots/gunshot_sniper.ogg
new file mode 100644
index 00000000000..fc292dd255f
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_sniper.ogg differ
diff --git a/sound/weapons/gunshots/gunshot_strong.ogg b/sound/weapons/gunshots/gunshot_strong.ogg
new file mode 100644
index 00000000000..6794bfa08ec
Binary files /dev/null and b/sound/weapons/gunshots/gunshot_strong.ogg differ