diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index a332f6fa924..bda28f83b1b 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -21,6 +21,7 @@
B.health -= damage
B.update_icon()
+ new/obj/effect/effect/sparks(src.loc)
new/obj/effect/effect/smoke/illumination(src.loc, brightness=15)
del(src)
return
diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm
index a500af113f0..d3f81185abd 100644
--- a/code/modules/projectiles/guns/projectile.dm
+++ b/code/modules/projectiles/guns/projectile.dm
@@ -153,9 +153,9 @@
/obj/item/weapon/gun/projectile/examine(mob/user)
..(user)
+ user << "Has [getAmmo()] round\s remaining."
if(ammo_magazine)
user << "It has \a [ammo_magazine] loaded."
- user << "Has [getAmmo()] round\s remaining."
// if(in_chamber && !loaded.len)
// user << "However, it has a chambered round."
// if(in_chamber && loaded.len)
diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm
index 6dd1cfbe9b2..32af57100ae 100644
--- a/code/modules/projectiles/guns/projectile/pistol.dm
+++ b/code/modules/projectiles/guns/projectile/pistol.dm
@@ -71,7 +71,8 @@
magazine_type = /obj/item/ammo_magazine/mc9mm
/obj/item/weapon/gun/projectile/pistol/flash
- desc = "A small, easily concealable gun. Uses 9mm illumination rounds."
+ name = "\improper Stechtkin signal pistol"
+ desc = "A small, easily concealable gun. Uses 9mm signal flash rounds."
magazine_type = /obj/item/ammo_magazine/mc9mm/flash
/obj/item/weapon/gun/projectile/pistol/attack_hand(mob/user as mob)
diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm
index dc2870892b6..48ae9a24329 100644
--- a/code/modules/projectiles/guns/projectile/revolver.dm
+++ b/code/modules/projectiles/guns/projectile/revolver.dm
@@ -88,6 +88,8 @@
magazine_type = /obj/item/ammo_magazine/c45m/rubber
/obj/item/weapon/gun/projectile/detective/semiauto/flash
+ name = "\improper Colt M1911 signal pistol"
+ desc = "A cheap Martian knock-off of a Colt M1911. Uses .45 signal flash rounds."
magazine_type = /obj/item/ammo_magazine/c45m/flash
/obj/item/weapon/gun/projectile/detective/semiauto/colt
diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm
index 525d1ccb774..9c985a0994b 100644
--- a/code/modules/projectiles/projectile.dm
+++ b/code/modules/projectiles/projectile.dm
@@ -101,10 +101,12 @@
if(user == target) //Shooting yourself
user.bullet_act(src, target_zone)
+ on_impact(user)
del(src)
return 0
if(targloc == curloc) //Shooting something in the same turf
target.bullet_act(src, target_zone)
+ on_impact(target)
del(src)
return 0
diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm
index 851f691b411..1bb2490463b 100644
--- a/code/modules/projectiles/projectile/energy.dm
+++ b/code/modules/projectiles/projectile/energy.dm
@@ -11,29 +11,35 @@
name = "shell" //a chemical filled shell or something
icon_state = "bullet"
damage = 5
- var/flash_range = 1
- var/brightness = 5
- var/light_duration = 10
+ var/flash_range = 0
+ var/brightness = 7
+ var/light_duration = 5
-/obj/item/projectile/energy/flash/on_impact()
- var/turf/T = get_turf(src)
+/obj/item/projectile/energy/flash/on_impact(var/atom/A)
+ var/turf/T = get_turf(A)
if(!istype(T)) return
- src.visible_message("\The [src] explodes in a bright flash!")
+ //blind adjacent people
for (var/mob/living/carbon/M in viewers(T, flash_range))
if(M.eyecheck() < 1)
flick("e_flash", M.flash)
+ //snap pop
playsound(src, 'sound/effects/snap.ogg', 50, 1)
- new/obj/effect/effect/smoke/illumination(src.loc, brightness=max(flash_range*2, brightness), lifetime=light_duration)
+ src.visible_message("\The [src] explodes in a bright flash!")
+
+ //use src.loc so that ash doesn't end up inside windows
+ new /obj/effect/effect/sparks(src.loc)
+ new /obj/effect/decal/cleanable/ash(src.loc)
+ new /obj/effect/effect/smoke/illumination(src.loc, brightness=max(flash_range*2, brightness), lifetime=light_duration)
//blinds people like the flash round, but can also be used for temporary illumination
/obj/item/projectile/energy/flash/flare
damage = 10
flash_range = 1
- brightness = 7 //similar to a flare
- light_duration = 150
+ brightness = 9 //similar to a flare
+ light_duration = 200
/obj/item/projectile/energy/electrode
name = "electrode"