Files
VOREStation/code/modules/mob/dead/observer/observer_vr.dm
T
Ryumi d395f4ab65 Adds a new redgate map: The Casino Canal (#18587)
* starts da map

* starting to shape up I think?

* moar edits

* we got lots more stuff now

* we got dorms now :)

* moar doarm and PRIVATE GAME ROOMS WOAG

* adds chip machine

* tidy dis up

* oops

* pretties up private game rooms a bit

* ok now the chip dispenser works

* Adds resleeving stuff

* Adds pixel-displaced children of punlic paintings

* mmmmmm maint stuff

* adds VIP rooms and more maint stuff

* that's a lotta shit made woooo

* its almost... done... (the main building is anyway)

* Let's get this bih to actually load

* And let's get some proper areas separating indoor and outdoor

* Makes casino hall turfs actually render as intended

* WE HAVE AREAS NOW

* don't need this big ol file any more

* MOSTLY finishes the mai nbuilding

* finally finishes the main building (for now)

* does some exterior stuff but now it's crashing WHY

* oops

* adds subvariant of floodlight that starts turned on

* adds areas for well, secret areas

* TOO MUCH new shit

* Does a silly thing to make properly underwater cave turfs

* adds "open" underwater turfs that are functionally transparent divable turfs

* more funny secrets

* Makes open water turfs show a darker view underneath for visual clarity

* okay I think it might be done now

* makes indoor water effect look a bit nicer

* I ALMOST FORGOT

* engoodens code surrounding multiple auto-resleevers existing

* FUCK

* DOUBLE FUCK

* Lets things with GLASSPASS move through TGMC widnows

* actually it makes more sense for the TF gun to be here

* Makes 🏴‍☠️ secret a bit nicer

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
2025-10-25 00:30:41 +02:00

101 lines
4.0 KiB
Plaintext

/mob/observer/dead/verb/backup_ping()
set category = "Ghost.Join"
set name = "Notify Transcore"
set desc = "If your past-due backup notification was missed or ignored, you can use this to send a new one."
if(!mind)
to_chat(src,span_warning("Your ghost is missing game values that allow this functionality, sorry."))
return
var/datum/transcore_db/db = SStranscore.db_by_mind_name(mind.name)
if(db)
var/datum/transhuman/mind_record/record = db.backed_up[src.mind.name]
if(!(record.dead_state == MR_DEAD))
if((world.time - timeofdeath ) > 5 MINUTES) //Allows notify transcore to be used if you have an entry but for some reason weren't marked as dead
record.dead_state = MR_DEAD //Such as if you got scanned but didn't take an implant. It's a little funky, but I mean, you got scanned
db.notify(record) //So you probably will want to let someone know if you die.
record.last_notification = world.time
to_chat(src, span_notice("New notification has been sent."))
else
to_chat(src, span_warning("Your backup is not past-due yet."))
else if((world.time - record.last_notification) < 5 MINUTES)
to_chat(src, span_warning("Too little time has passed since your last notification."))
else
db.notify(record)
record.last_notification = world.time
to_chat(src, span_notice("New notification has been sent."))
else
to_chat(src,span_warning("No backup record could be found, sorry."))
/*
/mob/observer/dead/verb/backup_delay()
set category = "Ghost.Settings"
set name = "Cancel Transcore Notification"
set desc = "You can use this to avoid automatic backup notification happening. Manual notification can still be used."
if(!mind)
to_chat(src,span_warning("Your ghost is missing game values that allow this functionality, sorry."))
return
var/datum/transcore_db/db = SStranscore.db_by_mind_name(mind.name)
if(db)
var/datum/transhuman/mind_record/record = db.backed_up[src.mind.name]
if(record.dead_state == MR_DEAD || !(record.do_notify))
to_chat(src, span_warning("The notification has already happened or been delayed."))
else
record.do_notify = FALSE
to_chat(src, span_notice("Overdue mind backup notification delayed successfully."))
else
to_chat(src,span_warning("No backup record could be found, sorry."))
*/
/mob/observer/dead/verb/findghostpod() //Moves the ghost instead of just changing the ghosts's eye -Nodrak
set category = "Ghost.Join"
set name = "Ghost Spawn"
set desc = "Open Ghost Spawn Menu"
if(!isobserver(src)) //Make sure they're an observer!
return
if(selecting_ghostrole)
return
var/datum/tgui_module/ghost_spawn_menu/ui = new(src)
ui.tgui_interact(src)
/mob/observer/dead/verb/findautoresleever()
set category = "Ghost.Join"
set name = "Find Auto Resleever"
set desc = "Find a Auto Resleever"
set popup_menu = FALSE
if(!isobserver(src)) //Make sure they're an observer!
return
// Set up an assorted list of auto-resleevers using their area name as the key, (as there should only ever be one per area)
var/list/autoresleevers = list()
for(var/obj/machinery/transhuman/autoresleever/A in GLOB.active_autoresleevers)
if(A.spawntype)
continue
else
var/area/resleever_area = get_area(A)
autoresleevers[resleever_area.name] = A
var/obj/machinery/transhuman/autoresleever/chosen_resleever = null
if(length(autoresleevers) > 1)
// Prompt user to choose which one they wanna go to
var/choice = tgui_input_list(src, "There are multiple auto-resleevers available! Choose one.", "Choose Auto-Resleever", autoresleevers)
if(!choice)
// well okay then :L
return
chosen_resleever = autoresleevers[choice]
else
// If there's less than one, just choose whatever one is available (if any)
chosen_resleever = autoresleevers[pick(autoresleevers)]
if(!chosen_resleever)
to_chat(src, span_warning("There appears to be no auto-resleevers available."))
return
var/L = get_turf(chosen_resleever)
if(!L)
to_chat(src, span_warning("There appears to be something wrong with this auto-resleever, try again."))
return
forceMove(L)