Prison Teleporter is now in the game. Can only teleport to Courtroom and does so 100% of the time.

Fixed a small redundancy in the AI Slipper.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@438 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
crazyclonetheninja
2010-11-17 19:10:36 +00:00
parent 76a6483f79
commit 72e10ff6a0
6 changed files with 5854 additions and 5809 deletions

View File

@@ -236,4 +236,10 @@
name = "Teleporter"
icon_state = "teleport"
var/obj/item/locked = null
var/id = null
var/id = null
/obj/machinery/computer/teleporter/security
name = "Teleporter"
icon_state = "teleport"
locked = null
id = null

View File

@@ -353,10 +353,12 @@
icon = 'stationobjs.dmi'
density = 1
anchored = 1.0
var/lockeddown = 0
/obj/machinery/teleport/hub
name = "hub"
icon_state = "tele0"
var/accurate = 0
/obj/machinery/teleport/station
name = "station"

View File

@@ -30,6 +30,12 @@
item_state = "signaler"
var/code = "electronic"
/obj/item/device/radio/courtroom_beacon
name = "Tracking Beacon"
icon_state = "beacon"
item_state = "signaler"
var/code = "electronic"
/obj/item/device/radio/electropack
name = "Electropack"
icon_state = "electropack0"

View File

@@ -13,9 +13,6 @@
var/cooldown_on = 0
req_access = list(access_ai_upload)
/obj/machinery/ai_slipper/New()
..()
/obj/machinery/turret/power_change()
if(stat & BROKEN)
return

View File

@@ -3,12 +3,19 @@
..()
return
/obj/machinery/computer/teleporter/attackby(obj/item/weapon/W)
src.attack_hand()
/obj/machinery/computer/teleporter/attack_paw()
src.attack_hand()
/obj/machinery/computer/teleporter/security/attackby(obj/item/weapon/W)
src.attack_hand()
/obj/machinery/computer/teleporter/security/attack_paw()
src.attack_hand()
/obj/machinery/teleport/station/attack_ai()
src.attack_hand()
@@ -69,6 +76,30 @@
if(!T || istype(T, /area)) return null
return T
/obj/machinery/computer/teleporter/security/attack_hand()
if(stat & (NOPOWER|BROKEN))
return
var/list/L = list()
var/list/areaindex = list()
for(var/obj/item/device/radio/courtroom_beacon/R in world)
var/turf/T = find_loc(R)
if (!T) continue
var/tmpname = T.loc.name
if(areaindex[tmpname])
tmpname = "[tmpname] ([++areaindex[tmpname]])"
else
areaindex[tmpname] = 1
L[tmpname] = R
var/desc = input("Please select a location to lock in.", "Locking Computer") in L
src.locked = L[desc]
for(var/mob/O in hearers(src, null))
O.show_message("\blue Locked In", 2)
src.add_fingerprint(usr)
return
/obj/machinery/teleport/hub/Bumped(M as mob|obj)
spawn( 0 )
if (src.icon_state == "tele1")
@@ -87,7 +118,7 @@
O.show_message("\red Failure: Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.")
return
if (istype(M, /atom/movable))
if(prob(5)) //oh dear a problem, put em in deep space
if(prob(5) && !accurate) //oh dear a problem, put em in deep space
do_teleport(M, locate(rand(5, world.maxx - 5), rand(5, world.maxy - 5), 3), 2)
else
do_teleport(M, com.locked, 0) //dead-on precision

File diff suppressed because it is too large Load Diff