Fixed the map/code issues that the body bags caused.

/obj/effects is now /obj/effect.
/obj/station_objects is now /obj/structure.
Did a bit of minor blob work. 
The Bay 12 body bags were replaced with closets because having two sets of code that do almost the same thing is silly.
Changed back a few of the last jobproc edits as the remove from list before assign was a check to see if the mob was fucked up and if it was remove it so we did not check it again as it would still be fucked up.
The medbay/tox monkeys names are random once more.  More random name monkeys will help with changeling and clean up the observe/mob menus.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2324 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-10-03 10:28:57 +00:00
parent e8c6b08419
commit 17ed3899c4
314 changed files with 9099 additions and 9118 deletions

View File

@@ -160,7 +160,7 @@ obj/machinery/atmospherics/pipe
proc/burst()
src.visible_message("\red \bold [src] bursts!");
playsound(src.loc, 'bang.ogg', 25, 1)
var/datum/effects/system/harmless_smoke_spread/smoke = new
var/datum/effect/system/harmless_smoke_spread/smoke = new
smoke.set_up(1,0, src.loc, 0)
smoke.start()
del(src)

View File

@@ -33,7 +33,7 @@ turf/space
create_meteor(direction as num)
set src in world
var/obj/effects/meteor/M = new( src )
var/obj/effect/meteor/M = new( src )
walk(M, direction,10)
@@ -515,7 +515,7 @@ mob
fire_report()
set category = "Debug"
usr << "\b \red Fire Report"
for(var/obj/effects/hotspot/flame in world)
for(var/obj/effect/hotspot/flame in world)
usr << "[flame.x],[flame.y]: [flame.temperature]K, [flame.volume] L - [flame.loc:air:temperature]"
process_cycle()

View File

@@ -45,7 +45,7 @@ turf
return igniting
obj
effects/hotspot
effect/hotspot
//Icon for fire on turfs, also helps for nurturing small fires until they are full tile
anchored = 1

View File

@@ -117,7 +117,7 @@ turf
archived_cycle = 0
current_cycle = 0
obj/effects/hotspot/active_hotspot
obj/effect/hotspot/active_hotspot
temperature_archived //USED ONLY FOR SOLIDS
being_superconductive = 0

View File

@@ -6,7 +6,7 @@
log_admin("[key_name(usr)] has left build mode.")
M.client.buildmode = 0
M.client.show_popup_menus = 1
for(var/obj/effects/bmode/buildholder/H)
for(var/obj/effect/bmode/buildholder/H)
if(H.cl == M.client)
del(H)
else
@@ -14,14 +14,14 @@
M.client.buildmode = 1
M.client.show_popup_menus = 0
var/obj/effects/bmode/buildholder/H = new/obj/effects/bmode/buildholder()
var/obj/effects/bmode/builddir/A = new/obj/effects/bmode/builddir(H)
var/obj/effect/bmode/buildholder/H = new/obj/effect/bmode/buildholder()
var/obj/effect/bmode/builddir/A = new/obj/effect/bmode/builddir(H)
A.master = H
var/obj/effects/bmode/buildhelp/B = new/obj/effects/bmode/buildhelp(H)
var/obj/effect/bmode/buildhelp/B = new/obj/effect/bmode/buildhelp(H)
B.master = H
var/obj/effects/bmode/buildmode/C = new/obj/effects/bmode/buildmode(H)
var/obj/effect/bmode/buildmode/C = new/obj/effect/bmode/buildmode(H)
C.master = H
var/obj/effects/bmode/buildquit/D = new/obj/effects/bmode/buildquit(H)
var/obj/effect/bmode/buildquit/D = new/obj/effect/bmode/buildquit(H)
D.master = H
H.builddir = A
@@ -34,15 +34,15 @@
M.client.screen += D
H.cl = M.client
/obj/effects/bmode//Cleaning up the tree a bit
/obj/effect/bmode//Cleaning up the tree a bit
density = 1
anchored = 1
layer = 20
dir = NORTH
icon = 'buildmode.dmi'
var/obj/effects/bmode/buildholder/master = null
var/obj/effect/bmode/buildholder/master = null
/obj/effects/bmode/builddir
/obj/effect/bmode/builddir
icon_state = "build"
screen_loc = "NORTH,WEST"
Click()
@@ -59,7 +59,7 @@
dir = NORTH
return
/obj/effects/bmode/buildhelp
/obj/effect/bmode/buildhelp
icon = 'buildmode.dmi'
icon_state = "buildhelp"
screen_loc = "NORTH,WEST+1"
@@ -97,29 +97,29 @@
usr << "\blue ***********************************************************"
return
/obj/effects/bmode/buildquit
/obj/effect/bmode/buildquit
icon_state = "buildquit"
screen_loc = "NORTH,WEST+3"
Click()
togglebuildmode(master.cl.mob)
/obj/effects/bmode/buildholder
/obj/effect/bmode/buildholder
density = 0
anchored = 1
var/client/cl = null
var/obj/effects/bmode/builddir/builddir = null
var/obj/effects/bmode/buildhelp/buildhelp = null
var/obj/effects/bmode/buildmode/buildmode = null
var/obj/effects/bmode/buildquit/buildquit = null
var/obj/effect/bmode/builddir/builddir = null
var/obj/effect/bmode/buildhelp/buildhelp = null
var/obj/effect/bmode/buildmode/buildmode = null
var/obj/effect/bmode/buildquit/buildquit = null
var/atom/movable/throw_atom = null
/obj/effects/bmode/buildmode
/obj/effect/bmode/buildmode
icon_state = "buildmode1"
screen_loc = "NORTH,WEST+2"
var/varholder = "name"
var/valueholder = "derp"
var/objholder = "/obj/station_objects/closet"
var/objholder = "/obj/structure/closet"
Click(location, control, params)
var/list/pa = params2list(params)
@@ -144,13 +144,13 @@
if(1)
return
if(2)
objholder = input(usr,"Enter typepath:" ,"Typepath","/obj/station_objects/closet")
var/list/removed_paths = list("/obj/effects/bhole")
objholder = input(usr,"Enter typepath:" ,"Typepath","/obj/structure/closet")
var/list/removed_paths = list("/obj/effect/bhole")
if(objholder in removed_paths)
alert("That path is not allowed.")
objholder = "/obj/station_objects/closet"
objholder = "/obj/structure/closet"
else if (dd_hasprefix(objholder, "/mob") && !(usr.client.holder.rank in list("Game Master", "Game Admin", "Badmin")))
objholder = "/obj/station_objects/closet"
objholder = "/obj/structure/closet"
if(3)
var/list/locked = list("vars", "key", "ckey", "client", "firemut", "ishulk", "telekinesis", "xray", "virus", "viruses", "cuffed", "ka", "last_eaten", "urine")
@@ -173,8 +173,8 @@
/proc/build_click(var/mob/user, buildmode, location, control, params, var/obj/object)
var/obj/effects/bmode/buildholder/holder = null
for(var/obj/effects/bmode/buildholder/H)
var/obj/effect/bmode/buildholder/holder = null
for(var/obj/effect/bmode/buildholder/H)
if(H.cl == user.client)
holder = H
break
@@ -217,19 +217,19 @@
else if(istype(object,/turf) && pa.Find("ctrl") && pa.Find("left"))
switch(holder.builddir.dir)
if(NORTH)
var/obj/station_objects/window/reinforced/WIN = new/obj/station_objects/window/reinforced(get_turf(object))
var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
WIN.dir = NORTH
if(SOUTH)
var/obj/station_objects/window/reinforced/WIN = new/obj/station_objects/window/reinforced(get_turf(object))
var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
WIN.dir = SOUTH
if(EAST)
var/obj/station_objects/window/reinforced/WIN = new/obj/station_objects/window/reinforced(get_turf(object))
var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
WIN.dir = EAST
if(WEST)
var/obj/station_objects/window/reinforced/WIN = new/obj/station_objects/window/reinforced(get_turf(object))
var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
WIN.dir = WEST
if(NORTHWEST)
var/obj/station_objects/window/reinforced/WIN = new/obj/station_objects/window/reinforced(get_turf(object))
var/obj/structure/window/reinforced/WIN = new/obj/structure/window/reinforced(get_turf(object))
WIN.dir = NORTHWEST
if(2)
if(pa.Find("left"))

View File

@@ -1,4 +1,4 @@
/obj/effects/expl_particles
/obj/effect/expl_particles
name = "fire"
icon = 'effects.dmi'
icon_state = "explosion_particle"
@@ -6,37 +6,37 @@
anchored = 1
mouse_opacity = 0
/obj/effects/expl_particles/New()
/obj/effect/expl_particles/New()
..()
spawn (15)
del(src)
return
/obj/effects/expl_particles/Move()
/obj/effect/expl_particles/Move()
..()
return
/datum/effects/system/expl_particles
/datum/effect/system/expl_particles
var/number = 10
var/turf/location
var/total_particles = 0
/datum/effects/system/expl_particles/proc/set_up(n = 10, loca)
/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/effects/system/expl_particles/proc/start()
/datum/effect/system/expl_particles/proc/start()
var/i = 0
for(i=0, i<src.number, i++)
spawn(0)
var/obj/effects/expl_particles/expl = new /obj/effects/expl_particles(src.location)
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/effects/explosion
/obj/effect/explosion
name = "fire"
icon = '96x96.dmi'
icon_state = "explosion"
@@ -46,25 +46,25 @@
pixel_x = -32
pixel_y = -32
/obj/effects/explosion/New()
/obj/effect/explosion/New()
..()
spawn (10)
del(src)
return
/datum/effects/system/explosion
/datum/effect/system/explosion
var/turf/location
/datum/effects/system/explosion/proc/set_up(loca)
/datum/effect/system/explosion/proc/set_up(loca)
if(istype(loca, /turf/)) location = loca
else location = get_turf(loca)
/datum/effects/system/explosion/proc/start()
new/obj/effects/explosion( location )
var/datum/effects/system/expl_particles/P = new/datum/effects/system/expl_particles()
/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/effects/system/harmless_smoke_spread/S = new/datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/S = new/datum/effect/system/harmless_smoke_spread()
S.set_up(5,0,location,null)
S.start()

View File

@@ -4,15 +4,15 @@
#define CYBER 1
#define SPELL 2
/obj/effects/organstructure //used obj for the "contents" var
/obj/effect/organstructure //used obj for the "contents" var
name = "organs"
var/obj/item/weapon/cell/mainPowerCell = null //for ease of refernce for installed c. implants
var/species = "mob" //for speaking in unknown languages purposes
var/obj/effects/organ/limb/arms/arms = null
var/obj/effects/organ/limb/legs/legs = null
var/obj/effects/organ/chest/chest = null
var/obj/effect/organ/limb/arms/arms = null
var/obj/effect/organ/limb/legs/legs = null
var/obj/effect/organ/chest/chest = null
proc/FindMainPowercell()
if(chest) //priority goes to chest implant, if there is one
@@ -20,7 +20,7 @@
mainPowerCell = chest.cell
return
var/list/organs = GetAllContents()
for(var/obj/effects/organ/otherOrgan in organs) //otherwise, maybe some other organ fits the criteria?
for(var/obj/effect/organ/otherOrgan in organs) //otherwise, maybe some other organ fits the criteria?
if((otherOrgan.organType & CYBER) && otherOrgan.canExportPower && otherOrgan.cell)
mainPowerCell = otherOrgan:cell
return
@@ -30,7 +30,7 @@
proc/GetSpeciesName()
var/list/speciesPresent = list()
for(var/obj/effects/organ/organ in src) //only external organs count, since it's judging by the appearance
for(var/obj/effect/organ/organ in src) //only external organs count, since it's judging by the appearance
if(speciesPresent[organ.species])
speciesPresent[organ.species]++
else
@@ -57,9 +57,9 @@
proc/RecalculateStructure()
var/list/organs = GetAllContents()
arms = locate(/obj/effects/organ/limb/arms) in organs
legs = locate(/obj/effects/organ/limb/legs) in organs
chest = locate(/obj/effects/organ/chest) in organs
arms = locate(/obj/effect/organ/limb/arms) in organs
legs = locate(/obj/effect/organ/limb/legs) in organs
chest = locate(/obj/effect/organ/chest) in organs
GetSpeciesName()
FindMainPowercell()
@@ -70,7 +70,7 @@
set background = 1
var/list/organs = GetAllContents()
for(var/obj/effects/organ/organ in organs)
for(var/obj/effect/organ/organ in organs)
organ.ProcessOrgan()
return
@@ -79,31 +79,31 @@
..()
RecalculateStructure()
/obj/effects/organstructure/human
/obj/effect/organstructure/human
name = "human organs"
New()
//new /obj/effects/organ/limb/arms/human(src)
//new /obj/effects/organ/limb/legs/human(src)
new /obj/effects/organ/chest/human(src)
//new /obj/effect/organ/limb/arms/human(src)
//new /obj/effect/organ/limb/legs/human(src)
new /obj/effect/organ/chest/human(src)
..()
/obj/effects/organstructure/cyber
/obj/effect/organstructure/cyber
name = "cyborg organs"
New()
//new /obj/effects/organ/limb/arms/cyber(src)
//new /obj/effects/organ/limb/legs/cyber(src)
new /obj/effects/organ/chest/cyber(src)
//new /obj/effect/organ/limb/arms/cyber(src)
//new /obj/effect/organ/limb/legs/cyber(src)
new /obj/effect/organ/chest/cyber(src)
..()
/obj/effects/organ
/obj/effect/organ
name = "organ"
//All types
var/organType = 0 //CYBER and SPELL go here
var/species = "mob"
var/obj/effects/organstructure/rootOrganStructure = null
var/obj/effect/organstructure/rootOrganStructure = null
New(location)
..()
@@ -111,10 +111,10 @@
rootOrganStructure = FindRootStructure()
proc/FindRootStructure()
if(istype(loc,/obj/effects/organ))
var/obj/effects/organ/parent = loc
if(istype(loc,/obj/effect/organ))
var/obj/effect/organ/parent = loc
return parent.FindRootStructure()
else if(istype(loc,/obj/effects/organstructure))
else if(istype(loc,/obj/effect/organstructure))
return loc
return null
@@ -159,23 +159,23 @@
active = 0
return
/obj/effects/organ/limb
/obj/effect/organ/limb
name = "limb"
/obj/effects/organ/limb/arms
/obj/effect/organ/limb/arms
name = "arms"
var/minDamage = 5 //punching damage
var/maxDamage = 5
// var/strangleDelay = 1 //The code is a bit too complicated for that right now
/obj/effects/organ/limb/arms/human
/obj/effect/organ/limb/arms/human
name = "human arms"
species = "human"
minDamage = 1
maxDamage = 9
/obj/effects/organ/limb/arms/cyber
/obj/effect/organ/limb/arms/cyber
name = "cyborg arms"
species = "cyborg"
organType = CYBER
@@ -192,18 +192,18 @@
maxDamage = 3
/obj/effects/organ/limb/legs
/obj/effect/organ/limb/legs
name = "legs"
var/moveRunDelay = 1 //not sure about how that works
var/moveWalkDelay = 7
//var/knockdownResist = 0
/obj/effects/organ/limb/legs/human
/obj/effect/organ/limb/legs/human
name = "human legs"
species = "human"
/obj/effects/organ/limb/legs/cyber
/obj/effect/organ/limb/legs/cyber
name = "cyborg legs"
species = "cyborg"
organType = CYBER
@@ -220,21 +220,21 @@
moveWalkDelay = 10
/obj/effects/organ/chest
/obj/effect/organ/chest
name = "chest"
var/maxHealth = 50 //right now, the mob's (only humans for now) health depends only on it. Will be fixed later
/obj/effects/organ/chest/human
/obj/effect/organ/chest/human
name = "human chest"
species = "human"
maxHealth = 100
New()
..()
new /obj/effects/organ/limb/arms/human(src)
new /obj/effects/organ/limb/legs/human(src)
new /obj/effect/organ/limb/arms/human(src)
new /obj/effect/organ/limb/legs/human(src)
/obj/effects/organ/chest/cyber
/obj/effect/organ/chest/cyber
name = "cyborg chest"
species = "cyborg"
organType = CYBER
@@ -245,8 +245,8 @@
..()
cell = new /obj/item/weapon/cell/high(src)
cell.charge = cell.maxcharge
new /obj/effects/organ/limb/arms/cyber(src)
new /obj/effects/organ/limb/legs/cyber(src)
new /obj/effect/organ/limb/arms/cyber(src)
new /obj/effect/organ/limb/legs/cyber(src)
Activate()
..()

View File

@@ -1,6 +1,6 @@
// Disposal pipe construction
/obj/station_objects/disposalconstruct
/obj/structure/disposalconstruct
name = "disposal pipe segment"
desc = "A huge pipe segment used for constructing disposal systems."
@@ -88,11 +88,11 @@
proc/dpipetype()
switch(ptype)
if(0,1)
return /obj/station_objects/disposalpipe/segment
return /obj/structure/disposalpipe/segment
if(2,3,4)
return /obj/station_objects/disposalpipe/junction
return /obj/structure/disposalpipe/junction
if(5)
return /obj/station_objects/disposalpipe/trunk
return /obj/structure/disposalpipe/trunk
return
@@ -107,11 +107,11 @@
user << "You can only attach the pipe if the floor plating is removed."
return
var/obj/station_objects/disposalpipe/CP = locate() in T
var/obj/structure/disposalpipe/CP = locate() in T
if(CP)
update()
var/pdir = CP.dpdir
if(istype(CP, /obj/station_objects/disposalpipe/broken))
if(istype(CP, /obj/structure/disposalpipe/broken))
pdir = CP.dir
if(pdir & dpdir)
user << "There is already a pipe at that location."
@@ -139,7 +139,7 @@
if(do_after(user, 20))
update()
var/pipetype = dpipetype()
var/obj/station_objects/disposalpipe/P = new pipetype(src.loc)
var/obj/structure/disposalpipe/P = new pipetype(src.loc)
P.base_icon_state = base_state
P.dir = dir
P.dpdir = dpdir

View File

@@ -16,7 +16,7 @@
var/datum/gas_mixture/air_contents // internal reservoir
var/mode = 1 // item mode 0=off 1=charging 2=charged
var/flush = 0 // true if flush handle is pulled
var/obj/station_objects/disposalpipe/trunk/trunk = null // the attached pipe trunk
var/obj/structure/disposalpipe/trunk/trunk = null // the attached pipe trunk
var/flushing = 0 // true if flushing in progress
// create a new disposal
@@ -307,7 +307,7 @@
flushing = 1
flick("disposal-flush", src)
var/obj/station_objects/disposalholder/H = new() // virtual holder object which actually
var/obj/structure/disposalholder/H = new() // virtual holder object which actually
// travels through the pipes.
@@ -339,7 +339,7 @@
// called when holder is expelled from a disposal
// should usually only occur if the pipe network is modified
proc/expel(var/obj/station_objects/disposalholder/H)
proc/expel(var/obj/structure/disposalholder/H)
var/turf/target
playsound(src, 'hiss.ogg', 50, 0, 0)
@@ -432,7 +432,7 @@
flush()
flick("toilet-flush", src)
var/obj/station_objects/disposalholder/H = new()
var/obj/structure/disposalholder/H = new()
H.init(src)
sleep(10)
playsound(src, 'disposalflush.ogg', 50, 0, 0)
@@ -447,7 +447,7 @@
// contents will be items flushed by the disposal
// this allows the gas flushed to be tracked
/obj/station_objects/disposalholder
/obj/structure/disposalholder
invisibility = 101
var/datum/gas_mixture/gas = null // gas used to flush, will appear at exit point
var/active = 0 // true if the holder is moving, otherwise inactive
@@ -470,8 +470,8 @@
var/mob/living/carbon/human/H = AM
if(H.mutations & FAT) // is a human and fat?
has_fat_guy = 1 // set flag on holder
if(istype(AM, /obj/effects/bigDelivery))
var/obj/effects/bigDelivery/T = AM
if(istype(AM, /obj/effect/bigDelivery))
var/obj/effect/bigDelivery/T = AM
src.destinationTag = T.sortTag
if(istype(AM, /obj/item/smallDelivery))
var/obj/item/smallDelivery/T = AM
@@ -495,7 +495,7 @@
// movement process, persists while holder is moving through pipes
process()
var/obj/station_objects/disposalpipe/last
var/obj/structure/disposalpipe/last
while(active)
if(has_fat_guy && prob(2)) // chance of becoming stuck per segment if contains a fat guy
active = 0
@@ -504,7 +504,7 @@
break
sleep(1) // was 1
var/obj/station_objects/disposalpipe/curr = loc
var/obj/structure/disposalpipe/curr = loc
last = curr
curr = curr.transfer(src)
if(!curr)
@@ -528,7 +528,7 @@
return null
var/fdir = turn(dir, 180) // flip the movement direction
for(var/obj/station_objects/disposalpipe/P in T)
for(var/obj/structure/disposalpipe/P in T)
if(fdir & P.dpdir) // find pipe direction mask that matches flipped dir
return P
// if no matching pipe, return null
@@ -536,7 +536,7 @@
// merge two holder objects
// used when a a holder meets a stuck holder
proc/merge(var/obj/station_objects/disposalholder/other)
proc/merge(var/obj/structure/disposalholder/other)
for(var/atom/movable/AM in other)
AM.loc = src // move everything in other holder to this one
if(ismob(AM))
@@ -566,7 +566,7 @@
// Disposal pipes
/obj/station_objects/disposalpipe
/obj/structure/disposalpipe
icon = 'disposal.dmi'
name = "disposal pipe"
desc = "An underfloor disposal pipe."
@@ -590,7 +590,7 @@
// pipe is deleted
// ensure if holder is present, it is expelled
Del()
var/obj/station_objects/disposalholder/H = locate() in src
var/obj/structure/disposalholder/H = locate() in src
if(H)
// holder was present
H.active = 0
@@ -618,15 +618,15 @@
// transfer the holder through this pipe segment
// overriden for special behaviour
//
proc/transfer(var/obj/station_objects/disposalholder/H)
proc/transfer(var/obj/structure/disposalholder/H)
var/nextdir = nextdir(H.dir)
H.dir = nextdir
var/turf/T = H.nextloc()
var/obj/station_objects/disposalpipe/P = H.findpipe(T)
var/obj/structure/disposalpipe/P = H.findpipe(T)
if(P)
// find other holder in next loc, if inactive merge it with current
var/obj/station_objects/disposalholder/H2 = locate() in P
var/obj/structure/disposalholder/H2 = locate() in P
if(H2 && !H2.active)
H.merge(H2)
@@ -665,7 +665,7 @@
// called when there is a break in the pipe
//
proc/expel(var/obj/station_objects/disposalholder/H, var/turf/T, var/direction)
proc/expel(var/obj/structure/disposalholder/H, var/turf/T, var/direction)
var/turf/target
@@ -723,11 +723,11 @@
if(remains)
for(var/D in cardinal)
if(D & dpdir)
var/obj/station_objects/disposalpipe/broken/P = new(src.loc)
var/obj/structure/disposalpipe/broken/P = new(src.loc)
P.dir = D
src.invisibility = 101 // make invisible (since we won't delete the pipe immediately)
var/obj/station_objects/disposalholder/H = locate() in src
var/obj/structure/disposalholder/H = locate() in src
if(H)
// holder was present
H.active = 0
@@ -807,7 +807,7 @@
// called when pipe is cut with welder
proc/welded()
var/obj/station_objects/disposalconstruct/C = new (src.loc)
var/obj/structure/disposalconstruct/C = new (src.loc)
switch(base_icon_state)
if("pipe-s")
C.ptype = 0
@@ -829,11 +829,11 @@
// *** TEST verb
//client/verb/dispstop()
// for(var/obj/station_objects/disposalholder/H in world)
// for(var/obj/structure/disposalholder/H in world)
// H.active = 0
// a straight or bent segment
/obj/station_objects/disposalpipe/segment
/obj/structure/disposalpipe/segment
icon_state = "pipe-s"
New()
@@ -850,7 +850,7 @@
//a three-way junction with dir being the dominant direction
/obj/station_objects/disposalpipe/junction
/obj/structure/disposalpipe/junction
icon_state = "pipe-j1"
New()
@@ -894,7 +894,7 @@
return mask & (~setbit)
//a three-way junction that sorts objects
/obj/station_objects/disposalpipe/sortjunction
/obj/structure/disposalpipe/sortjunction
desc = "An underfloor disposal pipe with a package sorting mechanism."
icon_state = "pipe-j1s"
@@ -936,15 +936,15 @@
// so go with the flow to positive direction
return posdir
transfer(var/obj/station_objects/disposalholder/H)
transfer(var/obj/structure/disposalholder/H)
var/nextdir = nextdir(H.dir, H.destinationTag)
H.dir = nextdir
var/turf/T = H.nextloc()
var/obj/station_objects/disposalpipe/P = H.findpipe(T)
var/obj/structure/disposalpipe/P = H.findpipe(T)
if(P)
// find other holder in next loc, if inactive merge it with current
var/obj/station_objects/disposalholder/H2 = locate() in P
var/obj/structure/disposalholder/H2 = locate() in P
if(H2 && !H2.active)
H.merge(H2)
@@ -960,7 +960,7 @@
//a trunk joining to a disposal bin or outlet on the same turf
/obj/station_objects/disposalpipe/trunk
/obj/structure/disposalpipe/trunk
icon_state = "pipe-t"
var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet
@@ -981,7 +981,7 @@
if (!D.trunk)
D.trunk = src
var/obj/station_objects/disposaloutlet/O = locate() in src.loc
var/obj/structure/disposaloutlet/O = locate() in src.loc
if(O)
linked = O
@@ -992,13 +992,13 @@
// if not entering from disposal bin,
// transfer to linked object (outlet or bin)
transfer(var/obj/station_objects/disposalholder/H)
transfer(var/obj/structure/disposalholder/H)
if(H.dir == DOWN) // we just entered from a disposer
return ..() // so do base transfer proc
// otherwise, go to the linked object
if(linked)
var/obj/station_objects/disposaloutlet/O = linked
var/obj/structure/disposaloutlet/O = linked
if(istype(O))
O.expel(H) // expel at outlet
else
@@ -1017,7 +1017,7 @@
return 0
// a broken pipe
/obj/station_objects/disposalpipe/broken
/obj/structure/disposalpipe/broken
icon_state = "pipe-b"
dpdir = 0 // broken pipes have dpdir=0 so they're not found as 'real' pipes
// i.e. will be treated as an empty turf
@@ -1038,7 +1038,7 @@
// the disposal outlet machine
/obj/station_objects/disposaloutlet
/obj/structure/disposaloutlet
name = "disposal outlet"
desc = "An outlet for the pneumatic disposal system."
icon = 'disposal.dmi'
@@ -1056,7 +1056,7 @@
// expel the contents of the holder object, then delete it
// called when the holder exits the outlet
proc/expel(var/obj/station_objects/disposalholder/H)
proc/expel(var/obj/structure/disposalholder/H)
flick("outlet-open", src)
playsound(src, 'warning-buzzer.ogg', 50, 0, 0)
@@ -1091,7 +1091,7 @@
return
/obj/effects/decal/cleanable/blood/gibs/pipe_eject(var/direction)
/obj/effect/decal/cleanable/blood/gibs/pipe_eject(var/direction)
var/list/dirs
if(direction)
dirs = list( direction, turn(direction, -45), turn(direction, 45))
@@ -1100,7 +1100,7 @@
src.streak(dirs)
/obj/effects/decal/cleanable/robot_debris/gib/pipe_eject(var/direction)
/obj/effect/decal/cleanable/robot_debris/gib/pipe_eject(var/direction)
var/list/dirs
if(direction)
dirs = list( direction, turn(direction, -45), turn(direction, 45))

View File

@@ -1,4 +1,4 @@
/obj/effects/bigDelivery
/obj/effect/bigDelivery
desc = "A big wrapped package."
name = "large parcel"
icon = 'storage.dmi'
@@ -13,8 +13,8 @@
attack_hand(mob/user as mob)
if (src.wrapped) //sometimes items can disappear. For example, bombs. --rastaf0
src.wrapped.loc = (get_turf(src.loc))
if (istype(src.wrapped,/obj/station_objects/closet))
var/obj/station_objects/closet/O = src.wrapped
if (istype(src.wrapped,/obj/structure/closet))
var/obj/structure/closet/O = src.wrapped
O.welded = 0
del(src)
return
@@ -70,19 +70,19 @@
P.wrapped = O
O.loc = P
src.amount -= 1
else if (istype(target, /obj/station_objects/crate))
var/obj/station_objects/crate/O = target
else if (istype(target, /obj/structure/crate))
var/obj/structure/crate/O = target
if (src.amount > 3)
var/obj/effects/bigDelivery/P = new /obj/effects/bigDelivery(get_turf(O.loc))
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc))
P.wrapped = O
O.loc = P
src.amount -= 3
else
user << "\blue You need more paper."
else if (istype (target, /obj/station_objects/closet))
var/obj/station_objects/closet/O = target
else if (istype (target, /obj/structure/closet))
var/obj/structure/closet/O = target
if (src.amount > 3)
var/obj/effects/bigDelivery/P = new /obj/effects/bigDelivery(get_turf(O.loc))
var/obj/effect/bigDelivery/P = new /obj/effect/bigDelivery(get_turf(O.loc))
P.wrapped = O
O.close()
O.welded = 1
@@ -149,9 +149,9 @@
user << "/blue You can only tag properly wrapped delivery packages!"
*/
attack(target as obj, mob/user as mob)
if (istype(target, /obj/effects/bigDelivery))
if (istype(target, /obj/effect/bigDelivery))
user << "\blue *TAGGED*"
var/obj/effects/bigDelivery/O = target
var/obj/effect/bigDelivery/O = target
O.sortTag = src.currTag
else if (istype(target, /obj/item/smallDelivery))
user << "\blue *TAGGED*"
@@ -183,9 +183,9 @@
flushing = 1
flick("intake-closing", src)
var/deliveryCheck = 0
var/obj/station_objects/disposalholder/H = new() // virtual holder object which actually
var/obj/structure/disposalholder/H = new() // virtual holder object which actually
// travels through the pipes.
for(var/obj/effects/bigDelivery/O in src)
for(var/obj/effect/bigDelivery/O in src)
deliveryCheck = 1
if(O.sortTag == 0)
O.sortTag = 1

View File

@@ -17,7 +17,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
for (var/obj/C in src)
@@ -29,7 +29,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/curer/M = new /obj/item/weapon/circuitboard/curer( A )
for (var/obj/C in src)
C.loc = src.loc

View File

@@ -22,7 +22,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
for (var/obj/C in src)
@@ -34,7 +34,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/diseasesplicer/M = new /obj/item/weapon/circuitboard/diseasesplicer( A )
for (var/obj/C in src)
C.loc = src.loc

View File

@@ -113,7 +113,7 @@ STI KALY - blind
var/area/thearea = pick(theareas)
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(5, 0, affected_mob.loc)
smoke.attach(affected_mob)
smoke.start()

View File

@@ -1,9 +1,9 @@
/obj/effects/proc_holder
/obj/effect/proc_holder
var/panel = "Debug"//What panel the proc holder needs to go on.
var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmin verb for now
var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin verb for now
/obj/effects/proc_holder/spell
/obj/effect/proc_holder/spell
name = "Spell"
desc = "A wizard spell"
density = 0
@@ -33,7 +33,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
var/critfailchance = 0
/obj/effects/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
/obj/effect/proc_holder/spell/proc/cast_check(skipcharge = 0,mob/user = usr) //checks if the spell can be cast based on its settings; skipcharge is used when an additional cast_check is called inside the spell
if(!(src in usr.spell_list))
usr << "\red You shouldn't have this spell! Something's wrong."
@@ -74,7 +74,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
return 1
/obj/effects/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount
/obj/effect/proc_holder/spell/proc/invocation(mob/user = usr) //spelling the spell out and setting it on recharge/reducing charges amount
switch(invocation_type)
if("shout")
@@ -86,12 +86,12 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
if("whisper")
usr.whisper(invocation)
/obj/effects/proc_holder/spell/New()
/obj/effect/proc_holder/spell/New()
..()
charge_counter = charge_max
/obj/effects/proc_holder/spell/Click()
/obj/effect/proc_holder/spell/Click()
..()
if(!cast_check())
@@ -99,15 +99,15 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
choose_targets()
/obj/effects/proc_holder/spell/proc/choose_targets(mob/user = usr) //depends on subtype - /targeted or /aoe_turf
/obj/effect/proc_holder/spell/proc/choose_targets(mob/user = usr) //depends on subtype - /targeted or /aoe_turf
return
/obj/effects/proc_holder/spell/proc/start_recharge()
/obj/effect/proc_holder/spell/proc/start_recharge()
while(charge_counter < charge_max)
sleep(1)
charge_counter++
/obj/effects/proc_holder/spell/proc/perform(list/targets, recharge = 1) //if recharge is started is important for the trigger spells
/obj/effect/proc_holder/spell/proc/perform(list/targets, recharge = 1) //if recharge is started is important for the trigger spells
before_cast(targets)
invocation()
spawn(0)
@@ -119,7 +119,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
cast(targets)
after_cast(targets)
/obj/effects/proc_holder/spell/proc/before_cast(list/targets)
/obj/effect/proc_holder/spell/proc/before_cast(list/targets)
if(overlay)
for(var/atom/target in targets)
var/location
@@ -127,7 +127,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
location = target.loc
else if(istype(target,/turf))
location = target
var/obj/effects/overlay/spell = new /obj/effects/overlay(location)
var/obj/effect/overlay/spell = new /obj/effect/overlay(location)
spell.icon = overlay_icon
spell.icon_state = overlay_icon_state
spell.anchored = 1
@@ -135,7 +135,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
spawn(overlay_lifespan)
del(spell)
/obj/effects/proc_holder/spell/proc/after_cast(list/targets)
/obj/effect/proc_holder/spell/proc/after_cast(list/targets)
for(var/atom/target in targets)
var/location
if(istype(target,/mob))
@@ -145,26 +145,26 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
if(istype(target,/mob) && message)
target << text("[message]")
if(sparks_spread)
var/datum/effects/system/spark_spread/sparks = new /datum/effects/system/spark_spread()
var/datum/effect/system/spark_spread/sparks = new /datum/effect/system/spark_spread()
sparks.set_up(sparks_amt, 0, location) //no idea what the 0 is
sparks.start()
if(smoke_spread)
if(smoke_spread == 1)
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is
smoke.start()
else if(smoke_spread == 2)
var/datum/effects/system/bad_smoke_spread/smoke = new /datum/effects/system/bad_smoke_spread()
var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread()
smoke.set_up(smoke_amt, 0, location) //no idea what the 0 is
smoke.start()
/obj/effects/proc_holder/spell/proc/cast(list/targets)
/obj/effect/proc_holder/spell/proc/cast(list/targets)
return
/obj/effects/proc_holder/spell/proc/critfail(list/targets)
/obj/effect/proc_holder/spell/proc/critfail(list/targets)
return
/obj/effects/proc_holder/spell/proc/revert_cast() //resets recharge or readds a charge
/obj/effect/proc_holder/spell/proc/revert_cast() //resets recharge or readds a charge
switch(charge_type)
if("recharge")
charge_counter = charge_max
@@ -174,15 +174,15 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
return
/obj/effects/proc_holder/spell/targeted //can mean aoe for mobs (limited/unlimited number) or one target mob
/obj/effect/proc_holder/spell/targeted //can mean aoe for mobs (limited/unlimited number) or one target mob
var/max_targets = 1 //leave 0 for unlimited targets in range, 1 for one selectable target in range, more for limited number of casts (can all target one guy, depends on target_ignore_prev) in range
var/target_ignore_prev = 1 //only important if max_targets > 1, affects if the spell can be cast multiple times at one person from one cast
var/include_user = 0 //if it includes usr in the target list
/obj/effects/proc_holder/spell/aoe_turf //affects all turfs in view or range (depends)
/obj/effect/proc_holder/spell/aoe_turf //affects all turfs in view or range (depends)
var/inner_radius = -1 //for all your ring spell needs
/obj/effects/proc_holder/spell/targeted/choose_targets(mob/user = usr)
/obj/effect/proc_holder/spell/targeted/choose_targets(mob/user = usr)
var/list/targets = list()
switch(selection_type)
@@ -250,7 +250,7 @@ var/list/spells = typesof(/obj/effects/proc_holder/spell) //needed for the badmi
return
/obj/effects/proc_holder/spell/aoe_turf/choose_targets(mob/user = usr)
/obj/effect/proc_holder/spell/aoe_turf/choose_targets(mob/user = usr)
var/list/targets = list()
switch(selection_type)

View File

@@ -1,11 +1,11 @@
/obj/effects/proc_holder/spell/targeted/area_teleport
/obj/effect/proc_holder/spell/targeted/area_teleport
name = "Area teleport"
desc = "This spell teleports you to a type of area of your selection."
var/randomise_selection = 0 //if it lets the usr choose the teleport loc or picks it from the list
var/invocation_area = 1 //if the invocation appends the selected area
/obj/effects/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1)
/obj/effect/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1)
var/thearea = before_cast(targets)
if(!thearea || !cast_check(1))
revert_cast()
@@ -17,7 +17,7 @@
cast(targets,thearea)
after_cast(targets)
/obj/effects/proc_holder/spell/targeted/area_teleport/before_cast(list/targets)
/obj/effect/proc_holder/spell/targeted/area_teleport/before_cast(list/targets)
var/A = null
if(!randomise_selection)
@@ -29,7 +29,7 @@
return thearea
/obj/effects/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea)
/obj/effect/proc_holder/spell/targeted/area_teleport/cast(list/targets,area/thearea)
for(var/mob/target in targets)
var/list/L = list()
for(var/turf/T in get_area_turfs(thearea.type))
@@ -46,7 +46,7 @@
return
/obj/effects/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null)
/obj/effect/proc_holder/spell/targeted/area_teleport/invocation(area/chosenarea = null)
if(!invocation_area || !chosenarea)
..()
else

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/aoe_turf/conjure
/obj/effect/proc_holder/spell/aoe_turf/conjure
name = "Conjure"
desc = "This spell conjures objs of the specified types in range."
@@ -13,7 +13,7 @@
var/list/newVars = list() //vars of the summoned objects will be replaced with those where they meet
//should have format of list("emagged" = 1,"name" = "Wizard's Justicebot"), for example
/obj/effects/proc_holder/spell/aoe_turf/conjure/cast(list/targets)
/obj/effect/proc_holder/spell/aoe_turf/conjure/cast(list/targets)
for(var/turf/T in targets)
if(T.density && !summon_ignore_density)
@@ -39,7 +39,7 @@
return
/obj/effects/proc_holder/spell/aoe_turf/conjure/summonEdSwarm //test purposes
/obj/effect/proc_holder/spell/aoe_turf/conjure/summonEdSwarm //test purposes
name = "Dispense Wizard Justice"
desc = "This spell dispenses wizard justice."

View File

@@ -1,11 +1,11 @@
/obj/effects/proc_holder/spell/targeted/emplosion
/obj/effect/proc_holder/spell/targeted/emplosion
name = "Emplosion"
desc = "This spell emplodes an area."
var/emp_heavy = 2
var/emp_light = 3
/obj/effects/proc_holder/spell/targeted/emplosion/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/emplosion/cast(list/targets)
for(var/mob/target in targets)
empulse(target.loc, emp_heavy, emp_light)

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/ethereal_jaunt
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt
name = "Ethereal Jaunt"
desc = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
@@ -12,11 +12,11 @@
var/jaunt_duration = 50 //in deciseconds
/obj/effects/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded
/obj/effect/proc_holder/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded
for(var/mob/target in targets)
spawn(0)
var/mobloc = get_turf(target.loc)
var/obj/effects/dummy/spell_jaunt/holder = new /obj/effects/dummy/spell_jaunt( mobloc )
var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc )
var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc )
animation.name = "water"
animation.density = 0
@@ -28,7 +28,7 @@
flick("liquify",animation)
target.loc = holder
target.client.eye = holder
var/datum/effects/system/steam_spread/steam = new /datum/effects/system/steam_spread()
var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread()
steam.set_up(10, 0, mobloc)
steam.start()
sleep(jaunt_duration)
@@ -46,7 +46,7 @@
del(animation)
del(holder)
/obj/effects/dummy/spell_jaunt
/obj/effect/dummy/spell_jaunt
name = "water"
icon = 'effects.dmi'
icon_state = "nothing"
@@ -54,7 +54,7 @@
density = 0
anchored = 1
/obj/effects/dummy/spell_jaunt/relaymove(var/mob/user, direction)
/obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction)
if (!src.canmove) return
var/turf/newLoc = get_step(src,direction)
if(!(newLoc.flags & NOJAUNT))
@@ -84,7 +84,7 @@
src.canmove = 0
spawn(2) src.canmove = 1
/obj/effects/dummy/spell_jaunt/ex_act(blah)
/obj/effect/dummy/spell_jaunt/ex_act(blah)
return
/obj/effects/dummy/spell_jaunt/bullet_act(blah)
/obj/effect/dummy/spell_jaunt/bullet_act(blah)
return

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/explosion
/obj/effect/proc_holder/spell/targeted/explosion
name = "Explosion"
desc = "This spell explodes an area."
@@ -7,7 +7,7 @@
var/ex_light = 3
var/ex_flash = 4
/obj/effects/proc_holder/spell/targeted/explosion/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/explosion/cast(list/targets)
for(var/mob/target in targets)
explosion(target.loc,ex_severe,ex_heavy,ex_light,ex_flash)

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/genetic
/obj/effect/proc_holder/spell/targeted/genetic
name = "Genetic"
desc = "This spell inflicts a set of mutations and disabilities upon the target."
@@ -22,7 +22,7 @@
6th bit - fat
*/
/obj/effects/proc_holder/spell/targeted/genetic/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/genetic/cast(list/targets)
for(var/mob/target in targets)
target.mutations |= mutations

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/inflict_handler
/obj/effect/proc_holder/spell/targeted/inflict_handler
name = "Inflict Handler"
desc = "This spell blinds and/or destroys/damages/heals and/or weakens/stuns the target."
@@ -16,7 +16,7 @@
var/destroys = "none" //can be "none", "gib" or "disintegrate"
/obj/effects/proc_holder/spell/targeted/inflict_handler/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/inflict_handler/cast(list/targets)
for(var/mob/living/target in targets)
switch(destroys)

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/aoe_turf/knock
/obj/effect/proc_holder/spell/aoe_turf/knock
name = "Knock"
desc = "This spell opens nearby doors and does not require wizard garb."
@@ -9,7 +9,7 @@
invocation_type = "whisper"
range = 3
/obj/effects/proc_holder/spell/aoe_turf/knock/cast(list/targets)
/obj/effect/proc_holder/spell/aoe_turf/knock/cast(list/targets)
for(var/turf/T in targets)
for(var/obj/machinery/door/door in T.contents)
spawn(1)

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/mind_transfer
/obj/effect/proc_holder/spell/targeted/mind_transfer
name = "Mind Transfer"
desc = "This spell allows the user to switch bodies with a target."
@@ -22,7 +22,7 @@ Urist: I don't feel like figuring out how you store object spells so I'm leaving
Make sure spells that are removed from spell_list are actually removed and deleted when mind transfering.
Also, you never added distance checking after target is selected. I've went ahead and did that.
*/
/obj/effects/proc_holder/spell/targeted/mind_transfer/cast(list/targets,mob/user = usr)
/obj/effect/proc_holder/spell/targeted/mind_transfer/cast(list/targets,mob/user = usr)
if(!targets.len)
user << "No mind found."
return
@@ -61,7 +61,7 @@ Also, you never added distance checking after target is selected. I've went ahea
//SPELL LOSS BEGIN
//NOTE: The caster must ALWAYS keep mind transfer, even when other spells are lost.
var/obj/effects/proc_holder/spell/targeted/mind_transfer/m_transfer = locate() in user.spell_list//Find mind transfer directly.
var/obj/effect/proc_holder/spell/targeted/mind_transfer/m_transfer = locate() in user.spell_list//Find mind transfer directly.
var/list/checked_spells = user.spell_list
checked_spells -= m_transfer //Remove Mind Transfer from the list.

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/projectile
/obj/effect/proc_holder/spell/targeted/projectile
name = "Projectile"
desc = "This spell summons projectiles which try to hit the targets."
@@ -11,7 +11,7 @@
var/proj_trail_icon = 'wizard.dmi'
var/proj_trail_icon_state = "trail"
var/proj_type = "/obj/effects/proc_holder/spell/targeted" //IMPORTANT use only subtypes of this
var/proj_type = "/obj/effect/proc_holder/spell/targeted" //IMPORTANT use only subtypes of this
var/proj_lingering = 0 //if it lingers or disappears upon hitting an obstacle
var/proj_homing = 1 //if it follows the target
@@ -21,16 +21,16 @@
var/proj_lifespan = 15 //in deciseconds * proj_step_delay
var/proj_step_delay = 1 //lower = faster
/obj/effects/proc_holder/spell/targeted/projectile/cast(list/targets, mob/user = usr)
/obj/effect/proc_holder/spell/targeted/projectile/cast(list/targets, mob/user = usr)
for(var/mob/target in targets)
spawn(0)
var/obj/effects/proc_holder/spell/targeted/projectile
var/obj/effect/proc_holder/spell/targeted/projectile
if(istext(proj_type))
var/projectile_type = text2path(proj_type)
projectile = new projectile_type(user)
if(istype(proj_type,/obj/effects/proc_holder/spell))
projectile = new /obj/effects/proc_holder/spell/targeted/trigger(user)
if(istype(proj_type,/obj/effect/proc_holder/spell))
projectile = new /obj/effect/proc_holder/spell/targeted/trigger(user)
projectile:linked_spells += proj_type
projectile.icon = proj_icon
projectile.icon_state = proj_icon_state
@@ -62,7 +62,7 @@
if(proj_trail && projectile)
spawn(0)
if(projectile)
var/obj/effects/overlay/trail = new /obj/effects/overlay(projectile.loc)
var/obj/effect/overlay/trail = new /obj/effect/overlay(projectile.loc)
trail.icon = proj_trail_icon
trail.icon_state = proj_trail_icon_state
trail.density = 0

View File

@@ -1,28 +1,28 @@
/obj/effects/proc_holder/spell/targeted/trigger
/obj/effect/proc_holder/spell/targeted/trigger
name = "Trigger"
desc = "This spell triggers another spell or a few."
var/list/linked_spells = list() //those are just referenced by the trigger spell and are unaffected by it directly
var/list/starting_spells = list() //those are added on New() to contents from default spells and are deleted when the trigger spell is deleted to prevent memory leaks
/obj/effects/proc_holder/spell/targeted/trigger/New()
/obj/effect/proc_holder/spell/targeted/trigger/New()
..()
for(var/spell in starting_spells)
var/spell_to_add = text2path(spell)
new spell_to_add(src) //should result in adding to contents, needs testing
/obj/effects/proc_holder/spell/targeted/trigger/Del()
/obj/effect/proc_holder/spell/targeted/trigger/Del()
for(var/spell in contents)
del(spell)
..()
/obj/effects/proc_holder/spell/targeted/trigger/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/trigger/cast(list/targets)
for(var/mob/target in targets)
for(var/obj/effects/proc_holder/spell/spell in contents)
for(var/obj/effect/proc_holder/spell/spell in contents)
spell.perform(list(target),0)
for(var/obj/effects/proc_holder/spell/spell in linked_spells)
for(var/obj/effect/proc_holder/spell/spell in linked_spells)
spell.perform(list(target),0)
return

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/turf_teleport
/obj/effect/proc_holder/spell/targeted/turf_teleport
name = "Turf Teleport"
desc = "This spell teleports the target to the turf in range."
@@ -8,7 +8,7 @@
var/include_space = 0 //whether it includes space tiles in possible teleport locations
var/include_dense = 0 //whether it includes dense tiles in possible teleport locations
/obj/effects/proc_holder/spell/targeted/turf_teleport/cast(list/targets)
/obj/effect/proc_holder/spell/targeted/turf_teleport/cast(list/targets)
for(var/mob/target in targets)
var/list/turfs = new/list()
for(var/turf/T in range(target,outer_tele_radius))

View File

@@ -1,4 +1,4 @@
/obj/effects/proc_holder/spell/targeted/projectile/magic_missile
/obj/effect/proc_holder/spell/targeted/projectile/magic_missile
name = "Magic Missile"
desc = "This spell fires several, slow moving, magic projectiles at nearby targets."
@@ -14,7 +14,7 @@
proj_icon_state = "magicm"
proj_name = "a magic missile"
proj_lingering = 1
proj_type = "/obj/effects/proc_holder/spell/targeted/inflict_handler/magic_missile"
proj_type = "/obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile"
proj_lifespan = 20
proj_step_delay = 5
@@ -23,11 +23,11 @@
proj_trail_lifespan = 5
proj_trail_icon_state = "magicmd"
/obj/effects/proc_holder/spell/targeted/inflict_handler/magic_missile
/obj/effect/proc_holder/spell/targeted/inflict_handler/magic_missile
amt_weaken = 5
amt_dam_fire = 10
/obj/effects/proc_holder/spell/targeted/genetic/mutate
/obj/effect/proc_holder/spell/targeted/genetic/mutate
name = "Mutate"
desc = "This spell causes you to turn into a hulk and gain laser vision for a short while."
@@ -43,7 +43,7 @@
mutations = LASER | HULK
duration = 300
/obj/effects/proc_holder/spell/targeted/inflict_handler/disintegrate
/obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate
name = "Disintegrate"
desc = "This spell instantly kills somebody adjacent to you with the vilest of magick."
@@ -59,7 +59,7 @@
sparks_spread = 1
sparks_amt = 4
/obj/effects/proc_holder/spell/targeted/smoke
/obj/effect/proc_holder/spell/targeted/smoke
name = "Smoke"
desc = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
@@ -74,7 +74,7 @@
smoke_spread = 2
smoke_amt = 10
/obj/effects/proc_holder/spell/targeted/emplosion/disable_tech
/obj/effect/proc_holder/spell/targeted/emplosion/disable_tech
name = "Disable Tech"
desc = "This spell disables all weapons, cameras and most other technology in range."
charge_max = 400
@@ -87,7 +87,7 @@
emp_heavy = 5
emp_light = 7
/obj/effects/proc_holder/spell/targeted/turf_teleport/blink
/obj/effect/proc_holder/spell/targeted/turf_teleport/blink
name = "Blink"
desc = "This spell randomly teleports you a short distance."
@@ -105,7 +105,7 @@
inner_tele_radius = 0
outer_tele_radius = 6
/obj/effects/proc_holder/spell/targeted/area_teleport/teleport
/obj/effect/proc_holder/spell/targeted/area_teleport/teleport
name = "Teleport"
desc = "This spell teleports you to a type of area of your selection."
@@ -120,7 +120,7 @@
smoke_spread = 1
smoke_amt = 5
/obj/effects/proc_holder/spell/aoe_turf/conjure/forcewall
/obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall
name = "Forcewall"
desc = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
@@ -131,10 +131,10 @@
invocation_type = "whisper"
range = 0
summon_type = list("/obj/effects/forcefield")
summon_type = list("/obj/effect/forcefield")
summon_lifespan = 300
/obj/effects/proc_holder/spell/aoe_turf/conjure/carp
/obj/effect/proc_holder/spell/aoe_turf/conjure/carp
name = "Summon Bigger Carp"
desc = "This spell conjures an elite carp."
@@ -145,9 +145,9 @@
invocation_type = "shout"
range = 1
summon_type = list("/obj/effects/critter/spesscarp/elite")
summon_type = list("/obj/effect/critter/spesscarp/elite")
/obj/effects/proc_holder/spell/targeted/trigger/blind
/obj/effect/proc_holder/spell/targeted/trigger/blind
name = "Blind"
desc = "This spell temporarily blinds a single person and does not require wizard garb."
@@ -158,17 +158,17 @@
invocation_type = "whisper"
message = "\blue Your eyes cry out in pain!"
starting_spells = list("/obj/effects/proc_holder/spell/targeted/inflict_handler/blind","/obj/effects/proc_holder/spell/targeted/genetic/blind")
starting_spells = list("/obj/effect/proc_holder/spell/targeted/inflict_handler/blind","/obj/effect/proc_holder/spell/targeted/genetic/blind")
/obj/effects/proc_holder/spell/targeted/inflict_handler/blind
/obj/effect/proc_holder/spell/targeted/inflict_handler/blind
amt_eye_blind = 10
amt_eye_blurry = 20
/obj/effects/proc_holder/spell/targeted/genetic/blind
/obj/effect/proc_holder/spell/targeted/genetic/blind
disabilities = 1
duration = 300
/obj/effects/proc_holder/spell/targeted/projectile/fireball
/obj/effect/proc_holder/spell/targeted/projectile/fireball
name = "Fireball"
desc = "This spell fires a fireball at a target and does not require wizard garb."
@@ -181,19 +181,19 @@
proj_icon_state = "fireball"
proj_name = "a fireball"
proj_lingering = 1
proj_type = "/obj/effects/proc_holder/spell/targeted/trigger/fireball"
proj_type = "/obj/effect/proc_holder/spell/targeted/trigger/fireball"
proj_lifespan = 200
proj_step_delay = 1
/obj/effects/proc_holder/spell/targeted/trigger/fireball
starting_spells = list("/obj/effects/proc_holder/spell/targeted/inflict_handler/fireball","/obj/effects/proc_holder/spell/targeted/explosion/fireball")
/obj/effect/proc_holder/spell/targeted/trigger/fireball
starting_spells = list("/obj/effect/proc_holder/spell/targeted/inflict_handler/fireball","/obj/effect/proc_holder/spell/targeted/explosion/fireball")
/obj/effects/proc_holder/spell/targeted/inflict_handler/fireball
/obj/effect/proc_holder/spell/targeted/inflict_handler/fireball
amt_dam_brute = 20
amt_dam_fire = 25
/obj/effects/proc_holder/spell/targeted/explosion/fireball
/obj/effect/proc_holder/spell/targeted/explosion/fireball
ex_severe = -1
ex_heavy = -1
ex_light = 2

View File

@@ -62,7 +62,7 @@ obj
else
return null
/atom/proc/meteorhit(obj/effects/meteor as obj)
/atom/proc/meteorhit(obj/effect/meteor as obj)
return
/atom/proc/allow_drop()
@@ -172,7 +172,7 @@ its easier to just keep the beam vertical.
dir=get_dir(src,BeamTarget) //Causes the source of the beam to rotate to continuosly face the BeamTarget.
for(var/obj/effects/overlay/beam/O in orange(10,src)) //This section erases the previously drawn beam because I found it was easier to
for(var/obj/effect/overlay/beam/O in orange(10,src)) //This section erases the previously drawn beam because I found it was easier to
if(O.BeamSource==src) //just draw another instance of the beam instead of trying to manipulate all the
del O //pieces to a new orientation.
var/Angle=round(Get_Angle(src,BeamTarget))
@@ -183,7 +183,7 @@ its easier to just keep the beam vertical.
var/N=0
var/length=round(sqrt((DX)**2+(DY)**2))
for(N,N<length,N+=32)
var/obj/effects/overlay/beam/X=new(loc)
var/obj/effect/overlay/beam/X=new(loc)
X.BeamSource=src
if(N+32>length)
var/icon/II=new(icon,icon_state)
@@ -215,4 +215,4 @@ its easier to just keep the beam vertical.
X.pixel_y=Pixel_y
sleep(3) //Changing this to a lower value will cause the beam to follow more smoothly with movement, but it will also be more laggy.
//I've found that 3 ticks provided a nice balance for my use.
for(var/obj/effects/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) del O
for(var/obj/effect/overlay/beam/O in orange(10,src)) if(O.BeamSource==src) del O

View File

@@ -1,7 +1,7 @@
var/global
obj/datacore/data_core = null
obj/effects/overlay/plmaster = null
obj/effects/overlay/slmaster = null
obj/effect/overlay/plmaster = null
obj/effect/overlay/slmaster = null
//obj/hud/main_hud1 = null

View File

@@ -42,8 +42,8 @@
var/modtype = null
var/lower_mod = 0
var/jetpack = 0
var/datum/effects/system/ion_trail_follow/ion_trail = null
var/datum/effects/system/spark_spread/spark_system//So they can initialize sparks whenever/N
var/datum/effect/system/ion_trail_follow/ion_trail = null
var/datum/effect/system/spark_spread/spark_system//So they can initialize sparks whenever/N
var/jeton = 0
var/borgwires = 15
var/killswitch = 0

View File

@@ -102,7 +102,7 @@
var/m_intent = "run"//Living
var/lastDblClick = 0
var/lastKnownIP = null
var/obj/station_objects/stool/buckled = null//Living
var/obj/structure/stool/buckled = null//Living
var/obj/item/weapon/handcuffs/handcuffed = null//Living
var/obj/item/l_hand = null//Living
var/obj/item/r_hand = null//Living
@@ -175,7 +175,7 @@
This requires creating a verb for the object proc holder.
if (proc_holder_list.len)//Generic list for proc_holder objects.
for(var/obj/effects/proc_holder/P in proc_holder_list)
for(var/obj/effect/proc_holder/P in proc_holder_list)
statpanel("[P.panel]","",P)
*/
@@ -183,7 +183,7 @@
var/mob/living/carbon/LAssailant = null
//Wizard mode, but can be used in other modes thanks to the brand new "Give Spell" badmin button
var/obj/effects/proc_holder/spell/list/spell_list = list()
var/obj/effect/proc_holder/spell/list/spell_list = list()
//List of active diseases
@@ -223,7 +223,7 @@ the mob is also allowed to move without any sort of restriction. For instance, i
var/UI = 'screen1_old.dmi' // For changing the UI from preferences
var/obj/effects/organstructure/organStructure = null //for dem organs
var/obj/effect/organstructure/organStructure = null //for dem organs
/mob/proc/Delete(atom/A in view())

View File

@@ -23,13 +23,13 @@
var/response_harm = "You try to hurt"
var/harm_intent_damage = 3
//Temperature effects
//Temperature effect
var/minbodytemp = 270
var/maxbodytemp = 370
var/heat_damage_per_tick = 3 //amount of damage applied if animal's body temperature is higher than maxbodytemp
var/cold_damage_per_tick = 2 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
//Atmos effects - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
//Atmos effect - Yes, you can make creatures that require plasma or co2 to survive. N2O is a trace gas and handled separately, hence why it isn't here. It'd be hard to add it. Hard and me don't mix (Yes, yes make all the dick jokes you want with that.) - Errorage
var/min_oxy = 5
var/max_oxy = 0 //Leaving something at 0 means it's off - has no maximum
var/min_tox = 0
@@ -265,7 +265,7 @@
if(co2 > max_co2)
atmos_suitable = 0
//Atmos effects
//Atmos effect
if(bodytemperature < minbodytemp)
health -= cold_damage_per_tick
else if(bodytemperature > maxbodytemp)

View File

@@ -22,7 +22,7 @@
proc/initialize()
/obj/station_objects/signpost
/obj/structure/signpost
icon = 'stationobjs.dmi'
icon_state = "signpost"
anchored = 1
@@ -40,7 +40,7 @@
if("No")
return
/obj/effects/mark
/obj/effect/mark
var/mark = ""
icon = 'mark.dmi'
icon_state = "blank"
@@ -57,7 +57,7 @@
//state = 1 for playing : default
//state = 2 for observing
/obj/effects/bhole
/obj/effect/bhole
name = "black hole"
icon = 'objects.dmi'
desc = "FUCK FUCK FUCK AAAHHH"
@@ -66,18 +66,18 @@
unacidable = 1
density = 0
anchored = 1
var/datum/effects/system/harmless_smoke_spread/smoke
var/datum/effect/system/harmless_smoke_spread/smoke
/obj/effects/beam
/obj/effect/beam
name = "beam"
unacidable = 1//Just to be sure.
var/def_zone
pass_flags = PASSTABLE
/obj/station_objects/bedsheetbin
/obj/structure/bedsheetbin
name = "linen bin"
desc = "A bin for containing bedsheets. It looks rather cosy."
icon = 'items.dmi'
@@ -85,7 +85,7 @@
var/amount = 23.0
anchored = 1.0
/obj/effects/begin
/obj/effect/begin
name = "begin"
icon = 'stationobjs.dmi'
icon_state = "begin"
@@ -100,7 +100,7 @@
//This list tracks characters spawned in the world and cannot be modified in-game. Currently referenced by respawn_character().
var/locked[] = list()
/obj/effects/equip_e
/obj/effect/equip_e
name = "equip e"
var/mob/source = null
var/s_loc = null
@@ -108,15 +108,15 @@
var/obj/item/item = null
var/place = null
/obj/effects/equip_e/human
/obj/effect/equip_e/human
name = "human"
var/mob/living/carbon/human/target = null
/obj/effects/equip_e/monkey
/obj/effect/equip_e/monkey
name = "monkey"
var/mob/living/carbon/monkey/target = null
/obj/effects/securearea
/obj/effect/securearea
desc = "A warning sign which reads 'SECURE AREA'. This obviously applies to a nun-Clown."
name = "SECURE AREA"
icon = 'decals.dmi'
@@ -125,7 +125,7 @@
opacity = 0
density = 0
/obj/effects/sign/biohazard
/obj/effect/sign/biohazard
desc = "A warning sign which reads 'BIOHAZARD'"
name = "BIOHAZARD"
icon = 'decals.dmi'
@@ -134,7 +134,7 @@
opacity = 0
density = 0
/obj/effects/sign/electricshock
/obj/effect/sign/electricshock
desc = "A warning sign which reads 'HIGH VOLTAGE'"
name = "HIGH VOLTAGE"
icon = 'decals.dmi'
@@ -143,7 +143,7 @@
opacity = 0
density = 0
/obj/effects/sign/examroom
/obj/effect/sign/examroom
desc = "A guidance sign which reads 'EXAM ROOM'"
name = "EXAM"
icon = 'decals.dmi'
@@ -152,7 +152,7 @@
opacity = 0
density = 0
/obj/effects/sign/vacuum
/obj/effect/sign/vacuum
desc = "A warning sign which reads 'HARD VACUUM AHEAD'"
name = "HARD VACUUM AHEAD"
icon = 'decals.dmi'
@@ -163,7 +163,7 @@
pixel_x = -1
pixel_y = -1
/obj/effects/sign/fire
/obj/effect/sign/fire
desc = "A warning sign which reads 'HOT! HOT! AAAH! I'M BURNING!'"
name = "HOT! HOT! AAAH! I'M BURNING!"
icon = 'decals.dmi'
@@ -173,7 +173,7 @@
density = 0
/obj/effects/sign/nosmoking_1
/obj/effect/sign/nosmoking_1
desc = "A warning sign which reads 'NO SMOKING'"
name = "NO SMOKING"
icon = 'decals.dmi'
@@ -183,7 +183,7 @@
density = 0
/obj/effects/sign/nosmoking_2
/obj/effect/sign/nosmoking_2
desc = "A warning sign which reads 'NO SMOKING'"
name = "NO SMOKING"
icon = 'decals.dmi'
@@ -192,7 +192,7 @@
opacity = 0
density = 0
/obj/effects/sign/redcross
/obj/effect/sign/redcross
desc = "The Intergalactic symbol of Medical institutions. You'll probably get help here.'"
name = "Med-Bay"
icon = 'decals.dmi'
@@ -201,7 +201,7 @@
opacity = 0
density = 0
/obj/effects/sign/goldenplaque
/obj/effect/sign/goldenplaque
desc = "To be Robust is not an action or a way of life, but a mental state. Only those with the force of Will strong enough to act during a crisis, saving friend from foe, are truly Robust. Stay Robust my friends."
name = "The Most Robust Men Award for Robustness"
icon = 'decals.dmi'
@@ -220,12 +220,12 @@
if(istype(A,/turf/simulated/wall) || istype(A,/turf/simulated/shuttle/wall) || istype(A,/turf/unsimulated/wall))
var/epitaph = input("What would you like to engrave", null)
if(epitaph)
var/obj/effects/sign/goldenplaque/gp = new/obj/effects/sign/goldenplaque(A)
var/obj/effect/sign/goldenplaque/gp = new/obj/effect/sign/goldenplaque(A)
gp.name = epitaph
gp.layer = 2.9
del(src)*/
/obj/effects/sign/maltesefalcon1 //The sign is 64x32, so it needs two tiles. ;3
/obj/effect/sign/maltesefalcon1 //The sign is 64x32, so it needs two tiles. ;3
desc = "The Maltese Falcon, Space Bar and Grill. Now with added monkey."
name = "The Maltese Falcon"
icon = 'decals.dmi'
@@ -234,7 +234,7 @@
opacity = 0
density = 0
/obj/effects/sign/maltesefalcon2
/obj/effect/sign/maltesefalcon2
desc = "The Maltese Falcon, Space Bar and Grill. Now with added monkey."
name = "The Maltese Falcon"
icon = 'decals.dmi'
@@ -329,24 +329,24 @@
icon_state = "apc_frame"
flags = FPRINT | TABLEPASS| CONDUCT
/obj/effects/landmark
/obj/effect/landmark
name = "landmark"
icon = 'screen1.dmi'
icon_state = "x2"
anchored = 1.0
unacidable = 1
/obj/effects/landmark/alterations
/obj/effect/landmark/alterations
name = "alterations"
/obj/effects/laser
/obj/effect/laser
name = "laser"
desc = "IT BURNS!!!"
icon = 'projectiles.dmi'
var/damage = 0.0
var/range = 10.0
/obj/station_objects/lattice
/obj/structure/lattice
desc = "A lightweight support lattice."
name = "lattice"
icon = 'structures.dmi'
@@ -356,31 +356,31 @@
layer = 2.3 //under pipes
// flags = 64.0
/obj/station_objects/lattice/New()
/obj/structure/lattice/New()
..()
if(!(istype(src.loc, /turf/space)))
del(src)
for(var/obj/station_objects/lattice/LAT in src.loc)
for(var/obj/structure/lattice/LAT in src.loc)
if(LAT != src)
del(LAT)
icon = 'smoothlattice.dmi'
icon_state = "latticeblank"
updateOverlays()
for (var/dir in cardinal)
var/obj/station_objects/lattice/L
if(locate(/obj/station_objects/lattice, get_step(src, dir)))
L = locate(/obj/station_objects/lattice, get_step(src, dir))
var/obj/structure/lattice/L
if(locate(/obj/structure/lattice, get_step(src, dir)))
L = locate(/obj/structure/lattice, get_step(src, dir))
L.updateOverlays()
/obj/station_objects/lattice/Del()
/obj/structure/lattice/Del()
for (var/dir in cardinal)
var/obj/station_objects/lattice/L
if(locate(/obj/station_objects/lattice, get_step(src, dir)))
L = locate(/obj/station_objects/lattice, get_step(src, dir))
var/obj/structure/lattice/L
if(locate(/obj/structure/lattice, get_step(src, dir)))
L = locate(/obj/structure/lattice, get_step(src, dir))
L.updateOverlays(src.loc)
..()
/obj/station_objects/lattice/proc/updateOverlays()
/obj/structure/lattice/proc/updateOverlays()
//if(!(istype(src.loc, /turf/space)))
// del(src)
spawn(1)
@@ -389,7 +389,7 @@
var/dir_sum = 0
for (var/direction in cardinal)
if(locate(/obj/station_objects/lattice, get_step(src, direction)))
if(locate(/obj/structure/lattice, get_step(src, direction)))
dir_sum += direction
else
if(!(istype(get_step(src, direction), /turf/space)))
@@ -401,60 +401,60 @@
/*
overlays += icon(icon,"lattice-middlebar") //the nw-se bar in the cneter
for (var/dir in cardinal)
if(locate(/obj/station_objects/lattice, get_step(src, dir)))
if(locate(/obj/structure/lattice, get_step(src, dir)))
src.overlays += icon(icon,"lattice-[dir2text(dir)]")
else
src.overlays += icon(icon,"lattice-nc-[dir2text(dir)]") //t for turf
if(!(istype(get_step(src, dir), /turf/space)))
src.overlays += icon(icon,"lattice-t-[dir2text(dir)]") //t for turf
//if ( !( (locate(/obj/station_objects/lattice, get_step(src, SOUTH))) || (locate(/obj/station_objects/lattice, get_step(src, EAST))) ))
//if ( !( (locate(/obj/structure/lattice, get_step(src, SOUTH))) || (locate(/obj/structure/lattice, get_step(src, EAST))) ))
// src.overlays += icon(icon,"lattice-c-se")
if ( !( (locate(/obj/station_objects/lattice, get_step(src, NORTH))) || (locate(/obj/station_objects/lattice, get_step(src, WEST))) ))
if ( !( (locate(/obj/structure/lattice, get_step(src, NORTH))) || (locate(/obj/structure/lattice, get_step(src, WEST))) ))
src.overlays += icon(icon,"lattice-c-nw")
if ( !( (locate(/obj/station_objects/lattice, get_step(src, NORTH))) || (locate(/obj/station_objects/lattice, get_step(src, EAST))) ))
if ( !( (locate(/obj/structure/lattice, get_step(src, NORTH))) || (locate(/obj/structure/lattice, get_step(src, EAST))) ))
src.overlays += icon(icon,"lattice-c-ne")
if ( !( (locate(/obj/station_objects/lattice, get_step(src, SOUTH))) || (locate(/obj/station_objects/lattice, get_step(src, WEST))) ))
if ( !( (locate(/obj/structure/lattice, get_step(src, SOUTH))) || (locate(/obj/structure/lattice, get_step(src, WEST))) ))
src.overlays += icon(icon,"lattice-c-sw")
if(!(overlays))
icon_state = "latticefull"
*/
/obj/effects/list_container
/obj/effect/list_container
name = "list container"
/obj/effects/list_container/mobl
/obj/effect/list_container/mobl
name = "mobl"
var/master = null
var/list/container = list( )
/obj/station_objects/m_tray
/obj/structure/m_tray
name = "morgue tray"
desc = "Apply corpse before closing."
icon = 'stationobjs.dmi'
icon_state = "morguet"
density = 1
layer = 2.0
var/obj/station_objects/morgue/connected = null
var/obj/structure/morgue/connected = null
anchored = 1.0
/obj/station_objects/c_tray
/obj/structure/c_tray
name = "crematorium tray"
desc = "Apply body before burning."
icon = 'stationobjs.dmi'
icon_state = "cremat"
density = 1
layer = 2.0
var/obj/station_objects/crematorium/connected = null
var/obj/structure/crematorium/connected = null
anchored = 1.0
/obj/station_objects/cable
/obj/structure/cable
level = 1
anchored =1
var/netnum = 0
@@ -467,46 +467,46 @@
layer = 2.5
var/color="red"
/obj/station_objects/cable/yellow
/obj/structure/cable/yellow
color="yellow"
icon = 'power_cond_yellow.dmi'
/obj/station_objects/cable/green
/obj/structure/cable/green
color="green"
icon = 'power_cond_green.dmi'
/obj/station_objects/cable/blue
/obj/structure/cable/blue
color="blue"
icon = 'power_cond_blue.dmi'
/obj/effects/manifest
/obj/effect/manifest
name = "manifest"
icon = 'screen1.dmi'
icon_state = "x"
unacidable = 1//Just to be sure.
/obj/station_objects/morgue
/obj/structure/morgue
name = "morgue"
desc = "Used to keep bodies in untill someone fetches them."
icon = 'stationobjs.dmi'
icon_state = "morgue1"
density = 1
var/obj/station_objects/m_tray/connected = null
var/obj/structure/m_tray/connected = null
anchored = 1.0
/obj/station_objects/crematorium
/obj/structure/crematorium
name = "crematorium"
desc = "A human incinerator. Works well on barbeque nights."
icon = 'stationobjs.dmi'
icon_state = "crema1"
density = 1
var/obj/station_objects/c_tray/connected = null
var/obj/structure/c_tray/connected = null
anchored = 1.0
var/cremating = 0
var/id = 1
var/locked = 0
/obj/effects/mine
/obj/effect/mine
name = "Mine"
desc = "I Better stay away from that thing."
density = 1
@@ -517,37 +517,37 @@
var/triggerproc = "explode" //name of the proc thats called when the mine is triggered
var/triggered = 0
/obj/effects/mine/dnascramble
/obj/effect/mine/dnascramble
name = "Radiation Mine"
icon_state = "uglymine"
triggerproc = "triggerrad"
/obj/effects/mine/plasma
/obj/effect/mine/plasma
name = "Plasma Mine"
icon_state = "uglymine"
triggerproc = "triggerplasma"
/obj/effects/mine/kick
/obj/effect/mine/kick
name = "Kick Mine"
icon_state = "uglymine"
triggerproc = "triggerkick"
/obj/effects/mine/n2o
/obj/effect/mine/n2o
name = "N2O Mine"
icon_state = "uglymine"
triggerproc = "triggern2o"
/obj/effects/mine/stun
/obj/effect/mine/stun
name = "Stun Mine"
icon_state = "uglymine"
triggerproc = "triggerstun"
/obj/effects/overlay
/obj/effect/overlay
name = "overlay"
unacidable = 1
var/i_attached//Added for possible image attachments to objects. For hallucinations and the like.
/obj/effects/overlay/beam//Not actually a projectile, just an effect.
/obj/effect/overlay/beam//Not actually a projectile, just an effect.
name="beam"
icon='beam.dmi'
icon_state="b_beam"
@@ -556,7 +556,7 @@
..()
spawn(10) del src
/obj/effects/portal
/obj/effect/portal
name = "portal"
desc = "Looks unstable. Best to test it with the clown."
icon = 'stationobjs.dmi'
@@ -568,12 +568,12 @@
var/creator = null
anchored = 1.0
/obj/effects/projection
/obj/effect/projection
name = "Projection"
desc = "This looks like a projection of something."
anchored = 1.0
/obj/station_objects/rack
/obj/structure/rack
name = "rack"
desc = "Different from the Middle Ages version."
icon = 'objects.dmi'
@@ -609,18 +609,18 @@
var/selecting = "chest"
screen_loc = "EAST+1,NORTH"
/obj/effects/shut_controller
/obj/effect/shut_controller
name = "shut controller"
var/moving = null
var/list/parts = list( )
/obj/effects/landmark/start
/obj/effect/landmark/start
name = "start"
icon = 'screen1.dmi'
icon_state = "x"
anchored = 1.0
/obj/station_objects/stool
/obj/structure/stool
name = "stool"
desc = "Apply butt."
icon = 'objects.dmi'
@@ -628,20 +628,20 @@
flags = FPRINT
pressure_resistance = 3*ONE_ATMOSPHERE
/obj/station_objects/stool/bed
/obj/structure/stool/bed
name = "bed"
desc = "This is used to lie in, sleep in or strap on."
icon_state = "bed"
anchored = 1.0
var/list/buckled_mobs = list( )
/obj/station_objects/stool/bed/alien
/obj/structure/stool/bed/alien
name = "Resting contraption"
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
icon_state = "abed"
/obj/station_objects/stool/chair
/obj/structure/stool/chair
name = "chair"
desc = "You sit in this. Either by will or force."
icon_state = "chair"
@@ -649,7 +649,7 @@
anchored = 1.0
var/list/buckled_mobs = list( )
/obj/station_objects/stool/chair/e_chair
/obj/structure/stool/chair/e_chair
name = "electrified chair"
desc = "Looks absolutely SHOCKING!"
icon_state = "e_chair0"
@@ -658,7 +658,7 @@
var/obj/item/assembly/shock_kit/part1 = null
var/last_time = 1.0
/obj/station_objects/table
/obj/structure/table
name = "table"
desc = "A square piece of metal standing on four metal legs. It can not move."
icon = 'structures.dmi'
@@ -669,19 +669,19 @@
New()
..()
for(var/obj/station_objects/table/T in src.loc)
for(var/obj/structure/table/T in src.loc)
if(T != src)
del(T)
update_icon()
for(var/direction in list(1,2,4,8,5,6,9,10))
if(locate(/obj/station_objects/table,get_step(src,direction)))
var/obj/station_objects/table/T = locate(/obj/station_objects/table,get_step(src,direction))
if(locate(/obj/structure/table,get_step(src,direction)))
var/obj/structure/table/T = locate(/obj/structure/table,get_step(src,direction))
T.update_icon()
Del()
for(var/direction in list(1,2,4,8,5,6,9,10))
if(locate(/obj/station_objects/table,get_step(src,direction)))
var/obj/station_objects/table/T = locate(/obj/station_objects/table,get_step(src,direction))
if(locate(/obj/structure/table,get_step(src,direction)))
var/obj/structure/table/T = locate(/obj/structure/table,get_step(src,direction))
T.update_icon()
..()
@@ -690,7 +690,7 @@
var/dir_sum = 0
for(var/direction in cardinal)
var/skip_sum = 0
for(var/obj/station_objects/window/W in src.loc)
for(var/obj/structure/window/W in src.loc)
if(W.dir == direction) //So smooth tables don't go smooth through windows
skip_sum = 1
continue
@@ -704,12 +704,12 @@
inv_direction = 8
if(8)
inv_direction = 4
for(var/obj/station_objects/window/W in get_step(src,direction))
for(var/obj/structure/window/W in get_step(src,direction))
if(W.dir == inv_direction) //So smooth tables don't go smooth through windows when the window is on the other table's tile
skip_sum = 1
continue
if(!skip_sum) //means there is a window between the two tiles in this direction
if(locate(/obj/station_objects/table,get_step(src,direction)))
if(locate(/obj/structure/table,get_step(src,direction)))
dir_sum += direction
//dir_sum:
@@ -736,7 +736,7 @@
if(dir_sum == 12) //12 doesn't exist as a dir.
dir_sum = 4
if(dir_sum in list(5,6,9,10))
if(locate(/obj/station_objects/table,get_step(src.loc,dir_sum)))
if(locate(/obj/structure/table,get_step(src.loc,dir_sum)))
table_type = 3 //full table (not the 1 tile thick one, but one of the 'tabledir' tables)
else
table_type = 2 //1 tile thick, corner table (treated the same as streight tables in code later on)
@@ -754,7 +754,7 @@
if(dir_sum == 15)
table_type = 4 //4-way intersection, the 'middle' table sprites will be used.
if(istype(src,/obj/station_objects/table/reinforced))
if(istype(src,/obj/structure/table/reinforced))
switch(table_type)
if(0)
icon_state = "reinf_table"
@@ -766,7 +766,7 @@
icon_state = "reinf_tabledir"
if(4)
icon_state = "reinf_middle"
else if(istype(src,/obj/station_objects/table/woodentable))
else if(istype(src,/obj/structure/table/woodentable))
switch(table_type)
if(0)
icon_state = "wood_table"
@@ -795,18 +795,18 @@
else
dir = 2
/obj/station_objects/table/reinforced
/obj/structure/table/reinforced
name = "reinforced table"
desc = "A version of the four legged table. It is stronger."
icon_state = "reinf_table"
var/status = 2
/obj/station_objects/table/woodentable
/obj/structure/table/woodentable
name = "wooden table"
desc = "Do not apply fire to this. Rumour says it burns easily."
icon_state = "wood_table"
/obj/station_objects/mopbucket
/obj/structure/mopbucket
desc = "Fill it with water, but don't forget a mop!"
name = "mop bucket"
icon = 'janitor.dmi'
@@ -817,7 +817,7 @@
flags = FPRINT | TABLEPASS | OPENCONTAINER
var/amount_per_transfer_from_this = 5 //shit I dunno, adding this so syringes stop runtime erroring. --NeoFite
/obj/station_objects/kitchenspike
/obj/structure/kitchenspike
name = "a meat spike"
icon = 'kitchen.dmi'
icon_state = "spike"
@@ -828,7 +828,7 @@
var/occupied = 0
var/meattype = 0 // 0 - Nothing, 1 - Monkey, 2 - Xeno
/obj/station_objects/displaycase
/obj/structure/displaycase
name = "Display Case"
icon = 'stationobjs.dmi'
icon_state = "glassbox1"
@@ -840,7 +840,7 @@
var/occupied = 1
var/destroyed = 0
/obj/effects/showcase
/obj/effect/showcase
name = "Showcase"
icon = 'stationobjs.dmi'
icon_state = "showcase_1"
@@ -928,7 +928,7 @@
/obj/station_objects/noticeboard
/obj/structure/noticeboard
name = "Notice Board"
icon = 'stationobjs.dmi'
icon_state = "nboard00"
@@ -938,7 +938,7 @@
anchored = 1
var/notices = 0
/obj/effects/deskclutter
/obj/effect/deskclutter
name = "desk clutter"
icon = 'items.dmi'
icon_state = "deskclutter"
@@ -994,7 +994,7 @@
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
/obj/station_objects/falsewall
/obj/structure/falsewall
name = "wall"
desc = "A huge chunk of metal used to seperate rooms."
icon = 'walls.dmi'
@@ -1003,7 +1003,7 @@
opacity = 1
anchored = 1
/obj/station_objects/falserwall
/obj/structure/falserwall
name = "r wall"
desc = "A huge chunk of reinforced metal used to seperate rooms."
icon = 'walls.dmi'

View File

@@ -1,6 +1,6 @@
/obj/station_objects/closet
desc = "It's a closet!"
/obj/structure/closet
name = "Closet"
desc = "It's a closet!"
icon = 'closet.dmi'
icon_state = "closed"
density = 1
@@ -12,65 +12,67 @@
flags = FPRINT
var/health = 200//Might be a bit much, dono can always change later
/obj/station_objects/closet/acloset
desc = "It looks alien!"
/obj/structure/closet/acloset
name = "Strange closet"
desc = "It looks alien!"
icon_state = "acloset"
icon_closed = "acloset"
icon_opened = "aclosetopen"
/obj/station_objects/closet/cabinet
desc = "Old will forever be in fashion."
/obj/structure/closet/cabinet
name = "Cabinet"
desc = "Old will forever be in fashion."
icon_state = "cabinet_closed"
icon_closed = "cabinet_closed"
icon_opened = "cabinet_open"
/obj/effects/spresent
desc = "It's a ... present?"
/obj/effect/spresent
name = "strange present"
desc = "It's a ... present?"
icon = 'items.dmi'
icon_state = "strangepresent"
density = 1
anchored = 0
/obj/station_objects/closet/gmcloset
desc = "A bulky (yet mobile) closet. Comes with formal clothes"
/obj/structure/closet/gmcloset
name = "Formal closet"
desc = "A bulky (yet mobile) closet. Comes with formal clothes"
/obj/station_objects/closet/emcloset
desc = "A bulky (yet mobile) closet. Comes prestocked with a gasmask and o2 tank for emergencies."
/obj/structure/closet/emcloset
name = "Emergency Closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a gasmask and o2 tank for emergencies."
icon_state = "emergency"
icon_closed = "emergency"
icon_opened = "emergencyopen"
/obj/station_objects/closet/firecloset
desc = "A bulky (yet mobile) closet. Comes with supplies to fight fire."
/obj/structure/closet/firecloset
name = "Fire Closet"
desc = "A bulky (yet mobile) closet. Comes with supplies to fight fire."
icon_state = "firecloset"
icon_closed = "firecloset"
icon_opened = "fireclosetopen"
/obj/station_objects/closet/hydrant //wall mounted fire closet
anchored = 1
desc = "A wall mounted closet which comes with supplies to fight fire."
/obj/structure/closet/hydrant //wall mounted fire closet
name = "Fire Closet"
desc = "A wall mounted closet which comes with supplies to fight fire."
icon_state = "hydrant"
icon_closed = "hydrant"
icon_opened = "hydrant_open"
anchored = 1
density = 0
wall_mounted = 1
/obj/station_objects/closet/medical_wall //wall mounted medical closet
anchored = 1
desc = "A wall mounted closet which should have some first aid."
/obj/structure/closet/medical_wall //wall mounted medical closet
name = "First Aid Closet"
desc = "A wall mounted closet which should have some first aid."
icon_state = "medical_wall"
icon_closed = "medical_wall"
icon_opened = "medical_wall_open"
anchored = 1
density = 0
wall_mounted = 1
/obj/station_objects/closet/fireaxecabinet
/obj/structure/closet/fireaxecabinet
name = "Fire Axe Cabinet"
desc = "There is small label that reads \"For Emergency use only\" along with details for safe use of the axe. As if."
var/obj/item/weapon/fireaxe/FIREAXE = new/obj/item/weapon/fireaxe
@@ -78,6 +80,7 @@
icon_closed = "fireaxe1000"
icon_opened = "fireaxe1100"
anchored = 1
density = 0
var/localopened = 0 //Setting this to keep it from behaviouring like a normal closet and obstructing movement in the map. -Agouri
opened = 1
var/hitstaken = 0
@@ -265,99 +268,100 @@
/obj/station_objects/closet/toolcloset
desc = "A bulky (yet mobile) closet. Contains tools."
/obj/structure/closet/toolcloset
name = "Tool Closet"
desc = "A bulky (yet mobile) closet. Contains tools."
icon_state = "toolcloset"
icon_closed = "toolcloset"
icon_opened = "toolclosetopen"
/obj/station_objects/closet/jcloset
desc = "A bulky (yet mobile) closet. Comes with janitor's clothes and biohazard gear."
/obj/structure/closet/jcloset
name = "Custodial Closet"
desc = "A bulky (yet mobile) closet. Comes with janitor's clothes and biohazard gear."
/obj/station_objects/closet/lawcloset
desc = "A bulky (yet mobile) closet. Comes with lawyer apparel and items."
/obj/structure/closet/lawcloset
name = "Legal Closet"
desc = "A bulky (yet mobile) closet. Comes with lawyer apparel and items."
/obj/station_objects/closet/coffin
desc = "A burial receptacle for the dearly departed."
/obj/structure/closet/coffin
name = "coffin"
desc = "A burial receptacle for the dearly departed."
icon_state = "coffin"
icon_closed = "coffin"
icon_opened = "coffin_open"
/obj/station_objects/closet/bombcloset
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
/obj/structure/closet/bombcloset
name = "EOD closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
icon_state = "bombsuit"
icon_closed = "bombsuit"
icon_opened = "bombsuitopen"
/obj/station_objects/closet/bombclosetsecurity
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
/obj/structure/closet/bombclosetsecurity
name = "EOD closet"
desc = "A bulky (yet mobile) closet. Comes prestocked with a level 4 bombsuit."
icon_state = "bombsuitsec"
icon_closed = "bombsuitsec"
icon_opened = "bombsuitsecopen"
/obj/station_objects/closet/l3closet
desc = "A bulky (yet mobile) closet. Comes prestocked with level 3 biohazard gear for emergencies."
/obj/structure/closet/l3closet
name = "Level 3 Biohazard Suit"
desc = "A bulky (yet mobile) closet. Comes prestocked with level 3 biohazard gear for emergencies."
icon_state = "bio"
icon_closed = "bio"
icon_opened = "bioopen"
/obj/station_objects/closet/l3closet/general
/obj/structure/closet/l3closet/general
icon_state = "bio_general"
icon_closed = "bio_general"
icon_opened = "bio_generalopen"
/obj/station_objects/closet/l3closet/virology
/obj/structure/closet/l3closet/virology
icon_state = "bio_virology"
icon_closed = "bio_virology"
icon_opened = "bio_virologyopen"
/obj/station_objects/closet/l3closet/security
/obj/structure/closet/l3closet/security
icon_state = "bio_security"
icon_closed = "bio_security"
icon_opened = "bio_securityopen"
/obj/station_objects/closet/l3closet/janitor
/obj/structure/closet/l3closet/janitor
icon_state = "bio_janitor"
icon_closed = "bio_janitor"
icon_opened = "bio_janitoropen"
/obj/station_objects/closet/l3closet/scientist
/obj/structure/closet/l3closet/scientist
icon_state = "bio_scientist"
icon_closed = "bio_scientist"
icon_opened = "bio_scientistopen"
/obj/station_objects/closet/syndicate
desc = "Why is this here?"
/obj/structure/closet/syndicate
name = "Weapons Closet"
desc = "Why is this here?"
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
/obj/station_objects/closet/syndicate/personal
/obj/structure/closet/syndicate/personal
desc = "Gear preperations closet."
/obj/station_objects/closet/syndicate/nuclear
/obj/structure/closet/syndicate/nuclear
desc = "Nuclear preperations closet."
// Inserting the gimmick clothing stuff here for generic items, IE Tacticool stuff
/obj/station_objects/closet/extinguisher
/obj/structure/closet/extinguisher
name = "Extinguisher closet"
var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
icon_state = "extinguisher10"
icon_opened = "extinguisher11"
icon_closed = "extinguisher10"
opened = 1
var/localopened = 1
desc = "A small wall mounted cabinet designed to hold a fire extinguisher."
anchored = 1
density = 0
var/obj/item/weapon/extinguisher/EXTINGUISHER = new/obj/item/weapon/extinguisher
var/localopened = 1
open()
return
@@ -435,7 +439,7 @@
icon_state = text("extinguisher[][]",hasextinguisher,src.localopened)
/obj/station_objects/closet/gimmick
/obj/structure/closet/gimmick
name = "Administrative Supply Closet"
icon_state = "syndicate1"
icon_closed = "syndicate1"
@@ -443,21 +447,21 @@
desc = "Closet of things that have no right being here."
anchored = 0
/obj/station_objects/closet/gimmick/russian
/obj/structure/closet/gimmick/russian
name = "Russian Surplus"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Russian Surplus Closet"
/obj/station_objects/closet/gimmick/tacticool
/obj/structure/closet/gimmick/tacticool
name = "Tacticool Gear"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
desc = "Tacticool Gear Closet"
/obj/station_objects/closet/thunderdome
/obj/structure/closet/thunderdome
desc = "Everything you need!"
icon_state = "syndicate"
icon_closed = "syndicate"
@@ -465,111 +469,111 @@
name = "Thunderdome closet."
anchored = 1
/obj/station_objects/closet/thunderdome/tdred
/obj/structure/closet/thunderdome/tdred
desc = "Everything you need!"
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
name = "Thunderdome closet."
/obj/station_objects/closet/thunderdome/tdgreen
/obj/structure/closet/thunderdome/tdgreen
desc = "Everything you need!"
icon_state = "syndicate1"
icon_closed = "syndicate1"
icon_opened = "syndicate1open"
name = "Thunderdome closet."
/obj/station_objects/closet/malf/suits
/obj/structure/closet/malf/suits
desc = "Gear preparations closet."
icon_state = "syndicate"
icon_closed = "syndicate"
icon_opened = "syndicateopen"
/obj/station_objects/closet/wardrobe
/obj/structure/closet/wardrobe
desc = "A bulky (yet mobile) wardrobe closet. Comes prestocked with 6 changes of clothes."
name = "Wardrobe"
icon_state = "blue"
icon_closed = "blue"
/obj/station_objects/closet/wardrobe/black
/obj/structure/closet/wardrobe/black
name = "Black Wardrobe"
desc = "Contains black jumpsuits."
icon_state = "black"
icon_closed = "black"
/obj/station_objects/closet/wardrobe/chaplain_black
/obj/structure/closet/wardrobe/chaplain_black
name = "Chaplain Wardrobe"
desc = "Closet of basic chaplain clothes."
icon_state = "black"
icon_closed = "black"
/obj/station_objects/closet/wardrobe/green
/obj/structure/closet/wardrobe/green
name = "Green Wardrobe"
desc = "Contains green jumpsuits."
icon_state = "green"
icon_closed = "green"
/obj/station_objects/closet/wardrobe/mixed
/obj/structure/closet/wardrobe/mixed
name = "Mixed Wardrobe"
desc = "This appears to contain several different sets of clothing."
icon_state = "mixed"
icon_closed = "mixed"
/obj/station_objects/closet/wardrobe/orange
/obj/structure/closet/wardrobe/orange
name = "Prisoners Wardrobe"
desc = "Contains orange jumpsuits."
icon_state = "orange"
icon_closed = "orange"
/obj/station_objects/closet/wardrobe/pink
/obj/structure/closet/wardrobe/pink
name = "Pink Wardrobe"
desc = "Contains pink jumpsuits."
icon_state = "pink"
icon_closed = "pink"
/obj/station_objects/closet/wardrobe/red
/obj/structure/closet/wardrobe/red
name = "Red Wardrobe"
desc = "Contains red jumpsuits."
icon_state = "red"
icon_closed = "red"
/obj/station_objects/closet/wardrobe/white
/obj/structure/closet/wardrobe/white
name = "White Wardrobe"
desc = "Contains white jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/station_objects/closet/wardrobe/toxins_white
/obj/structure/closet/wardrobe/toxins_white
name = "Toxins Wardrobe"
desc = "Contains toxins jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/station_objects/closet/wardrobe/genetics_white
/obj/structure/closet/wardrobe/genetics_white
name = "Genetics Wardrobe"
desc = "Contains genetics jumpsuits."
icon_state = "white"
icon_closed = "white"
/obj/station_objects/closet/wardrobe/yellow
/obj/structure/closet/wardrobe/yellow
name = "Yellow Wardrobe"
desc = "Contains yellow jumpsuits."
icon_state = "wardrobe-y"
icon_closed = "wardrobe-y"
/obj/station_objects/closet/wardrobe/engineering_yellow
/obj/structure/closet/wardrobe/engineering_yellow
name = "Engineering Wardrobe"
desc = "Contains engineering jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/station_objects/closet/wardrobe/atmospherics_yellow
/obj/structure/closet/wardrobe/atmospherics_yellow
name = "Atmospherics Wardrobe"
desc = "Contains atmospheric jumpsuits."
icon_state = "yellow"
icon_closed = "yellow"
/obj/station_objects/closet/wardrobe/grey
/obj/structure/closet/wardrobe/grey
name = "Grey Wardrobe"
desc = "Contains grey jumpsuits."
icon_state = "grey"
@@ -577,7 +581,7 @@
/obj/station_objects/secure_closet
/obj/structure/secure_closet
desc = "An immobile card-locked storage closet."
name = "Security Locker"
icon = 'closet.dmi'
@@ -595,8 +599,7 @@
var/wall_mounted = 0 //never solid (You can always pass over it)
var/health = 300
/obj/station_objects/secure_closet/medical_wall
anchored = 1
/obj/structure/secure_closet/medical_wall
name = "First Aid Closet"
desc = "A wall mounted closet which --should-- contain medical supplies."
icon_state = "medical_wall_locked"
@@ -605,24 +608,26 @@
icon_opened = "medical_wall_open"
icon_broken = "medical_wall_spark"
icon_off = "medical_wall_off"
req_access = list(access_medical)
anchored = 1
density = 0
wall_mounted = 1
req_access = list(access_medical)
/obj/station_objects/secure_closet/personal
/obj/structure/secure_closet/personal
desc = "The first card swiped gains control."
name = "Personal Closet"
/obj/station_objects/secure_closet/personal/patient
/obj/structure/secure_closet/personal/patient
name = "Patient's closet"
/obj/station_objects/secure_closet/kitchen
/obj/structure/secure_closet/kitchen
name = "Kitchen Cabinet"
req_access = list(access_kitchen)
/obj/station_objects/secure_closet/kitchen/mining
/obj/structure/secure_closet/kitchen/mining
req_access = list()
/obj/station_objects/secure_closet/meat
/obj/structure/secure_closet/meat
name = "Meat Fridge"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -631,7 +636,7 @@
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/station_objects/secure_closet/fridge
/obj/structure/secure_closet/fridge
name = "Refrigerator"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -640,7 +645,7 @@
icon_broken = "fridgebroken"
icon_off = "fridge1"
/obj/station_objects/secure_closet/money_freezer
/obj/structure/secure_closet/money_freezer
name = "Freezer"
icon_state = "fridge1"
icon_closed = "fridge"
@@ -650,7 +655,7 @@
icon_off = "fridge1"
req_access = list(access_heads_vault)
/obj/station_objects/secure_closet/wall
/obj/structure/secure_closet/wall
name = "wall locker"
req_access = list(access_security)
icon_state = "wall-locker1"

View File

@@ -1,50 +1,50 @@
//Costume spawner
/obj/effects/landmark/costume/New() //costume spawner, selects a random subclass and disappears
/obj/effect/landmark/costume/New() //costume spawner, selects a random subclass and disappears
var/list/options = typesof(/obj/effects/landmark/costume)
var/list/options = typesof(/obj/effect/landmark/costume)
var/PICK= options[rand(1,options.len)]
new PICK(src.loc)
del(src)
//SUBCLASSES. Spawn a bunch of items and disappear likewise
/obj/effects/landmark/costume/chicken/New()
/obj/effect/landmark/costume/chicken/New()
new /obj/item/clothing/suit/chickensuit(src.loc)
del(src)
/obj/effects/landmark/costume/madscientist/New()
/obj/effect/landmark/costume/madscientist/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/suit/labcoat/mad(src.loc)
new /obj/item/clothing/glasses/gglasses(src.loc)
del(src)
/obj/effects/landmark/costume/elpresidente/New()
/obj/effect/landmark/costume/elpresidente/New()
new /obj/item/clothing/under/gimmick/rank/captain/suit(src.loc)
new /obj/item/clothing/head/flatcap(src.loc)
new /obj/item/clothing/mask/cigarette/cigar/havanian(src.loc)
new /obj/item/clothing/shoes/jackboots(src.loc)
del(src)
/obj/effects/landmark/costume/nyangirl/New()
/obj/effect/landmark/costume/nyangirl/New()
new /obj/item/clothing/under/schoolgirl(src.loc)
new /obj/item/clothing/head/kitty(src.loc)
del(src)
/obj/effects/landmark/costume/maid/New()
/obj/effect/landmark/costume/maid/New()
new /obj/item/clothing/under/blackskirt(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/beret , /obj/item/clothing/head/rabbitears )
new CHOICE(src.loc)
new /obj/item/clothing/glasses/blindfold(src.loc)
del(src)
/obj/effects/landmark/costume/butler/New()
/obj/effect/landmark/costume/butler/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/under/suit_jacket(src.loc)
new /obj/item/clothing/head/that(src.loc)
del(src)
/obj/effects/landmark/costume/scratch/New()
/obj/effect/landmark/costume/scratch/New()
new /obj/item/clothing/gloves/white(src.loc)
new /obj/item/clothing/shoes/white(src.loc)
new /obj/item/clothing/under/scratch(src.loc)
@@ -52,12 +52,12 @@
new /obj/item/clothing/head/helmet/cueball(src.loc)
del(src)
/obj/effects/landmark/costume/highlander/New()
/obj/effect/landmark/costume/highlander/New()
new /obj/item/clothing/under/kilt(src.loc)
new /obj/item/clothing/head/beret(src.loc)
del(src)
/obj/effects/landmark/costume/prig/New()
/obj/effect/landmark/costume/prig/New()
new /obj/item/clothing/suit/wcoat(src.loc)
new /obj/item/clothing/glasses/monocle(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/bowler, /obj/item/clothing/head/that)
@@ -68,24 +68,24 @@
new /obj/item/clothing/mask/gas/fakemoustache(src.loc)
del(src)
/obj/effects/landmark/costume/plaguedoctor/New()
/obj/effect/landmark/costume/plaguedoctor/New()
new /obj/item/clothing/suit/bio_suit/plaguedoctorsuit(src.loc)
new /obj/item/clothing/head/plaguedoctorhat(src.loc)
del(src)
/obj/effects/landmark/costume/nightowl/New()
/obj/effect/landmark/costume/nightowl/New()
new /obj/item/clothing/under/owl(src.loc)
new /obj/item/clothing/mask/owl_mask(src.loc)
del(src)
/obj/effects/landmark/costume/waiter/New()
/obj/effect/landmark/costume/waiter/New()
new /obj/item/clothing/under/waiter(src.loc)
var/CHOICE= pick( /obj/item/clothing/head/kitty, /obj/item/clothing/head/rabbitears)
new CHOICE(src.loc)
new /obj/item/clothing/suit/apron(src.loc)
del(src)
/obj/effects/landmark/costume/pirate/New()
/obj/effect/landmark/costume/pirate/New()
new /obj/item/clothing/under/pirate(src.loc)
new /obj/item/clothing/suit/pirate(src.loc)
var/CHOICE = pick( /obj/item/clothing/head/pirate , /obj/item/clothing/head/bandana )
@@ -93,12 +93,12 @@
new /obj/item/clothing/glasses/eyepatch(src.loc)
del(src)
/obj/effects/landmark/costume/commie/New()
/obj/effect/landmark/costume/commie/New()
new /obj/item/clothing/under/soviet(src.loc)
new /obj/item/clothing/head/ushanka(src.loc)
del(src)
/obj/effects/landmark/costume/nurse/New()
/obj/effect/landmark/costume/nurse/New()
new /obj/item/clothing/under/rank/nursesuit(src.loc)
new /obj/item/clothing/head/nursehat(src.loc)
new /obj/item/clothing/glasses/regular(src.loc)
@@ -107,45 +107,45 @@
del(src)
/obj/effects/landmark/costume/imperium_monk/New()
/obj/effect/landmark/costume/imperium_monk/New()
new /obj/item/clothing/suit/imperium_monk(src.loc)
if (prob(25))
new /obj/item/clothing/mask/gas/cyborg(src.loc)
del(src)
/obj/effects/landmark/costume/holiday_priest/New()
/obj/effect/landmark/costume/holiday_priest/New()
new /obj/item/clothing/suit/holidaypriest(src.loc)
del(src)
/*
/obj/effects/landmark/costume/spiderman/New()
/obj/effect/landmark/costume/spiderman/New()
new /obj/item/clothing/under/spiderman(src.loc)
new /obj/item/clothing/mask/spiderman(src.loc)
del(src)*/
/obj/effects/landmark/costume/marisawizard/New()
/obj/effect/landmark/costume/marisawizard/New()
new /obj/item/clothing/head/wizard/marisa(src.loc)
new/obj/item/clothing/suit/wizrobe/marisa(src.loc)
del(src)
/obj/effects/landmark/costume/fakewizard/New()
/obj/effect/landmark/costume/fakewizard/New()
new /obj/item/clothing/suit/wizrobe/fake(src.loc)
new /obj/item/clothing/head/wizard/fake(src.loc)
del(src)
/obj/effects/landmark/costume/sexyclown/New()
/obj/effect/landmark/costume/sexyclown/New()
new /obj/item/clothing/mask/gas/sexyclown(src.loc)
new /obj/item/clothing/under/sexyclown(src.loc)
del(src)
/obj/effects/landmark/costume/sexymime/New()
/obj/effect/landmark/costume/sexymime/New()
new /obj/item/clothing/mask/gas/sexymime(src.loc)
new /obj/item/clothing/under/sexymime(src.loc)
del(src)
/*
/obj/effects/landmark/costume/cyborg/New()
/obj/effect/landmark/costume/cyborg/New()
new /obj/item/clothing/mask/gas/cyborg(src.loc)
new /obj/item/clothing/shoes/cyborg(src.loc)
new /obj/item/clothing/suit/cyborg_suit(src.loc)

View File

@@ -72,7 +72,7 @@
heat_transfer_coefficient = 0.01
armor = list(melee = 80, bullet = 60, laser = 50, taser = 30, bomb = 50, bio = 10, rad = 0)
/obj/item/clothing/gloves/combat //Combined effects of SWAT gloves and insulated gloves
/obj/item/clothing/gloves/combat //Combined effect of SWAT gloves and insulated gloves
desc = "These tactical gloves are somewhat fire and impact resistant."
name = "combat gloves"
icon_state = "black"

View File

@@ -340,7 +340,7 @@
slowdown = 1
armor = list(melee = 80, bullet = 60, laser = 50, taser = 25, bomb = 50, bio = 10, rad = 0)
/obj/item/clothing/suit/armor/swat/officer //Combined effects of the bomb suit and the SWAT suit.
/obj/item/clothing/suit/armor/swat/officer //Combined effect of the bomb suit and the SWAT suit.
name = "officer jacket"
desc = "An armored jacket used in special operations."
icon_state = "detective"

View File

@@ -1,32 +1,32 @@
/obj/effects/decal/ash
/obj/effect/decal/ash
name = "Ashes"
desc = "Ashes to ashes, dust to dust, and into space."
icon = 'objects.dmi'
icon_state = "ash"
anchored = 1
/obj/effects/decal/remains/human
/obj/effect/decal/remains/human
name = "remains"
desc = "These remains have a strange sense about them..."
icon = 'blood.dmi'
icon_state = "remains"
anchored = 1
/obj/effects/decal/remains/xeno
/obj/effect/decal/remains/xeno
name = "remains"
desc = "These remains have a strange sense about them..."
icon = 'blood.dmi'
icon_state = "remainsxeno"
anchored = 1
/obj/effects/decal/remains/robot
/obj/effect/decal/remains/robot
name = "remains"
desc = "These remains have a strange sense about them..."
icon = 'robots.dmi'
icon_state = "remainsrobot"
anchored = 1
/obj/effects/decal/point
/obj/effect/decal/point
name = "point"
desc = "It is an arrow hanging in mid-air. There may be a wizard about."
icon = 'screen1.dmi'
@@ -34,12 +34,12 @@
layer = 16.0
anchored = 1
/obj/effects/decal/cleanable
/obj/effect/decal/cleanable
var/list/random_icon_states = list()
//HUMANS
/obj/effects/decal/cleanable/blood
/obj/effect/decal/cleanable/blood
name = "Blood"
desc = "It's red. Its Gooye. It is the chefs cooking perhaps."
density = 0
@@ -58,14 +58,14 @@
D.cure(0)
..()
/obj/effects/decal/cleanable/blood/splatter
/obj/effect/decal/cleanable/blood/splatter
random_icon_states = list("gibbl1", "gibbl2", "gibbl3", "gibbl4", "gibbl5")
/obj/effects/decal/cleanable/blood/tracks
/obj/effect/decal/cleanable/blood/tracks
icon_state = "tracks"
random_icon_states = null
/obj/effects/decal/cleanable/blood/gibs
/obj/effect/decal/cleanable/blood/gibs
name = "gibs"
desc = "Grisly...and not the good kind neither."
density = 0
@@ -75,24 +75,24 @@
icon_state = "gibbl5"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6")
/obj/effects/decal/cleanable/blood/gibs/up
/obj/effect/decal/cleanable/blood/gibs/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
/obj/effects/decal/cleanable/blood/gibs/down
/obj/effect/decal/cleanable/blood/gibs/down
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibdown1","gibdown1","gibdown1")
/obj/effects/decal/cleanable/blood/gibs/body
/obj/effect/decal/cleanable/blood/gibs/body
random_icon_states = list("gibhead", "gibtorso")
/obj/effects/decal/cleanable/blood/gibs/limb
/obj/effect/decal/cleanable/blood/gibs/limb
random_icon_states = list("gibleg", "gibarm")
/obj/effects/decal/cleanable/blood/gibs/core
/obj/effect/decal/cleanable/blood/gibs/core
random_icon_states = list("gibmid1", "gibmid2", "gibmid3")
//ALIENS
/obj/effects/decal/cleanable/xenoblood
/obj/effect/decal/cleanable/xenoblood
name = "xeno blood"
desc = "It's green. Must be more of the chefs cooking."
density = 0
@@ -108,38 +108,38 @@
D.cure(0)
..()
/obj/effects/decal/cleanable/xenoblood/xsplatter
/obj/effect/decal/cleanable/xenoblood/xsplatter
random_icon_states = list("xgibbl1", "xgibbl2", "xgibbl3", "xgibbl4", "xgibbl5")
/obj/effects/decal/cleanable/xenoblood/xgibs
/obj/effect/decal/cleanable/xenoblood/xgibs
name = "xeno gibs"
desc = "Gnarly..."
icon = 'blood.dmi'
icon_state = "xgib1"
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6")
/obj/effects/decal/cleanable/xenoblood/xgibs/up
/obj/effect/decal/cleanable/xenoblood/xgibs/up
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibup1","xgibup1","xgibup1")
/obj/effects/decal/cleanable/xenoblood/xgibs/down
/obj/effect/decal/cleanable/xenoblood/xgibs/down
random_icon_states = list("xgib1", "xgib2", "xgib3", "xgib4", "xgib5", "xgib6","xgibdown1","xgibdown1","xgibdown1")
/obj/effects/decal/cleanable/xenoblood/xgibs/body
/obj/effect/decal/cleanable/xenoblood/xgibs/body
random_icon_states = list("xgibhead", "xgibtorso")
/obj/effects/decal/cleanable/xenoblood/xgibs/limb
/obj/effect/decal/cleanable/xenoblood/xgibs/limb
random_icon_states = list("xgibleg", "xgibarm")
/obj/effects/decal/cleanable/xenoblood/xgibs/core
/obj/effect/decal/cleanable/xenoblood/xgibs/core
random_icon_states = list("xgibmid1", "xgibmid2", "xgibmid3")
/obj/effects/decal/cleanable/blood/xtracks
/obj/effect/decal/cleanable/blood/xtracks
icon_state = "xtracks"
random_icon_states = null
//ROBOTS
/obj/effects/decal/cleanable/robot_debris
/obj/effect/decal/cleanable/robot_debris
name = "robot debris"
desc = "Useless heap of junk...or is it..."
density = 0
@@ -149,16 +149,16 @@
icon_state = "gib1"
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
/obj/effects/decal/cleanable/robot_debris/limb
/obj/effect/decal/cleanable/robot_debris/limb
random_icon_states = list("gibarm", "gibleg")
/obj/effects/decal/cleanable/robot_debris/up
/obj/effect/decal/cleanable/robot_debris/up
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibup1","gibup1") //2:7 is close enough to 1:4
/obj/effects/decal/cleanable/robot_debris/down
/obj/effect/decal/cleanable/robot_debris/down
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7","gibdown1","gibdown1") //2:7 is close enough to 1:4
/obj/effects/decal/cleanable/oil
/obj/effect/decal/cleanable/oil
name = "motor oil"
desc = "It's black. Beepsky made another mess."
density = 0
@@ -174,12 +174,12 @@
D.cure(0)
..()
/obj/effects/decal/cleanable/oil/streak
/obj/effect/decal/cleanable/oil/streak
random_icon_states = list("streak1", "streak2", "streak3", "streak4", "streak5")
//OTHER
/obj/effects/decal/cleanable/generic
/obj/effect/decal/cleanable/generic
name = "clutter"
desc = "Someone should clean that up."
density = 0
@@ -188,7 +188,7 @@
icon = 'objects.dmi'
icon_state = "shards"
/obj/effects/decal/cleanable/dirt
/obj/effect/decal/cleanable/dirt
name = "dirt"
desc = "Someone should clean that up."
density = 0
@@ -197,7 +197,7 @@
icon = 'effects.dmi'
icon_state = "dirt"
/obj/effects/decal/cleanable/greenglow
/obj/effect/decal/cleanable/greenglow
name = "green glow"
desc = "Eerie. This makes you feel creepy."
density = 0
@@ -206,7 +206,7 @@
icon = 'effects.dmi'
icon_state = "greenglow"
/obj/effects/decal/cleanable/cobweb
/obj/effect/decal/cleanable/cobweb
name = "cobweb"
desc = "Someone should remove that."
density = 0
@@ -215,7 +215,7 @@
icon = 'effects.dmi'
icon_state = "cobweb1"
/obj/effects/decal/cleanable/molten_item
/obj/effect/decal/cleanable/molten_item
name = "gooey grey mass"
desc = "Huh. Creepy..."
density = 0
@@ -224,7 +224,7 @@
icon = 'chemical.dmi'
icon_state = "molten"
/obj/effects/decal/cleanable/cobweb2
/obj/effect/decal/cleanable/cobweb2
name = "cobweb"
desc = "Someone should remove that."
density = 0
@@ -234,13 +234,13 @@
icon_state = "cobweb2"
// Used for spray that you spray at walls, tables, hydrovats etc
/obj/effects/decal/spraystill
/obj/effect/decal/spraystill
density = 0
anchored = 1
layer = 50
//Vomit (sorry)
/obj/effects/decal/cleanable/vomit
/obj/effect/decal/cleanable/vomit
name = "Vomit"
desc = "Gosh, how unpleasant."
density = 0
@@ -256,7 +256,7 @@
D.cure(0)
..()
/obj/effects/decal/cleanable/tomato_smudge
/obj/effect/decal/cleanable/tomato_smudge
name = "Tomato smooth"
desc = "It's red"
density = 0
@@ -265,7 +265,7 @@
icon = 'tomatodecal.dmi'
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
/obj/effects/decal/cleanable/egg_smudge
/obj/effect/decal/cleanable/egg_smudge
name = "Smashed egg"
desc = ""
density = 0

View File

@@ -1296,7 +1296,7 @@
throw_impact(atom/hit_atom)
..()
new/obj/effects/decal/cleanable/tomato_smudge(src.loc)
new/obj/effect/decal/cleanable/tomato_smudge(src.loc)
src.visible_message("\red [src.name] has been squashed.","\red You hear a smack.")
del(src)
return
@@ -1324,7 +1324,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/killertomato/attack_self(mob/user as mob)
if(istype(user.loc,/turf/space))
return
new /obj/effects/critter/killertomato(user.loc)
new /obj/effect/critter/killertomato(user.loc)
del(src)
@@ -1481,7 +1481,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/walkingmushroom/attack_self(mob/user as mob)
if(istype(user.loc,/turf/space))
return
new /obj/effects/critter/walkingmushroom(user.loc)
new /obj/effect/critter/walkingmushroom(user.loc)
del(src)
@@ -1520,7 +1520,7 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom/attack_self(mob/user as mob)
if(istype(user.loc,/turf/space))
return
var/obj/effects/glowshroom/planted = new /obj/effects/glowshroom(user.loc)
var/obj/effect/glowshroom/planted = new /obj/effect/glowshroom(user.loc)
planted.delay = lifespan * 50
planted.endurance = endurance
@@ -1625,7 +1625,7 @@
/obj/item/weapon/grown/gibtomato/New()
..()
src.gibs = new /obj/effects/gibspawner/human(get_turf(src))
src.gibs = new /obj/effect/gibspawner/human(get_turf(src))
src.gibs.attach(src)
src.smoke.set_up(10, 0, usr.loc)
*/

View File

@@ -428,7 +428,7 @@
idle_power_usage = 5
active_power_usage = 100
var
obj/effects/overlay/hologram//The projection itself. If there is one, the instrument is on, off otherwise.
obj/effect/overlay/hologram//The projection itself. If there is one, the instrument is on, off otherwise.
/obj/machinery/hologram/holopad
name = "AI holopad"

View File

@@ -1,3 +1,3 @@
/obj/effects/spawner
/obj/effect/spawner
name = "object spawner"

View File

@@ -153,14 +153,14 @@
item_state = "firstaid-o2"
/obj/item/weapon/storage/flashbang_kit
desc = "<FONT color=red><B>WARNING: Do not use without reading these preautions!</B></FONT>\n<B>These devices are extremely dangerous and can cause blindness or deafness if used incorrectly.</B>\nThe chemicals contained in these devices have been tuned for maximal effectiveness and due to\nextreme safety precuaiotn shave been incased in a tamper-proof pack. DO NOT ATTEMPT TO OPEN\nFLASH WARNING: Do not use continually. Excercise extreme care when detonating in closed spaces.\n\tMake attemtps not to detonate withing range of 2 meters of the intended target. It is imperative\n\tthat the targets visit a medical professional after usage. Damage to eyes increases extremely per\n\tuse and according to range. Glasses with flash resistant filters DO NOT always work on high powered\n\tflash devices such as this. <B>EXERCISE CAUTION REGARDLESS OF CIRCUMSTANCES</B>\nSOUND WARNING: Do not use continually. Visit a medical professional if hearing is lost.\n\tThere is a slight chance per use of complete deafness. Exercise caution and restraint.\nSTUN WARNING: If the intended or unintended target is too close to detonation the resulting sound\n\tand flash have been known to cause extreme sensory overload resulting in temporary\n\tincapacitation.\n<B>DO NOT USE CONTINUALLY</B>\nOperating Directions:\n\t1. Pull detonnation pin. <B>ONCE THE PIN IS PULLED THE GRENADE CAN NOT BE DISARMED!</B>\n\t2. Throw grenade. <B>NEVER HOLD A LIVE FLASHBANG</B>\n\t3. The grenade will detonste 10 seconds hafter being primed. <B>EXCERCISE CAUTION</B>\n\t-<B>Never prime another grenade until after the first is detonated</B>\nNote: Usage of this pyrotechnic device without authorization is an extreme offense and can\nresult in severe punishment upwards of <B>10 years in prison per use</B>.\n\nDefault 3 second wait till from prime to detonation. This can be switched with a screwdriver\nto 10 seconds.\n\nCopyright of Nanotrasen Industries- Military Armnaments Division\nThis device was created by Nanotrasen Labs a member of the Expert Advisor Corporation"
name = "Flashbangs (WARNING)"
desc = "<FONT color=red><B>WARNING: Do not use without reading these preautions!</B></FONT>\n<B>These devices are extremely dangerous and can cause blindness or deafness if used incorrectly.</B>\nThe chemicals contained in these devices have been tuned for maximal effectiveness and due to\nextreme safety precuaiotn shave been incased in a tamper-proof pack. DO NOT ATTEMPT TO OPEN\nFLASH WARNING: Do not use continually. Excercise extreme care when detonating in closed spaces.\n\tMake attemtps not to detonate withing range of 2 meters of the intended target. It is imperative\n\tthat the targets visit a medical professional after usage. Damage to eyes increases extremely per\n\tuse and according to range. Glasses with flash resistant filters DO NOT always work on high powered\n\tflash devices such as this. <B>EXERCISE CAUTION REGARDLESS OF CIRCUMSTANCES</B>\nSOUND WARNING: Do not use continually. Visit a medical professional if hearing is lost.\n\tThere is a slight chance per use of complete deafness. Exercise caution and restraint.\nSTUN WARNING: If the intended or unintended target is too close to detonation the resulting sound\n\tand flash have been known to cause extreme sensory overload resulting in temporary\n\tincapacitation.\n<B>DO NOT USE CONTINUALLY</B>\nOperating Directions:\n\t1. Pull detonnation pin. <B>ONCE THE PIN IS PULLED THE GRENADE CAN NOT BE DISARMED!</B>\n\t2. Throw grenade. <B>NEVER HOLD A LIVE FLASHBANG</B>\n\t3. The grenade will detonste 10 seconds hafter being primed. <B>EXCERCISE CAUTION</B>\n\t-<B>Never prime another grenade until after the first is detonated</B>\nNote: Usage of this pyrotechnic device without authorization is an extreme offense and can\nresult in severe punishment upwards of <B>10 years in prison per use</B>.\n\nDefault 3 second wait till from prime to detonation. This can be switched with a screwdriver\nto 10 seconds.\n\nCopyright of Nanotrasen Industries- Military Armnaments Division\nThis device was created by Nanotrasen Labs a member of the Expert Advisor Corporation"
icon_state = "flashbang"
item_state = "syringe_kit"
/obj/item/weapon/storage/emp_kit
desc = "A box with 5 emp grenades."
name = "emp grenades"
desc = "A box with 5 emp grenades."
icon_state = "flashbang"
item_state = "syringe_kit"
@@ -170,11 +170,7 @@
icon_state = "glasses"
item_state = "syringe_kit"
/obj/item/weapon/storage/bb_kit
name = "Body Bags"
desc = "This box contains body bags."
icon_state = "bodybags"
item_state = "syringe_kit"
/obj/item/weapon/storage/handcuff_kit
name = "Spare Handcuffs"

View File

@@ -11,7 +11,7 @@
"/obj/item/weapon/pen/sleepypen",
"/obj/item/weapon/chem_grenade/incendiary")
cost = 20
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Special Ops crate"
hidden = 1
@@ -30,14 +30,14 @@
"/obj/item/weapon/reagent_containers/food/snacks/grown/banana",
"/obj/item/weapon/reagent_containers/food/snacks/grown/banana")
cost = 5
containertype = "/obj/station_objects/crate/freezer"
containertype = "/obj/structure/crate/freezer"
containername = "Food crate"
/datum/supply_packs/monkey
name = "Monkey crate"
contains = list ("/obj/item/weapon/monkeycube_box")
cost = 20
containertype = "/obj/station_objects/crate/freezer"
containertype = "/obj/structure/crate/freezer"
containername = "Monkey crate"
/*
@@ -47,7 +47,7 @@
"/obj/item/ammo_casing/shotgun/beanbag",
"/obj/item/ammo_casing/shotgun/beanbag")
cost = 25
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Shotgun crate"
//APPARENTLY OP?
*/
@@ -65,7 +65,7 @@
"/obj/item/ammo_casing/shotgun/beanbag",
"/obj/item/ammo_casing/shotgun/beanbag")
cost = 10
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Beanbag shells"
/datum/supply_packs/party
@@ -81,7 +81,7 @@
"/obj/item/weapon/reagent_containers/food/drinks/beer",
"/obj/item/weapon/reagent_containers/food/drinks/beer")
cost = 20
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Party equipment"
/datum/supply_packs/internals
@@ -93,7 +93,7 @@
"/obj/item/weapon/tank/air",
"/obj/item/weapon/tank/air")
cost = 10
containertype = "/obj/station_objects/crate/internals"
containertype = "/obj/structure/crate/internals"
containername = "Internals crate"
/datum/supply_packs/evacuation
@@ -113,7 +113,7 @@
"/obj/item/clothing/mask/gas",
"/obj/item/clothing/mask/gas")
cost = 35
containertype = "/obj/station_objects/crate/internals"
containertype = "/obj/structure/crate/internals"
containername = "Emergency Crate"
/datum/supply_packs/janitor
@@ -129,9 +129,9 @@
"/obj/item/weapon/chem_grenade/cleaner",
"/obj/item/weapon/chem_grenade/cleaner",
"/obj/item/weapon/chem_grenade/cleaner",
"/obj/station_objects/mopbucket")
"/obj/structure/mopbucket")
cost = 10
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Janitorial supplies"
/obj/item/weapon/storage/lightbox/tubes
@@ -147,7 +147,7 @@
"/obj/item/weapon/storage/lightbox/bulbs",
"/obj/item/weapon/storage/lightbox/bulbs")
cost = 5
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Replacement lights"
/datum/supply_packs/costume
@@ -165,7 +165,7 @@
"/obj/item/clothing/suit/suspenders",
"/obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofnothing")
cost = 10
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Standard Costumes"
access = access_theatre
@@ -176,14 +176,14 @@
"/obj/item/clothing/shoes/sandal",
"/obj/item/clothing/head/wizard/fake")
cost = 20
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Wizard costume crate"
/datum/supply_packs/mule
name = "MULEbot Crate"
contains = list("/obj/machinery/bot/mulebot")
cost = 20
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "MULEbot Crate"
/datum/supply_packs/hydroponics // -- Skie
@@ -197,7 +197,7 @@
"/obj/item/clothing/gloves/botanic_leather",
"/obj/item/clothing/suit/apron") // Updated with new things
cost = 10
containertype = /obj/station_objects/crate/hydroponics
containertype = /obj/structure/crate/hydroponics
containername = "Hydroponics crate"
access = access_hydroponics
@@ -215,7 +215,7 @@
"/obj/item/seeds/chantermycelium",
"/obj/item/seeds/potatoseed")
cost = 10
containertype = /obj/station_objects/crate/hydroponics
containertype = /obj/structure/crate/hydroponics
containername = "Seeds crate"
access = access_hydroponics
@@ -232,7 +232,7 @@
"/obj/item/seeds/bananaseed",
"/obj/item/seeds/eggyseed")
cost = 15
containertype = /obj/station_objects/crate/hydroponics
containertype = /obj/structure/crate/hydroponics
containername = "Exotic Seeds crate"
access = access_hydroponics
@@ -247,7 +247,7 @@
"/obj/item/weapon/reagent_containers/glass/bottle/stoxin",
"/obj/item/weapon/storage/syringes")
cost = 10
containertype = "/obj/station_objects/crate/medical"
containertype = "/obj/structure/crate/medical"
containername = "Medical crate"
@@ -264,7 +264,7 @@
"/obj/item/weapon/storage/syringes",
"/obj/item/weapon/storage/beakerbox")
cost = 20
containertype = "/obj/station_objects/crate/secure/weapon"
containertype = "/obj/structure/crate/secure/weapon"
containername = "Virus crate"
access = access_cmo
@@ -273,7 +273,7 @@
contains = list("/obj/item/stack/sheet/metal")
amount = 50
cost = 10
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Metal sheets crate"
/datum/supply_packs/glass50
@@ -281,7 +281,7 @@
contains = list("/obj/item/stack/sheet/glass")
amount = 50
cost = 10
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Glass sheets crate"
/datum/supply_packs/electrical
@@ -295,7 +295,7 @@
"/obj/item/weapon/cell/high",
"/obj/item/weapon/cell/high")
cost = 15
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Electrical maintenance crate"
/datum/supply_packs/mechanical
@@ -310,15 +310,15 @@
"/obj/item/clothing/head/helmet/welding",
"/obj/item/clothing/head/helmet/hardhat")
cost = 10
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Mechanical maintenance crate"
/datum/supply_packs/waterfueltank
name = "Water/Fuel tank crate"
contains = list("/obj/station_objects/reagent_dispensers/watertank",
"/obj/station_objects/reagent_dispensers/fueltank")
contains = list("/obj/structure/reagent_dispensers/watertank",
"/obj/structure/reagent_dispensers/fueltank")
cost = 15
containertype = "/obj/station_objects/crate"
containertype = "/obj/structure/crate"
containername = "Water/Fuel tank crate"
/datum/supply_packs/engine
@@ -326,7 +326,7 @@
contains = list("/obj/machinery/emitter",
"/obj/machinery/emitter",)
cost = 10
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Emitter crate"
access = access_heads
@@ -351,13 +351,13 @@
/datum/supply_packs/engine/PA
name = "Particle Accelerator crate"
cost = 40
contains = list("/obj/station_objects/particle_accelerator/fuel_chamber",
contains = list("/obj/structure/particle_accelerator/fuel_chamber",
"/obj/machinery/particle_accelerator/control_box",
"/obj/station_objects/particle_accelerator/particle_emitter/center",
"/obj/station_objects/particle_accelerator/particle_emitter/left",
"/obj/station_objects/particle_accelerator/particle_emitter/right",
"/obj/station_objects/particle_accelerator/power_box",
"/obj/station_objects/particle_accelerator/end_cap")
"/obj/structure/particle_accelerator/particle_emitter/center",
"/obj/structure/particle_accelerator/particle_emitter/left",
"/obj/structure/particle_accelerator/particle_emitter/right",
"/obj/structure/particle_accelerator/power_box",
"/obj/structure/particle_accelerator/end_cap")
containername = "Particle Accelerator crate"
/datum/supply_packs/mecha_ripley
@@ -366,7 +366,7 @@
"/obj/item/mecha_parts/circuitboard/ripley/peripherals", //TEMPORARY due to lack of circuitboard printer
"/obj/item/mecha_parts/circuitboard/ripley/main") //TEMPORARY due to lack of circuitboard printer
cost = 40
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "APLU \"Ripley\" Circuit Crate"
access = access_robotics
@@ -383,7 +383,7 @@
"/obj/item/weapon/cell/high",
"/obj/item/weapon/cell/high")
cost = 10
containertype = "/obj/station_objects/crate/secure/gear"
containertype = "/obj/structure/crate/secure/gear"
containername = "Robotics Assembly"
access = access_robotics
@@ -402,7 +402,7 @@
"/obj/item/device/timer",
"/obj/item/device/timer")
cost = 10
containertype = "/obj/station_objects/crate/secure/plasma"
containertype = "/obj/structure/crate/secure/plasma"
containername = "Plasma assembly crate"
access = access_tox
@@ -417,7 +417,7 @@
"/obj/item/weapon/storage/flashbang_kit",
"/obj/item/weapon/storage/flashbang_kit")
cost = 30
containertype = "/obj/station_objects/crate/secure/weapon"
containertype = "/obj/structure/crate/secure/weapon"
containername = "Weapons crate"
access = access_security
@@ -432,7 +432,7 @@
"/obj/item/weapon/chem_grenade/incendiary",
"/obj/item/clothing/gloves/stungloves")
cost = 25
containertype = "/obj/station_objects/crate/secure/weapon"
containertype = "/obj/structure/crate/secure/weapon"
containername = "Experimental weapons crate"
access = access_heads
@@ -443,7 +443,7 @@
"/obj/item/clothing/suit/armor/vest",
"/obj/item/clothing/suit/armor/vest")
cost = 15
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Armor crate"
access = access_security
@@ -468,7 +468,7 @@
"/obj/item/clothing/head/helmet/riot",
"/obj/item/clothing/suit/armor/riot")
cost = 60
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Riot gear crate"
access = access_armory
@@ -479,7 +479,7 @@
"/obj/item/weapon/gun/projectile/shotgun/combat2",
"/obj/item/weapon/gun/projectile/shotgun/combat2")
cost = 50
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Ballistic gear crate"
access = access_armory
@@ -490,7 +490,7 @@
"/obj/item/weapon/gun/energy",
"/obj/item/weapon/gun/energy")
cost = 50
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Experimental energy gear crate"
access = access_armory
@@ -501,7 +501,7 @@
"/obj/item/clothing/head/helmet/riot",
"/obj/item/clothing/suit/armor/riot")
cost = 35
containertype = "/obj/station_objects/crate/secure"
containertype = "/obj/structure/crate/secure"
containername = "Experimental armor crate"
access = access_armory
@@ -512,7 +512,7 @@
"/obj/machinery/deployable/barrier",
"/obj/machinery/deployable/barrier")
cost = 20
containertype = "/obj/station_objects/crate/secure/gear"
containertype = "/obj/structure/crate/secure/gear"
containername = "Secruity Barriers crate"
/datum/supply_packs/hats/
@@ -542,7 +542,7 @@
"/obj/item/clothing/head/collectable/petehat")
name = "Collectable Hat Crate!"
cost = 200
containertype = "/obj/station_objects/crate/hat"
containertype = "/obj/structure/crate/hat"
containername = "Collectable Hats Crate! Brought to you by Bass.inc!"
/datum/supply_packs/hats/New()

View File

@@ -53,7 +53,7 @@
flags = FPRINT | TABLEPASS
w_class = 1.0
/obj/effects/foam_dart_dummy
/obj/effect/foam_dart_dummy
name = ""
desc = ""
icon = 'toy.dmi'
@@ -174,11 +174,11 @@
if(!isturf(target.loc) || target == user) return
if(flag) return
if (locate (/obj/station_objects/table, src.loc))
if (locate (/obj/structure/table, src.loc))
return
else if (bullets)
var/turf/trg = get_turf(target)
var/obj/effects/foam_dart_dummy/D = new/obj/effects/foam_dart_dummy(get_turf(src))
var/obj/effect/foam_dart_dummy/D = new/obj/effect/foam_dart_dummy(get_turf(src))
bullets--
D.icon_state = "foamdart"
D.name = "foam dart"
@@ -266,10 +266,10 @@
throw_impact(atom/hit_atom)
..()
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
new /obj/effects/decal/ash(src.loc)
new /obj/effect/decal/ash(src.loc)
src.visible_message("\red The [src.name] explodes!","\red You hear a snap!")
playsound(src, 'snap.ogg', 50, 1)
del(src)
@@ -280,10 +280,10 @@
if(M.m_intent == "run")
M << "\red You step on the snap pop!"
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 0, src)
s.start()
new /obj/effects/decal/ash(src.loc)
new /obj/effect/decal/ash(src.loc)
src.visible_message("\red The [src.name] explodes!","\red You hear a snap!")
playsound(src, 'snap.ogg', 50, 1)
del(src)

View File

@@ -228,7 +228,7 @@
throw_range = 1
w_class = 4.0//So you can't hide it in your pocket or some such.
flags = FPRINT | TABLEPASS | NOSHIELD
var/datum/effects/system/spark_spread/spark_system
var/datum/effect/system/spark_spread/spark_system
/obj/item/weapon/bananapeel
name = "Banana Peel"
@@ -821,7 +821,7 @@
/obj/item/weapon/paper/Toxin
name = "paper- 'Chemical Information'"
info = "Known Onboard Toxins:<BR>\n\tGrade A Semi-Liquid Plasma:<BR>\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.<BR>\n\t\tA gas mask fails to filter plasma after 50 units.<BR>\n\t\tWill attempt to diffuse like a gas.<BR>\n\t\tFiltered by scrubbers.<BR>\n\t\tThere is a bottled version which is very different<BR>\n\t\t\tfrom the version found in canisters!<BR>\n<BR>\n\t\tWARNING: Highly Flammable. Keep away from heat sources<BR>\n\t\texcept in a enclosed fire area!<BR>\n\t\tWARNING: It is a crime to use this without authorization.<BR>\nKnown Onboard Anti-Toxin:<BR>\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.<BR>\n\t\tBest if injected directly into bloodstream.<BR>\n\t\tA full injection is in every regular Med-Kit.<BR>\n\t\tSpecial toxin Kits hold around 7.<BR>\n<BR>\nKnown Onboard Chemicals (other):<BR>\n\tRejuvenation T#001:<BR>\n\t\tEven 1 unit injected directly into the bloodstream<BR>\n\t\t\twill cure paralysis and sleep toxins.<BR>\n\t\tIf administered to a dying patient it will prevent<BR>\n\t\t\tfurther damage for about units*3 seconds.<BR>\n\t\t\tit will not cure them or allow them to be cured.<BR>\n\t\tIt can be administeredd to a non-dying patient<BR>\n\t\t\tbut the chemicals disappear just as fast.<BR>\n\tSleep Toxin T#054:<BR>\n\t\t5 units wilkl induce precisely 1 minute of sleep.<BR>\n\t\t\tThe effects are cumulative.<BR>\n\t\tWARNING: It is a crime to use this without authorization"
info = "Known Onboard Toxins:<BR>\n\tGrade A Semi-Liquid Plasma:<BR>\n\t\tHighly poisonous. You cannot sustain concentrations above 15 units.<BR>\n\t\tA gas mask fails to filter plasma after 50 units.<BR>\n\t\tWill attempt to diffuse like a gas.<BR>\n\t\tFiltered by scrubbers.<BR>\n\t\tThere is a bottled version which is very different<BR>\n\t\t\tfrom the version found in canisters!<BR>\n<BR>\n\t\tWARNING: Highly Flammable. Keep away from heat sources<BR>\n\t\texcept in a enclosed fire area!<BR>\n\t\tWARNING: It is a crime to use this without authorization.<BR>\nKnown Onboard Anti-Toxin:<BR>\n\tAnti-Toxin Type 01P: Works against Grade A Plasma.<BR>\n\t\tBest if injected directly into bloodstream.<BR>\n\t\tA full injection is in every regular Med-Kit.<BR>\n\t\tSpecial toxin Kits hold around 7.<BR>\n<BR>\nKnown Onboard Chemicals (other):<BR>\n\tRejuvenation T#001:<BR>\n\t\tEven 1 unit injected directly into the bloodstream<BR>\n\t\t\twill cure paralysis and sleep toxins.<BR>\n\t\tIf administered to a dying patient it will prevent<BR>\n\t\t\tfurther damage for about units*3 seconds.<BR>\n\t\t\tit will not cure them or allow them to be cured.<BR>\n\t\tIt can be administeredd to a non-dying patient<BR>\n\t\t\tbut the chemicals disappear just as fast.<BR>\n\tSleep Toxin T#054:<BR>\n\t\t5 units wilkl induce precisely 1 minute of sleep.<BR>\n\t\t\tThe effect are cumulative.<BR>\n\t\tWARNING: It is a crime to use this without authorization"
/obj/item/weapon/paper/courtroom
name = "paper- 'A Crash Course in Legal SOP on SS13'"
@@ -829,7 +829,7 @@
/obj/item/weapon/paper/hydroponics
name = "paper- 'Greetings from Billy Bob'"
info = "<B>Hey fellow botanist!</B><BR>\n<BR>\nI didn't trust the station folk so I left<BR>\na couple of weeks ago. But here's some<BR>\ninstructions on how to operate things here.<BR>\nYou can grow plants and each iteration they become<BR>\nstronger, more potent and have better yield, if you<BR>\nknow which ones to pick. Use your botanist's analyzer<BR>\nfor that. You can turn harvested plants into seeds<BR>\nat the seed extractor, and replant them for better stuff!<BR>\nSometimes if the weed level gets high in the tray<BR>\nmutations into different mushroom or weed species have<BR>\nbeen witnessed. On the rare occassion even weeds mutate!<BR>\n<BR>\nEither way, have fun!<BR>\n<BR>\nBest regards,<BR>\nBilly Bob Johnson.<BR>\n<BR>\nPS.<BR>\nHere's a few tips:<BR>\nIn nettles, potency = damage<BR>\nIn amanitas, potency = deadliness + side effects<BR>\nIn Liberty caps, potency = drug power + effects<BR>\nIn chilis, potency = heat<BR>\n<B>Nutrients keep mushrooms alive!</B><BR>\n<B>Water keeps weeds such as nettles alive!</B><BR>\n<B>All other plants need both.</B>"
info = "<B>Hey fellow botanist!</B><BR>\n<BR>\nI didn't trust the station folk so I left<BR>\na couple of weeks ago. But here's some<BR>\ninstructions on how to operate things here.<BR>\nYou can grow plants and each iteration they become<BR>\nstronger, more potent and have better yield, if you<BR>\nknow which ones to pick. Use your botanist's analyzer<BR>\nfor that. You can turn harvested plants into seeds<BR>\nat the seed extractor, and replant them for better stuff!<BR>\nSometimes if the weed level gets high in the tray<BR>\nmutations into different mushroom or weed species have<BR>\nbeen witnessed. On the rare occassion even weeds mutate!<BR>\n<BR>\nEither way, have fun!<BR>\n<BR>\nBest regards,<BR>\nBilly Bob Johnson.<BR>\n<BR>\nPS.<BR>\nHere's a few tips:<BR>\nIn nettles, potency = damage<BR>\nIn amanitas, potency = deadliness + side effect<BR>\nIn Liberty caps, potency = drug power + effect<BR>\nIn chilis, potency = heat<BR>\n<B>Nutrients keep mushrooms alive!</B><BR>\n<B>Water keeps weeds such as nettles alive!</B><BR>\n<B>All other plants need both.</B>"
/obj/item/weapon/paper/flag
icon_state = "flag_neutral"

View File

@@ -1,4 +1,4 @@
/obj/station_objects/window
/obj/structure/window
name = "window"
icon = 'structures.dmi'
desc = "A window."
@@ -20,45 +20,45 @@
// Basic
/obj/station_objects/window/basic
/obj/structure/window/basic
icon_state = "window"
/obj/station_objects/window/basic/north
/obj/structure/window/basic/north
dir = NORTH
/obj/station_objects/window/basic/east
/obj/structure/window/basic/east
dir = EAST
/obj/station_objects/window/basic/west
/obj/structure/window/basic/west
dir = WEST
/obj/station_objects/window/basic/south
/obj/structure/window/basic/south
dir = SOUTH
/obj/station_objects/window/basic/northwest
/obj/structure/window/basic/northwest
dir = NORTHWEST
/obj/station_objects/window/basic/northeast
/obj/structure/window/basic/northeast
dir = NORTHEAST
/obj/station_objects/window/basic/southwest
/obj/structure/window/basic/southwest
dir = SOUTHWEST
/obj/station_objects/window/basic/southeast
/obj/structure/window/basic/southeast
dir = SOUTHEAST
// Reinforced
/obj/station_objects/window/reinforced
/obj/structure/window/reinforced
reinf = 1
icon_state = "rwindow"
name = "reinforced window"
/obj/station_objects/window/reinforced/tinted
/obj/structure/window/reinforced/tinted
name = "tinted window"
icon_state = "twindow"
opacity = 1
/obj/station_objects/window/reinforced/tinted/frosted
/obj/structure/window/reinforced/tinted/frosted
icon_state = "fwindow"
name = "frosted window"

View File

@@ -36,7 +36,7 @@
var/Z = source:z
spawn(0)
//I really shouldnt put this here but i dont have a better idea
var/obj/effects/overlay/O = new /obj/effects/overlay ( locate(X,Y,Z) )
var/obj/effect/overlay/O = new /obj/effect/overlay ( locate(X,Y,Z) )
O.name = "sparkles"
O.anchored = 1
O.density = 0

View File

@@ -538,7 +538,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
/proc/DirBlocked(turf/loc,var/dir)
for(var/obj/station_objects/window/D in loc)
for(var/obj/structure/window/D in loc)
if(!D.density) continue
if(D.dir == SOUTHWEST) return 1
if(D.dir == dir) return 1
@@ -553,7 +553,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
/proc/TurfBlockedNonWindow(turf/loc)
for(var/obj/O in loc)
if(O.density && !istype(O, /obj/station_objects/window))
if(O.density && !istype(O, /obj/structure/window))
return 1
return 0

View File

@@ -27,7 +27,7 @@ icon/GrayScale()
Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact.
icon/ColorTone(tone)
Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an
RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effects.
RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect.
See also the global ColorTone() proc.
icon/MinColors(icon)
The icon is blended with a second icon where the minimum of each RGB pixel is the result.
@@ -152,7 +152,7 @@ mob
overlays+=I
// Testing object types (and layers)
overlays+=/obj/effects/overlayTest
overlays+=/obj/effect/overlayTest
loc = locate (10,10,1)
verb
@@ -199,7 +199,7 @@ mob
getFlatIcon(src)
Browse_Icon()
obj/effects/overlayTest
obj/effect/overlayTest
icon = 'old_or_unused.dmi'
icon_state = "blue"
pixel_x = -24

View File

@@ -90,7 +90,7 @@ proc/spawn_asteroid(var/turf/start_loc,var/type,var/size,var/richness)//type: 0
return
/datum/game_mode/proc/spawn_exporation_packs()
for (var/obj/effects/landmark/L in world)
for (var/obj/effect/landmark/L in world)
if (L.tag == "landmark*ExplorationPack")
new /obj/item/weapon/storage/explorers_box(L.loc)
del(L)
@@ -102,7 +102,7 @@ proc/spawn_room(var/atom/start_loc,var/x_size,var/y_size,var/wall,var/floor)
//world << "Room spawned at [start_loc.x],[start_loc.y],[start_loc.z]"
if(!wall)
wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/effects/alien/resin)
wall = pick(/turf/simulated/wall/r_wall,/turf/simulated/wall,/obj/effect/alien/resin)
if(!floor)
floor = pick(/turf/simulated/floor,/turf/simulated/floor/engine)
@@ -135,7 +135,7 @@ proc/admin_spawn_room_at_pos()
if("Asteroid wall")
wall=/turf/simulated/wall/asteroid
if("Resin wall")
wall=/obj/effects/alien/resin
wall=/obj/effect/alien/resin
switch(alert("Floor type",null,"Regular floor","Reinforced floor"))
if("Regular floor")
floor=/turf/simulated/floor
@@ -145,9 +145,9 @@ proc/admin_spawn_room_at_pos()
spawn_room(locate(x,y,z),x_len,y_len,wall,floor)
return
var/global/list/space_surprises = list(/obj/effects/alien/facehugger,
/obj/effects/critter/spesscarp,
/obj/effects/critter/spesscarp/elite,
var/global/list/space_surprises = list(/obj/effect/alien/facehugger,
/obj/effect/critter/spesscarp,
/obj/effect/critter/spesscarp/elite,
// /obj/creature,
/obj/item/weapon/rcd,
/obj/item/weapon/rcd_ammo,

View File

@@ -8,7 +8,7 @@
throw_speed = 4
throw_range = 20
m_amt = 500
var/obj/effects/ship_landing_beacon/beacon = null
var/obj/effect/ship_landing_beacon/beacon = null
var/active = 0
attack_self()
@@ -24,7 +24,7 @@
proc/work()
while(active)
if(!beacon)
for(var/obj/effects/ship_landing_beacon/B in world)
for(var/obj/effect/ship_landing_beacon/B in world)
if(B.name == "Beacon - SS13")
beacon = B
break
@@ -85,7 +85,7 @@
P.name = "Cyanide pill"
return
/obj/effects/ship_landing_beacon
/obj/effect/ship_landing_beacon
icon = 'craft.dmi'
icon_state = "beacon"
name = "Beacon"

View File

@@ -25,7 +25,7 @@
/turf/simulated/wall/asteroid/facehugger
icon_state = "asteroid_i"
contains = /obj/effects/alien/facehugger
contains = /obj/effect/alien/facehugger
max_amount = 1
min_amount = 0

View File

@@ -136,9 +136,9 @@
var/list/objsonturf = range(0,src)
var/i
for(i=1, i<=objsonturf.len, i++)
if(istype(objsonturf[i],/obj/effects/decal/cleanable/blood))
if(istype(objsonturf[i],/obj/effect/decal/cleanable/blood))
return
var/obj/effects/decal/cleanable/blood/this = new /obj/effects/decal/cleanable/blood(source2)
var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source2)
this.blood_DNA = M.dna.unique_enzymes
this.blood_type = M.b_type
for(var/datum/disease/D in M.viruses)
@@ -161,7 +161,7 @@
/atom/proc/add_vomit_floor(mob/living/carbon/M as mob)
if( istype(src, /turf/simulated) )
var/obj/effects/decal/cleanable/vomit/this = new /obj/effects/decal/cleanable/vomit(src)
var/obj/effect/decal/cleanable/vomit/this = new /obj/effect/decal/cleanable/vomit(src)
for(var/datum/disease/D in M.viruses)
var/datum/disease/newDisease = new D.type
this.viruses += newDisease
@@ -172,7 +172,7 @@
if( istype(M, /mob/living/carbon/monkey) )
if( istype(src, /turf/simulated) )
var/turf/simulated/source1 = src
var/obj/effects/decal/cleanable/blood/this = new /obj/effects/decal/cleanable/blood(source1)
var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source1)
this.blood_DNA = M.dna.unique_enzymes
for(var/datum/disease/D in M.viruses)
var/datum/disease/newDisease = new D.type
@@ -182,7 +182,7 @@
else if( istype(M, /mob/living/carbon/alien ))
if( istype(src, /turf/simulated) )
var/turf/simulated/source2 = src
var/obj/effects/decal/cleanable/xenoblood/this = new /obj/effects/decal/cleanable/xenoblood(source2)
var/obj/effect/decal/cleanable/xenoblood/this = new /obj/effect/decal/cleanable/xenoblood(source2)
for(var/datum/disease/D in M.viruses)
var/datum/disease/newDisease = new D.type
this.viruses += newDisease
@@ -191,7 +191,7 @@
else if( istype(M, /mob/living/silicon/robot ))
if( istype(src, /turf/simulated) )
var/turf/simulated/source2 = src
var/obj/effects/decal/cleanable/oil/this = new /obj/effects/decal/cleanable/oil(source2)
var/obj/effect/decal/cleanable/oil/this = new /obj/effect/decal/cleanable/oil(source2)
for(var/datum/disease/D in M.viruses)
var/datum/disease/newDisease = new D.type
this.viruses += newDisease

View File

@@ -101,13 +101,13 @@
sleep(50)
plmaster = new /obj/effects/overlay( )
plmaster = new /obj/effect/overlay( )
plmaster.icon = 'tile_effects.dmi'
plmaster.icon_state = "plasma"
plmaster.layer = FLY_LAYER
plmaster.mouse_opacity = 0
slmaster = new /obj/effects/overlay( )
slmaster = new /obj/effect/overlay( )
slmaster.icon = 'tile_effects.dmi'
slmaster.icon_state = "sleeping_agent"
slmaster.layer = FLY_LAYER
@@ -179,13 +179,13 @@
if (!tile)
return
var/P = new /obj/effects/decal/point(tile)
var/P = new /obj/effect/decal/point(tile)
spawn (20)
del(P)
usr.visible_message("<b>[usr]</b> points to [this]")
/obj/effects/decal/point/point()
/obj/effect/decal/point/point()
set src in oview()
set hidden = 1
return

View File

@@ -12,7 +12,7 @@
throw_speed = 4
throw_range = 20
flags = FPRINT | TABLEPASS | ONBELT | USEDELAY
var/datum/effects/system/bad_smoke_spread/smoke
var/datum/effect/system/bad_smoke_spread/smoke
/obj/item/weapon/mustardbomb
desc = "It is set to detonate in 4 seconds."
@@ -26,17 +26,17 @@
throw_speed = 4
throw_range = 20
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT
var/datum/effects/system/mustard_gas_spread/mustard_gas
var/datum/effect/system/mustard_gas_spread/mustard_gas
/obj/item/weapon/smokebomb/New()
..()
src.smoke = new /datum/effects/system/bad_smoke_spread/
src.smoke = new /datum/effect/system/bad_smoke_spread/
src.smoke.attach(src)
src.smoke.set_up(10, 0, usr.loc)
/obj/item/weapon/mustardbomb/New()
..()
src.mustard_gas = new /datum/effects/system/mustard_gas_spread/
src.mustard_gas = new /datum/effect/system/mustard_gas_spread/
src.mustard_gas.attach(src)
src.mustard_gas.set_up(5, 0, usr.loc)
@@ -90,7 +90,7 @@
sleep(10)
src.smoke.start()
for(var/obj/effects/blob/B in view(8,src))
for(var/obj/effect/blob/B in view(8,src))
var/damage = round(30/(get_dist(B,src)+1))
B.health -= damage
B.update()
@@ -159,7 +159,7 @@
sleep(10)
src.mustard_gas.start()
for(var/obj/effects/blob/B in view(8,src))
for(var/obj/effect/blob/B in view(8,src))
var/damage = round(30/(get_dist(B,src)+1))
B.health -= damage
B.update()

View File

@@ -163,7 +163,7 @@ datum/controller/radio
datum/radio_frequency
var/frequency as num
var/list/list/obj/station_objects/devices = list()
var/list/list/obj/structure/devices = list()
proc
post_signal(obj/source as obj|null, datum/signal/signal, var/filter = null as text|null, var/range = null as num|null)
@@ -178,7 +178,7 @@ datum/radio_frequency
del(signal)
return 0
if (filter) //here goes some copypasta. It is for optimisation. -rastaf0
for(var/obj/station_objects/device in devices[filter])
for(var/obj/structure/device in devices[filter])
if(device == source)
continue
if(range)
@@ -189,7 +189,7 @@ datum/radio_frequency
if(start_point.z!=end_point.z || get_dist(start_point, end_point) > range)
continue
device.receive_signal(signal, TRANSMISSION_RADIO, frequency)
for(var/obj/station_objects/device in devices["_default"])
for(var/obj/structure/device in devices["_default"])
if(device == source)
continue
if(range)
@@ -205,7 +205,7 @@ datum/radio_frequency
for (var/next_filter in devices)
// var/list/obj/DDD = devices[next_filter]
// Nt+=DDD.len
for(var/obj/station_objects/device in devices[next_filter])
for(var/obj/structure/device in devices[next_filter])
if(device == source)
continue
if(range)
@@ -227,12 +227,12 @@ datum/radio_frequency
if (!filter)
filter = "_default"
//log_admin("add_listener(device=[device],filter=[filter]) frequency=[frequency]")
var/list/obj/station_objects/devices_line = devices[filter]
var/list/obj/structure/devices_line = devices[filter]
if (!devices_line)
devices_line = new
devices[filter] = devices_line
devices_line+=device
// var/list/obj/station_objects/devices_line___ = devices[filter_str]
// var/list/obj/structure/devices_line___ = devices[filter_str]
// var/l = devices_line___.len
//log_admin("DEBUG: devices_line.len=[devices_line.len]")
//log_admin("DEBUG: devices(filter_str).len=[l]")

View File

@@ -18,7 +18,7 @@ This system could be expanded to migrate all of our current mutations to. Maybe.
var/list/requirements = list() // list of randomly-genned requirements
var/required = 1 // the number of requirements to generate
var/list/races = list("human") // list of races the mutation effects
var/list/races = list("human") // list of races the mutation effect
proc/get_mutation(var/mob/living/carbon/M) // Called when check_mutation() is successful
..()

View File

@@ -32,8 +32,8 @@
for(var/i = 1 to 3)
var/turf/location = pick(blobstart)
if(location)
if(!locate(/obj/effects/blob in location))
var/obj/effects/blob/blob = new/obj/effects/blob(location)
if(!locate(/obj/effect/blob in location))
var/obj/effect/blob/blob = new/obj/effect/blob(location)
spawn(200)
if(blob)
if(blob.blobtype == "Blob")
@@ -58,7 +58,7 @@
for(var/i = 1 to 10)
sleep(-1)
if(!active_blobs.len) break
var/obj/effects/blob/B = pick(active_blobs)
var/obj/effect/blob/B = pick(active_blobs)
if(B.z != 1)
continue
@@ -108,7 +108,7 @@
return 1
if(station_was_nuked)
return 1
for(var/obj/effects/blob/B in blobs)
for(var/obj/effect/blob/B in blobs)
if(B.z == 1)
return 0
return 1

View File

@@ -1,5 +1,5 @@
//I will need to recode parts of this but I am way too tired atm
/obj/effects/blob
/obj/effect/blob
name = "blob"
icon = 'blob.dmi'
icon_state = "blob"
@@ -121,7 +121,7 @@
var/dirn = pick(dirs)
dirs.Remove(dirn)
var/turf/T = get_step(src, dirn)
var/obj/effects/blob/B = (locate(/obj/effects/blob) in T)
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)
expand(T)//No blob here so try and expand
return
@@ -130,14 +130,14 @@
return
proc/special_action()//For things like the
proc/special_action()
set background = 1
switch(blobtype)
if("Factory")
new/obj/effects/critter/blob(src.loc)
new/obj/effect/critter/blob(src.loc)
return 1
if("Core")
spawn(0)//Needs to be changed
spawn(0)
Pulse(0,1)
Pulse(0,2)
Pulse(0,4)
@@ -169,12 +169,12 @@
var/dirn = pick(dirs)
dirs.Remove(dirn)
T = get_step(src, dirn)
if((locate(/obj/effects/blob) in T))
if((locate(/obj/effect/blob) in T))
T = null
continue
else break
if(T)
var/obj/effects/blob/B = new /obj/effects/blob(src.loc, min(src.health, 30))
var/obj/effect/blob/B = new /obj/effect/blob(src.loc, min(src.health, 30))
if(T.Enter(B,src))
B.loc = T
else
@@ -202,7 +202,7 @@
del(src)
return
if(blobtype != "Blob") return
if(health <= 10)
if(health <= 15)
icon_state = "blob_damaged"
return
// if(health <= 20)
@@ -283,9 +283,9 @@
if(O.z != 1)
continue
if(istype(O, /obj/station_objects/window))
if(istype(O, /obj/structure/window))
src.window++
else if(istype(O, /obj/station_objects/grille))
else if(istype(O, /obj/structure/grille))
if(!O:destroyed)
src.grille++
else if(istype(O, /obj/machinery/door))
@@ -308,7 +308,7 @@
//////////////////////////////****IDLE BLOB***/////////////////////////////////////
/obj/effects/blob/idle
/obj/effect/blob/idle
name = "blob"
desc = "it looks... tasty"
icon_state = "blobidle0"
@@ -334,27 +334,48 @@
Del() //idle blob that spawns a normal blob when killed.
var/obj/effects/blob/B = new /obj/effects/blob( src.loc )
var/obj/effect/blob/B = new /obj/effect/blob( src.loc )
spawn(30)
B.Life()
..()
/obj/effects/blob/core/New()
/obj/effect/blob/core/New()
..()
spawn()
src.blobdebug = 1
src.Life()
/obj/effects/blob/node/New()
/obj/effect/blob/node/New()
..()
spawn()
src.blobdebug = 2
src.Life()
/obj/effects/blob/factory/New()
/obj/effect/blob/factory/New()
..()
spawn()
src.blobdebug = 3
src.Life()
src.Life()
/obj/effect/blob/proc/create_fragments(var/wave_size = 1)
var/list/candidates = list()
for(var/mob/dead/observer/G in world)
if(G.client && G.client.be_alien)
if(G.corpse)
if(G.corpse.stat==2)
candidates.Add(G)
else
candidates.Add(G)
for(var/i = 0 to wave_size)
if(!candidates.len) break
var/mob/dead/observer/G = pick(candidates)
var/mob/living/blob/B = new/mob/living/blob(src.loc)
if(G.client)
G.client.screen.len = null
B.ghost_name = G.real_name
G.client.mob = B
del(G)

View File

@@ -497,7 +497,7 @@
usr << "\blue We stealthily sting [T]."
var/obj/effects/overlay/B = new /obj/effects/overlay( T.loc )
var/obj/effect/overlay/B = new /obj/effect/overlay( T.loc )
B.icon_state = "blspell"
B.icon = 'wizard.dmi'
B.name = "spell"

View File

@@ -33,7 +33,7 @@
command_alert("Gravitational anomalies detected on the station. There is no additional data.", "Anomaly Alert")
world << sound('granomalies.ogg')
var/turf/T = pick(blobstart)
var/obj/effects/bhole/bh = new /obj/effects/bhole( T.loc, 30 )
var/obj/effect/bhole/bh = new /obj/effect/bhole( T.loc, 30 )
spawn(rand(50, 300))
del(bh)
/*
@@ -49,7 +49,7 @@
if(prob(20))
spawn(50+rand(0,3000))
picked = pick(turfs)
var/obj/effects/portal/P = new /obj/effects/portal( T )
var/obj/effect/portal/P = new /obj/effect/portal( T )
P.target = picked
P.creator = null
P.icon = 'objects.dmi'
@@ -85,19 +85,19 @@
IonStorm()
/obj/effects/bhole/New()
src.smoke = new /datum/effects/system/harmless_smoke_spread()
/obj/effect/bhole/New()
src.smoke = new /datum/effect/system/harmless_smoke_spread()
src.smoke.set_up(5, 0, src)
src.smoke.attach(src)
src:life()
/obj/effects/bhole/Bumped(atom/A)
/obj/effect/bhole/Bumped(atom/A)
if (istype(A,/mob/living))
del(A)
else
A:ex_act(1.0)
/obj/effects/bhole/proc/life() //Oh man , this will LAG
/obj/effect/bhole/proc/life() //Oh man , this will LAG
if (prob(10))
src.anchored = 0
@@ -285,11 +285,11 @@
while(spawncount > 1)
var/obj/vent = pick(vents)
if(prob(50))
new /obj/effects/alien/facehugger (vent.loc)
new /obj/effect/alien/facehugger (vent.loc)
if(prob(50))
new /obj/effects/alien/facehugger (vent.loc)
new /obj/effect/alien/facehugger (vent.loc)
if(prob(75))
new /obj/effects/alien/egg (vent.loc)
new /obj/effect/alien/egg (vent.loc)
vents.Remove(vent)
spawncount -= 1
spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes.
@@ -319,7 +319,7 @@
temp_apc.overload_lighting()
for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world)
temp_shuttle.prison_break()
for (var/obj/station_objects/secure_closet/security/temp_closet in world)
for (var/obj/structure/secure_closet/security/temp_closet in world)
if(istype(get_area(temp_closet), /area/prison))
temp_closet.locked = 0
temp_closet.icon_state = temp_closet.icon_closed
@@ -330,12 +330,12 @@
command_alert("Prison station VI is not accepting commands. Recommend station AI involvement.", "VI Alert")
/proc/carp_migration() // -- Darem
for(var/obj/effects/landmark/C in world)
for(var/obj/effect/landmark/C in world)
if(C.name == "carpspawn")
if(prob(99))
new /obj/effects/critter/spesscarp(C.loc)
new /obj/effect/critter/spesscarp(C.loc)
else
new /obj/effects/critter/spesscarp/elite(C.loc)
new /obj/effect/critter/spesscarp/elite(C.loc)
//sleep(100)
spawn(rand(3000, 6000)) //Delayed announcements to keep the crew on their toes.
command_alert("Unknown biological entities have been detected near [station_name()], please stand-by.", "Lifesign Alert")
@@ -350,7 +350,7 @@
for(var/i=1,i<=lightsoutAmount,i++)
var/list/possibleEpicentres = list()
for(var/obj/effects/landmark/newEpicentre in world)
for(var/obj/effect/landmark/newEpicentre in world)
if(newEpicentre.name == "lightsout" && !(newEpicentre in epicentreList))
possibleEpicentres += newEpicentre
if(possibleEpicentres.len)
@@ -361,7 +361,7 @@
if(!epicentreList.len)
return
for(var/obj/effects/landmark/epicentre in epicentreList)
for(var/obj/effect/landmark/epicentre in epicentreList)
for(var/obj/machinery/power/apc/apc in range(epicentre,lightsoutRange))
apc.overload_lighting()

View File

@@ -7,7 +7,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
--NEOFite
*/
/obj/effects/immovablerod
/obj/effect/immovablerod
name = "Immovable Rod"
desc = "What the fuck is that?"
icon = 'objects.dmi'
@@ -64,7 +64,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
endx = 199
//rod time!
var/obj/effects/immovablerod/immrod = new /obj/effects/immovablerod(locate(startx, starty, 1))
var/obj/effect/immovablerod/immrod = new /obj/effect/immovablerod(locate(startx, starty, 1))
// world << "Rod in play, starting at [start.loc.x],[start.loc.y] and going to [end.loc.x],[end.loc.y]"
var/end = locate(endx, endy, 1)
spawn(0)
@@ -76,7 +76,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
if(immrod.loc == end)
del(immrod)
sleep(10)
for(var/obj/effects/immovablerod/imm in world)
for(var/obj/effect/immovablerod/imm in world)
return
sleep(50)
command_alert("What the fuck was that?!", "General Alert")

View File

@@ -11,23 +11,23 @@ The "dust" will damage the hull of the station causin minor hull breaches.
if("weak")
numbers = rand(2,4)
for(var/i = 0 to numbers)
new/obj/effects/space_dust/weak()
new/obj/effect/space_dust/weak()
if("norm")
numbers = rand(5,10)
for(var/i = 0 to numbers)
new/obj/effects/space_dust()
new/obj/effect/space_dust()
if("strong")
numbers = rand(10,15)
for(var/i = 0 to numbers)
new/obj/effects/space_dust/strong()
new/obj/effect/space_dust/strong()
if("super")
numbers = rand(15,25)
for(var/i = 0 to numbers)
new/obj/effects/space_dust/super()
new/obj/effect/space_dust/super()
return
/obj/effects/space_dust
/obj/effect/space_dust
name = "Space Dust"
desc = "Dust in space."
icon = 'meteor.dmi'

View File

@@ -1,6 +1,6 @@
// SPACE VINE OR KUDZU
/obj/effects/spacevine
/obj/effect/spacevine
name = "Space Kudzu"
desc = "An extremely expansionistic species of vine."
icon = 'kudzu.dmi'
@@ -8,7 +8,7 @@
anchored = 1
density = 0
var/energy = 0 //Energy sounds like an arbitrary-enough variable name.
var/obj/effects/spacevine_controller/master = null
var/obj/effect/spacevine_controller/master = null
New()
if(istype(src.loc, /turf/space))
@@ -33,8 +33,8 @@
if (istype(W, /obj/item/weapon/wirecutters)) del src
..()
/obj/effects/spacevine_controller
var/list/obj/effects/spacevine/vines = list()
/obj/effect/spacevine_controller
var/list/obj/effect/spacevine/vines = list()
var/list/growth_queue = list()
var/reached_collapse_size
var/reached_slowdown_size
@@ -53,7 +53,7 @@
..()
proc/spawn_kudzu_piece(var/turf/location)
var/obj/effects/spacevine/SV = new(location)
var/obj/effect/spacevine/SV = new(location)
growth_queue += SV
vines += SV
SV.master = src
@@ -82,9 +82,9 @@
length = 1
length = min( 30 , max( length , vines.len / 5 ) )
var/i = 0
var/list/obj/effects/spacevine/queue_end = list()
var/list/obj/effect/spacevine/queue_end = list()
for( var/obj/effects/spacevine/SV in growth_queue )
for( var/obj/effect/spacevine/SV in growth_queue )
i++
queue_end += SV
growth_queue -= SV
@@ -101,7 +101,7 @@
//sleep(5)
//src.process()
/obj/effects/spacevine/proc/grow()
/obj/effect/spacevine/proc/grow()
switch(energy)
if (0)
src.icon_state = pick("Med1", "Med2", "Med3")
@@ -112,18 +112,18 @@
energy = 2
src.density = 1
/obj/effects/spacevine/proc/spread()
/obj/effect/spacevine/proc/spread()
var/direction = pick(cardinal)
if(istype(get_step(src,direction),/turf/simulated/floor))
var/turf/simulated/floor/F = get_step(src,direction)
if(!locate(/obj/effects/spacevine,F))
if(!locate(/obj/effect/spacevine,F))
if(F.Enter(src))
if(master)
master.spawn_kudzu_piece( F )
/*
/obj/effects/spacevine/proc/Life()
/obj/effect/spacevine/proc/Life()
if (!src) return
var/Vspread
if (prob(50)) Vspread = locate(src.x + rand(-1,1),src.y,src.z)
@@ -131,12 +131,12 @@
var/dogrowth = 1
if (!istype(Vspread, /turf/simulated/floor)) dogrowth = 0
for(var/obj/O in Vspread)
if (istype(O, /obj/station_objects/window) || istype(O, /obj/effects/forcefield) || istype(O, /obj/effects/blob) || istype(O, /obj/effects/alien/weeds) || istype(O, /obj/effects/spacevine)) dogrowth = 0
if (istype(O, /obj/structure/window) || istype(O, /obj/effect/forcefield) || istype(O, /obj/effect/blob) || istype(O, /obj/effect/alien/weeds) || istype(O, /obj/effect/spacevine)) dogrowth = 0
if (istype(O, /obj/machinery/door/))
if(O:p_open == 0 && prob(50)) O:open()
else dogrowth = 0
if (dogrowth == 1)
var/obj/effects/spacevine/B = new /obj/effects/spacevine(Vspread)
var/obj/effect/spacevine/B = new /obj/effect/spacevine(Vspread)
B.icon_state = pick("vine-light1", "vine-light2", "vine-light3")
spawn(20)
if(B)
@@ -156,7 +156,7 @@
*/
/obj/effects/spacevine/ex_act(severity)
/obj/effect/spacevine/ex_act(severity)
switch(severity)
if(1.0)
del(src)
@@ -172,5 +172,5 @@
else
return
/obj/effects/spacevine/temperature_expose(null, temp, volume)
/obj/effect/spacevine/temperature_expose(null, temp, volume)
del src

View File

@@ -2,7 +2,7 @@
//command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
//world << sound('outbreak5.ogg')
var/turf/T = pick(blobstart)
var/obj/effects/blob/bl = new /obj/effects/blob( T.loc, 30 )
var/obj/effect/blob/bl = new /obj/effect/blob( T.loc, 30 )
spawn(0)
bl.Life()
bl.Life()
@@ -25,7 +25,7 @@
for(var/i = 1 to 10)
sleep(-1)
if(!active_blobs.len) break
var/obj/effects/blob/B = pick(active_blobs)
var/obj/effect/blob/B = pick(active_blobs)
if(B.z != 1)
continue
B.Life()

View File

@@ -57,7 +57,7 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo
if(!ninjacost(,2))
var/mob/living/carbon/human/U = affecting
U << "\blue There are <B>[s_bombs]</B> smoke bombs remaining."
var/datum/effects/system/bad_smoke_spread/smoke = new /datum/effects/system/bad_smoke_spread()
var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread()
smoke.set_up(10, 0, U.loc)
smoke.start()
playsound(U.loc, 'bamf.ogg', 50, 2)
@@ -232,7 +232,7 @@ Must right click on a mob to activate.*/
var/mob/living/carbon/human/U = affecting
if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame.
//if(M)//DEBUG
if(!locate(/obj/effects/energy_net) in M.loc)//Check if they are already being affected by an energy net.
if(!locate(/obj/effect/energy_net) in M.loc)//Check if they are already being affected by an energy net.
for(var/turf/T in getline(U.loc, M.loc))
if(T.density)//Don't want them shooting nets through walls. It's kind of cheesy.
U << "You may not use an energy net through solid obstacles!"
@@ -241,7 +241,7 @@ Must right click on a mob to activate.*/
U.Beam(M,"n_beam",,15)
M.anchored = 1//Anchors them so they can't move.
U.say("Get over here!")
var/obj/effects/energy_net/E = new /obj/effects/energy_net(M.loc)
var/obj/effect/energy_net/E = new /obj/effect/energy_net(M.loc)
E.layer = M.layer+1//To have it appear one layer above the mob.
for(var/mob/O in viewers(U, 3))
O.show_message(text("\red [] caught [] with an energy net!", U, M), 1)
@@ -261,7 +261,7 @@ Must right click on a mob to activate.*/
Movement impairing would indicate drugs and the like.*/
/obj/item/clothing/suit/space/space_ninja/proc/ninjaboost()
set name = "Adrenaline Boost"
set desc = "Inject a secret chemical that will counteract all movement-impairing effects."
set desc = "Inject a secret chemical that will counteract all movement-impairing effect."
set category = "Ninja Ability"
set popup_menu = 0
@@ -284,7 +284,7 @@ Movement impairing would indicate drugs and the like.*/
spawn(70)
reagents.reaction(U, 2)
reagents.trans_id_to(U, "radium", a_transfer)
U << "\red You are beginning to feel the after-effects of the injection."
U << "\red You are beginning to feel the after-effect of the injection."
a_boost--
s_coold = 3
return

View File

@@ -376,7 +376,7 @@ ________________________________________________________________________________
<h5>Their playstyle:</h5>
A mix of traitor, changeling, and wizard. Ninjas rely on energy, or electricity to be precise, to keep their suits running (when out of energy, a suit hibernates). Suits gain energy from objects or creatures that contain electrical charge. APCs, cell batteries, rechargers, SMES batteries, cyborgs, mechs, and exposed wires are currently supported. Through energy ninjas gain access to special powers--while all powers are tied to the ninja suit, the most useful of them are verb activated--to help them in their mission.<br>It is a constant struggle for a ninja to remain hidden long enough to recharge the suit and accomplish their objective; despite their arsenal of abilities, ninjas can die like any other. Unlike wizards, ninjas do not possess good crowd control and are typically forced to play more subdued in order to achieve their goals. Some of their abilities are specifically designed to confuse and disorient others.<br>With that said, it should be perfectly possible to completely flip the fuck out and rampage as a ninja.
<h5>Their powers:</h5>
There are two primary types: Equipment and Abilties. Passive effects are always on. Active effects must be turned on and remain active only when there is energy to do so. Ability costs are listed next to them.
There are two primary types: Equipment and Abilties. Passive effect are always on. Active effect must be turned on and remain active only when there is energy to do so. Ability costs are listed next to them.
<b>Equipment</b>: cannot be tracked by AI (passive), faster speed (passive), stealth (active), vision switch (passive if toggled), voice masking (passive), SpiderOS (passive if toggled), energy drain (passive if toggled).
<ul>
<li><i>Voice masking</i> generates a random name the ninja can use over the radio and in-person. Although, the former use is recommended.</li>
@@ -948,7 +948,7 @@ ________________________________________________________________________________
if("APC")
var/obj/machinery/power/apc/A = target
if(A.cell&&A.cell.charge)
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/system/spark_spread()
var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
spark_system.set_up(5, 0, A.loc)
while(G.candrain&&A.cell.charge>0&&!maxcapacity)
drain = rand(G.mindrain,G.maxdrain)
@@ -976,7 +976,7 @@ ________________________________________________________________________________
if("SMES")
var/obj/machinery/power/smes/A = target
if(A.charge)
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/system/spark_spread()
var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
spark_system.set_up(5, 0, A.loc)
while(G.candrain&&A.charge>0&&!maxcapacity)
drain = rand(G.mindrain,G.maxdrain)
@@ -1018,7 +1018,7 @@ ________________________________________________________________________________
var/obj/machinery/A = target
if(A.powered())//If powered.
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/system/spark_spread()
var/datum/effect/system/spark_spread/spark_system = new /datum/effect/system/spark_spread()
spark_system.set_up(5, 0, A.loc)
var/obj/machinery/power/apc/B = A.loc.loc:get_apc()//Object.turf.area find APC
@@ -1074,7 +1074,7 @@ ________________________________________________________________________________
U << "\blue Data analyzed. Process finished."
if("WIRE")
var/obj/station_objects/cable/A = target
var/obj/structure/cable/A = target
var/datum/powernet/PN = A.get_powernet()
while(G.candrain&&!maxcapacity&&!isnull(A))
drain = (round((rand(G.mindrain,G.maxdrain))/2))
@@ -1296,7 +1296,7 @@ It will teleport people to a holding facility after 30 seconds. (Check the proce
It is possible to destroy the net by the occupant or someone else.
*/
/obj/effects/energy_net
/obj/effect/energy_net
name = "energy net"
desc = "It's a net made of green energy."
icon = 'effects.dmi'
@@ -1360,7 +1360,7 @@ It is possible to destroy the net by the occupant or someone else.
M << "\red You appear in a strange place!"
spawn(0)
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/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.start()
playsound(M.loc, 'phasein.ogg', 25, 1)

View File

@@ -133,7 +133,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp
//Here we pick a location and spawn the ninja.
var/list/spawn_list = list()
for(var/obj/effects/landmark/L in world)
for(var/obj/effect/landmark/L in world)
if (L.name == "carpspawn")
spawn_list.Add(L)
@@ -402,7 +402,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
return
var/list/spawn_list = list()
for(var/obj/effects/landmark/L in world)
for(var/obj/effect/landmark/L in world)
if (L.name == "carpspawn")
spawn_list.Add(L)
@@ -737,7 +737,7 @@ spideros = text2num(return_to)//Maximum length here is 6. Use (return_to, X) to
set desc = "Drain energy directly from an exposed wire."
set category = "Ninja Equip"
var/obj/station_objects/cable/attached
var/obj/structure/cable/attached
var/mob/living/carbon/human/U = loc
if(candrain&&!draining)
var/turf/T = U.loc
@@ -760,10 +760,10 @@ Can be added on to pretty easily.
BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels.
/obj/item/clothing/suit/space/space_ninja/proc/grant_AI_verbs()
var/obj/effects/proc_holder/ai_return_control/A_C = new(AI)
var/obj/effects/proc_holder/ai_hack_ninja/B_C = new(AI)
var/obj/effects/proc_holder/ai_instruction/C_C = new(AI)
new/obj/effects/proc_holder/ai_holo_clear(AI)
var/obj/effect/proc_holder/ai_return_control/A_C = new(AI)
var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(AI)
var/obj/effect/proc_holder/ai_instruction/C_C = new(AI)
new/obj/effect/proc_holder/ai_holo_clear(AI)
AI.proc_holder_list += A_C
AI.proc_holder_list += B_C
AI.proc_holder_list += C_C
@@ -771,10 +771,10 @@ BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels.
s_control = 0
/obj/item/clothing/suit/space/space_ninja/proc/remove_AI_verbs()
var/obj/effects/proc_holder/ai_return_control/A_C = locate() in AI
var/obj/effects/proc_holder/ai_hack_ninja/B_C = locate() in AI
var/obj/effects/proc_holder/ai_instruction/C_C = locate() in AI
var/obj/effects/proc_holder/ai_holo_clear/D_C = locate() in AI
var/obj/effect/proc_holder/ai_return_control/A_C = locate() in AI
var/obj/effect/proc_holder/ai_hack_ninja/B_C = locate() in AI
var/obj/effect/proc_holder/ai_instruction/C_C = locate() in AI
var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in AI
del(A_C)
del(B_C)
del(C_C)
@@ -787,7 +787,7 @@ BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels.
s_control = 1
//Workaround
/obj/effects/proc_holder/ai_holo_clear
/obj/effect/proc_holder/ai_holo_clear
name = "Clear Hologram"
desc = "Stops projecting the current holographic image."
panel = "AI Ninja Equip"
@@ -795,44 +795,44 @@ BYOND fixed the verb bugs so this is no longer necessary. I prefer verb panels.
opacity = 0
/obj/effects/proc_holder/ai_holo_clear/Click()
/obj/effect/proc_holder/ai_holo_clear/Click()
var/obj/item/clothing/suit/space/space_ninja/S = loc.loc//This is so stupid but makes sure certain things work. AI.SUIT
del(S.hologram.i_attached)
del(S.hologram)
var/obj/effects/proc_holder/ai_holo_clear/D_C = locate() in S.AI
var/obj/effect/proc_holder/ai_holo_clear/D_C = locate() in S.AI
S.AI.proc_holder_list -= D_C
return
/obj/effects/proc_holder/ai_instruction//Let's the AI know what they can do.
/obj/effect/proc_holder/ai_instruction//Let's the AI know what they can do.
name = "Instructions"
desc = "Displays a list of helpful information."
panel = "AI Ninja Equip"
density = 0
opacity = 0
/obj/effects/proc_holder/ai_instruction/Click()
/obj/effect/proc_holder/ai_instruction/Click()
loc << "The menu you are seeing will contain other commands if they become available.\nRight click a nearby turf to display an AI Hologram. It will only be visible to you and your host. You can move it freely using normal movement keys--it will disappear if placed too far away."
/obj/effects/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely.
/obj/effect/proc_holder/ai_hack_ninja//Generic proc holder to make sure the two verbs below work propely.
name = "Hack SpiderOS"
desc = "Hack directly into the Black Widow(tm) neuro-interface."
panel = "AI Ninja Equip"
density = 0
opacity = 0
/obj/effects/proc_holder/ai_hack_ninja/Click()//When you click on it.
/obj/effect/proc_holder/ai_hack_ninja/Click()//When you click on it.
var/obj/item/clothing/suit/space/space_ninja/S = loc.loc
S.hack_spideros()
return
/obj/effects/proc_holder/ai_return_control
/obj/effect/proc_holder/ai_return_control
name = "Relinquish Control"
desc = "Return control to the user."
panel = "AI Ninja Equip"
density = 0
opacity = 0
/obj/effects/proc_holder/ai_return_control/Click()
/obj/effect/proc_holder/ai_return_control/Click()
var/mob/living/silicon/ai/A = loc
var/obj/item/clothing/suit/space/space_ninja/S = A.loc
A << browse(null, "window=hack spideros")//Close window
@@ -858,16 +858,16 @@ Most of these are at various points of incomplete.
/mob/verb/grant_object_panel()
set name = "Grant AI Ninja Verbs Debug"
set category = "Ninja Debug"
var/obj/effects/proc_holder/ai_return_control/A_C = new(src)
var/obj/effects/proc_holder/ai_hack_ninja/B_C = new(src)
var/obj/effect/proc_holder/ai_return_control/A_C = new(src)
var/obj/effect/proc_holder/ai_hack_ninja/B_C = new(src)
usr:proc_holder_list += A_C
usr:proc_holder_list += B_C
mob/verb/remove_object_panel()
set name = "Remove AI Ninja Verbs Debug"
set category = "Ninja Debug"
var/obj/effects/proc_holder/ai_return_control/A = locate() in src
var/obj/effects/proc_holder/ai_hack_ninja/B = locate() in src
var/obj/effect/proc_holder/ai_return_control/A = locate() in src
var/obj/effect/proc_holder/ai_hack_ninja/B = locate() in src
usr:proc_holder_list -= A
usr:proc_holder_list -= B
del(A)//First.
@@ -963,7 +963,7 @@ mob/verb/remove_object_panel()
set name = "Energy Net Debug"
set category = "Ninja Debug"
var/obj/effects/energy_net/E = new /obj/effects/energy_net(loc)
var/obj/effect/energy_net/E = new /obj/effect/energy_net(loc)
E.layer = layer+1//To have it appear one layer above the mob.
stunned = 10//So they are stunned initially but conscious.
anchored = 1//Anchors them so they can't move.

View File

@@ -100,7 +100,7 @@ var/global/datum/controller/gameticker/ticker
spawn(0)//Forking here so we dont have to wait for this to finish
mode.post_setup()
//Cleanup some stuff
for(var/obj/effects/landmark/start/S in world)
for(var/obj/effect/landmark/start/S in world)
//Deleting Startpoints but we need the ai point to AI-ize people later
if (S.name != "AI")
del(S)

View File

@@ -219,7 +219,7 @@
/datum/intercept_text/proc/build_malf(datum/mind/correct_person)
var/a_name = pick(src.anomalies)
src.text += "<BR><BR>A [a_name] was recently picked up by a nearby stations sensors in your sector. If it came into contact with your ship or "
src.text += "electrical equipment, it may have had hazardarous and unpredictable effects. Closely observe any non carbon based life forms "
src.text += "electrical equipment, it may have had hazardarous and unpredictable effect. Closely observe any non carbon based life forms "
src.text += "for signs of unusual behaviour, but keep this information discreet at all times due to this possibly dangerous scenario."
/datum/intercept_text/proc/build_changeling(datum/mind/correct_person)

View File

@@ -64,15 +64,15 @@
while (!istype(pickedstart, /turf/space) || pickedstart.loc.name != "Space" ) //FUUUCK, should never happen.
var/obj/effects/meteor/M
var/obj/effect/meteor/M
switch(rand(1, 100))
if(1 to 10)
M = new /obj/effects/meteor/big( pickedstart )
M = new /obj/effect/meteor/big( pickedstart )
if(11 to 75)
M = new /obj/effects/meteor( pickedstart )
M = new /obj/effect/meteor( pickedstart )
if(76 to 100)
M = new /obj/effects/meteor/small( pickedstart )
M = new /obj/effect/meteor/small( pickedstart )
M.dest = pickedgoal
spawn(0)
@@ -80,7 +80,7 @@
return
/obj/effects/meteor
/obj/effect/meteor
name = "meteor"
icon = 'meteor.dmi'
icon_state = "flaming"
@@ -90,19 +90,19 @@
var/dest
pass_flags = PASSTABLE
/obj/effects/meteor/small
/obj/effect/meteor/small
name = "small meteor"
icon_state = "smallf"
pass_flags = PASSTABLE | PASSGRILLE
/obj/effects/meteor/Move()
/obj/effect/meteor/Move()
var/turf/T = src.loc
if (istype(T, /turf))
T.hotspot_expose(METEOR_TEMPERATURE, 1000)
..()
return
/obj/effects/meteor/Bump(atom/A)
/obj/effect/meteor/Bump(atom/A)
spawn(0)
for(var/mob/M in range(10, src))
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
@@ -111,20 +111,20 @@
A.meteorhit(src)
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
if(prob(15))// && !istype(A, /obj/station_objects/grille))
if(prob(15))// && !istype(A, /obj/structure/grille))
explosion(src.loc, 4, 5, 6, 7, 0)
playsound(src.loc, "explosion", 50, 1)
del(src)
return
/obj/effects/meteor/ex_act(severity)
/obj/effect/meteor/ex_act(severity)
if (severity < 4)
del(src)
return
/obj/effects/meteor/big
/obj/effect/meteor/big
name = "big meteor"
hits = 5
@@ -140,7 +140,7 @@
explosion(src.loc, 0, 1, 2, 3, 0)
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
if(prob(15) && !istype(A, /obj/station_objects/grille))
if(prob(15) && !istype(A, /obj/structure/grille))
explosion(src.loc, 1, 2, 3, 4, 0)
playsound(src.loc, "explosion", 50, 1)
del(src)

View File

@@ -104,9 +104,9 @@
////////////////////////////////////////////////////////////////////////////////////////
/datum/game_mode/nuclear/post_setup()
var/obj/effects/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
var/obj/effects/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
var/obj/effects/landmark/closet_spawn = locate("landmark*Nuclear-Closet")
var/obj/effect/landmark/synd_spawn = locate("landmark*Syndicate-Spawn")
var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
var/obj/effect/landmark/closet_spawn = locate("landmark*Nuclear-Closet")
var/nuke_code = "[rand(10000, 99999)]"
var/leader_selected = 0
@@ -136,16 +136,16 @@
the_bomb.r_code = nuke_code
if(closet_spawn)
new /obj/station_objects/closet/syndicate/nuclear(closet_spawn.loc)
new /obj/structure/closet/syndicate/nuclear(closet_spawn.loc)
for (var/obj/effects/landmark/A in world)
for (var/obj/effect/landmark/A in world)
if (A.name == "Syndicate-Gear-Closet")
new /obj/station_objects/closet/syndicate/personal(A.loc)
new /obj/structure/closet/syndicate/personal(A.loc)
del(A)
continue
if (A.name == "Syndicate-Bomb")
new /obj/effects/spawner/newbomb/timer/syndicate(A.loc)
new /obj/effect/spawner/newbomb/timer/syndicate(A.loc)
del(A)
continue

View File

@@ -292,7 +292,8 @@
/////////////////////////////
/datum/game_mode/revolution/proc/check_heads_victory()
for(var/datum/mind/rev_mind in head_revolutionaries)
if((rev_mind) && (rev_mind.current) && (rev_mind.current.stat != 2) && (rev_mind.current.z == 1))
var/turf/T = get_turf(rev_mind.current)
if((rev_mind) && (rev_mind.current) && (rev_mind.current.stat != 2) && T && (T.z == 1))
if(ishuman(rev_mind.current))
return 0
return 1

View File

@@ -145,9 +145,9 @@ datum/hSB
continue
if(istype(O, /obj/item/weapon/melee/energy/sword))
continue
if(istype(O, /obj/effects/critter))
if(istype(O, /obj/effect/critter))
continue
if(istype(O, /obj/station_objects/structure))
if(istype(O, /obj/structure))
continue
selectable += O

View File

@@ -69,7 +69,7 @@
/* This was used for something before, I think, but is not worth the effort to process now.
/proc/setupcorpses()
for (var/obj/effects/landmark/A in world)
for (var/obj/effect/landmark/A in world)
if (A.name == "Corpse")
var/mob/living/carbon/human/M = new /mob/living/carbon/human(A.loc)
M.real_name = "Corpse"

View File

@@ -100,7 +100,7 @@
else if(spell_type == "object")
var/list/available_spells = list("Magic Missile","Fireball","Disintegrate","Disable Tech","Smoke","Blind","Mind Transfer","Forcewall","Blink","Teleport","Mutate","Ethereal Jaunt","Knock")
var/already_knows = 0
for(var/obj/effects/proc_holder/spell/aspell in usr.spell_list)
for(var/obj/effect/proc_holder/spell/aspell in usr.spell_list)
if(available_spells[text2num(href_list["spell_choice"])] == aspell.name)
already_knows = 1
src.temp = "You already know that spell."
@@ -109,43 +109,43 @@
if(!already_knows)
switch(href_list["spell_choice"])
if ("1")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/projectile/magic_missile(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/magic_missile(usr)
src.temp = "This spell fires several, slow moving, magic projectiles at nearby targets. If they hit a target, it is paralyzed and takes minor damage."
if ("2")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/projectile/fireball(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/projectile/fireball(usr)
src.temp = "This spell fires a fireball at a target and does not require wizard garb. Be careful not to fire it at people that are standing next to you."
if ("3")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/inflict_handler/disintegrate(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/disintegrate(usr)
src.temp = "This spell instantly kills somebody adjacent to you with the vilest of magick. It has a long cooldown."
if ("4")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/emplosion/disable_tech(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/emplosion/disable_tech(usr)
src.temp = "This spell disables all weapons, cameras and most other technology in range."
if ("5")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/smoke(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/smoke(usr)
src.temp = "This spell spawns a cloud of choking smoke at your location and does not require wizard garb."
if ("6")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/trigger/blind(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/trigger/blind(usr)
src.temp = "This spell temporarly blinds a single person and does not require wizard garb."
if ("7")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/mind_transfer(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/mind_transfer(usr)
src.temp = "This spell allows the user to switch bodies with a target. Careful to not lose your memory in the process."
if ("8")
usr.spell_list += new /obj/effects/proc_holder/spell/aoe_turf/conjure/forcewall(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(usr)
src.temp = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
if ("9")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/turf_teleport/blink(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/turf_teleport/blink(usr)
src.temp = "This spell randomly teleports you a short distance. Useful for evasion or getting into areas if you have patience."
if ("10")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/area_teleport/teleport(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/area_teleport/teleport(usr)
src.temp = "This spell teleports you to a type of area of your selection. Very useful if you are in danger, but has a decent cooldown, and is unpredictable."
if ("11")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/genetic/mutate(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/genetic/mutate(usr)
src.temp = "This spell causes you to turn into a hulk and gain telekinesis for a short while."
if ("12")
usr.spell_list += new /obj/effects/proc_holder/spell/targeted/ethereal_jaunt(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(usr)
src.temp = "This spell creates your ethereal form, temporarily making you invisible and able to pass through walls."
if ("13")
usr.spell_list += new /obj/effects/proc_holder/spell/aoe_turf/knock(usr)
usr.spell_list += new /obj/effect/proc_holder/spell/aoe_turf/knock(usr)
src.temp = "This spell opens nearby doors and does not require wizard garb."
if (href_list["spell_choice"] == "14")
var/area/wizard_station/A = locate()

View File

@@ -19,7 +19,7 @@
usr.whisper("STI KALY")
// usr.spellvoice()
var/obj/effects/overlay/B = new /obj/effects/overlay( M.loc )
var/obj/effect/overlay/B = new /obj/effect/overlay( M.loc )
B.icon_state = "blspell"
B.icon = 'wizard.dmi'
B.name = "spell"
@@ -54,7 +54,7 @@
for (var/mob/living/M as mob in oview())
spawn(0)
var/obj/effects/overlay/A = new /obj/effects/overlay( usr.loc )
var/obj/effect/overlay/A = new /obj/effect/overlay( usr.loc )
A.icon_state = "magicm"
A.icon = 'wizard.dmi'
A.name = "a magic missile"
@@ -65,7 +65,7 @@
for(i=0, i<20, i++)
if (!istype(M)) //it happens sometimes --rastaf0
break
var/obj/effects/overlay/B = new /obj/effects/overlay( A.loc )
var/obj/effect/overlay/B = new /obj/effect/overlay( A.loc )
B.icon_state = "magicmd"
B.icon = 'wizard.dmi'
B.name = "trail"
@@ -101,7 +101,7 @@
usr.verbs -= /client/proc/smokecloud
spawn(120)
usr.verbs += /client/proc/smokecloud
var/datum/effects/system/bad_smoke_spread/smoke = new /datum/effects/system/bad_smoke_spread()
var/datum/effect/system/bad_smoke_spread/smoke = new /datum/effect/system/bad_smoke_spread()
smoke.set_up(10, 0, usr.loc)
smoke.start()
@@ -120,13 +120,13 @@
// usr.verbs -= /client/proc/smokecloud
// spawn(120)
// usr.verbs += /client/proc/smokecloud
// var/datum/effects/system/sleep_smoke_spread/smoke = new /datum/effects/system/sleep_smoke_spread()
// var/datum/effect/system/sleep_smoke_spread/smoke = new /datum/effect/system/sleep_smoke_spread()
// smoke.set_up(10, 0, usr.loc)
// smoke.start()
//FORCE WALL
/obj/effects/forcefield
/obj/effect/forcefield
desc = "A space wizard's magic wall."
name = "FORCEWALL"
icon = 'effects.dmi'
@@ -140,9 +140,6 @@
bullet_act(var/obj/item/projectile/Proj, var/def_zone)
var/turf/T = get_turf(src.loc)
if(T)
for(var/obj/O in T)
if(O != src)
O.bullet_act(Proj,def_zone)
for(var/mob/M in T)
M.bullet_act(Proj, def_zone)
..()
@@ -167,7 +164,7 @@
usr.whisper("TARCOL MINTI ZHERI")
// usr.spellvoice()
forcefield = new /obj/effects/forcefield(locate(usr.x,usr.y,usr.z))
forcefield = new /obj/effect/forcefield(locate(usr.x,usr.y,usr.z))
spawn (300)
del (forcefield)
return
@@ -190,7 +187,7 @@
usr.say("ONI SOMA")
// usr.spellvoice()
var/obj/effects/overlay/A = new /obj/effects/overlay( usr.loc )
var/obj/effect/overlay/A = new /obj/effect/overlay( usr.loc )
A.icon_state = "fireball"
A.icon = 'wizard.dmi'
A.name = "a fireball"
@@ -247,7 +244,7 @@
usr.say("EI NATH")
usr.spellvoice()
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(4, 1, M)
s.start()
@@ -290,7 +287,7 @@
if(T.y>world.maxy-4 || T.y<4) continue
turfs += T
if(!turfs.len) turfs += pick(/turf in orange(6))
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(10, 0, usr.loc)
smoke.start()
var/turf/picked = pick(turfs)
@@ -333,7 +330,7 @@
usr.say("SCYAR NILA [uppertext(A)]")
usr.spellvoice()
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(5, 0, usr.loc)
smoke.attach(usr)
smoke.start()
@@ -363,7 +360,7 @@
A = input("Area to jump to", "BOOYEA", A) in teleportlocs
var/area/thearea = teleportlocs[A]
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(5, 0, usr.loc)
smoke.attach(usr)
smoke.start()
@@ -401,7 +398,7 @@
if(H.stat) return
spawn(0)
var/mobloc = get_turf(H.loc)
var/obj/effects/dummy/spell_jaunt/holder = new /obj/effects/dummy/spell_jaunt( mobloc )
var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc )
var/atom/movable/overlay/animation = new /atom/movable/overlay( mobloc )
animation.name = "water"
animation.density = 0
@@ -413,7 +410,7 @@
flick("liquify",animation)
H.loc = holder
H.client.eye = holder
var/datum/effects/system/steam_spread/steam = new /datum/effects/system/steam_spread()
var/datum/effect/system/steam_spread/steam = new /datum/effect/system/steam_spread()
steam.set_up(10, 0, mobloc)
steam.start()
sleep(time)
@@ -431,7 +428,7 @@
del(animation)
del(holder)
/*
/obj/effects/dummy/spell_jaunt
/obj/effect/dummy/spell_jaunt
name = "water"
icon = 'effects.dmi'
icon_state = "nothing"
@@ -439,7 +436,7 @@
density = 0
anchored = 1
/obj/effects/dummy/spell_jaunt/relaymove(var/mob/user, direction)
/obj/effect/dummy/spell_jaunt/relaymove(var/mob/user, direction)
if (!src.canmove) return
switch(direction)
if(NORTH)
@@ -465,9 +462,9 @@
src.canmove = 0
spawn(2) src.canmove = 1
/obj/effects/dummy/spell_jaunt/ex_act(blah)
/obj/effect/dummy/spell_jaunt/ex_act(blah)
return
/obj/effects/dummy/spell_jaunt/bullet_act(blah,blah)
/obj/effect/dummy/spell_jaunt/bullet_act(blah,blah)
return
*/
//MUTATE

View File

@@ -145,7 +145,7 @@
wizard_mob.verbs += /client/proc/jaunt
wizard_mob.mind.special_verbs += /client/proc/jaunt
else
wizard_mob.spell_list += new /obj/effects/proc_holder/spell/targeted/ethereal_jaunt(usr)
wizard_mob.spell_list += new /obj/effect/proc_holder/spell/targeted/ethereal_jaunt(usr)
/datum/game_mode/proc/equip_wizard(mob/living/carbon/human/wizard_mob)
@@ -267,7 +267,7 @@
M.mind.special_verbs -= /mob/proc/swap
M.mind.special_verbs -= /client/proc/blink
else if(spell_type == "object")
for(var/obj/effects/proc_holder/spell/spell_to_remove in src.spell_list)
for(var/obj/effect/proc_holder/spell/spell_to_remove in src.spell_list)
del(spell_to_remove)
/*Checks if the wizard can cast spells.
@@ -315,7 +315,7 @@ Made a proc here so it's not repeated several times.*/
//UNUSED/OLD CODE
// for (var/obj/effects/landmark/A in world)
// for (var/obj/effect/landmark/A in world)
// if (A.name == "Teleport-Scroll")
// new /obj/item/weapon/teleportation_scroll(A.loc)
// del(A)

View File

@@ -70,7 +70,7 @@
/** Proc DivideOccupations
* fills var "assigned_role" for all ready players.
* This proc must not have any side effects besides of modifying "assigned_role".
* This proc must not have any side effect besides of modifying "assigned_role".
**/
/proc/DivideOccupations()
//Setup new player list and get the jobs list
@@ -602,7 +602,7 @@
if (!joined_late && rank != "Tourist")
var/obj/S = null
for(var/obj/effects/landmark/start/sloc in world)
for(var/obj/effect/landmark/start/sloc in world)
if (sloc.name != rank)
continue
if (locate(/mob) in sloc.loc)
@@ -611,7 +611,7 @@
break
if (!S)
S = locate("start*[rank]") // use old stype
if (istype(S, /obj/effects/landmark/start) && istype(S.loc, /turf))
if (istype(S, /obj/effect/landmark/start) && istype(S.loc, /turf))
src.loc = S.loc
// if(S.name == "Cyborg")
// src.Robotize()
@@ -706,7 +706,7 @@
if(V!=usr)
V.show_message("[usr] looks as if a wall is in front of them.", 3, "", 2)
usr << "You form a wall in front of yourself."
var/obj/effects/forcefield/F = new /obj/effects/forcefield(locate(usr.x,usr.y,usr.z))
var/obj/effect/forcefield/F = new /obj/effect/forcefield(locate(usr.x,usr.y,usr.z))
F.icon_state = "empty"
F.name = "invisible wall"
F.desc = "You have a bad feeling about this."

View File

@@ -1,4 +1,4 @@
/obj/effects/landmark/New()
/obj/effect/landmark/New()
..()
tag = text("landmark*[]", name)
@@ -63,7 +63,7 @@
return 1
/obj/effects/landmark/start/New()
/obj/effect/landmark/start/New()
..()
tag = "start*[name]"
invisibility = 101

View File

@@ -96,7 +96,7 @@
if(cooldown_on || disabled)
return
else
new /obj/effects/foam(src.loc)
new /obj/effect/foam(src.loc)
src.uses--
cooldown_on = 1
cooldown_time = world.timeofday + 100

View File

@@ -102,7 +102,7 @@ obj/machinery/computer/general_air_control
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/air_management/M = new /obj/item/weapon/circuitboard/air_management( A )
for (var/obj/C in src)
@@ -115,7 +115,7 @@ obj/machinery/computer/general_air_control
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/air_management/M = new /obj/item/weapon/circuitboard/air_management( A )
for (var/obj/C in src)
C.loc = src.loc
@@ -301,7 +301,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/injector_control/M = new /obj/item/weapon/circuitboard/injector_control( A )
for (var/obj/C in src)
@@ -314,7 +314,7 @@ Max Output Pressure: [output_pressure] kPa<BR>"}
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/injector_control/M = new /obj/item/weapon/circuitboard/injector_control( A )
for (var/obj/C in src)
C.loc = src.loc

View File

@@ -315,7 +315,7 @@ var/global/list/autolathe_recipes_hidden = list( \
return 0
if(!prob(prb))
return 0
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start()
if (electrocute_mob(user, get_area(src), src, 0.7))

View File

@@ -53,7 +53,7 @@
src.visible_message("\red <B>[user] has slashed [src]!</B>")
playsound(src.loc, 'slice.ogg', 25, 1, -1)
if(prob(10))
new /obj/effects/decal/cleanable/oil(src.loc)
new /obj/effect/decal/cleanable/oil(src.loc)
healthcheck()
@@ -114,7 +114,7 @@
/obj/machinery/bot/emp_act(severity)
var/was_on = on
stat |= EMPED
var/obj/effects/overlay/pulse2 = new/obj/effects/overlay ( src.loc )
var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc )
pulse2.icon = 'effects.dmi'
pulse2.icon_state = "empdisable"
pulse2.name = "emp sparks"
@@ -189,7 +189,7 @@
// Returns true if direction is blocked from loc
// Checks doors against access with given ID
/proc/DirBlockedWithAccess(turf/loc,var/dir,var/obj/item/weapon/card/id/ID)
for(var/obj/station_objects/window/D in loc)
for(var/obj/structure/window/D in loc)
if(!D.density) continue
if(D.dir == SOUTHWEST) return 1
if(D.dir == dir) return 1

View File

@@ -32,8 +32,8 @@
var/blood = 1
var/panelopen = 0
var/list/target_types = list()
var/obj/effects/decal/cleanable/target
var/obj/effects/decal/cleanable/oldtarget
var/obj/effect/decal/cleanable/target
var/obj/effect/decal/cleanable/oldtarget
var/oldloc = null
req_access = list(access_janitor)
var/path[] = new()
@@ -171,11 +171,11 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
if(src.oddbutton && prob(5))
for(var/mob/O in viewers(src, null))
O.show_message(text("Something flies out of [src]. He seems to be acting oddly."), 1)
var/obj/effects/decal/cleanable/blood/gibs/gib = new /obj/effects/decal/cleanable/blood/gibs(src.loc)
var/obj/effect/decal/cleanable/blood/gibs/gib = new /obj/effect/decal/cleanable/blood/gibs(src.loc)
//gib.streak(list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST))
src.oldtarget = gib
if(!src.target || src.target == null)
for (var/obj/effects/decal/cleanable/D in view(7,src))
for (var/obj/effect/decal/cleanable/D in view(7,src))
for(var/T in src.target_types)
if(!(D in cleanbottargets) && (D.type == T || D.parent_type == T) && D != src.oldtarget)
src.oldtarget = D
@@ -214,15 +214,15 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
src.target_types = new/list()
if(src.blood)
target_types += /obj/effects/decal/cleanable/xenoblood/
target_types += /obj/effects/decal/cleanable/xenoblood/xgibs
target_types += /obj/effects/decal/cleanable/blood/
target_types += /obj/effects/decal/cleanable/blood/gibs/
target_types += /obj/effects/decal/cleanable/oil
target_types += /obj/effects/decal/cleanable/robot_debris
target_types += /obj/effects/decal/cleanable/crayon
target_types += /obj/effect/decal/cleanable/xenoblood/
target_types += /obj/effect/decal/cleanable/xenoblood/xgibs
target_types += /obj/effect/decal/cleanable/blood/
target_types += /obj/effect/decal/cleanable/blood/gibs/
target_types += /obj/effect/decal/cleanable/oil
target_types += /obj/effect/decal/cleanable/robot_debris
target_types += /obj/effect/decal/cleanable/crayon
/obj/machinery/bot/cleanbot/proc/clean(var/obj/effects/decal/cleanable/target)
/obj/machinery/bot/cleanbot/proc/clean(var/obj/effect/decal/cleanable/target)
src.anchored = 1
src.icon_state = "cleanbot-c"
for(var/mob/O in viewers(src, null))
@@ -247,7 +247,7 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(src)

View File

@@ -696,11 +696,11 @@ Auto Patrol: []"},
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
new /obj/effects/decal/cleanable/oil(src.loc)
new /obj/effect/decal/cleanable/oil(src.loc)
del(src)
@@ -751,7 +751,7 @@ Auto Patrol: []"},
if(severity==2 && prob(70))
..(severity-1)
else
var/obj/effects/overlay/pulse2 = new/obj/effects/overlay ( src.loc )
var/obj/effect/overlay/pulse2 = new/obj/effect/overlay ( src.loc )
pulse2.icon = 'effects.dmi'
pulse2.icon_state = "empdisable"
pulse2.name = "emp sparks"

View File

@@ -355,7 +355,7 @@
if (amount)
new /obj/item/stack/tile/steel(Tsec) // only one tile, yes
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(src)

View File

@@ -474,7 +474,7 @@
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(src)
@@ -518,7 +518,7 @@
//It isn't blocked if we can open it, man.
/proc/TurfBlockedNonWindowNonDoor(turf/loc, var/list/access)
for(var/obj/O in loc)
if(O.density && !istype(O, /obj/station_objects/window) && !istype(O, /obj/machinery/door))
if(O.density && !istype(O, /obj/structure/window) && !istype(O, /obj/machinery/door))
return 1
if (O.density && (istype(O, /obj/machinery/door)) && (access.len))

View File

@@ -469,7 +469,7 @@
// called to load a crate
/obj/machinery/bot/mulebot/proc/load(var/atom/movable/C)
if((wires & wire_loadcheck) && !istype(C,/obj/station_objects/crate))
if((wires & wire_loadcheck) && !istype(C,/obj/structure/crate))
src.visible_message("[src] makes a sighing buzz.", "You hear an electronic buzzing sound.")
playsound(src.loc, 'buzz-sigh.ogg', 50, 0)
return // if not emagged, only allow crates to be loaded
@@ -479,7 +479,7 @@
mode = 1
// if a create, close before loading
var/obj/station_objects/crate/crate = C
var/obj/structure/crate/crate = C
if(istype(crate))
crate.close()
@@ -598,7 +598,7 @@
if(bloodiness)
var/obj/effects/decal/cleanable/blood/tracks/B = new(loc)
var/obj/effect/decal/cleanable/blood/tracks/B = new(loc)
var/newdir = get_dir(next, loc)
if(newdir == dir)
B.dir = newdir
@@ -743,7 +743,7 @@
AM = A
break
else // otherwise, look for crates only
AM = locate(/obj/station_objects/crate) in get_step(loc,loaddir)
AM = locate(/obj/structure/crate) in get_step(loc,loaddir)
if(AM)
load(AM)
// whatever happened, check to see if we return home
@@ -802,7 +802,7 @@
H.TakeDamage("l_arm",0.5*damage, 0)
H.TakeDamage("r_arm",0.5*damage, 0)
var/obj/effects/decal/cleanable/blood/B = new(src.loc)
var/obj/effect/decal/cleanable/blood/B = new(src.loc)
B.blood_DNA = H.dna.unique_enzymes
B.blood_type = H.b_type
@@ -959,10 +959,10 @@
cell.update_icon()
cell = null
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
new /obj/effects/decal/cleanable/oil(src.loc)
new /obj/effect/decal/cleanable/oil(src.loc)
unload(0)
del(src)

View File

@@ -677,11 +677,11 @@ Auto Patrol: []"},
if (prob(50))
new /obj/item/robot_parts/l_arm(Tsec)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
new /obj/effects/decal/cleanable/oil(src.loc)
new /obj/effect/decal/cleanable/oil(src.loc)
del(src)
/obj/machinery/bot/secbot/attack_alien(var/mob/living/carbon/alien/user as mob)

View File

@@ -64,7 +64,7 @@
continue
if(M.invisibility)//cloaked
continue
if(istype(M.loc,/obj/effects/dummy))
if(istype(M.loc,/obj/effect/dummy))
continue
else if (M == usr)
continue
@@ -109,7 +109,7 @@
usr << "Follow camera mode terminated."
usr:cameraFollow = null
return
else if(istype(target.loc,/obj/effects/dummy))
else if(istype(target.loc,/obj/effect/dummy))
usr << "Follow camera mode ended."
usr:cameraFollow = null
return
@@ -326,7 +326,7 @@
src.bugged = 1
else if(istype(W, /obj/item/weapon/melee/energy/blade))//Putting it here last since it's a special case. I wonder if there is a better way to do these than type casting.
deactivate(user,2)//Here so that you can disconnect anyone viewing the camera, regardless if it's on or off.
var/datum/effects/system/spark_spread/spark_system = new /datum/effects/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.start()
playsound(loc, 'blade1.ogg', 50, 1)

View File

@@ -1,4 +1,4 @@
/obj/station_objects/AIcore
/obj/structure/AIcore
density = 1
anchored = 0
name = "AI core"
@@ -10,7 +10,7 @@
var/obj/item/device/mmi/brain = null
/obj/station_objects/AIcore/attackby(obj/item/P as obj, mob/user as mob)
/obj/structure/AIcore/attackby(obj/item/P as obj, mob/user as mob)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))
@@ -148,7 +148,7 @@
new /mob/living/silicon/ai ( loc, laws, brain )
del(src)
/obj/station_objects/AIcore/deactivated
/obj/structure/AIcore/deactivated
name = "Inactive AI"
icon = 'AI.dmi'
icon_state = "ai-empty"
@@ -192,7 +192,7 @@ That prevents a few funky behaviors.
if (T.mind == malfai)
U << "\red <b>ERROR</b>: \black Remote transfer interface disabled."//Do ho ho ho~
return
new /obj/station_objects/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location.
new /obj/structure/AIcore/deactivated(T.loc)//Spawns a deactivated terminal at AI location.
T.aiRestorePowerRoutine = 0//So the AI initially has power.
T.control_disabled = 1//Can't control things remotely if you're stuck in a card!
T.loc = C//Throw AI into the card.
@@ -218,7 +218,7 @@ That prevents a few funky behaviors.
if(T.stat)//If the ai is dead/dying.
U << "\red <b>ERROR</b>: \black [T.name] data core is corrupted. Unable to install."
else
new /obj/station_objects/AIcore/deactivated(T.loc)
new /obj/structure/AIcore/deactivated(T.loc)
T.aiRestorePowerRoutine = 0
T.control_disabled = 1
T.loc = C
@@ -228,7 +228,7 @@ That prevents a few funky behaviors.
U << "\blue <b>Transfer successful</b>: \black [T.name] ([rand(1000,9999)].exe) removed from host terminal and stored within local memory."
if("INACTIVE")//Inactive AI object.
var/obj/station_objects/AIcore/deactivated/T = target
var/obj/structure/AIcore/deactivated/T = target
switch(interaction)
if("AICARD")
var/obj/item/device/aicard/C = src

View File

@@ -17,7 +17,7 @@
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/robotics/M = new /obj/item/weapon/circuitboard/robotics( A )
for (var/obj/C in src)
@@ -30,7 +30,7 @@
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/robotics/M = new /obj/item/weapon/circuitboard/robotics( A )
for (var/obj/C in src)
C.loc = src.loc

View File

@@ -117,7 +117,7 @@
src.temp = "[src.enemy_name] has fallen! Rejoice!"
if(emagged)
new /obj/effects/spawner/newbomb/timer/syndicate(src.loc)
new /obj/effect/spawner/newbomb/timer/syndicate(src.loc)
new /obj/item/clothing/head/collectable/petehat(src.loc)
message_admins("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.")
log_game("[key_name_admin(usr)] has outbombed Cuban Pete and been awarded a bomb.")

View File

@@ -1,4 +1,4 @@
/obj/station_objects/computerframe
/obj/structure/computerframe
density = 1
anchored = 0
name = "Computer-frame"
@@ -168,7 +168,7 @@
/obj/station_objects/computerframe/attackby(obj/item/P as obj, mob/user as mob)
/obj/structure/computerframe/attackby(obj/item/P as obj, mob/user as mob)
switch(state)
if(0)
if(istype(P, /obj/item/weapon/wrench))

View File

@@ -15,7 +15,7 @@ Pod/Blast Doors computer
for(var/x in verbs)
verbs -= x
set_broken()
var/datum/effects/system/harmless_smoke_spread/smoke = new /datum/effects/system/harmless_smoke_spread()
var/datum/effect/system/harmless_smoke_spread/smoke = new /datum/effect/system/harmless_smoke_spread()
smoke.set_up(5, 0, src)
smoke.start()
return
@@ -96,7 +96,7 @@ Pod/Blast Doors computer
if(istype(I, /obj/item/weapon/screwdriver) && circuit)
playsound(src.loc, 'Screwdriver.ogg', 50, 1)
if(do_after(user, 20))
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/M = new circuit( A )
A.circuit = M
A.anchored = 1
@@ -563,7 +563,7 @@ Pod/Blast Doors computer
if(do_after(user, 20))
if (stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
new /obj/item/weapon/shard( loc )
//generate appropriate circuitboard. Accounts for /pod/old computer types
@@ -587,7 +587,7 @@ Pod/Blast Doors computer
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( loc )
//generate appropriate circuitboard. Accounts for /pod/old computer types
var/obj/item/weapon/circuitboard/pod/M = null

View File

@@ -24,7 +24,7 @@ var/reportingpower = 0 //this tracks whether this power monitoring computer is
if(do_after(user, 20))
if (src.stat & BROKEN)
user << "\blue The broken glass falls out."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
new /obj/item/weapon/shard( src.loc )
var/obj/item/weapon/circuitboard/powermonitor/M = new /obj/item/weapon/circuitboard/powermonitor( A )
for (var/obj/C in src)
@@ -36,7 +36,7 @@ var/reportingpower = 0 //this tracks whether this power monitoring computer is
del(src)
else
user << "\blue You disconnect the monitor."
var/obj/station_objects/computerframe/A = new /obj/station_objects/computerframe( src.loc )
var/obj/structure/computerframe/A = new /obj/structure/computerframe( src.loc )
var/obj/item/weapon/circuitboard/powermonitor/M = new /obj/item/weapon/circuitboard/powermonitor( A )
for (var/obj/C in src)
C.loc = src.loc

View File

@@ -8,7 +8,7 @@
var/on = 0
var/temperature_archived
var/obj/effects/overlay/O1 = null
var/obj/effect/overlay/O1 = null
var/mob/living/carbon/occupant = null
var/beaker = null
var/next_trans = 0
@@ -145,7 +145,7 @@
icon_state = "celltop"
else
icon_state = "celltop-p"
O1 = new /obj/effects/overlay( )
O1 = new /obj/effect/overlay( )
O1.icon = 'Cryogenic2.dmi'
if(src.node)
O1.icon_state = "cryo_bottom_[src.on]"

View File

@@ -55,7 +55,7 @@ for reference:
//Barricades, maybe there will be a metal one later...
/obj/station_objects/barricade/wooden
/obj/structure/barricade/wooden
name = "wooden barricade"
desc = "This space is blocked off by a wooden barricade."
icon = 'structures.dmi'
@@ -192,7 +192,7 @@ These should not block bullets/N */
user << "Barrier lock toggled off."
return
else
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
for(var/mob/O in viewers(src, null))
@@ -204,7 +204,7 @@ These should not block bullets/N */
src.emagged = 1
src.req_access = null
user << "You break the ID authentication lock on the [src]."
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
for(var/mob/O in viewers(src, null))
@@ -213,7 +213,7 @@ These should not block bullets/N */
else if (src.emagged == 1)
src.emagged = 2
user << "You short out the anchoring mechanism on the [src]."
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(2, 1, src)
s.start()
for(var/mob/O in viewers(src, null))
@@ -298,7 +298,7 @@ These should not block bullets/N */
/* var/obj/item/stack/rods/ =*/
new /obj/item/stack/rods(Tsec)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()

View File

@@ -20,10 +20,10 @@
arePowerSystemsOn - 1 if the main or backup power are functioning, 0 if not. Does not check whether the power grid is charged or an APC has equipment on or anything like that. (Check (stat & NOPOWER) for that)
requiresIDs - 1 if the airlock is requiring IDs, 0 if not
isAllPowerCut - 1 if the main and backup power both have cut wires.
regainMainPower - handles the effects of main power coming back on.
loseMainPower - handles the effects of main power going offline. Usually (if one isn't already running) spawn a thread to count down how long it will be offline - counting down won't happen if main power was completely cut along with backup power, though, the thread will just sleep.
loseBackupPower - handles the effects of backup power going offline.
regainBackupPower - handles the effects of main power coming back on.
regainMainPower - handles the effect of main power coming back on.
loseMainPower - handles the effect of main power going offline. Usually (if one isn't already running) spawn a thread to count down how long it will be offline - counting down won't happen if main power was completely cut along with backup power, though, the thread will just sleep.
loseBackupPower - handles the effect of backup power going offline.
regainBackupPower - handles the effect of main power coming back on.
shock - has a chance of electrocuting its target.
*/
@@ -404,7 +404,7 @@ About the new airlock wires panel:
return 0
if(!prob(prb))
return 0 //you lucked out, no shock for you
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(5, 1, src)
s.start() //sparks always.
if (electrocute_mob(user, get_area(src), src))
@@ -882,14 +882,14 @@ About the new airlock wires panel:
if(do_after(user,40))
user << "\blue You removed the airlock electronics!"
switch(src.doortype)
if(0) new/obj/station_objects/door_assembly/door_assembly_0( src.loc )
if(1) new/obj/station_objects/door_assembly/door_assembly_com( src.loc )
if(2) new/obj/station_objects/door_assembly/door_assembly_sec( src.loc )
if(3) new/obj/station_objects/door_assembly/door_assembly_eng( src.loc )
if(4) new/obj/station_objects/door_assembly/door_assembly_med( src.loc )
if(5) new/obj/station_objects/door_assembly/door_assembly_mai( src.loc )
if(6) new/obj/station_objects/door_assembly/door_assembly_ext( src.loc )
if(7) new/obj/station_objects/door_assembly/door_assembly_g( src.loc )
if(0) new/obj/structure/door_assembly/door_assembly_0( src.loc )
if(1) new/obj/structure/door_assembly/door_assembly_com( src.loc )
if(2) new/obj/structure/door_assembly/door_assembly_sec( src.loc )
if(3) new/obj/structure/door_assembly/door_assembly_eng( src.loc )
if(4) new/obj/structure/door_assembly/door_assembly_med( src.loc )
if(5) new/obj/structure/door_assembly/door_assembly_mai( src.loc )
if(6) new/obj/structure/door_assembly/door_assembly_ext( src.loc )
if(7) new/obj/structure/door_assembly/door_assembly_g( src.loc )
var/obj/item/weapon/airlock_electronics/ae
if (!electronics)
ae = new/obj/item/weapon/airlock_electronics( src.loc )
@@ -993,7 +993,7 @@ About the new airlock wires panel:
return
use_power(50)
playsound(src.loc, 'airlock.ogg', 30, 1)
var/obj/station_objects/window/killthis = (locate(/obj/station_objects/window) in get_turf(src))
var/obj/structure/window/killthis = (locate(/obj/structure/window) in get_turf(src))
if(killthis)
killthis.ex_act(2)//Smashin windows
..()

Some files were not shown because too many files have changed in this diff Show More