Game folder

This commit is contained in:
Poojawa
2018-09-11 04:06:45 -05:00
parent b6430559e9
commit 8b9ef1e400
270 changed files with 3120 additions and 2523 deletions
+5 -5
View File
@@ -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)
+1 -1
View File
@@ -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)
-1
View File
@@ -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)
+1 -1
View File
@@ -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()
. = ..()
+1 -1
View File
@@ -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 ..()
+2 -2
View File
@@ -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
+6
View File
@@ -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
+3 -3
View File
@@ -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)
+1 -1
View File
@@ -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()
+15 -8
View File
@@ -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
+6 -4
View File
@@ -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"