mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-15 12:42:50 +00:00
Removes the datum pool, as it is not performant.
* Creating new objects is cheap, in fact comparable to the cost of getting it out of the pool, so it doesn't help there. * Placing items in the pool is far more expensive than letting them garbage collect due to the resetting of vars and such.
This commit is contained in:
@@ -1,110 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
/tg/station13 /atom/movable Pool:
|
|
||||||
---------------------------------
|
|
||||||
By RemieRichards
|
|
||||||
|
|
||||||
Creation/Deletion is laggy, so let's reduce reuse and recycle!
|
|
||||||
|
|
||||||
*/
|
|
||||||
#define ATOM_POOL_COUNT 100
|
|
||||||
// "define DEBUG_ATOM_POOL 1
|
|
||||||
var/global/list/GlobalPool = list()
|
|
||||||
|
|
||||||
//You'll be using this proc 90% of the time.
|
|
||||||
//It grabs a type from the pool if it can
|
|
||||||
//And if it can't, it creates one
|
|
||||||
//The pool is flexible and will expand to fit
|
|
||||||
//The new created atom when it eventually
|
|
||||||
//Goes into the pool
|
|
||||||
|
|
||||||
//Second argument can be a new location, if the type is /atom/movable
|
|
||||||
//Or a list of arguments
|
|
||||||
//Either way it gets passed to new
|
|
||||||
|
|
||||||
/proc/PoolOrNew(var/get_type,var/second_arg)
|
|
||||||
var/datum/D
|
|
||||||
D = GetFromPool(get_type,second_arg)
|
|
||||||
|
|
||||||
if(!D)
|
|
||||||
// So the GC knows we're pooling this type.
|
|
||||||
if(!GlobalPool[get_type])
|
|
||||||
GlobalPool[get_type] = list()
|
|
||||||
if(islist(second_arg))
|
|
||||||
return new get_type (arglist(second_arg))
|
|
||||||
else
|
|
||||||
return new get_type (second_arg)
|
|
||||||
return D
|
|
||||||
|
|
||||||
/proc/GetFromPool(var/get_type,var/second_arg)
|
|
||||||
if(isnull(GlobalPool[get_type]))
|
|
||||||
return 0
|
|
||||||
|
|
||||||
if(length(GlobalPool[get_type]) == 0)
|
|
||||||
return 0
|
|
||||||
|
|
||||||
var/datum/D = pick_n_take(GlobalPool[get_type])
|
|
||||||
if(D)
|
|
||||||
D.ResetVars()
|
|
||||||
D.Prepare(second_arg)
|
|
||||||
return D
|
|
||||||
return 0
|
|
||||||
|
|
||||||
/proc/PlaceInPool(var/datum/D)
|
|
||||||
if(!istype(D))
|
|
||||||
return
|
|
||||||
|
|
||||||
if(length(GlobalPool[D.type]) > ATOM_POOL_COUNT)
|
|
||||||
#ifdef DEBUG_ATOM_POOL
|
|
||||||
world << text("DEBUG_DATUM_POOL: PlaceInPool([]) exceeds []. Discarding.", D.type, ATOM_POOL_COUNT)
|
|
||||||
#endif
|
|
||||||
if(garbage_collector)
|
|
||||||
garbage_collector.AddTrash(D)
|
|
||||||
else
|
|
||||||
del(D)
|
|
||||||
return
|
|
||||||
|
|
||||||
if(D in GlobalPool[D.type])
|
|
||||||
return
|
|
||||||
|
|
||||||
if(!GlobalPool[D.type])
|
|
||||||
GlobalPool[D.type] = list()
|
|
||||||
|
|
||||||
GlobalPool[D.type] += D
|
|
||||||
|
|
||||||
D.Destroy()
|
|
||||||
D.ResetVars()
|
|
||||||
|
|
||||||
/proc/IsPooled(var/datum/D)
|
|
||||||
if(isnull(GlobalPool[D.type]))
|
|
||||||
return 0
|
|
||||||
return 1
|
|
||||||
|
|
||||||
/datum/proc/Prepare(args)
|
|
||||||
if(islist(args))
|
|
||||||
New(arglist(args))
|
|
||||||
else
|
|
||||||
New(args)
|
|
||||||
|
|
||||||
/atom/movable/Prepare(args)
|
|
||||||
var/list/args_list = args
|
|
||||||
if(istype(args_list) && args_list.len)
|
|
||||||
loc = args[1]
|
|
||||||
else
|
|
||||||
loc = args
|
|
||||||
..()
|
|
||||||
|
|
||||||
/datum/proc/ResetVars(var/list/exlude = list())
|
|
||||||
var/list/excluded = list("animate_movement", "loc", "locs", "parent_type", "vars", "verbs", "type") + exlude
|
|
||||||
|
|
||||||
for(var/V in vars)
|
|
||||||
if(V in excluded)
|
|
||||||
continue
|
|
||||||
|
|
||||||
vars[V] = initial(vars[V])
|
|
||||||
|
|
||||||
/atom/movable/ResetVars()
|
|
||||||
..()
|
|
||||||
vars["loc"] = null
|
|
||||||
|
|
||||||
#undef ATOM_POOL_COUNT
|
|
||||||
@@ -32,11 +32,6 @@
|
|||||||
my_mob.client.screen -= src
|
my_mob.client.screen -= src
|
||||||
my_mob = null
|
my_mob = null
|
||||||
|
|
||||||
/obj/screen/movable/ability_master/ResetVars()
|
|
||||||
..("ability_objects", args)
|
|
||||||
remove_all_abilities()
|
|
||||||
// ability_objects = list()
|
|
||||||
|
|
||||||
/obj/screen/movable/ability_master/MouseDrop()
|
/obj/screen/movable/ability_master/MouseDrop()
|
||||||
if(showing)
|
if(showing)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
return null
|
return null
|
||||||
|
|
||||||
if(!screen)
|
if(!screen)
|
||||||
screen = PoolOrNew(type)
|
screen = new type()
|
||||||
|
|
||||||
screen.icon_state = "[initial(screen.icon_state)][severity]"
|
screen.icon_state = "[initial(screen.icon_state)][severity]"
|
||||||
screen.severity = severity
|
screen.severity = severity
|
||||||
|
|||||||
@@ -23,10 +23,6 @@
|
|||||||
spell_holder.client.screen -= src
|
spell_holder.client.screen -= src
|
||||||
spell_holder = null
|
spell_holder = null
|
||||||
|
|
||||||
/obj/screen/movable/spell_master/ResetVars()
|
|
||||||
..("spell_objects", args)
|
|
||||||
spell_objects = list()
|
|
||||||
|
|
||||||
/obj/screen/movable/spell_master/MouseDrop()
|
/obj/screen/movable/spell_master/MouseDrop()
|
||||||
if(showing)
|
if(showing)
|
||||||
return
|
return
|
||||||
@@ -93,7 +89,7 @@
|
|||||||
if(spell.spell_flags & NO_BUTTON) //no button to add if we don't get one
|
if(spell.spell_flags & NO_BUTTON) //no button to add if we don't get one
|
||||||
return
|
return
|
||||||
|
|
||||||
var/obj/screen/spell/newscreen = PoolOrNew(/obj/screen/spell)
|
var/obj/screen/spell/newscreen = new /obj/screen/spell()
|
||||||
newscreen.spellmaster = src
|
newscreen.spellmaster = src
|
||||||
newscreen.spell = spell
|
newscreen.spell = spell
|
||||||
|
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ var/const/tk_maxrange = 15
|
|||||||
|
|
||||||
/obj/item/tk_grab/proc/apply_focus_overlay()
|
/obj/item/tk_grab/proc/apply_focus_overlay()
|
||||||
if(!focus) return
|
if(!focus) return
|
||||||
var/obj/effect/overlay/O = PoolOrNew(/obj/effect/overlay, locate(focus.x,focus.y,focus.z))
|
var/obj/effect/overlay/O = new /obj/effect/overlay(locate(focus.x,focus.y,focus.z))
|
||||||
O.name = "sparkles"
|
O.name = "sparkles"
|
||||||
O.anchored = 1
|
O.anchored = 1
|
||||||
O.density = 0
|
O.density = 0
|
||||||
|
|||||||
@@ -152,19 +152,13 @@ world/loop_checks = 0
|
|||||||
A.finalize_qdel()
|
A.finalize_qdel()
|
||||||
|
|
||||||
/datum/proc/finalize_qdel()
|
/datum/proc/finalize_qdel()
|
||||||
if(IsPooled(src))
|
del(src)
|
||||||
PlaceInPool(src)
|
|
||||||
else
|
|
||||||
del(src)
|
|
||||||
|
|
||||||
/atom/finalize_qdel()
|
/atom/finalize_qdel()
|
||||||
if(IsPooled(src))
|
if(garbage_collector)
|
||||||
PlaceInPool(src)
|
garbage_collector.AddTrash(src)
|
||||||
else
|
else
|
||||||
if(garbage_collector)
|
delayed_garbage |= src
|
||||||
garbage_collector.AddTrash(src)
|
|
||||||
else
|
|
||||||
delayed_garbage |= src
|
|
||||||
|
|
||||||
/icon/finalize_qdel()
|
/icon/finalize_qdel()
|
||||||
del(src)
|
del(src)
|
||||||
@@ -180,7 +174,7 @@ world/loop_checks = 0
|
|||||||
|
|
||||||
// Default implementation of clean-up code.
|
// Default implementation of clean-up code.
|
||||||
// This should be overridden to remove all references pointing to the object being destroyed.
|
// This should be overridden to remove all references pointing to the object being destroyed.
|
||||||
// Return true if the the GC controller should allow the object to continue existing. (Useful if pooling objects.)
|
// Return true if the the GC controller should allow the object to continue existing.
|
||||||
/datum/proc/Destroy()
|
/datum/proc/Destroy()
|
||||||
nanomanager.close_uis(src)
|
nanomanager.close_uis(src)
|
||||||
tag = null
|
tag = null
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/New()
|
/obj/item/weapon/antag_spawner/technomancer_apprentice/New()
|
||||||
..()
|
..()
|
||||||
sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
sparks = new /datum/effect/effect/system/spark_spread()
|
||||||
sparks.set_up(5, 0, src)
|
sparks.set_up(5, 0, src)
|
||||||
sparks.attach(loc)
|
sparks.attach(loc)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/suit/armor/shield/New()
|
/obj/item/clothing/suit/armor/shield/New()
|
||||||
..()
|
..()
|
||||||
spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
|
|
||||||
/obj/item/clothing/suit/armor/shield/Destroy()
|
/obj/item/clothing/suit/armor/shield/Destroy()
|
||||||
|
|||||||
@@ -102,7 +102,7 @@
|
|||||||
rng = rand(0,1)
|
rng = rand(0,1)
|
||||||
switch(rng)
|
switch(rng)
|
||||||
if(0)
|
if(0)
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||||
sparks.set_up(5, 0, src)
|
sparks.set_up(5, 0, src)
|
||||||
sparks.attach(loc)
|
sparks.attach(loc)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
@@ -167,10 +167,10 @@
|
|||||||
rng = rand(0,1)
|
rng = rand(0,1)
|
||||||
switch(rng)
|
switch(rng)
|
||||||
if(0)
|
if(0)
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||||
sparks.set_up(5, 0, src)
|
sparks.set_up(5, 0, src)
|
||||||
sparks.attach(loc)
|
sparks.attach(loc)
|
||||||
// var/datum/effect/effect/system/spark_spread/spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
// var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
// spark_system.set_up(5, 0, get_turf(src))
|
// spark_system.set_up(5, 0, get_turf(src))
|
||||||
// spark_system.attach(src)
|
// spark_system.attach(src)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
|
|||||||
@@ -247,7 +247,7 @@
|
|||||||
if(!path || !ispath(path))
|
if(!path || !ispath(path))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
//var/obj/item/weapon/spell/S = PoolOrNew(path, src)
|
//var/obj/item/weapon/spell/S = new path(src)
|
||||||
var/obj/item/weapon/spell/S = new path(src)
|
var/obj/item/weapon/spell/S = new path(src)
|
||||||
|
|
||||||
//No hands needed for innate casts.
|
//No hands needed for innate casts.
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
spawn(1)
|
spawn(1)
|
||||||
var/turf/desired_turf = get_step(T,direction)
|
var/turf/desired_turf = get_step(T,direction)
|
||||||
if(desired_turf) // This shouldn't fail but...
|
if(desired_turf) // This shouldn't fail but...
|
||||||
var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(T))
|
var/obj/effect/effect/water/W = new /obj/effect/effect/water(get_turf(T))
|
||||||
W.create_reagents(60)
|
W.create_reagents(60)
|
||||||
W.reagents.add_reagent(id = "water", amount = 60, data = null, safety = 0)
|
W.reagents.add_reagent(id = "water", amount = 60, data = null, safety = 0)
|
||||||
W.set_color()
|
W.set_color()
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
visible_message("<span class='info'>[user] rests a hand on \the [hit_atom].</span>")
|
visible_message("<span class='info'>[user] rests a hand on \the [hit_atom].</span>")
|
||||||
busy = 1
|
busy = 1
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, our_turf)
|
spark_system.set_up(5, 0, our_turf)
|
||||||
|
|
||||||
while(i)
|
while(i)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
/obj/item/weapon/spell/reflect/New()
|
/obj/item/weapon/spell/reflect/New()
|
||||||
..()
|
..()
|
||||||
set_light(3, 2, l_color = "#006AFF")
|
set_light(3, 2, l_color = "#006AFF")
|
||||||
spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
owner << "<span class='notice'>Your shield will expire in 3 seconds!</span>"
|
owner << "<span class='notice'>Your shield will expire in 3 seconds!</span>"
|
||||||
spawn(5 SECONDS)
|
spawn(5 SECONDS)
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
/obj/item/weapon/spell/shield/New()
|
/obj/item/weapon/spell/shield/New()
|
||||||
..()
|
..()
|
||||||
set_light(3, 2, l_color = "#006AFF")
|
set_light(3, 2, l_color = "#006AFF")
|
||||||
spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, src)
|
spark_system.set_up(5, 0, src)
|
||||||
|
|
||||||
/obj/item/weapon/spell/shield/Destroy()
|
/obj/item/weapon/spell/shield/Destroy()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/spell/warp_strike/New()
|
/obj/item/weapon/spell/warp_strike/New()
|
||||||
..()
|
..()
|
||||||
sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
sparks = new /datum/effect/effect/system/spark_spread()
|
||||||
sparks.set_up(5, 0, src)
|
sparks.set_up(5, 0, src)
|
||||||
sparks.attach(loc)
|
sparks.attach(loc)
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ for reference:
|
|||||||
var/health = 100
|
var/health = 100
|
||||||
var/maxhealth = 100
|
var/maxhealth = 100
|
||||||
var/material/material
|
var/material/material
|
||||||
|
|
||||||
/obj/structure/barricade/New(var/newloc, var/material_name)
|
/obj/structure/barricade/New(var/newloc, var/material_name)
|
||||||
..(newloc)
|
..(newloc)
|
||||||
if(!material_name)
|
if(!material_name)
|
||||||
@@ -74,7 +74,7 @@ for reference:
|
|||||||
desc = "This space is blocked off by a barricade made of [material.display_name]."
|
desc = "This space is blocked off by a barricade made of [material.display_name]."
|
||||||
color = material.icon_colour
|
color = material.icon_colour
|
||||||
maxhealth = material.integrity
|
maxhealth = material.integrity
|
||||||
health = maxhealth
|
health = maxhealth
|
||||||
|
|
||||||
/obj/structure/barricade/get_material()
|
/obj/structure/barricade/get_material()
|
||||||
return material
|
return material
|
||||||
@@ -237,7 +237,7 @@ for reference:
|
|||||||
var/turf/Tsec = get_turf(src)
|
var/turf/Tsec = get_turf(src)
|
||||||
|
|
||||||
/* var/obj/item/stack/rods/ =*/
|
/* var/obj/item/stack/rods/ =*/
|
||||||
PoolOrNew(/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/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
switch (Proj.damage_type)
|
switch (Proj.damage_type)
|
||||||
if(BRUTE)
|
if(BRUTE)
|
||||||
new /obj/item/stack/material/steel(src.loc, 2)
|
new /obj/item/stack/material/steel(src.loc, 2)
|
||||||
PoolOrNew(/obj/item/stack/rods, list(src.loc, 3))
|
new /obj/item/stack/rods(src.loc, 3)
|
||||||
if(BURN)
|
if(BURN)
|
||||||
new /obj/effect/decal/cleanable/ash(src.loc) // Turn it to ashes!
|
new /obj/effect/decal/cleanable/ash(src.loc) // Turn it to ashes!
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -170,7 +170,7 @@
|
|||||||
cooking_obj = new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src)
|
cooking_obj = new /obj/item/weapon/reagent_containers/food/snacks/badrecipe(src)
|
||||||
// Produce nasty smoke.
|
// Produce nasty smoke.
|
||||||
visible_message("<span class='danger'>\The [src] vomits a gout of rancid smoke!</span>")
|
visible_message("<span class='danger'>\The [src] vomits a gout of rancid smoke!</span>")
|
||||||
var/datum/effect/effect/system/smoke_spread/bad/smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread/bad)
|
var/datum/effect/effect/system/smoke_spread/bad/smoke = new /datum/effect/effect/system/smoke_spread/bad()
|
||||||
smoke.attach(src)
|
smoke.attach(src)
|
||||||
smoke.set_up(10, 0, usr.loc)
|
smoke.set_up(10, 0, usr.loc)
|
||||||
smoke.start()
|
smoke.start()
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ Class Procs:
|
|||||||
if(use_power && stat == 0)
|
if(use_power && stat == 0)
|
||||||
use_power(7500/severity)
|
use_power(7500/severity)
|
||||||
|
|
||||||
var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc)
|
var/obj/effect/overlay/pulse2 = new /obj/effect/overlay(src.loc)
|
||||||
pulse2.icon = 'icons/effects/effects.dmi'
|
pulse2.icon = 'icons/effects/effects.dmi'
|
||||||
pulse2.icon_state = "empdisable"
|
pulse2.icon_state = "empdisable"
|
||||||
pulse2.name = "emp sparks"
|
pulse2.name = "emp sparks"
|
||||||
|
|||||||
@@ -567,7 +567,7 @@ var/list/turret_icons
|
|||||||
set_raised_raising(raised, 1)
|
set_raised_raising(raised, 1)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
var/atom/flick_holder = PoolOrNew(/atom/movable/porta_turret_cover, loc)
|
var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
|
||||||
flick_holder.layer = layer + 0.1
|
flick_holder.layer = layer + 0.1
|
||||||
flick("popup", flick_holder)
|
flick("popup", flick_holder)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
@@ -588,7 +588,7 @@ var/list/turret_icons
|
|||||||
set_raised_raising(raised, 1)
|
set_raised_raising(raised, 1)
|
||||||
update_icon()
|
update_icon()
|
||||||
|
|
||||||
var/atom/flick_holder = PoolOrNew(/atom/movable/porta_turret_cover, loc)
|
var/atom/flick_holder = new /atom/movable/porta_turret_cover(loc)
|
||||||
flick_holder.layer = layer + 0.1
|
flick_holder.layer = layer + 0.1
|
||||||
flick("popdown", flick_holder)
|
flick("popdown", flick_holder)
|
||||||
sleep(10)
|
sleep(10)
|
||||||
|
|||||||
@@ -208,7 +208,7 @@
|
|||||||
|
|
||||||
for(var/a = 1 to 5)
|
for(var/a = 1 to 5)
|
||||||
spawn(0)
|
spawn(0)
|
||||||
var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(chassis))
|
var/obj/effect/effect/water/W = new /obj/effect/effect/water(get_turf(chassis))
|
||||||
var/turf/my_target
|
var/turf/my_target
|
||||||
if(a == 1)
|
if(a == 1)
|
||||||
my_target = T
|
my_target = T
|
||||||
|
|||||||
@@ -152,7 +152,7 @@
|
|||||||
if(passed_smoke)
|
if(passed_smoke)
|
||||||
smoke = passed_smoke
|
smoke = passed_smoke
|
||||||
else
|
else
|
||||||
smoke = PoolOrNew(/obj/effect/effect/smoke/chem, location)
|
smoke = new /obj/effect/effect/smoke/chem(location)
|
||||||
|
|
||||||
if(chemholder.reagents.reagent_list.len)
|
if(chemholder.reagents.reagent_list.len)
|
||||||
chemholder.reagents.trans_to_obj(smoke, chemholder.reagents.total_volume / dist, copy = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents
|
chemholder.reagents.trans_to_obj(smoke, chemholder.reagents.total_volume / dist, copy = 1) //copy reagents to the smoke so mob/breathe() can handle inhaling the reagents
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/icon/I, var/dist = 1)
|
/datum/effect/effect/system/smoke_spread/chem/spores/spawnSmoke(var/turf/T, var/icon/I, var/dist = 1)
|
||||||
var/obj/effect/effect/smoke/chem/spores = PoolOrNew(/obj/effect/effect/smoke/chem, location)
|
var/obj/effect/effect/smoke/chem/spores = new /obj/effect/effect/smoke/chem(location)
|
||||||
spores.name = "cloud of [seed.seed_name] [seed.seed_noun]"
|
spores.name = "cloud of [seed.seed_name] [seed.seed_noun]"
|
||||||
..(T, I, dist, spores)
|
..(T, I, dist, spores)
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@
|
|||||||
F.amount += amount
|
F.amount += amount
|
||||||
return
|
return
|
||||||
|
|
||||||
F = PoolOrNew(/obj/effect/effect/foam, list(location, metal))
|
F = new /obj/effect/effect/foam(location, metal)
|
||||||
F.amount = amount
|
F.amount = amount
|
||||||
|
|
||||||
if(!metal) // don't carry other chemicals if a metal foam
|
if(!metal) // don't carry other chemicals if a metal foam
|
||||||
|
|||||||
@@ -222,7 +222,7 @@ var/global/list/image/splatter_cache=list()
|
|||||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||||
sleep(3)
|
sleep(3)
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
var/obj/effect/decal/cleanable/blood/b = PoolOrNew(/obj/effect/decal/cleanable/blood/splatter, src.loc)
|
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||||
b.basecolor = src.basecolor
|
b.basecolor = src.basecolor
|
||||||
b.update_icon()
|
b.update_icon()
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ steam.start() -- spawns the effect
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(holder)
|
if(holder)
|
||||||
src.location = get_turf(holder)
|
src.location = get_turf(holder)
|
||||||
var/obj/effect/effect/steam/steam = PoolOrNew(/obj/effect/effect/steam, src.location)
|
var/obj/effect/effect/steam/steam = new /obj/effect/effect/steam(src.location)
|
||||||
var/direction
|
var/direction
|
||||||
if(src.cardinals)
|
if(src.cardinals)
|
||||||
direction = pick(cardinal)
|
direction = pick(cardinal)
|
||||||
@@ -146,7 +146,7 @@ steam.start() -- spawns the effect
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(holder)
|
if(holder)
|
||||||
src.location = get_turf(holder)
|
src.location = get_turf(holder)
|
||||||
var/obj/effect/effect/sparks/sparks = PoolOrNew(/obj/effect/effect/sparks, src.location)
|
var/obj/effect/effect/sparks/sparks = new /obj/effect/effect/sparks(src.location)
|
||||||
src.total_sparks++
|
src.total_sparks++
|
||||||
var/direction
|
var/direction
|
||||||
if(src.cardinals)
|
if(src.cardinals)
|
||||||
@@ -283,7 +283,7 @@ steam.start() -- spawns the effect
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(holder)
|
if(holder)
|
||||||
src.location = get_turf(holder)
|
src.location = get_turf(holder)
|
||||||
var/obj/effect/effect/smoke/smoke = PoolOrNew(smoke_type, src.location)
|
var/obj/effect/effect/smoke/smoke = new smoke_type(src.location)
|
||||||
src.total_smoke++
|
src.total_smoke++
|
||||||
smoke.color = I
|
smoke.color = I
|
||||||
var/direction = src.direction
|
var/direction = src.direction
|
||||||
@@ -334,7 +334,7 @@ steam.start() -- spawns the effect
|
|||||||
var/turf/T = get_turf(src.holder)
|
var/turf/T = get_turf(src.holder)
|
||||||
if(T != src.oldposition)
|
if(T != src.oldposition)
|
||||||
if(isturf(T))
|
if(isturf(T))
|
||||||
var/obj/effect/effect/ion_trails/I = PoolOrNew(/obj/effect/effect/ion_trails, src.oldposition)
|
var/obj/effect/effect/ion_trails/I = new /obj/effect/effect/ion_trails(src.oldposition)
|
||||||
src.oldposition = T
|
src.oldposition = T
|
||||||
I.set_dir(src.holder.dir)
|
I.set_dir(src.holder.dir)
|
||||||
flick("ion_fade", I)
|
flick("ion_fade", I)
|
||||||
@@ -380,7 +380,7 @@ steam.start() -- spawns the effect
|
|||||||
src.processing = 0
|
src.processing = 0
|
||||||
spawn(0)
|
spawn(0)
|
||||||
if(src.number < 3)
|
if(src.number < 3)
|
||||||
var/obj/effect/effect/steam/I = PoolOrNew(/obj/effect/effect/steam, src.oldposition)
|
var/obj/effect/effect/steam/I = new /obj/effect/effect/steam(src.oldposition)
|
||||||
src.number++
|
src.number++
|
||||||
src.oldposition = get_turf(holder)
|
src.oldposition = get_turf(holder)
|
||||||
I.set_dir(src.holder.dir)
|
I.set_dir(src.holder.dir)
|
||||||
@@ -420,7 +420,7 @@ steam.start() -- spawns the effect
|
|||||||
|
|
||||||
start()
|
start()
|
||||||
if (amount <= 2)
|
if (amount <= 2)
|
||||||
var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
|
||||||
s.set_up(2, 1, location)
|
s.set_up(2, 1, location)
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,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 = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
|
||||||
s.set_up(2, 1, get_turf(location)) // Not sure if it's safe to pass an arbitrary object to set_up, todo
|
s.set_up(2, 1, get_turf(location)) // Not sure if it's safe to pass an arbitrary object to set_up, todo
|
||||||
s.start()
|
s.start()
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
call(src,triggerproc)(M)
|
call(src,triggerproc)(M)
|
||||||
|
|
||||||
/obj/effect/mine/proc/triggerrad(obj)
|
/obj/effect/mine/proc/triggerrad(obj)
|
||||||
var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
obj:radiation += 50
|
obj:radiation += 50
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
if(ismob(obj))
|
if(ismob(obj))
|
||||||
var/mob/M = obj
|
var/mob/M = obj
|
||||||
M.Stun(30)
|
M.Stun(30)
|
||||||
var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
spawn(0)
|
spawn(0)
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/mine/proc/triggerkick(obj)
|
/obj/effect/mine/proc/triggerkick(obj)
|
||||||
var/datum/effect/effect/system/spark_spread/s = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread()
|
||||||
s.set_up(3, 1, src)
|
s.set_up(3, 1, src)
|
||||||
s.start()
|
s.start()
|
||||||
qdel(obj:client)
|
qdel(obj:client)
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
O = loc
|
O = loc
|
||||||
|
|
||||||
for(var/i=0, i<num, i++)
|
for(var/i=0, i<num, i++)
|
||||||
var/spiderling = PoolOrNew(/obj/effect/spider/spiderling, list(src.loc, src))
|
var/spiderling = new /obj/effect/spider/spiderling(src.loc, src)
|
||||||
if(O)
|
if(O)
|
||||||
O.implants += spiderling
|
O.implants += spiderling
|
||||||
qdel(src)
|
qdel(src)
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
|
|
||||||
/obj/effect/spider/spiderling/proc/die()
|
/obj/effect/spider/spiderling/proc/die()
|
||||||
visible_message("<span class='alert'>[src] dies!</span>")
|
visible_message("<span class='alert'>[src] dies!</span>")
|
||||||
PoolOrNew(/obj/effect/decal/cleanable/spiderling_remains, src.loc)
|
new /obj/effect/decal/cleanable/spiderling_remains(src.loc)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
/obj/effect/spider/spiderling/healthcheck()
|
/obj/effect/spider/spiderling/healthcheck()
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ proc/empulse(turf/epicenter, first_range, second_range, third_range, fourth_rang
|
|||||||
log_game("EMP with size ([first_range], [second_range], [third_range], [fourth_range]) in area [epicenter.loc.name] ")
|
log_game("EMP with size ([first_range], [second_range], [third_range], [fourth_range]) in area [epicenter.loc.name] ")
|
||||||
|
|
||||||
if(first_range > 1)
|
if(first_range > 1)
|
||||||
var/obj/effect/overlay/pulse = PoolOrNew(/obj/effect/overlay, epicenter)
|
var/obj/effect/overlay/pulse = new /obj/effect/overlay(epicenter)
|
||||||
pulse.icon = 'icons/effects/effects.dmi'
|
pulse.icon = 'icons/effects/effects.dmi'
|
||||||
pulse.icon_state = "emppulse"
|
pulse.icon_state = "emppulse"
|
||||||
pulse.name = "emp pulse"
|
pulse.name = "emp pulse"
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
qdel(active_dummy)
|
qdel(active_dummy)
|
||||||
active_dummy = null
|
active_dummy = null
|
||||||
usr << "<span class='notice'>You deactivate the [src].</span>"
|
usr << "<span class='notice'>You deactivate the [src].</span>"
|
||||||
var/obj/effect/overlay/T = PoolOrNew(/obj/effect/overlay, get_turf(src))
|
var/obj/effect/overlay/T = new /obj/effect/overlay(get_turf(src))
|
||||||
T.icon = 'icons/effects/effects.dmi'
|
T.icon = 'icons/effects/effects.dmi'
|
||||||
flick("emppulse",T)
|
flick("emppulse",T)
|
||||||
spawn(8) qdel(T)
|
spawn(8) qdel(T)
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
|
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
|
||||||
var/obj/O = new saved_item(src)
|
var/obj/O = new saved_item(src)
|
||||||
if(!O) return
|
if(!O) return
|
||||||
var/obj/effect/dummy/chameleon/C = PoolOrNew(/obj/effect/dummy/chameleon, usr.loc)
|
var/obj/effect/dummy/chameleon/C = new /obj/effect/dummy/chameleon(usr.loc)
|
||||||
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src)
|
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src)
|
||||||
qdel(O)
|
qdel(O)
|
||||||
usr << "<span class='notice'>You activate the [src].</span>"
|
usr << "<span class='notice'>You activate the [src].</span>"
|
||||||
|
|||||||
@@ -107,7 +107,7 @@
|
|||||||
spawn(0)
|
spawn(0)
|
||||||
if(!src || !reagents.total_volume) return
|
if(!src || !reagents.total_volume) return
|
||||||
|
|
||||||
var/obj/effect/effect/water/W = PoolOrNew(/obj/effect/effect/water, get_turf(src))
|
var/obj/effect/effect/water/W = new /obj/effect/effect/water(get_turf(src))
|
||||||
var/turf/my_target
|
var/turf/my_target
|
||||||
if(a <= the_targets.len)
|
if(a <= the_targets.len)
|
||||||
my_target = the_targets[a]
|
my_target = the_targets[a]
|
||||||
|
|||||||
@@ -86,7 +86,7 @@
|
|||||||
if(ptank)
|
if(ptank)
|
||||||
ptank.loc = T
|
ptank.loc = T
|
||||||
ptank = null
|
ptank = null
|
||||||
PoolOrNew(/obj/item/stack/rods, T)
|
new /obj/item/stack/rods(T)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
/obj/item/weapon/grenade/smokebomb/New()
|
/obj/item/weapon/grenade/smokebomb/New()
|
||||||
..()
|
..()
|
||||||
src.smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread/bad)
|
src.smoke = new /datum/effect/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()
|
||||||
|
|||||||
@@ -130,7 +130,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
if(.)
|
if(.)
|
||||||
var/datum/effect/effect/system/spark_spread/spark_system = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||||
spark_system.set_up(5, 0, user.loc)
|
spark_system.set_up(5, 0, user.loc)
|
||||||
spark_system.start()
|
spark_system.start()
|
||||||
playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1)
|
playsound(user.loc, 'sound/weapons/blade1.ogg', 50, 1)
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
if(iswirecutter(W))
|
if(iswirecutter(W))
|
||||||
if(!shock(user, 100))
|
if(!shock(user, 100))
|
||||||
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
playsound(loc, 'sound/items/Wirecutter.ogg', 100, 1)
|
||||||
PoolOrNew(/obj/item/stack/rods, list(get_turf(src), destroyed ? 1 : 2))
|
new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
|
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
|
||||||
if(!shock(user, 90))
|
if(!shock(user, 90))
|
||||||
@@ -152,7 +152,7 @@
|
|||||||
|
|
||||||
else if(!(W.flags & CONDUCT) || !shock(user, 70))
|
else if(!(W.flags & CONDUCT) || !shock(user, 70))
|
||||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||||
user.do_attack_animation(src)
|
user.do_attack_animation(src)
|
||||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||||
switch(W.damtype)
|
switch(W.damtype)
|
||||||
if("fire")
|
if("fire")
|
||||||
@@ -170,11 +170,11 @@
|
|||||||
density = 0
|
density = 0
|
||||||
destroyed = 1
|
destroyed = 1
|
||||||
update_icon()
|
update_icon()
|
||||||
PoolOrNew(/obj/item/stack/rods, get_turf(src))
|
new /obj/item/stack/rods(get_turf(src))
|
||||||
|
|
||||||
else
|
else
|
||||||
if(health <= -6)
|
if(health <= -6)
|
||||||
PoolOrNew(/obj/item/stack/rods, get_turf(src))
|
new /obj/item/stack/rods(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
if(WT.welding == 1)
|
if(WT.welding == 1)
|
||||||
if(WT.remove_fuel(0, user))
|
if(WT.remove_fuel(0, user))
|
||||||
user << "<span class='notice'>Slicing lattice joints ...</span>"
|
user << "<span class='notice'>Slicing lattice joints ...</span>"
|
||||||
PoolOrNew(/obj/item/stack/rods, src.loc)
|
new /obj/item/stack/rods(src.loc)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -182,13 +182,13 @@
|
|||||||
spawn(50)
|
spawn(50)
|
||||||
if(src && on)
|
if(src && on)
|
||||||
ismist = 1
|
ismist = 1
|
||||||
mymist = PoolOrNew(/obj/effect/mist,loc)
|
mymist = new /obj/effect/mist(loc)
|
||||||
else
|
else
|
||||||
ismist = 1
|
ismist = 1
|
||||||
mymist = PoolOrNew(/obj/effect/mist,loc)
|
mymist = new /obj/effect/mist(loc)
|
||||||
else if(ismist)
|
else if(ismist)
|
||||||
ismist = 1
|
ismist = 1
|
||||||
mymist = PoolOrNew(/obj/effect/mist,loc)
|
mymist = new /obj/effect/mist(loc)
|
||||||
spawn(250)
|
spawn(250)
|
||||||
if(src && !on)
|
if(src && !on)
|
||||||
qdel(mymist)
|
qdel(mymist)
|
||||||
|
|||||||
@@ -92,11 +92,11 @@
|
|||||||
index = 0
|
index = 0
|
||||||
while(index < 2)
|
while(index < 2)
|
||||||
new shardtype(loc) //todo pooling?
|
new shardtype(loc) //todo pooling?
|
||||||
if(reinf) PoolOrNew(/obj/item/stack/rods, loc)
|
if(reinf) new /obj/item/stack/rods(loc)
|
||||||
index++
|
index++
|
||||||
else
|
else
|
||||||
new shardtype(loc) //todo pooling?
|
new shardtype(loc) //todo pooling?
|
||||||
if(reinf) PoolOrNew(/obj/item/stack/rods, loc)
|
if(reinf) new /obj/item/stack/rods(loc)
|
||||||
qdel(src)
|
qdel(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
/obj/effect/wingrille_spawn/proc/activate()
|
/obj/effect/wingrille_spawn/proc/activate()
|
||||||
if(activated) return
|
if(activated) return
|
||||||
if (!locate(/obj/structure/grille) in get_turf(src))
|
if (!locate(/obj/structure/grille) in get_turf(src))
|
||||||
var/obj/structure/grille/G = PoolOrNew(/obj/structure/grille, src.loc)
|
var/obj/structure/grille/G = new /obj/structure/grille(src.loc)
|
||||||
handle_grille_spawn(G)
|
handle_grille_spawn(G)
|
||||||
var/list/neighbours = list()
|
var/list/neighbours = list()
|
||||||
for (var/dir in cardinal)
|
for (var/dir in cardinal)
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
found_connection = 1
|
found_connection = 1
|
||||||
qdel(W)
|
qdel(W)
|
||||||
if(!found_connection)
|
if(!found_connection)
|
||||||
var/obj/structure/window/new_win = PoolOrNew(win_path, src.loc)
|
var/obj/structure/window/new_win = new win_path(src.loc)
|
||||||
new_win.set_dir(dir)
|
new_win.set_dir(dir)
|
||||||
handle_window_spawn(new_win)
|
handle_window_spawn(new_win)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -15,9 +15,10 @@
|
|||||||
T.update_dirt()
|
T.update_dirt()
|
||||||
|
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
PoolOrNew(junk(), T)
|
var/type = junk()
|
||||||
|
new type(T)
|
||||||
if(prob(2))
|
if(prob(2))
|
||||||
PoolOrNew(/obj/effect/decal/cleanable/blood/oil, T)
|
new /obj/effect/decal/cleanable/blood/oil(T)
|
||||||
if(prob(25)) // Keep in mind that only "corners" get any sort of web
|
if(prob(25)) // Keep in mind that only "corners" get any sort of web
|
||||||
attempt_web(T, cardinal_turfs)
|
attempt_web(T, cardinal_turfs)
|
||||||
|
|
||||||
@@ -54,7 +55,7 @@ var/global/list/random_junk
|
|||||||
var/turf/neighbour = get_step(T, dir)
|
var/turf/neighbour = get_step(T, dir)
|
||||||
if(neighbour && neighbour.density)
|
if(neighbour && neighbour.density)
|
||||||
if(dir == WEST)
|
if(dir == WEST)
|
||||||
PoolOrNew(/obj/effect/decal/cleanable/cobweb, T)
|
new /obj/effect/decal/cleanable/cobweb(T)
|
||||||
if(dir == EAST)
|
if(dir == EAST)
|
||||||
PoolOrNew(/obj/effect/decal/cleanable/cobweb2, T)
|
new /obj/effect/decal/cleanable/cobweb2(T)
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
location = get_turf(target)
|
location = get_turf(target)
|
||||||
if(location && !target)
|
if(location && !target)
|
||||||
target = location
|
target = location
|
||||||
var/atom/movable/overlay/animation = PoolOrNew(/atom/movable/overlay, location)
|
var/atom/movable/overlay/animation = new /atom/movable/overlay(location)
|
||||||
if(direction)
|
if(direction)
|
||||||
animation.set_dir(direction)
|
animation.set_dir(direction)
|
||||||
animation.icon = a_icon
|
animation.icon = a_icon
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
|
|
||||||
/obj/item/rig_module/self_destruct/New()
|
/obj/item/rig_module/self_destruct/New()
|
||||||
..()
|
..()
|
||||||
src.smoke = PoolOrNew(/datum/effect/effect/system/smoke_spread/bad)
|
src.smoke = new /datum/effect/effect/system/smoke_spread/bad()
|
||||||
src.smoke.attach(src)
|
src.smoke.attach(src)
|
||||||
|
|
||||||
/obj/item/rig_module/self_destruct/Destroy()
|
/obj/item/rig_module/self_destruct/Destroy()
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
/mob/living/silicon/ai/proc/create_eyeobj(var/newloc)
|
/mob/living/silicon/ai/proc/create_eyeobj(var/newloc)
|
||||||
if(eyeobj) destroy_eyeobj()
|
if(eyeobj) destroy_eyeobj()
|
||||||
if(!newloc) newloc = src.loc
|
if(!newloc) newloc = src.loc
|
||||||
eyeobj = PoolOrNew(/mob/observer/eye/aiEye, newloc)
|
eyeobj = new /mob/observer/eye/aiEye(newloc)
|
||||||
eyeobj.owner = src
|
eyeobj.owner = src
|
||||||
eyeobj.name = "[src.name] (AI Eye)" // Give it a name
|
eyeobj.name = "[src.name] (AI Eye)" // Give it a name
|
||||||
if(client) client.eye = eyeobj
|
if(client) client.eye = eyeobj
|
||||||
|
|||||||
@@ -221,7 +221,7 @@
|
|||||||
if(building == 1)
|
if(building == 1)
|
||||||
I = new /obj/item/stack/tile/floor(src)
|
I = new /obj/item/stack/tile/floor(src)
|
||||||
else
|
else
|
||||||
I = PoolOrNew(/obj/item/stack/rods, src)
|
I = new /obj/item/stack/rods(src)
|
||||||
A.attackby(I, src)
|
A.attackby(I, src)
|
||||||
target = null
|
target = null
|
||||||
busy = 0
|
busy = 0
|
||||||
|
|||||||
@@ -268,8 +268,8 @@
|
|||||||
|
|
||||||
var/turf/Tsec = get_turf(src)
|
var/turf/Tsec = get_turf(src)
|
||||||
new /obj/item/device/assembly/prox_sensor(Tsec)
|
new /obj/item/device/assembly/prox_sensor(Tsec)
|
||||||
PoolOrNew(/obj/item/stack/rods, Tsec)
|
new /obj/item/stack/rods(Tsec)
|
||||||
PoolOrNew(/obj/item/stack/rods, Tsec)
|
new /obj/item/stack/rods(Tsec)
|
||||||
new /obj/item/stack/cable_coil/cut(Tsec)
|
new /obj/item/stack/cable_coil/cut(Tsec)
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
|
|
||||||
time_last_drone = world.time
|
time_last_drone = world.time
|
||||||
if(player.mob && player.mob.mind) player.mob.mind.reset()
|
if(player.mob && player.mob.mind) player.mob.mind.reset()
|
||||||
var/mob/living/silicon/robot/drone/new_drone = PoolOrNew(drone_type, get_turf(src))
|
var/mob/living/silicon/robot/drone/new_drone = new drone_type(get_turf(src))
|
||||||
new_drone.transfer_personality(player)
|
new_drone.transfer_personality(player)
|
||||||
new_drone.master_fabricator = src
|
new_drone.master_fabricator = src
|
||||||
|
|
||||||
|
|||||||
@@ -176,16 +176,16 @@
|
|||||||
step_to(O, get_turf(pick(view(7, src))))
|
step_to(O, get_turf(pick(view(7, src))))
|
||||||
|
|
||||||
//rods
|
//rods
|
||||||
O = PoolOrNew(/obj/item/stack/rods, src.loc)
|
O = new /obj/item/stack/rods(src.loc)
|
||||||
step_to(O, get_turf(pick(view(7, src))))
|
step_to(O, get_turf(pick(view(7, src))))
|
||||||
if(prob(75))
|
if(prob(75))
|
||||||
O = PoolOrNew(/obj/item/stack/rods, src.loc)
|
O = new /obj/item/stack/rods(src.loc)
|
||||||
step_to(O, get_turf(pick(view(7, src))))
|
step_to(O, get_turf(pick(view(7, src))))
|
||||||
if(prob(50))
|
if(prob(50))
|
||||||
O = PoolOrNew(/obj/item/stack/rods, src.loc)
|
O = new /obj/item/stack/rods(src.loc)
|
||||||
step_to(O, get_turf(pick(view(7, src))))
|
step_to(O, get_turf(pick(view(7, src))))
|
||||||
if(prob(25))
|
if(prob(25))
|
||||||
O = PoolOrNew(/obj/item/stack/rods, src.loc)
|
O = new /obj/item/stack/rods(src.loc)
|
||||||
step_to(O, get_turf(pick(view(7, src))))
|
step_to(O, get_turf(pick(view(7, src))))
|
||||||
|
|
||||||
//plasteel
|
//plasteel
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
if(istype(I, /obj/effect/spider/eggcluster))
|
if(istype(I, /obj/effect/spider/eggcluster))
|
||||||
eggcount ++
|
eggcount ++
|
||||||
if(!eggcount)
|
if(!eggcount)
|
||||||
var/eggs = PoolOrNew(/obj/effect/spider/eggcluster/small, list(O, src))
|
var/eggs = new /obj/effect/spider/eggcluster/small(O, src)
|
||||||
O.implants += eggs
|
O.implants += eggs
|
||||||
H << "<span class='warning'>The [src] injects something into your [O.name]!</span>"
|
H << "<span class='warning'>The [src] injects something into your [O.name]!</span>"
|
||||||
|
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
if(busy == LAYING_EGGS)
|
if(busy == LAYING_EGGS)
|
||||||
E = locate() in get_turf(src)
|
E = locate() in get_turf(src)
|
||||||
if(!E)
|
if(!E)
|
||||||
PoolOrNew(/obj/effect/spider/eggcluster, list(loc, src))
|
new /obj/effect/spider/eggcluster(loc, src)
|
||||||
fed--
|
fed--
|
||||||
busy = 0
|
busy = 0
|
||||||
stop_automated_movement = 0
|
stop_automated_movement = 0
|
||||||
|
|||||||
@@ -123,7 +123,7 @@
|
|||||||
if(!paperamount)
|
if(!paperamount)
|
||||||
return
|
return
|
||||||
paperamount--
|
paperamount--
|
||||||
return PoolOrNew(/obj/item/weapon/shreddedp, get_turf(src))
|
return new /obj/item/weapon/shreddedp(get_turf(src))
|
||||||
|
|
||||||
/obj/machinery/papershredder/power_change()
|
/obj/machinery/papershredder/power_change()
|
||||||
..()
|
..()
|
||||||
@@ -185,5 +185,5 @@
|
|||||||
var/mob/living/M = loc
|
var/mob/living/M = loc
|
||||||
if(istype(M))
|
if(istype(M))
|
||||||
M.drop_from_inventory(src)
|
M.drop_from_inventory(src)
|
||||||
PoolOrNew(/obj/effect/decal/cleanable/ash,get_turf(src))
|
new /obj/effect/decal/cleanable/ash(get_turf(src))
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
playsound(src, 'sound/effects/snap.ogg', 50, 1)
|
||||||
src.visible_message("<span class='warning'>\The [src] explodes in a bright flash!</span>")
|
src.visible_message("<span class='warning'>\The [src] explodes in a bright flash!</span>")
|
||||||
|
|
||||||
var/datum/effect/effect/system/spark_spread/sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
|
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||||
sparks.set_up(2, 1, T)
|
sparks.set_up(2, 1, T)
|
||||||
sparks.start()
|
sparks.start()
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
if(1)
|
if(1)
|
||||||
new_growth = 2
|
new_growth = 2
|
||||||
var/obj/structure/diona/vines/existing = locate() in T
|
var/obj/structure/diona/vines/existing = locate() in T
|
||||||
if(!istype(existing)) existing = PoolOrNew(/obj/structure/diona/vines, T)
|
if(!istype(existing)) existing = new /obj/structure/diona/vines(T)
|
||||||
if(existing.growth < new_growth)
|
if(existing.growth < new_growth)
|
||||||
existing.growth = new_growth
|
existing.growth = new_growth
|
||||||
existing.update_icon()
|
existing.update_icon()
|
||||||
@@ -161,11 +161,11 @@
|
|||||||
|
|
||||||
switch(value)
|
switch(value)
|
||||||
if(ARTIFACT_CHAR)
|
if(ARTIFACT_CHAR)
|
||||||
PoolOrNew(/obj/structure/diona/bulb,T)
|
new /obj/structure/diona/bulb(T)
|
||||||
if(MONSTER_CHAR)
|
if(MONSTER_CHAR)
|
||||||
spawn_diona_nymph(T)
|
spawn_diona_nymph(T)
|
||||||
if(DOOR_CHAR)
|
if(DOOR_CHAR)
|
||||||
var/obj/structure/diona/vines/V = PoolOrNew(/obj/structure/diona/vines,T)
|
var/obj/structure/diona/vines/V = new /obj/structure/diona/vines(T)
|
||||||
V.growth = 3
|
V.growth = 3
|
||||||
V.update_icon()
|
V.update_icon()
|
||||||
spawn(1)
|
spawn(1)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
/obj/item/projectile/spell_projectile/before_move()
|
/obj/item/projectile/spell_projectile/before_move()
|
||||||
if(proj_trail && src && src.loc) //pretty trails
|
if(proj_trail && src && src.loc) //pretty trails
|
||||||
var/obj/effect/overlay/trail = PoolOrNew(/obj/effect/overlay, src.loc)
|
var/obj/effect/overlay/trail = new /obj/effect/overlay(src.loc)
|
||||||
trails += trail
|
trails += trail
|
||||||
trail.icon = proj_trail_icon
|
trail.icon = proj_trail_icon
|
||||||
trail.icon_state = proj_trail_icon_state
|
trail.icon_state = proj_trail_icon_state
|
||||||
|
|||||||
@@ -139,7 +139,7 @@
|
|||||||
/obj/vehicle/emp_act(severity)
|
/obj/vehicle/emp_act(severity)
|
||||||
var/was_on = on
|
var/was_on = on
|
||||||
stat |= EMPED
|
stat |= EMPED
|
||||||
var/obj/effect/overlay/pulse2 = PoolOrNew(/obj/effect/overlay, src.loc)
|
var/obj/effect/overlay/pulse2 = new /obj/effect/overlay(src.loc)
|
||||||
pulse2.icon = 'icons/effects/effects.dmi'
|
pulse2.icon = 'icons/effects/effects.dmi'
|
||||||
pulse2.icon_state = "empdisable"
|
pulse2.icon_state = "empdisable"
|
||||||
pulse2.name = "emp sparks"
|
pulse2.name = "emp sparks"
|
||||||
@@ -192,8 +192,8 @@
|
|||||||
src.visible_message("\red <B>[src] blows apart!</B>", 1)
|
src.visible_message("\red <B>[src] blows apart!</B>", 1)
|
||||||
var/turf/Tsec = get_turf(src)
|
var/turf/Tsec = get_turf(src)
|
||||||
|
|
||||||
PoolOrNew(/obj/item/stack/rods, Tsec)
|
new /obj/item/stack/rods(Tsec)
|
||||||
PoolOrNew(/obj/item/stack/rods, Tsec)
|
new /obj/item/stack/rods(Tsec)
|
||||||
new /obj/item/stack/cable_coil/cut(Tsec)
|
new /obj/item/stack/cable_coil/cut(Tsec)
|
||||||
|
|
||||||
if(cell)
|
if(cell)
|
||||||
|
|||||||
@@ -244,7 +244,7 @@
|
|||||||
apply_material_decorations = 0
|
apply_material_decorations = 0
|
||||||
if(23)
|
if(23)
|
||||||
apply_prefix = 0
|
apply_prefix = 0
|
||||||
new_item = PoolOrNew(/obj/item/stack/rods, src.loc)
|
new_item = new /obj/item/stack/rods(src.loc)
|
||||||
apply_image_decorations = 0
|
apply_image_decorations = 0
|
||||||
apply_material_decorations = 0
|
apply_material_decorations = 0
|
||||||
if(24)
|
if(24)
|
||||||
|
|||||||
@@ -47,7 +47,6 @@
|
|||||||
#include "code\_compatibility\509\type2type.dm"
|
#include "code\_compatibility\509\type2type.dm"
|
||||||
#include "code\_helpers\_global_objects.dm"
|
#include "code\_helpers\_global_objects.dm"
|
||||||
#include "code\_helpers\atmospherics.dm"
|
#include "code\_helpers\atmospherics.dm"
|
||||||
#include "code\_helpers\datum_pool.dm"
|
|
||||||
#include "code\_helpers\files.dm"
|
#include "code\_helpers\files.dm"
|
||||||
#include "code\_helpers\game.dm"
|
#include "code\_helpers\game.dm"
|
||||||
#include "code\_helpers\global_lists.dm"
|
#include "code\_helpers\global_lists.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user