diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm index 326c5efdb0ff..aee78b96fbbd 100644 --- a/code/game/objects/items/explosives/grenades/marines.dm +++ b/code/game/objects/items/explosives/grenades/marines.dm @@ -749,12 +749,16 @@ if(target != get_turf(user)) return - + user.visible_message(SPAN_NOTICE("[user] starts deploying [src]."), \ + SPAN_NOTICE("You start deploying [src].")) to_chat(user, SPAN_NOTICE("You switch [src] into landmine mode and start placing it...")) playsound(user.loc, 'sound/effects/thud.ogg', 100, 6) if(!do_after(user,2 SECONDS * user.get_skill_duration_multiplier(SKILL_CONSTRUCTION), INTERRUPT_ALL|BEHAVIOR_IMMOBILE, BUSY_ICON_BUILD)) to_chat(user, SPAN_NOTICE("You stop digging.")) return + + user.visible_message(SPAN_NOTICE("[user] finishes deploying [src]."), \ + SPAN_NOTICE("You finish deploying [src].")) var/obj/item/explosive/mine/sebb/planted = new /obj/item/explosive/mine/sebb(get_turf(user)) planted.pixel_x += rand(-5,5) planted.pixel_y += rand(-5,5) @@ -767,33 +771,42 @@ /obj/item/explosive/grenade/sebb/prime() + var/datum/effect_system/spark_spread/spark = new /datum/effect_system/spark_spread var/list/full_range = oview(range,src) // Fill a list of stuff in the range so we won't have to spam it new /obj/effect/overlay/sebb(get_turf(src)) playsound(src.loc, 'sound/effects/sebb_explode.ogg', 100, 0, 10) create_shrapnel(loc, spark_count/2, , ,/datum/ammo/bullet/shrapnel/light/effect/ver1, cause_data) create_shrapnel(loc, spark_count/2, , ,/datum/ammo/bullet/shrapnel/light/effect/ver2, cause_data) - + for(var/obj/structure/machinery/defenses/sentry/sentry_stun in full_range) + sentry_stun.sentry_range = 0 // Temporarily "disable" the sentry by killing its range then setting it back. + + addtimer(VARSET_CALLBACK(sentry_stun, sentry_range, initial(sentry_stun.sentry_range)), 2 SECONDS) + sentry_stun.visible_message(SPAN_DANGER("[src]'s screen flickes violently as it's shocked!")) + sentry_stun.visible_message(SPAN_DANGER("[src] says \"ERROR: Fire control system resetting due to critical voltage flucuation!\"")) + spark.set_up(5, 1, sentry_stun) + spark.start() for(var/turf/turf in full_range) if(prob(25)) - var/datum/effect_system/spark_spread/spark = new /datum/effect_system/spark_spread spark.set_up(2, 1, turf) spark.start() for(var/mob/living/mob in full_range) var/mob_range = get_dist(src,mob) - to_chat(world,mob_range) /// REMOVETHIS REMOVETHIS var/dam_factor = mob_range * dam_range_mult - to_chat(world,dam_factor) /// REMOVETHIS REMOVETHIS var/damage_applied = damage - dam_factor //divides damage if(ishuman(mob)) var/mob/living/carbon/human/shocked_human = mob + if(shocked_human.species == /datum/species/synthetic) // Massive overvoltage to ungrounded robots is pretty bad + damage_applied = damage_applied * 2 + spark.set_up(5, 1, shocked_human) + spark.start() + shocked_human.Stun(1) + to_chat(mob,SPAN_HIGHDANGER("All of your systems jam up as your main bus is overvolted by [damage_applied*2] volts.")) shocked_human.take_overall_armored_damage(damage_applied ,ARMOR_ENERGY,BURN, 90) // 90% chance to be on additional limbs shocked_human.make_dizzy(damage_applied*3) shocked_human.make_jittery(damage_applied*3) shocked_human.emote("pain") else mob.apply_damage(damage_applied, BURN) - //mob.KnockDown(5) /// REMOVETHIS REMOVETHIS - if(!(mob.client)) continue // REMOVETHIS REMOVETHIS anticrash if(mob_range < 1) // they are probably dead if human so no unique human stuff. mob.KnockDown(2) mob.Superslow(3)