Skip to content

Commit

Permalink
sentry effects and striping
Browse files Browse the repository at this point in the history
  • Loading branch information
PhantomEpicness committed Feb 11, 2024
1 parent ec4893f commit 3afa1e2
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions code/game/objects/items/explosives/grenades/marines.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand Down

0 comments on commit 3afa1e2

Please sign in to comment.