diff --git a/code/modules/admin/verbs/possess.dm b/code/modules/admin/verbs/possess.dm index ee4d12656a..d10ec67d13 100644 --- a/code/modules/admin/verbs/possess.dm +++ b/code/modules/admin/verbs/possess.dm @@ -3,7 +3,7 @@ set category = "Object" if((O.obj_flags & DANGEROUS_POSSESSION) && CONFIG_GET(flag/forbid_singulo_possession)) - to_chat(usr, "[O] is too powerful for you to possess.") + to_chat(usr, "[O] is too powerful for you to possess.", confidential = TRUE) return var/turf/T = get_turf(O) @@ -18,19 +18,22 @@ if(!usr.control_object) //If you're not already possessing something... usr.name_archive = usr.real_name - usr.loc = O + usr.forceMove(O) usr.real_name = O.name usr.name = O.name usr.reset_perspective(O) usr.control_object = O + O.AddElement(/datum/element/weather_listener, /datum/weather/ash_storm, ZTRAIT_ASHSTORM, GLOB.ash_storm_sounds) SSblackbox.record_feedback("tally", "admin_verb", 1, "Possess Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /proc/release() 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 + if(!usr.control_object) //lest we are banished to the nullspace realm. + return + + if(usr.name_archive) //if you have a name archived usr.real_name = usr.name_archive usr.name_archive = "" usr.name = usr.real_name @@ -38,8 +41,8 @@ var/mob/living/carbon/human/H = usr H.name = H.get_visible_name() - - usr.loc = get_turf(usr.control_object) + usr.control_object.RemoveElement(/datum/element/weather_listener, /datum/weather/ash_storm, ZTRAIT_ASHSTORM, GLOB.ash_storm_sounds) + usr.forceMove(get_turf(usr.control_object)) usr.reset_perspective() usr.control_object = null SSblackbox.record_feedback("tally", "admin_verb", 1, "Release Object") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!