A sensor which registers mechs and trains attempting to pass by and, if necessary, blocks their movement.

If enabled, detects mechs/trains and blocks their movement if they are coming from any of the directions set by dir. Can currently only be enabled/disabled by radio command and airlocks are updated to utilize this.

The current setup allows mechs to move through airlocks during normal cycles, which for example lets Odysseus out to save lives.
Once a shuttle docks however, the sensors are enabled to prevent boarding.

If blocked, players receive a simple message stating that their command has been overridden.
This commit is contained in:
PsiOmega
2014-07-26 20:07:18 +02:00
parent f0a8671c00
commit 0036bea6b6
5 changed files with 143 additions and 40 deletions

View File

@@ -7,6 +7,7 @@
var/tag_chamber_sensor
var/tag_exterior_sensor
var/tag_interior_sensor
var/tag_mech_sensor
var/tag_secure = 0
/obj/machinery/embedded_controller/radio/airlock/initialize()
@@ -43,10 +44,10 @@
/obj/machinery/embedded_controller/radio/airlock/advanced_airlock_controller/Topic(href, href_list)
if(..())
return
usr.set_machine(src)
src.add_fingerprint(usr)
var/clean = 0
switch(href_list["command"]) //anti-HTML-hacking checks
if("cycle_ext")
@@ -99,10 +100,10 @@
/obj/machinery/embedded_controller/radio/airlock/airlock_controller/Topic(href, href_list)
if(..())
return
usr.set_machine(src)
src.add_fingerprint(usr)
var/clean = 0
switch(href_list["command"]) //anti-HTML-hacking checks
if("cycle_ext")
@@ -163,10 +164,10 @@
/obj/machinery/embedded_controller/radio/airlock/access_controller/Topic(href, href_list)
if(..())
return
usr.set_machine(src)
src.add_fingerprint(usr)
var/clean = 0
switch(href_list["command"]) //anti-HTML-hacking checks
if("cycle_ext_door")