Merge branch 'master' into upstream-merge-27324

This commit is contained in:
LetterJay
2017-05-23 07:17:45 -05:00
committed by GitHub
255 changed files with 62608 additions and 61937 deletions
+10 -7
View File
@@ -8,7 +8,7 @@
/obj/effect/decal/cleanable/crayon/Initialize(mapload, main = "#FFFFFF", var/type = "rune1", var/e_name = "rune", var/rotation = 0, var/alt_icon = null)
..()
name = e_name
desc = "A [name] vandalizing the station."
if(type == "poseur tag")
@@ -30,22 +30,25 @@
layer = HIGH_OBJ_LAYER //Harder to hide
do_icon_rotate = FALSE //These are designed to always face south, so no rotation please.
var/datum/gang/gang
var/obj/item/device/gangtool/linked_tool
var/area/territory
/obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, var/datum/gang/G, var/e_name = "gang tag", var/rotation = 0)
/obj/effect/decal/cleanable/crayon/gang/Initialize(mapload, var/datum/gang/G, var/e_name = "gang tag", var/rotation = 0, var/mob/user)
if(!type || !G)
qdel(src)
var/area/territory = get_area(src)
territory = get_area(src)
gang = G
var/newcolor = G.color_hex
icon_state = G.name
G.territory_new |= list(territory.type = territory.name)
linked_tool = locate(/obj/item/device/gangtool) in user.contents
if(linked_tool)
linked_tool.tags += src
..(mapload, newcolor, icon_state, e_name, rotation)
/obj/effect/decal/cleanable/crayon/gang/Destroy()
var/area/territory = get_area(src)
if(linked_tool)
linked_tool.tags -= src
if(gang)
gang.territory -= territory.type
gang.territory_new -= territory.type
+2 -2
View File
@@ -1,11 +1,11 @@
/obj/effect/overlay/temp/point
/obj/effect/temp_visual/point
name = "pointer"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "arrow"
layer = POINT_LAYER
duration = 25
/obj/effect/overlay/temp/point/Initialize(mapload, set_invis = 0)
/obj/effect/temp_visual/point/Initialize(mapload, set_invis = 0)
..()
var/atom/old_loc = loc
loc = get_turf(src)
+1 -3
View File
@@ -93,6 +93,4 @@
/obj/effect/abstract/proximity_checker/Crossed(atom/movable/AM)
set waitfor = FALSE
var/atom/H = monitor.host
testing("HasProx: [H] -> [AM]")
H.HasProximity(AM)
monitor.host.HasProximity(AM)
@@ -10,7 +10,7 @@
var/area/A = get_area(T)
new /obj/structure/alien/egg(T)
new /obj/effect/overlay/temp/gravpush(T)
new /obj/effect/temp_visual/gravpush(T)
playsound(T, 'sound/items/party_horn.ogg', 50, 1, -1)
message_admins("An alien egg has been delivered to [A] at [ADMIN_COORDJMP(T)].")
@@ -1,68 +1,68 @@
//temporary visual effects(/obj/effect/overlay/temp) used by clockcult stuff
/obj/effect/overlay/temp/ratvar
//temporary visual effects(/obj/effect/temp_visual) used by clockcult stuff
/obj/effect/temp_visual/ratvar
name = "ratvar's light"
icon = 'icons/effects/clockwork_effects.dmi'
duration = 8
randomdir = 0
layer = ABOVE_NORMAL_TURF_LAYER
/obj/effect/overlay/temp/ratvar/door
/obj/effect/temp_visual/ratvar/door
icon_state = "ratvardoorglow"
layer = CLOSED_DOOR_LAYER //above closed doors
/obj/effect/overlay/temp/ratvar/door/window
/obj/effect/temp_visual/ratvar/door/window
icon_state = "ratvarwindoorglow"
layer = ABOVE_WINDOW_LAYER
/obj/effect/overlay/temp/ratvar/beam
/obj/effect/temp_visual/ratvar/beam
icon_state = "ratvarbeamglow"
/obj/effect/overlay/temp/ratvar/beam/door
/obj/effect/temp_visual/ratvar/beam/door
layer = CLOSED_DOOR_LAYER
/obj/effect/overlay/temp/ratvar/beam/grille
/obj/effect/temp_visual/ratvar/beam/grille
layer = BELOW_OBJ_LAYER
/obj/effect/overlay/temp/ratvar/beam/itemconsume
/obj/effect/temp_visual/ratvar/beam/itemconsume
layer = HIGH_OBJ_LAYER
/obj/effect/overlay/temp/ratvar/beam/falsewall
/obj/effect/temp_visual/ratvar/beam/falsewall
layer = OBJ_LAYER
/obj/effect/overlay/temp/ratvar/beam/catwalk
/obj/effect/temp_visual/ratvar/beam/catwalk
layer = LATTICE_LAYER
/obj/effect/overlay/temp/ratvar/wall
/obj/effect/temp_visual/ratvar/wall
icon_state = "ratvarwallglow"
/obj/effect/overlay/temp/ratvar/wall/false
/obj/effect/temp_visual/ratvar/wall/false
layer = OBJ_LAYER
/obj/effect/overlay/temp/ratvar/floor
/obj/effect/temp_visual/ratvar/floor
icon_state = "ratvarfloorglow"
/obj/effect/overlay/temp/ratvar/floor/catwalk
/obj/effect/temp_visual/ratvar/floor/catwalk
layer = LATTICE_LAYER
/obj/effect/overlay/temp/ratvar/window
/obj/effect/temp_visual/ratvar/window
icon_state = "ratvarwindowglow"
layer = ABOVE_OBJ_LAYER
/obj/effect/overlay/temp/ratvar/window/single
/obj/effect/temp_visual/ratvar/window/single
icon_state = "ratvarwindowglow_s"
/obj/effect/overlay/temp/ratvar/gear
/obj/effect/temp_visual/ratvar/gear
icon_state = "ratvargearglow"
layer = BELOW_OBJ_LAYER
/obj/effect/overlay/temp/ratvar/grille
/obj/effect/temp_visual/ratvar/grille
icon_state = "ratvargrilleglow"
layer = BELOW_OBJ_LAYER
/obj/effect/overlay/temp/ratvar/grille/broken
/obj/effect/temp_visual/ratvar/grille/broken
icon_state = "ratvarbrokengrilleglow"
/obj/effect/overlay/temp/ratvar/mending_mantra
/obj/effect/temp_visual/ratvar/mending_mantra
layer = ABOVE_MOB_LAYER
duration = 20
alpha = 200
@@ -70,7 +70,7 @@
light_range = 1.5
light_color = "#1E8CE1"
/obj/effect/overlay/temp/ratvar/mending_mantra/Initialize(mapload)
/obj/effect/temp_visual/ratvar/mending_mantra/Initialize(mapload)
. = ..()
transform = matrix()*2
var/matrix/M = transform
@@ -78,7 +78,7 @@
animate(src, alpha = 20, time = duration, easing = BOUNCE_EASING, flags = ANIMATION_PARALLEL)
animate(src, transform = M, time = duration, flags = ANIMATION_PARALLEL)
/obj/effect/overlay/temp/ratvar/volt_hit
/obj/effect/temp_visual/ratvar/volt_hit
name = "volt blast"
layer = ABOVE_MOB_LAYER
duration = 5
@@ -89,13 +89,13 @@
var/mob/user
var/damage = 20
/obj/effect/overlay/temp/ratvar/volt_hit/Initialize(mapload, caster, multiplier)
/obj/effect/temp_visual/ratvar/volt_hit/Initialize(mapload, caster, multiplier)
if(multiplier)
damage *= multiplier
duration = max(round(damage * 0.2), 1)
. = ..()
/obj/effect/overlay/temp/ratvar/volt_hit/true/Initialize(mapload, caster, multiplier)
/obj/effect/temp_visual/ratvar/volt_hit/true/Initialize(mapload, caster, multiplier)
. = ..()
user = caster
if(user)
@@ -104,7 +104,7 @@
transform = M
INVOKE_ASYNC(src, .proc/volthit)
/obj/effect/overlay/temp/ratvar/volt_hit/proc/volthit()
/obj/effect/temp_visual/ratvar/volt_hit/proc/volthit()
if(user)
Beam(get_turf(user), "volt_ray", time=duration, maxdistance=8, beam_type=/obj/effect/ebeam/volt_ray)
var/hit_amount = 0
@@ -134,61 +134,61 @@
else
playsound(src, "sparks", 50, 1)
/obj/effect/overlay/temp/ratvar/ocular_warden
/obj/effect/temp_visual/ratvar/ocular_warden
name = "warden's gaze"
layer = ABOVE_MOB_LAYER
icon_state = "warden_gaze"
duration = 3
/obj/effect/overlay/temp/ratvar/ocular_warden/Initialize()
/obj/effect/temp_visual/ratvar/ocular_warden/Initialize()
. = ..()
pixel_x = rand(-8, 8)
pixel_y = rand(-10, 10)
animate(src, alpha = 0, time = 3, easing = EASE_OUT)
/obj/effect/overlay/temp/ratvar/spearbreak
/obj/effect/temp_visual/ratvar/spearbreak
icon = 'icons/effects/64x64.dmi'
icon_state = "ratvarspearbreak"
layer = BELOW_MOB_LAYER
pixel_y = -16
pixel_x = -16
/obj/effect/overlay/temp/ratvar/geis_binding
/obj/effect/temp_visual/ratvar/geis_binding
icon_state = "geisbinding"
/obj/effect/overlay/temp/ratvar/geis_binding/top
/obj/effect/temp_visual/ratvar/geis_binding/top
icon_state = "geisbinding_top"
/obj/effect/overlay/temp/ratvar/component
/obj/effect/temp_visual/ratvar/component
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "belligerent_eye"
layer = ABOVE_MOB_LAYER
duration = 10
/obj/effect/overlay/temp/ratvar/component/Initialize()
/obj/effect/temp_visual/ratvar/component/Initialize()
. = ..()
transform = matrix()*0.75
pixel_x = rand(-10, 10)
pixel_y = rand(-10, -2)
animate(src, pixel_y = pixel_y + 10, alpha = 50, time = 10, easing = EASE_OUT)
/obj/effect/overlay/temp/ratvar/component/cogwheel
/obj/effect/temp_visual/ratvar/component/cogwheel
icon_state = "vanguard_cogwheel"
/obj/effect/overlay/temp/ratvar/component/capacitor
/obj/effect/temp_visual/ratvar/component/capacitor
icon_state = "geis_capacitor"
/obj/effect/overlay/temp/ratvar/component/alloy
/obj/effect/temp_visual/ratvar/component/alloy
icon_state = "replicant_alloy"
/obj/effect/overlay/temp/ratvar/component/ansible
/obj/effect/temp_visual/ratvar/component/ansible
icon_state = "hierophant_ansible"
/obj/effect/overlay/temp/ratvar/sigil
/obj/effect/temp_visual/ratvar/sigil
name = "glowing circle"
icon_state = "sigildull"
/obj/effect/overlay/temp/ratvar/sigil/transgression
/obj/effect/temp_visual/ratvar/sigil/transgression
color = "#FAE48C"
layer = ABOVE_MOB_LAYER
duration = 70
@@ -196,13 +196,13 @@
light_power = 2
light_color = "#FAE48C"
/obj/effect/overlay/temp/ratvar/sigil/transgression/Initialize()
/obj/effect/temp_visual/ratvar/sigil/transgression/Initialize()
. = ..()
var/oldtransform = transform
animate(src, transform = matrix()*2, time = 5)
animate(transform = oldtransform, alpha = 0, time = 65)
/obj/effect/overlay/temp/ratvar/sigil/vitality
/obj/effect/temp_visual/ratvar/sigil/vitality
color = "#1E8CE1"
icon_state = "sigilactivepulse"
layer = ABOVE_MOB_LAYER
@@ -210,7 +210,7 @@
light_power = 0.5
light_color = "#1E8CE1"
/obj/effect/overlay/temp/ratvar/sigil/accession
/obj/effect/temp_visual/ratvar/sigil/accession
color = "#AF0AAF"
layer = ABOVE_MOB_LAYER
duration = 70
@@ -1,58 +1,58 @@
//temporary visual effects(/obj/effect/overlay/temp) used by cult stuff
/obj/effect/overlay/temp/cult
//temporary visual effects(/obj/effect/temp_visual) used by cult stuff
/obj/effect/temp_visual/cult
icon = 'icons/effects/cult_effects.dmi'
randomdir = 0
duration = 10
/obj/effect/overlay/temp/cult/sparks
/obj/effect/temp_visual/cult/sparks
randomdir = 1
name = "blood sparks"
icon_state = "bloodsparkles"
/obj/effect/overlay/temp/cult/blood // The traditional teleport
/obj/effect/temp_visual/cult/blood // The traditional teleport
name = "blood jaunt"
duration = 12
icon_state = "bloodin"
/obj/effect/overlay/temp/cult/blood/out
/obj/effect/temp_visual/cult/blood/out
icon_state = "bloodout"
/obj/effect/overlay/temp/dir_setting/cult/phase // The veil shifter teleport
/obj/effect/temp_visual/dir_setting/cult/phase // The veil shifter teleport
name = "phase glow"
duration = 7
icon_state = "cultin"
/obj/effect/overlay/temp/dir_setting/cult/phase/out
/obj/effect/temp_visual/dir_setting/cult/phase/out
icon_state = "cultout"
/obj/effect/overlay/temp/cult/sac
/obj/effect/temp_visual/cult/sac
name = "maw of Nar-Sie"
icon_state = "sacconsume"
/obj/effect/overlay/temp/cult/door
/obj/effect/temp_visual/cult/door
name = "unholy glow"
icon_state = "doorglow"
layer = CLOSED_FIREDOOR_LAYER //above closed doors
/obj/effect/overlay/temp/cult/door/unruned
/obj/effect/temp_visual/cult/door/unruned
icon_state = "unruneddoorglow"
/obj/effect/overlay/temp/cult/turf
/obj/effect/temp_visual/cult/turf
name = "unholy glow"
icon_state = "wallglow"
layer = ABOVE_NORMAL_TURF_LAYER
/obj/effect/overlay/temp/cult/turf/floor
/obj/effect/temp_visual/cult/turf/floor
icon_state = "floorglow"
duration = 5
//visuals for runes being magically created
/obj/effect/overlay/temp/cult/rune_spawn
/obj/effect/temp_visual/cult/rune_spawn
icon_state = "runeouter"
alpha = 0
var/turnedness = 179 //179 turns counterclockwise, 181 turns clockwise
/obj/effect/overlay/temp/cult/rune_spawn/Initialize(mapload, set_duration, set_color)
/obj/effect/temp_visual/cult/rune_spawn/Initialize(mapload, set_duration, set_color)
if(isnum(set_duration))
duration = set_duration
if(set_color)
@@ -66,79 +66,79 @@
animate(src, alpha = 255, time = duration, easing = BOUNCE_EASING, flags = ANIMATION_PARALLEL)
animate(src, transform = oldtransform, time = duration, flags = ANIMATION_PARALLEL)
/obj/effect/overlay/temp/cult/rune_spawn/rune1
/obj/effect/temp_visual/cult/rune_spawn/rune1
icon_state = "rune1words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune1/inner
/obj/effect/temp_visual/cult/rune_spawn/rune1/inner
icon_state = "rune1inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune1/center
/obj/effect/temp_visual/cult/rune_spawn/rune1/center
icon_state = "rune1center"
/obj/effect/overlay/temp/cult/rune_spawn/rune2
/obj/effect/temp_visual/cult/rune_spawn/rune2
icon_state = "rune2words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune2/inner
/obj/effect/temp_visual/cult/rune_spawn/rune2/inner
icon_state = "rune2inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune2/center
/obj/effect/temp_visual/cult/rune_spawn/rune2/center
icon_state = "rune2center"
/obj/effect/overlay/temp/cult/rune_spawn/rune3
/obj/effect/temp_visual/cult/rune_spawn/rune3
icon_state = "rune3words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune3/inner
/obj/effect/temp_visual/cult/rune_spawn/rune3/inner
icon_state = "rune3inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune3/center
/obj/effect/temp_visual/cult/rune_spawn/rune3/center
icon_state = "rune3center"
/obj/effect/overlay/temp/cult/rune_spawn/rune4
/obj/effect/temp_visual/cult/rune_spawn/rune4
icon_state = "rune4words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune4/inner
/obj/effect/temp_visual/cult/rune_spawn/rune4/inner
icon_state = "rune4inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune4/center
/obj/effect/temp_visual/cult/rune_spawn/rune4/center
icon_state = "rune4center"
/obj/effect/overlay/temp/cult/rune_spawn/rune5
/obj/effect/temp_visual/cult/rune_spawn/rune5
icon_state = "rune5words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune5/inner
/obj/effect/temp_visual/cult/rune_spawn/rune5/inner
icon_state = "rune5inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune5/center
/obj/effect/temp_visual/cult/rune_spawn/rune5/center
icon_state = "rune5center"
/obj/effect/overlay/temp/cult/rune_spawn/rune6
/obj/effect/temp_visual/cult/rune_spawn/rune6
icon_state = "rune6words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune6/inner
/obj/effect/temp_visual/cult/rune_spawn/rune6/inner
icon_state = "rune6inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune6/center
/obj/effect/temp_visual/cult/rune_spawn/rune6/center
icon_state = "rune6center"
/obj/effect/overlay/temp/cult/rune_spawn/rune7
/obj/effect/temp_visual/cult/rune_spawn/rune7
icon_state = "rune7words"
turnedness = 181
/obj/effect/overlay/temp/cult/rune_spawn/rune7/inner
/obj/effect/temp_visual/cult/rune_spawn/rune7/inner
icon_state = "rune7inner"
turnedness = 179
/obj/effect/overlay/temp/cult/rune_spawn/rune7/center
/obj/effect/temp_visual/cult/rune_spawn/rune7/center
icon_state = "rune7center"
@@ -1,12 +1,12 @@
//unsorted miscellaneous temporary visuals
/obj/effect/overlay/temp/dir_setting/bloodsplatter
/obj/effect/temp_visual/dir_setting/bloodsplatter
icon = 'icons/effects/blood.dmi'
duration = 5
randomdir = FALSE
layer = BELOW_MOB_LAYER
var/splatter_type = "splatter"
/obj/effect/overlay/temp/dir_setting/bloodsplatter/Initialize(mapload, set_dir)
/obj/effect/temp_visual/dir_setting/bloodsplatter/Initialize(mapload, set_dir)
if(set_dir in GLOB.diagonals)
icon_state = "[splatter_type][pick(1, 2, 6)]"
else
@@ -40,22 +40,22 @@
layer = ABOVE_MOB_LAYER
animate(src, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = duration)
/obj/effect/overlay/temp/dir_setting/bloodsplatter/xenosplatter
/obj/effect/temp_visual/dir_setting/bloodsplatter/xenosplatter
splatter_type = "xsplatter"
/obj/effect/overlay/temp/dir_setting/speedbike_trail
/obj/effect/temp_visual/dir_setting/speedbike_trail
name = "speedbike trails"
icon_state = "ion_fade"
layer = BELOW_MOB_LAYER
duration = 10
randomdir = 0
/obj/effect/overlay/temp/dir_setting/firing_effect
/obj/effect/temp_visual/dir_setting/firing_effect
icon = 'icons/effects/effects.dmi'
icon_state = "firing_effect"
duration = 2
/obj/effect/overlay/temp/dir_setting/firing_effect/setDir(newdir)
/obj/effect/temp_visual/dir_setting/firing_effect/setDir(newdir)
switch(newdir)
if(NORTH)
layer = BELOW_MOB_LAYER
@@ -69,84 +69,84 @@
pixel_y = rand(-1,1)
..()
/obj/effect/overlay/temp/dir_setting/firing_effect/energy
/obj/effect/temp_visual/dir_setting/firing_effect/energy
icon_state = "firing_effect_energy"
duration = 3
/obj/effect/overlay/temp/dir_setting/firing_effect/magic
/obj/effect/temp_visual/dir_setting/firing_effect/magic
icon_state = "shieldsparkles"
duration = 3
/obj/effect/overlay/temp/dir_setting/ninja
/obj/effect/temp_visual/dir_setting/ninja
name = "ninja shadow"
icon = 'icons/mob/mob.dmi'
icon_state = "uncloak"
duration = 9
/obj/effect/overlay/temp/dir_setting/ninja/cloak
/obj/effect/temp_visual/dir_setting/ninja/cloak
icon_state = "cloak"
/obj/effect/overlay/temp/dir_setting/ninja/shadow
/obj/effect/temp_visual/dir_setting/ninja/shadow
icon_state = "shadow"
/obj/effect/overlay/temp/dir_setting/ninja/phase
/obj/effect/temp_visual/dir_setting/ninja/phase
name = "ninja energy"
icon_state = "phasein"
/obj/effect/overlay/temp/dir_setting/ninja/phase/out
/obj/effect/temp_visual/dir_setting/ninja/phase/out
icon_state = "phaseout"
/obj/effect/overlay/temp/dir_setting/wraith
/obj/effect/temp_visual/dir_setting/wraith
name = "blood"
icon = 'icons/mob/mob.dmi'
icon_state = "phase_shift2"
duration = 12
/obj/effect/overlay/temp/dir_setting/wraith/out
/obj/effect/temp_visual/dir_setting/wraith/out
icon_state = "phase_shift"
/obj/effect/overlay/temp/dir_setting/tailsweep
/obj/effect/temp_visual/dir_setting/tailsweep
icon_state = "tailsweep"
duration = 4
/obj/effect/overlay/temp/wizard
/obj/effect/temp_visual/wizard
name = "water"
icon = 'icons/mob/mob.dmi'
icon_state = "reappear"
duration = 5
/obj/effect/overlay/temp/wizard/out
/obj/effect/temp_visual/wizard/out
icon_state = "liquify"
duration = 12
/obj/effect/overlay/temp/monkeyify
/obj/effect/temp_visual/monkeyify
icon = 'icons/mob/mob.dmi'
icon_state = "h2monkey"
duration = 22
/obj/effect/overlay/temp/monkeyify/humanify
/obj/effect/temp_visual/monkeyify/humanify
icon_state = "monkey2h"
/obj/effect/overlay/temp/borgflash
/obj/effect/temp_visual/borgflash
icon = 'icons/mob/mob.dmi'
icon_state = "blspell"
duration = 5
/obj/effect/overlay/temp/guardian
/obj/effect/temp_visual/guardian
randomdir = 0
/obj/effect/overlay/temp/guardian/phase
/obj/effect/temp_visual/guardian/phase
duration = 5
icon_state = "phasein"
/obj/effect/overlay/temp/guardian/phase/out
/obj/effect/temp_visual/guardian/phase/out
icon_state = "phaseout"
/obj/effect/overlay/temp/decoy
/obj/effect/temp_visual/decoy
desc = "It's a decoy!"
duration = 15
/obj/effect/overlay/temp/decoy/Initialize(mapload, atom/mimiced_atom)
/obj/effect/temp_visual/decoy/Initialize(mapload, atom/mimiced_atom)
. = ..()
alpha = initial(alpha)
if(mimiced_atom)
@@ -155,95 +155,95 @@
setDir(mimiced_atom.dir)
mouse_opacity = 0
/obj/effect/overlay/temp/decoy/fading/Initialize(mapload, atom/mimiced_atom)
/obj/effect/temp_visual/decoy/fading/Initialize(mapload, atom/mimiced_atom)
. = ..()
animate(src, alpha = 0, time = duration)
/obj/effect/overlay/temp/decoy/fading/fivesecond
/obj/effect/temp_visual/decoy/fading/fivesecond
duration = 50
/obj/effect/overlay/temp/small_smoke
/obj/effect/temp_visual/small_smoke
icon_state = "smoke"
duration = 50
/obj/effect/overlay/temp/fire
/obj/effect/temp_visual/fire
icon = 'icons/effects/fire.dmi'
icon_state = "3"
duration = 20
/obj/effect/overlay/temp/revenant
/obj/effect/temp_visual/revenant
name = "spooky lights"
icon_state = "purplesparkles"
/obj/effect/overlay/temp/revenant/cracks
/obj/effect/temp_visual/revenant/cracks
name = "glowing cracks"
icon_state = "purplecrack"
duration = 6
/obj/effect/overlay/temp/gravpush
/obj/effect/temp_visual/gravpush
name = "gravity wave"
icon_state = "shieldsparkles"
duration = 5
/obj/effect/overlay/temp/telekinesis
/obj/effect/temp_visual/telekinesis
name = "telekinetic force"
icon_state = "empdisable"
duration = 5
/obj/effect/overlay/temp/emp
/obj/effect/temp_visual/emp
name = "emp sparks"
icon_state = "empdisable"
/obj/effect/overlay/temp/emp/pulse
/obj/effect/temp_visual/emp/pulse
name = "emp pulse"
icon_state = "emppulse"
duration = 8
randomdir = 0
/obj/effect/overlay/temp/gib_animation
/obj/effect/temp_visual/gib_animation
icon = 'icons/mob/mob.dmi'
duration = 15
/obj/effect/overlay/temp/gib_animation/Initialize(mapload, gib_icon)
/obj/effect/temp_visual/gib_animation/Initialize(mapload, gib_icon)
icon_state = gib_icon // Needs to be before ..() so icon is correct
. = ..()
/obj/effect/overlay/temp/gib_animation/animal
/obj/effect/temp_visual/gib_animation/animal
icon = 'icons/mob/animal.dmi'
/obj/effect/overlay/temp/dust_animation
/obj/effect/temp_visual/dust_animation
icon = 'icons/mob/mob.dmi'
duration = 15
/obj/effect/overlay/temp/dust_animation/Initialize(mapload, dust_icon)
/obj/effect/temp_visual/dust_animation/Initialize(mapload, dust_icon)
icon_state = dust_icon // Before ..() so the correct icon is flick()'d
. = ..()
/obj/effect/overlay/temp/mummy_animation
/obj/effect/temp_visual/mummy_animation
icon = 'icons/mob/mob.dmi'
icon_state = "mummy_revive"
duration = 20
/obj/effect/overlay/temp/heal //color is white by default, set to whatever is needed
/obj/effect/temp_visual/heal //color is white by default, set to whatever is needed
name = "healing glow"
icon_state = "heal"
duration = 15
/obj/effect/overlay/temp/heal/Initialize(mapload, set_color)
/obj/effect/temp_visual/heal/Initialize(mapload, set_color)
if(set_color)
add_atom_colour(set_color, FIXED_COLOUR_PRIORITY)
. = ..()
pixel_x = rand(-12, 12)
pixel_y = rand(-9, 0)
/obj/effect/overlay/temp/kinetic_blast
/obj/effect/temp_visual/kinetic_blast
name = "kinetic explosion"
icon = 'icons/obj/projectiles.dmi'
icon_state = "kinetic_blast"
layer = ABOVE_ALL_MOB_LAYER
duration = 4
/obj/effect/overlay/temp/explosion
/obj/effect/temp_visual/explosion
name = "explosion"
icon = 'icons/effects/96x96.dmi'
icon_state = "explosion"
@@ -251,22 +251,22 @@
pixel_y = -32
duration = 8
/obj/effect/overlay/temp/explosion/fast
/obj/effect/temp_visual/explosion/fast
icon_state = "explosionfast"
duration = 4
/obj/effect/overlay/temp/blob
/obj/effect/temp_visual/blob
name = "blob"
icon_state = "blob_attack"
alpha = 140
randomdir = 0
duration = 6
/obj/effect/overlay/temp/impact_effect
/obj/effect/temp_visual/impact_effect
icon_state = "impact_bullet"
duration = 5
/obj/effect/overlay/temp/impact_effect/Initialize(mapload, atom/target, obj/item/projectile/P)
/obj/effect/temp_visual/impact_effect/Initialize(mapload, atom/target, obj/item/projectile/P)
if(target == P.original) //the projectile hit the target originally clicked
pixel_x = P.p_x + target.pixel_x - 16 + rand(-4,4)
pixel_y = P.p_y + target.pixel_y - 16 + rand(-4,4)
@@ -275,37 +275,37 @@
pixel_y = target.pixel_y + rand(-4,4)
. = ..()
/obj/effect/overlay/temp/impact_effect/red_laser
/obj/effect/temp_visual/impact_effect/red_laser
icon_state = "impact_laser"
duration = 4
/obj/effect/overlay/temp/impact_effect/red_laser/wall
/obj/effect/temp_visual/impact_effect/red_laser/wall
icon_state = "impact_laser_wall"
duration = 10
/obj/effect/overlay/temp/impact_effect/blue_laser
/obj/effect/temp_visual/impact_effect/blue_laser
icon_state = "impact_laser_blue"
duration = 4
/obj/effect/overlay/temp/impact_effect/green_laser
/obj/effect/temp_visual/impact_effect/green_laser
icon_state = "impact_laser_green"
duration = 4
/obj/effect/overlay/temp/impact_effect/purple_laser
/obj/effect/temp_visual/impact_effect/purple_laser
icon_state = "impact_laser_purple"
duration = 4
/obj/effect/overlay/temp/impact_effect/ion
/obj/effect/temp_visual/impact_effect/ion
icon_state = "shieldsparkles"
duration = 6
/obj/effect/overlay/temp/heart
/obj/effect/temp_visual/heart
name = "heart"
icon = 'icons/mob/animal.dmi'
icon_state = "heart"
duration = 25
/obj/effect/overlay/temp/heart/Initialize(mapload)
/obj/effect/temp_visual/heart/Initialize(mapload)
. = ..()
pixel_x = rand(-4,4)
pixel_y = rand(-4,4)
@@ -1,5 +1,5 @@
//temporary visual effects
/obj/effect/overlay/temp
/obj/effect/temp_visual
icon_state = "nothing"
anchored = 1
layer = ABOVE_MOB_LAYER
@@ -8,30 +8,30 @@
var/randomdir = TRUE
var/timerid
/obj/effect/overlay/temp/Initialize()
/obj/effect/temp_visual/Initialize()
. = ..()
if(randomdir)
setDir(pick(GLOB.cardinal))
timerid = QDEL_IN(src, duration)
/obj/effect/overlay/temp/Destroy()
/obj/effect/temp_visual/Destroy()
. = ..()
deltimer(timerid)
/obj/effect/overlay/temp/singularity_act()
/obj/effect/temp_visual/singularity_act()
return
/obj/effect/overlay/temp/singularity_pull()
/obj/effect/temp_visual/singularity_pull()
return
/obj/effect/overlay/temp/ex_act()
/obj/effect/temp_visual/ex_act()
return
/obj/effect/overlay/temp/dir_setting
/obj/effect/temp_visual/dir_setting
randomdir = FALSE
/obj/effect/overlay/temp/dir_setting/Initialize(mapload, set_dir)
/obj/effect/temp_visual/dir_setting/Initialize(mapload, set_dir)
if(set_dir)
setDir(set_dir)
. = ..()
+1 -1
View File
@@ -9,7 +9,7 @@
log_game("EMP with size ([heavy_range], [light_range]) in area [epicenter.loc.name] ")
if(heavy_range > 1)
new /obj/effect/overlay/temp/emp/pulse(epicenter)
new /obj/effect/temp_visual/emp/pulse(epicenter)
if(heavy_range > light_range)
light_range = heavy_range
+2 -1
View File
@@ -68,6 +68,7 @@
var/pre_noise = FALSE
var/post_noise = FALSE
/obj/item/toy/crayon/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!</span>")
return (BRUTELOSS|OXYLOSS)
@@ -422,7 +423,7 @@
var/gangID = user.mind.gang_datum
var/area/territory = get_area(target)
new /obj/effect/decal/cleanable/crayon/gang(target,gangID,"graffiti",0)
new /obj/effect/decal/cleanable/crayon/gang(target,gangID,"graffiti",0,user)
to_chat(user, "<span class='notice'>You tagged [territory] for your gang!</span>")
/obj/item/toy/crayon/red
@@ -56,13 +56,13 @@
qdel(active_dummy)
active_dummy = null
to_chat(usr, "<span class='notice'>You deactivate \the [src].</span>")
new /obj/effect/overlay/temp/emp/pulse(get_turf(src))
new /obj/effect/temp_visual/emp/pulse(get_turf(src))
else
playsound(get_turf(src), 'sound/effects/pop.ogg', 100, 1, -6)
var/obj/effect/dummy/chameleon/C = new/obj/effect/dummy/chameleon(usr.loc)
C.activate(usr, saved_appearance, src)
to_chat(usr, "<span class='notice'>You activate \the [src].</span>")
new /obj/effect/overlay/temp/emp/pulse(get_turf(src))
new /obj/effect/temp_visual/emp/pulse(get_turf(src))
/obj/item/device/chameleon/proc/disrupt(delete_dummy = 1)
if(active_dummy)
@@ -162,18 +162,18 @@
return
var/T = get_turf(target)
if(locate(/mob/living) in T)
new /obj/effect/overlay/temp/medical_holosign(T,user) //produce a holographic glow
new /obj/effect/temp_visual/medical_holosign(T,user) //produce a holographic glow
holo_cooldown = world.time + 100
return
..()
/obj/effect/overlay/temp/medical_holosign
/obj/effect/temp_visual/medical_holosign
name = "medical holosign"
desc = "A small holographic glow that indicates a medic is coming to treat a patient."
icon_state = "medi_holo"
duration = 30
/obj/effect/overlay/temp/medical_holosign/Initialize(mapload, creator)
/obj/effect/temp_visual/medical_holosign/Initialize(mapload, creator)
. = ..()
playsound(loc, 'sound/machines/ping.ogg', 50, 0) //make some noise!
if(creator)
+23 -9
View File
@@ -522,10 +522,10 @@
var/projectile_damage_tick_ecost_coefficient = 2 //Lasers get half their damage chopped off, drains 50 power/tick. Note that fields are processed 5 times per second.
var/projectile_speed_coefficient = 1.5 //Higher the coefficient slower the projectile.
var/projectile_tick_speed_ecost = 15
var/current_damage_dampening = 0
var/list/obj/item/projectile/tracked
var/image/projectile_effect
var/field_radius = 3
var/active = FALSE
/obj/item/borg/projectile_dampen/debug
maxenergy = 50000
@@ -538,13 +538,13 @@
tracked = list()
icon_state = "shield0"
START_PROCESSING(SSfastprocess, src)
host = loc
/obj/item/borg/projectile_dampen/Destroy()
STOP_PROCESSING(SSfastprocess, src)
return ..()
/obj/item/borg/projectile_dampen/attack_self(mob/user)
var/active = FALSE
if(!istype(dampening_field))
activate_field()
active = TRUE
@@ -552,17 +552,30 @@
deactivate_field()
active = FALSE
to_chat(user, "<span class='boldnotice'>You [active? "activate":"deactivate"] the [src].</span>")
/obj/item/borg/projectile_dampen/update_icon()
. = ..()
icon_state = "[initial(icon_state)][active]"
/obj/item/borg/projectile_dampen/proc/activate_field()
if(!istype(dampening_field))
dampening_field = make_field(/datum/proximity_monitor/advanced/peaceborg_dampener, list("current_range" = field_radius, "host" = src, "projector" = src))
update_icon()
/obj/item/borg/projectile_dampen/proc/deactivate_field()
QDEL_NULL(dampening_field)
visible_message("<span class='warning'>The [src] shuts off!</span>")
for(var/obj/item/projectile/P in tracked)
restore_projectile(P)
update_icon()
/obj/item/borg/projectile_dampen/dropped()
. = ..()
host = loc
/obj/item/borg/projectile_dampen/equipped()
. = ..()
host = loc
/obj/item/borg/projectile_dampen/process()
process_recharge()
@@ -576,10 +589,11 @@
/obj/item/borg/projectile_dampen/proc/process_usage()
var/usage = 0
for(var/I in tracked)
if(!tracked[I]) //No damage
var/obj/item/projectile/P = I
if(!P.stun && P.nodamage) //No damage
continue
usage += projectile_tick_speed_ecost
usage += (current_damage_dampening * projectile_damage_tick_ecost_coefficient)
usage += (tracked[I] * projectile_damage_tick_ecost_coefficient)
energy = Clamp(energy - usage, 0, maxenergy)
if(energy <= 0)
deactivate_field()
@@ -587,8 +601,11 @@
/obj/item/borg/projectile_dampen/proc/process_recharge()
if(!istype(host))
energy = Clamp(energy + energy_recharge, 0, maxenergy)
return
if(iscyborg(host.loc))
host = host.loc
else
energy = Clamp(energy + energy_recharge, 0, maxenergy)
return
if((host.cell.charge >= (host.cell.maxcharge * cyborg_cell_critical_percentage)) && (energy < maxenergy))
host.cell.use(energy_recharge*energy_recharge_cyborg_drain_coefficient)
energy += energy_recharge
@@ -598,7 +615,6 @@
return
if(track_projectile)
tracked[P] = P.damage
current_damage_dampening += P.damage
P.damage *= projectile_damage_coefficient
P.speed *= projectile_speed_coefficient
P.add_overlay(projectile_effect)
@@ -608,8 +624,6 @@
P.damage *= (1/projectile_damage_coefficient)
P.speed *= (1/projectile_speed_coefficient)
P.cut_overlay(projectile_effect)
current_damage_dampening -= P.damage
/**********************************************************************
HUD/SIGHT things
@@ -50,7 +50,8 @@
M.dna.uni_identity = merge_text(M.dna.uni_identity, fields["UI"])
M.updateappearance(mutations_overlay_update=1)
log_attack(log_msg)
return TRUE
return TRUE
return FALSE
/obj/item/weapon/dnainjector/attack(mob/target, mob/user)
if(!user.IsAdvancedToolUser())
@@ -77,9 +78,9 @@
add_logs(user, target, "injected", src)
if(!inject(target, user)) //Now we actually do the heavy lifting.
to_chat(user, "<span class='notice'>It appears that [target] does not have compatible DNA.</span>")
if(!inject(target, user)) //Now we actually do the heavy lifting.
to_chat(user, "<span class='notice'>It appears that [target] does not have compatible DNA.</span>")
used = 1
icon_state = "dnainjector0"
desc += " This one is used up."
@@ -307,11 +308,11 @@
/obj/item/weapon/dnainjector/timed/inject(mob/living/carbon/M, mob/user)
prepare()
if(M.stat == DEAD) //prevents dead people from having their DNA changed
to_chat(user, "<span class='notice'>You can't modify [M]'s DNA while [M.p_theyre()] dead.</span>")
return FALSE
if(M.has_dna() && !(M.disabilities & NOCLONE))
if(M.stat == DEAD) //prevents dead people from having their DNA changed
to_chat(user, "<span class='notice'>You can't modify [M]'s DNA while [M.p_theyre()] dead.</span>")
return
M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2))
var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]"
var/endtime = world.time+duration
@@ -352,9 +353,9 @@
M.updateappearance(mutations_overlay_update=1)
M.dna.temporary_mutations[UI_CHANGED] = endtime
log_attack(log_msg)
return TRUE
else
to_chat(user, "<span class='notice'>It appears that [M] does not have compatible DNA.</span>")
return
return FALSE
/obj/item/weapon/dnainjector/timed/hulk
name = "\improper DNA injector (Hulk)"
@@ -48,27 +48,27 @@
/obj/item/weapon/grenade/attack_self(mob/user)
if(!active)
if(clown_check(user))
preprime(user)
preprime(user)
if(iscarbon(user))
var/mob/living/carbon/C = user
C.throw_mode_on()
/obj/item/weapon/grenade/proc/preprime(mob/user)
if(user)
to_chat(user, "<span class='warning'>You prime the [name]! [det_time/10] seconds!</span>")
playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1)
active = TRUE
icon_state = initial(icon_state) + "_active"
add_fingerprint(user)
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
if(user)
var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]"
GLOB.bombers += message
message_admins(message)
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].")
addtimer(CALLBACK(src, .proc/prime), det_time)
/obj/item/weapon/grenade/proc/preprime(mob/user)
if(user)
to_chat(user, "<span class='warning'>You prime the [name]! [det_time/10] seconds!</span>")
playsound(loc, 'sound/weapons/armbomb.ogg', 60, 1)
active = TRUE
icon_state = initial(icon_state) + "_active"
add_fingerprint(user)
var/turf/bombturf = get_turf(src)
var/area/A = get_area(bombturf)
if(user)
var/message = "[ADMIN_LOOKUPFLW(user)]) has primed a [name] for detonation at [ADMIN_COORDJMP(bombturf)]"
GLOB.bombers += message
message_admins(message)
log_game("[key_name(usr)] has primed a [name] for detonation at [A.name] [COORD(bombturf)].")
addtimer(CALLBACK(src, .proc/prime), det_time)
/obj/item/weapon/grenade/proc/prime()
@@ -108,4 +108,4 @@
if(damage && attack_type == PROJECTILE_ATTACK && prob(15))
owner.visible_message("<span class='danger'>[attack_text] hits [owner]'s [src], setting it off! What a shot!</span>")
prime()
return 1 //It hit the grenade, not them
return 1 //It hit the grenade, not them
+1 -1
View File
@@ -80,7 +80,7 @@
target.apply_damage(force * fisto_setting, BRUTE)
target.visible_message("<span class='danger'>[user]'s powerfist lets out a loud hiss as they punch [target.name]!</span>", \
"<span class='userdanger'>You cry out in pain as [user]'s punch flings you backwards!</span>")
new /obj/effect/overlay/temp/kinetic_blast(target.loc)
new /obj/effect/temp_visual/kinetic_blast(target.loc)
playsound(loc, 'sound/weapons/resonator_blast.ogg', 50, 1)
playsound(loc, 'sound/weapons/genhit2.ogg', 50, 1)
@@ -247,10 +247,10 @@
)
/obj/item/weapon/storage/belt/military
name = "military belt"
desc = "A syndicate belt designed to be used by boarding parties. Its style is modeled after the hardsuits they wear."
icon_state = "militarybelt"
item_state = "military"
name = "chest rig"
desc = "A set of tactical webbing worn by Syndicate boarding parties."
icon_state = "explorer1"
item_state = "explorer1"
max_w_class = WEIGHT_CLASS_SMALL
/obj/item/weapon/storage/belt/military/abductor
@@ -207,9 +207,3 @@
var/obj/item/clothing/suit/space/hardsuit/C = wear_suit
J = C.jetpack
return J
/mob/has_gravity(turf/T)
var/obj/item/weapon/tank/jetpack/J = get_jetpack()
if(J && J.on)
return FALSE
return ..()
+2 -2
View File
@@ -140,8 +140,8 @@
item_state = "plasmaman_tank_belt"
slot_flags = SLOT_BELT
force = 5
volume = 3
w_class = WEIGHT_CLASS_SMALL //thanks i forgot this
volume = 3
w_class = WEIGHT_CLASS_SMALL //thanks i forgot this
/obj/item/weapon/tank/internals/plasmaman/belt/full/New()
..()
@@ -106,7 +106,7 @@
new /obj/item/device/flashlight/seclite(src)
new /obj/item/clothing/gloves/krav_maga/sec(src)
new /obj/item/weapon/door_remote/head_of_security(src)
new /obj/item/weapon/gun/ballistic/shotgun/automatic/dual_tube(src)
new /obj/item/weapon/gun/ballistic/shotgun/automatic/combat/compact(src)
/obj/structure/closet/secure_closet/security
name = "security officer's locker"
+2 -2
View File
@@ -331,8 +331,8 @@
/obj/structure/falsewall/brass/New(loc)
..()
var/turf/T = get_turf(src)
new /obj/effect/overlay/temp/ratvar/wall/false(T)
new /obj/effect/overlay/temp/ratvar/beam/falsewall(T)
new /obj/effect/temp_visual/ratvar/wall/false(T)
new /obj/effect/temp_visual/ratvar/beam/falsewall(T)
change_construction_value(4)
/obj/structure/falsewall/brass/Destroy()
@@ -152,6 +152,8 @@
var/transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)",,"Yes","No")
if(transfer_choice != "Yes")
return
if(QDELETED(src) || uses <= 0)
return
log_game("[user.ckey] golem-swapped into [src]")
user.visible_message("<span class='notice'>A faint light leaves [user], moving to [src] and animating it!</span>","<span class='notice'>You leave your old body behind, and transfer into [src]!</span>")
create(ckey = user.ckey, flavour = FALSE, name = user.real_name)
+3 -3
View File
@@ -254,10 +254,10 @@
/obj/structure/grille/ratvar/New()
..()
if(broken)
new /obj/effect/overlay/temp/ratvar/grille/broken(get_turf(src))
new /obj/effect/temp_visual/ratvar/grille/broken(get_turf(src))
else
new /obj/effect/overlay/temp/ratvar/grille(get_turf(src))
new /obj/effect/overlay/temp/ratvar/beam/grille(get_turf(src))
new /obj/effect/temp_visual/ratvar/grille(get_turf(src))
new /obj/effect/temp_visual/ratvar/beam/grille(get_turf(src))
/obj/structure/grille/ratvar/narsie_act()
take_damage(rand(1, 3), BRUTE)
+2 -2
View File
@@ -102,8 +102,8 @@
/obj/structure/lattice/catwalk/clockwork/Initialize(mapload)
..()
new /obj/effect/overlay/temp/ratvar/floor/catwalk(loc)
new /obj/effect/overlay/temp/ratvar/beam/catwalk(loc)
new /obj/effect/temp_visual/ratvar/floor/catwalk(loc)
new /obj/effect/temp_visual/ratvar/beam/catwalk(loc)
/obj/structure/lattice/catwalk/clockwork/ratvar_act()
return
+2 -2
View File
@@ -545,7 +545,7 @@
qdel(I)
var/amount_of_gears = 2
if(fulltile)
new /obj/effect/overlay/temp/ratvar/window(get_turf(src))
new /obj/effect/temp_visual/ratvar/window(get_turf(src))
amount_of_gears = 4
for(var/i in 1 to amount_of_gears)
debris += new/obj/item/clockwork/alloy_shards/medium/gear_bit()
@@ -553,7 +553,7 @@
/obj/structure/window/reinforced/clockwork/setDir(direct)
if(!made_glow)
var/obj/effect/E = new /obj/effect/overlay/temp/ratvar/window/single(get_turf(src))
var/obj/effect/E = new /obj/effect/temp_visual/ratvar/window/single(get_turf(src))
E.setDir(direct)
made_glow = TRUE
..()