mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-04 14:33:10 +00:00
New type of machine that goes under floor tiles, creates a constant beacon. Can be disabled by... blowing it up, I guess. Doesn't need power.
Some minor bugfixes here and there. Added in telecomm circuits to the comm sat. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2963 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
55
code/game/machinery/Beacon.dm
Normal file
55
code/game/machinery/Beacon.dm
Normal file
@@ -0,0 +1,55 @@
|
||||
/obj/machinery/bluespace_beacon
|
||||
|
||||
icon = 'objects.dmi'
|
||||
icon_state = "floor_beaconf"
|
||||
name = "Bluespace Gigabeacon"
|
||||
desc = "A device that draws power from bluespace and creates a permanent tracking beacon."
|
||||
level = 1 // underfloor
|
||||
layer = 2.5
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
idle_power_usage = 0
|
||||
var/obj/item/device/radio/beacon/Beacon
|
||||
|
||||
New()
|
||||
..()
|
||||
hide(T.intact)
|
||||
var/turf/T = loc
|
||||
Beacon = new /obj/item/device/radio/beacon
|
||||
Beacon.invisibility = 100
|
||||
Beacon.loc = T
|
||||
|
||||
Del()
|
||||
if(Beacon)
|
||||
del(Beacon)
|
||||
..()
|
||||
|
||||
// update the invisibility and icon
|
||||
hide(var/intact)
|
||||
invisibility = intact ? 101 : 0
|
||||
updateicon()
|
||||
|
||||
// update the icon_state
|
||||
proc/updateicon()
|
||||
var/state="floor_beacon"
|
||||
|
||||
if(invisibility)
|
||||
icon_state = "[state]f"
|
||||
|
||||
else
|
||||
icon_state = "[state]"
|
||||
|
||||
process()
|
||||
..()
|
||||
if(!Beacon)
|
||||
var/turf/T = loc
|
||||
Beacon = new /obj/item/device/radio/beacon
|
||||
Beacon.invisibility = 100
|
||||
Beacon.loc = T
|
||||
if(Beacon)
|
||||
if(Beacon.loc != loc)
|
||||
Beacon.loc = loc
|
||||
|
||||
updateicon()
|
||||
|
||||
|
||||
@@ -287,7 +287,7 @@ obj/item/weapon/circuitboard/rdserver
|
||||
"/obj/item/weapon/stock_parts/subspace/filter" = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/telecomms/broadcaster
|
||||
name = "Circuit Board (Bus Mainframe)"
|
||||
name = "Circuit Board (Subspace Broadcaster)"
|
||||
build_path = "/obj/machinery/telecomms/broadcaster"
|
||||
board_type = "machine"
|
||||
origin_tech = "programming=4;engineering=4;bluespace=2"
|
||||
|
||||
@@ -62,6 +62,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }.
|
||||
icon_state = "door_closed"
|
||||
|
||||
var/aiControlDisabled = 0 //If 1, AI control is disabled until the AI hacks back in and disables the lock. If 2, the AI has bypassed the lock. If -1, the control is enabled but the AI had bypassed it earlier, so if it is disabled again the AI would have no trouble getting back in.
|
||||
var/hackProof = 0 // if 1, this door can't be hacked by the AI
|
||||
var/secondsMainPowerLost = 0 //The number of seconds until power is restored.
|
||||
var/secondsBackupPowerLost = 0 //The number of seconds until power is restored.
|
||||
var/spawnPowerRestoreRunning = 0
|
||||
@@ -374,7 +375,7 @@ About the new airlock wires panel:
|
||||
return ((src.aiControlDisabled!=1) && (!src.isAllPowerCut()));
|
||||
|
||||
/obj/machinery/door/airlock/proc/canAIHack()
|
||||
return ((src.aiControlDisabled==1) && (!src.isAllPowerCut()));
|
||||
return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerCut()));
|
||||
|
||||
/obj/machinery/door/airlock/proc/arePowerSystemsOn()
|
||||
return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0)
|
||||
@@ -487,6 +488,8 @@ About the new airlock wires panel:
|
||||
if(src.canAIHack())
|
||||
src.hack(user)
|
||||
return
|
||||
else
|
||||
user << "Airlock AI control has been blocked with a firewall. Unable to hack."
|
||||
|
||||
//Separate interface for the AI.
|
||||
user.machine = src
|
||||
|
||||
Reference in New Issue
Block a user