simple ghost pod find (#17909)

* simple ghost spawn rewrite

* neutral

* .

* don't close

* migrate vore spawn

* use a searchable list

* move some more verbs

* allow special role spawns

* add key

* .

* fix that part

* announce for logging

* filter those

* typ o

* .

* .

* Update SelectionList.tsx

* .

* that

* .

---------

Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
Kashargul
2025-07-16 19:00:51 -04:00
committed by GitHub
co-authored by Cameron Lennox
parent f94a66cb97
commit 426b24d37e
34 changed files with 1543 additions and 430 deletions
@@ -54,44 +54,11 @@
drop_from_inventory(I)
qdel(src)
/mob/observer/dead/verb/fake_enter_vr()
set name = "Join virtual reality"
set category = "Ghost.Join"
set desc = "Log into NanoTrasen's local virtual reality server."
/* Temp removal while I figure out how to reduce the respawn time to 1 minute
var/time_till_respawn = time_till_respawn()
if(time_till_respawn == -1) // Special case, never allowed to respawn
to_chat(usr, span_warning("Respawning is not allowed!"))
/mob/observer/dead/proc/fake_enter_vr(landmark)
if(!landmark)
return
if(time_till_respawn) // Nonzero time to respawn
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
return
*/
var/datum/data/record/record_found
record_found = find_general_record("name", client.prefs.real_name)
// Found their record, they were spawned previously. Remind them corpses cannot play games.
if(record_found)
var/answer = tgui_alert(src,"You seem to have previously joined this round. If you are currently dead, you should not enter VR as this character. Would you still like to proceed?","Previously spawned",list("Yes","No"))
if(answer != "Yes")
return
var/S = null
var/list/vr_landmarks = list()
for(var/obj/effect/landmark/virtual_reality/sloc in GLOB.landmarks_list)
vr_landmarks += sloc.name
if(!LAZYLEN(vr_landmarks))
to_chat(src, "There are no available spawn locations in virtual reality.")
return
S = tgui_input_list(usr, "Please select a location to spawn your avatar at:", "Spawn location", vr_landmarks)
if(!S)
return 0
for(var/obj/effect/landmark/virtual_reality/i in GLOB.landmarks_list)
if(i.name == S)
S = i
break
var/mob/living/carbon/human/avatar = new(get_turf(S), client.prefs.species)
var/mob/living/carbon/human/avatar = new(get_turf(landmark), client.prefs.species)
if(!avatar)
to_chat(src, "Something went wrong and spawning failed.")
return