Files
nevimer b348b617a3 Merge branch 'master' of https://github.com/tgstation/tgstation into pupstream-2025-09-07
# Conflicts:
#	README.md
#	code/__DEFINES/admin.dm
#	code/__DEFINES/melee.dm
#	code/_globalvars/traits/_traits.dm
#	code/controllers/subsystem/economy.dm
#	code/datums/components/crafting/crafting.dm
#	code/datums/elements/crusher_loot.dm
#	code/modules/antagonists/pirate/pirate_shuttle_equipment.dm
#	code/modules/clothing/suits/_suits.dm
#	code/modules/escape_menu/leave_body.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/mining/equipment/mineral_scanner.dm
#	code/modules/mob/living/living.dm
#	code/modules/plumbing/plumbers/pill_press.dm
#	tgui/packages/tgui/interfaces/Vending.tsx
2025-09-07 00:37:52 -04:00

80 lines
2.3 KiB
Plaintext

/datum/escape_menu/proc/show_leave_body_page()
PRIVATE_PROC(TRUE)
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/lobby_button/small(
null,
/* hud_owner = */ null,
"Back",
/* tooltip_text = */ null,
/* button_screen_loc = */ "TOP:-30,LEFT:30",
CALLBACK(src, PROC_REF(open_home_page)),
/* button_overlay = */ "back",
)
)
var/static/dead_clown
if (isnull(dead_clown))
if (MC_RUNNING(SSatoms.init_stage)) // We're about to create a bunch of atoms for a human
dead_clown = create_dead_clown()
else
stack_trace("The leave body menu was opened before the atoms SS. This shouldn't be possible, as the leave body menu should only be accessible when you have a body.")
page_holder.give_screen_object(new /atom/movable/screen/escape_menu/lobby_button(
null,
/* hud_owner = */ null,
"Suicide",
"Perform a dramatic suicide in game",
/* button_screen_loc = */ "CENTER:-55,CENTER:-1",
// CALLBACK(src, PROC_REF(leave_suicide)), // SKYRAT EDIT REMOVAL
/* button_overlay = */ dead_clown,
))
page_holder.give_screen_object(
new /atom/movable/screen/escape_menu/lobby_button(
null,
/* hud_owner = */ null,
"Ghost",
"Exit quietly, leaving your body",
/* button_screen_loc = */ "CENTER:55,CENTER:-1",
CALLBACK(src, PROC_REF(leave_ghost)),
/* button_overlay = */ "ghost",
)
)
/datum/escape_menu/proc/create_dead_clown()
PRIVATE_PROC(TRUE)
var/mob/living/carbon/human/consistent/human = new
human.equipOutfit(/datum/outfit/job/clown)
var/mutable_appearance/appearance = new(human.appearance)
appearance.plane = ESCAPE_MENU_PLANE
// SpacemanDMM bug prevents us from just chain applying these :(
appearance.transform = appearance.transform.Scale(2.5, 2.5)
appearance.transform = appearance.transform.Turn(90)
appearance.transform = appearance.transform.Translate(34, 24)
qdel(human)
return appearance
/datum/escape_menu/proc/leave_ghost()
PRIVATE_PROC(TRUE)
// Not guaranteed to be living. Everything defines verb/ghost separately. Fuck you.
var/mob/living/living_user = client?.mob
living_user?.ghost()
//SKYRAT EDIT REMOVAL BEGIN
/*
/datum/escape_menu/proc/leave_suicide()
PRIVATE_PROC(TRUE)
// Not guaranteed to be human. Everything defines verb/suicide separately. Fuck you, still.
var/mob/living/carbon/human/human_user = client?.mob
human_user?.suicide()
*/
//SKYRAT EDIT REMOVAL END