[MIRROR] Unified Ghost Hole (#11833)

Co-authored-by: Killian <49700375+KillianKirilenko@users.noreply.github.com>
Co-authored-by: Cameron Lennox <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-10-18 17:10:29 -07:00
committed by GitHub
parent 0924920662
commit e49179e010
15 changed files with 222 additions and 87 deletions

View File

@@ -1,17 +1,25 @@
/*
/datum/ghost_query/morph
role_name = "Morph"
be_special_flag = BE_MORPH
question = "A weird morphic creature appears to have snuck onstation. Do you want to play as it? ((Expect to be treated as vore predator.))"
question = "A weird morphic creature has appeared in maintenance. Do you want to play as it? ((You get to play as a weird shapeshifting \'morph\' that can mimic objects and people.))"
cutoff_number = 1
/datum/ghost_query/maints_pred
role_name = "Maintenance Predator"
role_name = "Maintenance Critter"
be_special_flag = BE_MAINTPRED
question = "It appears a predatory critter is lurking in maintenance. Do you want to play as it? ((You get to choose type of critter. Expect to be treated as vore predator.))"
question = "It appears a critter of some kind, possibly predatory, is lurking in maintenance. Do you want to play as it? ((You get to choose from a wide range of critters.))"
cutoff_number = 1
/datum/ghost_query/maints_lurker
role_name = "Maintenance Lurker"
be_special_flag = BE_MAINTLURKER
question = "It appears a strange individual is lurking in maintenance. Do you want to play as them? ((You can spawn as your currently loaded character slot. Expect to be treated as vore predator.))"
question = "It appears a strange individual is lurking in maintenance. Do you want to play as them? ((You can spawn as your currently loaded character slot, but your arrival will not be announced and you will not appear on the manifest.))"
cutoff_number = 1
*/
/datum/ghost_query/maints_spawner
role_name = "Maintenance Spawner"
be_special_flag = BE_MAINTCRITTER
question = "An opportunity to spawn as a Maintenance Critter has appeared. You can spawn as your choice of a mob (from a fairly large list), a morph (a shapeshifting creature capable of mimicking objects or other creatures), or your currently loaded character slot in a special \'lurker\' role."
cutoff_number = 1

View File

@@ -85,15 +85,9 @@ GLOBAL_VAR_INIT(allowed_ghost_spawns, 2)
if("lost_drone_spawn")
join_lost(ui.user)
. = TRUE
if("maintpred_spawn")
join_maintpred(ui.user)
. = TRUE
if("gravekeeper_spawn")
join_grave(ui.user)
. = TRUE
if("morph_spawn")
join_morpth(ui.user)
. = TRUE
/datum/tgui_module/ghost_spawn_menu/proc/compile_pod_data()
var/list/compiled_pods = list()

View File

@@ -262,25 +262,6 @@
var/obj/structure/ghost_pod/manual/lost_drone/dogborg/lost = new(get_turf(spawnspot))
lost.create_occupant(user)
/datum/tgui_module/ghost_spawn_menu/proc/join_maintpred(mob/observer/dead/user)
if(jobban_isbanned(user, JOB_GHOSTROLES))
to_chat(user, span_danger("You are banned from playing ghost roles and cannot spawn as a maint pred."))
return
if(GLOB.allowed_ghost_spawns <= 0)
to_chat(user, span_warning("There're no free ghost join slots."))
return
var/obj/effect/landmark/spawnspot = get_ghost_role_spawn()
if(!spawnspot)
to_chat(user, span_warning("No spawnpoint available."))
return
GLOB.allowed_ghost_spawns--
announce_ghost_joinleave(user, 0, "They are now a maint pred.")
var/obj/structure/ghost_pod/ghost_activated/maintpred/no_announce/mpred = new(get_turf(spawnspot))
mpred.create_occupant(user)
/datum/tgui_module/ghost_spawn_menu/proc/join_grave(mob/observer/dead/user)
if(jobban_isbanned(user, JOB_CYBORG))
to_chat(user, span_danger("You are banned from playing synthetics and cannot spawn as a gravekeeper."))
@@ -300,25 +281,6 @@
var/obj/structure/ghost_pod/automatic/gravekeeper_drone/grave = new(get_turf(spawnspot))
grave.create_occupant(user)
/datum/tgui_module/ghost_spawn_menu/proc/join_morpth(mob/observer/dead/user)
if(jobban_isbanned(user, JOB_GHOSTROLES))
to_chat(user, span_danger("You are banned from playing ghost roles and cannot spawn as a morph."))
return
if(GLOB.allowed_ghost_spawns <= 0)
to_chat(user, span_warning("There're no free ghost join slots."))
return
var/obj/effect/landmark/spawnspot = get_ghost_role_spawn()
if(!spawnspot)
to_chat(user, span_warning("No spawnpoint available."))
return
GLOB.allowed_ghost_spawns--
announce_ghost_joinleave(user, 0, "They are now a morph.")
var/obj/structure/ghost_pod/ghost_activated/morphspawn/no_announce/morph = new(get_turf(spawnspot))
morph.create_occupant(user)
/datum/tgui_module/ghost_spawn_menu/proc/get_ghost_role_spawn()
var/list/possibleSpawnspots = list()
for(var/obj/effect/landmark/L in GLOB.landmarks_list)