* Adds hacking tool.

In normal mode a hacking tool acts and functions just like any multitool. Use a screwdriver to toggle between normal and hacking mode.
Hacking attempts will take 20 +(0 to 20) seconds (triangular distribution, averages at +10 seconds).
Once an airlock has been successfully hacked the user will have full access to the door operation interface normally restricted to silicons.

A hacking tool will remember the last 6 to 8 hacked airlocks.  No time is needed to again hack remembered airlocks.
Once the limit has been reached the least recently accessed airlock is forgotten. Hacking a remembered airlock will update the last accessed time.

Also adds a basic observer/listener pattern implementation to, for example, make it easier to catch when objects have been destroyed and clear references.

* Corrects and adds more sanity checking.

* Adds hacktool to uplink devices
This commit is contained in:
Hubblenaut
2016-05-15 15:38:10 +02:00
committed by Datraen
parent 6c9346d0c4
commit f09df76e4a
8 changed files with 260 additions and 88 deletions

View File

@@ -127,6 +127,8 @@
#include "code\controllers\subsystems.dm"
#include "code\controllers\verbs.dm"
#include "code\controllers\voting.dm"
#include "code\controllers\observer_listener\atom\observer.dm"
#include "code\controllers\observer_listener\datum\observer.dm"
#include "code\controllers\Processes\air.dm"
#include "code\controllers\Processes\alarm.dm"
#include "code\controllers\Processes\chemistry.dm"
@@ -612,6 +614,7 @@
#include "code\game\objects\items\devices\flash.dm"
#include "code\game\objects\items\devices\flashlight.dm"
#include "code\game\objects\items\devices\floor_painter.dm"
#include "code\game\objects\items\devices\hacktool.dm"
#include "code\game\objects\items\devices\lightreplacer.dm"
#include "code\game\objects\items\devices\locker_painter.dm"
#include "code\game\objects\items\devices\megaphone.dm"