mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-11 23:23:28 +01:00
Merge pull request #9888 from Fox-McCloud/spark-refactor
Refactors Spark Spread Activation
This commit is contained in:
@@ -261,9 +261,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
if(istype(target,/mob/living) && message)
|
||||
to_chat(target, text("[message]"))
|
||||
if(sparks_spread)
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread()
|
||||
sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is
|
||||
sparks.start()
|
||||
do_sparks(sparks_amt, 0, location)
|
||||
if(smoke_spread)
|
||||
if(smoke_spread == 1)
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
@@ -328,10 +326,10 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/choose_targets(mob/user = usr)
|
||||
var/list/targets = list()
|
||||
|
||||
|
||||
switch(max_targets)
|
||||
if(0) //unlimited
|
||||
|
||||
|
||||
if(!humans_only)
|
||||
for(var/mob/living/target in view_or_range(range, user, selection_type))
|
||||
targets += target
|
||||
@@ -344,7 +342,7 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
||||
targets += user
|
||||
else
|
||||
var/possible_targets = list()
|
||||
|
||||
|
||||
if(!humans_only)
|
||||
for(var/mob/living/M in view_or_range(range, user, selection_type))
|
||||
if(!include_user && user == M)
|
||||
|
||||
@@ -561,9 +561,7 @@ Congratulations! You are now trained for invasive xenobiology research!"}
|
||||
/obj/item/restraints/handcuffs/energy/used/dropped(mob/user)
|
||||
user.visible_message("<span class='danger'>[user]'s [src] break in a discharge of energy!</span>", \
|
||||
"<span class='userdanger'>[user]'s [src] break in a discharge of energy!</span>")
|
||||
var/datum/effect_system/spark_spread/S = new
|
||||
S.set_up(4,0,user.loc)
|
||||
S.start()
|
||||
do_sparks(4, 0, user.loc)
|
||||
. = ..()
|
||||
|
||||
/obj/item/abductor_baton/examine(mob/user)
|
||||
|
||||
@@ -46,7 +46,5 @@
|
||||
duration = 80
|
||||
|
||||
/obj/effect/temp_visual/teleport_abductor/New()
|
||||
var/datum/effect_system/spark_spread/S = new
|
||||
S.set_up(10,0,loc)
|
||||
S.start()
|
||||
do_sparks(10, 0, loc)
|
||||
..()
|
||||
@@ -209,9 +209,7 @@
|
||||
if(!L.on)
|
||||
return
|
||||
L.visible_message("<span class='warning'><b>\The [L] suddenly flares brightly and begins to spark!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread/
|
||||
s.set_up(4, 0, L)
|
||||
s.start()
|
||||
do_sparks(4, 0, L)
|
||||
new/obj/effect/temp_visual/revenant(L.loc)
|
||||
sleep(20)
|
||||
if(!L.on) //wait, wait, don't shock me
|
||||
@@ -222,9 +220,7 @@
|
||||
return
|
||||
M.Beam(L,icon_state="purple_lightning",icon='icons/effects/effects.dmi',time=5)
|
||||
M.electrocute_act(shock_damage, "[L.name]", safety=1)
|
||||
var/datum/effect_system/spark_spread/z = new /datum/effect_system/spark_spread/
|
||||
z.set_up(4, 0, M)
|
||||
z.start()
|
||||
do_sparks(4, 0, M)
|
||||
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
|
||||
//Defile: Corrupts nearby stuff, unblesses floor tiles.
|
||||
|
||||
@@ -540,9 +540,7 @@
|
||||
to_chat(S, "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>")
|
||||
S << 'sound/misc/interference.ogg'
|
||||
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
||||
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
|
||||
sp.set_up(5, 1, S)
|
||||
sp.start()
|
||||
do_sparks(5, 1, S)
|
||||
S.Weaken(6)
|
||||
for(var/obj/structure/window/W in T.contents)
|
||||
W.take_damage(rand(80, 100))
|
||||
|
||||
@@ -48,9 +48,7 @@
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //exploding after touching yourself would be bad
|
||||
return
|
||||
var/mob/M = target
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(4, 0, M.loc) //no idea what the 0 is
|
||||
sparks.start()
|
||||
do_sparks(4, 0, M.loc) //no idea what the 0 is
|
||||
M.gib()
|
||||
..()
|
||||
|
||||
@@ -84,9 +82,7 @@
|
||||
/obj/item/melee/touch_attack/fake_disintegrate/afterattack(atom/target, mob/living/carbon/user, proximity)
|
||||
if(!proximity || target == user || !ismob(target) || !iscarbon(user) || user.lying || user.handcuffed) //not exploding after touching yourself would be bad
|
||||
return
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(4, 0, target.loc) //no idea what the 0 is
|
||||
sparks.start()
|
||||
do_sparks(4, 0, target.loc)
|
||||
playsound(target.loc, 'sound/goonstation/effects/gib.ogg', 50, 1)
|
||||
..()
|
||||
|
||||
|
||||
@@ -217,9 +217,7 @@
|
||||
|
||||
for(var/turf/T in linkedholodeck)
|
||||
if(prob(30))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, T)
|
||||
s.start()
|
||||
do_sparks(2, 1, T)
|
||||
T.ex_act(3)
|
||||
T.hotspot_expose(1000,500,1)
|
||||
|
||||
@@ -257,9 +255,7 @@
|
||||
if(L.name=="Atmospheric Test Start")
|
||||
spawn(20)
|
||||
var/turf/T = get_turf(L)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, T)
|
||||
s.start()
|
||||
do_sparks(2, 1, T)
|
||||
if(T)
|
||||
T.temperature = 5000
|
||||
T.hotspot_expose(50000,50000,1)*/
|
||||
@@ -306,9 +302,7 @@
|
||||
/* if(L.name=="Atmospheric Test Start")
|
||||
spawn(20)
|
||||
var/turf/T = get_turf(L)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, T)
|
||||
s.start()
|
||||
do_sparks(2, 1, T)
|
||||
if(T)
|
||||
T.temperature = 5000
|
||||
T.hotspot_expose(50000,50000,1)*/
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
circuit = /obj/item/circuitboard/message_monitor
|
||||
//Server linked to.
|
||||
var/obj/machinery/message_server/linkedServer = null
|
||||
//Sparks effect - For emag
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||
//Messages - Saves me time if I want to change something.
|
||||
var/noserver = "<span class='alert'>ALERT: No server detected.</span>"
|
||||
var/incorrectkey = "<span class='warning'>ALERT: Incorrect decryption key!</span>"
|
||||
@@ -56,8 +54,7 @@
|
||||
icon_screen = hack_icon // An error screen I made in the computers.dmi
|
||||
emag = 1
|
||||
screen = 2
|
||||
spark_system.set_up(5, 0, src)
|
||||
src.spark_system.start()
|
||||
do_sparks(5, 0, src)
|
||||
var/obj/item/paper/monitorkey/MK = new/obj/item/paper/monitorkey
|
||||
MK.loc = src.loc
|
||||
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
|
||||
|
||||
@@ -149,9 +149,7 @@
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
|
||||
return
|
||||
visible_message("<span class='warning'>The console sparks, and some items fall out!</span>")
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(5, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(5, 1, src)
|
||||
for(var/obj/item/I in objective_items)
|
||||
dispense_item(I)
|
||||
|
||||
|
||||
@@ -188,9 +188,7 @@ for reference:
|
||||
to_chat(user, "Barrier lock toggled off.")
|
||||
return
|
||||
else
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
visible_message("<span class='warning'>BZZzZZzZZzZT</span>")
|
||||
return
|
||||
return
|
||||
@@ -223,16 +221,12 @@ for reference:
|
||||
emagged = 1
|
||||
req_access = null
|
||||
to_chat(user, "You break the ID authentication lock on the [src].")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
visible_message("<span class='warning'>BZZzZZzZZzZT</span>")
|
||||
else if(src.emagged == 1)
|
||||
src.emagged = 2
|
||||
to_chat(user, "You short out the anchoring mechanism on the [src].")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
visible_message("<span class='warning'>BZZzZZzZZzZT</span>")
|
||||
|
||||
ex_act(severity)
|
||||
@@ -275,9 +269,7 @@ for reference:
|
||||
/* var/obj/item/stack/rods/ =*/
|
||||
new /obj/item/stack/rods(Tsec)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
explosion(src.loc,-1,-1,0)
|
||||
if(src)
|
||||
|
||||
@@ -627,9 +627,7 @@ About the new airlock wires panel:
|
||||
if(isElectrified() && density && istype(mover, /obj/item))
|
||||
var/obj/item/I = mover
|
||||
if(I.flags & CONDUCT)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/airlock/attack_hand(mob/user)
|
||||
|
||||
@@ -76,8 +76,7 @@
|
||||
if(autoclose_timer)
|
||||
deltimer(autoclose_timer)
|
||||
autoclose_timer = 0
|
||||
if(spark_system)
|
||||
QDEL_NULL(spark_system)
|
||||
QDEL_NULL(spark_system)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/door/Bumped(atom/AM)
|
||||
|
||||
@@ -101,9 +101,7 @@
|
||||
|
||||
|
||||
flick("[base_state]-spark", src)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
src.last_spark = world.time
|
||||
use_power(1000)
|
||||
var/turf/location = src.loc
|
||||
|
||||
@@ -587,9 +587,7 @@ Class Procs:
|
||||
return 0
|
||||
if((TK in user.mutations) && !Adjacent(user))
|
||||
return 0
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
if(electrocute_mob(user, get_area(src), src, 0.7))
|
||||
if(user.stunned)
|
||||
return 1
|
||||
|
||||
@@ -94,9 +94,7 @@
|
||||
doteleport(user)
|
||||
|
||||
/obj/machinery/quantumpad/proc/sparks()
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, get_turf(src))
|
||||
s.start()
|
||||
do_sparks(5, 1, get_turf(src))
|
||||
|
||||
/obj/machinery/quantumpad/attack_ghost(mob/dead/observer/ghost)
|
||||
if(linked_pad)
|
||||
|
||||
@@ -29,9 +29,7 @@
|
||||
var/obj/effect/decal/cleanable/blood/oil/streak = new(src.loc)
|
||||
streak.update_icon()
|
||||
else if(prob(10))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
if(step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
|
||||
@@ -22,12 +22,6 @@
|
||||
icon_state = "remainsrobot"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/decal/remains/robot/New()
|
||||
..()
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
|
||||
/obj/effect/decal/remains/slime
|
||||
name = "You shouldn't see this"
|
||||
desc = "Noooooooooooooooooooooo"
|
||||
|
||||
@@ -8,8 +8,9 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
/obj/effect/particle_effect
|
||||
name = "particle effect"
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
unacidable = 1//So effects are not targeted by alien acid.
|
||||
unacidable = TRUE //So effects are not targeted by alien acid.
|
||||
pass_flags = PASSTABLE | PASSGRILLE
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/particle_effect/New()
|
||||
..()
|
||||
@@ -28,6 +29,7 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
var/atom/holder
|
||||
var/effect_type
|
||||
var/total_effects = 0
|
||||
var/autocleanup = FALSE //will delete itself after use
|
||||
|
||||
/datum/effect_system/Destroy()
|
||||
holder = null
|
||||
@@ -71,3 +73,5 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
||||
|
||||
/datum/effect_system/proc/decrement_total_effect()
|
||||
total_effects--
|
||||
if(autocleanup && total_effects <= 0)
|
||||
qdel(src)
|
||||
@@ -155,9 +155,7 @@
|
||||
|
||||
/datum/effect_system/reagents_explosion/start()
|
||||
if(amount <= 2)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
do_sparks(2, 1, location)
|
||||
|
||||
for(var/mob/M in viewers(5, location))
|
||||
to_chat(M, "<span class='warning'>The solution violently explodes.</span>")
|
||||
|
||||
@@ -5,15 +5,26 @@
|
||||
// will always spawn at the items location.
|
||||
/////////////////////////////////////////////
|
||||
|
||||
/proc/do_sparks(n, c, source)
|
||||
// n - number of sparks
|
||||
// c - cardinals, bool, do the sparks only move in cardinal directions?
|
||||
// source - source of the sparks.
|
||||
|
||||
var/datum/effect_system/spark_spread/sparks = new
|
||||
sparks.set_up(n, c, source)
|
||||
sparks.autocleanup = TRUE
|
||||
sparks.start()
|
||||
|
||||
/obj/effect/particle_effect/sparks
|
||||
name = "sparks"
|
||||
desc = "it's a spark what do you need to know?"
|
||||
icon_state = "sparks"
|
||||
anchored = 1
|
||||
anchored = TRUE
|
||||
var/hotspottemp = 1000
|
||||
|
||||
/obj/effect/particle_effect/sparks/New()
|
||||
..()
|
||||
flick("sparks", src) // replay the animation
|
||||
playsound(loc, "sparks", 100, 1)
|
||||
var/turf/T = loc
|
||||
if(isturf(T))
|
||||
|
||||
@@ -30,9 +30,7 @@
|
||||
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
||||
|
||||
if(sparks)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
do_sparks(2, 1, location)
|
||||
|
||||
for(var/i = 1, i<= gibtypes.len, i++)
|
||||
if(gibamounts[i])
|
||||
|
||||
@@ -25,9 +25,7 @@
|
||||
if(triggered)
|
||||
return
|
||||
visible_message("<span class='danger'>[victim] sets off [bicon(src)] [src]!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
mineEffect(victim)
|
||||
triggered = 1
|
||||
qdel(src)
|
||||
|
||||
@@ -57,9 +57,7 @@
|
||||
|
||||
/obj/effect/portal/proc/invalid_teleport()
|
||||
visible_message("<span class='warning'>[src] flickers and fails due to bluespace interference!</span>")
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, loc)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -67,10 +67,7 @@
|
||||
|
||||
/obj/item/chameleon/proc/disrupt(var/delete_dummy = 1)
|
||||
if(active_dummy)
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, src)
|
||||
eject_all()
|
||||
if(delete_dummy)
|
||||
qdel(active_dummy)
|
||||
|
||||
@@ -87,9 +87,7 @@
|
||||
if(M)
|
||||
M.moved_recently = 0
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
do_sparks(3, 1, M)
|
||||
|
||||
M.Weaken(5)
|
||||
|
||||
|
||||
@@ -250,9 +250,7 @@
|
||||
|
||||
/obj/item/toy/snappop/virus/throw_impact(atom/hit_atom)
|
||||
..()
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||
visible_message("<span class='warning'>The [name] explodes!</span>","<span class='warning'>You hear a bang!</span>")
|
||||
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
||||
@@ -270,9 +268,7 @@
|
||||
var/ash_type = /obj/effect/decal/cleanable/ash
|
||||
|
||||
/obj/item/toy/snappop/proc/pop_burst(var/n=3, var/c=1)
|
||||
var/datum/effect_system/spark_spread/s = new()
|
||||
s.set_up(n, c, src)
|
||||
s.start()
|
||||
do_sparks(n, c, src)
|
||||
new ash_type(loc)
|
||||
visible_message("<span class='warning'>[src] explodes!</span>",
|
||||
"<span class='italics'>You hear a snap!</span>")
|
||||
|
||||
@@ -25,7 +25,7 @@ obj/item/sparkler
|
||||
icon = 'icons/obj/fireworks.dmi'
|
||||
icon_state = "sparkler_0"
|
||||
var/litzor = 0
|
||||
var/datum/effect_system/spark_spread/S
|
||||
|
||||
obj/item/sparkler/attackby(obj/item/W,mob/user, params)
|
||||
if(litzor)
|
||||
return
|
||||
@@ -36,11 +36,7 @@ obj/item/sparkler/attackby(obj/item/W,mob/user, params)
|
||||
icon_state = "sparkler_1"
|
||||
var/b = rand(5,9)
|
||||
for(var/xy, xy<=b, xy++)
|
||||
S = new()
|
||||
S.set_up(1,0,src.loc)
|
||||
if(ismob(src.loc) || isobj(src.loc))
|
||||
S.attach(src.loc)
|
||||
S.start()
|
||||
do_sparks(1, 0, loc)
|
||||
sleep(10)
|
||||
qdel(src)
|
||||
/obj/crate/fireworks
|
||||
|
||||
@@ -136,9 +136,7 @@
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/proc/dissipate()
|
||||
if(!ismob(loc))
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(1, 1, src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/restraints/legcuffs/beartrap/energy/attack_hand(mob/user)
|
||||
|
||||
@@ -215,16 +215,8 @@
|
||||
throw_speed = 3
|
||||
throw_range = 1
|
||||
w_class = WEIGHT_CLASS_BULKY //So you can't hide it in your pocket or some such.
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
sharp = 1
|
||||
|
||||
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
|
||||
/obj/item/melee/energy/blade/New()
|
||||
..()
|
||||
spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
/obj/item/melee/energy/blade/attack_self(mob/user)
|
||||
return
|
||||
|
||||
|
||||
@@ -74,9 +74,7 @@
|
||||
overlays += image('icons/obj/storage.dmi', icon_locking)
|
||||
locked = 0
|
||||
if(istype(weapon, /obj/item/melee/energy/blade))
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, loc)
|
||||
playsound(loc, 'sound/weapons/blade1.ogg', 50, 1)
|
||||
playsound(loc, "sparks", 50, 1)
|
||||
to_chat(user, "You slice through the lock on [src].")
|
||||
|
||||
@@ -614,9 +614,7 @@
|
||||
origin_tech = "combat=4;powerstorage=7"
|
||||
|
||||
/obj/item/twohanded/mjollnir/proc/shock(mob/living/target)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread()
|
||||
s.set_up(5, 1, target.loc)
|
||||
s.start()
|
||||
do_sparks(5, 1, target.loc)
|
||||
target.visible_message("<span class='danger'>[target.name] was shocked by the [name]!</span>", \
|
||||
"<span class='userdanger'>You feel a powerful shock course through your body sending you flying!</span>", \
|
||||
"<span class='italics'>You hear a heavy electrical crack!</span>")
|
||||
@@ -739,9 +737,7 @@
|
||||
Z.take_organ_damage(0, 30)
|
||||
user.visible_message("<span class='danger'>[user] slams the charged axe into [Z.name] with all [user.p_their()] might!</span>")
|
||||
playsound(loc, 'sound/magic/lightningbolt.ogg', 5, 1)
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(1, 1, src)
|
||||
|
||||
if(A && wielded && (istype(A, /obj/structure/window) || istype(A, /obj/structure/grille)))
|
||||
if(istype(A, /obj/structure/window))
|
||||
|
||||
@@ -206,9 +206,7 @@
|
||||
if(!(E.rcell && E.rcell.use(E.chargecost)))
|
||||
to_chat(user, "<span class='notice'>Unable to teleport, insufficient charge.</span>")
|
||||
return
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
do_teleport(src, E.pad, 0)
|
||||
to_chat(user, "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>")
|
||||
return
|
||||
@@ -233,9 +231,7 @@
|
||||
if(!(E.rcell && E.rcell.use(E.chargecost)))
|
||||
to_chat(user, "<span class='notice'>Unable to teleport, insufficient charge.</span>")
|
||||
return
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
do_teleport(src, L)
|
||||
to_chat(user, "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>")
|
||||
return
|
||||
|
||||
@@ -38,15 +38,13 @@
|
||||
if(isliving(usr))
|
||||
var/mob/living/L = usr
|
||||
if(L.electrocute_act(17, src))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return 2
|
||||
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 15, 1, -3)
|
||||
for(var/obj/O in src) //Objects
|
||||
O.forceMove(loc)
|
||||
for(var/mob/M in src) //Mobs
|
||||
O.forceMove(loc)
|
||||
for(var/mob/M in src) //Mobs
|
||||
M.forceMove(loc)
|
||||
icon_state = icon_opened
|
||||
src.opened = 1
|
||||
@@ -115,9 +113,7 @@
|
||||
if(!(E.rcell && E.rcell.use(E.chargecost)))
|
||||
to_chat(user, "<span class='notice'>Unable to teleport, insufficient charge.</span>")
|
||||
return
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
do_teleport(src, E.pad, 0)
|
||||
to_chat(user, "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>")
|
||||
return
|
||||
@@ -139,9 +135,7 @@
|
||||
if(!(E.rcell && E.rcell.use(E.chargecost)))
|
||||
to_chat(user, "<span class='notice'>Unable to teleport, insufficient charge.</span>")
|
||||
return
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
do_teleport(src, L)
|
||||
to_chat(user, "<span class='notice'>Teleport successful. [round(E.rcell.charge/E.chargecost)] charge\s left.</span>")
|
||||
return
|
||||
@@ -217,9 +211,7 @@
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(L.electrocute_act(17, src))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return
|
||||
src.add_fingerprint(user)
|
||||
src.toggle(user)
|
||||
|
||||
@@ -69,9 +69,7 @@
|
||||
A.updateicon()
|
||||
|
||||
flick("echair_shock", src)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(12, 1, src)
|
||||
s.start()
|
||||
do_sparks(12, 1, src)
|
||||
visible_message("<span class='danger'>The electric chair went off!</span>", "<span class='danger'>You hear a deep sharp shock!</span>")
|
||||
if(buckled_mob)
|
||||
buckled_mob.electrocute_act(110, src, 1)
|
||||
|
||||
@@ -254,9 +254,7 @@
|
||||
var/obj/structure/cable/C = T.get_cable_node()
|
||||
if(C)
|
||||
if(electrocute_mob(user, C, src))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -52,9 +52,7 @@
|
||||
if(!borg_to_spawn) //If there's no type at all, let it still be used but don't do anything
|
||||
used = FALSE
|
||||
return
|
||||
var/datum/effect_system/spark_spread/S = new /datum/effect_system/spark_spread
|
||||
S.set_up(4, 1, src)
|
||||
S.start()
|
||||
do_sparks(4, 1, src)
|
||||
var/mob/living/silicon/robot/R
|
||||
switch(borg_to_spawn)
|
||||
if("Medical")
|
||||
|
||||
@@ -155,10 +155,8 @@
|
||||
call(src,triggerproc)(M)
|
||||
|
||||
/obj/effect/meatgrinder/proc/triggerrad1(mob)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
for(var/mob/O in viewers(world.view, src.loc))
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
explosion(mob, 1, 0, 0, 0)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -22,13 +22,9 @@
|
||||
M.Move(dest)
|
||||
|
||||
if(entersparks)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(4, 1, src)
|
||||
s.start()
|
||||
do_sparks(4, 1, src)
|
||||
if(exitsparks)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(4, 1, dest)
|
||||
s.start()
|
||||
do_sparks(4, 1, dest)
|
||||
|
||||
if(entersmoke)
|
||||
var/datum/effect_system/smoke_spread/s = new
|
||||
|
||||
@@ -92,9 +92,7 @@
|
||||
if(H.a_intent == INTENT_HARM)
|
||||
var/mob/living/carbon/C = A
|
||||
if(cell.use(stun_cost))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 0, loc)
|
||||
s.start()
|
||||
do_sparks(5, 0, loc)
|
||||
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
|
||||
H.do_attack_animation(C)
|
||||
visible_message("<span class='danger'>[C] has been touched with [src] by [H]!</span>")
|
||||
|
||||
@@ -170,9 +170,7 @@
|
||||
var/mob/M = can_shock(loc)
|
||||
if(M)
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
do_sparks(3, 1, M)
|
||||
|
||||
M.Weaken(5)
|
||||
M.Stuttering(1)
|
||||
|
||||
@@ -591,9 +591,7 @@
|
||||
|
||||
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
||||
if(current_charges > 0)
|
||||
var/datum/effect_system/spark_spread/s = new
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
|
||||
current_charges--
|
||||
recharge_cooldown = world.time + recharge_delay
|
||||
|
||||
@@ -38,9 +38,7 @@
|
||||
/datum/event/rogue_drone/end()
|
||||
var/num_recovered = 0
|
||||
for(var/mob/living/simple_animal/hostile/retaliate/malf_drone/D in drones_list)
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread()
|
||||
sparks.set_up(3, 0, D.loc)
|
||||
sparks.start()
|
||||
do_sparks(3, 0, D.loc)
|
||||
D.z = level_name_to_num(CENTCOMM)
|
||||
D.has_loot = 0
|
||||
|
||||
|
||||
@@ -492,9 +492,7 @@
|
||||
if(water_level && prob(45)) //If there is water, there is a chance the cat will slip, Syndicat will spark like E-N when this happens
|
||||
M.visible_message("[M.name] slipped and got soaked!", "You slipped and got soaked!")
|
||||
if(istype(M, /mob/living/simple_animal/pet/cat/Syndi))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
else //No water or didn't slip, get that fish!
|
||||
M.visible_message("[M.name] catches and devours a live fish!", "You catch and devour a live fish, yum!")
|
||||
kill_fish() //Kill a random fish
|
||||
|
||||
@@ -392,9 +392,7 @@
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/kitchen_machine/proc/broke()
|
||||
var/datum/effect_system/spark_spread/s = new
|
||||
s.set_up(2, 1, src)
|
||||
s.start()
|
||||
do_sparks(2, 1, src)
|
||||
icon_state = broken_icon // Make it look all busted up and shit
|
||||
visible_message("<span class='alert'>The [src] breaks!</span>") //Let them know they're stupid
|
||||
broken = 2 // Make it broken so it can't be used util fixed
|
||||
|
||||
@@ -352,9 +352,7 @@
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/mineral/ore_redemption/ex_act(severity, target)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
if(severity == 1)
|
||||
if(prob(50))
|
||||
qdel(src)
|
||||
@@ -564,9 +562,7 @@
|
||||
qdel(voucher)
|
||||
|
||||
/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
if(prob(50 / severity) && severity < 3)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -42,9 +42,7 @@
|
||||
hgibs(loc, dna)
|
||||
else
|
||||
new /obj/effect/decal/cleanable/blood/gibs/robot(loc)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
QDEL_IN(animation, 15)
|
||||
QDEL_IN(src, 0)
|
||||
return TRUE
|
||||
|
||||
@@ -107,12 +107,7 @@
|
||||
|
||||
custom_emote(1, "drops what [p_they()] [p_were()] holding, [p_their()] [E.name] malfunctioning!")
|
||||
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
spark_system.start()
|
||||
spawn(10)
|
||||
qdel(spark_system)
|
||||
do_sparks(5, 0, src)
|
||||
|
||||
/mob/living/carbon/human/proc/becomeSlim()
|
||||
to_chat(src, "<span class='notice'>You feel fit again!</span>")
|
||||
|
||||
@@ -709,14 +709,10 @@
|
||||
adjustToxLoss(0.1)
|
||||
else //stuff only for synthetics
|
||||
if(alcohol_strength >= spark_start && prob(25))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
if(alcohol_strength >= collapse_start && prob(10))
|
||||
emote("collapse")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
if(alcohol_strength >= braindamage_start && prob(10))
|
||||
adjustBrainLoss(1)
|
||||
|
||||
|
||||
@@ -286,9 +286,7 @@
|
||||
visible_message("<span class='danger'>The [M.name] has shocked [src]!</span>", \
|
||||
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return 1
|
||||
add_attack_logs(src, M, "Slime'd")
|
||||
return
|
||||
|
||||
@@ -275,6 +275,7 @@ var/list/robot_verbs_default = list(
|
||||
QDEL_NULL(camera)
|
||||
QDEL_NULL(cell)
|
||||
QDEL_NULL(robot_suit)
|
||||
QDEL_NULL(spark_system)
|
||||
return ..()
|
||||
|
||||
/mob/living/silicon/robot/proc/pick_module()
|
||||
|
||||
@@ -373,17 +373,13 @@
|
||||
to_chat(user, "<span class='warning'>The welder must be on for this task!</span>")
|
||||
else
|
||||
if(W.force) //if force is non-zero
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/bot/bullet_act(obj/item/projectile/Proj)
|
||||
if(Proj && (Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
||||
if(prob(75) && Proj.damage > 0)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_animal/bot/emp_act(severity)
|
||||
|
||||
@@ -187,9 +187,7 @@
|
||||
if(prob(50))
|
||||
new /obj/item/robot_parts/l_arm(Tsec)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
..()
|
||||
|
||||
/obj/machinery/bot_core/cleanbot
|
||||
|
||||
@@ -406,9 +406,7 @@
|
||||
if(lasercolor == "r")
|
||||
new /obj/item/clothing/suit/redtag(Tsec)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
new /obj/effect/decal/cleanable/blood/oil(loc)
|
||||
..()
|
||||
|
||||
@@ -407,9 +407,7 @@
|
||||
T.amount = amount
|
||||
amount = 0
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
..()
|
||||
|
||||
/obj/machinery/bot_core/floorbot
|
||||
|
||||
@@ -595,9 +595,7 @@
|
||||
if(emagged && prob(25))
|
||||
playsound(loc, 'sound/voice/minsult.ogg', 50, 0)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
..()
|
||||
|
||||
/mob/living/simple_animal/bot/medbot/proc/declare(crit_patient)
|
||||
|
||||
@@ -847,9 +847,7 @@
|
||||
cell.update_icon()
|
||||
cell = null
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
new /obj/effect/decal/cleanable/blood/oil(loc)
|
||||
..()
|
||||
|
||||
@@ -439,9 +439,7 @@ Auto Patrol: []"},
|
||||
if(prob(50))
|
||||
new /obj/item/robot_parts/l_arm(Tsec)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
new /obj/effect/decal/cleanable/blood/oil(loc)
|
||||
..()
|
||||
|
||||
@@ -165,9 +165,7 @@
|
||||
depotarea.list_remove(src, depotarea.guard_list)
|
||||
walk_to(src,0)
|
||||
visible_message("<span class='userdanger'>[src] blows apart!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
new /obj/effect/decal/cleanable/blood/oil(loc)
|
||||
var/obj/effect/decal/mecha_wreckage/gygax/dark/wreck = new /obj/effect/decal/mecha_wreckage/gygax/dark(loc)
|
||||
wreck.name = "sentry bot wreckage"
|
||||
|
||||
@@ -613,15 +613,11 @@
|
||||
|
||||
//spark for no reason
|
||||
if(prob(5))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
/mob/living/simple_animal/pet/corgi/Ian/borgi/death(gibbed)
|
||||
// Only execute the below if we successfully died
|
||||
. = ..(gibbed)
|
||||
if(!.)
|
||||
return FALSE
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
@@ -52,9 +52,7 @@
|
||||
. = ..(gibbed)
|
||||
if(!.)
|
||||
return FALSE
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
/mob/living/simple_animal/hostile/hivebot/tele//this still needs work
|
||||
name = "Beacon"
|
||||
|
||||
@@ -80,16 +80,12 @@
|
||||
//repair a bit of damage
|
||||
if(prob(1))
|
||||
src.visible_message("<span class='warning'>[bicon(src)] [src] shudders and shakes as some of it's damaged systems come back online.</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
health += rand(25,100)
|
||||
|
||||
//spark for no reason
|
||||
if(prob(5))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
//sometimes our targetting sensors malfunction, and we attack anyone nearby
|
||||
if(prob(disabled ? 0 : 1))
|
||||
@@ -129,9 +125,7 @@
|
||||
src.visible_message("<span class='warning'>[bicon(src)] [src] begins to spark and shake violenty!</span>")
|
||||
else
|
||||
src.visible_message("<span class='warning'>[bicon(src)] [src] sparks and shakes like it's about to explode!</span>")
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
|
||||
if(!exploding && !disabled && prob(explode_chance))
|
||||
exploding = 1
|
||||
@@ -154,9 +148,7 @@
|
||||
/mob/living/simple_animal/hostile/retaliate/malf_drone/Destroy() //Seriously, what the actual hell.
|
||||
//some random debris left behind
|
||||
if(has_loot)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
var/obj/O
|
||||
|
||||
//shards
|
||||
|
||||
@@ -27,16 +27,12 @@
|
||||
if(battery_module && prob(25))
|
||||
qdel(battery_module)
|
||||
computer.visible_message("<span class='notice'>\The [computer]'s battery explodes in rain of sparks.</span>")
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, computer.loc)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, computer.loc)
|
||||
|
||||
if(recharger && prob(50))
|
||||
qdel(recharger)
|
||||
computer.visible_message("<span class='notice'>\The [computer]'s recharger explodes in rain of sparks.</span>")
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, computer.loc)
|
||||
spark_system.start()
|
||||
do_sparks(5, 0, computer.loc)
|
||||
|
||||
|
||||
/datum/computer_file/program/revelation/Topic(href, list/href_list)
|
||||
|
||||
@@ -536,9 +536,7 @@
|
||||
var/turf/T = get_turf(src)
|
||||
var/obj/structure/cable/N = T.get_cable_node()
|
||||
if(prob(50) && electrocute_mob(usr, N, N))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return
|
||||
C.use(10)
|
||||
user.visible_message(\
|
||||
@@ -555,9 +553,7 @@
|
||||
if(do_after(user, 50 * W.toolspeed, target = src))
|
||||
if(terminal && opened && has_electronics!=2)
|
||||
if(prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return
|
||||
new /obj/item/stack/cable_coil(loc,10)
|
||||
to_chat(user, "<span class='notice'>You cut the cables and dismantle the power terminal.</span>")
|
||||
@@ -1076,9 +1072,7 @@
|
||||
smoke.set_up(3, 0, src.loc)
|
||||
smoke.attach(src)
|
||||
smoke.start()
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
for(var/mob/M in viewers(src))
|
||||
M.show_message("<span class='danger'>The [src.name] suddenly lets out a blast of smoke and some sparks!", 3, "<span class='danger'>You hear sizzling electronics.</span>", 2)
|
||||
|
||||
|
||||
@@ -195,9 +195,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
||||
if(!prob(prb))
|
||||
return 0
|
||||
if(electrocute_mob(user, powernet, src, siemens_coeff))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -386,9 +386,7 @@
|
||||
|
||||
to_chat(user, "You stick \the [W] into the light socket!")
|
||||
if(has_power() && (W.flags & CONDUCT))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
if(prob(75))
|
||||
electrocute_mob(user, get_area(src), src, rand(0.7,1.0))
|
||||
|
||||
@@ -540,9 +538,7 @@
|
||||
if(status == LIGHT_OK || status == LIGHT_BURNED)
|
||||
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
|
||||
if(on || overloaded)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
status = LIGHT_BROKEN
|
||||
update()
|
||||
|
||||
|
||||
@@ -99,9 +99,7 @@
|
||||
if(hasShocked)
|
||||
return 0
|
||||
hasShocked = 1
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, AM.loc)
|
||||
s.start()
|
||||
do_sparks(5, 1, AM.loc)
|
||||
var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src)))
|
||||
AM.throw_at(target, 200, 4)
|
||||
spawn(5)
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
var/frequency = 0
|
||||
var/id_tag = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
var/datum/effect_system/spark_spread/sparks
|
||||
|
||||
/obj/machinery/power/emitter/New()
|
||||
..()
|
||||
@@ -32,6 +33,8 @@
|
||||
component_parts += new /obj/item/stock_parts/micro_laser(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator(null)
|
||||
RefreshParts()
|
||||
sparks = new
|
||||
sparks.set_up(5, 1, src)
|
||||
|
||||
/obj/machinery/power/emitter/RefreshParts()
|
||||
var/max_firedelay = 120
|
||||
@@ -124,6 +127,7 @@
|
||||
msg_admin_attack("Emitter deleted at ([x],[y],[z] - [ADMIN_JMP(src)])", ATKLOG_FEW)
|
||||
log_game("Emitter deleted at ([x],[y],[z])")
|
||||
investigate_log("<font color='red'>deleted</font> at ([x],[y],[z])","singulo")
|
||||
QDEL_NULL(sparks)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/emitter/update_icon()
|
||||
@@ -206,9 +210,7 @@
|
||||
A.dir = src.dir
|
||||
playsound(get_turf(src), 'sound/weapons/emitter.ogg', 25, 1)
|
||||
if(prob(35))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
sparks.start()
|
||||
|
||||
switch(dir)
|
||||
if(NORTH)
|
||||
|
||||
@@ -184,9 +184,7 @@
|
||||
|
||||
if(do_after(user, 50 * I.toolspeed, target = src))
|
||||
if(prob(50) && electrocute_mob(usr, terminal.powernet, terminal)) //animate the electrocution if uncautious and unlucky
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return
|
||||
|
||||
//give the wires back and delete the terminal
|
||||
@@ -323,9 +321,7 @@
|
||||
var/turf/T = get_turf(user)
|
||||
var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one
|
||||
if(prob(50) && electrocute_mob(user, N, N)) //animate the electrocution if uncautious and unlucky
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
return
|
||||
|
||||
user.visible_message(\
|
||||
@@ -446,9 +442,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
if(prob(15)) //Power drain
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
if(prob(50))
|
||||
emp_act(1)
|
||||
else
|
||||
|
||||
@@ -96,9 +96,7 @@
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/pellet/weak/on_range()
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(1, 1, src)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/pellet/overload
|
||||
@@ -114,9 +112,7 @@
|
||||
|
||||
/obj/item/projectile/bullet/pellet/overload/on_range()
|
||||
explosion(src, 0, 0, 2)
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(3, 3, src)
|
||||
sparks.start()
|
||||
do_sparks(3, 3, src)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/bullet/midbullet
|
||||
|
||||
@@ -22,9 +22,7 @@
|
||||
/obj/item/projectile/energy/electrode/on_hit(var/atom/target, var/blocked = 0)
|
||||
. = ..()
|
||||
if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks!
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(1, 1, src)
|
||||
else if(iscarbon(target))
|
||||
var/mob/living/carbon/C = target
|
||||
if(HULK in C.mutations)
|
||||
@@ -34,9 +32,7 @@
|
||||
C.do_jitter_animation(jitter)
|
||||
|
||||
/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet
|
||||
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||
sparks.set_up(1, 1, src)
|
||||
sparks.start()
|
||||
do_sparks(1, 1, src)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/energy/declone
|
||||
|
||||
@@ -193,9 +193,7 @@
|
||||
icon_state = "snappop"
|
||||
|
||||
/obj/item/projectile/clown/Bump(atom/A as mob|obj|turf|area)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
do_sparks(3, 1, src)
|
||||
new /obj/effect/decal/cleanable/ash(loc)
|
||||
visible_message("<span class='warning'>The [name] explodes!</span>","<span class='warning'>You hear a snap!</span>")
|
||||
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
||||
|
||||
@@ -157,9 +157,7 @@
|
||||
|
||||
/datum/chemical_reaction/blackpowder_explosion/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
do_sparks(2, 1, location)
|
||||
sleep(rand(20,30))
|
||||
blackpowder_detonate(holder, created_volume)
|
||||
|
||||
@@ -186,9 +184,7 @@ datum/chemical_reaction/flash_powder
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
do_sparks(2, 1, location)
|
||||
for(var/mob/living/carbon/C in viewers(5, location))
|
||||
if(C.flash_eyes())
|
||||
if(get_dist(C, location) < 4)
|
||||
@@ -206,9 +202,7 @@ datum/chemical_reaction/flash_powder
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
do_sparks(2, 1, location)
|
||||
for(var/mob/living/carbon/C in viewers(5, location))
|
||||
if(C.flash_eyes())
|
||||
if(get_dist(C, location) < 4)
|
||||
|
||||
@@ -144,9 +144,7 @@
|
||||
|
||||
/datum/chemical_reaction/teslium/on_reaction(datum/reagents/holder, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(6, 1, location)
|
||||
s.start()
|
||||
do_sparks(6, 1, location)
|
||||
|
||||
/datum/chemical_reaction/mutagen
|
||||
name = "Unstable mutagen"
|
||||
|
||||
@@ -284,9 +284,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.get_int_organ(/obj/item/organ/internal/cell))
|
||||
if(A.emagged || A.stat & BROKEN)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, A)
|
||||
s.start()
|
||||
do_sparks(3, 1, A)
|
||||
to_chat(H, "<span class='warning'>The APC power currents surge erratically, damaging your chassis!</span>")
|
||||
H.adjustFireLoss(10,0)
|
||||
else if(A.cell && A.cell.charge > 0)
|
||||
@@ -326,11 +324,11 @@
|
||||
/obj/item/organ/internal/cyberimp/arm/telebaton
|
||||
name = "telebaton implant"
|
||||
desc = "Telescopic baton implant. Does what it says on the tin" // A better description
|
||||
|
||||
|
||||
contents = newlist(/obj/item/melee/classic_baton)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/arm/advmop
|
||||
name = "advanced mop implant"
|
||||
desc = "Advanced mop implant. Does what it says on the tin" // A better description
|
||||
|
||||
|
||||
contents = newlist(/obj/item/mop/advanced)
|
||||
@@ -729,12 +729,7 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
"<span class='danger'>Your [src.name] explodes!</span>",\
|
||||
"<span class='danger'>You hear an explosion!</span>")
|
||||
explosion(get_turf(owner),-1,-1,2,3)
|
||||
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||
spark_system.set_up(5, 0, victim)
|
||||
spark_system.attach(owner)
|
||||
spark_system.start()
|
||||
spawn(10)
|
||||
qdel(spark_system)
|
||||
do_sparks(5, 0, victim)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/organ/external/proc/disfigure()
|
||||
|
||||
@@ -155,8 +155,6 @@
|
||||
/obj/item/rcs/emag_act(user as mob)
|
||||
if(!emagged)
|
||||
emagged = 1
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
do_sparks(5, 1, src)
|
||||
to_chat(user, "<span class = 'caution'> You emag the RCS. Activate it to toggle between modes.</span>")
|
||||
return
|
||||
|
||||
@@ -145,9 +145,7 @@
|
||||
|
||||
/obj/machinery/computer/telescience/proc/sparks()
|
||||
if(telepad)
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, get_turf(telepad))
|
||||
s.start()
|
||||
do_sparks(5, 1, get_turf(telepad))
|
||||
else
|
||||
return
|
||||
|
||||
@@ -203,9 +201,7 @@
|
||||
// use a lot of power
|
||||
use_power(power * 10)
|
||||
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, get_turf(telepad))
|
||||
s.start()
|
||||
do_sparks(5, 1, get_turf(telepad))
|
||||
|
||||
temp_msg = "Teleport successful.<BR>"
|
||||
if(teles_left < 10)
|
||||
@@ -214,9 +210,7 @@
|
||||
temp_msg += "Data printed below."
|
||||
|
||||
var/sparks = get_turf(target)
|
||||
var/datum/effect_system/spark_spread/y = new /datum/effect_system/spark_spread
|
||||
y.set_up(5, 1, sparks)
|
||||
y.start()
|
||||
do_sparks(5, 1, sparks)
|
||||
|
||||
var/turf/source = target
|
||||
var/turf/dest = get_turf(telepad)
|
||||
|
||||
Reference in New Issue
Block a user