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:
vageyenaman@gmail.com
2012-01-16 20:30:10 +00:00
parent 8b6c89eead
commit d4eb2e6e10
6 changed files with 1595 additions and 1537 deletions

View 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()

View File

@@ -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"

View File

@@ -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