mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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()
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
*/
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
/obj/effects/spawner
|
||||
/obj/effect/spawner
|
||||
name = "object spawner"
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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]")
|
||||
|
||||
@@ -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
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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")
|
||||
@@ -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'
|
||||
|
||||
@@ -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
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.")
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]"
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user