pAI suicide verb renamed to avoid conflicts with existing suicide verb - should function for non-admins now.

Admins playing pAIs should no longer have their pAI interface appear every time they send or receive an Admin-PM.
pAIs are now affected by EMP bursts. pAIs hit with a burst will be silenced (no speech or PDA messaging) for two minutes and may have their directives or master modified. A sufficiently powerful EMP burst will have a 20% chance of killing a pAI.
The Player Panel now lists pAIs below humans.
Added a new admin command : Make pAI. Allows admins to manually spawn a specific player as a pAI at a given location.
PDAs and pAI devices pass emp_act()s into their contents list, largely to allow pAIs contained within to respond properly to EMP bursts.
pAI now understand brain/MMI speech without the aid of a Universal Translator.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1656 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
only.lurking@gmail.com
2011-06-03 23:12:55 +00:00
parent 321b26e39c
commit eae5eb169e
10 changed files with 104 additions and 24 deletions

View File

@@ -837,3 +837,31 @@ Traitors and the like can also be revived with the previous role mostly intact.
usr << text("\red <b>Attack Log <20><><EFBFBD> []</b>", mob)
for(var/t in M.attack_log)
usr << "[t]"
/client/proc/makepAI(var/turf/T in world)
set category = "Admin"
set name = "Make pAI"
set desc = "Specify a location to spawn a pAI device, then specify a key to play that pAI"
var/list/available = list()
for(var/mob/C in world)
if(C.key)
available.Add(C)
var/mob/choice = input("Choose a player to play the pAI", "Spawn pAI") in available
if(!choice)
return 0
if(!istype(choice, /mob/dead/observer))
var/confirm = input("[choice.key] isn't ghosting right now. Are you sure you want to yank him out of them out of their body and place them in this pAI?", "Spawn pAI Confirmation", "No") in list("Yes", "No")
if(confirm != "Yes")
return 0
var/obj/item/device/paicard/card = new(T)
var/mob/living/silicon/pai/pai = new(card)
pai.name = input(choice, "Enter your pAI name:", "pAI Name", "Personal AI") as text
pai.real_name = pai.name
pai.key = choice.key
card.pai = pai
for(var/datum/paiCandidate/candidate in paiController.pai_candidates)
if(candidate.key == choice.key)
paiController.pai_candidates.Remove(candidate)