Game folder
This commit is contained in:
@@ -105,10 +105,10 @@
|
||||
/obj/effect/anomaly/grav/Crossed(mob/A)
|
||||
gravShock(A)
|
||||
|
||||
/obj/effect/anomaly/grav/Collide(mob/A)
|
||||
/obj/effect/anomaly/grav/Bump(mob/A)
|
||||
gravShock(A)
|
||||
|
||||
/obj/effect/anomaly/grav/CollidedWith(atom/movable/AM)
|
||||
/obj/effect/anomaly/grav/Bumped(atom/movable/AM)
|
||||
gravShock(AM)
|
||||
|
||||
/obj/effect/anomaly/grav/proc/gravShock(mob/living/A)
|
||||
@@ -151,10 +151,10 @@
|
||||
/obj/effect/anomaly/flux/Crossed(mob/living/M)
|
||||
mobShock(M)
|
||||
|
||||
/obj/effect/anomaly/flux/Collide(mob/living/M)
|
||||
/obj/effect/anomaly/flux/Bump(mob/living/M)
|
||||
mobShock(M)
|
||||
|
||||
/obj/effect/anomaly/flux/CollidedWith(atom/movable/AM)
|
||||
/obj/effect/anomaly/flux/Bumped(atom/movable/AM)
|
||||
mobShock(AM)
|
||||
|
||||
/obj/effect/anomaly/flux/proc/mobShock(mob/living/M)
|
||||
@@ -192,7 +192,7 @@
|
||||
for(var/mob/living/M in range(1,src))
|
||||
do_teleport(M, locate(M.x, M.y, M.z), 4)
|
||||
|
||||
/obj/effect/anomaly/bluespace/CollidedWith(atom/movable/AM)
|
||||
/obj/effect/anomaly/bluespace/Bumped(atom/movable/AM)
|
||||
if(isliving(AM))
|
||||
do_teleport(AM, locate(AM.x, AM.y, AM.z), 8)
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/obj/effect/bump_teleporter/singularity_pull()
|
||||
return
|
||||
|
||||
/obj/effect/bump_teleporter/CollidedWith(atom/movable/AM)
|
||||
/obj/effect/bump_teleporter/Bumped(atom/movable/AM)
|
||||
if(!ismob(AM))
|
||||
return
|
||||
if(!id_target)
|
||||
|
||||
@@ -60,7 +60,6 @@
|
||||
|
||||
/obj/structure/sign/poster/Initialize()
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, 75), 0)
|
||||
if(random_basetype)
|
||||
randomise(random_basetype)
|
||||
if(!ruined)
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/obj/effect/countdown/clonepod
|
||||
name = "cloning pod countdown"
|
||||
color = "#0C479D"
|
||||
color = "#18d100"
|
||||
text_size = 1
|
||||
|
||||
/obj/effect/countdown/clonepod/get_value()
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
var/blood_state = "" //I'm sorry but cleanable/blood code is ass, and so is blood_DNA
|
||||
var/bloodiness = 0 //0-100, amount of blood in this decal, used for making footprints and affecting the alpha of bloody footprints
|
||||
var/mergeable_decal = TRUE //when two of these are on a same tile or do we need to merge them into just one?
|
||||
var/beauty
|
||||
|
||||
/obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
@@ -26,10 +25,6 @@
|
||||
if(LAZYLEN(diseases_to_add))
|
||||
AddComponent(/datum/component/infective, diseases_to_add)
|
||||
|
||||
/obj/effect/decal/cleanable/ComponentInitialize()
|
||||
. = ..()
|
||||
addtimer(CALLBACK(src, /datum.proc/AddComponent, /datum/component/beauty, beauty), 0) //inb4 i get yelled at for using the beauty var on cleanable instead of calling this proc on every subtype which would be pedantic and actually run worse.
|
||||
|
||||
/obj/effect/decal/cleanable/proc/replace_decal(obj/effect/decal/cleanable/C) // Returns true if we should give up in favor of the pre-existing decal
|
||||
if(mergeable_decal)
|
||||
return TRUE
|
||||
@@ -77,7 +72,7 @@
|
||||
..()
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
if(H.shoes && blood_state && bloodiness)
|
||||
if(H.shoes && blood_state && bloodiness && !H.has_trait(TRAIT_LIGHT_STEP))
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
var/add_blood = 0
|
||||
if(bloodiness >= BLOOD_GAIN_PER_STEP)
|
||||
|
||||
@@ -6,9 +6,8 @@
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xfloor1"
|
||||
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
blood_state = BLOOD_STATE_XENO
|
||||
beauty = -75
|
||||
|
||||
/obj/effect/decal/cleanable/xenoblood/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -5,11 +5,13 @@
|
||||
icon_state = "floor1"
|
||||
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
||||
blood_state = BLOOD_STATE_HUMAN
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
beauty = -60
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
|
||||
/obj/effect/decal/cleanable/blood/replace_decal(obj/effect/decal/cleanable/blood/C)
|
||||
C.add_blood_DNA(return_blood_DNA())
|
||||
if (bloodiness)
|
||||
if (C.bloodiness < MAX_SHOE_BLOODINESS)
|
||||
C.bloodiness += bloodiness
|
||||
return ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/old
|
||||
@@ -56,6 +58,11 @@
|
||||
/obj/effect/decal/cleanable/blood/gibs/ex_act(severity, target)
|
||||
return
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/Crossed(mob/living/L)
|
||||
if(istype(L) && has_gravity(loc))
|
||||
playsound(loc, 'sound/effects/gib_step.ogg', L.has_trait(TRAIT_LIGHT_STEP) ? 20 : 50, 1)
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
var/direction = pick(directions)
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Someone should clean that up."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "shards"
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/ash
|
||||
name = "ashes"
|
||||
@@ -11,7 +10,6 @@
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
mergeable_decal = FALSE
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/ash/Initialize()
|
||||
. = ..()
|
||||
@@ -26,7 +24,6 @@
|
||||
/obj/effect/decal/cleanable/ash/large
|
||||
name = "large pile of ashes"
|
||||
icon_state = "big_ash"
|
||||
beauty = -100
|
||||
|
||||
/obj/effect/decal/cleanable/ash/large/Initialize()
|
||||
. = ..()
|
||||
@@ -37,7 +34,6 @@
|
||||
desc = "Back to sand."
|
||||
icon = 'icons/obj/shards.dmi'
|
||||
icon_state = "tiny"
|
||||
beauty = -60
|
||||
|
||||
/obj/effect/decal/cleanable/glass/Initialize()
|
||||
. = ..()
|
||||
@@ -50,21 +46,34 @@
|
||||
name = "dirt"
|
||||
desc = "Someone should clean that up."
|
||||
icon_state = "dirt"
|
||||
canSmoothWith = list(/obj/effect/decal/cleanable/dirt, /turf/closed/wall, /obj/structure/falsewall)
|
||||
smooth = SMOOTH_FALSE
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/Initialize()
|
||||
. = ..()
|
||||
var/turf/T = get_turf(src)
|
||||
if(T.tiled_dirt)
|
||||
smooth = SMOOTH_MORE
|
||||
icon = 'icons/effects/dirt.dmi'
|
||||
icon_state = ""
|
||||
queue_smooth(src)
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/effect/decal/cleanable/dirt/Destroy()
|
||||
queue_smooth_neighbors(src)
|
||||
return ..()
|
||||
|
||||
/obj/effect/decal/cleanable/flour
|
||||
name = "flour"
|
||||
desc = "It's still good. Four second rule!"
|
||||
icon_state = "flour"
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow
|
||||
name = "glowing goo"
|
||||
desc = "Jeez. I hope that's not for lunch."
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
icon_state = "greenglow"
|
||||
beauty = -150
|
||||
|
||||
/obj/effect/decal/cleanable/greenglow/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -80,7 +89,6 @@
|
||||
layer = WALL_OBJ_LAYER
|
||||
icon_state = "cobweb1"
|
||||
resistance_flags = FLAMMABLE
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/cobweb/cobweb2
|
||||
icon_state = "cobweb2"
|
||||
@@ -92,12 +100,10 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "molten"
|
||||
mergeable_decal = FALSE
|
||||
beauty = -100
|
||||
|
||||
/obj/effect/decal/cleanable/molten_object/large
|
||||
name = "big gooey grey mass"
|
||||
icon_state = "big_molten"
|
||||
beauty = -250
|
||||
|
||||
//Vomit (sorry)
|
||||
/obj/effect/decal/cleanable/vomit
|
||||
@@ -106,7 +112,6 @@
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "vomit_1"
|
||||
random_icon_states = list("vomit_1", "vomit_2", "vomit_3", "vomit_4")
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/vomit/attack_hand(mob/user)
|
||||
. = ..()
|
||||
@@ -141,14 +146,12 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("tomato_floor1", "tomato_floor2", "tomato_floor3")
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/plant_smudge
|
||||
name = "plant smudge"
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_plant")
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/egg_smudge
|
||||
name = "smashed egg"
|
||||
@@ -156,7 +159,6 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_egg1", "smashed_egg2", "smashed_egg3")
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/pie_smudge //honk
|
||||
name = "smashed pie"
|
||||
@@ -164,7 +166,6 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
random_icon_states = list("smashed_pie")
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/chem_pile
|
||||
name = "chemical pile"
|
||||
@@ -172,7 +173,6 @@
|
||||
gender = NEUTER
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "ash"
|
||||
beauty = -60
|
||||
|
||||
/obj/effect/decal/cleanable/shreds
|
||||
name = "shreds"
|
||||
@@ -180,7 +180,6 @@
|
||||
icon_state = "shreds"
|
||||
gender = PLURAL
|
||||
mergeable_decal = FALSE
|
||||
beauty = -75
|
||||
|
||||
/obj/effect/decal/cleanable/shreds/ex_act(severity, target)
|
||||
if(severity == 1) //so shreds created during an explosion aren't deleted by the explosion.
|
||||
@@ -197,14 +196,12 @@
|
||||
icon = 'icons/effects/tomatodecal.dmi'
|
||||
icon_state = "salt_pile"
|
||||
gender = NEUTER
|
||||
beauty = -50
|
||||
|
||||
/obj/effect/decal/cleanable/glitter
|
||||
name = "generic glitter pile"
|
||||
desc = "The herpes of arts and crafts."
|
||||
icon = 'icons/effects/tile_effects.dmi'
|
||||
gender = NEUTER
|
||||
beauty = 100
|
||||
|
||||
/obj/effect/decal/cleanable/glitter/pink
|
||||
name = "pink glitter"
|
||||
@@ -223,7 +220,6 @@
|
||||
desc = "A puddle of stabilized plasma."
|
||||
icon_state = "flour"
|
||||
color = "#C8A5DC"
|
||||
beauty = -200
|
||||
|
||||
/obj/effect/decal/cleanable/insectguts
|
||||
name = "insect guts"
|
||||
@@ -231,4 +227,3 @@
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
icon_state = "xfloor1"
|
||||
random_icon_states = list("xfloor1", "xfloor2", "xfloor3", "xfloor4", "xfloor5", "xfloor6", "xfloor7")
|
||||
beauty = -300
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
layer = LOW_OBJ_LAYER
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
|
||||
blood_state = BLOOD_STATE_OIL
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
mergeable_decal = FALSE
|
||||
beauty = -100
|
||||
|
||||
/obj/effect/decal/cleanable/robot_debris/proc/streak(list/directions)
|
||||
set waitfor = 0
|
||||
@@ -46,8 +45,7 @@
|
||||
icon_state = "floor1"
|
||||
random_icon_states = list("floor1", "floor2", "floor3", "floor4", "floor5", "floor6", "floor7")
|
||||
blood_state = BLOOD_STATE_OIL
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
beauty = -150
|
||||
bloodiness = BLOOD_AMOUNT_PER_DECAL
|
||||
|
||||
/obj/effect/decal/cleanable/oil/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -45,4 +45,4 @@
|
||||
var/turf/T = loc
|
||||
if(!istype(T)) //you know this will happen somehow
|
||||
CRASH("Turf decal initialized in an object/nullspace")
|
||||
T.AddComponent(/datum/component/decal, icon, icon_state, dir, CLEAN_GOD, color)
|
||||
T.AddComponent(/datum/component/decal, icon, icon_state, dir, CLEAN_GOD, color, null, null, alpha)
|
||||
|
||||
@@ -1,212 +1,39 @@
|
||||
/obj/effect/turf_decal/tile
|
||||
name = "tile decal"
|
||||
icon_state = "corner_white_full"
|
||||
icon_state = "tile_corner"
|
||||
layer = TURF_PLATING_DECAL_LAYER
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/black
|
||||
name = "black tile decal"
|
||||
color = COLOR_ALMOST_BLACK
|
||||
|
||||
/obj/effect/turf_decal/tile/black/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/black/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/black/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
alpha = 110
|
||||
|
||||
/obj/effect/turf_decal/tile/blue
|
||||
name = "blue tile decal"
|
||||
color = COLOR_BLUE_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/blue/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/blue/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/blue/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/paleblue
|
||||
name = "pale blue tile decal"
|
||||
color = COLOR_PALE_BLUE_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/paleblue/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/paleblue/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/paleblue/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
name = "blue corner"
|
||||
color = "#52B4E9"
|
||||
|
||||
/obj/effect/turf_decal/tile/green
|
||||
name = "green tile decal"
|
||||
color = COLOR_GREEN_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/green/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/green/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/green/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/lime
|
||||
name = "lime tile decal"
|
||||
color = COLOR_PALE_GREEN_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/lime/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/lime/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/lime/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
name = "green corner"
|
||||
color = "#9FED58"
|
||||
|
||||
/obj/effect/turf_decal/tile/yellow
|
||||
name = "yellow tile decal"
|
||||
color = COLOR_BROWN
|
||||
|
||||
/obj/effect/turf_decal/tile/yellow/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/yellow/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/yellow/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/beige
|
||||
name = "beige tile decal"
|
||||
color = COLOR_BEIGE
|
||||
|
||||
/obj/effect/turf_decal/tile/beige/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/beige/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/beige/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
name = "yellow corner"
|
||||
color = "#EFB341"
|
||||
|
||||
/obj/effect/turf_decal/tile/red
|
||||
name = "red tile decal"
|
||||
color = COLOR_RED_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/red/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/red/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/red/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/pink
|
||||
name = "pink tile decal"
|
||||
color = COLOR_PALE_RED_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/pink/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/pink/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/pink/corner
|
||||
icon_state = "corner_white"
|
||||
name = "red corner"
|
||||
color = "#DE3A3A"
|
||||
|
||||
/obj/effect/turf_decal/tile/bar
|
||||
name = "bar corner"
|
||||
color = "#791500"
|
||||
alpha = 130
|
||||
|
||||
/obj/effect/turf_decal/tile/purple
|
||||
name = "purple tile decal"
|
||||
color = COLOR_PURPLE_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/purple/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/purple/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/purple/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/mauve
|
||||
name = "mauve tile decal"
|
||||
color = COLOR_PALE_PURPLE_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/mauve/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/mauve/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/mauve/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/orange
|
||||
name = "orange tile decal"
|
||||
color = COLOR_DARK_ORANGE
|
||||
|
||||
/obj/effect/turf_decal/tile/orange/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/orange/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/orange/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
name = "purple corner"
|
||||
color = "#D381C9"
|
||||
|
||||
/obj/effect/turf_decal/tile/brown
|
||||
name = "brown tile decal"
|
||||
color = COLOR_DARK_BROWN
|
||||
name = "brown corner"
|
||||
color = "#A46106"
|
||||
|
||||
/obj/effect/turf_decal/tile/brown/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/brown/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/brown/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
/obj/effect/turf_decal/tile/white
|
||||
name = "white tile decal"
|
||||
|
||||
/obj/effect/turf_decal/tile/white/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/white/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/white/corner
|
||||
icon_state = "corner_white"
|
||||
|
||||
|
||||
/obj/effect/turf_decal/tile/gray
|
||||
name = "gray tile decal"
|
||||
color = COLOR_FLOORTILE_GRAY
|
||||
|
||||
/obj/effect/turf_decal/tile/gray/diagonal
|
||||
icon_state = "corner_white_diagonal"
|
||||
|
||||
/obj/effect/turf_decal/tile/gray/side
|
||||
icon_state = "corner_white_side"
|
||||
|
||||
/obj/effect/turf_decal/tile/gray/corner
|
||||
icon_state = "corner_white"
|
||||
/obj/effect/turf_decal/tile/neutral
|
||||
name = "neutral corner"
|
||||
color = "#D4D4D4"
|
||||
alpha = 50
|
||||
@@ -274,12 +274,6 @@
|
||||
. = ..()
|
||||
air_update_turf(1)
|
||||
|
||||
|
||||
/obj/structure/foamedmetal/Destroy()
|
||||
density = FALSE
|
||||
air_update_turf(1)
|
||||
return ..()
|
||||
|
||||
/obj/structure/foamedmetal/Move()
|
||||
var/turf/T = loc
|
||||
. = ..()
|
||||
|
||||
@@ -81,18 +81,6 @@
|
||||
/datum/effect_system/trail_follow/proc/set_dir(obj/effect/particle_effect/ion_trails/I)
|
||||
I.setDir(holder.dir)
|
||||
|
||||
/datum/effect_system/trail_follow/ion/flight
|
||||
effect_type = /obj/effect/particle_effect/ion_trails/flight
|
||||
fadetype = "ion_fade_flight"
|
||||
nograv_required = FALSE
|
||||
auto_process = FALSE
|
||||
|
||||
/datum/effect_system/trail_follow/ion/flight/set_dir(obj/effect/particle_effect/ion_trails/I)
|
||||
if(istype(holder, /obj/item/flightpack))
|
||||
var/obj/item/flightpack/F = holder
|
||||
if(istype(F.wearer))
|
||||
I.setDir(F.wearer.dir)
|
||||
|
||||
//Reagent-based explosion effect
|
||||
|
||||
/datum/effect_system/reagents_explosion
|
||||
|
||||
@@ -156,43 +156,51 @@
|
||||
/datum/effect_system/smoke_spread/freezing
|
||||
effect_type = /obj/effect/particle_effect/smoke/freezing
|
||||
var/blast = 0
|
||||
var/temperature = 2
|
||||
var/weldvents = TRUE
|
||||
var/distcheck = TRUE
|
||||
|
||||
/datum/effect_system/smoke_spread/freezing/proc/Chilled(atom/A)
|
||||
if(isopenturf(A))
|
||||
var/turf/open/T = A
|
||||
if(T.air)
|
||||
var/datum/gas_mixture/G = T.air
|
||||
if(get_dist(T, location) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air
|
||||
G.temperature = 2
|
||||
if(!distcheck || get_dist(T, location) < blast) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air
|
||||
G.temperature = temperature
|
||||
T.air_update_turf()
|
||||
for(var/obj/effect/hotspot/H in T)
|
||||
qdel(H)
|
||||
var/list/G_gases = G.gases
|
||||
if(G_gases[/datum/gas/plasma])
|
||||
G.assert_gas(/datum/gas/nitrogen)
|
||||
G_gases[/datum/gas/nitrogen][MOLES] += (G_gases[/datum/gas/plasma][MOLES])
|
||||
G_gases[/datum/gas/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 = TRUE
|
||||
U.update_icon()
|
||||
U.visible_message("<span class='danger'>[U] was frozen shut!</span>")
|
||||
var/list/G_gases = G.gases
|
||||
if(G_gases[/datum/gas/plasma])
|
||||
G.assert_gas(/datum/gas/nitrogen)
|
||||
G_gases[/datum/gas/nitrogen][MOLES] += (G_gases[/datum/gas/plasma][MOLES])
|
||||
G_gases[/datum/gas/plasma][MOLES] = 0
|
||||
G.garbage_collect()
|
||||
if (weldvents)
|
||||
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 = TRUE
|
||||
U.update_icon()
|
||||
U.visible_message("<span class='danger'>[U] was frozen shut!</span>")
|
||||
for(var/mob/living/L in T)
|
||||
L.ExtinguishMob()
|
||||
for(var/obj/item/Item in T)
|
||||
Item.extinguish()
|
||||
|
||||
/datum/effect_system/smoke_spread/freezing/set_up(radius = 5, loca, blasting = 0)
|
||||
/datum/effect_system/smoke_spread/freezing/set_up(radius = 5, loca, blast_radius = 0)
|
||||
..()
|
||||
blast = blasting
|
||||
blast = blast_radius
|
||||
|
||||
/datum/effect_system/smoke_spread/freezing/start()
|
||||
if(blast)
|
||||
for(var/turf/T in RANGE_TURFS(2, location))
|
||||
for(var/turf/T in RANGE_TURFS(blast, location))
|
||||
Chilled(T)
|
||||
..()
|
||||
|
||||
/datum/effect_system/smoke_spread/freezing/decon
|
||||
temperature = 293.15
|
||||
distcheck = FALSE
|
||||
weldvents = FALSE
|
||||
|
||||
|
||||
/////////////////////////////////////////////
|
||||
@@ -281,17 +289,15 @@
|
||||
contained = "\[[contained]\]"
|
||||
|
||||
var/where = "[AREACOORD(location)]"
|
||||
var/whereLink = "<A HREF='?_src_=holder;[HrefToken()];adminplayerobservecoodjump=1;X=[location.x];Y=[location.y];Z=[location.z]'>[where]</a>"
|
||||
|
||||
if(carry.my_atom.fingerprintslast)
|
||||
var/mob/M = get_mob_by_key(carry.my_atom.fingerprintslast)
|
||||
var/more = ""
|
||||
if(M)
|
||||
more = "[ADMIN_LOOKUPFLW(M)] "
|
||||
message_admins("Smoke: ([whereLink])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].")
|
||||
message_admins("Smoke: ([ADMIN_VERBOSEJMP(location)])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].")
|
||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last touched by [carry.my_atom.fingerprintslast].")
|
||||
else
|
||||
message_admins("Smoke: ([whereLink])[contained]. No associated key.")
|
||||
message_admins("Smoke: ([ADMIN_VERBOSEJMP(location)])[contained]. No associated key.")
|
||||
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
|
||||
|
||||
|
||||
|
||||
@@ -28,20 +28,20 @@
|
||||
playsound(src.loc, "sparks", 100, 1)
|
||||
var/turf/T = loc
|
||||
if(isturf(T))
|
||||
T.hotspot_expose(700,5)
|
||||
T.hotspot_expose(300,5)
|
||||
QDEL_IN(src, 20)
|
||||
|
||||
/obj/effect/particle_effect/sparks/Destroy()
|
||||
var/turf/T = loc
|
||||
if(isturf(T))
|
||||
T.hotspot_expose(700,1)
|
||||
T.hotspot_expose(300,1)
|
||||
return ..()
|
||||
|
||||
/obj/effect/particle_effect/sparks/Move()
|
||||
..()
|
||||
var/turf/T = loc
|
||||
if(isturf(T))
|
||||
T.hotspot_expose(700,1)
|
||||
T.hotspot_expose(300,1)
|
||||
|
||||
/datum/effect_system/spark_spread
|
||||
effect_type = /obj/effect/particle_effect/sparks
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
return 0
|
||||
.=..()
|
||||
|
||||
/obj/effect/particle_effect/water/Collide(atom/A)
|
||||
/obj/effect/particle_effect/water/Bump(atom/A)
|
||||
if(reagents)
|
||||
reagents.reaction(A)
|
||||
return ..()
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
new /datum/hallucination/delusion(victim, TRUE, "demon",duration,0)
|
||||
|
||||
var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc)
|
||||
add_logs(victim, null, "entered a blood frenzy")
|
||||
victim.log_message("entered a blood frenzy", LOG_ATTACK)
|
||||
|
||||
chainsaw.item_flags |= NODROP
|
||||
victim.drop_all_held_items()
|
||||
@@ -146,7 +146,7 @@
|
||||
sleep(duration)
|
||||
to_chat(victim, "<span class='notice'>Your bloodlust seeps back into the bog of your subconscious and you regain self control.</span>")
|
||||
qdel(chainsaw)
|
||||
add_logs(victim, null, "exited a blood frenzy")
|
||||
victim.log_message("exited a blood frenzy", LOG_ATTACK)
|
||||
qdel(src)
|
||||
|
||||
/obj/effect/mine/pickup/healing
|
||||
|
||||
@@ -45,3 +45,9 @@
|
||||
icon = 'icons/effects/effects.dmi'
|
||||
icon_state = "shieldsparkles"
|
||||
anchored = TRUE
|
||||
|
||||
/obj/effect/overlay/vis
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
anchored = TRUE
|
||||
var/unused = 0 //When detected to be unused it gets set to world.time, after a while it gets removed
|
||||
var/cache_expiration = 2 MINUTES // overlays which go unused for 2 minutes get cleaned up
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal)
|
||||
/proc/create_portal_pair(turf/source, turf/destination, _creator = null, _lifespan = 300, accuracy = 0, newtype = /obj/effect/portal, atmos_link_override)
|
||||
if(!istype(source) || !istype(destination))
|
||||
return
|
||||
var/turf/actual_destination = get_teleport_turf(destination, accuracy)
|
||||
var/obj/effect/portal/P1 = new newtype(source, _creator, _lifespan, null, FALSE)
|
||||
var/obj/effect/portal/P2 = new newtype(actual_destination, _creator, _lifespan, P1, TRUE)
|
||||
var/obj/effect/portal/P1 = new newtype(source, _creator, _lifespan, null, FALSE, null, atmos_link_override)
|
||||
var/obj/effect/portal/P2 = new newtype(actual_destination, _creator, _lifespan, P1, TRUE, null, atmos_link_override)
|
||||
if(!istype(P1)||!istype(P2))
|
||||
return
|
||||
P1.link_portal(P2)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
last_host_loc = host.loc
|
||||
if(movement_tracker)
|
||||
QDEL_NULL(movement_tracker)
|
||||
movement_tracker = host.AddComponent(/datum/component/redirect, COMSIG_MOVABLE_MOVED, CALLBACK(src, .proc/HandleMove))
|
||||
movement_tracker = host.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_MOVED = CALLBACK(src, .proc/HandleMove)))
|
||||
SetRange(current_range,TRUE)
|
||||
|
||||
/datum/proximity_monitor/Destroy()
|
||||
|
||||
@@ -41,6 +41,13 @@
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/armory_contraband/metastation
|
||||
loot = list(/obj/item/gun/ballistic/automatic/pistol = 5,
|
||||
/obj/item/gun/ballistic/shotgun/automatic/combat = 5,
|
||||
/obj/item/gun/ballistic/revolver/mateba,
|
||||
/obj/item/gun/ballistic/automatic/pistol/deagle,
|
||||
/obj/item/storage/box/syndie_kit/throwing_weapons = 3)
|
||||
|
||||
/obj/effect/spawner/lootdrop/gambling
|
||||
name = "gambling valuables spawner"
|
||||
loot = list(
|
||||
@@ -228,7 +235,7 @@
|
||||
/obj/item/circuitboard/machine/microwave,
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks,
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks/beer,
|
||||
/obj/item/circuitboard/computer/slot_machine
|
||||
/obj/item/circuitboard/computer/slot_machine
|
||||
)
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/rnd
|
||||
@@ -237,14 +244,14 @@
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/aifixer,
|
||||
/obj/item/circuitboard/machine/rdserver,
|
||||
/obj/item/circuitboard/computer/pandemic,
|
||||
/obj/item/circuitboard/computer/pandemic,
|
||||
/obj/item/circuitboard/machine/mechfab,
|
||||
/obj/item/circuitboard/machine/circuit_imprinter/department,
|
||||
/obj/item/circuitboard/computer/teleporter,
|
||||
/obj/item/circuitboard/machine/destructive_analyzer,
|
||||
/obj/item/circuitboard/machine/destructive_analyzer,
|
||||
/obj/item/circuitboard/computer/rdconsole
|
||||
)
|
||||
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/security
|
||||
name = "security circuit board spawner"
|
||||
lootcount = 3
|
||||
@@ -253,13 +260,13 @@
|
||||
/obj/item/circuitboard/computer/security,
|
||||
/obj/item/circuitboard/computer/prisoner
|
||||
)
|
||||
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/engineering
|
||||
name = "engineering circuit board spawner"
|
||||
lootcount = 3
|
||||
loot = list(
|
||||
/obj/item/circuitboard/computer/atmos_alert,
|
||||
/obj/item/circuitboard/computer/stationalert,
|
||||
/obj/item/circuitboard/computer/stationalert,
|
||||
/obj/item/circuitboard/computer/powermonitor
|
||||
)
|
||||
|
||||
@@ -300,7 +307,7 @@
|
||||
/obj/item/circuitboard/computer/borgupload,
|
||||
/obj/item/circuitboard/aicore
|
||||
)
|
||||
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/command
|
||||
name = "secure command circuit board spawner"
|
||||
lootcount = 3
|
||||
@@ -309,7 +316,7 @@
|
||||
/obj/item/circuitboard/computer/communications,
|
||||
/obj/item/circuitboard/computer/card
|
||||
)
|
||||
|
||||
|
||||
/obj/effect/spawner/lootdrop/techstorage/RnD_secure
|
||||
name = "secure RnD circuit board spawner"
|
||||
lootcount = 3
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
message_admins("An alien egg has been delivered to [ADMIN_VERBOSEJMP(T)].")
|
||||
log_game("An alien egg has been delivered to [AREACOORD(T)]")
|
||||
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [get_area_name(T, TRUE)]. Remember to follow all safety precautions when dealing with the specimen."
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /.proc/print_command_report, message), announcement_time))
|
||||
SSticker.OnRoundstart(CALLBACK(GLOBAL_PROC, /proc/addtimer, CALLBACK(GLOBAL_PROC, /proc/print_command_report, message), announcement_time))
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
@@ -37,14 +37,16 @@
|
||||
|
||||
/obj/structure/spider/stickyweb/CanPass(atom/movable/mover, turf/target)
|
||||
if(istype(mover, /mob/living/simple_animal/hostile/poison/giant_spider))
|
||||
return 1
|
||||
return TRUE
|
||||
else if(isliving(mover))
|
||||
if(istype(mover.pulledby, /mob/living/simple_animal/hostile/poison/giant_spider))
|
||||
return TRUE
|
||||
if(prob(50))
|
||||
to_chat(mover, "<span class='danger'>You get stuck in \the [src] for a moment.</span>")
|
||||
return 0
|
||||
return FALSE
|
||||
else if(istype(mover, /obj/item/projectile))
|
||||
return prob(30)
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/obj/structure/spider/eggcluster
|
||||
name = "egg cluster"
|
||||
@@ -120,7 +122,7 @@
|
||||
/obj/structure/spider/spiderling/tarantula
|
||||
grow_as = /mob/living/simple_animal/hostile/poison/giant_spider/tarantula
|
||||
|
||||
/obj/structure/spider/spiderling/Collide(atom/user)
|
||||
/obj/structure/spider/spiderling/Bump(atom/user)
|
||||
if(istype(user, /obj/structure/table))
|
||||
forceMove(user.loc)
|
||||
else
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
icon_state = "cultout"
|
||||
|
||||
/obj/effect/temp_visual/cult/sac
|
||||
name = "maw of Nar-Sie"
|
||||
name = "maw of Nar'Sie"
|
||||
icon_state = "sacconsume"
|
||||
|
||||
/obj/effect/temp_visual/cult/door
|
||||
|
||||
@@ -61,6 +61,8 @@
|
||||
|
||||
/obj/effect/projectile/tracer/tracer/aiming
|
||||
icon_state = "pixelbeam_greyscale"
|
||||
layer = ABOVE_LIGHTING_LAYER
|
||||
plane = ABOVE_LIGHTING_PLANE
|
||||
|
||||
/obj/effect/projectile/tracer/wormhole
|
||||
icon_state = "wormhole_g"
|
||||
|
||||
Reference in New Issue
Block a user