Merge branch 'master' into mirror-38933

This commit is contained in:
kevinz000
2018-07-14 15:26:49 -07:00
committed by GitHub
1555 changed files with 162517 additions and 36374 deletions
+14 -15
View File
@@ -86,9 +86,6 @@
density = FALSE
var/boing = 0
/obj/effect/anomaly/grav/New()
..()
/obj/effect/anomaly/grav/anomalyEffect()
..()
boing = 1
@@ -121,6 +118,20 @@
A.throw_at(target, 5, 1)
boing = 0
/obj/effect/anomaly/grav/high
var/grav_field
/obj/effect/anomaly/grav/high/Initialize(mapload, new_lifespan)
. = ..()
setup_grav_field()
/obj/effect/anomaly/grav/high/proc/setup_grav_field()
grav_field = make_field(/datum/proximity_monitor/advanced/gravity, list("current_range" = 7, "host" = src, "gravity_value" = rand(0,3)))
/obj/effect/anomaly/grav/high/Destroy()
QDEL_NULL(grav_field)
. = ..()
/////////////////////
/obj/effect/anomaly/flux
@@ -131,9 +142,6 @@
var/shockdamage = 20
var/explosive = TRUE
/obj/effect/anomaly/flux/New()
..()
/obj/effect/anomaly/flux/anomalyEffect()
..()
canshock = 1
@@ -179,9 +187,6 @@
icon_state = "bluespace"
density = TRUE
/obj/effect/anomaly/bluespace/New()
..()
/obj/effect/anomaly/bluespace/anomalyEffect()
..()
for(var/mob/living/M in range(1,src))
@@ -252,9 +257,6 @@
icon_state = "mustard"
var/ticks = 0
/obj/effect/anomaly/pyro/New()
..()
/obj/effect/anomaly/pyro/anomalyEffect()
..()
ticks++
@@ -287,9 +289,6 @@
icon_state = "bhole3"
desc = "That's a nice station you have there. It'd be a shame if something happened to it."
/obj/effect/anomaly/bhole/New()
..()
/obj/effect/anomaly/bhole/anomalyEffect()
..()
if(!isturf(loc)) //blackhole cannot be contained inside anything. Weird stuff might happen
+2 -2
View File
@@ -11,8 +11,8 @@
var/static/list/AllTeleporters
/obj/effect/bump_teleporter/New()
..()
/obj/effect/bump_teleporter/Initialize()
. = ..()
LAZYADD(AllTeleporters, src)
/obj/effect/bump_teleporter/Destroy()
+3 -3
View File
@@ -31,7 +31,7 @@
poster_structure = null
. = ..()
// These icon_states may be overriden, but are for mapper's convinence
// These icon_states may be overridden, but are for mapper's convinence
/obj/item/poster/random_contraband
name = "random contraband poster"
poster_type = /obj/structure/sign/poster/contraband/random
@@ -127,7 +127,7 @@
// Deny placing posters on currently-diagonal walls, although the wall may change in the future.
if (smooth & SMOOTH_DIAGONAL)
for (var/O in our_overlays)
for (var/O in overlays)
var/image/I = O
if (copytext(I.icon_state, 1, 3) == "d-")
return
@@ -547,7 +547,7 @@
/obj/structure/sign/poster/official/anniversary_vintage_reprint
name = "50th Anniversary Vintage Reprint"
desc = "A reprint of a poster from 2505, commemorating the 50th Aniversery of Nanoposters Manufacturing, a subsidary of Nanotrasen."
desc = "A reprint of a poster from 2505, commemorating the 50th Anniversary of Nanoposters Manufacturing, a subsidiary of Nanotrasen."
icon_state = "poster26_legit"
/obj/structure/sign/poster/official/fruit_bowl
+7 -8
View File
@@ -5,18 +5,18 @@
And maybe we'll come back\n\
To Earth, who can tell?"
var/displayed_text
var/atom/attached_to
color = "#ff0000"
var/text_size = 4
var/started = FALSE
invisibility = INVISIBILITY_OBSERVER
anchored = TRUE
layer = GHOST_LAYER
color = "#ff0000" // text color
var/text_size = 3 // larger values clip when the displayed text is larger than 2 digits.
var/started = FALSE
var/displayed_text
var/atom/attached_to
/obj/effect/countdown/New(atom/A)
/obj/effect/countdown/Initialize()
. = ..()
attach(A)
attach(loc)
/obj/effect/countdown/examine(mob/user)
. = ..()
@@ -135,7 +135,6 @@
/obj/effect/countdown/doomsday
name = "doomsday countdown"
text_size = 3
/obj/effect/countdown/doomsday/get_value()
var/obj/machinery/doomsday_device/DD = attached_to
@@ -9,7 +9,7 @@
/obj/effect/decal/cleanable/Initialize(mapload, list/datum/disease/diseases)
. = ..()
if (random_icon_states && length(random_icon_states) > 0)
if (random_icon_states && (icon_state == initial(icon_state)) && length(random_icon_states) > 0)
icon_state = pick(random_icon_states)
create_reagents(300)
if(loc && isturf(loc))
@@ -10,14 +10,15 @@ would spawn and follow the beaker, even if it is carried or thrown.
name = "particle effect"
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
pass_flags = PASSTABLE | PASSGRILLE
anchored = TRUE
/obj/effect/particle_effect/New()
..()
/obj/effect/particle_effect/Initialize()
. = ..()
GLOB.cameranet.updateVisibility(src)
/obj/effect/particle_effect/Destroy()
GLOB.cameranet.updateVisibility(src)
. = ..()
return ..()
/datum/effect_system
var/number = 3
@@ -4,8 +4,8 @@
opacity = 1
anchored = TRUE
/obj/effect/particle_effect/expl_particles/New()
..()
/obj/effect/particle_effect/expl_particles/Initialize()
. = ..()
QDEL_IN(src, 15)
/datum/effect_system/expl_particles
@@ -29,8 +29,8 @@
pixel_x = -32
pixel_y = -32
/obj/effect/explosion/New()
..()
/obj/effect/explosion/Initialize()
. = ..()
QDEL_IN(src, 10)
/datum/effect_system/explosion
@@ -270,8 +270,8 @@
max_integrity = 20
CanAtmosPass = ATMOS_PASS_DENSITY
/obj/structure/foamedmetal/New()
..()
/obj/structure/foamedmetal/Initialize()
. = ..()
air_update_turf(1)
@@ -30,8 +30,8 @@
set_opacity(0) //if we were blocking view, we aren't now because we're fading out
stoplag()
/obj/effect/particle_effect/smoke/New()
..()
/obj/effect/particle_effect/smoke/Initialize()
. = ..()
create_reagents(500)
START_PROCESSING(SSobj, src)
@@ -279,20 +279,19 @@
contained += " [reagent] "
if(contained)
contained = "\[[contained]\]"
var/area/A = get_area(location)
var/where = "[A.name] | [location.x], [location.y]"
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 = "(<A HREF='?_src_=holder;[HrefToken()];adminmoreinfo=[REF(M)]'>?</a>) (<A HREF='?_src_=holder;[HrefToken()];adminplayerobservefollow=[REF(M)]'>FLW</A>) "
message_admins("Smoke: ([whereLink])[contained]. Key: [carry.my_atom.fingerprintslast][more].", 0, 1)
log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
more = "[ADMIN_LOOKUPFLW(M)] "
message_admins("Smoke: ([whereLink])[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.", 0, 1)
message_admins("Smoke: ([whereLink])[contained]. No associated key.")
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
@@ -22,26 +22,26 @@
anchored = TRUE
light_range = 1
/obj/effect/particle_effect/sparks/New()
..()
/obj/effect/particle_effect/sparks/Initialize()
. = ..()
flick("sparks", src) // replay the animation
playsound(src.loc, "sparks", 100, 1)
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(1000,100)
T.hotspot_expose(700,5)
QDEL_IN(src, 20)
/obj/effect/particle_effect/sparks/Destroy()
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(1000,100)
T.hotspot_expose(700,1)
return ..()
/obj/effect/particle_effect/sparks/Move()
..()
var/turf/T = loc
if(isturf(T))
T.hotspot_expose(1000,100)
T.hotspot_expose(700,1)
/datum/effect_system/spark_spread
effect_type = /obj/effect/particle_effect/sparks
@@ -7,8 +7,8 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/effect/particle_effect/water/New()
..()
/obj/effect/particle_effect/water/Initialize()
. = ..()
QDEL_IN(src, 70)
/obj/effect/particle_effect/water/Move(turf/newloc)
@@ -45,8 +45,8 @@ steam.start() -- spawns the effect
icon_state = "extinguish"
density = FALSE
/obj/effect/particle_effect/steam/New()
..()
/obj/effect/particle_effect/steam/Initialize()
. = ..()
QDEL_IN(src, 20)
/datum/effect_system/steam_spread
+2 -2
View File
@@ -8,8 +8,8 @@
CanAtmosPass = ATMOS_PASS_DENSITY
var/timeleft = 300 //Set to 0 for permanent forcefields (ugh)
/obj/effect/forcefield/New()
..()
/obj/effect/forcefield/Initialize()
. = ..()
if(timeleft)
QDEL_IN(src, timeleft)
-17
View File
@@ -1,17 +0,0 @@
/obj/effect/manifest
name = "manifest"
icon = 'icons/mob/screen_gen.dmi'
icon_state = "x"
/obj/effect/manifest/New()
src.invisibility = INVISIBILITY_ABSTRACT
/obj/effect/manifest/proc/manifest()
var/dat = "<B>Crew Manifest</B>:<BR>"
for(var/mob/living/carbon/human/M in GLOB.carbon_list)
dat += text(" <B>[]</B> - []<BR>", M.name, M.get_assignment())
var/obj/item/paper/P = new /obj/item/paper( src.loc )
P.info = dat
P.name = "paper- 'Crew Manifest'"
//SN src = null
qdel(src)
+3 -3
View File
@@ -98,8 +98,8 @@
density = FALSE
var/duration = 0
/obj/effect/mine/pickup/New()
..()
/obj/effect/mine/pickup/Initialize()
. = ..()
animate(src, pixel_y = 4, time = 20, loop = -1)
/obj/effect/mine/pickup/triggermine(mob/victim)
@@ -131,7 +131,7 @@
var/obj/item/twohanded/required/chainsaw/doomslayer/chainsaw = new(victim.loc)
add_logs(victim, null, "entered a blood frenzy")
chainsaw.flags_1 |= NODROP_1
chainsaw.item_flags |= NODROP
victim.drop_all_held_items()
victim.put_in_hands(chainsaw, forced = TRUE)
chainsaw.attack_self(victim)
+8 -6
View File
@@ -1,6 +1,5 @@
/obj/effect/overlay
name = "overlay"
var/i_attached//Added for possible image attachments to objects. For hallucinations and the like.
/obj/effect/overlay/singularity_act()
return
@@ -14,12 +13,12 @@
icon_state="b_beam"
var/atom/BeamSource
/obj/effect/overlay/beam/New()
..()
/obj/effect/overlay/beam/Initialize()
. = ..()
QDEL_IN(src, 10)
/obj/effect/overlay/palmtree_r
name = "Palm tree"
name = "palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm1"
density = TRUE
@@ -27,7 +26,7 @@
anchored = TRUE
/obj/effect/overlay/palmtree_l
name = "Palm tree"
name = "palm tree"
icon = 'icons/misc/beach2.dmi'
icon_state = "palm2"
density = TRUE
@@ -35,11 +34,14 @@
anchored = TRUE
/obj/effect/overlay/coconut
name = "Coconuts"
gender = PLURAL
name = "coconuts"
icon = 'icons/misc/beach.dmi'
icon_state = "coconuts"
/obj/effect/overlay/sparkles
gender = PLURAL
name = "sparkles"
icon = 'icons/effects/effects.dmi'
icon_state = "shieldsparkles"
anchored = TRUE
+1 -1
View File
@@ -153,7 +153,7 @@
if(!force && (!ismecha(M) && !istype(M, /obj/item/projectile) && M.anchored && !allow_anchored))
return
if(ismegafauna(M))
message_admins("[M] has used a portal at [ADMIN_COORDJMP(src)] made by [usr].")
message_admins("[M] has used a portal at [ADMIN_VERBOSEJMP(src)] made by [usr].")
if(do_teleport(M, real_target, innate_accuracy_penalty))
if(istype(M, /obj/item/projectile))
var/obj/item/projectile/P = M
+21 -5
View File
@@ -1,21 +1,37 @@
/datum/proximity_monitor
var/atom/host //the atom we are tracking
var/atom/hasprox_receiver //the atom that will receive HasProximity calls.
var/atom/last_host_loc
var/list/checkers //list of /obj/effect/abstract/proximity_checkers
var/current_range
var/ignore_if_not_on_turf //don't check turfs in range if the host's loc isn't a turf
var/datum/component/movement_tracker
/datum/proximity_monitor/New(atom/_host, range, _ignore_if_not_on_turf = TRUE)
host = _host
checkers = list()
last_host_loc = _host.loc
ignore_if_not_on_turf = _ignore_if_not_on_turf
checkers = list()
SetRange(range)
current_range = range
SetHost(_host)
/datum/proximity_monitor/proc/SetHost(atom/H,atom/R)
if(R)
hasprox_receiver = R
else if(hasprox_receiver == host) //Default case
hasprox_receiver = H
host = H
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))
SetRange(current_range,TRUE)
/datum/proximity_monitor/Destroy()
host = null
last_host_loc = null
hasprox_receiver = null
QDEL_LIST(checkers)
QDEL_NULL(movement_tracker)
return ..()
/datum/proximity_monitor/proc/HandleMove()
@@ -27,7 +43,7 @@
SetRange(curr_range, TRUE)
if(curr_range)
testing("HasProx: [host] -> [host]")
_host.HasProximity(host) //if we are processing, we're guaranteed to be a movable
hasprox_receiver.HasProximity(host) //if we are processing, we're guaranteed to be a movable
/datum/proximity_monitor/proc/SetRange(range, force_rebuild = FALSE)
if(!force_rebuild && range == current_range)
@@ -93,4 +109,4 @@
/obj/effect/abstract/proximity_checker/Crossed(atom/movable/AM)
set waitfor = FALSE
monitor.host.HasProximity(AM)
monitor.hasprox_receiver.HasProximity(AM)
@@ -7,14 +7,13 @@
/obj/effect/spawner/xeno_egg_delivery/Initialize(mapload)
..()
var/turf/T = get_turf(src)
var/area/A = get_area(T)
new /obj/structure/alien/egg(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)].")
log_game("An alien egg has been delivered to [A] at [COORD(T)]")
var/message = "Attention [station_name()], we have entrusted you with a research specimen in [A]. Remember to follow all safety precautions when dealing with the specimen."
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))
return INITIALIZE_HINT_QDEL
+1 -1
View File
@@ -142,7 +142,7 @@
return
var/obj/machinery/atmospherics/components/unary/vent_pump/exit_vent = pick(vents)
if(prob(50))
visible_message("<B>[src] scrambles into the ventillation ducts!</B>", \
visible_message("<B>[src] scrambles into the ventilation ducts!</B>", \
"<span class='italics'>You hear something scampering through the ventilation ducts.</span>")
spawn(rand(20,60))
@@ -47,6 +47,7 @@
/obj/effect/temp_visual/cult/turf/floor
icon_state = "floorglow"
duration = 5
plane = FLOOR_PLANE
/obj/effect/temp_visual/cult/portal
icon_state = "space"
@@ -358,6 +358,29 @@
pixel_y = rand(-4,4)
animate(src, pixel_y = pixel_y + 32, alpha = 0, time = 25)
/obj/effect/temp_visual/love_heart
name = "love heart"
icon = 'icons/effects/effects.dmi'
icon_state = "heart"
duration = 25
/obj/effect/temp_visual/love_heart/Initialize(mapload)
. = ..()
pixel_x = rand(-10,10)
pixel_y = rand(-10,10)
animate(src, pixel_y = pixel_y + 32, alpha = 0, time = duration)
/obj/effect/temp_visual/love_heart/invisible
icon_state = null
/obj/effect/temp_visual/love_heart/invisible/Initialize(mapload, mob/seer)
. = ..()
var/image/I = image(icon = 'icons/effects/effects.dmi', icon_state = "heart", layer = ABOVE_MOB_LAYER, loc = src)
add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/onePerson, "heart", I, seer)
I.alpha = 255
I.appearance_flags = RESET_ALPHA
animate(I, alpha = 0, time = duration)
/obj/effect/temp_visual/bleed
name = "bleed"
icon = 'icons/effects/bleed.dmi'
@@ -15,7 +15,7 @@
icon_state = "impact_omni"
/obj/effect/projectile/impact/xray
name = "xray impact"
name = "\improper X-ray impact"
icon_state = "impact_xray"
/obj/effect/projectile/impact/pulse