mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-18 03:26:31 +01:00
Merge remote-tracking branch 'upstream/master' into shingles
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
desc = "It's green and acidic. It looks like... <i>blood?</i>"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xfloor1"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "It's red and gooey. Perhaps it's the chef's cooking?"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "floor1"
|
||||
@@ -39,7 +38,6 @@
|
||||
desc = "Your instincts say you shouldn't be following these."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
random_icon_states = null
|
||||
var/list/existing_dirs = list()
|
||||
@@ -55,7 +53,6 @@
|
||||
desc = "They look bloody and gruesome."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "gibbl5"
|
||||
@@ -88,18 +85,18 @@
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
spawn (0)
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||
for(var/datum/disease/D in src.viruses)
|
||||
var/datum/disease/ND = D.Copy(1)
|
||||
b.viruses += ND
|
||||
ND.holder = b
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
var/obj/effect/decal/cleanable/blood/b = new /obj/effect/decal/cleanable/blood/splatter(src.loc)
|
||||
for(var/datum/disease/D in src.viruses)
|
||||
var/datum/disease/ND = D.Copy(1)
|
||||
b.viruses += ND
|
||||
ND.holder = b
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip
|
||||
name = "drips of blood"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Someone should clean that up."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "shards"
|
||||
@@ -14,7 +13,6 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/cleanable/ash/New()
|
||||
..()
|
||||
@@ -29,7 +27,6 @@
|
||||
icon_state = "dirt"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
mouse_opacity = 0
|
||||
|
||||
@@ -38,7 +35,6 @@
|
||||
desc = "It's still good. Four second rule!"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "flour"
|
||||
@@ -48,7 +44,6 @@
|
||||
desc = "Jeez. I hope that's not for lunch."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
luminosity = 1
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
@@ -61,7 +56,6 @@
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 3
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb1"
|
||||
@@ -74,7 +68,6 @@
|
||||
name = "gooey grey mass"
|
||||
desc = "It looks like a melted... something."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 3
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "molten"
|
||||
@@ -83,7 +76,6 @@
|
||||
name = "cobweb"
|
||||
desc = "Somebody should remove that."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 3
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "cobweb2"
|
||||
@@ -94,7 +86,6 @@
|
||||
desc = "Gosh, how unpleasant."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "vomit_1"
|
||||
@@ -111,7 +102,6 @@
|
||||
name = "tomato smudge"
|
||||
desc = "It's red."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
|
||||
@@ -120,7 +110,6 @@
|
||||
name = "smashed egg"
|
||||
desc = "Seems like this one won't hatch."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
|
||||
@@ -129,7 +118,6 @@
|
||||
name = "smashed pie"
|
||||
desc = "It's pie cream from a cream pie."
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_pie")
|
||||
@@ -140,7 +128,6 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/cleanable/shreds
|
||||
name = "shreds"
|
||||
@@ -149,7 +136,6 @@
|
||||
icon_state = "shreds"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
|
||||
/obj/effect/decal/cleanable/shreds/New()
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
desc = "It's a useless heap of junk... <i>or is it?</i>"
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/mob/robots.dmi'
|
||||
icon_state = "gib1"
|
||||
@@ -14,19 +13,19 @@
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions)
|
||||
spawn (0)
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
if (prob(40))
|
||||
new /obj/effect/decal/cleanable/oil/streak(src.loc)
|
||||
else if (prob(10))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
for (var/i = 0, i < pick(1, 200; 2, 150; 3, 50; 4), i++)
|
||||
sleep(3)
|
||||
if (i > 0)
|
||||
if (prob(40))
|
||||
new /obj/effect/decal/cleanable/oil/streak(src.loc)
|
||||
else if (prob(10))
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
if (step_to(src, get_step(src, direction), 0))
|
||||
break
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/ex_act()
|
||||
return
|
||||
@@ -45,7 +44,6 @@
|
||||
desc = "It's black and greasy. Looks like Beepsky made another mess."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 2
|
||||
icon = 'icons/mob/robots.dmi'
|
||||
icon_state = "floor1"
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/obj/effect/decal/cleanable/crayon
|
||||
name = "rune"
|
||||
desc = "A rune drawn in crayon."
|
||||
desc = "Graffiti. Damn kids."
|
||||
icon = 'icons/effects/crayondecal.dmi'
|
||||
icon_state = "rune1"
|
||||
layer = 2.1
|
||||
anchored = 1
|
||||
var/do_icon_rotate = TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/crayon/examine()
|
||||
@@ -18,7 +17,7 @@
|
||||
loc = location
|
||||
|
||||
name = e_name
|
||||
desc = "A [name] drawn in crayon."
|
||||
desc = "A [name] vandalizing the station."
|
||||
if(type == "poseur tag")
|
||||
type = pick(gang_name_pool)
|
||||
icon_state = type
|
||||
@@ -30,6 +29,7 @@
|
||||
|
||||
color = main
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/crayon/gang
|
||||
layer = 3.6 //Harder to hide
|
||||
do_icon_rotate = FALSE //These are designed to always face south, so no rotation please.
|
||||
@@ -56,4 +56,4 @@
|
||||
gang.territory -= territory.type
|
||||
gang.territory_new -= territory.type
|
||||
gang.territory_lost |= list(territory.type = territory.name)
|
||||
return ..()
|
||||
return ..()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/obj/effect/decal
|
||||
name = "decal"
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/ex_act(severity, target)
|
||||
qdel(src)
|
||||
@@ -3,13 +3,11 @@
|
||||
icon = 'icons/mob/screen_gen.dmi'
|
||||
icon_state = "arrow"
|
||||
layer = 16
|
||||
anchored = 1
|
||||
mouse_opacity = 0
|
||||
|
||||
// Used for spray that you spray at walls, tables, hydrovats etc
|
||||
/obj/effect/decal/spraystill
|
||||
density = 0
|
||||
anchored = 1
|
||||
layer = 50
|
||||
|
||||
//Used by spraybottles.
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "remains"
|
||||
gender = PLURAL
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
anchored = 1
|
||||
|
||||
/obj/effect/decal/remains/human
|
||||
desc = "They look like human remains. They have a strange aura about them."
|
||||
|
||||
@@ -163,9 +163,12 @@
|
||||
T.air_update_turf()
|
||||
for(var/obj/effect/hotspot/H in T)
|
||||
qdel(H)
|
||||
if(G.toxins)
|
||||
G.nitrogen += (G.toxins)
|
||||
G.toxins = 0
|
||||
var/list/G_gases = G.gases
|
||||
if(G_gases["plasma"])
|
||||
G.assert_gas("n2")
|
||||
G_gases["n2"][MOLES] += (G_gases["plasma"][MOLES])
|
||||
G_gases["plasma"][MOLES] = 0
|
||||
G.garbage_collect()
|
||||
for(var/obj/machinery/atmospherics/components/unary/U in T)
|
||||
if(!isnull(U.welded) && !U.welded) //must be an unwelded vent pump or vent scrubber.
|
||||
U.welded = 1
|
||||
|
||||
@@ -39,6 +39,16 @@
|
||||
spawn(duration)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/overlay/temp/guardian
|
||||
randomdir = 0
|
||||
|
||||
/obj/effect/overlay/temp/guardian/phase
|
||||
duration = 5
|
||||
icon_state = "phasein"
|
||||
|
||||
/obj/effect/overlay/temp/guardian/phase/out
|
||||
icon_state = "phaseout"
|
||||
|
||||
/obj/effect/overlay/temp/cult
|
||||
randomdir = 0
|
||||
duration = 10
|
||||
@@ -50,7 +60,7 @@
|
||||
/obj/effect/overlay/temp/cult/turf
|
||||
name = "unholy glow"
|
||||
icon_state = "wallglow"
|
||||
layer = 2.01
|
||||
layer = TURF_LAYER + 0.07
|
||||
|
||||
/obj/effect/overlay/temp/cult/turf/floor
|
||||
icon_state = "floorglow"
|
||||
|
||||
+107
-98
@@ -14,9 +14,19 @@
|
||||
|
||||
|
||||
/proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1, ignorecap = 0, flame_range = 0 ,silent = 0)
|
||||
set waitfor = 0
|
||||
src = null //so we don't abort once src is deleted
|
||||
epicenter = get_turf(epicenter)
|
||||
|
||||
//DO NOT REMOVE THIS SLEEP, IT BREAKS THINGS
|
||||
//not sleeping causes us to ex_act() the thing that triggered the explosion
|
||||
//doing that might cause it to trigger another explosion
|
||||
//this is bad
|
||||
//I would make this not ex_act the thing that triggered the explosion,
|
||||
//but everything that explodes gives us their loc or a get_turf()
|
||||
//and somethings expect us to ex_act them so they can qdel()
|
||||
sleep(1) //tldr, let the calling proc call qdel(src) before we explode
|
||||
|
||||
// Archive the uncapped explosion for the doppler array
|
||||
var/orig_dev_range = devastation_range
|
||||
var/orig_heavy_range = heavy_impact_range
|
||||
@@ -30,126 +40,125 @@
|
||||
flash_range = min (MAX_EX_FLASH_RANGE, flash_range)
|
||||
flame_range = min (MAX_EX_FLAME_RANGE, flame_range)
|
||||
|
||||
spawn(0)
|
||||
var/start = world.timeofday
|
||||
if(!epicenter) return
|
||||
var/start = world.timeofday
|
||||
if(!epicenter) return
|
||||
|
||||
var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flame_range)
|
||||
var/list/cached_exp_block = list()
|
||||
var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flame_range)
|
||||
var/list/cached_exp_block = list()
|
||||
|
||||
if(adminlog)
|
||||
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])")
|
||||
log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])")
|
||||
if(adminlog)
|
||||
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])")
|
||||
log_game("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range], [flame_range]) in area [epicenter.loc.name] ([epicenter.x],[epicenter.y],[epicenter.z])")
|
||||
|
||||
// Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves.
|
||||
// Stereo users will also hear the direction of the explosion!
|
||||
// Play sounds; we want sounds to be different depending on distance so we will manually do it ourselves.
|
||||
// Stereo users will also hear the direction of the explosion!
|
||||
|
||||
// Calculate far explosion sound range. Only allow the sound effect for heavy/devastating explosions.
|
||||
// 3/7/14 will calculate to 80 + 35
|
||||
// Calculate far explosion sound range. Only allow the sound effect for heavy/devastating explosions.
|
||||
// 3/7/14 will calculate to 80 + 35
|
||||
|
||||
var/far_dist = 0
|
||||
far_dist += heavy_impact_range * 5
|
||||
far_dist += devastation_range * 20
|
||||
var/far_dist = 0
|
||||
far_dist += heavy_impact_range * 5
|
||||
far_dist += devastation_range * 20
|
||||
|
||||
if(!silent)
|
||||
var/frequency = get_rand_frequency()
|
||||
for(var/mob/M in player_list)
|
||||
// Double check for client
|
||||
if(M && M.client)
|
||||
var/turf/M_turf = get_turf(M)
|
||||
if(M_turf && M_turf.z == epicenter.z)
|
||||
var/dist = get_dist(M_turf, epicenter)
|
||||
// If inside the blast radius + world.view - 2
|
||||
if(dist <= round(max_range + world.view - 2, 1))
|
||||
M.playsound_local(epicenter, get_sfx("explosion"), 100, 1, frequency, falloff = 5) // get_sfx() is so that everyone gets the same sound
|
||||
// You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station.
|
||||
else if(dist <= far_dist)
|
||||
var/far_volume = Clamp(far_dist, 30, 50) // Volume is based on explosion size and dist
|
||||
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
|
||||
M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5)
|
||||
if(!silent)
|
||||
var/frequency = get_rand_frequency()
|
||||
for(var/mob/M in player_list)
|
||||
// Double check for client
|
||||
if(M && M.client)
|
||||
var/turf/M_turf = get_turf(M)
|
||||
if(M_turf && M_turf.z == epicenter.z)
|
||||
var/dist = get_dist(M_turf, epicenter)
|
||||
// If inside the blast radius + world.view - 2
|
||||
if(dist <= round(max_range + world.view - 2, 1))
|
||||
M.playsound_local(epicenter, get_sfx("explosion"), 100, 1, frequency, falloff = 5) // get_sfx() is so that everyone gets the same sound
|
||||
// You hear a far explosion if you're outside the blast radius. Small bombs shouldn't be heard all over the station.
|
||||
else if(dist <= far_dist)
|
||||
var/far_volume = Clamp(far_dist, 30, 50) // Volume is based on explosion size and dist
|
||||
far_volume += (dist <= far_dist * 0.5 ? 50 : 0) // add 50 volume if the mob is pretty close to the explosion
|
||||
M.playsound_local(epicenter, 'sound/effects/explosionfar.ogg', far_volume, 1, frequency, falloff = 5)
|
||||
|
||||
//postpone processing for a bit
|
||||
var/postponeCycles = max(round(devastation_range/8),1)
|
||||
SSlighting.postpone(postponeCycles)
|
||||
SSmachine.postpone(postponeCycles)
|
||||
//postpone processing for a bit
|
||||
var/postponeCycles = max(round(devastation_range/8),1)
|
||||
SSlighting.postpone(postponeCycles)
|
||||
SSmachine.postpone(postponeCycles)
|
||||
|
||||
if(heavy_impact_range > 1)
|
||||
var/datum/effect_system/explosion/E = new/datum/effect_system/explosion()
|
||||
E.set_up(epicenter)
|
||||
E.start()
|
||||
if(heavy_impact_range > 1)
|
||||
var/datum/effect_system/explosion/E = new/datum/effect_system/explosion()
|
||||
E.set_up(epicenter)
|
||||
E.start()
|
||||
|
||||
var/x0 = epicenter.x
|
||||
var/y0 = epicenter.y
|
||||
var/z0 = epicenter.z
|
||||
var/x0 = epicenter.x
|
||||
var/y0 = epicenter.y
|
||||
var/z0 = epicenter.z
|
||||
|
||||
var/list/affected_turfs = trange(max_range, epicenter)
|
||||
var/list/affected_turfs = trange(max_range, epicenter)
|
||||
|
||||
if(config.reactionary_explosions)
|
||||
for(var/turf/T in affected_turfs) // we cache the explosion block rating of every turf in the explosion area
|
||||
cached_exp_block[T] = 0
|
||||
if(T.density && T.explosion_block)
|
||||
cached_exp_block[T] += T.explosion_block
|
||||
|
||||
for(var/obj/machinery/door/D in T)
|
||||
if(D.density && D.explosion_block)
|
||||
cached_exp_block[T] += D.explosion_block
|
||||
|
||||
for(var/obj/structure/window/W in T)
|
||||
if(W.reinf && W.fulltile)
|
||||
cached_exp_block[T] += W.explosion_block
|
||||
|
||||
for(var/obj/effect/blob/B in T)
|
||||
cached_exp_block[T] += B.explosion_block
|
||||
|
||||
for(var/turf/T in affected_turfs)
|
||||
|
||||
var/dist = cheap_hypotenuse(T.x, T.y, x0, y0)
|
||||
|
||||
if(config.reactionary_explosions)
|
||||
for(var/turf/T in affected_turfs) // we cache the explosion block rating of every turf in the explosion area
|
||||
cached_exp_block[T] = 0
|
||||
if(T.density && T.explosion_block)
|
||||
cached_exp_block[T] += T.explosion_block
|
||||
var/turf/Trajectory = T
|
||||
while(Trajectory != epicenter)
|
||||
Trajectory = get_step_towards(Trajectory, epicenter)
|
||||
dist += cached_exp_block[Trajectory]
|
||||
|
||||
for(var/obj/machinery/door/D in T)
|
||||
if(D.density && D.explosion_block)
|
||||
cached_exp_block[T] += D.explosion_block
|
||||
var/flame_dist = 0
|
||||
var/throw_dist = dist
|
||||
|
||||
for(var/obj/structure/window/W in T)
|
||||
if(W.reinf && W.fulltile)
|
||||
cached_exp_block[T] += W.explosion_block
|
||||
if(dist < flame_range)
|
||||
flame_dist = 1
|
||||
|
||||
for(var/obj/effect/blob/B in T)
|
||||
cached_exp_block[T] += B.explosion_block
|
||||
if(dist < devastation_range) dist = 1
|
||||
else if(dist < heavy_impact_range) dist = 2
|
||||
else if(dist < light_impact_range) dist = 3
|
||||
else dist = 0
|
||||
|
||||
for(var/turf/T in affected_turfs)
|
||||
//------- TURF FIRES -------
|
||||
|
||||
var/dist = cheap_hypotenuse(T.x, T.y, x0, y0)
|
||||
if(T)
|
||||
if(flame_dist && prob(40) && !istype(T, /turf/space) && !T.density)
|
||||
PoolOrNew(/obj/effect/hotspot, T) //Mostly for ambience!
|
||||
if(dist > 0)
|
||||
T.ex_act(dist)
|
||||
|
||||
if(config.reactionary_explosions)
|
||||
var/turf/Trajectory = T
|
||||
while(Trajectory != epicenter)
|
||||
Trajectory = get_step_towards(Trajectory, epicenter)
|
||||
dist += cached_exp_block[Trajectory]
|
||||
//--- THROW ITEMS AROUND ---
|
||||
|
||||
var/flame_dist = 0
|
||||
var/throw_dist = dist
|
||||
|
||||
if(dist < flame_range)
|
||||
flame_dist = 1
|
||||
|
||||
if(dist < devastation_range) dist = 1
|
||||
else if(dist < heavy_impact_range) dist = 2
|
||||
else if(dist < light_impact_range) dist = 3
|
||||
else dist = 0
|
||||
|
||||
//------- TURF FIRES -------
|
||||
|
||||
if(T)
|
||||
if(flame_dist && prob(40) && !istype(T, /turf/space) && !T.density)
|
||||
PoolOrNew(/obj/effect/hotspot, T) //Mostly for ambience!
|
||||
if(dist > 0)
|
||||
T.ex_act(dist)
|
||||
|
||||
//--- THROW ITEMS AROUND ---
|
||||
|
||||
var/throw_dir = get_dir(epicenter,T)
|
||||
for(var/obj/item/I in T)
|
||||
if(I && !I.anchored)
|
||||
var/throw_range = rand(throw_dist, max_range)
|
||||
var/turf/throw_at = get_ranged_target_turf(I, throw_dir, throw_range)
|
||||
I.throw_speed = 4 //Temporarily change their throw_speed for embedding purposes (Reset when it finishes throwing, regardless of hitting anything)
|
||||
I.throw_at_fast(throw_at, throw_range, 2)//Throw it at 2 speed, this is purely visual anyway.
|
||||
var/throw_dir = get_dir(epicenter,T)
|
||||
for(var/obj/item/I in T)
|
||||
if(I && !I.anchored)
|
||||
var/throw_range = rand(throw_dist, max_range)
|
||||
var/turf/throw_at = get_ranged_target_turf(I, throw_dir, throw_range)
|
||||
I.throw_speed = 4 //Temporarily change their throw_speed for embedding purposes (Reset when it finishes throwing, regardless of hitting anything)
|
||||
I.throw_at_fast(throw_at, throw_range, 2)//Throw it at 2 speed, this is purely visual anyway.
|
||||
|
||||
|
||||
var/took = (world.timeofday-start)/10
|
||||
//You need to press the DebugGame verb to see these now....they were getting annoying and we've collected a fair bit of data. Just -test- changes to explosion code using this please so we can compare
|
||||
if(Debug2) world.log << "## DEBUG: Explosion([x0],[y0],[z0])(d[devastation_range],h[heavy_impact_range],l[light_impact_range]): Took [took] seconds."
|
||||
var/took = (world.timeofday-start)/10
|
||||
//You need to press the DebugGame verb to see these now....they were getting annoying and we've collected a fair bit of data. Just -test- changes to explosion code using this please so we can compare
|
||||
if(Debug2) world.log << "## DEBUG: Explosion([x0],[y0],[z0])(d[devastation_range],h[heavy_impact_range],l[light_impact_range]): Took [took] seconds."
|
||||
|
||||
//Machines which report explosions.
|
||||
for(var/array in doppler_arrays)
|
||||
var/obj/machinery/doppler_array/A = array
|
||||
A.sense_explosion(epicenter,devastation_range,heavy_impact_range,light_impact_range,took,orig_dev_range,orig_heavy_range,orig_light_range)
|
||||
|
||||
//Machines which report explosions.
|
||||
for(var/array in doppler_arrays)
|
||||
var/obj/machinery/doppler_array/A = array
|
||||
A.sense_explosion(epicenter,devastation_range,heavy_impact_range,light_impact_range,took,orig_dev_range,orig_heavy_range,orig_light_range)
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
|
||||
@@ -59,8 +59,7 @@
|
||||
if(!src.lit)
|
||||
src.lit = 1
|
||||
//src.damtype = "fire"
|
||||
for(var/mob/O in viewers(usr, null))
|
||||
O.show_message(flavor_text, 1)
|
||||
usr.visible_message(flavor_text)
|
||||
SetLuminosity(CANDLE_LUMINOSITY)
|
||||
if(!infinite)
|
||||
SSobj.processing |= src
|
||||
|
||||
@@ -414,6 +414,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "Unable to obtain a reading.<br>"
|
||||
else
|
||||
var/datum/gas_mixture/environment = T.return_air()
|
||||
var/list/env_gases = environment.gases
|
||||
|
||||
var/pressure = environment.return_pressure()
|
||||
var/total_moles = environment.total_moles()
|
||||
@@ -421,17 +422,11 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
dat += "Air Pressure: [round(pressure,0.1)] kPa<br>"
|
||||
|
||||
if (total_moles)
|
||||
var/o2_level = environment.oxygen/total_moles
|
||||
var/n2_level = environment.nitrogen/total_moles
|
||||
var/co2_level = environment.carbon_dioxide/total_moles
|
||||
var/plasma_level = environment.toxins/total_moles
|
||||
var/unknown_level = 1-(o2_level+n2_level+co2_level+plasma_level)
|
||||
dat += "Nitrogen: [round(n2_level*100)]%<br>"
|
||||
dat += "Oxygen: [round(o2_level*100)]%<br>"
|
||||
dat += "Carbon Dioxide: [round(co2_level*100)]%<br>"
|
||||
dat += "Plasma: [round(plasma_level*100)]%<br>"
|
||||
if(unknown_level > 0.01)
|
||||
dat += "OTHER: [round(unknown_level)]%<br>"
|
||||
for(var/id in env_gases)
|
||||
var/gas_level = env_gases[id][MOLES]/total_moles
|
||||
if(id in hardcoded_gases || gas_level > 0.01)
|
||||
dat += "[env_gases[id][GAS_NAME]]: [round(gas_level*100)]%<br>"
|
||||
|
||||
dat += "Temperature: [round(environment.temperature-T0C)]°C<br>"
|
||||
dat += "<br>"
|
||||
|
||||
@@ -778,7 +773,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0)
|
||||
for(var/mob/M in player_list)
|
||||
if(isobserver(M) && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTPDA))
|
||||
M.show_message("<a href='?src=\ref[M];follow=\ref[user]'>(F)</a><span class='name'> [msg.sender] </span><span class='game say'>PDA Message</span> --> <span class='name'>[multiple ? "Everyone" : msg.recipient]</span>: <span class='message'>[msg.message][msg.get_photo_ref()]</span></span>")
|
||||
M << "<a href='?src=\ref[M];follow=\ref[user]'>(F)</a><span class='name'> [msg.sender] </span><span class='game say'>PDA Message</span> --> <span class='name'>[multiple ? "Everyone" : msg.recipient]</span>: <span class='message'>[msg.message][msg.get_photo_ref()]</span></span>"
|
||||
|
||||
/obj/item/device/pda/proc/can_send(obj/item/device/pda/P)
|
||||
if(!P || qdeleted(P) || P.toff)
|
||||
@@ -944,9 +939,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
switch(scanmode)
|
||||
|
||||
if(1)
|
||||
user.visible_message(text("<span class='alert'>[] has analyzed []'s vitals!</span>", user, C))
|
||||
C.visible_message("<span class='alert'>[user] has analyzed [C]'s vitals!</span>")
|
||||
healthscan(user, C, 1)
|
||||
src.add_fingerprint(user)
|
||||
add_fingerprint(user)
|
||||
|
||||
if(2)
|
||||
// Unused
|
||||
|
||||
@@ -241,11 +241,12 @@
|
||||
/obj/item/weapon/cartridge/proc/print_to_host(text)
|
||||
if (!istype(loc, /obj/item/device/pda))
|
||||
return
|
||||
loc:cart = text
|
||||
var/obj/item/device/pda/P = loc
|
||||
P.cart = text
|
||||
|
||||
for (var/mob/M in viewers(1, loc.loc))
|
||||
if (M.client && M.machine == loc)
|
||||
loc:attack_self(M)
|
||||
P.attack_self(M)
|
||||
|
||||
return
|
||||
|
||||
@@ -273,6 +274,7 @@
|
||||
/obj/item/weapon/cartridge/proc/generate_menu(mob/user)
|
||||
switch(mode)
|
||||
if(40) //signaller
|
||||
var/obj/item/radio/integrated/signal/S = radio
|
||||
menu = "<h4><img src=pda_signaler.png> Remote Signaling System</h4>"
|
||||
|
||||
menu += {"
|
||||
@@ -280,14 +282,14 @@
|
||||
Frequency:
|
||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=-10'>-</a>
|
||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=-2'>-</a>
|
||||
[format_frequency(radio:frequency)]
|
||||
[format_frequency(S.frequency)]
|
||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=2'>+</a>
|
||||
<a href='byond://?src=\ref[src];choice=Signal Frequency;sfreq=10'>+</a><br>
|
||||
<br>
|
||||
Code:
|
||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=-5'>-</a>
|
||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=-1'>-</a>
|
||||
[radio:code]
|
||||
[S.code]
|
||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=1'>+</a>
|
||||
<a href='byond://?src=\ref[src];choice=Signal Code;scode=5'>+</a><br>"}
|
||||
if (41) //crew manifest
|
||||
@@ -611,7 +613,7 @@ Code:
|
||||
active1 = find_record("id", href_list["target"], data_core.general)
|
||||
if(active1)
|
||||
active2 = find_record("id", href_list["target"], data_core.medical)
|
||||
loc:mode = 441
|
||||
pda.mode = 441
|
||||
mode = 441
|
||||
if(!active2)
|
||||
active1 = null
|
||||
@@ -620,25 +622,28 @@ Code:
|
||||
active1 = find_record("id", href_list["target"], data_core.general)
|
||||
if(active1)
|
||||
active3 = find_record("id", href_list["target"], data_core.security)
|
||||
loc:mode = 451
|
||||
pda.mode = 451
|
||||
mode = 451
|
||||
if(!active3)
|
||||
active1 = null
|
||||
|
||||
if("Send Signal")
|
||||
spawn( 0 )
|
||||
radio:send_signal("ACTIVATE")
|
||||
var/obj/item/radio/integrated/signal/S = radio
|
||||
S.send_signal("ACTIVATE")
|
||||
return
|
||||
|
||||
if("Signal Frequency")
|
||||
var/new_frequency = sanitize_frequency(radio:frequency + text2num(href_list["sfreq"]))
|
||||
radio:set_frequency(new_frequency)
|
||||
var/obj/item/radio/integrated/signal/S = radio
|
||||
var/new_frequency = sanitize_frequency(S.frequency + text2num(href_list["sfreq"]))
|
||||
S.set_frequency(new_frequency)
|
||||
|
||||
if("Signal Code")
|
||||
radio:code += text2num(href_list["scode"])
|
||||
radio:code = round(radio:code)
|
||||
radio:code = min(100, radio:code)
|
||||
radio:code = max(1, radio:code)
|
||||
var/obj/item/radio/integrated/signal/S = radio
|
||||
S.code += text2num(href_list["scode"])
|
||||
S.code = round(S.code)
|
||||
S.code = min(100, S.code)
|
||||
S.code = max(1, S.code)
|
||||
|
||||
if("Status")
|
||||
switch(href_list["statdisp"])
|
||||
@@ -657,7 +662,7 @@ Code:
|
||||
if("Power Select")
|
||||
var/pnum = text2num(href_list["target"])
|
||||
powmonitor = powermonitors[pnum]
|
||||
loc:mode = 433
|
||||
pda.mode = 433
|
||||
mode = 433
|
||||
|
||||
if("Supply Orders")
|
||||
@@ -762,4 +767,4 @@ Code:
|
||||
menu += "No bots found.<BR>"
|
||||
return
|
||||
|
||||
return menu
|
||||
return menu
|
||||
|
||||
@@ -11,11 +11,12 @@
|
||||
origin_tech = "syndicate=4;magnets=4"
|
||||
var/can_use = 1
|
||||
var/obj/effect/dummy/chameleon/active_dummy = null
|
||||
var/saved_item = /obj/item/weapon/cigbutt
|
||||
var/saved_icon = 'icons/obj/clothing/masks.dmi'
|
||||
var/saved_icon_state = "cigbutt"
|
||||
var/saved_overlays = null
|
||||
var/saved_underlays = null
|
||||
var/saved_appearance = null
|
||||
|
||||
/obj/item/device/chameleon/New()
|
||||
..()
|
||||
var/obj/item/weapon/cigbutt/butt = /obj/item/weapon/cigbutt
|
||||
saved_appearance = initial(butt.appearance)
|
||||
|
||||
/obj/item/device/chameleon/dropped()
|
||||
disrupt()
|
||||
@@ -32,14 +33,13 @@
|
||||
if(istype(target,/obj/item) && !istype(target, /obj/item/weapon/disk/nuclear))
|
||||
playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
|
||||
user << "<span class='notice'>Scanned [target].</span>"
|
||||
saved_item = target.type
|
||||
saved_icon = target.icon
|
||||
saved_icon_state = target.icon_state
|
||||
saved_overlays = target.overlays
|
||||
saved_underlays = target.underlays
|
||||
var/obj/temp = new/obj()
|
||||
temp.appearance = target.appearance
|
||||
temp.layer = initial(target.layer) // scanning things in your inventory
|
||||
saved_appearance = temp.appearance
|
||||
|
||||
/obj/item/device/chameleon/proc/toggle()
|
||||
if(!can_use || !saved_item) return
|
||||
if(!can_use || !saved_appearance) return
|
||||
if(active_dummy)
|
||||
eject_all()
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
|
||||
@@ -53,11 +53,8 @@
|
||||
qdel(T)
|
||||
else
|
||||
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
|
||||
var/obj/O = new saved_item(src)
|
||||
if(!O) return
|
||||
var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc)
|
||||
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, saved_underlays, src)
|
||||
qdel(O)
|
||||
C.activate(usr, saved_appearance, src)
|
||||
usr << "<span class='notice'>You activate \the [src].</span>"
|
||||
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
|
||||
T.icon = 'icons/effects/effects.dmi'
|
||||
@@ -89,18 +86,11 @@
|
||||
name = ""
|
||||
desc = ""
|
||||
density = 0
|
||||
anchored = 1
|
||||
var/can_move = 1
|
||||
var/obj/item/device/chameleon/master = null
|
||||
|
||||
/obj/effect/dummy/chameleon/proc/activate(obj/O, mob/M, new_icon, new_iconstate, new_overlays, new_underlays, obj/item/device/chameleon/C)
|
||||
name = O.name
|
||||
desc = O.desc
|
||||
icon = new_icon
|
||||
icon_state = new_iconstate
|
||||
overlays = new_overlays
|
||||
underlays = new_underlays
|
||||
dir = O.dir
|
||||
/obj/effect/dummy/chameleon/proc/activate(mob/M, saved_appearance, obj/item/device/chameleon/C)
|
||||
appearance = saved_appearance
|
||||
M.loc = src
|
||||
master = C
|
||||
master.active_dummy = src
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
|
||||
/obj/item/device/radio/intercom/attack_ai(mob/user)
|
||||
src.add_fingerprint(user)
|
||||
spawn (0)
|
||||
attack_self(user)
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/radio/intercom/attack_paw(mob/user)
|
||||
return src.attack_hand(user)
|
||||
@@ -29,8 +28,7 @@
|
||||
|
||||
/obj/item/device/radio/intercom/attack_hand(mob/user)
|
||||
src.add_fingerprint(user)
|
||||
spawn (0)
|
||||
attack_self(user)
|
||||
attack_self(user)
|
||||
|
||||
/obj/item/device/radio/intercom/receive_range(freq, level)
|
||||
if (!on)
|
||||
|
||||
@@ -543,10 +543,10 @@
|
||||
return
|
||||
b_stat = !( b_stat )
|
||||
if(!istype(src, /obj/item/device/radio/beacon))
|
||||
if (b_stat)
|
||||
user.show_message("<span class='notice'>The radio can now be attached and modified!</span>")
|
||||
if(b_stat)
|
||||
user << "<span class='notice'>The radio can now be attached and modified!</span>"
|
||||
else
|
||||
user.show_message("<span class='notice'>The radio can no longer be modified or attached!</span>")
|
||||
user << "<span class='notice'>The radio can no longer be modified or attached!</span>"
|
||||
updateDialog()
|
||||
//Foreach goto(83)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -114,7 +114,8 @@ MASS SPECTROMETER
|
||||
|
||||
// Used by the PDA medical scanner too
|
||||
/proc/healthscan(mob/living/user, mob/living/M, mode = 1)
|
||||
|
||||
if(user.stat || user.eye_blind)
|
||||
return
|
||||
//Damage specifics
|
||||
var/oxy_loss = M.getOxyLoss()
|
||||
var/tox_loss = M.getToxLoss()
|
||||
@@ -199,8 +200,8 @@ MASS SPECTROMETER
|
||||
if(CI.status == ORGAN_ROBOTIC)
|
||||
implant_detect += "[H.name] is modified with a [CI.name].<br>"
|
||||
if(implant_detect)
|
||||
user.show_message("<span class='notice'>Detected cybernetic modifications:</span>")
|
||||
user.show_message("<span class='notice'>[implant_detect]</span>")
|
||||
user << "<span class='notice'>Detected cybernetic modifications:</span>"
|
||||
user << "<span class='notice'>[implant_detect]</span>"
|
||||
|
||||
/proc/chemscan(mob/living/user, mob/living/M)
|
||||
if(ishuman(M))
|
||||
@@ -250,11 +251,13 @@ MASS SPECTROMETER
|
||||
|
||||
/obj/item/device/analyzer/attack_self(mob/user)
|
||||
|
||||
if (user.stat)
|
||||
add_fingerprint(user)
|
||||
|
||||
if (user.stat || user.eye_blind)
|
||||
return
|
||||
|
||||
var/turf/location = user.loc
|
||||
if (!( istype(location, /turf) ))
|
||||
if(!istype(location))
|
||||
return
|
||||
|
||||
var/datum/gas_mixture/environment = location.return_air()
|
||||
@@ -262,43 +265,46 @@ MASS SPECTROMETER
|
||||
var/pressure = environment.return_pressure()
|
||||
var/total_moles = environment.total_moles()
|
||||
|
||||
user.show_message("<span class='info'><B>Results:</B></span>", 1)
|
||||
user << "<span class='info'><B>Results:</B></span>"
|
||||
if(abs(pressure - ONE_ATMOSPHERE) < 10)
|
||||
user.show_message("<span class='info'>Pressure: [round(pressure,0.1)] kPa</span>", 1)
|
||||
user << "<span class='info'>Pressure: [round(pressure,0.1)] kPa</span>"
|
||||
else
|
||||
user.show_message("<span class='alert'>Pressure: [round(pressure,0.1)] kPa</span>", 1)
|
||||
user << "<span class='alert'>Pressure: [round(pressure,0.1)] kPa</span>"
|
||||
if(total_moles)
|
||||
var/o2_concentration = environment.oxygen/total_moles
|
||||
var/n2_concentration = environment.nitrogen/total_moles
|
||||
var/co2_concentration = environment.carbon_dioxide/total_moles
|
||||
var/plasma_concentration = environment.toxins/total_moles
|
||||
var/list/env_gases = environment.gases
|
||||
|
||||
environment.assert_gases(arglist(hardcoded_gases))
|
||||
var/o2_concentration = env_gases["o2"][MOLES]/total_moles
|
||||
var/n2_concentration = env_gases["n2"][MOLES]/total_moles
|
||||
var/co2_concentration = env_gases["co2"][MOLES]/total_moles
|
||||
var/plasma_concentration = env_gases["plasma"][MOLES]/total_moles
|
||||
environment.garbage_collect()
|
||||
|
||||
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
|
||||
if(abs(n2_concentration - N2STANDARD) < 20)
|
||||
user.show_message("<span class='info'>Nitrogen: [round(n2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='info'>Nitrogen: [round(n2_concentration*100)] %</span>"
|
||||
else
|
||||
user.show_message("<span class='alert'>Nitrogen: [round(n2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='alert'>Nitrogen: [round(n2_concentration*100)] %</span>"
|
||||
|
||||
if(abs(o2_concentration - O2STANDARD) < 2)
|
||||
user.show_message("<span class='info'>Oxygen: [round(o2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='info'>Oxygen: [round(o2_concentration*100)] %</span>"
|
||||
else
|
||||
user.show_message("<span class='alert'>Oxygen: [round(o2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='alert'>Oxygen: [round(o2_concentration*100)] %</span>"
|
||||
|
||||
if(co2_concentration > 0.01)
|
||||
user.show_message("<span class='alert'>CO2: [round(co2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='alert'>CO2: [round(co2_concentration*100)] %</span>"
|
||||
else
|
||||
user.show_message("<span class='info'>CO2: [round(co2_concentration*100)] %</span>", 1)
|
||||
user << "<span class='info'>CO2: [round(co2_concentration*100)] %</span>"
|
||||
|
||||
if(plasma_concentration > 0.01)
|
||||
user.show_message("<span class='info'>Plasma: [round(plasma_concentration*100)] %</span>", 1)
|
||||
user << "<span class='info'>Plasma: [round(plasma_concentration*100)] %</span>"
|
||||
|
||||
if(unknown_concentration > 0.01)
|
||||
user.show_message("<span class='alert'>Unknown: [round(unknown_concentration*100)] %</span>", 1)
|
||||
for(var/id in env_gases)
|
||||
if(id in hardcoded_gases)
|
||||
continue
|
||||
var/gas_concentration = env_gases[id][MOLES]/total_moles
|
||||
user << "<span class='alert'>[env_gases[id][GAS_NAME]]: [round(gas_concentration*100)] %</span>"
|
||||
user << "<span class='info'>Temperature: [round(environment.temperature-T0C)] °C</span>"
|
||||
|
||||
user.show_message("<span class='info'>Temperature: [round(environment.temperature-T0C)] °C</span>", 1)
|
||||
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/device/mass_spectrometer
|
||||
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
|
||||
@@ -327,7 +333,7 @@ MASS SPECTROMETER
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/device/mass_spectrometer/attack_self(mob/user)
|
||||
if (user.stat)
|
||||
if (user.stat || user.eye_blind)
|
||||
return
|
||||
if (crit_fail)
|
||||
user << "<span class='warning'>This device has critically failed and is no longer functional!</span>"
|
||||
@@ -340,7 +346,7 @@ MASS SPECTROMETER
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
if(R.id != "blood")
|
||||
reagents.clear_reagents()
|
||||
user.show_message("<span class='warning'>The sample was contaminated! Please insert another sample.</span>", 1)
|
||||
user << "<span class='warning'>The sample was contaminated! Please insert another sample.</span>"
|
||||
return
|
||||
else
|
||||
blood_traces = params2list(R.data["trace_chem"])
|
||||
@@ -367,7 +373,7 @@ MASS SPECTROMETER
|
||||
dat += "</i>"
|
||||
user << dat
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/device/mass_spectrometer/adv
|
||||
name = "advanced mass-spectrometer"
|
||||
@@ -389,32 +395,34 @@ MASS SPECTROMETER
|
||||
materials = list(MAT_METAL=30, MAT_GLASS=20)
|
||||
|
||||
/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user)
|
||||
if(user.stat || user.eye_blind)
|
||||
return
|
||||
if (!isslime(M))
|
||||
user.show_message("<span class='warning'>This device can only scan slimes!</span>", 1)
|
||||
user << "<span class='warning'>This device can only scan slimes!</span>"
|
||||
return
|
||||
var/mob/living/simple_animal/slime/T = M
|
||||
user.show_message("Slime scan results:", 1)
|
||||
user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby"), 1)
|
||||
user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition()), 1)
|
||||
user << "Slime scan results:"
|
||||
user << "[T.colour] [T.is_adult ? "adult" : "baby"] slime"
|
||||
user << "Nutrition: [T.nutrition]/[T.get_max_nutrition()]"
|
||||
if (T.nutrition < T.get_starve_nutrition())
|
||||
user.show_message("<span class='warning'>Warning: slime is starving!</span>", 1)
|
||||
user << "<span class='warning'>Warning: slime is starving!</span>"
|
||||
else if (T.nutrition < T.get_hunger_nutrition())
|
||||
user.show_message("<span class='warning'>Warning: slime is hungry</span>", 1)
|
||||
user.show_message("Electric change strength: [T.powerlevel]", 1)
|
||||
user.show_message("Health: [T.health]", 1)
|
||||
user << "<span class='warning'>Warning: slime is hungry</span>"
|
||||
user << "Electric change strength: [T.powerlevel]"
|
||||
user << "Health: [T.health]"
|
||||
if (T.slime_mutation[4] == T.colour)
|
||||
user.show_message("This slime does not evolve any further.", 1)
|
||||
user << "This slime does not evolve any further."
|
||||
else
|
||||
if (T.slime_mutation[3] == T.slime_mutation[4])
|
||||
if (T.slime_mutation[2] == T.slime_mutation[1])
|
||||
user.show_message("Possible mutation: [T.slime_mutation[3]]", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting", 1)
|
||||
user << "Possible mutation: [T.slime_mutation[3]]"
|
||||
user << "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting"
|
||||
else
|
||||
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance] % chance of mutation on splitting", 1)
|
||||
user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)"
|
||||
user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting"
|
||||
else
|
||||
user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]", 1)
|
||||
user.show_message("Genetic destability: [T.mutation_chance] % chance of mutation on splitting", 1)
|
||||
user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]"
|
||||
user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting"
|
||||
if (T.cores > 1)
|
||||
user.show_message("Anomalious slime core amount detected", 1)
|
||||
user.show_message("Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]", 1)
|
||||
user << "Anomalious slime core amount detected"
|
||||
user << "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]"
|
||||
|
||||
@@ -40,16 +40,15 @@ effective or pretty fucking useless.
|
||||
add_logs(user, null, "knocked down people in the area", src)
|
||||
|
||||
for(var/mob/living/carbon/human/M in ultra_range(10, user, 1))
|
||||
spawn()
|
||||
if(prob(50))
|
||||
if(prob(50))
|
||||
|
||||
M.Weaken(rand(10,20))
|
||||
if(prob(25))
|
||||
M.Stun(rand(5,10))
|
||||
M << "<span class='userdanger'>You feel a tremendous, paralyzing wave flood your mind.</span>"
|
||||
M.Weaken(rand(10,20))
|
||||
if(prob(25))
|
||||
M.Stun(rand(5,10))
|
||||
M << "<span class='userdanger'>You feel a tremendous, paralyzing wave flood your mind.</span>"
|
||||
|
||||
else
|
||||
M << "<span class='userdanger'>You feel a sudden, electric jolt travel through your head.</span>"
|
||||
else
|
||||
M << "<span class='userdanger'>You feel a sudden, electric jolt travel through your head.</span>"
|
||||
|
||||
playsound(src.loc, 'sound/misc/interference.ogg', 50, 1)
|
||||
user << "<span class='notice'>You trigger [src].</span>"
|
||||
|
||||
@@ -175,14 +175,15 @@ var/list/world_uplinks = list()
|
||||
return 0
|
||||
//Refund proc for the borg teleporter (later I'll make a general refund proc if there is demand for it)
|
||||
/obj/item/device/radio/uplink/attackby(obj/item/weapon/W, mob/user, params)
|
||||
if(istype(W, /obj/item/weapon/antag_spawner/nuke_ops))
|
||||
var/obj/item/weapon/antag_spawner/nuke_ops/S = W
|
||||
if(!S.used)
|
||||
hidden_uplink.uses += S.TC_cost
|
||||
qdel(S)
|
||||
user << "<span class='notice'>Teleporter refunded.</span>"
|
||||
else
|
||||
user << "<span class='warning'>This teleporter is already used!</span>"
|
||||
if(istype(W))
|
||||
for(var/path in subtypesof(/datum/uplink_item))
|
||||
var/datum/uplink_item/D = path
|
||||
if(initial(D.item) == W.type && initial(D.refundable))
|
||||
hidden_uplink.uses += (D.cost)
|
||||
hidden_uplink.used_TC -= initial(D.cost)
|
||||
user << "<span class='notice'>[W] refunded.</span>"
|
||||
qdel(W)
|
||||
return
|
||||
|
||||
// PRESET UPLINKS
|
||||
// A collection of preset uplinks.
|
||||
|
||||
@@ -17,11 +17,14 @@
|
||||
var/is_cyborg = 0 // It's 1 if module is used by a cyborg, and uses its storage
|
||||
var/datum/robot_energy_storage/source
|
||||
var/cost = 1 // How much energy from storage it costs
|
||||
var/merge_type = null // This path and its children should merge with this stack, defaults to src.type
|
||||
|
||||
/obj/item/stack/New(var/loc, var/amount=null)
|
||||
..()
|
||||
if (amount)
|
||||
src.amount = amount
|
||||
if(!merge_type)
|
||||
merge_type = src.type
|
||||
return
|
||||
|
||||
/obj/item/stack/Destroy()
|
||||
@@ -208,19 +211,19 @@
|
||||
S.add(transfer)
|
||||
|
||||
/obj/item/stack/Crossed(obj/o)
|
||||
if(istype(o, src.type) && !o.throwing)
|
||||
if(istype(o, merge_type) && !o.throwing)
|
||||
merge(o)
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/hitby(atom/movable/AM, skip, hitpush)
|
||||
if(istype(AM, src.type))
|
||||
if(istype(AM, merge_type))
|
||||
merge(AM)
|
||||
return ..()
|
||||
|
||||
/obj/item/stack/attack_hand(mob/user)
|
||||
if (user.get_inactive_hand() == src)
|
||||
if(zero_amount()) return
|
||||
var/obj/item/stack/F = new src.type( user, 1)
|
||||
var/obj/item/stack/F = new src.type(user, 1)
|
||||
. = F
|
||||
F.copy_evidences(src)
|
||||
user.put_in_hands(F)
|
||||
@@ -234,7 +237,7 @@
|
||||
return
|
||||
|
||||
/obj/item/stack/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, src.type))
|
||||
if(istype(W, merge_type))
|
||||
var/obj/item/stack/S = W
|
||||
merge(S)
|
||||
user << "<span class='notice'>Your [S.name] stack now contains [S.get_amount()] [S.singular_name]\s.</span>"
|
||||
@@ -268,4 +271,4 @@
|
||||
src.max_res_amount = max_res_amount
|
||||
src.time = time
|
||||
src.one_per_turf = one_per_turf
|
||||
src.on_floor = on_floor
|
||||
src.on_floor = on_floor
|
||||
|
||||
@@ -422,7 +422,7 @@
|
||||
if(istype(target, /obj/effect/decal/cleanable))
|
||||
target = target.loc
|
||||
if(is_type_in_list(target,validSurfaces))
|
||||
|
||||
|
||||
var/temp = "rune"
|
||||
if(letters.Find(drawtype))
|
||||
temp = "letter"
|
||||
@@ -1106,13 +1106,13 @@
|
||||
if (cooldown < world.time)
|
||||
cooldown = world.time + 1800 //3 minutes
|
||||
user.visible_message("<span class='warning'>[user] presses a button on [src].</span>", "<span class='notice'>You activate [src], it plays a loud noise!</span>", "<span class='italics'>You hear the click of a button.</span>")
|
||||
spawn(5) //gia said so
|
||||
icon_state = "nuketoy"
|
||||
playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0)
|
||||
sleep(135)
|
||||
icon_state = "nuketoycool"
|
||||
sleep(cooldown - world.time)
|
||||
icon_state = "nuketoyidle"
|
||||
sleep(5)
|
||||
icon_state = "nuketoy"
|
||||
playsound(src, 'sound/machines/Alarm.ogg', 100, 0, surround = 0)
|
||||
sleep(135)
|
||||
icon_state = "nuketoycool"
|
||||
sleep(cooldown - world.time)
|
||||
icon_state = "nuketoyidle"
|
||||
else
|
||||
var/timeleft = (cooldown - world.time)
|
||||
user << "<span class='alert'>Nothing happens, and '</span>[round(timeleft/10)]<span class='alert'>' appears on a small display.</span>"
|
||||
|
||||
@@ -60,13 +60,6 @@ AI MODULES
|
||||
user << "Upload complete. [reciever]'s laws have been modified."
|
||||
reciever.show_laws()
|
||||
reciever.law_change_counter++
|
||||
if(isAI(reciever))
|
||||
var/mob/living/silicon/ai/A = reciever
|
||||
for(var/mob/living/silicon/robot/R in A.connected_robots)
|
||||
if(R.lawupdate)
|
||||
R << "From now on, these are your laws:"
|
||||
R.show_laws()
|
||||
R.law_change_counter++
|
||||
|
||||
var/time = time2text(world.realtime,"hh:mm:ss")
|
||||
lawchanges.Add("[time] <B>:</B> [user.name]([user.key]) used [src.name] on [reciever.name]([reciever.key]).[law2log ? " The law specified [law2log]" : ""]")
|
||||
|
||||
@@ -239,8 +239,9 @@
|
||||
|
||||
/obj/effect/chrono_field/return_air() //we always have nominal air and temperature
|
||||
var/datum/gas_mixture/GM = new
|
||||
GM.oxygen = MOLES_O2STANDARD
|
||||
GM.nitrogen = MOLES_N2STANDARD
|
||||
GM.assert_gases("o2","n2")
|
||||
GM.gases["o2"][MOLES] = MOLES_O2STANDARD
|
||||
GM.gases["n2"][MOLES] = MOLES_N2STANDARD
|
||||
GM.temperature = T20C
|
||||
return GM
|
||||
|
||||
|
||||
@@ -450,7 +450,8 @@
|
||||
busy = 0
|
||||
update_icon()
|
||||
return
|
||||
H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src)
|
||||
if(!H.suiciding && !(H.disabilities & NOCLONE))
|
||||
H.notify_ghost_cloning("Your heart is being defibrillated. Re-enter your corpse if you want to be revived!", source = src)
|
||||
|
||||
user.visible_message("<span class='warning'>[user] begins to place [src] on [M.name]'s chest.</span>", "<span class='warning'>You begin to place [src] on [M.name]'s chest...</span>")
|
||||
busy = 1
|
||||
|
||||
@@ -12,13 +12,24 @@
|
||||
var/list/fields
|
||||
var/list/add_mutations = list()
|
||||
var/list/remove_mutations = list()
|
||||
|
||||
var/list/add_mutations_static = list()
|
||||
var/list/remove_mutations_static = list()
|
||||
|
||||
var/used = 0
|
||||
|
||||
/obj/item/weapon/dnainjector/attack_paw(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/prepare()
|
||||
for(var/mut_key in add_mutations_static)
|
||||
add_mutations.Add(mutations_list[mut_key])
|
||||
for(var/mut_key in remove_mutations_static)
|
||||
remove_mutations.Add(mutations_list[mut_key])
|
||||
|
||||
/obj/item/weapon/dnainjector/proc/inject(mob/living/carbon/M, mob/user)
|
||||
prepare()
|
||||
|
||||
if(M.has_dna() && !(M.disabilities & NOCLONE))
|
||||
M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
|
||||
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
|
||||
@@ -76,170 +87,123 @@
|
||||
/obj/item/weapon/dnainjector/antihulk
|
||||
name = "\improper DNA injector (Anti-Hulk)"
|
||||
desc = "Cures green skin."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[HULK])
|
||||
remove_mutations_static = list(HULK)
|
||||
|
||||
/obj/item/weapon/dnainjector/hulkmut
|
||||
name = "\improper DNA injector (Hulk)"
|
||||
desc = "This will make you big and strong, but give you a bad skin condition."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[HULK])
|
||||
add_mutations_static = list(HULK)
|
||||
|
||||
/obj/item/weapon/dnainjector/xraymut
|
||||
name = "\improper DNA injector (Xray)"
|
||||
desc = "Finally you can see what the Captain does."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[XRAY])
|
||||
add_mutations_static = list(XRAY)
|
||||
|
||||
/obj/item/weapon/dnainjector/antixray
|
||||
name = "\improper DNA injector (Anti-Xray)"
|
||||
desc = "It will make you see harder."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[XRAY])
|
||||
remove_mutations_static = list(XRAY)
|
||||
|
||||
/////////////////////////////////////
|
||||
/obj/item/weapon/dnainjector/antiglasses
|
||||
name = "\improper DNA injector (Anti-Glasses)"
|
||||
desc = "Toss away those glasses!"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[BADSIGHT])
|
||||
remove_mutations_static = list(BADSIGHT)
|
||||
|
||||
/obj/item/weapon/dnainjector/glassesmut
|
||||
name = "\improper DNA injector (Glasses)"
|
||||
desc = "Will make you need dorkish glasses."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[BADSIGHT])
|
||||
add_mutations_static = list(BADSIGHT)
|
||||
|
||||
/obj/item/weapon/dnainjector/epimut
|
||||
name = "\improper DNA injector (Epi.)"
|
||||
desc = "Shake shake shake the room!"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[EPILEPSY])
|
||||
add_mutations_static = list(EPILEPSY)
|
||||
|
||||
/obj/item/weapon/dnainjector/antiepi
|
||||
name = "\improper DNA injector (Anti-Epi.)"
|
||||
desc = "Will fix you up from shaking the room."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[EPILEPSY])
|
||||
remove_mutations_static = list(EPILEPSY)
|
||||
////////////////////////////////////
|
||||
/obj/item/weapon/dnainjector/anticough
|
||||
name = "\improper DNA injector (Anti-Cough)"
|
||||
desc = "Will stop that aweful noise."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[COUGH])
|
||||
remove_mutations_static = list(COUGH)
|
||||
|
||||
/obj/item/weapon/dnainjector/coughmut
|
||||
name = "\improper DNA injector (Cough)"
|
||||
desc = "Will bring forth a sound of horror from your throat."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[COUGH])
|
||||
add_mutations_static = list(COUGH)
|
||||
|
||||
/obj/item/weapon/dnainjector/antidwarf
|
||||
name = "\improper DNA injector (Anti-Dwarfism)"
|
||||
desc = "Helps you grow big and strong."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[DWARFISM])
|
||||
remove_mutations_static = list(DWARFISM)
|
||||
|
||||
/obj/item/weapon/dnainjector/dwarf
|
||||
name = "\improper DNA injector (Dwarfism)"
|
||||
desc = "Its a small world after all."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[DWARFISM])
|
||||
add_mutations_static = list(DWARFISM)
|
||||
|
||||
/obj/item/weapon/dnainjector/clumsymut
|
||||
name = "\improper DNA injector (Clumsy)"
|
||||
desc = "Makes clown minions."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[CLOWNMUT])
|
||||
add_mutations_static = list(CLOWNMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/anticlumsy
|
||||
name = "\improper DNA injector (Anti-Clumy)"
|
||||
desc = "Apply this for Security Clown."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[CLOWNMUT])
|
||||
remove_mutations_static = list(CLOWNMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/antitour
|
||||
name = "\improper DNA injector (Anti-Tour.)"
|
||||
desc = "Will cure tourrets."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[TOURETTES])
|
||||
remove_mutations_static = list(TOURETTES)
|
||||
|
||||
/obj/item/weapon/dnainjector/tourmut
|
||||
name = "\improper DNA injector (Tour.)"
|
||||
desc = "Gives you a nasty case off tourrets."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[TOURETTES])
|
||||
add_mutations_static = list(TOURETTES)
|
||||
|
||||
/obj/item/weapon/dnainjector/stuttmut
|
||||
name = "\improper DNA injector (Stutt.)"
|
||||
desc = "Makes you s-s-stuttterrr"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[NERVOUS])
|
||||
add_mutations_static = list(NERVOUS)
|
||||
|
||||
/obj/item/weapon/dnainjector/antistutt
|
||||
name = "\improper DNA injector (Anti-Stutt.)"
|
||||
desc = "Fixes that speaking impairment."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[NERVOUS])
|
||||
remove_mutations_static = list(NERVOUS)
|
||||
|
||||
/obj/item/weapon/dnainjector/antifire
|
||||
name = "\improper DNA injector (Anti-Fire)"
|
||||
desc = "Cures fire."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[COLDRES])
|
||||
remove_mutations_static = list(COLDRES)
|
||||
|
||||
/obj/item/weapon/dnainjector/firemut
|
||||
name = "\improper DNA injector (Fire)"
|
||||
desc = "Gives you fire."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[COLDRES])
|
||||
add_mutations_static = list(COLDRES)
|
||||
|
||||
/obj/item/weapon/dnainjector/blindmut
|
||||
name = "\improper DNA injector (Blind)"
|
||||
desc = "Makes you not see anything."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[BLINDMUT])
|
||||
add_mutations_static = list(BLINDMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/antiblind
|
||||
name = "\improper DNA injector (Anti-Blind)"
|
||||
desc = "ITS A MIRACLE!!!"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[BLINDMUT])
|
||||
remove_mutations_static = list(BLINDMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/antitele
|
||||
name = "\improper DNA injector (Anti-Tele.)"
|
||||
desc = "Will make you not able to control your mind."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[TK])
|
||||
remove_mutations_static = list(TK)
|
||||
|
||||
/obj/item/weapon/dnainjector/telemut
|
||||
name = "\improper DNA injector (Tele.)"
|
||||
desc = "Super brain man!"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[TK])
|
||||
add_mutations_static = list(TK)
|
||||
|
||||
/obj/item/weapon/dnainjector/telemut/darkbundle
|
||||
name = "\improper DNA injector"
|
||||
@@ -248,143 +212,101 @@
|
||||
/obj/item/weapon/dnainjector/deafmut
|
||||
name = "\improper DNA injector (Deaf)"
|
||||
desc = "Sorry, what did you say?"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[DEAFMUT])
|
||||
add_mutations_static = list(DEAFMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/antideaf
|
||||
name = "\improper DNA injector (Anti-Deaf)"
|
||||
desc = "Will make you hear once more."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[DEAFMUT])
|
||||
remove_mutations_static = list(DEAFMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/h2m
|
||||
name = "\improper DNA injector (Human > Monkey)"
|
||||
desc = "Will make you a flea bag."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[RACEMUT])
|
||||
add_mutations_static = list(RACEMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/m2h
|
||||
name = "\improper DNA injector (Monkey > Human)"
|
||||
desc = "Will make you...less hairy."
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[RACEMUT])
|
||||
remove_mutations_static = list(RACEMUT)
|
||||
|
||||
/obj/item/weapon/dnainjector/antichameleon
|
||||
name = "\improper DNA injector (Anti-Chameleon)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[CHAMELEON])
|
||||
remove_mutations_static = list(CHAMELEON)
|
||||
|
||||
/obj/item/weapon/dnainjector/chameleonmut
|
||||
name = "\improper DNA injector (Chameleon)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[CHAMELEON])
|
||||
add_mutations_static = list(CHAMELEON)
|
||||
|
||||
/obj/item/weapon/dnainjector/antiwacky
|
||||
name = "\improper DNA injector (Anti-Wacky)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[WACKY])
|
||||
remove_mutations_static = list(WACKY)
|
||||
|
||||
/obj/item/weapon/dnainjector/wackymut
|
||||
name = "\improper DNA injector (Wacky)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[WACKY])
|
||||
add_mutations_static = list(WACKY)
|
||||
|
||||
/obj/item/weapon/dnainjector/antimute
|
||||
name = "\improper DNA injector (Anti-Mute)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[MUT_MUTE])
|
||||
remove_mutations_static = list(MUT_MUTE)
|
||||
|
||||
/obj/item/weapon/dnainjector/mutemut
|
||||
name = "\improper DNA injector (Mute)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[MUT_MUTE])
|
||||
add_mutations_static = list(MUT_MUTE)
|
||||
|
||||
/obj/item/weapon/dnainjector/antismile
|
||||
name = "\improper DNA injector (Anti-Smile)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[SMILE])
|
||||
remove_mutations_static = list(SMILE)
|
||||
|
||||
/obj/item/weapon/dnainjector/smilemut
|
||||
name = "\improper DNA injector (Smile)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[SMILE])
|
||||
add_mutations_static = list(SMILE)
|
||||
|
||||
/obj/item/weapon/dnainjector/unintelligablemut
|
||||
name = "\improper DNA injector (Unintelligable)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[UNINTELLIGABLE])
|
||||
add_mutations_static = list(UNINTELLIGABLE)
|
||||
|
||||
/obj/item/weapon/dnainjector/antiunintelligable
|
||||
name = "\improper DNA injector (Anti-Unintelligable)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[UNINTELLIGABLE])
|
||||
remove_mutations_static = list(UNINTELLIGABLE)
|
||||
|
||||
/obj/item/weapon/dnainjector/swedishmut
|
||||
name = "\improper DNA injector (Swedish)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[SWEDISH])
|
||||
add_mutations_static = list(SWEDISH)
|
||||
|
||||
/obj/item/weapon/dnainjector/antiswedish
|
||||
name = "\improper DNA injector (Anti-Swedish)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[SWEDISH])
|
||||
remove_mutations_static = list(SWEDISH)
|
||||
|
||||
/obj/item/weapon/dnainjector/chavmut
|
||||
name = "\improper DNA injector (Chav)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[CHAV])
|
||||
add_mutations_static = list(CHAV)
|
||||
|
||||
/obj/item/weapon/dnainjector/antichav
|
||||
name = "\improper DNA injector (Anti-Chav)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[CHAV])
|
||||
remove_mutations_static = list(CHAV)
|
||||
|
||||
/obj/item/weapon/dnainjector/elvismut
|
||||
name = "\improper DNA injector (Elvis)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[ELVIS])
|
||||
add_mutations_static = list(ELVIS)
|
||||
|
||||
/obj/item/weapon/dnainjector/antielvis
|
||||
name = "\improper DNA injector (Anti-Elvis)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[ELVIS])
|
||||
remove_mutations_static = list(ELVIS)
|
||||
|
||||
/obj/item/weapon/dnainjector/lasereyesmut
|
||||
name = "\improper DNA injector (Laser Eyes)"
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[LASEREYES])
|
||||
add_mutations_static = list(LASEREYES)
|
||||
|
||||
/obj/item/weapon/dnainjector/antilasereyes
|
||||
name = "\improper DNA injector (Anti-Laser Eyes)"
|
||||
New()
|
||||
..()
|
||||
remove_mutations.Add(mutations_list[LASEREYES])
|
||||
remove_mutations_static = list(LASEREYES)
|
||||
|
||||
/obj/item/weapon/dnainjector/timed
|
||||
var/duration = 600
|
||||
|
||||
/obj/item/weapon/dnainjector/timed/inject(mob/living/carbon/M, mob/user)
|
||||
prepare()
|
||||
|
||||
if(M.has_dna() && !(M.disabilities & NOCLONE))
|
||||
if(M.stat == DEAD) //prevents dead people from having their DNA changed
|
||||
user << "<span class='notice'>You can't modify [M]'s DNA while \he's dead.</span>"
|
||||
@@ -436,13 +358,9 @@
|
||||
/obj/item/weapon/dnainjector/timed/hulk
|
||||
name = "\improper DNA injector (Hulk)"
|
||||
desc = "This will make you big and strong, but give you a bad skin condition."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[HULK])
|
||||
add_mutations_static = list(HULK)
|
||||
|
||||
/obj/item/weapon/dnainjector/timed/h2m
|
||||
name = "\improper DNA injector (Human > Monkey)"
|
||||
desc = "Will make you a flea bag."
|
||||
New()
|
||||
..()
|
||||
add_mutations.Add(mutations_list[RACEMUT])
|
||||
add_mutations_static = list(RACEMUT)
|
||||
|
||||
@@ -198,7 +198,8 @@
|
||||
//TODO: DEFERRED Consider checking to make sure tank pressure is high enough before doing this...
|
||||
//Transfer 5% of current tank air contents to turf
|
||||
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(release_amount)
|
||||
air_transfer.toxins = air_transfer.toxins * 5
|
||||
if(air_transfer.gases["plasma"])
|
||||
air_transfer.gases["plasma"][MOLES] *= 5
|
||||
target.assume_air(air_transfer)
|
||||
//Burn it based on transfered gas
|
||||
target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500)
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/prime() //Blowing that can up
|
||||
update_mob()
|
||||
explosion(src.loc,-1,-1,-1, flame_range = range) // no explosive damage, only a large fireball.
|
||||
explosion(src.loc,-1,-1,2, flame_range = 4) // small explosion, plus a very large fireball.
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/grenade/iedcasing/examine(mob/user)
|
||||
|
||||
@@ -23,8 +23,7 @@
|
||||
user << "<span class='notice'>You'll need to get closer to see any more.</span>"
|
||||
return
|
||||
for(var/obj/item/I in loadedItems)
|
||||
spawn(0)
|
||||
user << "<span class='info'>\icon [I] It has \the [I] loaded.</span>"
|
||||
user << "<span class='info'>\icon [I] It has \the [I] loaded.</span>"
|
||||
if(tank)
|
||||
user << "<span class='notice'>\icon [tank] It has \the [tank] mounted onto it.</span>"
|
||||
|
||||
|
||||
@@ -93,13 +93,12 @@
|
||||
"<span class='userdanger'>You feel a powerful shock course through your body sending you flying!</span>", \
|
||||
"<span class='italics'>You hear a heavy electrical crack!</span>")
|
||||
var/atom/throw_target = get_edge_target_turf(target, get_dir(src, get_step_away(target, src)))
|
||||
target.throw_at(throw_target, 200, 4)
|
||||
target.throw_at_fast(throw_target, 200, 4)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/twohanded/mjollnir/attack(mob/M, mob/user)
|
||||
..()
|
||||
spawn(0)
|
||||
if(wielded)
|
||||
//if(charged == 5)
|
||||
//charged = 0
|
||||
|
||||
@@ -328,12 +328,8 @@
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/loaded/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/ammo_box/magazine/m12g(src)
|
||||
new /obj/item/ammo_box/magazine/m12g/buckshot(src)
|
||||
new /obj/item/ammo_box/magazine/m12g/stun(src)
|
||||
new /obj/item/ammo_box/magazine/m12g/dragon(src)
|
||||
@@ -398,15 +394,8 @@
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/smg/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
for(var/i in 1 to 9)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -416,10 +405,8 @@
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/ammo/fireteam/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/ammo_box/magazine/smgm45(src)
|
||||
new /obj/item/ammo_box/magazine/m556(src)
|
||||
new /obj/item/ammo_box/magazine/m556(src)
|
||||
new /obj/item/ammo_box/a40mm(src)
|
||||
@@ -439,7 +426,7 @@
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/m90glbundle
|
||||
desc = "A large dufflebag containing a M90gl, a magazine, and a stimpack."
|
||||
desc = "A large dufflebag containing an M90gl, a magazine, four additional grenades, and a pack of Syndicate cigarettes."
|
||||
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie/m90glbundle/New()
|
||||
..()
|
||||
|
||||
@@ -121,13 +121,8 @@
|
||||
|
||||
/obj/item/weapon/storage/belt/soulstone/full/New()
|
||||
..()
|
||||
new /obj/item/device/soulstone(src)
|
||||
new /obj/item/device/soulstone(src)
|
||||
new /obj/item/device/soulstone(src)
|
||||
new /obj/item/device/soulstone(src)
|
||||
new /obj/item/device/soulstone(src)
|
||||
new /obj/item/device/soulstone(src)
|
||||
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/device/soulstone(src)
|
||||
|
||||
/obj/item/weapon/storage/belt/champion
|
||||
name = "championship belt"
|
||||
|
||||
@@ -93,14 +93,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/gloves/New()
|
||||
..()
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/clothing/gloves/color/latex(src)
|
||||
|
||||
/obj/item/weapon/storage/box/masks
|
||||
name = "box of sterile masks"
|
||||
desc = "This box contains sterile medical masks."
|
||||
@@ -108,14 +103,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/masks/New()
|
||||
..()
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/clothing/mask/surgical(src)
|
||||
|
||||
/obj/item/weapon/storage/box/syringes
|
||||
name = "box of syringes"
|
||||
desc = "A box full of syringes."
|
||||
@@ -124,14 +114,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/syringes/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/syringe( src )
|
||||
|
||||
/obj/item/weapon/storage/box/medipens
|
||||
name = "box of medipens"
|
||||
desc = "A box full of epinephrine MediPens."
|
||||
@@ -139,14 +124,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/medipens/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen( src )
|
||||
|
||||
/obj/item/weapon/storage/box/medipens/utility
|
||||
name = "stimpack value kit"
|
||||
desc = "A box with several stimpack medipens for the economical miner."
|
||||
@@ -154,39 +134,29 @@
|
||||
|
||||
/obj/item/weapon/storage/box/medipens/utility/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src)
|
||||
|
||||
/obj/item/weapon/storage/box/beakers
|
||||
name = "box of beakers"
|
||||
icon_state = "beaker"
|
||||
|
||||
/obj/item/weapon/storage/box/beakers/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/glass/beaker( src )
|
||||
|
||||
/obj/item/weapon/storage/box/injectors
|
||||
name = "box of DNA injectors"
|
||||
desc = "This box contains injectors it seems."
|
||||
|
||||
/obj/item/weapon/storage/box/injectors/New()
|
||||
..()
|
||||
new /obj/item/weapon/dnainjector/h2m(src)
|
||||
new /obj/item/weapon/dnainjector/h2m(src)
|
||||
new /obj/item/weapon/dnainjector/h2m(src)
|
||||
new /obj/item/weapon/dnainjector/m2h(src)
|
||||
new /obj/item/weapon/dnainjector/m2h(src)
|
||||
new /obj/item/weapon/dnainjector/m2h(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/dnainjector/h2m(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/dnainjector/m2h(src)
|
||||
|
||||
/obj/item/weapon/storage/box/flashbangs
|
||||
name = "box of flashbangs (WARNING)"
|
||||
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
||||
@@ -194,14 +164,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/flashbangs/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/grenade/flashbang(src)
|
||||
|
||||
/obj/item/weapon/storage/box/flashes
|
||||
name = "box of flashbulbs"
|
||||
desc = "<B>WARNING: Flashes can cause serious eye damage, protective eyewear is required.</B>"
|
||||
@@ -209,13 +174,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/flashes/New()
|
||||
..()
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/device/assembly/flash/handheld(src)
|
||||
|
||||
/obj/item/weapon/storage/box/teargas
|
||||
name = "box of tear gas grenades (WARNING)"
|
||||
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness and skin irritation.</B>"
|
||||
@@ -223,14 +184,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/teargas/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/grenade/chem_grenade/teargas(src)
|
||||
|
||||
/obj/item/weapon/storage/box/emps
|
||||
name = "box of emp grenades"
|
||||
desc = "A box with 5 emp grenades."
|
||||
@@ -238,12 +194,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/emps/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/grenade/empgrenade(src)
|
||||
|
||||
/obj/item/weapon/storage/box/trackimp
|
||||
name = "boxed tracking implant kit"
|
||||
desc = "Box full of scum-bag tracking utensils."
|
||||
@@ -251,10 +204,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/trackimp/New()
|
||||
..()
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/weapon/implantcase/tracking(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
new /obj/item/weapon/implantpad(src)
|
||||
new /obj/item/weapon/locator(src)
|
||||
@@ -266,11 +217,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/chemimp/New()
|
||||
..()
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/implantcase/chem(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
new /obj/item/weapon/implantpad(src)
|
||||
|
||||
@@ -281,11 +229,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/exileimp/New()
|
||||
..()
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/implantcase/exile(src)
|
||||
new /obj/item/weapon/implanter(src)
|
||||
|
||||
/obj/item/weapon/storage/box/rxglasses
|
||||
@@ -295,39 +240,26 @@
|
||||
|
||||
/obj/item/weapon/storage/box/rxglasses/New()
|
||||
..()
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/clothing/glasses/regular(src)
|
||||
|
||||
/obj/item/weapon/storage/box/drinkingglasses
|
||||
name = "box of drinking glasses"
|
||||
desc = "It has a picture of drinking glasses on it."
|
||||
|
||||
/obj/item/weapon/storage/box/drinkingglasses/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/drinkingglass(src)
|
||||
|
||||
/obj/item/weapon/storage/box/condimentbottles
|
||||
name = "box of condiment bottles"
|
||||
desc = "It has a large ketchup smear on it."
|
||||
|
||||
/obj/item/weapon/storage/box/condimentbottles/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/weapon/reagent_containers/food/condiment(src)
|
||||
|
||||
/obj/item/weapon/storage/box/cups
|
||||
name = "box of paper cups"
|
||||
@@ -335,14 +267,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/cups/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/sillycup( src )
|
||||
|
||||
/obj/item/weapon/storage/box/donkpockets
|
||||
name = "box of donk-pockets"
|
||||
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
||||
@@ -350,12 +277,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/donkpockets/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||
|
||||
/obj/item/weapon/storage/box/monkeycubes
|
||||
name = "monkey cube box"
|
||||
@@ -378,9 +301,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/permits/New() //There's only a few, so blueprints are still useful beyond setting every room's name to PRIMARY FART STORAGE
|
||||
..()
|
||||
new /obj/item/areaeditor/permit(src)
|
||||
new /obj/item/areaeditor/permit(src)
|
||||
new /obj/item/areaeditor/permit(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/areaeditor/permit(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/ids
|
||||
@@ -390,14 +312,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/ids/New()
|
||||
..()
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/card/id(src)
|
||||
|
||||
/obj/item/weapon/storage/box/silver_ids
|
||||
name = "box of spare silver IDs"
|
||||
desc = "Shiny IDs for important people."
|
||||
@@ -405,13 +322,8 @@
|
||||
|
||||
/obj/item/weapon/storage/box/silver_ids/New()
|
||||
..()
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/card/id/silver(src)
|
||||
|
||||
/obj/item/weapon/storage/box/prisoner
|
||||
name = "box of prisoner IDs"
|
||||
@@ -436,12 +348,8 @@
|
||||
/obj/item/weapon/storage/box/seccarts/New()
|
||||
..()
|
||||
new /obj/item/weapon/cartridge/detective(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/weapon/cartridge/security(src)
|
||||
|
||||
/obj/item/weapon/storage/box/firingpins
|
||||
name = "box of standard firing pins"
|
||||
@@ -450,14 +358,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/firingpins/New()
|
||||
..()
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/device/firing_pin(src)
|
||||
|
||||
/obj/item/weapon/storage/box/handcuffs
|
||||
name = "box of spare handcuffs"
|
||||
desc = "A box full of handcuffs."
|
||||
@@ -465,14 +368,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/handcuffs/New()
|
||||
..()
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/restraints/handcuffs(src)
|
||||
|
||||
/obj/item/weapon/storage/box/zipties
|
||||
name = "box of spare zipties"
|
||||
desc = "A box full of zipties."
|
||||
@@ -480,14 +378,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/zipties/New()
|
||||
..()
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/restraints/handcuffs/cable/zipties(src)
|
||||
|
||||
/obj/item/weapon/storage/box/alienhandcuffs
|
||||
name = "box of spare handcuffs"
|
||||
desc = "A box full of handcuffs."
|
||||
@@ -495,14 +388,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/alienhandcuffs/New()
|
||||
..()
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/restraints/handcuffs/alien(src)
|
||||
|
||||
/obj/item/weapon/storage/box/fakesyndiesuit
|
||||
name = "boxed space suit and helmet"
|
||||
desc = "A sleek, sturdy box used to hold replica spacesuits."
|
||||
@@ -520,13 +408,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/mousetraps/New()
|
||||
..()
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
|
||||
for(var/i in 1 to 6)
|
||||
new /obj/item/device/assembly/mousetrap( src )
|
||||
|
||||
/obj/item/weapon/storage/box/pillbottles
|
||||
name = "box of pill bottles"
|
||||
desc = "It has pictures of pill bottles on its front."
|
||||
@@ -534,14 +418,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/pillbottles/New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/storage/pill_bottle( src )
|
||||
|
||||
/obj/item/weapon/storage/box/snappops
|
||||
name = "snap pop box"
|
||||
desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children."
|
||||
@@ -620,14 +499,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/deputy/New()
|
||||
..()
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/clothing/tie/armband/deputy(src)
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam
|
||||
name = "box of metal foam grenades"
|
||||
desc = "To be used to rapidly seal hull breaches"
|
||||
@@ -635,15 +509,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/metalfoam/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/grenade/chem_grenade/metalfoam(src)
|
||||
|
||||
/obj/item/weapon/storage/box/hug
|
||||
name = "box of hugs"
|
||||
desc = "A special box for sensitive people."
|
||||
@@ -676,14 +544,9 @@
|
||||
|
||||
/obj/item/weapon/storage/box/rubbershot/New()
|
||||
..()
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/ammo_casing/shotgun/rubbershot(src)
|
||||
|
||||
/obj/item/weapon/storage/box/lethalshot
|
||||
name = "box of lethal shotgun shots"
|
||||
desc = "A box full of lethal shots, designed for riot shotguns."
|
||||
@@ -698,3 +561,12 @@
|
||||
new /obj/item/ammo_casing/shotgun/buckshot(src)
|
||||
new /obj/item/ammo_casing/shotgun/buckshot(src)
|
||||
new /obj/item/ammo_casing/shotgun/buckshot(src)
|
||||
|
||||
/obj/item/weapon/storage/box/beanbag/New()
|
||||
..()
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
@@ -42,9 +42,8 @@
|
||||
..()
|
||||
if(empty) return
|
||||
icon_state = pick("ointment","firefirstaid")
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/oxandrolone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/oxandrolone(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
@@ -61,12 +60,10 @@
|
||||
..()
|
||||
if(empty) return
|
||||
icon_state = pick("antitoxin","antitoxfirstaid","antitoxfirstaid2","antitoxfirstaid3")
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/syringe/charcoal(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
return
|
||||
|
||||
@@ -79,10 +76,8 @@
|
||||
/obj/item/weapon/storage/firstaid/o2/New()
|
||||
..()
|
||||
if(empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/pill/salbutamol(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
@@ -97,10 +92,8 @@
|
||||
/obj/item/weapon/storage/firstaid/brute/New()
|
||||
..()
|
||||
if(empty) return
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/styptic(src)
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/stack/medical/gauze(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
@@ -168,79 +161,50 @@
|
||||
|
||||
/obj/item/weapon/storage/box/silver_sulf/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/pill/patch/silver_sulf(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/charcoal
|
||||
name = "bottle of charcoal pills"
|
||||
desc = "Contains pills used to counter toxins."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/charcoal/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/pill/charcoal(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/epinephrine
|
||||
name = "bottle of epinephrine pills"
|
||||
desc = "Contains pills used to stabilize patients."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/epinephrine/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/pill/epinephrine(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/mutadone
|
||||
name = "bottle of mutadone pills"
|
||||
desc = "Contains pills used to treat genetic abnormalities."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/mutadone/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/pill/mutadone(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/mannitol
|
||||
name = "bottle of mannitol pills"
|
||||
desc = "Contains pills used to treat brain damage."
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/mannitol/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/pill/mannitol(src)
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/stimulant
|
||||
name = "bottle of stimulant pills"
|
||||
desc = "Guaranteed to give you that extra burst of energy during a long shift!"
|
||||
|
||||
/obj/item/weapon/storage/pill_bottle/stimulant/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/pill/stimulant(src)
|
||||
|
||||
@@ -82,9 +82,8 @@
|
||||
|
||||
/obj/item/weapon/storage/lockbox/loyalty/New()
|
||||
..()
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/implantcase/loyalty(src)
|
||||
new /obj/item/weapon/implanter/loyalty(src)
|
||||
|
||||
|
||||
@@ -114,7 +113,6 @@
|
||||
..()
|
||||
new /obj/item/clothing/tie/medal/silver/valor(src)
|
||||
new /obj/item/clothing/tie/medal/bronze_heart(src)
|
||||
new /obj/item/clothing/tie/medal/conduct(src)
|
||||
new /obj/item/clothing/tie/medal/conduct(src)
|
||||
new /obj/item/clothing/tie/medal/conduct(src)
|
||||
new /obj/item/clothing/tie/medal/gold/captain(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/tie/medal/conduct(src)
|
||||
new /obj/item/clothing/tie/medal/gold/captain(src)
|
||||
|
||||
@@ -36,21 +36,21 @@
|
||||
if (istype(W, /obj/item/weapon/screwdriver))
|
||||
if (do_after(user, 20/W.toolspeed, target = src))
|
||||
src.open =! src.open
|
||||
user.show_message(text("<span class='notice'>You [] the service panel.</span>", (src.open ? "open" : "close")))
|
||||
user.show_message("<span class='notice'>You [open ? "open" : "close"] the service panel.</span>", 1)
|
||||
return
|
||||
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
|
||||
user.show_message(text("<span class='danger'>Now attempting to reset internal memory, please hold.</span>"), 1)
|
||||
user.show_message("<span class='danger'>Now attempting to reset internal memory, please hold.</span>", 1)
|
||||
src.l_hacking = 1
|
||||
if (do_after(usr, 100/W.toolspeed, target = src))
|
||||
if (prob(40))
|
||||
src.l_setshort = 1
|
||||
src.l_set = 0
|
||||
user.show_message(text("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>"), 1)
|
||||
user.show_message("<span class='danger'>Internal memory reset. Please give it a few seconds to reinitialize.</span>", 1)
|
||||
sleep(80)
|
||||
src.l_setshort = 0
|
||||
src.l_hacking = 0
|
||||
else
|
||||
user.show_message(text("<span class='danger'>Unable to reset internal memory.</span>"), 1)
|
||||
user.show_message("<span class='danger'>Unable to reset internal memory.</span>", 1)
|
||||
src.l_hacking = 0
|
||||
else src.l_hacking = 0
|
||||
return
|
||||
|
||||
@@ -158,16 +158,10 @@
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/bioterror/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
for(var/i in 1 to 7)
|
||||
new /obj/item/weapon/reagent_containers/syringe/bioterror(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_adrenal
|
||||
name = "boxed adrenal implant (with injector)"
|
||||
|
||||
@@ -178,7 +172,6 @@
|
||||
O.update_icon()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/imp_storage
|
||||
name = "boxed storage implant (with injector)"
|
||||
|
||||
@@ -187,7 +180,6 @@
|
||||
new /obj/item/weapon/implanter/storage(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/space
|
||||
name = "boxed space suit and helmet"
|
||||
can_hold = list(/obj/item/clothing/suit/space/syndicate, /obj/item/clothing/head/helmet/space/syndicate)
|
||||
@@ -199,7 +191,6 @@
|
||||
new /obj/item/clothing/head/helmet/space/syndicate/black/red(src)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/emp
|
||||
name = "boxed EMP kit"
|
||||
|
||||
@@ -241,30 +232,25 @@
|
||||
new /obj/item/nuke_core_container(src)
|
||||
new /obj/item/weapon/paper/nuke_instructions(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade
|
||||
name = "boxed virus grenade kit"
|
||||
name = "boxed virus grenade kit"
|
||||
|
||||
/obj/item/weapon/storage/box/virus_kit/tuberculosisgrenade/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/tuberculosis(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src)
|
||||
return
|
||||
/obj/item/weapon/storage/box/syndie_kit/tuberculosisgrenade/New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/tuberculosis(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/tuberculosiskit
|
||||
name = "boxed virus kit"
|
||||
|
||||
/obj/item/weapon/storage/box/virus_kit/tuberculosiskit/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosis(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src)
|
||||
return
|
||||
name = "boxed virus kit"
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/tuberculosiskit/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosis(src)
|
||||
new /obj/item/weapon/reagent_containers/hypospray/medipen/tuberculosiscure(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/tuberculosiscure(src)
|
||||
return
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
var/datum/gas_mixture/G = src.air_contents.remove(num)
|
||||
|
||||
var/allgases = G.carbon_dioxide + G.nitrogen + G.oxygen + G.toxins //fuck trace gases -Pete
|
||||
var/allgases = G.total_moles()
|
||||
if(allgases >= 0.005)
|
||||
return 1
|
||||
|
||||
@@ -73,7 +73,8 @@
|
||||
|
||||
/obj/item/weapon/tank/jetpack/void/New()
|
||||
..()
|
||||
air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("o2")
|
||||
air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
|
||||
/obj/item/weapon/tank/jetpack/oxygen
|
||||
@@ -84,7 +85,8 @@
|
||||
|
||||
/obj/item/weapon/tank/jetpack/oxygen/New()
|
||||
..()
|
||||
air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("o2")
|
||||
air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
/obj/item/weapon/tank/jetpack/oxygen/harness
|
||||
name = "jet harness (oxygen)"
|
||||
@@ -114,7 +116,8 @@
|
||||
..()
|
||||
ion_trail = new /datum/effect_system/trail_follow/ion()
|
||||
ion_trail.set_up(src)
|
||||
air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("co2")
|
||||
air_contents.gases["co2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
|
||||
/obj/item/weapon/tank/jetpack/suit
|
||||
|
||||
@@ -14,13 +14,14 @@
|
||||
name = "oxygen tank"
|
||||
desc = "A tank of oxygen."
|
||||
icon_state = "oxygen"
|
||||
distribute_pressure = 16
|
||||
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
|
||||
force = 10
|
||||
|
||||
|
||||
/obj/item/weapon/tank/internals/oxygen/New()
|
||||
..()
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("o2")
|
||||
air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
@@ -45,13 +46,9 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/anesthetic/New()
|
||||
..()
|
||||
|
||||
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
|
||||
var/datum/gas/sleeping_agent/trace_gas = new()
|
||||
trace_gas.moles = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
|
||||
src.air_contents.trace_gases += trace_gas
|
||||
air_contents.assert_gases("o2", "n2o")
|
||||
air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
air_contents.gases["n2o"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
return
|
||||
|
||||
/*
|
||||
@@ -66,9 +63,9 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/air/New()
|
||||
..()
|
||||
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
src.air_contents.nitrogen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
air_contents.assert_gases("o2","n2")
|
||||
air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
air_contents.gases["n2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
return
|
||||
|
||||
|
||||
@@ -86,8 +83,8 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/plasma/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("plasma")
|
||||
air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/internals/plasma/attackby(obj/item/weapon/W, mob/user, params)
|
||||
@@ -105,7 +102,8 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/plasma/full/New()
|
||||
..()
|
||||
src.air_contents.toxins = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("plasma")
|
||||
air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
@@ -120,14 +118,14 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/plasmaman/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("plasma")
|
||||
air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/internals/plasmaman/full/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("plasma")
|
||||
air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
@@ -139,8 +137,8 @@
|
||||
|
||||
/obj/item/weapon/tank/internals/plasmaman/belt/full/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("plasma")
|
||||
air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
@@ -156,13 +154,14 @@
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = 2
|
||||
force = 4
|
||||
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
|
||||
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
|
||||
volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011)
|
||||
|
||||
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/New()
|
||||
..()
|
||||
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.assert_gas("o2")
|
||||
air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/internals/emergency_oxygen/engi
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
#define TANK_MAX_RELEASE_PRESSURE (ONE_ATMOSPHERE*3)
|
||||
#define TANK_MIN_RELEASE_PRESSURE 0
|
||||
#define TANK_DEFAULT_RELEASE_PRESSURE (ONE_ATMOSPHERE*O2STANDARD)
|
||||
|
||||
/obj/item/weapon/tank
|
||||
name = "tank"
|
||||
icon = 'icons/obj/tank.dmi'
|
||||
@@ -119,10 +115,11 @@
|
||||
add_fingerprint(user)
|
||||
ui_interact(user)
|
||||
|
||||
/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", var/datum/tgui/ui = null, force_open = 0)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open = force_open)
|
||||
/obj/item/weapon/tank/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
|
||||
datum/tgui/master_ui = null, datum/ui_state/state = hands_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if (!ui)
|
||||
ui = new(user, src, ui_key, "tanks", name, 400, 200, state = inventory_state)
|
||||
ui = new(user, src, ui_key, "tanks", name, 400, 200, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/item/weapon/tank/get_ui_data()
|
||||
|
||||
@@ -156,7 +156,7 @@ Frequency:
|
||||
if(turfs.len)
|
||||
L["None (Dangerous)"] = pick(turfs)
|
||||
var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") in L
|
||||
if ((user.get_active_hand() != src || user.stat || user.restrained()))
|
||||
if (user.get_active_hand() != src || user.incapacitated())
|
||||
return
|
||||
if(active_portals >= 3)
|
||||
user.show_message("<span class='notice'>\The [src] is recharging!</span>")
|
||||
@@ -166,7 +166,6 @@ Frequency:
|
||||
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src)
|
||||
try_move_adjacent(P)
|
||||
active_portals++
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
add_fingerprint(user)
|
||||
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
/obj/Destroy()
|
||||
if(!istype(src, /obj/machinery))
|
||||
SSobj.processing.Remove(src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
|
||||
SStgui.close_uis(src)
|
||||
return ..()
|
||||
|
||||
/obj/assume_air(datum/gas_mixture/giver)
|
||||
@@ -194,7 +195,7 @@
|
||||
|
||||
/obj/proc/tesla_act(var/power)
|
||||
being_shocked = 1
|
||||
var/power_bounced = power / 1.3
|
||||
tesla_zap(src, 5, power_bounced)
|
||||
var/power_bounced = power / 2
|
||||
tesla_zap(src, 3, power_bounced)
|
||||
spawn(10)
|
||||
being_shocked = 0
|
||||
|
||||
@@ -33,6 +33,10 @@
|
||||
if(!opened) // if closed, any item at the crate's loc is put in the contents
|
||||
take_contents()
|
||||
|
||||
/obj/structure/closet/Destroy()
|
||||
dump_contents()
|
||||
return ..()
|
||||
|
||||
/obj/structure/closet/update_icon()
|
||||
overlays.Cut()
|
||||
if(!opened)
|
||||
@@ -167,7 +171,6 @@
|
||||
contents_explosion(severity, target)
|
||||
if(loc && ispath(material_drop) && !(flags & NODECONSTRUCT))
|
||||
new material_drop(loc)
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
..()
|
||||
|
||||
@@ -176,7 +179,6 @@
|
||||
if((Proj.damage_type == BRUTE || Proj.damage_type == BURN))
|
||||
health -= Proj.damage
|
||||
if(health <= 0)
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -184,12 +186,10 @@
|
||||
if(user.environment_smash)
|
||||
user.do_attack_animation(src)
|
||||
visible_message("<span class='danger'>[user] destroys \the [src].</span>")
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/closet/blob_act()
|
||||
if(prob(75))
|
||||
dump_contents()
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -43,12 +43,10 @@
|
||||
|
||||
/obj/structure/closet/lasertag/red/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/energy/laser/redtag(src)
|
||||
new /obj/item/weapon/gun/energy/laser/redtag(src)
|
||||
new /obj/item/weapon/gun/energy/laser/redtag(src)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser/redtag(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/redtag(src)
|
||||
new /obj/item/clothing/head/helmet/redtaghelm(src)
|
||||
|
||||
|
||||
@@ -59,10 +57,8 @@
|
||||
|
||||
/obj/structure/closet/lasertag/blue/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/energy/laser/bluetag(src)
|
||||
new /obj/item/weapon/gun/energy/laser/bluetag(src)
|
||||
new /obj/item/weapon/gun/energy/laser/bluetag(src)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser/bluetag(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/bluetag(src)
|
||||
new /obj/item/clothing/head/helmet/bluetaghelm(src)
|
||||
|
||||
@@ -22,17 +22,10 @@
|
||||
|
||||
/obj/structure/closet/gimmick/russian/New()
|
||||
..()
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/clothing/head/ushanka(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/clothing/under/soviet(src)
|
||||
|
||||
/obj/structure/closet/gimmick/tacticool
|
||||
name = "tacticool gear closet"
|
||||
@@ -67,50 +60,38 @@
|
||||
|
||||
/obj/structure/closet/thunderdome/tdred/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/armor/tdome/red(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
/obj/structure/closet/thunderdome/tdgreen
|
||||
name = "green-team Thunderdome closet"
|
||||
icon_door = "green"
|
||||
|
||||
/obj/structure/closet/thunderdome/tdgreen/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/armor/tdome/green(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/melee/energy/sword/saber(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/melee/baton/loaded(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
/obj/structure/closet/malf/suits
|
||||
desc = "It's a storage unit for operational gear."
|
||||
icon_state = "syndicate"
|
||||
|
||||
@@ -23,6 +23,10 @@
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/rag(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/rag(src)
|
||||
new /obj/item/weapon/storage/box/beanbag(src)
|
||||
new /obj/item/clothing/suit/armor/vest(src)
|
||||
new /obj/item/clothing/glasses/sunglasses/reagent(src)
|
||||
new /obj/item/weapon/storage/belt/bandolier(src)
|
||||
|
||||
/obj/structure/closet/chefcloset
|
||||
name = "\proper chef's closet"
|
||||
@@ -37,9 +41,8 @@
|
||||
new /obj/item/device/radio/headset/headset_srv(src)
|
||||
new /obj/item/clothing/tie/waistcoat(src)
|
||||
new /obj/item/clothing/tie/waistcoat(src)
|
||||
new /obj/item/clothing/suit/apron/chef(src)
|
||||
new /obj/item/clothing/suit/apron/chef(src)
|
||||
new /obj/item/clothing/suit/apron/chef(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/apron/chef(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/weapon/storage/box/mousetraps(src)
|
||||
@@ -61,9 +64,8 @@
|
||||
new /obj/item/clothing/gloves/color/black(src)
|
||||
new /obj/item/clothing/head/soft/purple(src)
|
||||
new /obj/item/device/flashlight(src)
|
||||
new /obj/item/weapon/caution(src)
|
||||
new /obj/item/weapon/caution(src)
|
||||
new /obj/item/weapon/caution(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/caution(src)
|
||||
new /obj/item/weapon/holosign_creator(src)
|
||||
new /obj/item/device/lightreplacer(src)
|
||||
new /obj/item/weapon/soap(src)
|
||||
@@ -132,18 +134,14 @@
|
||||
new /obj/item/weapon/storage/backpack/satchel_sec(src)
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
new /obj/item/clothing/head/beret/sec(src)
|
||||
new /obj/item/clothing/head/beret/sec(src)
|
||||
new /obj/item/clothing/head/beret/sec(src)
|
||||
new /obj/item/clothing/head/soft/sec(src)
|
||||
new /obj/item/clothing/head/soft/sec(src)
|
||||
new /obj/item/clothing/head/soft/sec(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/security(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/jackboots(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/beret/sec(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft/sec(src)
|
||||
new /obj/item/clothing/mask/bandana/red(src)
|
||||
new /obj/item/clothing/mask/bandana/red(src)
|
||||
return
|
||||
@@ -157,18 +155,14 @@
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/cargo(src)
|
||||
new /obj/item/clothing/under/rank/cargotech(src)
|
||||
new /obj/item/clothing/under/rank/cargotech(src)
|
||||
new /obj/item/clothing/under/rank/cargotech(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/cargotech(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/gloves/fingerless(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft(src)
|
||||
new /obj/item/device/radio/headset/headset_cargo(src)
|
||||
|
||||
/obj/structure/closet/wardrobe/atmospherics_yellow
|
||||
@@ -181,15 +175,12 @@
|
||||
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel_norm(src)
|
||||
new /obj/item/weapon/storage/backpack(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos(src)
|
||||
new /obj/item/clothing/under/rank/atmospheric_technician(src)
|
||||
new /obj/item/clothing/under/rank/atmospheric_technician(src)
|
||||
new /obj/item/clothing/under/rank/atmospheric_technician(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering/atmos(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/atmospheric_technician(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/engineering_yellow
|
||||
@@ -203,18 +194,14 @@
|
||||
new /obj/item/weapon/storage/backpack/industrial(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel_eng(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/engineering(src)
|
||||
new /obj/item/clothing/under/rank/engineer(src)
|
||||
new /obj/item/clothing/under/rank/engineer(src)
|
||||
new /obj/item/clothing/under/rank/engineer(src)
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
new /obj/item/clothing/shoes/workboots(src)
|
||||
new /obj/item/clothing/shoes/workboots(src)
|
||||
new /obj/item/clothing/shoes/workboots(src)
|
||||
new /obj/item/clothing/head/hardhat(src)
|
||||
new /obj/item/clothing/head/hardhat(src)
|
||||
new /obj/item/clothing/head/hardhat(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/engineer(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/hazardvest(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/workboots(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/hardhat(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/white/medical
|
||||
@@ -232,19 +219,16 @@
|
||||
new /obj/item/clothing/under/rank/medical/blue(src)
|
||||
new /obj/item/clothing/under/rank/medical/green(src)
|
||||
new /obj/item/clothing/under/rank/medical/purple(src)
|
||||
new /obj/item/clothing/under/rank/medical(src)
|
||||
new /obj/item/clothing/under/rank/medical(src)
|
||||
new /obj/item/clothing/under/rank/medical(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/medical(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/emt(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/emt(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/head/soft/emt(src)
|
||||
new /obj/item/clothing/head/soft/emt(src)
|
||||
new /obj/item/clothing/head/soft/emt(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft/emt(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/robotics_black
|
||||
@@ -348,20 +332,16 @@
|
||||
new /obj/item/weapon/storage/backpack/satchel_tox(src)
|
||||
new /obj/item/weapon/storage/backpack/satchel_tox(src)
|
||||
new /obj/item/clothing/suit/hooded/wintercoat/science(src)
|
||||
new /obj/item/clothing/under/rank/scientist(src)
|
||||
new /obj/item/clothing/under/rank/scientist(src)
|
||||
new /obj/item/clothing/under/rank/scientist(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/science(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/science(src)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/science(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/scientist(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/toggle/labcoat/science(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/device/radio/headset/headset_sci(src)
|
||||
new /obj/item/device/radio/headset/headset_sci(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/mask/gas(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/botanist
|
||||
@@ -380,9 +360,7 @@
|
||||
new /obj/item/clothing/suit/apron(src)
|
||||
new /obj/item/clothing/suit/apron/overalls(src)
|
||||
new /obj/item/clothing/suit/apron/overalls(src)
|
||||
new /obj/item/clothing/under/rank/hydroponics(src)
|
||||
new /obj/item/clothing/under/rank/hydroponics(src)
|
||||
new /obj/item/clothing/under/rank/hydroponics(src)
|
||||
new /obj/item/clothing/mask/bandana(src)
|
||||
new /obj/item/clothing/mask/bandana(src)
|
||||
new /obj/item/clothing/mask/bandana(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/hydroponics(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/mask/bandana(src)
|
||||
|
||||
@@ -7,13 +7,5 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/bar/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
for(var/i in 1 to 10)
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
|
||||
|
||||
@@ -34,16 +34,13 @@
|
||||
..()
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
new /obj/item/clothing/gloves/color/yellow(src)
|
||||
new /obj/item/weapon/storage/toolbox/electrical(src)
|
||||
new /obj/item/weapon/storage/toolbox/electrical(src)
|
||||
new /obj/item/weapon/storage/toolbox/electrical(src)
|
||||
new /obj/item/weapon/electronics/apc(src)
|
||||
new /obj/item/weapon/electronics/apc(src)
|
||||
new /obj/item/weapon/electronics/apc(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/toolbox/electrical(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/electronics/apc(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/device/multitool(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_welding
|
||||
name = "welding supplies locker"
|
||||
req_access = list(access_engine_equip)
|
||||
@@ -52,13 +49,11 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_welding/New()
|
||||
..()
|
||||
new /obj/item/clothing/head/welding(src)
|
||||
new /obj/item/clothing/head/welding(src)
|
||||
new /obj/item/clothing/head/welding(src)
|
||||
new /obj/item/weapon/weldingtool/largetank(src)
|
||||
new /obj/item/weapon/weldingtool/largetank(src)
|
||||
new /obj/item/weapon/weldingtool/largetank(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/welding(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/weldingtool/largetank(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/engineering_personal
|
||||
name = "engineer's locker"
|
||||
req_access = list(access_engine_equip)
|
||||
@@ -90,4 +85,4 @@
|
||||
new /obj/item/weapon/watertank/atmos(src)
|
||||
new /obj/item/clothing/suit/fire/atmos(src)
|
||||
new /obj/item/clothing/head/hardhat/atmos(src)
|
||||
new /obj/item/clothing/glasses/meson/engine/tray(src)
|
||||
new /obj/item/clothing/glasses/meson/engine/tray(src)
|
||||
|
||||
@@ -15,12 +15,10 @@
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/toxin(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/morphine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/morphine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/epinephrine(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/reagent_containers/glass/bottle/charcoal(src)
|
||||
new /obj/item/weapon/storage/box/rxglasses(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/medical2
|
||||
@@ -30,13 +28,11 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/medical2/New()
|
||||
..()
|
||||
new /obj/item/weapon/tank/internals/anesthetic(src)
|
||||
new /obj/item/weapon/tank/internals/anesthetic(src)
|
||||
new /obj/item/weapon/tank/internals/anesthetic(src)
|
||||
new /obj/item/clothing/mask/breath/medical(src)
|
||||
new /obj/item/clothing/mask/breath/medical(src)
|
||||
new /obj/item/clothing/mask/breath/medical(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/tank/internals/anesthetic(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/mask/breath/medical(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/medical3
|
||||
name = "medical doctor's locker"
|
||||
req_access = list(access_surgery)
|
||||
@@ -81,10 +77,9 @@
|
||||
/obj/structure/closet/secure_closet/animal/New()
|
||||
..()
|
||||
new /obj/item/device/assembly/signaler(src)
|
||||
new /obj/item/device/electropack(src)
|
||||
new /obj/item/device/electropack(src)
|
||||
new /obj/item/device/electropack(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/device/electropack(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/chemical
|
||||
name = "chemical closet"
|
||||
desc = "Store dangerous chemicals in here."
|
||||
|
||||
@@ -62,6 +62,5 @@
|
||||
new /obj/item/stack/sheet/glass(src, 50)
|
||||
new /obj/item/clothing/shoes/magboots(src)
|
||||
new /obj/item/weapon/storage/box/metalfoam(src)
|
||||
new /obj/item/weapon/rcd_ammo/large(src)
|
||||
new /obj/item/weapon/rcd_ammo/large(src)
|
||||
new /obj/item/weapon/rcd_ammo/large(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/rcd_ammo/large(src)
|
||||
|
||||
@@ -186,12 +186,9 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/injection/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/reagent_containers/syringe/lethal/choral(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/brig
|
||||
name = "brig locker"
|
||||
req_access = list(access_brig)
|
||||
@@ -210,9 +207,8 @@
|
||||
/obj/structure/closet/secure_closet/courtroom/New()
|
||||
..()
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/weapon/paper/Court (src)
|
||||
new /obj/item/weapon/paper/Court (src)
|
||||
new /obj/item/weapon/paper/Court (src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/paper/Court (src)
|
||||
new /obj/item/weapon/pen (src)
|
||||
new /obj/item/clothing/suit/judgerobe (src)
|
||||
new /obj/item/clothing/head/powdered_wig (src)
|
||||
@@ -226,16 +222,13 @@
|
||||
/obj/structure/closet/secure_closet/armory1/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/armor/laserproof(src)
|
||||
new /obj/item/clothing/suit/armor/riot(src)
|
||||
new /obj/item/clothing/suit/armor/riot(src)
|
||||
new /obj/item/clothing/suit/armor/riot(src)
|
||||
new /obj/item/clothing/head/helmet/riot(src)
|
||||
new /obj/item/clothing/head/helmet/riot(src)
|
||||
new /obj/item/clothing/head/helmet/riot(src)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/suit/armor/riot(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/helmet/riot(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/shield/riot(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/armory2
|
||||
name = "armory ballistics locker"
|
||||
req_access = list(access_armory)
|
||||
@@ -244,13 +237,11 @@
|
||||
/obj/structure/closet/secure_closet/armory2/New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/firingpins(src)
|
||||
new /obj/item/weapon/storage/box/rubbershot(src)
|
||||
new /obj/item/weapon/storage/box/rubbershot(src)
|
||||
new /obj/item/weapon/storage/box/rubbershot(src)
|
||||
new /obj/item/weapon/gun/projectile/shotgun/riot(src)
|
||||
new /obj/item/weapon/gun/projectile/shotgun/riot(src)
|
||||
new /obj/item/weapon/gun/projectile/shotgun/riot(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/box/rubbershot(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/projectile/shotgun/riot(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/armory3
|
||||
name = "armory energy gun locker"
|
||||
req_access = list(access_armory)
|
||||
@@ -260,13 +251,11 @@
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/firingpins(src)
|
||||
new /obj/item/weapon/gun/energy/ionrifle(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/gun(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/gun/energy/laser(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/tac
|
||||
name = "armory tac locker"
|
||||
req_access = list(access_armory)
|
||||
@@ -286,6 +275,5 @@
|
||||
|
||||
/obj/structure/closet/secure_closet/lethalshots/New()
|
||||
..()
|
||||
new /obj/item/weapon/storage/box/lethalshot(src)
|
||||
new /obj/item/weapon/storage/box/lethalshot(src)
|
||||
new /obj/item/weapon/storage/box/lethalshot(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/weapon/storage/box/lethalshot(src)
|
||||
|
||||
@@ -23,19 +23,13 @@
|
||||
/obj/structure/closet/syndicate/nuclear/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/ammo_box/magazine/m10mm(src)
|
||||
new /obj/item/weapon/storage/box/flashbangs(src)
|
||||
new /obj/item/weapon/storage/box/teargas(src)
|
||||
new /obj/item/weapon/storage/backpack/dufflebag/syndie/med(src)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
for(var/i in 1 to 5)
|
||||
new /obj/item/weapon/pinpointer/nukeop(src)
|
||||
new /obj/item/device/pda/syndicate(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -174,11 +174,5 @@
|
||||
|
||||
/obj/structure/closet/ammunitionlocker/New()
|
||||
..()
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
for(var/i in 1 to 8)
|
||||
new /obj/item/ammo_casing/shotgun/beanbag(src)
|
||||
|
||||
@@ -5,12 +5,10 @@
|
||||
|
||||
/obj/structure/closet/wardrobe/New()
|
||||
..()
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/blue(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/pink
|
||||
@@ -20,12 +18,10 @@
|
||||
/obj/structure/closet/wardrobe/pink/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/pink(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/brown(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/black
|
||||
@@ -35,22 +31,18 @@
|
||||
/obj/structure/closet/wardrobe/black/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/black(src)
|
||||
if(prob(25))
|
||||
new /obj/item/clothing/suit/jacket/leather(src)
|
||||
if(prob(20))
|
||||
new /obj/item/clothing/suit/jacket/leather/overcoat(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/head/that(src)
|
||||
new /obj/item/clothing/head/that(src)
|
||||
new /obj/item/clothing/head/that(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/that(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft/black(src)
|
||||
new /obj/item/clothing/mask/bandana/black(src)
|
||||
new /obj/item/clothing/mask/bandana/black(src)
|
||||
if(prob(40))
|
||||
@@ -65,12 +57,10 @@
|
||||
/obj/structure/closet/wardrobe/green/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/green(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/mask/bandana/green(src)
|
||||
new /obj/item/clothing/mask/bandana/green(src)
|
||||
return
|
||||
@@ -84,12 +74,10 @@
|
||||
/obj/structure/closet/wardrobe/orange/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/rank/prisoner(src)
|
||||
new /obj/item/clothing/under/rank/prisoner(src)
|
||||
new /obj/item/clothing/under/rank/prisoner(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/rank/prisoner(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -100,12 +88,10 @@
|
||||
/obj/structure/closet/wardrobe/yellow/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/yellow(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/orange(src)
|
||||
new /obj/item/clothing/mask/bandana/gold(src)
|
||||
new /obj/item/clothing/mask/bandana/gold(src)
|
||||
return
|
||||
@@ -118,15 +104,12 @@
|
||||
/obj/structure/closet/wardrobe/white/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/white(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft/mime(src)
|
||||
return
|
||||
|
||||
/obj/structure/closet/wardrobe/pjs
|
||||
@@ -140,10 +123,8 @@
|
||||
new /obj/item/clothing/under/pj/red(src)
|
||||
new /obj/item/clothing/under/pj/blue(src)
|
||||
new /obj/item/clothing/under/pj/blue(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/clothing/shoes/sneakers/white(src)
|
||||
return
|
||||
|
||||
|
||||
@@ -154,15 +135,12 @@
|
||||
/obj/structure/closet/wardrobe/grey/New()
|
||||
..()
|
||||
contents = list()
|
||||
new /obj/item/clothing/under/color/grey(src)
|
||||
new /obj/item/clothing/under/color/grey(src)
|
||||
new /obj/item/clothing/under/color/grey(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
new /obj/item/clothing/head/soft/grey(src)
|
||||
new /obj/item/clothing/head/soft/grey(src)
|
||||
new /obj/item/clothing/head/soft/grey(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/under/color/grey(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/shoes/sneakers/black(src)
|
||||
for(var/i in 1 to 3)
|
||||
new /obj/item/clothing/head/soft/grey(src)
|
||||
if(prob(50))
|
||||
new /obj/item/weapon/storage/backpack/dufflebag(src)
|
||||
if(prob(40))
|
||||
|
||||
@@ -50,10 +50,8 @@
|
||||
|
||||
/obj/structure/closet/crate/rcd/New()
|
||||
..()
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/weapon/rcd_ammo(src)
|
||||
new /obj/item/weapon/rcd(src)
|
||||
|
||||
/obj/structure/closet/crate/freezer
|
||||
@@ -66,15 +64,14 @@
|
||||
|
||||
/obj/structure/closet/crate/freezer/return_air()
|
||||
var/datum/gas_mixture/gas = (..())
|
||||
if(!gas) return null
|
||||
if(!gas)
|
||||
return null
|
||||
|
||||
var/datum/gas_mixture/newgas = new/datum/gas_mixture()
|
||||
newgas.oxygen = gas.oxygen
|
||||
newgas.carbon_dioxide = gas.carbon_dioxide
|
||||
newgas.nitrogen = gas.nitrogen
|
||||
newgas.toxins = gas.toxins
|
||||
newgas.volume = gas.volume
|
||||
newgas.temperature = gas.temperature
|
||||
if(newgas.temperature <= target_temp) return
|
||||
newgas.copy_from(gas)
|
||||
|
||||
if(newgas.temperature <= target_temp)
|
||||
return
|
||||
|
||||
if((newgas.temperature - cooling_power) > target_temp)
|
||||
newgas.temperature -= cooling_power
|
||||
@@ -91,15 +88,10 @@
|
||||
|
||||
/obj/structure/closet/crate/radiation/New()
|
||||
..()
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
|
||||
for(var/i in 1 to 4)
|
||||
new /obj/item/clothing/suit/radiation(src)
|
||||
new /obj/item/clothing/head/radiation(src)
|
||||
|
||||
/obj/structure/closet/crate/hydroponics
|
||||
name = "hydroponics crate"
|
||||
desc = "All you need to destroy those pesky weeds and pests."
|
||||
|
||||
@@ -23,10 +23,12 @@
|
||||
/obj/structure/janitorialcart/proc/wet_mop(obj/item/weapon/mop, mob/user)
|
||||
if(reagents.total_volume < 1)
|
||||
user << "<span class='warning'>[src] is out of water!</span>"
|
||||
return 0
|
||||
else
|
||||
reagents.trans_to(mop, 5) //
|
||||
reagents.trans_to(mop, 5)
|
||||
user << "<span class='notice'>You wet [mop] in [src].</span>"
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
|
||||
return 1
|
||||
|
||||
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
|
||||
if(!user.drop_item())
|
||||
@@ -43,8 +45,8 @@
|
||||
if(istype(I, /obj/item/weapon/mop))
|
||||
var/obj/item/weapon/mop/m=I
|
||||
if(m.reagents.total_volume < m.reagents.maximum_volume)
|
||||
wet_mop(m, user)
|
||||
return
|
||||
if (wet_mop(m, user))
|
||||
return
|
||||
if(!mymop)
|
||||
m.janicart_insert(user, src)
|
||||
else
|
||||
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
|
||||
/obj/structure/mirror/attackby(obj/item/I, mob/living/user, params)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if(I.damtype == STAMINA)
|
||||
return
|
||||
@@ -90,6 +91,7 @@
|
||||
|
||||
|
||||
/obj/structure/mirror/attack_alien(mob/living/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if(islarva(user))
|
||||
return
|
||||
@@ -106,6 +108,7 @@
|
||||
var/mob/living/simple_animal/M = user
|
||||
if(M.melee_damage_upper <= 0)
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
M.do_attack_animation(src)
|
||||
if(shattered)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
@@ -115,6 +118,7 @@
|
||||
|
||||
|
||||
/obj/structure/mirror/attack_slime(mob/living/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src)
|
||||
if(shattered)
|
||||
playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1)
|
||||
@@ -246,4 +250,4 @@
|
||||
if(new_eye_color)
|
||||
H.eye_color = sanitize_hexcolor(new_eye_color)
|
||||
H.dna.update_ui_block(DNA_EYE_COLOR_BLOCK)
|
||||
H.update_body()
|
||||
H.update_body()
|
||||
|
||||
@@ -180,7 +180,7 @@ var/global/list/crematoriums = new/list()
|
||||
update_icon()
|
||||
|
||||
for(var/mob/living/M in contents)
|
||||
if (M.stat!=2)
|
||||
if (M.stat != DEAD)
|
||||
M.emote("scream")
|
||||
if(user)
|
||||
user.attack_log +="\[[time_stamp()]\] Cremated <b>[M]/[M.ckey]</b>"
|
||||
@@ -188,8 +188,9 @@ var/global/list/crematoriums = new/list()
|
||||
else
|
||||
log_attack("\[[time_stamp()]\] <b>UNKNOWN</b> cremated <b>[M]/[M.ckey]</b>")
|
||||
M.death(1)
|
||||
M.ghostize()
|
||||
qdel(M)
|
||||
if(M) //some animals get automatically deleted on death.
|
||||
M.ghostize()
|
||||
qdel(M)
|
||||
|
||||
for(var/obj/O in contents) //obj instead of obj/item so that bodybags and ashes get destroyed. We dont want tons and tons of ash piling up
|
||||
if(O != connected) //Creamtorium does not burn hot enough to destroy the tray
|
||||
|
||||
@@ -128,13 +128,12 @@
|
||||
return
|
||||
for(var/obj/structure/transit_tube_pod/pod in loc)
|
||||
if(!pod.moving && turn(pod.dir, (reverse_launch ? 180 : 0)) in directions())
|
||||
spawn(0)
|
||||
pod_moving = 1
|
||||
close_animation()
|
||||
sleep(CLOSE_DURATION + 2)
|
||||
if(icon_state == "closed" && pod)
|
||||
pod.follow_tube(reverse_launch)
|
||||
pod_moving = 0
|
||||
pod_moving = 1
|
||||
close_animation()
|
||||
sleep(CLOSE_DURATION + 2)
|
||||
if(icon_state == "closed" && pod)
|
||||
pod.follow_tube(reverse_launch)
|
||||
pod_moving = 0
|
||||
return 1
|
||||
return 0
|
||||
|
||||
|
||||
@@ -11,8 +11,9 @@
|
||||
/obj/structure/transit_tube_pod/New(loc)
|
||||
..(loc)
|
||||
|
||||
air_contents.oxygen = MOLES_O2STANDARD * 2
|
||||
air_contents.nitrogen = MOLES_N2STANDARD
|
||||
air_contents.assert_gases("o2", "n2")
|
||||
air_contents.gases["o2"][MOLES] = MOLES_O2STANDARD * 2
|
||||
air_contents.gases["n2"][MOLES] = MOLES_N2STANDARD
|
||||
air_contents.temperature = T20C
|
||||
|
||||
// Give auto tubes time to align before trying to start moving
|
||||
@@ -61,73 +62,70 @@
|
||||
else return ..()
|
||||
|
||||
/obj/structure/transit_tube_pod/proc/follow_tube(reverse_launch)
|
||||
set waitfor = 0
|
||||
if(moving)
|
||||
return
|
||||
|
||||
moving = 1
|
||||
|
||||
spawn()
|
||||
var/obj/structure/transit_tube/current_tube = null
|
||||
var/next_dir
|
||||
var/next_loc
|
||||
var/last_delay = 0
|
||||
var/exit_delay
|
||||
|
||||
if(reverse_launch)
|
||||
dir = turn(dir, 180) // Back it up
|
||||
var/obj/structure/transit_tube/current_tube = null
|
||||
var/next_dir
|
||||
var/next_loc
|
||||
var/last_delay = 0
|
||||
var/exit_delay
|
||||
|
||||
for(var/obj/structure/transit_tube/tube in loc)
|
||||
if(tube.has_exit(dir))
|
||||
if(reverse_launch)
|
||||
dir = turn(dir, 180) // Back it up
|
||||
|
||||
for(var/obj/structure/transit_tube/tube in loc)
|
||||
if(tube.has_exit(dir))
|
||||
current_tube = tube
|
||||
break
|
||||
|
||||
while(current_tube)
|
||||
next_dir = current_tube.get_exit(dir)
|
||||
|
||||
if(!next_dir)
|
||||
break
|
||||
|
||||
exit_delay = current_tube.exit_delay(src, dir)
|
||||
last_delay += exit_delay
|
||||
|
||||
sleep(exit_delay)
|
||||
|
||||
next_loc = get_step(loc, next_dir)
|
||||
|
||||
current_tube = null
|
||||
for(var/obj/structure/transit_tube/tube in next_loc)
|
||||
if(tube.has_entrance(next_dir))
|
||||
current_tube = tube
|
||||
break
|
||||
|
||||
while(current_tube)
|
||||
next_dir = current_tube.get_exit(dir)
|
||||
|
||||
if(!next_dir)
|
||||
break
|
||||
|
||||
exit_delay = current_tube.exit_delay(src, dir)
|
||||
last_delay += exit_delay
|
||||
|
||||
sleep(exit_delay)
|
||||
|
||||
next_loc = get_step(loc, next_dir)
|
||||
|
||||
current_tube = null
|
||||
for(var/obj/structure/transit_tube/tube in next_loc)
|
||||
if(tube.has_entrance(next_dir))
|
||||
current_tube = tube
|
||||
break
|
||||
|
||||
if(current_tube == null)
|
||||
dir = next_dir
|
||||
Move(get_step(loc, dir), dir) // Allow collisions when leaving the tubes.
|
||||
break
|
||||
|
||||
last_delay = current_tube.enter_delay(src, next_dir)
|
||||
sleep(last_delay)
|
||||
if(current_tube == null)
|
||||
dir = next_dir
|
||||
loc = next_loc // When moving from one tube to another, skip collision and such.
|
||||
density = current_tube.density
|
||||
Move(get_step(loc, dir), dir) // Allow collisions when leaving the tubes.
|
||||
break
|
||||
|
||||
if(current_tube && current_tube.should_stop_pod(src, next_dir))
|
||||
current_tube.pod_stopped(src, dir)
|
||||
break
|
||||
last_delay = current_tube.enter_delay(src, next_dir)
|
||||
sleep(last_delay)
|
||||
dir = next_dir
|
||||
loc = next_loc // When moving from one tube to another, skip collision and such.
|
||||
density = current_tube.density
|
||||
|
||||
density = 1
|
||||
moving = 0
|
||||
if(current_tube && current_tube.should_stop_pod(src, next_dir))
|
||||
current_tube.pod_stopped(src, dir)
|
||||
break
|
||||
|
||||
density = 1
|
||||
moving = 0
|
||||
|
||||
|
||||
// Should I return a copy here? If the caller edits or del()s the returned
|
||||
// datum, there might be problems if I don't...
|
||||
/obj/structure/transit_tube_pod/return_air()
|
||||
var/datum/gas_mixture/GM = new()
|
||||
GM.oxygen = air_contents.oxygen
|
||||
GM.carbon_dioxide = air_contents.carbon_dioxide
|
||||
GM.nitrogen = air_contents.nitrogen
|
||||
GM.toxins = air_contents.toxins
|
||||
GM.temperature = air_contents.temperature
|
||||
GM.copy_from(air_contents)
|
||||
return GM
|
||||
|
||||
// For now, copying what I found in an unused FEA file (and almost identical in a
|
||||
|
||||
@@ -196,6 +196,7 @@
|
||||
health = maxhealth
|
||||
playsound(loc, 'sound/items/Welder2.ogg', 50, 1)
|
||||
update_nearby_icons()
|
||||
user << "<span class='notice'>You repair [src].</span>"
|
||||
else
|
||||
user << "<span class='warning'>[src] is already in good condition!</span>"
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user