From a2de8cda21285e3bdaa9ad72efdfeffdac8e4cb4 Mon Sep 17 00:00:00 2001 From: "baloh.matevz" Date: Fri, 16 Dec 2011 15:00:41 +0000 Subject: [PATCH] TG Update: Possessing stuff now sends admin messages. Possessing and then releasing something restores your original name. Works even if you possess several things one after another as well as if you release an object without having possessed it in the first place. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2699 316c924e-a436-60f5-8080-3fe189b3f50e --- code/defines/mob/mob.dm | 2 +- code/game/vials.dm | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 47daf9254fa..ee7a1bfa9b9 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -99,7 +99,7 @@ var/canmove = 1.0 var/eye_stat = null//Living, potentially Carbon - + var/name_archive //For admin things like possession var/timeofdeath = 0.0//Living var/cpr_time = 1.0//Carbon diff --git a/code/game/vials.dm b/code/game/vials.dm index 0e27b6b6ee6..9e127e4baba 100644 --- a/code/game/vials.dm +++ b/code/game/vials.dm @@ -271,6 +271,18 @@ /proc/possess(obj/O as obj in world) set name = "Possess Obj" set category = "Object" + var/turf/T = get_turf(O) + + if(T) + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at ([T.x], [T.y], [T.z])", 1) + else + log_admin("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location") + message_admins("[key_name(usr)] has possessed [O] ([O.type]) at an unknown location", 1) + + if(!usr.control_object) //If you're not already possessing something... + usr.name_archive = usr.real_name + usr.loc = O usr.real_name = O.name usr.name = O.name @@ -281,10 +293,17 @@ set name = "Release Obj" set category = "Object" //usr.loc = get_turf(usr) + + if(usr.control_object && usr.name_archive) //if you have a name archived and if you are actually relassing an object + usr.real_name = usr.name_archive + usr.name = usr.real_name + usr.update_clothing() //So the name is updated properly + usr.loc = O.loc // Appear where the object you were controlling is -- TLE usr.client.eye = usr usr.control_object = null + /proc/givetestverbs(mob/M as mob in world) set desc = "Give this guy possess/release verbs" set category = "Debug"