Files
VOREStation/code/modules/mob/mob_planes_vr.dm
T
SatinIsle ec44f9afc8 Invisibility GM tool and Glamour Mob (#18095)
* Invisibility GM tool and Glamour Mob

Added a new plane for event use, with the intent of making it so that only specific players can see things on it.

Added two new buttons to player effects, one to make something move to  the new invisible plane and another to allow a player to see things on that plane.

Added a new mob that takes advantage of this new plane to be only visible to one player at a time.

* Wrong way round.

* Catalogue
2025-08-03 18:53:22 -07:00

51 lines
1.8 KiB
Plaintext

/datum/plane_holder/New(mob/this_guy)
my_mob = this_guy
plane_masters[VIS_CH_STATUS_R] = new /obj/screen/plane_master{plane = PLANE_CH_STATUS_R} //Right-side status icon
plane_masters[VIS_CH_HEALTH_VR] = new /obj/screen/plane_master{plane = PLANE_CH_HEALTH_VR} //Health bar but transparent at 100
plane_masters[VIS_CH_BACKUP] = new /obj/screen/plane_master{plane = PLANE_CH_BACKUP} //Backup implant status
plane_masters[VIS_CH_VANTAG] = new /obj/screen/plane_master{plane = PLANE_CH_VANTAG} //Vore Antags
plane_masters[VIS_CH_STOMACH] = new /obj/screen/plane_master{plane = PLANE_CH_STOMACH} //Stomach
plane_masters[VIS_SOULCATCHER] = new /obj/screen/plane_master{plane = PLANE_SOULCATCHER} // Soulcatcher
plane_masters[VIS_EVENT_INVIS] = new /obj/screen/plane_master{plane = PLANE_INVIS_EVENT} //Things only specific players can see at any time.
plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(null, my_mob) //Augmented reality
..()
/////////////////
//AR planemaster does some special image handling
/obj/screen/plane_master/augmented
plane = PLANE_AUGMENTED
var/state = FALSE //Saves cost with the lists
var/mob/my_mob
/obj/screen/plane_master/augmented/Initialize(mapload, var/mob/M)
. = ..()
my_mob = M
/obj/screen/plane_master/augmented/Destroy()
GLOB.entopic_users -= my_mob
my_mob = null
. = ..()
/obj/screen/plane_master/augmented/set_visibility(var/want = FALSE)
. = ..()
state = want
apply()
/obj/screen/plane_master/augmented/proc/apply()
if(!my_mob.client)
return
if(state)
GLOB.entopic_users |= my_mob
if(my_mob.client)
my_mob.client.images |= GLOB.entopic_images
else
GLOB.entopic_users -= my_mob
if(my_mob.client)
my_mob.client.images -= GLOB.entopic_images
/mob/Destroy()
. = ..()
GLOB.entopic_users -= src