From 51420a0aa7a2eb180fea37be783126b5d3f769a7 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Thu, 22 Feb 2018 02:20:25 -0600 Subject: [PATCH] Flashbangs no longer Stun() --- .../items/weapons/grenades/flashbang.dm | 151 +++++++++--------- 1 file changed, 74 insertions(+), 77 deletions(-) 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.