diff --git a/code/game/objects/items/weapons/grenades/flashbang.dm b/code/game/objects/items/weapons/grenades/flashbang.dm
index 5588089cef..e917745e0e 100644
--- a/code/game/objects/items/weapons/grenades/flashbang.dm
+++ b/code/game/objects/items/weapons/grenades/flashbang.dm
@@ -5,92 +5,89 @@
origin_tech = list(TECH_MATERIAL = 2, TECH_COMBAT = 1)
var/banglet = 0
- prime()
- ..()
- for(var/obj/structure/closet/L in hear(7, get_turf(src)))
- if(locate(/mob/living/carbon/, L))
- for(var/mob/living/carbon/M in L)
- bang(get_turf(src), M)
+/obj/item/weapon/grenade/flashbang/prime()
+ ..()
+ for(var/obj/structure/closet/L in hear(7, get_turf(src)))
+ if(locate(/mob/living/carbon/, L))
+ for(var/mob/living/carbon/M in L)
+ bang(get_turf(src), M)
+ for(var/mob/living/carbon/M in hear(7, get_turf(src)))
+ bang(get_turf(src), M)
- for(var/mob/living/carbon/M in hear(7, get_turf(src)))
- bang(get_turf(src), M)
+ for(var/obj/structure/blob/B in hear(8,get_turf(src))) //Blob damage here
+ var/damage = round(30/(get_dist(B,get_turf(src))+1))
+ if(B.overmind)
+ damage *= B.overmind.blob_type.burn_multiplier
+ B.adjust_integrity(-damage)
- for(var/obj/structure/blob/B in hear(8,get_turf(src))) //Blob damage here
- var/damage = round(30/(get_dist(B,get_turf(src))+1))
- if(B.overmind)
- damage *= B.overmind.blob_type.burn_multiplier
- B.adjust_integrity(-damage)
+ new/obj/effect/effect/sparks(src.loc)
+ new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF")
+ qdel(src)
+ return
- new/obj/effect/effect/sparks(src.loc)
- new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF")
- qdel(src)
- return
-
- proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged.
- M << "BANG" // Called during the loop that bangs people in lockers/containers and when banging
- playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 30) // people in normal view. Could theroetically be called during other explosions.
+/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/carbon/M) // Added a new proc called 'bang' that takes a location and a person to be banged.
+ to_chat(M, "BANG") // Called during the loop that bangs people in lockers/containers and when banging
+ playsound(src.loc, 'sound/effects/bang.ogg', 50, 1, 30) // people in normal view. Could theroetically be called during other explosions.
// -- Polymorph
-//Checking for protections
- var/eye_safety = 0
- var/ear_safety = 0
- if(iscarbon(M))
- eye_safety = M.eyecheck()
- ear_safety = M.get_ear_protection()
+ //Checking for protections
+ var/eye_safety = 0
+ var/ear_safety = 0
+ if(iscarbon(M))
+ eye_safety = M.eyecheck()
+ ear_safety = M.get_ear_protection()
-//Flashing everyone
- if(eye_safety < 1)
- M.flash_eyes()
- M.Stun(2)
- M.Weaken(10)
+ //Flashing everyone
+ if(eye_safety < 1)
+ M.flash_eyes()
+ M.Confuse(2)
+ M.Weaken(5)
-
-
-//Now applying sound
- if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
- if(ear_safety > 0)
- M.Stun(2)
- M.Weaken(1)
- else
- M.Stun(10)
- M.Weaken(3)
- if ((prob(14) || (M == src.loc && prob(70))))
- M.ear_damage += rand(1, 10)
- else
- M.ear_damage += rand(0, 5)
- M.ear_deaf = max(M.ear_deaf,15)
-
- else if(get_dist(M, T) <= 5)
- if(!ear_safety)
- M.Stun(8)
- M.ear_damage += rand(0, 3)
- M.ear_deaf = max(M.ear_deaf,10)
-
- else if(!ear_safety)
- M.Stun(4)
- M.ear_damage += rand(0, 1)
- M.ear_deaf = max(M.ear_deaf,5)
-
-//This really should be in mob not every check
- if(ishuman(M))
- var/mob/living/carbon/human/H = M
- var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
- if (E && E.damage >= E.min_bruised_damage)
- M << "Your eyes start to burn badly!"
- if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
- if (E.damage >= E.min_broken_damage)
- M << "You can't see anything!"
- if (M.ear_damage >= 15)
- M << "Your ears start to ring badly!"
- if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
- if (prob(M.ear_damage - 10 + 5))
- M << "You can't hear anything!"
- M.sdisabilities |= DEAF
+ //Now applying sound
+ if((get_dist(M, T) <= 2 || src.loc == M.loc || src.loc == M))
+ if(ear_safety > 0)
+ M.Confuse(2)
+ M.Weaken(1)
else
- if (M.ear_damage >= 5)
- M << "Your ears start to ring!"
- M.update_icons() //Forces matrix transform to proc if they are now laying, I guess?
+ M.Confuse(10)
+ M.Weaken(3)
+ if ((prob(14) || (M == src.loc && prob(70))))
+ M.ear_damage += rand(1, 10)
+ else
+ M.ear_damage += rand(0, 5)
+ M.ear_deaf = max(M.ear_deaf,15)
+
+ else if(get_dist(M, T) <= 5)
+ if(!ear_safety)
+ M.Confuse(8)
+ M.ear_damage += rand(0, 3)
+ M.ear_deaf = max(M.ear_deaf,10)
+
+ else if(!ear_safety)
+ M.Confuse(4)
+ M.ear_damage += rand(0, 1)
+ M.ear_deaf = max(M.ear_deaf,5)
+
+ //This really should be in mob not every check
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
+ if (E && E.damage >= E.min_bruised_damage)
+ M << "Your eyes start to burn badly!"
+ if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
+ if (E.damage >= E.min_broken_damage)
+ M << "You can't see anything!"
+ if (M.ear_damage >= 15)
+ to_chat(M, "Your ears start to ring badly!")
+ if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
+ if (prob(M.ear_damage - 10 + 5))
+ to_chat(M, "You can't hear anything!")
+ M.sdisabilities |= DEAF
+ else if(M.ear_damage >= 5)
+ to_chat(M, "Your ears start to ring!")
+
+ M.update_icons() //Forces matrix transform to proc if they are now laying, I guess?
/obj/item/weapon/grenade/flashbang/Destroy()
walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever.