Adds AI control beacons for exosuits (Winter Thaw 2017) (#23320)

* Adds AI control beacons for exosuits

* Diagnostic HUD entry + Design Fix

- Adds Diagnostic HUD entries for mecha beacons. (Green for normal, Blue
for AI)
- Fixes AI beacon research designs to havep roper requirements

* Sanity checks for mech hijacking
This commit is contained in:
Xhuis
2017-01-28 12:10:08 -05:00
committed by AnturK
parent 65aa7782f4
commit bdb383ae40
10 changed files with 95 additions and 20 deletions
+1 -1
View File
@@ -900,7 +900,7 @@
//Mobs on Fire end
// used by secbot and monkeys Crossed
/mob/living/proc/knockOver(var/mob/living/carbon/C)
/mob/living/proc/knockOver(var/mob/living/carbon/C)
C.visible_message("<span class='warning'>[pick( \
"[C] dives out of [src]'s way!", \
"[C] stumbles over [src]!", \
+12 -1
View File
@@ -82,6 +82,8 @@ var/list/ai_list = list()
var/obj/machinery/camera/portable/builtInCamera
var/obj/structure/AIcore/deactivated/linked_core //For exosuit control
/mob/living/silicon/ai/New(loc, datum/ai_laws/L, mob/target_ai)
..()
if(!target_ai) //If there is no player/brain inside.
@@ -419,7 +421,16 @@ var/list/ai_list = list()
if (href_list["ai_take_control"]) //Mech domination
var/obj/mecha/M = locate(href_list["ai_take_control"])
if(controlled_mech)
src << "You are already loaded into an onboard computer!"
src << "<span class='warning'>You are already loaded into an onboard computer!</span>"
return
if(!cameranet.checkCameraVis(M))
src << "<span class='warning'>Exosuit is no longer near active cameras.</span>"
return
if(lacks_power())
src << "<span class='warning'>You're depowered!</span>"
return
if(!isturf(loc))
src << "<span class='warning'>You aren't in your core!</span>"
return
if(M)
M.transfer_ai(AI_MECH_HACK,src, usr) //Called om the mech itself.
@@ -728,6 +728,16 @@
construction_time = 50
category = list("Misc")
/datum/design/mecha_tracking_ai_control
name = "AI Control Beacon"
id = "mecha_tracking_ai_control"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_tracking/ai_control
materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 200)
req_tech = list("programming" = 3, "magnets" = 2, "engineering" = 2)
construction_time = 50
category = list("Misc")
/datum/design/drone_shell
name = "Drone Shell"
desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs."