Chef Ghost Role Fixes, Edits, and Minor Additions (#1359)

* Makes a decent number of adjustments to the All-American Diner ghost role and its map.

* Commits more edits for the diner ruin and its map.

* Makes a number of final corrections.

* Replaces the space suit with a freedom space suit; corrects a "your'r're'r're're" grammar error.
This commit is contained in:
QuiteLiterallyAnything
2025-02-23 17:37:21 -08:00
committed by GitHub
parent d3592efdb9
commit 0e7fa10efb
4 changed files with 986 additions and 849 deletions

View File

@@ -42,14 +42,18 @@
///Define for the 'Rabbits' Faction. ///Define for the 'Rabbits' Faction.
#define FACTION_RABBITS "rabbits" #define FACTION_RABBITS "rabbits"
//Define for the Syndicate Engineer Ruin, used in 'syndicate_engineer.dm" ///Define for the Syndicate Engineer Ruin, used in 'syndicate_engineer.dm"
#define ROLE_SYNDICATE_ENGINEER "Syndicate Engineer" #define ROLE_SYNDICATE_ENGINEER "Syndicate Engineer"
//Defines for "Alert Level Deltaww" ///Defines for "Alert Level Deltaww"
#define SEC_LEVEL_DELTAWW 4 #define SEC_LEVEL_DELTAWW 4
#define ALERT_COEFF_DELTAWW 255 //This alert level should only be temporary; might as well mess with everyone. #define ALERT_COEFF_DELTAWW 255 //This alert level should only be temporary; might as well mess with everyone.
//Defines for "Ghost Kitchen" diner ghost spawners ///Defines for "Ghost Kitchen" diner ghost spawners
#define ROLE_GHOST_CHEF "All-American Chef" #define ROLE_GHOST_CHEF "All-American Chef"
#define ROLE_GHOST_COOK "All-American Cook" #define ROLE_GHOST_COOK "All-American Cook"
#define ROLE_GHOST_REGULAR "Fake Health Inspector" #define ROLE_GHOST_REGULAR "Fake Health Inspector"
///Define for the diner ghost role's z-level restriction component.
///This does NOT work with the regular "stationstuck" component.
#define PIZZAFICATION "pizzafy"

View File

@@ -238,5 +238,5 @@
name = "Prototype Dormitories" name = "Prototype Dormitories"
icon_state = "dorms" icon_state = "dorms"
/area/ruin/space/has_grav/powered/ghostkitchen /area/ruin/space/has_grav/ghostkitchen
name = "The All American Diner" name = "The All American Diner"

View File

@@ -1,9 +1,31 @@
// - MAP TEMPLATE DATUM - //
/datum/map_template/ruin/space/fulp/ghost_diner /datum/map_template/ruin/space/fulp/ghost_diner
name = "Space-Ruin Staffed All-American Diner" name = "Space-Ruin Staffed All-American Diner"
id = "ghost diner" id = "ghost diner"
description = "A fully staffed american diner, floating in the void of space." description = "A fully staffed american diner, floating in the void of space."
suffix = "allamericandiner_openforbusiness.dmm" suffix = "allamericandiner_openforbusiness.dmm"
// - CUSTOM RTG SUBTYPE FOR THE DINER MAP - //
/obj/item/circuitboard/machine/rtg/advanced/pre_upgraded
name = "Prebuilt RTG"
build_path = /obj/machinery/power/rtg/advanced/pre_upgraded
specific_parts = TRUE
req_components = list(
/obj/item/stack/cable_coil = 5,
/datum/stock_part/capacitor/tier4 = 1,
/datum/stock_part/micro_laser/tier4 = 1,
/obj/item/stack/sheet/mineral/uranium = 10,
/obj/item/stack/sheet/mineral/plasma = 5,
)
/obj/machinery/power/rtg/advanced/pre_upgraded
name = "prebuilt radioisotope thermoelectric generator"
desc = "An incredibly expensive RTG that requires highly specific parts to function. "
circuit = /obj/item/circuitboard/machine/rtg/advanced/pre_upgraded
// - JOB DATUMS - //
/datum/job/fulp_ghostchef /datum/job/fulp_ghostchef
title = ROLE_GHOST_CHEF title = ROLE_GHOST_CHEF
@@ -13,11 +35,59 @@
/datum/job/fulp_ghostregular /datum/job/fulp_ghostregular
title = ROLE_GHOST_REGULAR title = ROLE_GHOST_REGULAR
// - GHOST ROLE COMPONENT DATUM(S) - //
/// A subtype of the stationstuck component that's primarily intended for use in one ghost role.
/// Turns its (presumably '/mob/living') owner into a pizza if they leave the z-level the component
/// is attatched on.
/datum/component/stationstuck/diner
punishment = PIZZAFICATION
// Copied over from "/datum/smite/objectify/effect()"
// in 'code\modules\admin\smites\become_object.dm'
/datum/component/stationstuck/diner/punish()
if(punishment != PIZZAFICATION)
return ..()
var/mob/living/future_pizza = parent
if(message)
to_chat(future_pizza, span_userdanger("[message]"))
// We're turning them into a Hawaiian pizza for extra shock value.
var/atom/transform_path = /obj/item/food/pizza/pineapple
var/mutable_appearance/pizzafied_player = mutable_appearance(initial(transform_path.icon), initial(transform_path.icon_state))
pizzafied_player.pixel_x = initial(transform_path.pixel_x)
pizzafied_player.pixel_y = initial(transform_path.pixel_y)
var/mutable_appearance/transform_scanline = mutable_appearance('icons/effects/effects.dmi', "transform_effect")
var/turf/future_pizza_turf = get_turf(future_pizza)
message_admins("[future_pizza.real_name] ([future_pizza.ckey]) has been turned into a pizza near \
[ADMIN_VERBOSEJMP(future_pizza_turf)] for attempting to move to a different z_level.")
future_pizza.transformation_animation(pizzafied_player, 5 SECONDS, transform_scanline.appearance)
future_pizza.Immobilize(5 SECONDS, ignore_canstun = TRUE)
addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(objectify), future_pizza, transform_path), 5 SECONDS)
// - GHOST ROLE SPAWNERS - //
/obj/effect/mob_spawn/ghost_role/human/allamerican /obj/effect/mob_spawn/ghost_role/human/allamerican
prompt_name = "A real american" prompt_name = "A real american"
you_are_text = "A real american, fight for the rights of every man!" you_are_text = "A real american, fight for the rights of every man!"
flavour_text = "Fight what's right, fight for your life!" flavour_text = "Fight what's right, fight for your life!"
// (Implementation of the stationstuck component has been copied over from
// 'fulp_modules\mapping\ruins\space\syndicate_engineer\syndicate_engineer.dm')
/obj/effect/mob_spawn/ghost_role/human/allamerican/special(mob/living/new_spawn)
. = ..()
to_chat(new_spawn, span_warning("You have been implanted with a pizzafication implant that will activate if you stray too far from the diner. Glory to Nanotrasen."))
new_spawn.AddComponent(/datum/component/stationstuck/diner, PIZZAFICATION, "You have left the vicinity of the diner. Your pizzafication implant has been triggered.")
// Beacons won't spawn as a part of outfit datums for some reason, so we'll spawn ours here.
var/turf/beacon_spawn_turf = get_turf(new_spawn)
var/obj/item/beacon/new_beacon = new /obj/item/beacon(beacon_spawn_turf)
new_spawn.put_in_hands(new_beacon, ignore_animation = TRUE)
/obj/effect/mob_spawn/ghost_role/human/allamerican/chef /obj/effect/mob_spawn/ghost_role/human/allamerican/chef
name = "All-American Chef" name = "All-American Chef"
desc = "A cryogenics pod, storing a trained chef to prepare meals when activity is detected in this sector." desc = "A cryogenics pod, storing a trained chef to prepare meals when activity is detected in this sector."
@@ -29,7 +99,7 @@
Lead the kitchen and ensure your cook has direction. Create culinary masterpieces." Lead the kitchen and ensure your cook has direction. Create culinary masterpieces."
important_text = "Do not abandon the kitchen! Lead with grace." important_text = "Do not abandon the kitchen! Lead with grace."
spawner_job_path = /datum/job/fulp_ghostchef spawner_job_path = /datum/job/fulp_ghostchef
outfit = /datum/outfit/fulp_ghostchef outfit = /datum/outfit/diner_ghost/fulp_ghostchef
/obj/effect/mob_spawn/ghost_role/human/allamerican/cook /obj/effect/mob_spawn/ghost_role/human/allamerican/cook
name = "All-American Cook" name = "All-American Cook"
@@ -42,40 +112,108 @@
Follow the chef's direction. Do menial tasks. Clean up after the recent Flyperson birthday bash." Follow the chef's direction. Do menial tasks. Clean up after the recent Flyperson birthday bash."
important_text = "Yes chef! You answer directly to the chef." important_text = "Yes chef! You answer directly to the chef."
spawner_job_path = /datum/job/fulp_ghostcook spawner_job_path = /datum/job/fulp_ghostcook
outfit = /datum/outfit/fulp_ghostcook outfit = /datum/outfit/diner_ghost/fulp_ghostcook
/obj/effect/mob_spawn/ghost_role/human/allamerican/regular /obj/effect/mob_spawn/ghost_role/human/allamerican/regular
name = "All-American Regular" name = "All-American \"Customer\""
desc = "A cryogenics pod, storing a regular customer of the diner. They seem to be sleeping off a serious food coma." desc = "A cryogenics pod storing a regular customer of the diner. They seem to be sleeping off a serious food coma."
prompt_name = "an all american customer" prompt_name = "an all american customer"
icon = 'icons/obj/machines/sleeper.dmi' icon = 'icons/obj/machines/sleeper.dmi'
icon_state = "sleeper" icon_state = "sleeper"
you_are_text = "You are a lover of fine dining." you_are_text = "You are a lover of fine dining."
flavour_text = "After realizing you could claim to be a health inspector, and recieve free meals, \ flavour_text = "After realizing you could claim to be a health inspector (and recieve free meals) \
you began a journey across the Spinward sector, on a quest for free meals." you began a journey across the Spinward sector (on a quest for free meals). As an ironic punishment \
important_text = "Don't get yourself kicked out, you're stranded!" for impersonating a food safety official, you are now unwillingly imprisoned on a space diner."
important_text = "Don't get yourself kicked out: you'll turn into a pizza!"
spawner_job_path = /datum/job/fulp_ghostregular spawner_job_path = /datum/job/fulp_ghostregular
outfit = /datum/outfit/fulp_ghostregular outfit = /datum/outfit/diner_ghost/fulp_ghostregular
/datum/outfit/fulp_ghostchef
// - EXPOSITIONAL POCKET NOTES - //
/obj/item/paper/crumpled/fluff/space_diner_general
name = "NOTICE: Feeling lonely?"
color = "#e0e010"
default_raw_text = {"
<center><h1>No customers?</h1></center>
<p>Try hailing nearby stations over your wall intercomms and telling them that you're open! Anyone with a functional teleporter should be able to make a one-way trip to your restaurant once you and your tracking beacons are out of cryostasis.</p>
<p>Changing the name of the handheld GPS unit in the front airlock will help non-teleporting spacefarers locate you manually. Enjoy your new life.</p>
<p><i><b>NOTE</b>: All proceeds from the Nanotrasen Brand restaurant portal tourism system legally belong to the Nanotrasen Revenue Department. You will receive your salary in full after your six quadrum employment period has ceased. Ensure that these proceeds are kept secure in the manager's safe. Glory to Nanotrasen.</i></p>
"}
/obj/item/paper/fluff/space_diner_staff
name = "Notice of Employment"
desc = "A formal document detailing employment information."
default_raw_text = {"
<center><h1>Notice of Employment</h1></center>
<center><h2>Issued by the Nanotrasen Department of Humanoid Resource Management</h1></center>
<small><i>This document is to be kept on its recipient at all times as a contingency against any possible amnesia caused by prolonged cryostasis.</small></i>
<p>Welcome to your new life employee. You have applied for the position of <b>CULINARY STAFF</b> on a state of the art stellar dining platform. Given that your employment is not nullified due to a contract violation, you will be receiving <b>WAGE</b> credits at the end of your <b>LONG-TERM</b> shift on <b>STANDARDIZED_INTERSTELLAR_DATE</b>.</p>
<p>On your person you may find the following equipment:</p>
<ol>
<li><b>JOB_EQUIPMENT</b> for <b>EQUIPMENT_PURPOSE</b>.
<li>A Nanotrasen patented tracking beacon to allow for easy transportation between your work
site and any others that might intersect with its orbit. (Please note that you are requested to
turn this beacon off as a means of closing your work site prior to resting.)
<li>One Unauthorized Workplace Leave Prevention (UWLP) subdermal implant.
<li><b><i>INK CARTRIDGE LOW</i></b>
</ol>
"}
/obj/item/paper/fluff/space_diner_customer
name = "Notice of Penalization"
desc = "A stern document conveying civil penalties."
color = "#b07020"
default_raw_text = {"
<center><h1>Notice of Penalization</h1></center>
<center><h2>Issued by the Nanotrasen Department of Justice</h2></center>
<small><i>This document is to be kept on its recipient at all times as a contingency against any possible amnesia caused by prolonged cryostasis.</small></i>
<p>By order of the <b>COURT_NAME</b> you, <b>CONVICT_NAME</b>, are hereby sentenced to <b>SENTENCE_DURATION</b> quarter(s) of interment on <b>CORRECTIONAL_FACILITY_NAME</b> for the crime of <b>FELONY_NAME</b>.
<p>Sentencing notes: "Repeat offender, court authorized unusual punishment. Send to a restaurant or something."</p>
"}
// - OUTFIT DATUMS - //
// Parent datum for our diner ghost roll outfits
/datum/outfit/diner_ghost
name = "PARENT OUTFIT DATUM; DO NOT USE"
// Sets up the outfit's ID; seen throughout a lot of outfit code for some reason.
// Original source for copied code unknown.
/datum/outfit/diner_ghost/post_equip(mob/living/carbon/human/H, visuals_only = FALSE)
if(visuals_only)
return
var/obj/item/card/id/W = H.wear_id
W.registered_name = H.real_name
W.update_label()
W.update_icon()
/datum/outfit/diner_ghost/fulp_ghostchef
name = "All-American Chef" name = "All-American Chef"
uniform = /obj/item/clothing/under/misc/patriotsuit uniform = /obj/item/clothing/under/misc/patriotsuit
suit = /obj/item/clothing/suit/toggle/chef suit = /obj/item/clothing/suit/toggle/chef
head = /obj/item/clothing/head/utility/chefhat head = /obj/item/clothing/head/utility/chefhat
shoes = /obj/item/clothing/shoes/sneakers/black shoes = /obj/item/clothing/shoes/sneakers/black
id = /obj/item/card/id/advanced
id_trim = /datum/id_trim/job/cook/chef id_trim = /datum/id_trim/job/cook/chef
l_pocket = /obj/item/paper/fluff/space_diner_staff
/datum/outfit/fulp_ghostcook /datum/outfit/diner_ghost/fulp_ghostcook
name = "All-American Cook" name = "All-American Cook"
uniform = /obj/item/clothing/under/misc/patriotsuit uniform = /obj/item/clothing/under/misc/patriotsuit
suit = /obj/item/clothing/suit/apron/chef suit = /obj/item/clothing/suit/apron/chef
head = /obj/item/clothing/head/soft/mime head = /obj/item/clothing/head/soft/mime
shoes = /obj/item/clothing/shoes/sneakers/black shoes = /obj/item/clothing/shoes/sneakers/black
id = /obj/item/card/id/advanced
id_trim = /datum/id_trim/job/cook id_trim = /datum/id_trim/job/cook
l_pocket = /obj/item/paper/fluff/space_diner_staff
/datum/outfit/fulp_ghostregular /datum/outfit/diner_ghost/fulp_ghostregular
name = "Diner Regular" name = "Diner Regular"
uniform = /obj/item/clothing/under/suit/black uniform = /obj/item/clothing/under/suit/black
shoes = /obj/item/clothing/shoes/laceup shoes = /obj/item/clothing/shoes/laceup
r_hand = /obj/item/storage/briefcase r_hand = /obj/item/storage/briefcase
l_pocket = /obj/item/paper/fluff/space_diner_customer