///Unleashes a honkerblast similar to the honkmech weapon, but with more granular control. /proc/honkerblast(atom/origin, light_range = 1, medium_range = 0, heavy_range = 0) var/origin_turf = get_turf(origin) var/list/lightly_honked = list() var/list/properly_honked = list() var/list/severely_honked = list() playsound(origin_turf, 'sound/items/airhorn/airhorn.ogg', 100, TRUE) for(var/mob/living/carbon/victim in hearers(max(light_range, medium_range, heavy_range), origin_turf)) if(!victim.can_hear()) continue var/distance = get_dist(origin_turf, victim.loc) if(distance <= heavy_range) severely_honked += victim else if(distance <= medium_range) properly_honked += victim else if(distance <= light_range) lightly_honked += victim for(var/mob/living/carbon/victim in severely_honked) victim.Unconscious(40) victim.Stun(100) victim.adjust_stutter(30 SECONDS) victim.set_jitter_if_lower(1000 SECONDS) victim.sound_damage(10, 30 SECONDS) to_chat(victim, "HONK") var/obj/item/clothing/shoes/victim_shoes = victim.get_item_by_slot(ITEM_SLOT_FEET) if(!victim_shoes || victim_shoes.fastening_type == SHOES_SLIPON) continue victim_shoes.adjust_laces(SHOES_KNOTTED) for(var/mob/living/carbon/victim in properly_honked) victim.Paralyze(20) victim.Stun(50) victim.set_jitter_if_lower(500 SECONDS) victim.sound_damage(7, 20 SECONDS) to_chat(victim, "HONK") for(var/mob/living/carbon/victim in lightly_honked) victim.Knockdown(20) victim.set_jitter_if_lower(200 SECONDS) victim.sound_damage(4, 10 SECONDS) to_chat(victim, "HONK")