Files
Bubberstation/code/modules/mob_spawn/ghost_roles/unused_roles.dm
T
nevimer baf3837ae8 Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts:
#	_maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm
#	_maps/RandomRuins/SpaceRuins/garbagetruck2.dmm
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	_maps/map_files/tramstation/tramstation.dmm
#	code/_onclick/hud/new_player.dm
#	code/datums/components/squashable.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/datums/diseases/chronic_illness.dm
#	code/datums/status_effects/buffs.dm
#	code/datums/status_effects/debuffs/drunk.dm
#	code/datums/status_effects/debuffs/stamcrit.dm
#	code/game/machinery/computer/crew.dm
#	code/game/objects/items/devices/scanners/health_analyzer.dm
#	code/game/objects/items/wall_mounted.dm
#	code/game/turfs/closed/indestructible.dm
#	code/modules/admin/view_variables/filterrific.dm
#	code/modules/antagonists/heretic/influences.dm
#	code/modules/cargo/orderconsole.dm
#	code/modules/client/preferences.dm
#	code/modules/events/space_vines/vine_mutations.dm
#	code/modules/mob/dead/new_player/new_player.dm
#	code/modules/mob/living/carbon/human/death.dm
#	code/modules/mob/living/carbon/human/species_types/jellypeople.dm
#	code/modules/mob/living/damage_procs.dm
#	code/modules/mob/living/living.dm
#	code/modules/mob_spawn/ghost_roles/mining_roles.dm
#	code/modules/mob_spawn/mob_spawn.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/projectiles/guns/ballistic/launchers.dm
#	code/modules/projectiles/guns/energy/laser.dm
#	code/modules/reagents/chemistry/machinery/chem_dispenser.dm
#	code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
#	code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm
#	code/modules/reagents/chemistry/reagents/medicine_reagents.dm
#	code/modules/surgery/healing.dm
#	code/modules/unit_tests/designs.dm
#	icons/mob/inhands/items_lefthand.dmi
#	icons/mob/inhands/items_righthand.dmi
#	tgui/packages/tgui/interfaces/ChemDispenser.tsx
2025-11-29 22:49:21 -05:00

339 lines
15 KiB
Plaintext

//i couldn't find any map that uses these, so they're delegated to admin events for now.
/obj/effect/mob_spawn/ghost_role/human/prisoner_transport
name = "prisoner containment sleeper"
desc = "A sleeper designed to put its occupant into a deep coma, unbreakable until the sleeper turns off. This one's glass is cracked and you can see a pale, sleeping face staring out."
prompt_name = "an escaped prisoner"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
outfit = /datum/outfit/lavalandprisoner
you_are_text = "You're a prisoner, sentenced to hard work in one of Nanotrasen's labor camps, but it seems as \
though fate has other plans for you."
flavour_text = "Good. It seems as though your ship crashed. You remember that you were convicted of "
spawner_job_path = /datum/job/escaped_prisoner
allow_custom_character = GHOSTROLE_TAKE_PREFS_APPEARANCE
/obj/effect/mob_spawn/ghost_role/human/prisoner_transport/Initialize(mapload)
. = ..()
var/list/crimes = list("murder", "larceny", "embezzlement", "unionization", "dereliction of duty", "kidnapping", "gross incompetence", "grand theft", "collaboration with the Syndicate", \
"worship of a forbidden deity", "interspecies relations", "mutiny")
flavour_text += "[pick(crimes)]. but regardless of that, it seems like your crime doesn't matter now. You don't know where you are, but you know that it's out to kill you, and you're not going \
to lose this opportunity. Find a way to get out of this mess and back to where you rightfully belong - your [pick("house", "apartment", "spaceship", "station")]."
/obj/effect/mob_spawn/ghost_role/human/prisoner_transport/Destroy()
new /obj/structure/fluff/empty_sleeper/syndicate(get_turf(src))
return ..()
/obj/effect/mob_spawn/ghost_role/human/prisoner_transport/special(mob/living/carbon/human/spawned_human, mob/mob_possessor, apply_prefs)
. = ..()
spawned_human.fully_replace_character_name(null, "NTP #LL-0[rand(111,999)]") //Nanotrasen Prisoner #Lavaland-(numbers)
/datum/outfit/lavalandprisoner
name = "Lavaland Prisoner"
uniform = /obj/item/clothing/under/rank/prisoner
mask = /obj/item/clothing/mask/breath
shoes = /obj/item/clothing/shoes/sneakers/orange
r_pocket = /obj/item/tank/internals/emergency_oxygen
//spawners for the space hotel, which isn't currently in the code but heyoo secret away missions or something
//Space Hotel Staff
/obj/effect/mob_spawn/ghost_role/human/hotel_staff //not free antag u little shits
name = "staff sleeper"
desc = "A sleeper designed for long-term stasis between guest visits."
prompt_name = "a hotel staff member"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
outfit = /datum/outfit/hotelstaff
you_are_text = "You are a staff member of a top-of-the-line space hotel!"
flavour_text = "Cater to visiting guests with your fellow staff, advertise the hotel, and make sure the manager doesn't fire you. Remember, the customer is always right!"
important_text = "Do NOT leave the hotel, as that is grounds for contract termination."
spawner_job_path = /datum/job/hotel_staff
allow_custom_character = ALL
/datum/outfit/hotelstaff
name = "Hotel Staff"
uniform = /obj/item/clothing/under/misc/assistantformal
back = /obj/item/storage/backpack
shoes = /obj/item/clothing/shoes/laceup
r_pocket = /obj/item/radio/off
implants = list(
/obj/item/implant/exile/noteleport,
/obj/item/implant/mindshield,
)
/obj/effect/mob_spawn/ghost_role/human/hotel_staff/security
name = "hotel security sleeper"
prompt_name = "a hotel security member"
outfit = /datum/outfit/hotelstaff/security
you_are_text = "You are a peacekeeper."
flavour_text = "You have been assigned to this hotel to protect the interests of the company while keeping the peace between \
guests and the staff."
important_text = "Do NOT leave the hotel, as that is grounds for contract termination."
/datum/outfit/hotelstaff/security
name = "Hotel Security"
uniform = /obj/item/clothing/under/rank/security/officer/blueshirt
suit = /obj/item/clothing/suit/armor/vest/blueshirt
back = /obj/item/storage/backpack/security
belt = /obj/item/storage/belt/security/full
head = /obj/item/clothing/head/helmet/blueshirt
shoes = /obj/item/clothing/shoes/jackboots
/obj/effect/mob_spawn/ghost_role/human/hotel_staff/Destroy()
new/obj/structure/fluff/empty_sleeper/syndicate(get_turf(src))
return ..()
/obj/effect/mob_spawn/ghost_role/human/syndicate
name = "Syndicate Operative"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
prompt_name = "a syndicate operative"
you_are_text = "You are a syndicate operative."
flavour_text = "You have awoken, without instruction. Death to Nanotrasen! If there are some clues around as to what you're supposed to be doing, you best follow those."
outfit = /datum/outfit/syndicate_empty
spawner_job_path = /datum/job/space_syndicate
allow_custom_character = ALL
/datum/outfit/syndicate_empty
name = "Syndicate Operative Empty"
id = /obj/item/card/id/advanced/chameleon
id_trim = /datum/id_trim/chameleon/operative
uniform = /obj/item/clothing/under/syndicate
back = /obj/item/storage/backpack
ears = /obj/item/radio/headset/syndicate/alt
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
shoes = /obj/item/clothing/shoes/combat
implants = list(/obj/item/implant/weapons_auth)
/datum/outfit/syndicate_empty/post_equip(mob/living/carbon/human/H)
H.faction |= ROLE_SYNDICATE
//For ghost bar.
/obj/effect/mob_spawn/ghost_role/human/space_bar_patron
name = "bar cryogenics"
uses = INFINITY
prompt_name = "a space bar patron"
you_are_text = "You're a patron!"
flavour_text = "Hang out at the bar and chat with your buddies. Feel free to hop back in the cryogenics when you're done chatting."
outfit = /datum/outfit/cryobartender
spawner_job_path = /datum/job/space_bar_patron
allow_custom_character = ALL
/obj/effect/mob_spawn/ghost_role/human/space_bar_patron/attack_hand(mob/user, list/modifiers)
var/despawn = tgui_alert(usr, "Return to cryosleep? (Warning, Your mob will be deleted!)", null, list("Yes", "No"))
if(despawn == "No" || !loc || !Adjacent(user))
return
user.visible_message(span_notice("[user.name] climbs back into cryosleep..."))
qdel(user)
/datum/outfit/cryobartender
name = "Cryogenic Bartender"
neck = /obj/item/clothing/neck/bowtie
uniform = /obj/item/clothing/under/costume/buttondown/slacks/service
suit = /obj/item/clothing/suit/armor/vest
back = /obj/item/storage/backpack
glasses = /obj/item/clothing/glasses/sunglasses/reagent
shoes = /obj/item/clothing/shoes/sneakers/black
//Timeless prisons: Spawns in Wish Granter prisons in lavaland. Ghosts become age-old users of the Wish Granter and are advised to seek repentance for their past.
/obj/effect/mob_spawn/ghost_role/human/exile
name = "timeless prison"
desc = "Although this stasis pod looks medicinal, it seems as though it's meant to preserve something for a very long time."
prompt_name = "a penitent exile"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
mob_species = /datum/species/shadow
you_are_text = "You are cursed."
flavour_text = "Years ago, you sacrificed the lives of your trusted friends and the humanity of yourself to reach the Wish Granter. Though you \
did so, it has come at a cost: your very body rejects the light, dooming you to wander endlessly in this horrible wasteland."
spawner_job_path = /datum/job/exile
/obj/effect/mob_spawn/ghost_role/human/exile/Destroy()
new/obj/structure/fluff/empty_sleeper(get_turf(src))
return ..()
/obj/effect/mob_spawn/ghost_role/human/exile/special(mob/living/new_spawn, mob/mob_possessor, apply_prefs)
. = ..()
new_spawn.fully_replace_character_name(null,"Wish Granter's Victim ([rand(1,999)])")
var/wish = rand(1,4)
var/message = ""
switch(wish)
if(1)
message = "<b>You wished to kill, and kill you did. You've lost track of how many, but the spark of excitement that murder once held has winked out. You feel only regret.</b>"
if(2)
message = "<b>You wished for unending wealth, but no amount of money was worth this existence. Maybe charity might redeem your soul?</b>"
if(3)
message = "<b>You wished for power. Little good it did you, cast out of the light. You are the [gender == MALE ? "king" : "queen"] of a hell that holds no subjects. You feel only remorse.</b>"
if(4)
message = "<b>You wished for immortality, even as your friends lay dying behind you. No matter how many times you cast yourself into the lava, you awaken in this room again within a few days. There is no escape.</b>"
to_chat(new_spawn, span_infoplain("[message]"))
/obj/effect/mob_spawn/ghost_role/human/nanotrasensoldier
name = "sleeper"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
faction = list(FACTION_NANOTRASEN_PRIVATE)
prompt_name = "a private security officer"
you_are_text = "You are a Nanotrasen Private Security Officer!"
flavour_text = "If higher command has an assignment for you, it's best you follow that. Otherwise, death to The Syndicate."
outfit = /datum/outfit/nanotrasensoldier
allow_custom_character = ALL
/obj/effect/mob_spawn/ghost_role/human/commander
name = "sleeper"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
prompt_name = "a nanotrasen commander"
you_are_text = "You are a Nanotrasen Commander!"
flavour_text = "Upper-crusty of Nanotrasen. You should be given the respect you're owed."
outfit = /datum/outfit/nanotrasencommander
allow_custom_character = GHOSTROLE_TAKE_PREFS_APPEARANCE
//space doctor, a rat with cancer, and bessie from an old removed lavaland ruin.
/obj/effect/mob_spawn/ghost_role/human/doctor
name = "sleeper"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
prompt_name = "a space doctor"
you_are_text = "You are a space doctor!"
flavour_text = "It's your job- no, your duty as a doctor, to care and heal those in need."
outfit = /datum/outfit/job/doctor
spawner_job_path = /datum/job/space_doctor
allow_custom_character = ALL
/obj/effect/mob_spawn/ghost_role/human/doctor/alive/equip(mob/living/carbon/human/doctor)
. = ..()
// Remove radio and PDA so they wouldn't annoy station crew.
var/list/del_types = list(/obj/item/modular_computer/pda, /obj/item/radio/headset)
for(var/del_type in del_types)
var/obj/item/unwanted_item = locate(del_type) in doctor
qdel(unwanted_item)
/obj/effect/mob_spawn/ghost_role/mouse
name = "sleeper"
mob_type = /mob/living/basic/mouse
prompt_name = "a mouse"
you_are_text = "You're a mouse!"
flavour_text = "Uh... yep! Squeak squeak, motherfucker."
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
/obj/effect/mob_spawn/ghost_role/cow
name = "sleeper"
mob_name = "Bessie"
mob_type = /mob/living/basic/cow
prompt_name = "a cow"
you_are_text = "You're a cow!"
flavour_text = "Go graze some grass, stinky."
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
/obj/effect/mob_spawn/cow/special(mob/living/spawned_mob, mob/mob_possessor, apply_prefs)
. = ..()
gender = FEMALE
// snow operatives on snowdin - unfortunately seemingly removed in a map remake womp womp
/obj/effect/mob_spawn/ghost_role/human/snow_operative
name = "sleeper"
prompt_name = "a snow operative"
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper"
faction = list(ROLE_SYNDICATE)
outfit = /datum/outfit/snowsyndie
you_are_text = "You are a syndicate operative recently awoken from cryostasis in an underground outpost."
flavour_text = "Monitor Nanotrasen communications and record information. All intruders should be disposed of \
swiftly to assure no gathered information is stolen or lost. Try not to wander too far from the outpost as the \
caves can be a deadly place even for a trained operative such as yourself."
allow_custom_character = ALL
/datum/outfit/snowsyndie
name = "Syndicate Snow Operative"
id = /obj/item/card/id/advanced/chameleon
id_trim = /datum/id_trim/chameleon/operative
uniform = /obj/item/clothing/under/syndicate/coldres
ears = /obj/item/radio/headset/syndicate/alt
shoes = /obj/item/clothing/shoes/combat/coldres
r_pocket = /obj/item/gun/ballistic/automatic/pistol
implants = list(/obj/item/implant/exile)
//Forgotten syndicate ship
/obj/effect/mob_spawn/ghost_role/human/syndicatespace
name = "Syndicate Ship Crew Member"
show_flavor = FALSE
icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper_s"
prompt_name = "cybersun crew"
you_are_text = "You are a syndicate operative on old ship, stuck in hostile space."
flavour_text = "Your ship docks after a long time somewhere in hostile space, reporting a malfunction. You are stuck here, with Nanotrasen station nearby. Fix the ship, find a way to power it and follow your captain's orders."
important_text = "Obey orders given by your captain. DO NOT let the ship fall into enemy hands."
outfit = /datum/outfit/syndicatespace/syndicrew
spawner_job_path = /datum/job/syndicate_cybersun
allow_custom_character = ALL
/obj/effect/mob_spawn/ghost_role/human/syndicatespace/special(mob/living/new_spawn, mob/mob_possessor, apply_prefs)
. = ..()
new_spawn.grant_language(/datum/language/codespeak, source = LANGUAGE_SPAWNER) // SKYRAT EDIT CHANGE - ORIGINAL: new_spawn.grant_language(/datum/language/codespeak, source = LANGUAGE_MIND)
var/datum/job/spawn_job = SSjob.get_job_type(spawner_job_path)
var/policy = get_policy(spawn_job.policy_index)
if(policy)
to_chat(new_spawn, span_bold("[policy]"))
/obj/effect/mob_spawn/ghost_role/human/syndicatespace/captain
name = "Syndicate Ship Captain"
prompt_name = "a cybersun captain"
you_are_text = "You are the captain of an old ship, stuck in hostile space."
flavour_text = "Your ship docks after a long time somewhere in hostile space, reporting a malfunction. You are stuck here, with Nanotrasen station nearby. Command your crew and turn your ship into the most protected fortress."
important_text = "Protect the ship and secret documents in your backpack with your own life."
outfit = /datum/outfit/syndicatespace/syndicaptain
spawner_job_path = /datum/job/syndicate_cybersun_captain
allow_custom_character = ALL
/obj/effect/mob_spawn/ghost_role/human/syndicatespace/captain/Destroy()
new /obj/structure/fluff/empty_sleeper/syndicate/captain(get_turf(src))
return ..()
/datum/outfit/syndicatespace
name = "Syndicate Ship Base"
id = /obj/item/card/id/advanced/black/syndicate_command/crew_id
uniform = /obj/item/clothing/under/syndicate/combat
back = /obj/item/storage/backpack
belt = /obj/item/storage/belt/military/assault
ears = /obj/item/radio/headset/syndicate/alt
gloves = /obj/item/clothing/gloves/combat
shoes = /obj/item/clothing/shoes/combat
implants = list(/obj/item/implant/weapons_auth)
/datum/outfit/syndicatespace/post_equip(mob/living/carbon/human/syndie_scum)
syndie_scum.faction |= ROLE_SYNDICATE
/datum/outfit/syndicatespace/syndicrew
name = "Syndicate Ship Crew Member"
glasses = /obj/item/clothing/glasses/night
mask = /obj/item/clothing/mask/gas/syndicate
l_pocket = /obj/item/gun/ballistic/automatic/pistol
r_pocket = /obj/item/knife/combat/survival
/datum/outfit/syndicatespace/syndicaptain
name = "Syndicate Ship Captain"
id = /obj/item/card/id/advanced/black/syndicate_command/captain_id
uniform = /obj/item/clothing/under/syndicate/combat
suit = /obj/item/clothing/suit/armor/vest/capcarapace/syndicate
ears = /obj/item/radio/headset/syndicate/alt/leader
head = /obj/item/clothing/head/hats/hos/beret/syndicate
r_pocket = /obj/item/knife/combat/survival
backpack_contents = list(
/obj/item/documents/syndicate/red,
/obj/item/gun/ballistic/automatic/pistol/aps,
/obj/item/paper/fluff/ruins/forgottenship/password,
)