mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-20 07:02:30 +00:00
79 lines
1.7 KiB
Plaintext
79 lines
1.7 KiB
Plaintext
/area/looking_glass
|
|
name = "make a subtype"
|
|
|
|
var/obj/effect/landmark/looking_glass/our_landmark
|
|
var/list/our_turfs = list()
|
|
var/list/our_optional_turfs = list()
|
|
|
|
var/lg_id
|
|
|
|
var/active = FALSE
|
|
|
|
/area/looking_glass/Initialize()
|
|
. = ..()
|
|
our_landmark = locate() in src
|
|
if(!our_landmark)
|
|
testing("Looking glass area [name] couldn't find a landmark")
|
|
for(var/turf/simulated/floor/looking_glass/lgt in src)
|
|
our_turfs += lgt
|
|
if(lgt.optional)
|
|
our_optional_turfs += lgt
|
|
|
|
/area/looking_glass/Destroy()
|
|
our_landmark = null
|
|
our_turfs.Cut()
|
|
return ..()
|
|
|
|
/area/looking_glass/Entered(var/atom/movable/AM)
|
|
if(isliving(AM))
|
|
var/mob/living/L = AM
|
|
if(L.client)
|
|
our_landmark?.gain_viewer(L.client)
|
|
|
|
/area/looking_glass/Exited(var/atom/movable/AM)
|
|
if(isliving(AM))
|
|
var/mob/living/L = AM
|
|
if(L.client)
|
|
our_landmark?.lose_viewer(L.client)
|
|
|
|
/area/looking_glass/proc/begin_program(var/image/newimage)
|
|
if(!active)
|
|
for(var/trf in our_turfs)
|
|
var/turf/simulated/floor/looking_glass/lgt = trf
|
|
lgt.activate()
|
|
|
|
our_landmark.take_image(newimage)
|
|
active = TRUE
|
|
|
|
/area/looking_glass/proc/end_program()
|
|
if(active)
|
|
for(var/trf in our_turfs)
|
|
var/turf/simulated/floor/looking_glass/lgt = trf
|
|
lgt.deactivate()
|
|
|
|
active = FALSE
|
|
|
|
spawn(2 SECONDS)
|
|
our_landmark.drop_image()
|
|
|
|
/area/looking_glass/proc/toggle_optional(var/transparent)
|
|
for(var/trf in our_optional_turfs)
|
|
var/turf/simulated/floor/looking_glass/lgt = trf
|
|
lgt.center = !transparent
|
|
if(active)
|
|
lgt.deactivate()
|
|
spawn(3 SECONDS)
|
|
lgt.activate()
|
|
|
|
/area/looking_glass/lg_1
|
|
name = "looking glass one"
|
|
lg_id = "one"
|
|
|
|
/area/looking_glass/lg_2
|
|
name = "looking glass two"
|
|
lg_id = "two"
|
|
|
|
/area/looking_glass/lg_3
|
|
name = "looking glass three"
|
|
lg_id = "three"
|