Merge pull request #13743 from Linzolle/thunderdome

thunderdome entertainment monitors fix + stuff
This commit is contained in:
silicons
2020-12-12 01:55:53 -07:00
committed by GitHub
6 changed files with 1639 additions and 1603 deletions
+35
View File
@@ -75,3 +75,38 @@
if (!area_motion)
if(isliving(AM))
newTarget(AM)
/obj/machinery/camera/motion/thunderdome
name = "entertainment camera"
network = list("thunder")
c_tag = "Arena"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF | FREEZE_PROOF
/obj/machinery/camera/motion/thunderdome/Initialize()
. = ..()
proximity_monitor.SetRange(7)
/obj/machinery/camera/motion/thunderdome/HasProximity(atom/movable/AM as mob|obj)
if (!isliving(AM) || get_area(AM) != get_area(src))
return
localMotionTargets |= WEAKREF(AM)
if (!detectTime)
for(var/obj/machinery/computer/security/telescreen/entertainment/TV in GLOB.machines)
TV.notify(TRUE)
detectTime = world.time + 30 SECONDS
/obj/machinery/camera/motion/thunderdome/process()
if (!detectTime)
return
for (var/datum/weakref/targetref in localMotionTargets)
var/mob/target = targetref.resolve()
if(QDELETED(target) || target.stat == DEAD || get_dist(src, target) > 7 || get_area(src) != get_area(target))
localMotionTargets -= targetref
if (localMotionTargets.len)
detectTime = world.time + 30 SECONDS
else if (world.time > detectTime)
detectTime = 0
for(var/obj/machinery/computer/security/telescreen/entertainment/TV in GLOB.machines)
TV.notify(FALSE)
+6 -2
View File
@@ -246,10 +246,12 @@
network = list("thunder")
density = FALSE
circuit = null
interaction_flags_atom = NONE // interact() is called by BigClick()
//interaction_flags_atom = NONE // interact() is called by BigClick()
var/icon_state_off = "entertainment_blank"
var/icon_state_on = "entertainment"
/* If someone would like to try to get this long-distance viewing thing working, be my guest. I tried everything I could possibly think of and it just refused to operate correctly.
/obj/machinery/computer/security/telescreen/entertainment/Initialize()
. = ..()
RegisterSignal(src, COMSIG_CLICK, .proc/BigClick)
@@ -258,6 +260,8 @@
/obj/machinery/computer/security/telescreen/entertainment/proc/BigClick()
interact(usr)
*/
/obj/machinery/computer/security/telescreen/entertainment/proc/notify(on)
if(on && icon_state == icon_state_off)
say(pick(
@@ -278,7 +282,7 @@
name = "circuitry telescreen"
desc = "Used for watching the other eggheads from the safety of the circuitry lab."
network = list("rd")
/obj/machinery/computer/security/telescreen/ce
name = "\improper Chief Engineer's telescreen"
desc = "Used for watching the engine, telecommunications and the minisat."
+1 -1
View File
@@ -131,7 +131,7 @@
for(var/mob/living/mob in thunderdome)
qdel(mob) //Clear mobs
for(var/obj/obj in thunderdome)
if(!istype(obj, /obj/machinery/camera))
if(!istype(obj, /obj/machinery/camera) && !istype(obj, /obj/effect/abstract/proximity_checker))
qdel(obj) //Clear objects
var/area/template = locate(/area/tdome/arena_source)
+1 -1
View File
@@ -567,7 +567,7 @@ Since Ramadan is an entire month that lasts 29.5 days on average, the start and
/datum/holiday/xmas/proc/roundstart_celebrate()
for(var/obj/machinery/computer/security/telescreen/entertainment/Monitor in GLOB.machines)
Monitor.icon_state = "entertainment_xmas"
Monitor.icon_state_on = "entertainment_xmas"
for(var/mob/living/simple_animal/pet/dog/corgi/Ian/Ian in GLOB.mob_living_list)
Ian.place_on_head(new /obj/item/clothing/head/helmet/space/santahat(Ian))