Merge pull request #10395 from granodd/GunsAndGunAccessories

New Gun Sounds
This commit is contained in:
variableundefined
2019-01-27 10:37:03 +08:00
committed by GitHub
61 changed files with 154 additions and 55 deletions
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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,
@@ -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
+6
View File
@@ -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, "<span class='notice'>You collect [boolets] shell\s. [box] now contains [box.stored_ammo.len] shell\s.</span>")
playsound(src, 'sound/weapons/gun_interactions/bulletinsert.ogg', 50, 1)
else
to_chat(user, "<span class='warning'>You fail to collect anything!</span>")
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, "<span class='notice'>You load [num_loaded] shell\s into \the [src]!</span>")
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, "<span class='notice'>You remove a round from \the [src]!</span>")
update_icon()
@@ -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)
@@ -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
@@ -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
+2
View File
@@ -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
@@ -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?"
+36 -13
View File
@@ -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, "<span class='notice'>You load a new magazine into \the [src].</span>")
chamber_round()
A.update_icon()
update_icon()
return 1
else if(magazine)
to_chat(user, "<span class='notice'>There's already a magazine in \the [src].</span>")
if(istype(AM, mag_type))
if(can_reload())
reload(AM, user)
to_chat(user, "<span class='notice'>You load a new magazine into \the [src].</span>")
return TRUE
else if(!can_tactical)
to_chat(user, "<span class='notice'>There's already a magazine in \the [src].</span>")
return TRUE
else
to_chat(user, "<span class='notice'>You perform a tactical reload on \the [src], replacing the magazine.</span>")
magazine.loc = get_turf(loc)
magazine.update_icon()
magazine = null
reload(AM, user)
return TRUE
else
to_chat(user, "<span class='notice'>You can't put this type of ammo in \the [src].</span>")
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, "<span class='notice'>You pull the magazine out of \the [src]!</span>")
playsound(src, magout_sound, 50, 1)
else if(chambered)
AC.loc = get_turf(src)
AC.SpinAnimation(10, 1)
chambered = null
to_chat(user, "<span class='notice'>You unload the round from \the [src]'s chamber.</span>")
playsound(src, 'sound/weapons/gun_interactions/remove_bullet.ogg', 50, 1)
else
to_chat(user, "<span class='notice'>There's no magazine in \the [src].</span>")
update_icon()
@@ -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, "<span class='notice'>You switch to [burst_size] round burst.</span>")
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, "<span class='notice'>You switch to semi-auto.</span>")
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
@@ -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."
@@ -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, "<span class='notice'>You unload [num_unloaded] shell\s from [src].</span>")
@@ -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, "<span class='notice'>You unload [num_unloaded] shell\s from [src].</span>")
@@ -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, "<span class = 'notice'>You break open \the [src] and unload [num_unloaded] shell\s.</span>")
@@ -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.....
@@ -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, "<span class='notice'>You [cover_open ? "open" : "close"] [src]'s cover.</span>")
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, "<span class='notice'>You remove the magazine from [src].</span>")
/obj/item/gun/projectile/automatic/l6_saw/attackby(obj/item/A, mob/user, params)
. = ..()
if(.)
return
if(!cover_open)
to_chat(user, "<span class='warning'>[src]'s cover is closed! You can't insert a new mag.</span>")
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, "<span class='warning'>[src]'s cover is closed! You can't insert a new mag.</span>")
return
..()
//ammo//
@@ -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))
@@ -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"
@@ -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