From 80d3f6c1152e7d95878c320567e9ee3ef76a8b09 Mon Sep 17 00:00:00 2001 From: "n3ophyt3@gmail.com" Date: Mon, 27 Dec 2010 16:01:55 +0000 Subject: [PATCH] Those holothingies that whatsisface added can now check their laws while running around cybering people. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@712 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/mob/living/silicon/hologram.dm | 3 ++- code/game/machinery/hologram.dm | 1 + .../mob/living/silicon/aihologram/laws.dm | 26 ++++++++++++++++++- .../mob/living/silicon/aihologram/login.dm | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/code/defines/mob/living/silicon/hologram.dm b/code/defines/mob/living/silicon/hologram.dm index 4bf5dd555cd..f555c6887bf 100644 --- a/code/defines/mob/living/silicon/hologram.dm +++ b/code/defines/mob/living/silicon/hologram.dm @@ -4,4 +4,5 @@ icon = 'mob.dmi'// icon_state = "ai-holo" density = 0 - var/parent_ai = null \ No newline at end of file + var/mob/living/silicon/ai/parent_ai = null + var/datum/ai_laws/ailaws = null \ No newline at end of file diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index 0330d6f3a8b..e833ae55f03 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -6,6 +6,7 @@ if(src.state == "off") //question number three var/mob/living/silicon/aihologram/holo = new /mob/living/silicon/aihologram(src.loc) holo.parent_ai = user + holo.ailaws = holo.parent_ai.laws_object holo.client = usr.client //should move the client there src.state = "on" src.icon_state = "holopad1" diff --git a/code/modules/mob/living/silicon/aihologram/laws.dm b/code/modules/mob/living/silicon/aihologram/laws.dm index 77c2cf9f946..d3ece3d9f75 100644 --- a/code/modules/mob/living/silicon/aihologram/laws.dm +++ b/code/modules/mob/living/silicon/aihologram/laws.dm @@ -1 +1,25 @@ -//I don't even know -- Urist \ No newline at end of file +//I don't even know -- Urist + +//I do. -- NEOFite + +/mob/living/silicon/aihologram/verb/show_laws_verb() + set category = "AI Commands" + set name = "Show Laws" + src.show_laws() + +/mob/living/silicon/aihologram/show_laws(var/everyone = 0) + var/who + + if (everyone) + who = world + else + who = src + who << "Obey these laws:" + + src.laws_sanity_check() + src.ailaws.show_laws(who) + +/mob/living/silicon/aihologram/proc/laws_sanity_check() + if (!src.ailaws) + src << "You are somehow an AI hologram without referencing a set of AI laws, so I got you a laws datum to prevent runtime errors." + src.ailaws = new /datum/ai_laws/asimov \ No newline at end of file diff --git a/code/modules/mob/living/silicon/aihologram/login.dm b/code/modules/mob/living/silicon/aihologram/login.dm index dc48c6628f5..de798e9794b 100644 --- a/code/modules/mob/living/silicon/aihologram/login.dm +++ b/code/modules/mob/living/silicon/aihologram/login.dm @@ -1,4 +1,4 @@ -/mob/dead/aihologram/Login() +/mob/living/silicon/aihologram/Login() ..() src.client.screen = null