mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Makes effect system code more OOP.
obj/effect/effect is now renamed obj/effect/particle_effect for better usability. datum/effect/system and /datum/effect/effect/system are now both /datum/effect_system. Fixes a bug where wall mounted igniters (and other spark producing objects) didn't produce sparks sometimes. Moved explosion_particles.dm into the effect_system folder, because it has effect_systems code.
This commit is contained in:
@@ -9,8 +9,8 @@
|
|||||||
var/atom/movable/teleatom //atom to teleport
|
var/atom/movable/teleatom //atom to teleport
|
||||||
var/atom/destination //destination to teleport to
|
var/atom/destination //destination to teleport to
|
||||||
var/precision = 0 //teleport precision
|
var/precision = 0 //teleport precision
|
||||||
var/datum/effect/effect/system/effectin //effect to show right before teleportation
|
var/datum/effect_system/effectin //effect to show right before teleportation
|
||||||
var/datum/effect/effect/system/effectout //effect to show right after teleportation
|
var/datum/effect_system/effectout //effect to show right after teleportation
|
||||||
var/soundin //soundfile to play before teleportation
|
var/soundin //soundfile to play before teleportation
|
||||||
var/soundout //soundfile to play after teleportation
|
var/soundout //soundfile to play after teleportation
|
||||||
var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation)
|
var/force_teleport = 1 //if false, teleport will use Move() proc (dense objects will prevent teleportation)
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
//custom effects must be properly set up first for instant-type teleports
|
//custom effects must be properly set up first for instant-type teleports
|
||||||
//optional
|
//optional
|
||||||
/datum/teleport/proc/setEffects(datum/effect/effect/system/aeffectin=null,datum/effect/effect/system/aeffectout=null)
|
/datum/teleport/proc/setEffects(datum/effect_system/aeffectin=null,datum/effect_system/aeffectout=null)
|
||||||
effectin = istype(aeffectin) ? aeffectin : null
|
effectin = istype(aeffectin) ? aeffectin : null
|
||||||
effectout = istype(aeffectout) ? aeffectout : null
|
effectout = istype(aeffectout) ? aeffectout : null
|
||||||
return 1
|
return 1
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
/datum/teleport/proc/teleportChecks()
|
/datum/teleport/proc/teleportChecks()
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/datum/teleport/proc/playSpecials(atom/location,datum/effect/effect/system/effect,sound)
|
/datum/teleport/proc/playSpecials(atom/location,datum/effect_system/effect,sound)
|
||||||
if(location)
|
if(location)
|
||||||
if(effect)
|
if(effect)
|
||||||
spawn(-1)
|
spawn(-1)
|
||||||
@@ -148,9 +148,9 @@
|
|||||||
|
|
||||||
/datum/teleport/instant/science
|
/datum/teleport/instant/science
|
||||||
|
|
||||||
/datum/teleport/instant/science/setEffects(datum/effect/effect/system/aeffectin,datum/effect/effect/system/aeffectout)
|
/datum/teleport/instant/science/setEffects(datum/effect_system/aeffectin,datum/effect_system/aeffectout)
|
||||||
if(aeffectin==null || aeffectout==null)
|
if(aeffectin==null || aeffectout==null)
|
||||||
var/datum/effect/effect/system/spark_spread/aeffect = new
|
var/datum/effect_system/spark_spread/aeffect = new
|
||||||
aeffect.set_up(5, 1, teleatom)
|
aeffect.set_up(5, 1, teleatom)
|
||||||
effectin = effectin || aeffect
|
effectin = effectin || aeffect
|
||||||
effectout = effectout || aeffect
|
effectout = effectout || aeffect
|
||||||
|
|||||||
@@ -207,20 +207,20 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
|
|||||||
if(istype(target,/mob/living) && message)
|
if(istype(target,/mob/living) && message)
|
||||||
target << text("[message]")
|
target << text("[message]")
|
||||||
if(sparks_spread)
|
if(sparks_spread)
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new
|
var/datum/effect_system/spark_spread/sparks = new
|
||||||
sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is
|
sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is
|
||||||
sparks.start()
|
sparks.start()
|
||||||
if(smoke_spread)
|
if(smoke_spread)
|
||||||
if(smoke_spread == 1)
|
if(smoke_spread == 1)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(smoke_amt, location)
|
smoke.set_up(smoke_amt, location)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
else if(smoke_spread == 2)
|
else if(smoke_spread == 2)
|
||||||
var/datum/effect/effect/system/smoke_spread/bad/smoke = new
|
var/datum/effect_system/smoke_spread/bad/smoke = new
|
||||||
smoke.set_up(smoke_amt, location)
|
smoke.set_up(smoke_amt, location)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
else if(smoke_spread == 3)
|
else if(smoke_spread == 3)
|
||||||
var/datum/effect/effect/system/smoke_spread/sleeping/smoke = new
|
var/datum/effect_system/smoke_spread/sleeping/smoke = new
|
||||||
smoke.set_up(smoke_amt, location)
|
smoke.set_up(smoke_amt, location)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc)
|
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/proc/jaunt_steam(mobloc)
|
||||||
var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread()
|
var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread()
|
||||||
steam.set_up(10, 0, mobloc)
|
steam.set_up(10, 0, mobloc)
|
||||||
steam.start()
|
steam.start()
|
||||||
|
|
||||||
|
|||||||
@@ -522,7 +522,7 @@ Congratulations! You are now trained for xenobiology research!"}
|
|||||||
/obj/item/weapon/restraints/handcuffs/energy/used/dropped(mob/user)
|
/obj/item/weapon/restraints/handcuffs/energy/used/dropped(mob/user)
|
||||||
user.visible_message("<span class='danger'>[user]'s [src] break in a discharge of energy!</span>", \
|
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>")
|
"<span class='userdanger'>[user]'s [src] break in a discharge of energy!</span>")
|
||||||
var/datum/effect/effect/system/spark_spread/S = new
|
var/datum/effect_system/spark_spread/S = new
|
||||||
S.set_up(4,0,user.loc)
|
S.set_up(4,0,user.loc)
|
||||||
S.start()
|
S.start()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
/obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target)
|
/obj/machinery/abductor/pad/proc/MobToLoc(place,mob/living/target)
|
||||||
var/obj/effect/teleport_abductor/F = new(place)
|
var/obj/effect/teleport_abductor/F = new(place)
|
||||||
var/datum/effect/effect/system/spark_spread/S = new
|
var/datum/effect_system/spark_spread/S = new
|
||||||
S.set_up(10,0,place)
|
S.set_up(10,0,place)
|
||||||
S.start()
|
S.start()
|
||||||
sleep(80)
|
sleep(80)
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
|
|
||||||
/obj/machinery/abductor/pad/proc/PadToLoc(place)
|
/obj/machinery/abductor/pad/proc/PadToLoc(place)
|
||||||
var/obj/effect/teleport_abductor/F = new(place)
|
var/obj/effect/teleport_abductor/F = new(place)
|
||||||
var/datum/effect/effect/system/spark_spread/S = new
|
var/datum/effect_system/spark_spread/S = new
|
||||||
S.set_up(10,0,place)
|
S.set_up(10,0,place)
|
||||||
S.start()
|
S.start()
|
||||||
sleep(80)
|
sleep(80)
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
H << "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later."
|
H << "Unable to reach your apprentice! You can either attack the spellbook with the contract to refund your points, or wait and try again later."
|
||||||
|
|
||||||
/obj/item/weapon/antag_spawner/contract/spawn_antag(client/C, turf/T, type = "")
|
/obj/item/weapon/antag_spawner/contract/spawn_antag(client/C, turf/T, type = "")
|
||||||
PoolOrNew(/obj/effect/effect/smoke, T)
|
PoolOrNew(/obj/effect/particle_effect/smoke, T)
|
||||||
var/mob/living/carbon/human/M = new/mob/living/carbon/human(T)
|
var/mob/living/carbon/human/M = new/mob/living/carbon/human(T)
|
||||||
C.prefs.copy_to(M)
|
C.prefs.copy_to(M)
|
||||||
M.key = C.key
|
M.key = C.key
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
if(!borg_to_spawn) //If there's no type at all, let it still be used but don't do anything
|
if(!borg_to_spawn) //If there's no type at all, let it still be used but don't do anything
|
||||||
used = 0
|
used = 0
|
||||||
return
|
return
|
||||||
var/datum/effect/effect/system/spark_spread/S = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/S = new /datum/effect_system/spark_spread
|
||||||
S.set_up(4, 1, src)
|
S.set_up(4, 1, src)
|
||||||
S.start()
|
S.start()
|
||||||
var/mob/living/silicon/robot/R
|
var/mob/living/silicon/robot/R
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
/mob/living/simple_animal/hostile/blob/blobspore/death(gibbed)
|
/mob/living/simple_animal/hostile/blob/blobspore/death(gibbed)
|
||||||
..(1)
|
..(1)
|
||||||
// On death, create a small smoke of harmful gas (s-Acid)
|
// On death, create a small smoke of harmful gas (s-Acid)
|
||||||
var/datum/effect/effect/system/smoke_spread/chem/S = new
|
var/datum/effect_system/smoke_spread/chem/S = new
|
||||||
var/turf/location = get_turf(src)
|
var/turf/location = get_turf(src)
|
||||||
|
|
||||||
// Create the reagents to put into the air
|
// Create the reagents to put into the air
|
||||||
|
|||||||
@@ -54,7 +54,7 @@
|
|||||||
iconname += "-[gang.color]"
|
iconname += "-[gang.color]"
|
||||||
SetLuminosity(3)
|
SetLuminosity(3)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
|
|
||||||
health -= damage
|
health -= damage
|
||||||
|
|
||||||
|
|||||||
@@ -400,7 +400,7 @@
|
|||||||
B.reagents.clear_reagents() //Just in case!
|
B.reagents.clear_reagents() //Just in case!
|
||||||
B.icon_state = null //Invisible
|
B.icon_state = null //Invisible
|
||||||
B.reagents.add_reagent("blindness_smoke", 10)
|
B.reagents.add_reagent("blindness_smoke", 10)
|
||||||
var/datum/effect/effect/system/smoke_spread/chem/S = new
|
var/datum/effect_system/smoke_spread/chem/S = new
|
||||||
S.attach(B)
|
S.attach(B)
|
||||||
if(S)
|
if(S)
|
||||||
S.set_up(B.reagents, 4, 0, B.loc)
|
S.set_up(B.reagents, 4, 0, B.loc)
|
||||||
@@ -464,7 +464,7 @@ datum/reagent/shadowling_blindness_smoke //Reagent used for above spell
|
|||||||
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>"
|
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>"
|
||||||
S << 'sound/misc/interference.ogg'
|
S << 'sound/misc/interference.ogg'
|
||||||
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
||||||
var/datum/effect/effect/system/spark_spread/sp = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
|
||||||
sp.set_up(5, 1, S)
|
sp.set_up(5, 1, S)
|
||||||
sp.start()
|
sp.start()
|
||||||
S.Weaken(6)
|
S.Weaken(6)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
B.loc = get_turf(C_target)
|
B.loc = get_turf(C_target)
|
||||||
B.transfer_identity(C_target)
|
B.transfer_identity(C_target)
|
||||||
C_target.internal_organs -= B
|
C_target.internal_organs -= B
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new
|
var/datum/effect_system/spark_spread/sparks = new
|
||||||
sparks.set_up(4, 0, M.loc) //no idea what the 0 is
|
sparks.set_up(4, 0, M.loc) //no idea what the 0 is
|
||||||
sparks.start()
|
sparks.start()
|
||||||
M.gib()
|
M.gib()
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
if(cooldown_on || disabled)
|
if(cooldown_on || disabled)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
PoolOrNew(/obj/effect/effect/foam, loc)
|
PoolOrNew(/obj/effect/particle_effect/foam, loc)
|
||||||
src.uses--
|
src.uses--
|
||||||
cooldown_on = 1
|
cooldown_on = 1
|
||||||
cooldown_time = world.timeofday + 100
|
cooldown_time = world.timeofday + 100
|
||||||
|
|||||||
@@ -220,7 +220,7 @@
|
|||||||
return 0
|
return 0
|
||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0 //you lucked out, no shock for you
|
return 0 //you lucked out, no shock for you
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start() //sparks always.
|
s.start() //sparks always.
|
||||||
if (electrocute_mob(user, get_area(src), src))
|
if (electrocute_mob(user, get_area(src), src))
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
"Construction",
|
"Construction",
|
||||||
"T-Comm",
|
"T-Comm",
|
||||||
"Security",
|
"Security",
|
||||||
"Machinery",
|
"Machinery",
|
||||||
"Medical",
|
"Medical",
|
||||||
"Misc"
|
"Misc"
|
||||||
)
|
)
|
||||||
@@ -361,7 +361,7 @@
|
|||||||
return 0
|
return 0
|
||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0
|
return 0
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if (electrocute_mob(user, get_area(src), src, 0.7))
|
if (electrocute_mob(user, get_area(src), src, 0.7))
|
||||||
@@ -374,7 +374,7 @@
|
|||||||
|
|
||||||
if(hack)
|
if(hack)
|
||||||
for(var/datum/design/D in files.possible_designs)
|
for(var/datum/design/D in files.possible_designs)
|
||||||
if((D.build_type & AUTOLATHE) && ("hacked" in D.category))
|
if((D.build_type & AUTOLATHE) && ("hacked" in D.category))
|
||||||
files.known_designs += D
|
files.known_designs += D
|
||||||
else
|
else
|
||||||
for(var/datum/design/D in files.known_designs)
|
for(var/datum/design/D in files.known_designs)
|
||||||
|
|||||||
@@ -261,7 +261,7 @@
|
|||||||
user << "<span class='warning'>The welder must be on for this task!</span>"
|
user << "<span class='warning'>The welder must be on for this task!</span>"
|
||||||
else
|
else
|
||||||
if(W.force) //if force is non-zero
|
if(W.force) //if force is non-zero
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
switch(W.damtype)
|
switch(W.damtype)
|
||||||
if("fire")
|
if("fire")
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
||||||
health -= Proj.damage
|
health -= Proj.damage
|
||||||
if(prob(75) && Proj.damage > 0)
|
if(prob(75) && Proj.damage > 0)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ text("<A href='?src=\ref[src];power=1'>[on ? "On" : "Off"]</A>"))
|
|||||||
|
|
||||||
if(prob(5)) //Spawns foam!
|
if(prob(5)) //Spawns foam!
|
||||||
visible_message("<span class='danger'>[src] whirs and bubbles violently, before releasing a plume of froth!</span>")
|
visible_message("<span class='danger'>[src] whirs and bubbles violently, before releasing a plume of froth!</span>")
|
||||||
PoolOrNew(/obj/effect/effect/foam, loc)
|
PoolOrNew(/obj/effect/particle_effect/foam, loc)
|
||||||
|
|
||||||
else if (prob(5))
|
else if (prob(5))
|
||||||
audible_message("[src] makes an excited beeping booping sound!")
|
audible_message("[src] makes an excited beeping booping sound!")
|
||||||
@@ -234,7 +234,7 @@ text("<A href='?src=\ref[src];power=1'>[on ? "On" : "Off"]</A>"))
|
|||||||
if (prob(50))
|
if (prob(50))
|
||||||
new /obj/item/robot_parts/l_arm(Tsec)
|
new /obj/item/robot_parts/l_arm(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -436,7 +436,7 @@ Auto Patrol[]"},
|
|||||||
if(lasercolor == "r")
|
if(lasercolor == "r")
|
||||||
new /obj/item/clothing/suit/redtag(Tsec)
|
new /obj/item/clothing/suit/redtag(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ obj/machinery/bot/floorbot/process_scan(scan_target)
|
|||||||
T.amount = amount
|
T.amount = amount
|
||||||
amount = 0
|
amount = 0
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -520,7 +520,7 @@
|
|||||||
if (prob(50))
|
if (prob(50))
|
||||||
new /obj/item/robot_parts/l_arm(Tsec)
|
new /obj/item/robot_parts/l_arm(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -833,7 +833,7 @@ var/global/mulebot_count = 0
|
|||||||
cell.update_icon()
|
cell.update_icon()
|
||||||
cell = null
|
cell = null
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -371,7 +371,7 @@ Auto Patrol: []"},
|
|||||||
if(prob(50))
|
if(prob(50))
|
||||||
new /obj/item/robot_parts/l_arm(Tsec)
|
new /obj/item/robot_parts/l_arm(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -171,7 +171,7 @@
|
|||||||
|
|
||||||
for(var/turf/T in linkedholodeck)
|
for(var/turf/T in linkedholodeck)
|
||||||
if(prob(30))
|
if(prob(30))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, T)
|
s.set_up(2, 1, T)
|
||||||
s.start()
|
s.start()
|
||||||
T.ex_act(3)
|
T.ex_act(3)
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
spawn(20)
|
spawn(20)
|
||||||
if(istype(target,/area/holodeck/source_burntest))
|
if(istype(target,/area/holodeck/source_burntest))
|
||||||
var/turf/T = get_turf(L)
|
var/turf/T = get_turf(L)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, T)
|
s.set_up(2, 1, T)
|
||||||
s.start()
|
s.start()
|
||||||
if(T)
|
if(T)
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
//Server linked to.
|
//Server linked to.
|
||||||
var/obj/machinery/message_server/linkedServer = null
|
var/obj/machinery/message_server/linkedServer = null
|
||||||
//Sparks effect - For emag
|
//Sparks effect - For emag
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||||
//Messages - Saves me time if I want to change something.
|
//Messages - Saves me time if I want to change something.
|
||||||
var/noserver = "<span class='alert'>ALERT: No server detected.</span>"
|
var/noserver = "<span class='alert'>ALERT: No server detected.</span>"
|
||||||
var/incorrectkey = "<span class='warning'>ALERT: Incorrect decryption key!</span>"
|
var/incorrectkey = "<span class='warning'>ALERT: Incorrect decryption key!</span>"
|
||||||
|
|||||||
@@ -167,7 +167,7 @@ obj/structure/barricade/wooden/proc/take_damage(damage, leave_debris=1, message)
|
|||||||
user << "Barrier lock toggled off."
|
user << "Barrier lock toggled off."
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
||||||
@@ -201,7 +201,7 @@ obj/structure/barricade/wooden/proc/take_damage(damage, leave_debris=1, message)
|
|||||||
src.emagged = 1
|
src.emagged = 1
|
||||||
src.req_access = null
|
src.req_access = null
|
||||||
user << "<span class='notice'>You break the ID authentication lock on \the [src].</span>"
|
user << "<span class='notice'>You break the ID authentication lock on \the [src].</span>"
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
||||||
@@ -209,7 +209,7 @@ obj/structure/barricade/wooden/proc/take_damage(damage, leave_debris=1, message)
|
|||||||
else if (src.emagged == 1)
|
else if (src.emagged == 1)
|
||||||
src.emagged = 2
|
src.emagged = 2
|
||||||
user << "<span class='notice'>You short out the anchoring mechanism on \the [src].</span>"
|
user << "<span class='notice'>You short out the anchoring mechanism on \the [src].</span>"
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
visible_message("<span class='danger'>BZZzZZzZZzZT</span>")
|
||||||
@@ -250,7 +250,7 @@ obj/structure/barricade/wooden/proc/take_damage(damage, leave_debris=1, message)
|
|||||||
/* var/obj/item/stack/rods/ =*/
|
/* var/obj/item/stack/rods/ =*/
|
||||||
new /obj/item/stack/rods(Tsec)
|
new /obj/item/stack/rods(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ About the new airlock wires panel:
|
|||||||
return 0 //Already shocked someone recently?
|
return 0 //Already shocked someone recently?
|
||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0 //you lucked out, no shock for you
|
return 0 //you lucked out, no shock for you
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start() //sparks always.
|
s.start() //sparks always.
|
||||||
if(electrocute_mob(user, get_area(src), src))
|
if(electrocute_mob(user, get_area(src), src))
|
||||||
|
|||||||
@@ -158,7 +158,7 @@
|
|||||||
/obj/machinery/door/ex_act(severity, target)
|
/obj/machinery/door/ex_act(severity, target)
|
||||||
if(severity == 3)
|
if(severity == 3)
|
||||||
if(prob(80))
|
if(prob(80))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -98,20 +98,20 @@
|
|||||||
if(prob(80))
|
if(prob(80))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(2)
|
if(2)
|
||||||
if(prob(20))
|
if(prob(20))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else
|
else
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
if(3)
|
if(3)
|
||||||
if(prob(80))
|
if(prob(80))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -54,10 +54,19 @@
|
|||||||
var/disable = 0
|
var/disable = 0
|
||||||
var/last_spark = 0
|
var/last_spark = 0
|
||||||
var/base_state = "migniter"
|
var/base_state = "migniter"
|
||||||
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
anchored = 1
|
anchored = 1
|
||||||
|
|
||||||
/obj/machinery/sparker/New()
|
/obj/machinery/sparker/New()
|
||||||
..()
|
..()
|
||||||
|
spark_system = new /datum/effect_system/spark_spread
|
||||||
|
spark_system.set_up(2, 1, src)
|
||||||
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
/obj/machinery/sparker/Destroy()
|
||||||
|
qdel(spark_system)
|
||||||
|
spark_system = null
|
||||||
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/sparker/power_change()
|
/obj/machinery/sparker/power_change()
|
||||||
if ( powered() && disable == 0 )
|
if ( powered() && disable == 0 )
|
||||||
@@ -86,7 +95,7 @@
|
|||||||
icon_state = "[base_state]-p"
|
icon_state = "[base_state]-p"
|
||||||
|
|
||||||
/obj/machinery/sparker/attack_ai()
|
/obj/machinery/sparker/attack_ai()
|
||||||
if (src.anchored)
|
if (anchored)
|
||||||
return src.ignite()
|
return src.ignite()
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
@@ -100,10 +109,8 @@
|
|||||||
|
|
||||||
|
|
||||||
flick("[base_state]-spark", src)
|
flick("[base_state]-spark", src)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
spark_system.start()
|
||||||
s.set_up(2, 1, src)
|
last_spark = world.time
|
||||||
s.start()
|
|
||||||
src.last_spark = world.time
|
|
||||||
use_power(1000)
|
use_power(1000)
|
||||||
var/turf/location = src.loc
|
var/turf/location = src.loc
|
||||||
if (isturf(location))
|
if (isturf(location))
|
||||||
|
|||||||
@@ -53,13 +53,13 @@
|
|||||||
|
|
||||||
var/faction = "neutral"
|
var/faction = "neutral"
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system //the spark system, used for generating... sparks?
|
var/datum/effect_system/spark_spread/spark_system //the spark system, used for generating... sparks?
|
||||||
|
|
||||||
/obj/machinery/porta_turret/New()
|
/obj/machinery/porta_turret/New()
|
||||||
..()
|
..()
|
||||||
icon_state = "[lasercolor]grey_target_prism"
|
icon_state = "[lasercolor]grey_target_prism"
|
||||||
//Sets up a spark system
|
//Sets up a spark system
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread
|
spark_system = new /datum/effect_system/spark_spread
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
/obj/machinery/computer/slot_machine/emag_act()
|
/obj/machinery/computer/slot_machine/emag_act()
|
||||||
if(!emagged)
|
if(!emagged)
|
||||||
emagged = 1
|
emagged = 1
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(4, 0, src.loc)
|
spark_system.set_up(4, 0, src.loc)
|
||||||
spark_system.start()
|
spark_system.start()
|
||||||
playsound(src.loc, "sparks", 50, 1)
|
playsound(src.loc, "sparks", 50, 1)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
var/wasvalid = 0
|
var/wasvalid = 0
|
||||||
var/lastfired = 0
|
var/lastfired = 0
|
||||||
var/shot_delay = 30 //3 seconds between shots
|
var/shot_delay = 30 //3 seconds between shots
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
use_power = 1
|
use_power = 1
|
||||||
idle_power_usage = 50
|
idle_power_usage = 50
|
||||||
active_power_usage = 300
|
active_power_usage = 300
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/machinery/turret/New()
|
/obj/machinery/turret/New()
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread
|
spark_system = new /datum/effect_system/spark_spread
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
// targets = new
|
// targets = new
|
||||||
|
|||||||
@@ -590,7 +590,7 @@
|
|||||||
return 0
|
return 0
|
||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0
|
return 0
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(electrocute_mob(user, get_area(src), src, 0.7))
|
if(electrocute_mob(user, get_area(src), src, 0.7))
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
var/smoke = 5
|
var/smoke = 5
|
||||||
var/smoke_ready = 1
|
var/smoke_ready = 1
|
||||||
var/smoke_cooldown = 100
|
var/smoke_cooldown = 100
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke_system = new
|
var/datum/effect_system/smoke_spread/smoke_system = new
|
||||||
operation_req_access = list(access_cent_specops)
|
operation_req_access = list(access_cent_specops)
|
||||||
wreckage = /obj/structure/mecha_wreckage/marauder
|
wreckage = /obj/structure/mecha_wreckage/marauder
|
||||||
add_req_access = 0
|
add_req_access = 0
|
||||||
|
|||||||
@@ -149,7 +149,7 @@
|
|||||||
var/list/the_targets = list(T,T1,T2)
|
var/list/the_targets = list(T,T1,T2)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
for(var/a=0, a<5, a++)
|
for(var/a=0, a<5, a++)
|
||||||
var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(chassis))
|
var/obj/effect/particle_effect/water/W = PoolOrNew(/obj/effect/particle_effect/water, get_turf(chassis))
|
||||||
if(!W)
|
if(!W)
|
||||||
return
|
return
|
||||||
var/turf/my_target = pick(the_targets)
|
var/turf/my_target = pick(the_targets)
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
var/maint_access = 0
|
var/maint_access = 0
|
||||||
var/dna_lock//dna-locking the mech
|
var/dna_lock//dna-locking the mech
|
||||||
var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference
|
var/list/proc_res = list() //stores proc owners, like proc_res["functionname"] = owner reference
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new
|
var/datum/effect_system/spark_spread/spark_system = new
|
||||||
var/lights = 0
|
var/lights = 0
|
||||||
var/lights_power = 6
|
var/lights_power = 6
|
||||||
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
|
var/last_user_hud = 1 // used to show/hide the mecha hud while preserving previous preference
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/obj/effect/anomaly/proc/anomalyNeutralize()
|
/obj/effect/anomaly/proc/anomalyNeutralize()
|
||||||
PoolOrNew(/obj/effect/effect/smoke/bad, loc)
|
PoolOrNew(/obj/effect/particle_effect/smoke/bad, loc)
|
||||||
|
|
||||||
for(var/atom/movable/O in src)
|
for(var/atom/movable/O in src)
|
||||||
O.loc = src.loc
|
O.loc = src.loc
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
if (prob(40))
|
if (prob(40))
|
||||||
new /obj/effect/decal/cleanable/oil/streak(src.loc)
|
new /obj/effect/decal/cleanable/oil/streak(src.loc)
|
||||||
else if (prob(10))
|
else if (prob(10))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if (step_to(src, get_step(src, direction), 0))
|
if (step_to(src, get_step(src, direction), 0))
|
||||||
|
|||||||
@@ -6,56 +6,67 @@ would spawn and follow the beaker, even if it is carried or thrown.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect
|
/obj/effect/particle_effect
|
||||||
name = "effect"
|
name = "particle effect"
|
||||||
icon = 'icons/effects/effects.dmi'
|
icon = 'icons/effects/effects.dmi'
|
||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
unacidable = 1//So effect are not targeted by alien acid.
|
unacidable = 1//So effects are not targeted by alien acid.
|
||||||
pass_flags = PASSTABLE | PASSGRILLE
|
pass_flags = PASSTABLE | PASSGRILLE
|
||||||
|
|
||||||
/obj/effect/effect/New()
|
/obj/effect/particle_effect/New()
|
||||||
..()
|
..()
|
||||||
if(ticker)
|
if(ticker)
|
||||||
cameranet.updateVisibility(src)
|
cameranet.updateVisibility(src)
|
||||||
|
|
||||||
/obj/effect/effect/Destroy()
|
/obj/effect/particle_effect/Destroy()
|
||||||
if(ticker)
|
if(ticker)
|
||||||
cameranet.updateVisibility(src)
|
cameranet.updateVisibility(src)
|
||||||
..()
|
..()
|
||||||
return QDEL_HINT_PUTINPOOL
|
return QDEL_HINT_PUTINPOOL
|
||||||
/*
|
|
||||||
/datum/effect/effect/proc/fadeOut(var/atom/A, var/frames = 16)
|
/datum/effect_system
|
||||||
if(A.alpha == 0) //Handle already transparent case
|
|
||||||
return
|
|
||||||
if(frames == 0)
|
|
||||||
frames = 1 //We will just assume that by 0 frames, the coder meant "during one frame".
|
|
||||||
var/step = A.alpha / frames
|
|
||||||
for(var/i = 0, i < frames, i++)
|
|
||||||
A.alpha -= step
|
|
||||||
sleep(world.tick_lag)
|
|
||||||
return
|
|
||||||
*/
|
|
||||||
/datum/effect/effect/system
|
|
||||||
var/number = 3
|
var/number = 3
|
||||||
var/cardinals = 0
|
var/cardinals = 0
|
||||||
var/turf/location
|
var/turf/location
|
||||||
var/atom/holder
|
var/atom/holder
|
||||||
var/setup = 0
|
var/effect_type
|
||||||
|
var/total_effects = 0
|
||||||
|
|
||||||
/datum/effect/effect/system/Destroy()
|
/datum/effect_system/Destroy()
|
||||||
holder = null
|
holder = null
|
||||||
location = null
|
location = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/effect/effect/system/proc/set_up(n = 3, c = 0, turf/loc)
|
/datum/effect_system/proc/set_up(n = 3, c = 0, loca)
|
||||||
if(n > 10)
|
if(n > 10)
|
||||||
n = 10
|
n = 10
|
||||||
number = n
|
number = n
|
||||||
cardinals = c
|
cardinals = c
|
||||||
location = loc
|
if(isturf(loca))
|
||||||
setup = 1
|
location = loca
|
||||||
|
else
|
||||||
|
location = get_turf(loca)
|
||||||
|
|
||||||
/datum/effect/effect/system/proc/attach(atom/atom)
|
/datum/effect_system/proc/attach(atom/atom)
|
||||||
holder = atom
|
holder = atom
|
||||||
|
|
||||||
/datum/effect/effect/system/proc/start()
|
/datum/effect_system/proc/start()
|
||||||
|
for(var/i in 1 to number)
|
||||||
|
if(total_effects > 20)
|
||||||
|
return
|
||||||
|
spawn(0)
|
||||||
|
if(holder)
|
||||||
|
location = get_turf(holder)
|
||||||
|
var/obj/effect/E = PoolOrNew(effect_type, location)
|
||||||
|
total_effects++
|
||||||
|
var/direction
|
||||||
|
if(cardinals)
|
||||||
|
direction = pick(cardinal)
|
||||||
|
else
|
||||||
|
direction = pick(alldirs)
|
||||||
|
var/steps_amt = pick(1,2,3)
|
||||||
|
for(var/j in 1 to steps_amt)
|
||||||
|
sleep(5)
|
||||||
|
step(E,direction)
|
||||||
|
spawn(20)
|
||||||
|
total_effects--
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
// Foam
|
// Foam
|
||||||
// Similar to smoke, but slower and mobs absorb its reagent through their exposed skin.
|
// Similar to smoke, but slower and mobs absorb its reagent through their exposed skin.
|
||||||
|
|
||||||
/obj/effect/effect/foam
|
/obj/effect/particle_effect/foam
|
||||||
name = "foam"
|
name = "foam"
|
||||||
icon_state = "foam"
|
icon_state = "foam"
|
||||||
opacity = 0
|
opacity = 0
|
||||||
@@ -15,29 +15,29 @@
|
|||||||
var/lifetime = 6
|
var/lifetime = 6
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/metal
|
/obj/effect/particle_effect/foam/metal
|
||||||
name = "aluminium foam"
|
name = "aluminium foam"
|
||||||
metal = 1
|
metal = 1
|
||||||
icon_state = "mfoam"
|
icon_state = "mfoam"
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/metal/iron
|
/obj/effect/particle_effect/foam/metal/iron
|
||||||
name = "iron foam"
|
name = "iron foam"
|
||||||
metal = 2
|
metal = 2
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/New(loc)
|
/obj/effect/particle_effect/foam/New(loc)
|
||||||
..(loc)
|
..(loc)
|
||||||
create_reagents(1000) //limited by the size of the reagent holder anyway.
|
create_reagents(1000) //limited by the size of the reagent holder anyway.
|
||||||
SSobj.processing |= src
|
SSobj.processing |= src
|
||||||
playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3)
|
playsound(src, 'sound/effects/bubbles2.ogg', 80, 1, -3)
|
||||||
|
|
||||||
/obj/effect/effect/foam/Destroy()
|
/obj/effect/particle_effect/foam/Destroy()
|
||||||
SSobj.processing.Remove(src)
|
SSobj.processing.Remove(src)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/proc/kill_foam()
|
/obj/effect/particle_effect/foam/proc/kill_foam()
|
||||||
SSobj.processing.Remove(src)
|
SSobj.processing.Remove(src)
|
||||||
if(metal)
|
if(metal)
|
||||||
var/obj/structure/foamedmetal/M = new(src.loc)
|
var/obj/structure/foamedmetal/M = new(src.loc)
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/process()
|
/obj/effect/particle_effect/foam/process()
|
||||||
lifetime--
|
lifetime--
|
||||||
if(lifetime < 1)
|
if(lifetime < 1)
|
||||||
kill_foam()
|
kill_foam()
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
return
|
return
|
||||||
spread_foam()
|
spread_foam()
|
||||||
|
|
||||||
/obj/effect/effect/foam/proc/foam_mob(mob/living/L)
|
/obj/effect/particle_effect/foam/proc/foam_mob(mob/living/L)
|
||||||
if(lifetime<1)
|
if(lifetime<1)
|
||||||
return 0
|
return 0
|
||||||
if(!istype(L))
|
if(!istype(L))
|
||||||
@@ -81,66 +81,66 @@
|
|||||||
lifetime--
|
lifetime--
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/effect/effect/foam/Crossed(atom/movable/AM)
|
/obj/effect/particle_effect/foam/Crossed(atom/movable/AM)
|
||||||
if(istype(AM, /mob/living/carbon))
|
if(istype(AM, /mob/living/carbon))
|
||||||
var/mob/living/carbon/M = AM
|
var/mob/living/carbon/M = AM
|
||||||
M.slip(5, 2, src)
|
M.slip(5, 2, src)
|
||||||
|
|
||||||
/obj/effect/effect/foam/metal/Crossed(atom/movable/AM)
|
/obj/effect/particle_effect/foam/metal/Crossed(atom/movable/AM)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/proc/spread_foam()
|
/obj/effect/particle_effect/foam/proc/spread_foam()
|
||||||
var/turf/t_loc = get_turf(src)
|
var/turf/t_loc = get_turf(src)
|
||||||
for(var/turf/T in t_loc.GetAtmosAdjacentTurfs())
|
for(var/turf/T in t_loc.GetAtmosAdjacentTurfs())
|
||||||
var/obj/effect/effect/foam/foundfoam = locate() in T //Don't spread foam where there's already foam!
|
var/obj/effect/particle_effect/foam/foundfoam = locate() in T //Don't spread foam where there's already foam!
|
||||||
if(foundfoam)
|
if(foundfoam)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for(var/mob/living/L in T)
|
for(var/mob/living/L in T)
|
||||||
foam_mob(L)
|
foam_mob(L)
|
||||||
var/obj/effect/effect/foam/F = PoolOrNew(src.type, T)
|
var/obj/effect/particle_effect/foam/F = PoolOrNew(src.type, T)
|
||||||
F.amount = amount
|
F.amount = amount
|
||||||
reagents.copy_to(F, (reagents.total_volume))
|
reagents.copy_to(F, (reagents.total_volume))
|
||||||
F.color = color
|
F.color = color
|
||||||
F.metal = metal
|
F.metal = metal
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
/obj/effect/particle_effect/foam/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||||
if(prob(max(0, exposed_temperature - 475))) //foam dissolves when heated
|
if(prob(max(0, exposed_temperature - 475))) //foam dissolves when heated
|
||||||
kill_foam()
|
kill_foam()
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/foam/metal/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
/obj/effect/particle_effect/foam/metal/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////
|
///////////////////////////////////////////////
|
||||||
//FOAM EFFECT DATUM
|
//FOAM EFFECT DATUM
|
||||||
/datum/effect/effect/system/foam_spread
|
/datum/effect_system/foam_spread
|
||||||
var/amount = 10 // the size of the foam spread.
|
var/amount = 10 // the size of the foam spread.
|
||||||
var/obj/chemholder
|
var/obj/chemholder
|
||||||
var/obj/effect/effect/foam/foamtype = /obj/effect/effect/foam
|
effect_type = /obj/effect/particle_effect/foam
|
||||||
var/metal = 0
|
var/metal = 0
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/metal
|
/datum/effect_system/foam_spread/metal
|
||||||
foamtype = /obj/effect/effect/foam/metal
|
effect_type = /obj/effect/particle_effect/foam/metal
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/New()
|
/datum/effect_system/foam_spread/New()
|
||||||
..()
|
..()
|
||||||
chemholder = PoolOrNew(/obj)
|
chemholder = PoolOrNew(/obj)
|
||||||
var/datum/reagents/R = new/datum/reagents(1000)
|
var/datum/reagents/R = new/datum/reagents(1000)
|
||||||
chemholder.reagents = R
|
chemholder.reagents = R
|
||||||
R.my_atom = chemholder
|
R.my_atom = chemholder
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/Destroy()
|
/datum/effect_system/foam_spread/Destroy()
|
||||||
qdel(chemholder)
|
qdel(chemholder)
|
||||||
chemholder = null
|
chemholder = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/set_up(amt=5, loca, datum/reagents/carry = null)
|
/datum/effect_system/foam_spread/set_up(amt=5, loca, datum/reagents/carry = null)
|
||||||
if(istype(loca, /turf/))
|
if(istype(loca, /turf/))
|
||||||
location = loca
|
location = loca
|
||||||
else
|
else
|
||||||
@@ -149,16 +149,16 @@
|
|||||||
amount = round(sqrt(amt / 2), 1)
|
amount = round(sqrt(amt / 2), 1)
|
||||||
carry.copy_to(chemholder, 4*carry.total_volume) //The foam holds 4 times the total reagents volume for balance purposes.
|
carry.copy_to(chemholder, 4*carry.total_volume) //The foam holds 4 times the total reagents volume for balance purposes.
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/metal/set_up(amt=5, loca, datum/reagents/carry = null, metaltype)
|
/datum/effect_system/foam_spread/metal/set_up(amt=5, loca, datum/reagents/carry = null, metaltype)
|
||||||
..()
|
..()
|
||||||
metal = metaltype
|
metal = metaltype
|
||||||
|
|
||||||
/datum/effect/effect/system/foam_spread/start()
|
/datum/effect_system/foam_spread/start()
|
||||||
var/obj/effect/effect/foam/foundfoam = locate() in location
|
var/obj/effect/particle_effect/foam/foundfoam = locate() in location
|
||||||
if(foundfoam)//If there was already foam where we start, we add our foaminess to it.
|
if(foundfoam)//If there was already foam where we start, we add our foaminess to it.
|
||||||
foundfoam.amount += amount
|
foundfoam.amount += amount
|
||||||
else
|
else
|
||||||
var/obj/effect/effect/foam/F = PoolOrNew(foamtype, location)
|
var/obj/effect/particle_effect/foam/F = PoolOrNew(effect_type, location)
|
||||||
var/foamcolor = mix_color_from_reagents(chemholder.reagents.reagent_list)
|
var/foamcolor = mix_color_from_reagents(chemholder.reagents.reagent_list)
|
||||||
chemholder.reagents.copy_to(F, chemholder.reagents.total_volume/amount)
|
chemholder.reagents.copy_to(F, chemholder.reagents.total_volume/amount)
|
||||||
F.color = foamcolor
|
F.color = foamcolor
|
||||||
|
|||||||
@@ -1,83 +1,114 @@
|
|||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
//////// Attach an Ion trail to any object, that spawns when it moves (like for the jetpack)
|
//////// Attach a trail to any object, that spawns when it moves (like for the jetpack)
|
||||||
/// just pass in the object to attach it to in set_up
|
/// just pass in the object to attach it to in set_up
|
||||||
/// Then do start() to start it and stop() to stop it, obviously
|
/// Then do start() to start it and stop() to stop it, obviously
|
||||||
/// and don't call start() in a loop that will be repeated otherwise it'll get spammed!
|
/// and don't call start() in a loop that will be repeated otherwise it'll get spammed!
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/ion_trails
|
/datum/effect_system/trail_follow
|
||||||
name = "ion trails"
|
|
||||||
icon_state = "ion_trails"
|
|
||||||
anchored = 1
|
|
||||||
|
|
||||||
/datum/effect/effect/system/ion_trail_follow
|
|
||||||
var/turf/oldposition
|
var/turf/oldposition
|
||||||
var/processing = 1
|
var/processing = 1
|
||||||
var/on = 1
|
var/on = 1
|
||||||
|
|
||||||
/datum/effect/effect/system/ion_trail_follow/Destroy()
|
/datum/effect_system/trail_follow/set_up(atom/atom)
|
||||||
|
attach(atom)
|
||||||
|
oldposition = get_turf(atom)
|
||||||
|
|
||||||
|
/datum/effect_system/trail_follow/Destroy()
|
||||||
oldposition = null
|
oldposition = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/effect/effect/system/ion_trail_follow/set_up(atom/atom)
|
/datum/effect_system/trail_follow/proc/stop()
|
||||||
attach(atom)
|
processing = 0
|
||||||
|
on = 0
|
||||||
|
oldposition = null
|
||||||
|
|
||||||
|
/datum/effect_system/trail_follow/steam
|
||||||
|
effect_type = /obj/effect/particle_effect/steam
|
||||||
|
|
||||||
/datum/effect/effect/system/ion_trail_follow/start() //Whoever is responsible for this abomination of code should become an hero
|
/datum/effect_system/trail_follow/steam/start()
|
||||||
if(!src.on)
|
if(!on)
|
||||||
src.on = 1
|
on = 1
|
||||||
src.processing = 1
|
processing = 1
|
||||||
if(src.processing)
|
if(!oldposition)
|
||||||
src.processing = 0
|
oldposition = get_turf(holder)
|
||||||
var/turf/T = get_turf(src.holder)
|
if(processing)
|
||||||
if(T != src.oldposition)
|
processing = 0
|
||||||
|
if(number < 3)
|
||||||
|
var/obj/effect/particle_effect/steam/I = PoolOrNew(/obj/effect/particle_effect/steam, oldposition)
|
||||||
|
number++
|
||||||
|
I.dir = holder.dir
|
||||||
|
oldposition = get_turf(holder)
|
||||||
|
spawn(10)
|
||||||
|
qdel(I)
|
||||||
|
number--
|
||||||
|
spawn(2)
|
||||||
|
if(on)
|
||||||
|
processing = 1
|
||||||
|
start()
|
||||||
|
|
||||||
|
/obj/effect/particle_effect/ion_trails
|
||||||
|
name = "ion trails"
|
||||||
|
icon_state = "ion_trails"
|
||||||
|
anchored = 1
|
||||||
|
|
||||||
|
/datum/effect_system/trail_follow/ion
|
||||||
|
effect_type = /obj/effect/particle_effect/ion_trails
|
||||||
|
|
||||||
|
/datum/effect_system/trail_follow/ion/start() //Whoever is responsible for this abomination of code should become an hero
|
||||||
|
if(!on)
|
||||||
|
on = 1
|
||||||
|
processing = 1
|
||||||
|
if(!oldposition)
|
||||||
|
oldposition = get_turf(holder)
|
||||||
|
if(processing)
|
||||||
|
processing = 0
|
||||||
|
var/turf/T = get_turf(holder)
|
||||||
|
if(T != oldposition)
|
||||||
if(!has_gravity(T))
|
if(!has_gravity(T))
|
||||||
var/obj/effect/effect/ion_trails/I = PoolOrNew(/obj/effect/effect/ion_trails, oldposition)
|
var/obj/effect/particle_effect/ion_trails/I = PoolOrNew(effect_type, oldposition)
|
||||||
I.dir = src.holder.dir
|
I.dir = holder.dir
|
||||||
flick("ion_fade", I)
|
flick("ion_fade", I)
|
||||||
I.icon_state = ""
|
I.icon_state = ""
|
||||||
spawn( 20 )
|
spawn(20)
|
||||||
qdel(I)
|
qdel(I)
|
||||||
src.oldposition = T
|
oldposition = T
|
||||||
spawn(2)
|
spawn(2)
|
||||||
if(src.on)
|
if(on)
|
||||||
src.processing = 1
|
processing = 1
|
||||||
src.start()
|
start()
|
||||||
|
|
||||||
/datum/effect/effect/system/ion_trail_follow/proc/stop()
|
|
||||||
src.processing = 0
|
|
||||||
src.on = 0
|
|
||||||
oldposition = null
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//Reagent-based explosion effect
|
//Reagent-based explosion effect
|
||||||
/datum/effect/effect/system/reagents_explosion
|
|
||||||
|
/datum/effect_system/reagents_explosion
|
||||||
var/amount // TNT equivalent
|
var/amount // TNT equivalent
|
||||||
var/flashing = 0 // does explosion creates flash effect?
|
var/flashing = 0 // does explosion creates flash effect?
|
||||||
var/flashing_factor = 0 // factor of how powerful the flash effect relatively to the explosion
|
var/flashing_factor = 0 // factor of how powerful the flash effect relatively to the explosion
|
||||||
var/explosion_message = 1 //whether we show a message to mobs.
|
var/explosion_message = 1 //whether we show a message to mobs.
|
||||||
|
|
||||||
/datum/effect/effect/system/reagents_explosion/set_up (amt, loc, flash = 0, flash_fact = 0, message = 1)
|
/datum/effect_system/reagents_explosion/set_up(amt, loca, flash = 0, flash_fact = 0, message = 1)
|
||||||
amount = amt
|
amount = amt
|
||||||
explosion_message = message
|
explosion_message = message
|
||||||
if(istype(loc, /turf/))
|
if(isturf(loca))
|
||||||
location = loc
|
location = loca
|
||||||
else
|
else
|
||||||
location = get_turf(loc)
|
location = get_turf(loca)
|
||||||
|
|
||||||
flashing = flash
|
flashing = flash
|
||||||
flashing_factor = flash_fact
|
flashing_factor = flash_fact
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/effect/effect/system/reagents_explosion/start()
|
/datum/effect_system/reagents_explosion/start()
|
||||||
if(explosion_message)
|
if(explosion_message)
|
||||||
location.visible_message("<span class='danger'>The solution violently explodes!</span>", \
|
location.visible_message("<span class='danger'>The solution violently explodes!</span>", \
|
||||||
"<span class='italics'>You hear an explosion!</span>")
|
"<span class='italics'>You hear an explosion!</span>")
|
||||||
if (amount <= 2)
|
if (amount <= 2)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, location)
|
s.set_up(2, 1, location)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
//// SMOKE SYSTEMS
|
//// SMOKE SYSTEMS
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke
|
/obj/effect/particle_effect/smoke
|
||||||
name = "smoke"
|
name = "smoke"
|
||||||
icon = 'icons/effects/96x96.dmi'
|
icon = 'icons/effects/96x96.dmi'
|
||||||
icon_state = "smoke"
|
icon_state = "smoke"
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
var/opaque = 1 //whether the smoke can block the view when in enough amount
|
var/opaque = 1 //whether the smoke can block the view when in enough amount
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/proc/fade_out(frames = 16)
|
/obj/effect/particle_effect/smoke/proc/fade_out(frames = 16)
|
||||||
if(alpha == 0) //Handle already transparent case
|
if(alpha == 0) //Handle already transparent case
|
||||||
return
|
return
|
||||||
if(frames == 0)
|
if(frames == 0)
|
||||||
@@ -27,24 +27,24 @@
|
|||||||
alpha -= step
|
alpha -= step
|
||||||
sleep(world.tick_lag)
|
sleep(world.tick_lag)
|
||||||
|
|
||||||
/obj/effect/effect/smoke/New()
|
/obj/effect/particle_effect/smoke/New()
|
||||||
..()
|
..()
|
||||||
create_reagents(500)
|
create_reagents(500)
|
||||||
SSobj.processing |= src
|
SSobj.processing |= src
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/Destroy()
|
/obj/effect/particle_effect/smoke/Destroy()
|
||||||
SSobj.processing.Remove(src)
|
SSobj.processing.Remove(src)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/effect/effect/smoke/proc/kill_smoke()
|
/obj/effect/particle_effect/smoke/proc/kill_smoke()
|
||||||
SSobj.processing.Remove(src)
|
SSobj.processing.Remove(src)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
fade_out()
|
fade_out()
|
||||||
spawn(10)
|
spawn(10)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/effect/smoke/process()
|
/obj/effect/particle_effect/smoke/process()
|
||||||
lifetime--
|
lifetime--
|
||||||
if(lifetime < 1)
|
if(lifetime < 1)
|
||||||
kill_smoke()
|
kill_smoke()
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
smoke_mob(L)
|
smoke_mob(L)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/effect/effect/smoke/proc/smoke_mob(mob/living/carbon/C)
|
/obj/effect/particle_effect/smoke/proc/smoke_mob(mob/living/carbon/C)
|
||||||
if(!istype(C))
|
if(!istype(C))
|
||||||
return 0
|
return 0
|
||||||
if(lifetime<1)
|
if(lifetime<1)
|
||||||
@@ -68,16 +68,16 @@
|
|||||||
C.smoke_delay = 0
|
C.smoke_delay = 0
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/effect/effect/smoke/proc/spread_smoke()
|
/obj/effect/particle_effect/smoke/proc/spread_smoke()
|
||||||
var/turf/t_loc = get_turf(src)
|
var/turf/t_loc = get_turf(src)
|
||||||
var/list/newsmokes = list()
|
var/list/newsmokes = list()
|
||||||
for(var/turf/T in t_loc.GetAtmosAdjacentTurfs())
|
for(var/turf/T in t_loc.GetAtmosAdjacentTurfs())
|
||||||
var/obj/effect/effect/smoke/foundsmoke = locate() in T //Don't spread smoke where there's already smoke!
|
var/obj/effect/particle_effect/smoke/foundsmoke = locate() in T //Don't spread smoke where there's already smoke!
|
||||||
if(foundsmoke)
|
if(foundsmoke)
|
||||||
continue
|
continue
|
||||||
for(var/mob/living/L in T)
|
for(var/mob/living/L in T)
|
||||||
smoke_mob(L)
|
smoke_mob(L)
|
||||||
var/obj/effect/effect/smoke/S = new type(T)
|
var/obj/effect/particle_effect/smoke/S = new type(T)
|
||||||
reagents.copy_to(S, reagents.total_volume)
|
reagents.copy_to(S, reagents.total_volume)
|
||||||
S.dir = pick(cardinal)
|
S.dir = pick(cardinal)
|
||||||
S.amount = amount-1
|
S.amount = amount-1
|
||||||
@@ -90,25 +90,25 @@
|
|||||||
|
|
||||||
if(newsmokes.len)
|
if(newsmokes.len)
|
||||||
spawn(1) //the smoke spreads rapidly but not instantly
|
spawn(1) //the smoke spreads rapidly but not instantly
|
||||||
for(var/obj/effect/effect/smoke/SM in newsmokes)
|
for(var/obj/effect/particle_effect/smoke/SM in newsmokes)
|
||||||
SM.spread_smoke()
|
SM.spread_smoke()
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread
|
/datum/effect_system/smoke_spread
|
||||||
var/amount = 10
|
var/amount = 10
|
||||||
var/smoke_type = /obj/effect/effect/smoke
|
effect_type = /obj/effect/particle_effect/smoke
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/set_up(radius = 5, loca)
|
/datum/effect_system/smoke_spread/set_up(radius = 5, loca)
|
||||||
if(isturf(loca))
|
if(isturf(loca))
|
||||||
location = loca
|
location = loca
|
||||||
else
|
else
|
||||||
location = get_turf(loca)
|
location = get_turf(loca)
|
||||||
amount = radius
|
amount = radius
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/start()
|
/datum/effect_system/smoke_spread/start()
|
||||||
if(holder)
|
if(holder)
|
||||||
location = get_turf(holder)
|
location = get_turf(holder)
|
||||||
var/obj/effect/effect/smoke/S = new smoke_type(location)
|
var/obj/effect/particle_effect/smoke/S = new effect_type(location)
|
||||||
S.amount = amount
|
S.amount = amount
|
||||||
if(S.amount)
|
if(S.amount)
|
||||||
S.spread_smoke()
|
S.spread_smoke()
|
||||||
@@ -118,17 +118,17 @@
|
|||||||
// Bad smoke
|
// Bad smoke
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad
|
/obj/effect/particle_effect/smoke/bad
|
||||||
lifetime = 8
|
lifetime = 8
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad/smoke_mob(mob/living/carbon/M)
|
/obj/effect/particle_effect/smoke/bad/smoke_mob(mob/living/carbon/M)
|
||||||
if(..())
|
if(..())
|
||||||
M.drop_item()
|
M.drop_item()
|
||||||
M.adjustOxyLoss(1)
|
M.adjustOxyLoss(1)
|
||||||
M.emote("cough")
|
M.emote("cough")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/effect/effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0)
|
/obj/effect/particle_effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0)
|
||||||
if(height==0) return 1
|
if(height==0) return 1
|
||||||
if(istype(mover, /obj/item/projectile/beam))
|
if(istype(mover, /obj/item/projectile/beam))
|
||||||
var/obj/item/projectile/beam/B = mover
|
var/obj/item/projectile/beam/B = mover
|
||||||
@@ -137,23 +137,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/bad
|
/datum/effect_system/smoke_spread/bad
|
||||||
smoke_type = /obj/effect/effect/smoke/bad
|
effect_type = /obj/effect/particle_effect/smoke/bad
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// Nanofrost smoke
|
// Nanofrost smoke
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke/freezing
|
/obj/effect/particle_effect/smoke/freezing
|
||||||
name = "nanofrost smoke"
|
name = "nanofrost smoke"
|
||||||
color = "#B2FFFF"
|
color = "#B2FFFF"
|
||||||
opaque = 0
|
opaque = 0
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/freezing
|
/datum/effect_system/smoke_spread/freezing
|
||||||
smoke_type = /obj/effect/effect/smoke/freezing
|
effect_type = /obj/effect/particle_effect/smoke/freezing
|
||||||
var/blast = 0
|
var/blast = 0
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/freezing/proc/Chilled(atom/A)
|
/datum/effect_system/smoke_spread/freezing/proc/Chilled(atom/A)
|
||||||
if(istype(A, /turf/simulated))
|
if(istype(A, /turf/simulated))
|
||||||
var/turf/simulated/T = A
|
var/turf/simulated/T = A
|
||||||
if(T.air)
|
if(T.air)
|
||||||
@@ -177,11 +177,11 @@
|
|||||||
Item.extinguish()
|
Item.extinguish()
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/freezing/set_up(radius = 5, loca, blasting = 0)
|
/datum/effect_system/smoke_spread/freezing/set_up(radius = 5, loca, blasting = 0)
|
||||||
..()
|
..()
|
||||||
blast = blasting
|
blast = blasting
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/freezing/start()
|
/datum/effect_system/smoke_spread/freezing/start()
|
||||||
if(blast)
|
if(blast)
|
||||||
for(var/turf/T in trange(2, location))
|
for(var/turf/T in trange(2, location))
|
||||||
Chilled(T)
|
Chilled(T)
|
||||||
@@ -193,29 +193,29 @@
|
|||||||
// Sleep smoke
|
// Sleep smoke
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke/sleeping
|
/obj/effect/particle_effect/smoke/sleeping
|
||||||
color = "#9C3636"
|
color = "#9C3636"
|
||||||
lifetime = 10
|
lifetime = 10
|
||||||
|
|
||||||
/obj/effect/effect/smoke/sleeping/smoke_mob(mob/living/carbon/M)
|
/obj/effect/particle_effect/smoke/sleeping/smoke_mob(mob/living/carbon/M)
|
||||||
if(..())
|
if(..())
|
||||||
M.drop_item()
|
M.drop_item()
|
||||||
M.sleeping = max(M.sleeping,10)
|
M.sleeping = max(M.sleeping,10)
|
||||||
M.emote("cough")
|
M.emote("cough")
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/sleeping
|
/datum/effect_system/smoke_spread/sleeping
|
||||||
smoke_type = /obj/effect/effect/smoke/sleeping
|
effect_type = /obj/effect/particle_effect/smoke/sleeping
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
// Chem smoke
|
// Chem smoke
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/smoke/chem
|
/obj/effect/particle_effect/smoke/chem
|
||||||
lifetime = 10
|
lifetime = 10
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/smoke/chem/process()
|
/obj/effect/particle_effect/smoke/chem/process()
|
||||||
if(..())
|
if(..())
|
||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
var/fraction = 1/initial(lifetime)
|
var/fraction = 1/initial(lifetime)
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
reagents.reaction(T, TOUCH, fraction)
|
reagents.reaction(T, TOUCH, fraction)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/effect/effect/smoke/chem/smoke_mob(mob/living/carbon/M)
|
/obj/effect/particle_effect/smoke/chem/smoke_mob(mob/living/carbon/M)
|
||||||
if(lifetime<1)
|
if(lifetime<1)
|
||||||
return 0
|
return 0
|
||||||
if(!istype(M))
|
if(!istype(M))
|
||||||
@@ -242,23 +242,23 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem
|
/datum/effect_system/smoke_spread/chem
|
||||||
var/obj/chemholder
|
var/obj/chemholder
|
||||||
smoke_type = /obj/effect/effect/smoke/chem
|
effect_type = /obj/effect/particle_effect/smoke/chem
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem/New()
|
/datum/effect_system/smoke_spread/chem/New()
|
||||||
..()
|
..()
|
||||||
chemholder = PoolOrNew(/obj)
|
chemholder = PoolOrNew(/obj)
|
||||||
var/datum/reagents/R = new/datum/reagents(500)
|
var/datum/reagents/R = new/datum/reagents(500)
|
||||||
chemholder.reagents = R
|
chemholder.reagents = R
|
||||||
R.my_atom = chemholder
|
R.my_atom = chemholder
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem/Destroy()
|
/datum/effect_system/smoke_spread/chem/Destroy()
|
||||||
qdel(chemholder)
|
qdel(chemholder)
|
||||||
chemholder = null
|
chemholder = null
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem/set_up(datum/reagents/carry = null, radius = 1, loca, silent = 0)
|
/datum/effect_system/smoke_spread/chem/set_up(datum/reagents/carry = null, radius = 1, loca, silent = 0)
|
||||||
if(istype(loca, /turf/))
|
if(istype(loca, /turf/))
|
||||||
location = loca
|
location = loca
|
||||||
else
|
else
|
||||||
@@ -289,11 +289,11 @@
|
|||||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
|
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
|
||||||
|
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem/start()
|
/datum/effect_system/smoke_spread/chem/start()
|
||||||
var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
|
var/color = mix_color_from_reagents(chemholder.reagents.reagent_list)
|
||||||
if(holder)
|
if(holder)
|
||||||
location = get_turf(holder)
|
location = get_turf(holder)
|
||||||
var/obj/effect/effect/smoke/chem/S = new smoke_type(location)
|
var/obj/effect/particle_effect/smoke/chem/S = new effect_type(location)
|
||||||
|
|
||||||
if(chemholder.reagents.total_volume > 1) // can't split 1 very well
|
if(chemholder.reagents.total_volume > 1) // can't split 1 very well
|
||||||
chemholder.reagents.copy_to(S, chemholder.reagents.total_volume)
|
chemholder.reagents.copy_to(S, chemholder.reagents.total_volume)
|
||||||
|
|||||||
@@ -5,110 +5,42 @@
|
|||||||
// will always spawn at the items location.
|
// will always spawn at the items location.
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
|
||||||
/obj/effect/effect/sparks
|
/obj/effect/particle_effect/sparks
|
||||||
name = "sparks"
|
name = "sparks"
|
||||||
icon_state = "sparks"
|
icon_state = "sparks"
|
||||||
var/amount = 6
|
|
||||||
anchored = 1
|
anchored = 1
|
||||||
mouse_opacity = 0
|
|
||||||
|
|
||||||
/obj/effect/effect/sparks/New()
|
/obj/effect/particle_effect/sparks/New()
|
||||||
..()
|
..()
|
||||||
flick("sparks", src) // replay the animation
|
flick("sparks", src) // replay the animation
|
||||||
playsound(src.loc, "sparks", 100, 1)
|
playsound(src.loc, "sparks", 100, 1)
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (istype(T, /turf))
|
if (istype(T, /turf))
|
||||||
T.hotspot_expose(1000,100)
|
T.hotspot_expose(1000,100)
|
||||||
spawn (100)
|
spawn(20)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/effect/sparks/Destroy()
|
/obj/effect/particle_effect/sparks/Destroy()
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (istype(T, /turf))
|
if (istype(T, /turf))
|
||||||
T.hotspot_expose(1000,100)
|
T.hotspot_expose(1000,100)
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/effect/effect/sparks/Move()
|
/obj/effect/particle_effect/sparks/Move()
|
||||||
..()
|
..()
|
||||||
var/turf/T = src.loc
|
var/turf/T = src.loc
|
||||||
if (istype(T, /turf))
|
if(isturf(T))
|
||||||
T.hotspot_expose(1000,100)
|
T.hotspot_expose(1000,100)
|
||||||
return
|
|
||||||
|
|
||||||
/datum/effect/effect/system/spark_spread
|
/datum/effect_system/spark_spread
|
||||||
var/total_sparks = 0 // To stop it being spammed and lagging!
|
effect_type = /obj/effect/particle_effect/sparks
|
||||||
|
|
||||||
/datum/effect/effect/system/spark_spread/set_up(n = 3, c = 0, loca)
|
|
||||||
if(n > 10)
|
|
||||||
n = 10
|
|
||||||
number = n
|
|
||||||
cardinals = c
|
|
||||||
if(istype(loca, /turf/))
|
|
||||||
location = loca
|
|
||||||
else
|
|
||||||
location = get_turf(loca)
|
|
||||||
|
|
||||||
/datum/effect/effect/system/spark_spread/start()
|
|
||||||
var/i = 0
|
|
||||||
for(i=0, i<src.number, i++)
|
|
||||||
if(src.total_sparks > 20)
|
|
||||||
return
|
|
||||||
spawn(0)
|
|
||||||
if(holder)
|
|
||||||
src.location = get_turf(holder)
|
|
||||||
var/obj/effect/effect/sparks/sparks = PoolOrNew(/obj/effect/effect/sparks, location)
|
|
||||||
src.total_sparks++
|
|
||||||
var/direction
|
|
||||||
if(src.cardinals)
|
|
||||||
direction = pick(cardinal)
|
|
||||||
else
|
|
||||||
direction = pick(alldirs)
|
|
||||||
for(i=0, i<pick(1,2,3), i++)
|
|
||||||
sleep(5)
|
|
||||||
step(sparks,direction)
|
|
||||||
spawn(20)
|
|
||||||
qdel(sparks)
|
|
||||||
src.total_sparks--
|
|
||||||
|
|
||||||
|
|
||||||
|
//electricity
|
||||||
|
|
||||||
|
/obj/effect/particle_effect/sparks/electricity
|
||||||
|
|
||||||
/obj/effect/effect/sparks/electricity
|
|
||||||
name = "lightning"
|
name = "lightning"
|
||||||
icon_state = "electricity"
|
icon_state = "electricity"
|
||||||
|
|
||||||
/datum/effect/effect/system/lightning_spread
|
/datum/effect_system/lightning_spread
|
||||||
var/total_sparks = 0 // To stop it being spammed and lagging!
|
effect_type = /obj/effect/particle_effect/sparks/electricity
|
||||||
|
|
||||||
/datum/effect/effect/system/lightning_spread/set_up(n = 3, c = 0, loca)
|
|
||||||
if(n > 10)
|
|
||||||
n = 10
|
|
||||||
number = n
|
|
||||||
cardinals = c
|
|
||||||
if(istype(loca, /turf/))
|
|
||||||
location = loca
|
|
||||||
else
|
|
||||||
location = get_turf(loca)
|
|
||||||
|
|
||||||
/datum/effect/effect/system/lightning_spread/start()
|
|
||||||
var/i = 0
|
|
||||||
for(i=0, i<src.number, i++)
|
|
||||||
if(src.total_sparks > 20)
|
|
||||||
return
|
|
||||||
spawn(0)
|
|
||||||
if(holder)
|
|
||||||
src.location = get_turf(holder)
|
|
||||||
var/obj/effect/effect/sparks/electricity/sparks = PoolOrNew(/obj/effect/effect/sparks/electricity, location)
|
|
||||||
src.total_sparks++
|
|
||||||
var/direction
|
|
||||||
if(src.cardinals)
|
|
||||||
direction = pick(cardinal)
|
|
||||||
else
|
|
||||||
direction = pick(alldirs)
|
|
||||||
for(i=0, i<pick(1,2,3), i++)
|
|
||||||
sleep(5)
|
|
||||||
step(sparks,direction)
|
|
||||||
spawn(20)
|
|
||||||
qdel(sparks)
|
|
||||||
src.total_sparks--
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
//WATER EFFECTS
|
//WATER EFFECTS
|
||||||
|
|
||||||
/obj/effect/effect/water
|
/obj/effect/particle_effect/water
|
||||||
name = "water"
|
name = "water"
|
||||||
icon = 'icons/effects/effects.dmi'
|
icon = 'icons/effects/effects.dmi'
|
||||||
icon_state = "extinguish"
|
icon_state = "extinguish"
|
||||||
@@ -8,12 +8,12 @@
|
|||||||
mouse_opacity = 0
|
mouse_opacity = 0
|
||||||
|
|
||||||
|
|
||||||
/obj/effect/effect/water/New()
|
/obj/effect/particle_effect/water/New()
|
||||||
..()
|
..()
|
||||||
spawn( 70 )
|
spawn( 70 )
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/effect/water/Move(turf/newloc)
|
/obj/effect/particle_effect/water/Move(turf/newloc)
|
||||||
if (--src.life < 1)
|
if (--src.life < 1)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return 0
|
return 0
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
return 0
|
return 0
|
||||||
.=..()
|
.=..()
|
||||||
|
|
||||||
/obj/effect/effect/water/Bump(atom/A)
|
/obj/effect/particle_effect/water/Bump(atom/A)
|
||||||
if(reagents)
|
if(reagents)
|
||||||
reagents.reaction(A)
|
reagents.reaction(A)
|
||||||
return ..()
|
return ..()
|
||||||
@@ -36,85 +36,22 @@
|
|||||||
// will always spawn at the items location, even if it's moved.
|
// will always spawn at the items location, even if it's moved.
|
||||||
|
|
||||||
/* Example:
|
/* Example:
|
||||||
var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread() -- creates new system
|
var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread() -- creates new system
|
||||||
steam.set_up(5, 0, mob.loc) -- sets up variables
|
steam.set_up(5, 0, mob.loc) -- sets up variables
|
||||||
OPTIONAL: steam.attach(mob)
|
OPTIONAL: steam.attach(mob)
|
||||||
steam.start() -- spawns the effect
|
steam.start() -- spawns the effect
|
||||||
*/
|
*/
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
/obj/effect/effect/steam
|
/obj/effect/particle_effect/steam
|
||||||
name = "steam"
|
name = "steam"
|
||||||
icon = 'icons/effects/effects.dmi'
|
icon = 'icons/effects/effects.dmi'
|
||||||
icon_state = "extinguish"
|
icon_state = "extinguish"
|
||||||
density = 0
|
density = 0
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_spread
|
/obj/effect/particle_effect/steam/New()
|
||||||
|
..()
|
||||||
|
spawn(20)
|
||||||
|
qdel(src)
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_spread/set_up(n = 3, c = 0, turf/loc)
|
/datum/effect_system/steam_spread
|
||||||
if(n > 10)
|
effect_type = /obj/effect/particle_effect/steam
|
||||||
n = 10
|
|
||||||
number = n
|
|
||||||
cardinals = c
|
|
||||||
location = loc
|
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_spread/start()
|
|
||||||
var/i = 0
|
|
||||||
for(i=0, i<src.number, i++)
|
|
||||||
spawn(0)
|
|
||||||
if(holder)
|
|
||||||
src.location = get_turf(holder)
|
|
||||||
var/obj/effect/effect/steam/steam = PoolOrNew(/obj/effect/effect/steam, location)
|
|
||||||
var/direction
|
|
||||||
if(src.cardinals)
|
|
||||||
direction = pick(cardinal)
|
|
||||||
else
|
|
||||||
direction = pick(alldirs)
|
|
||||||
for(i=0, i<pick(1,2,3), i++)
|
|
||||||
sleep(5)
|
|
||||||
step(steam,direction)
|
|
||||||
spawn(20)
|
|
||||||
qdel(steam)
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
|
||||||
//////// Attach a steam trail to an object (eg. a reacting beaker) that will follow it
|
|
||||||
// even if it's carried of thrown.
|
|
||||||
/////////////////////////////////////////////
|
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_trail_follow
|
|
||||||
var/turf/oldposition
|
|
||||||
var/processing = 1
|
|
||||||
var/on = 1
|
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_trail_follow/set_up(atom/atom)
|
|
||||||
attach(atom)
|
|
||||||
oldposition = get_turf(atom)
|
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_trail_follow/start()
|
|
||||||
if(!src.on)
|
|
||||||
src.on = 1
|
|
||||||
src.processing = 1
|
|
||||||
if(src.processing)
|
|
||||||
src.processing = 0
|
|
||||||
spawn(0)
|
|
||||||
if(src.number < 3)
|
|
||||||
var/obj/effect/effect/steam/I = PoolOrNew(/obj/effect/effect/steam, oldposition)
|
|
||||||
src.number++
|
|
||||||
src.oldposition = get_turf(holder)
|
|
||||||
I.dir = src.holder.dir
|
|
||||||
spawn(10)
|
|
||||||
qdel(I)
|
|
||||||
src.number--
|
|
||||||
spawn(2)
|
|
||||||
if(src.on)
|
|
||||||
src.processing = 1
|
|
||||||
src.start()
|
|
||||||
else
|
|
||||||
spawn(2)
|
|
||||||
if(src.on)
|
|
||||||
src.processing = 1
|
|
||||||
src.start()
|
|
||||||
|
|
||||||
/datum/effect/effect/system/steam_trail_follow/proc/stop()
|
|
||||||
src.processing = 0
|
|
||||||
src.on = 0
|
|
||||||
|
|||||||
@@ -1,70 +0,0 @@
|
|||||||
/obj/effect/expl_particles
|
|
||||||
name = "fire"
|
|
||||||
icon = 'icons/effects/effects.dmi'
|
|
||||||
icon_state = "explosion_particle"
|
|
||||||
opacity = 1
|
|
||||||
anchored = 1
|
|
||||||
mouse_opacity = 0
|
|
||||||
|
|
||||||
/obj/effect/expl_particles/New()
|
|
||||||
..()
|
|
||||||
spawn (15)
|
|
||||||
qdel(src)
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/effect/expl_particles/Move()
|
|
||||||
..()
|
|
||||||
return
|
|
||||||
|
|
||||||
/datum/effect/system/expl_particles
|
|
||||||
var/number = 10
|
|
||||||
var/turf/location
|
|
||||||
var/total_particles = 0
|
|
||||||
|
|
||||||
/datum/effect/system/expl_particles/proc/set_up(n = 10, loca)
|
|
||||||
number = n
|
|
||||||
if(istype(loca, /turf/)) location = loca
|
|
||||||
else location = get_turf(loca)
|
|
||||||
|
|
||||||
/datum/effect/system/expl_particles/proc/start()
|
|
||||||
var/i = 0
|
|
||||||
for(i=0, i<src.number, i++)
|
|
||||||
spawn(0)
|
|
||||||
var/obj/effect/expl_particles/expl = new /obj/effect/expl_particles(src.location)
|
|
||||||
var/direct = pick(alldirs)
|
|
||||||
for(i=0, i<pick(1;25,2;50,3,4;200), i++)
|
|
||||||
sleep(1)
|
|
||||||
step(expl,direct)
|
|
||||||
|
|
||||||
/obj/effect/explosion
|
|
||||||
name = "fire"
|
|
||||||
icon = 'icons/effects/96x96.dmi'
|
|
||||||
icon_state = "explosion"
|
|
||||||
opacity = 1
|
|
||||||
anchored = 1
|
|
||||||
mouse_opacity = 0
|
|
||||||
pixel_x = -32
|
|
||||||
pixel_y = -32
|
|
||||||
|
|
||||||
/obj/effect/explosion/New()
|
|
||||||
..()
|
|
||||||
spawn (10)
|
|
||||||
qdel(src)
|
|
||||||
return
|
|
||||||
|
|
||||||
/datum/effect/system/explosion
|
|
||||||
var/turf/location
|
|
||||||
|
|
||||||
/datum/effect/system/explosion/proc/set_up(loca)
|
|
||||||
if(istype(loca, /turf/)) location = loca
|
|
||||||
else location = get_turf(loca)
|
|
||||||
|
|
||||||
/datum/effect/system/explosion/proc/start()
|
|
||||||
new/obj/effect/explosion( location )
|
|
||||||
var/datum/effect/system/expl_particles/P = new/datum/effect/system/expl_particles()
|
|
||||||
P.set_up(10,location)
|
|
||||||
P.start()
|
|
||||||
spawn(5)
|
|
||||||
var/datum/effect/effect/system/smoke_spread/S = new
|
|
||||||
S.set_up(2,location)
|
|
||||||
S.start()
|
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
var/obj/effect/decal/cleanable/blood/gibs/gib = null
|
||||||
|
|
||||||
if(sparks)
|
if(sparks)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 1, location)
|
s.set_up(2, 1, location)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
if(triggered)
|
if(triggered)
|
||||||
return
|
return
|
||||||
visible_message("<span class='danger'>[victim] sets off \icon[src] [src]!</span>")
|
visible_message("<span class='danger'>[victim] sets off \icon[src] [src]!</span>")
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
mineEffect(victim)
|
mineEffect(victim)
|
||||||
|
|||||||
@@ -1,3 +1,6 @@
|
|||||||
|
|
||||||
|
/obj/effect
|
||||||
|
|
||||||
/obj/effect/portal
|
/obj/effect/portal
|
||||||
name = "portal"
|
name = "portal"
|
||||||
desc = "Looks unstable. Best to test it with the clown."
|
desc = "Looks unstable. Best to test it with the clown."
|
||||||
|
|||||||
@@ -144,20 +144,20 @@
|
|||||||
M.Move(dest)
|
M.Move(dest)
|
||||||
|
|
||||||
if(entersparks)
|
if(entersparks)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new
|
var/datum/effect_system/spark_spread/s = new
|
||||||
s.set_up(4, 1, src)
|
s.set_up(4, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(exitsparks)
|
if(exitsparks)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new
|
var/datum/effect_system/spark_spread/s = new
|
||||||
s.set_up(4, 1, dest)
|
s.set_up(4, 1, dest)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
if(entersmoke)
|
if(entersmoke)
|
||||||
var/datum/effect/effect/system/smoke_spread/s = new
|
var/datum/effect_system/smoke_spread/s = new
|
||||||
s.set_up(4, 1, src, 0)
|
s.set_up(4, 1, src, 0)
|
||||||
s.start()
|
s.start()
|
||||||
if(exitsmoke)
|
if(exitsmoke)
|
||||||
var/datum/effect/effect/system/smoke_spread/s = new
|
var/datum/effect_system/smoke_spread/s = new
|
||||||
s.set_up(4, 1, dest, 0)
|
s.set_up(4, 1, dest, 0)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -74,7 +74,7 @@
|
|||||||
SSmachine.postpone(postponeCycles)
|
SSmachine.postpone(postponeCycles)
|
||||||
|
|
||||||
if(heavy_impact_range > 1)
|
if(heavy_impact_range > 1)
|
||||||
var/datum/effect/system/explosion/E = new/datum/effect/system/explosion()
|
var/datum/effect_system/explosion/E = new/datum/effect_system/explosion()
|
||||||
E.set_up(epicenter)
|
E.set_up(epicenter)
|
||||||
E.start()
|
E.start()
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
|
|
||||||
/obj/item/device/chameleon/proc/disrupt(delete_dummy = 1)
|
/obj/item/device/chameleon/proc/disrupt(delete_dummy = 1)
|
||||||
if(active_dummy)
|
if(active_dummy)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
spark_system.start()
|
spark_system.start()
|
||||||
|
|||||||
@@ -111,7 +111,7 @@
|
|||||||
step(M, pick(cardinal))
|
step(M, pick(cardinal))
|
||||||
|
|
||||||
M << "<span class='danger'>You feel a sharp shock!</span>"
|
M << "<span class='danger'>You feel a sharp shock!</span>"
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, M)
|
s.set_up(3, 1, M)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -516,7 +516,7 @@
|
|||||||
w_class = 1
|
w_class = 1
|
||||||
|
|
||||||
/obj/item/toy/snappop/proc/pop_burst()
|
/obj/item/toy/snappop/proc/pop_burst()
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
new /obj/effect/decal/cleanable/ash(loc)
|
new /obj/effect/decal/cleanable/ash(loc)
|
||||||
@@ -539,7 +539,7 @@
|
|||||||
if(M.m_intent == "run")
|
if(M.m_intent == "run")
|
||||||
M << "<span class='danger'>You step on the snap pop!</span>"
|
M << "<span class='danger'>You step on the snap pop!</span>"
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(2, 0, src)
|
s.set_up(2, 0, src)
|
||||||
s.start()
|
s.start()
|
||||||
new /obj/effect/decal/cleanable/ash(src.loc)
|
new /obj/effect/decal/cleanable/ash(src.loc)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ RCD
|
|||||||
materials = list(MAT_METAL=100000)
|
materials = list(MAT_METAL=100000)
|
||||||
origin_tech = "engineering=4;materials=2"
|
origin_tech = "engineering=4;materials=2"
|
||||||
req_access_txt = "11"
|
req_access_txt = "11"
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
var/matter = 0
|
var/matter = 0
|
||||||
var/max_matter = 160
|
var/max_matter = 160
|
||||||
var/working = 0
|
var/working = 0
|
||||||
@@ -229,8 +229,9 @@ RCD
|
|||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/rcd/New()
|
/obj/item/weapon/rcd/New()
|
||||||
|
..()
|
||||||
desc = "An RCD. It currently holds [matter]/[max_matter] matter-units."
|
desc = "An RCD. It currently holds [matter]/[max_matter] matter-units."
|
||||||
src.spark_system = new /datum/effect/effect/system/spark_spread
|
src.spark_system = new /datum/effect_system/spark_spread
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
rcd_list += src
|
rcd_list += src
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ var/global/list/RPD_recipes=list(
|
|||||||
w_class = 3
|
w_class = 3
|
||||||
materials = list(MAT_METAL=75000, MAT_GLASS=37500)
|
materials = list(MAT_METAL=75000, MAT_GLASS=37500)
|
||||||
origin_tech = "engineering=4;materials=2"
|
origin_tech = "engineering=4;materials=2"
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
var/working = 0
|
var/working = 0
|
||||||
var/p_type = 0
|
var/p_type = 0
|
||||||
var/p_conntype = 0
|
var/p_conntype = 0
|
||||||
@@ -158,7 +158,7 @@ var/global/list/RPD_recipes=list(
|
|||||||
|
|
||||||
/obj/item/weapon/pipe_dispenser/New()
|
/obj/item/weapon/pipe_dispenser/New()
|
||||||
. = ..()
|
. = ..()
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread
|
spark_system = new /datum/effect_system/spark_spread
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -174,7 +174,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
damtype = "fire"
|
damtype = "fire"
|
||||||
force = 4
|
force = 4
|
||||||
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
|
if(reagents.get_reagent_amount("plasma")) // the plasma explodes when exposed to fire
|
||||||
var/datum/effect/effect/system/reagents_explosion/e = new()
|
var/datum/effect_system/reagents_explosion/e = new()
|
||||||
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
|
e.set_up(round(reagents.get_reagent_amount("plasma") / 2.5, 1), get_turf(src), 0, 0)
|
||||||
e.start()
|
e.start()
|
||||||
if(ismob(loc))
|
if(ismob(loc))
|
||||||
@@ -183,7 +183,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently
|
if(reagents.get_reagent_amount("welding_fuel")) // the fuel explodes, too, but much less violently
|
||||||
var/datum/effect/effect/system/reagents_explosion/e = new()
|
var/datum/effect_system/reagents_explosion/e = new()
|
||||||
e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0)
|
e.set_up(round(reagents.get_reagent_amount("welding_fuel") / 5, 1), get_turf(src), 0, 0)
|
||||||
e.start()
|
e.start()
|
||||||
if(ismob(loc))
|
if(ismob(loc))
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
/obj/item/weapon/soap/suicide_act(mob/user)
|
/obj/item/weapon/soap/suicide_act(mob/user)
|
||||||
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!")
|
user.say(";FFFFFFFFFFFFFFFFUUUUUUUDGE!!")
|
||||||
user.visible_message("<span class='suicide'>[user] lifts the [src.name] to their mouth and gnaws on it furiously, producing a thick froth! They'll never get that BB gun now!")
|
user.visible_message("<span class='suicide'>[user] lifts the [src.name] to their mouth and gnaws on it furiously, producing a thick froth! They'll never get that BB gun now!")
|
||||||
PoolOrNew(/obj/effect/effect/foam, loc)
|
PoolOrNew(/obj/effect/particle_effect/foam, loc)
|
||||||
return (TOXLOSS)
|
return (TOXLOSS)
|
||||||
|
|
||||||
/obj/item/weapon/soap/Crossed(AM as mob|obj)
|
/obj/item/weapon/soap/Crossed(AM as mob|obj)
|
||||||
|
|||||||
@@ -131,7 +131,7 @@
|
|||||||
|
|
||||||
for(var/a=0, a<5, a++)
|
for(var/a=0, a<5, a++)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
var/obj/effect/effect/water/W = PoolOrNew( /obj/effect/effect/water, get_turf(src) )
|
var/obj/effect/particle_effect/water/W = PoolOrNew( /obj/effect/particle_effect/water, get_turf(src) )
|
||||||
var/turf/my_target = pick(the_targets)
|
var/turf/my_target = pick(the_targets)
|
||||||
if(precision)
|
if(precision)
|
||||||
the_targets -= my_target
|
the_targets -= my_target
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
mix_reagents()
|
mix_reagents()
|
||||||
|
|
||||||
if(reagents.total_volume) //The possible reactions didnt use up all reagents, so we spread it around.
|
if(reagents.total_volume) //The possible reactions didnt use up all reagents, so we spread it around.
|
||||||
var/datum/effect/effect/system/steam_spread/steam = new /datum/effect/effect/system/steam_spread()
|
var/datum/effect_system/steam_spread/steam = new /datum/effect_system/steam_spread()
|
||||||
steam.set_up(10, 0, get_turf(src))
|
steam.set_up(10, 0, get_turf(src))
|
||||||
steam.attach(src)
|
steam.attach(src)
|
||||||
steam.start()
|
steam.start()
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
det_time = 20
|
det_time = 20
|
||||||
item_state = "flashbang"
|
item_state = "flashbang"
|
||||||
slot_flags = SLOT_BELT
|
slot_flags = SLOT_BELT
|
||||||
var/datum/effect/effect/system/smoke_spread/bad/smoke
|
var/datum/effect_system/smoke_spread/bad/smoke
|
||||||
|
|
||||||
/obj/item/weapon/grenade/smokebomb/New()
|
/obj/item/weapon/grenade/smokebomb/New()
|
||||||
..()
|
..()
|
||||||
src.smoke = new /datum/effect/effect/system/smoke_spread/bad
|
src.smoke = new /datum/effect_system/smoke_spread/bad
|
||||||
src.smoke.attach(src)
|
src.smoke.attach(src)
|
||||||
|
|
||||||
/obj/item/weapon/grenade/smokebomb/Destroy()
|
/obj/item/weapon/grenade/smokebomb/Destroy()
|
||||||
|
|||||||
@@ -246,7 +246,7 @@
|
|||||||
..()
|
..()
|
||||||
spawn(100)
|
spawn(100)
|
||||||
if(!istype(loc, /mob))
|
if(!istype(loc, /mob))
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
sparks.set_up(1, 1, src)
|
sparks.set_up(1, 1, src)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -205,11 +205,11 @@
|
|||||||
throw_range = 1
|
throw_range = 1
|
||||||
w_class = 4//So you can't hide it in your pocket or some such.
|
w_class = 4//So you can't hide it in your pocket or some such.
|
||||||
flags = NOSHIELD
|
flags = NOSHIELD
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
|
|
||||||
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
|
//Most of the other special functions are handled in their own files. aka special snowflake code so kewl
|
||||||
/obj/item/weapon/melee/energy/blade/New()
|
/obj/item/weapon/melee/energy/blade/New()
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
if(!((user == loc || (in_range(src, user) && istype(src.loc, /turf)))))
|
if(!((user == loc || (in_range(src, user) && istype(src.loc, /turf)))))
|
||||||
return
|
return
|
||||||
|
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(2, user.loc)
|
smoke.set_up(2, user.loc)
|
||||||
smoke.attach(user)
|
smoke.attach(user)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
origin_tech = "combat=5;powerstorage=5"
|
origin_tech = "combat=5;powerstorage=5"
|
||||||
|
|
||||||
/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target)
|
/obj/item/weapon/twohanded/mjollnir/proc/shock(mob/living/target)
|
||||||
var/datum/effect/effect/system/lightning_spread/s = new /datum/effect/effect/system/lightning_spread
|
var/datum/effect_system/lightning_spread/s = new /datum/effect_system/lightning_spread
|
||||||
s.set_up(5, 1, target.loc)
|
s.set_up(5, 1, target.loc)
|
||||||
s.start()
|
s.start()
|
||||||
target.take_organ_damage(0,30)
|
target.take_organ_damage(0,30)
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
item_state = "jetpack"
|
item_state = "jetpack"
|
||||||
distribute_pressure = ONE_ATMOSPHERE * O2STANDARD
|
distribute_pressure = ONE_ATMOSPHERE * O2STANDARD
|
||||||
action_button_name = "Toggle Jetpack"
|
action_button_name = "Toggle Jetpack"
|
||||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail
|
var/datum/effect_system/trail_follow/ion/ion_trail
|
||||||
var/on = 0
|
var/on = 0
|
||||||
var/stabilization_on = 0
|
var/stabilization_on = 0
|
||||||
var/volume_rate = 500 //Needed for borg jetpack transfer
|
var/volume_rate = 500 //Needed for borg jetpack transfer
|
||||||
|
|
||||||
/obj/item/weapon/tank/jetpack/New()
|
/obj/item/weapon/tank/jetpack/New()
|
||||||
..()
|
..()
|
||||||
ion_trail = new /datum/effect/effect/system/ion_trail_follow()
|
ion_trail = new /datum/effect_system/trail_follow/ion()
|
||||||
ion_trail.set_up(src)
|
ion_trail.set_up(src)
|
||||||
|
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/tank/jetpack/carbondioxide/New()
|
/obj/item/weapon/tank/jetpack/carbondioxide/New()
|
||||||
..()
|
..()
|
||||||
ion_trail = new /datum/effect/effect/system/ion_trail_follow()
|
ion_trail = new /datum/effect_system/trail_follow/ion()
|
||||||
ion_trail.set_up(src)
|
ion_trail.set_up(src)
|
||||||
air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||||
|
|
||||||
|
|||||||
@@ -293,7 +293,7 @@
|
|||||||
if(!Adj|| !istype(target, /turf))
|
if(!Adj|| !istype(target, /turf))
|
||||||
return
|
return
|
||||||
if(metal_synthesis_cooldown < 5)
|
if(metal_synthesis_cooldown < 5)
|
||||||
var/obj/effect/effect/foam/metal/F = PoolOrNew(/obj/effect/effect/foam/metal, get_turf(target))
|
var/obj/effect/particle_effect/foam/metal/F = PoolOrNew(/obj/effect/particle_effect/foam/metal, get_turf(target))
|
||||||
F.amount = 0
|
F.amount = 0
|
||||||
metal_synthesis_cooldown++
|
metal_synthesis_cooldown++
|
||||||
spawn(100)
|
spawn(100)
|
||||||
@@ -311,7 +311,7 @@
|
|||||||
pass_flags = PASSTABLE
|
pass_flags = PASSTABLE
|
||||||
|
|
||||||
/obj/effect/nanofrost_container/proc/Smoke()
|
/obj/effect/nanofrost_container/proc/Smoke()
|
||||||
var/datum/effect/effect/system/smoke_spread/freezing/S = new
|
var/datum/effect_system/smoke_spread/freezing/S = new
|
||||||
S.set_up(2, src.loc, blasting=1)
|
S.set_up(2, src.loc, blasting=1)
|
||||||
S.start()
|
S.start()
|
||||||
var/obj/effect/decal/cleanable/flour/F = new /obj/effect/decal/cleanable/flour(src.loc)
|
var/obj/effect/decal/cleanable/flour/F = new /obj/effect/decal/cleanable/flour(src.loc)
|
||||||
|
|||||||
@@ -215,7 +215,7 @@
|
|||||||
if(isliving(user))
|
if(isliving(user))
|
||||||
var/mob/living/L = user
|
var/mob/living/L = user
|
||||||
if(L.electrocute_act(17, src))
|
if(L.electrocute_act(17, src))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
A.updateicon()
|
A.updateicon()
|
||||||
|
|
||||||
flick("echair1", src)
|
flick("echair1", src)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(12, 1, src)
|
s.set_up(12, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(buckled_mob)
|
if(buckled_mob)
|
||||||
|
|||||||
@@ -237,7 +237,7 @@
|
|||||||
var/obj/structure/cable/C = T.get_cable_node()
|
var/obj/structure/cable/C = T.get_cable_node()
|
||||||
if(C)
|
if(C)
|
||||||
if(electrocute_mob(user, C, src))
|
if(electrocute_mob(user, C, src))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
/obj/structure/hivebot_beacon/New()
|
/obj/structure/hivebot_beacon/New()
|
||||||
..()
|
..()
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(2, loc)
|
smoke.set_up(2, loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
visible_message("<span class='boldannounce'>The [src] warps in!</span>")
|
visible_message("<span class='boldannounce'>The [src] warps in!</span>")
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
icon_state = "igniter"
|
icon_state = "igniter"
|
||||||
materials = list(MAT_METAL=500, MAT_GLASS=50)
|
materials = list(MAT_METAL=500, MAT_GLASS=50)
|
||||||
origin_tech = "magnets=1"
|
origin_tech = "magnets=1"
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
heat = 1000
|
heat = 1000
|
||||||
|
|
||||||
/obj/item/device/assembly/igniter/New()
|
/obj/item/device/assembly/igniter/New()
|
||||||
|
|||||||
@@ -142,7 +142,7 @@
|
|||||||
O << "<font color='red'>[M] triggered the \icon[src] [src]</font>"
|
O << "<font color='red'>[M] triggered the \icon[src] [src]</font>"
|
||||||
triggered = 1
|
triggered = 1
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
for(var/mob/O in viewers(world.view, src.loc))
|
for(var/mob/O in viewers(world.view, src.loc))
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
extinguishes_left--
|
extinguishes_left--
|
||||||
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
|
||||||
H.ExtinguishMob()
|
H.ExtinguishMob()
|
||||||
PoolOrNew(/obj/effect/effect/water, get_turf(H))
|
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
|
||||||
|
|
||||||
|
|
||||||
//I just want the light feature of the hardsuit helmet
|
//I just want the light feature of the hardsuit helmet
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
R.my_atom = vent
|
R.my_atom = vent
|
||||||
R.add_reagent(pick(gunk), 50)
|
R.add_reagent(pick(gunk), 50)
|
||||||
|
|
||||||
var/datum/effect/effect/system/smoke_spread/chem/smoke = new
|
var/datum/effect_system/smoke_spread/chem/smoke = new
|
||||||
smoke.set_up(R, 1, vent, silent = 1)
|
smoke.set_up(R, 1, vent, silent = 1)
|
||||||
playsound(vent.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
|
playsound(vent.loc, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|||||||
@@ -51,6 +51,6 @@
|
|||||||
I.name = "cursed " + I.name
|
I.name = "cursed " + I.name
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(0, H.loc)
|
smoke.set_up(0, H.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
if(!candidates) return //Sad Trombone
|
if(!candidates) return //Sad Trombone
|
||||||
var/client/C = pick(candidates)
|
var/client/C = pick(candidates)
|
||||||
|
|
||||||
PoolOrNew(/obj/effect/effect/smoke, W.loc)
|
PoolOrNew(/obj/effect/particle_effect/smoke, W.loc)
|
||||||
|
|
||||||
var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc)
|
var/mob/living/carbon/human/I = new /mob/living/carbon/human(W.loc)
|
||||||
W.dna.transfer_identity(I, transfer_SE=1)
|
W.dna.transfer_identity(I, transfer_SE=1)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
moblocs.len -= 1
|
moblocs.len -= 1
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(0, H.loc)
|
smoke.set_up(0, H.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
mobnames.len -= 1
|
mobnames.len -= 1
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(0, H.loc)
|
smoke.set_up(0, H.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|
||||||
@@ -92,6 +92,6 @@
|
|||||||
mobs -= mobs[mobs.len]
|
mobs -= mobs[mobs.len]
|
||||||
|
|
||||||
for(var/mob/living/carbon/human/H in living_mob_list)
|
for(var/mob/living/carbon/human/H in living_mob_list)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(0, H.loc)
|
smoke.set_up(0, H.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|||||||
@@ -308,7 +308,7 @@
|
|||||||
qdel(S)
|
qdel(S)
|
||||||
|
|
||||||
/obj/machinery/microwave/proc/broke()
|
/obj/machinery/microwave/proc/broke()
|
||||||
var/datum/effect/effect/system/spark_spread/s = new
|
var/datum/effect_system/spark_spread/s = new
|
||||||
s.set_up(2, 1, src)
|
s.set_up(2, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
icon_state = "mwb" // Make it look all busted up and shit
|
icon_state = "mwb" // Make it look all busted up and shit
|
||||||
|
|||||||
@@ -224,7 +224,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/mineral/ore_redemption/ex_act(severity, target)
|
/obj/machinery/mineral/ore_redemption/ex_act(severity, target)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(severity == 1)
|
if(severity == 1)
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
qdel(voucher)
|
qdel(voucher)
|
||||||
|
|
||||||
/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
|
/obj/machinery/mineral/equipment_vendor/ex_act(severity, target)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(prob(50 / severity) && severity < 3)
|
if(prob(50 / severity) && severity < 3)
|
||||||
|
|||||||
@@ -178,7 +178,7 @@
|
|||||||
used = TRUE
|
used = TRUE
|
||||||
sleep(50)
|
sleep(50)
|
||||||
playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1)
|
playsound(get_turf(src), 'sound/effects/phasein.ogg', 100, 1)
|
||||||
PoolOrNew(/obj/effect/effect/smoke, src.loc)
|
PoolOrNew(/obj/effect/particle_effect/smoke, src.loc)
|
||||||
load()
|
load()
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
visible_message("<span class='danger'>The [M.name] has shocked [src]!</span>", \
|
visible_message("<span class='danger'>The [M.name] has shocked [src]!</span>", \
|
||||||
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
|
"<span class='userdanger'>The [M.name] has shocked [src]!</span>")
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
var/power = M.powerlevel + rand(0,3)
|
var/power = M.powerlevel + rand(0,3)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ var/list/ai_list = list()
|
|||||||
var/obj/item/device/multitool/aiMulti = null
|
var/obj/item/device/multitool/aiMulti = null
|
||||||
var/obj/machinery/bot/Bot
|
var/obj/machinery/bot/Bot
|
||||||
var/tracking = 0 //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed.
|
var/tracking = 0 //this is 1 if the AI is currently tracking somebody, but the track has not yet been completed.
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
||||||
|
|
||||||
//MALFUNCTION
|
//MALFUNCTION
|
||||||
var/datum/module_picker/malf_picker
|
var/datum/module_picker/malf_picker
|
||||||
@@ -85,7 +85,7 @@ var/list/ai_list = list()
|
|||||||
|
|
||||||
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
|
holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1"))
|
||||||
|
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -48,8 +48,8 @@
|
|||||||
var/modtype = "robot"
|
var/modtype = "robot"
|
||||||
var/lower_mod = 0
|
var/lower_mod = 0
|
||||||
var/jetpack = 0
|
var/jetpack = 0
|
||||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail = null
|
var/datum/effect_system/trail_follow/ion/ion_trail = null
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
var/datum/effect_system/spark_spread/spark_system//So they can initialize sparks whenever/N
|
||||||
var/jeton = 0
|
var/jeton = 0
|
||||||
|
|
||||||
var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default
|
var/lawupdate = 1 //Cyborgs will sync their laws with their AI by default
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
var/updating = 0 //portable camera camerachunk update
|
var/updating = 0 //portable camera camerachunk update
|
||||||
|
|
||||||
/mob/living/silicon/robot/New(loc)
|
/mob/living/silicon/robot/New(loc)
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
..(1)
|
..(1)
|
||||||
visible_message("<span class='warning'>[src] blows apart!</span>")
|
visible_message("<span class='warning'>[src] blows apart!</span>")
|
||||||
new /obj/effect/decal/cleanable/robot_debris(src.loc)
|
new /obj/effect/decal/cleanable/robot_debris(src.loc)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
ghostize()
|
ghostize()
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
return
|
return
|
||||||
L.visible_message("<span class='warning'><b>\The [L] suddenly flares brightly and begins to spark!</span>")
|
L.visible_message("<span class='warning'><b>\The [L] suddenly flares brightly and begins to spark!</span>")
|
||||||
sleep(10)
|
sleep(10)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(4, 1, L)
|
s.set_up(4, 1, L)
|
||||||
s.start()
|
s.start()
|
||||||
sleep(10)
|
sleep(10)
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
return
|
return
|
||||||
M.Beam(L,icon_state="lightning",icon='icons/effects/effects.dmi',time=5)
|
M.Beam(L,icon_state="lightning",icon='icons/effects/effects.dmi',time=5)
|
||||||
M.electrocute_act(25, "[L.name]")
|
M.electrocute_act(25, "[L.name]")
|
||||||
var/datum/effect/effect/system/spark_spread/z = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/z = new /datum/effect_system/spark_spread
|
||||||
z.set_up(4, 1, M)
|
z.set_up(4, 1, M)
|
||||||
z.start()
|
z.start()
|
||||||
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>"
|
S << "<span class='warning'><b>ERROR $!(@ ERROR )#^! SENSORY OVERLOAD \[$(!@#</b></span>"
|
||||||
S << 'sound/misc/interference.ogg'
|
S << 'sound/misc/interference.ogg'
|
||||||
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
playsound(S, 'sound/machines/warning-buzzer.ogg', 50, 1)
|
||||||
var/datum/effect/effect/system/spark_spread/sp = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
|
||||||
sp.set_up(5, 1, S)
|
sp.set_up(5, 1, S)
|
||||||
sp.start()
|
sp.start()
|
||||||
S.Weaken(6)
|
S.Weaken(6)
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
force = 40
|
force = 40
|
||||||
throwforce = 20
|
throwforce = 20
|
||||||
armour_penetration = 15
|
armour_penetration = 15
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
|
|
||||||
/obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
/obj/item/weapon/katana/energy/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
|
||||||
if(!user || !target)
|
if(!user || !target)
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/katana/energy/New()
|
/obj/item/weapon/katana/energy/New()
|
||||||
..()
|
..()
|
||||||
spark_system = new /datum/effect/effect/system/spark_spread()
|
spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
spark_system.attach(src)
|
spark_system.attach(src)
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ It is possible to destroy the net by the occupant or someone else.
|
|||||||
M << "<span class='danger'>You appear in a strange place!</span>"
|
M << "<span class='danger'>You appear in a strange place!</span>"
|
||||||
|
|
||||||
spawn(0)
|
spawn(0)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, M.loc)
|
spark_system.set_up(5, 0, M.loc)
|
||||||
spark_system.start()
|
spark_system.start()
|
||||||
playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1)
|
playsound(M.loc, 'sound/effects/phasein.ogg', 25, 1)
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
if(!ninjacost(0,N_SMOKE_BOMB))
|
if(!ninjacost(0,N_SMOKE_BOMB))
|
||||||
var/mob/living/carbon/human/H = affecting
|
var/mob/living/carbon/human/H = affecting
|
||||||
var/datum/effect/effect/system/smoke_spread/bad/smoke = new
|
var/datum/effect_system/smoke_spread/bad/smoke = new
|
||||||
smoke.set_up(4, H.loc)
|
smoke.set_up(4, H.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
playsound(H.loc, 'sound/effects/bamf.ogg', 50, 2)
|
playsound(H.loc, 'sound/effects/bamf.ogg', 50, 2)
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
|||||||
. = 0
|
. = 0
|
||||||
|
|
||||||
if(cell && cell.charge)
|
if(cell && cell.charge)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, loc)
|
spark_system.set_up(5, 0, loc)
|
||||||
|
|
||||||
while(G.candrain && cell.charge> 0 && !maxcapacity)
|
while(G.candrain && cell.charge> 0 && !maxcapacity)
|
||||||
@@ -71,7 +71,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
|||||||
. = 0
|
. = 0
|
||||||
|
|
||||||
if(charge)
|
if(charge)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, loc)
|
spark_system.set_up(5, 0, loc)
|
||||||
|
|
||||||
while(G.candrain && charge > 0 && !maxcapacity)
|
while(G.candrain && charge > 0 && !maxcapacity)
|
||||||
@@ -278,7 +278,7 @@ They *could* go in their appropriate files, but this is supposed to be modular
|
|||||||
if(S.cell && S.cell.charge && S.cell.use(1000))
|
if(S.cell && S.cell.charge && S.cell.use(1000))
|
||||||
. = DRAIN_MOB_SHOCK
|
. = DRAIN_MOB_SHOCK
|
||||||
//Got that electric touch
|
//Got that electric touch
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
var/datum/effect_system/spark_spread/spark_system = new /datum/effect_system/spark_spread()
|
||||||
spark_system.set_up(5, 0, loc)
|
spark_system.set_up(5, 0, loc)
|
||||||
playsound(src, "sparks", 50, 1)
|
playsound(src, "sparks", 50, 1)
|
||||||
visible_message("<span class='danger'>[H] electrocutes [src] with their touch!</span>", "<span class='userdanger'>[H] electrocutes you with their touch!</span>")
|
visible_message("<span class='danger'>[H] electrocutes [src] with their touch!</span>", "<span class='userdanger'>[H] electrocutes you with their touch!</span>")
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Contents:
|
|||||||
//Important parts of the suit.
|
//Important parts of the suit.
|
||||||
var/mob/living/carbon/human/affecting = null
|
var/mob/living/carbon/human/affecting = null
|
||||||
var/obj/item/weapon/stock_parts/cell/cell
|
var/obj/item/weapon/stock_parts/cell/cell
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system
|
var/datum/effect_system/spark_spread/spark_system
|
||||||
var/list/reagent_list = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New().
|
var/list/reagent_list = list("omnizine","salbutamol","spaceacillin","charcoal","nutriment","radium","potass_iodide")//The reagents ids which are added to the suit at New().
|
||||||
var/list/stored_research = list()//For stealing station research.
|
var/list/stored_research = list()//For stealing station research.
|
||||||
var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
|
var/obj/item/weapon/disk/tech_disk/t_disk//To copy design onto disk.
|
||||||
|
|||||||
@@ -486,7 +486,7 @@
|
|||||||
var/turf/T = get_turf(src)
|
var/turf/T = get_turf(src)
|
||||||
var/obj/structure/cable/N = T.get_cable_node()
|
var/obj/structure/cable/N = T.get_cable_node()
|
||||||
if (prob(50) && electrocute_mob(usr, N, N))
|
if (prob(50) && electrocute_mob(usr, N, N))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
return
|
||||||
@@ -936,11 +936,11 @@
|
|||||||
cell.corrupt()
|
cell.corrupt()
|
||||||
src.malfhack = 1
|
src.malfhack = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(1, src.loc)
|
smoke.set_up(1, src.loc)
|
||||||
smoke.attach(src)
|
smoke.attach(src)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
var/datum/effect/effect/system/spark_spread/s = new
|
var/datum/effect_system/spark_spread/s = new
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
visible_message("<span class='warning'>The [src.name] suddenly lets out a blast of smoke and some sparks!</span>", \
|
visible_message("<span class='warning'>The [src.name] suddenly lets out a blast of smoke and some sparks!</span>", \
|
||||||
@@ -1206,7 +1206,7 @@
|
|||||||
/obj/machinery/power/apc/proc/shock(mob/user, prb)
|
/obj/machinery/power/apc/proc/shock(mob/user, prb)
|
||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0
|
return 0
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if(isalien(user))
|
if(isalien(user))
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ By design, d1 is the smallest direction and d2 is the highest
|
|||||||
if(!prob(prb))
|
if(!prob(prb))
|
||||||
return 0
|
return 0
|
||||||
if (electrocute_mob(user, powernet, src, siemens_coeff))
|
if (electrocute_mob(user, powernet, src, siemens_coeff))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -351,7 +351,7 @@
|
|||||||
|
|
||||||
user << "<span class='userdanger'>You stick \the [W] into the light socket!</span>"
|
user << "<span class='userdanger'>You stick \the [W] into the light socket!</span>"
|
||||||
if(has_power() && (W.flags & CONDUCT))
|
if(has_power() && (W.flags & CONDUCT))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
if (prob(75))
|
if (prob(75))
|
||||||
@@ -496,7 +496,7 @@
|
|||||||
if(status == LIGHT_OK || status == LIGHT_BURNED)
|
if(status == LIGHT_OK || status == LIGHT_BURNED)
|
||||||
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
|
playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1)
|
||||||
if(on)
|
if(on)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
status = LIGHT_BROKEN
|
status = LIGHT_BROKEN
|
||||||
|
|||||||
@@ -113,7 +113,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
/obj/machinery/field/proc/bump_field(atom/movable/AM as mob|obj)
|
/obj/machinery/field/proc/bump_field(atom/movable/AM as mob|obj)
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, AM.loc)
|
s.set_up(5, 1, AM.loc)
|
||||||
s.start()
|
s.start()
|
||||||
var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src)))
|
var/atom/target = get_edge_target_turf(AM, get_dir(src, get_step_away(AM, src)))
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
playsound(src.loc, 'sound/weapons/emitter.ogg', 25, 1)
|
playsound(src.loc, 'sound/weapons/emitter.ogg', 25, 1)
|
||||||
|
|
||||||
if(prob(35))
|
if(prob(35))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
user << "Your soul is too far away."
|
user << "Your soul is too far away."
|
||||||
return
|
return
|
||||||
makeNewConstruct(/mob/living/simple_animal/construct/harvester, user, null, 1)
|
makeNewConstruct(/mob/living/simple_animal/construct/harvester, user, null, 1)
|
||||||
PoolOrNew(/obj/effect/effect/smoke/sleeping, user.loc)
|
PoolOrNew(/obj/effect/particle_effect/smoke/sleeping, user.loc)
|
||||||
|
|
||||||
|
|
||||||
/obj/singularity/narsie/process()
|
/obj/singularity/narsie/process()
|
||||||
|
|||||||
@@ -138,7 +138,7 @@
|
|||||||
if(do_after(user, 20, target = src) && C.amount >= 10)
|
if(do_after(user, 20, target = src) && C.amount >= 10)
|
||||||
var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one
|
var/obj/structure/cable/N = T.get_cable_node() //get the connecting node cable, if there's one
|
||||||
if (prob(50) && electrocute_mob(usr, N, N)) //animate the electrocution if uncautious and unlucky
|
if (prob(50) && electrocute_mob(usr, N, N)) //animate the electrocution if uncautious and unlucky
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, src)
|
s.set_up(5, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -63,7 +63,7 @@
|
|||||||
if(do_after(user, 50, target = src))
|
if(do_after(user, 50, target = src))
|
||||||
if(master && master.can_terminal_dismantle())
|
if(master && master.can_terminal_dismantle())
|
||||||
if(prob(50) && electrocute_mob(user, powernet, src))
|
if(prob(50) && electrocute_mob(user, powernet, src))
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||||
s.set_up(5, 1, master)
|
s.set_up(5, 1, master)
|
||||||
s.start()
|
s.start()
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/gun/magic/wand/teleport/zap_self(mob/living/user)
|
/obj/item/weapon/gun/magic/wand/teleport/zap_self(mob/living/user)
|
||||||
do_teleport(user, user, 10)
|
do_teleport(user, user, 10)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(3, user.loc)
|
smoke.set_up(3, user.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
charges--
|
charges--
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = 0)
|
/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = 0)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
|
if(!ismob(target) || blocked >= 2) //Fully blocked by mob or collided with dense object - burst into sparks!
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
sparks.set_up(1, 1, src)
|
sparks.set_up(1, 1, src)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
else if(iscarbon(target))
|
else if(iscarbon(target))
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
C.do_jitter_animation(jitter)
|
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
|
/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/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
sparks.set_up(1, 1, src)
|
sparks.set_up(1, 1, src)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
..()
|
..()
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/obj/item/projectile/energy/net/on_range()
|
/obj/item/projectile/energy/net/on_range()
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread
|
var/datum/effect_system/spark_spread/sparks = new /datum/effect_system/spark_spread
|
||||||
sparks.set_up(1, 1, src)
|
sparks.set_up(1, 1, src)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
if(!stuff.anchored && stuff.loc)
|
if(!stuff.anchored && stuff.loc)
|
||||||
teleammount++
|
teleammount++
|
||||||
do_teleport(stuff, stuff, 10)
|
do_teleport(stuff, stuff, 10)
|
||||||
var/datum/effect/effect/system/smoke_spread/smoke = new
|
var/datum/effect_system/smoke_spread/smoke = new
|
||||||
smoke.set_up(max(round(4 - teleammount),0), stuff.loc) //Smoke drops off if a lot of stuff is moved for the sake of sanity
|
smoke.set_up(max(round(4 - teleammount),0), stuff.loc) //Smoke drops off if a lot of stuff is moved for the sake of sanity
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
/datum/reagent/blackpowder/on_ex_act()
|
/datum/reagent/blackpowder/on_ex_act()
|
||||||
var/location = get_turf(holder.my_atom)
|
var/location = get_turf(holder.my_atom)
|
||||||
var/datum/effect/effect/system/reagents_explosion/e = new()
|
var/datum/effect_system/reagents_explosion/e = new()
|
||||||
e.set_up(1 + round(volume/6, 1), location, 0, 0, message = 0)
|
e.set_up(1 + round(volume/6, 1), location, 0, 0, message = 0)
|
||||||
e.start()
|
e.start()
|
||||||
holder.clear_reagents()
|
holder.clear_reagents()
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user