Adds a small cafeteria behind the right wing shutters of the museum. (#81465)

## About The Pull Request
I was thinking to contribute something to the new away mission map to
make it better. Mapping and all takes too much time for me, so I could
do little. Though it comes with its own unique gimmicks.

To reach the cafeteria, one has to complete a couple puzzles.
The first set is opened by inputing the correct PIN on the password
panel beside it. There're several clues to help you guess this fairly
easy puzzle, in the form of several number graffitis, a scrapped piece
of paper full of numbers, and a board filled with colored dots also
found just beside the panel.
The second one is opened by a keycard, and is generally lazier. To find
it, you'll need to do a bit of (toilet) searching.

As for the unique things this PR adds:
- A fire extinguisher... that actually contains welding fuel
- A (dirt-cheap) hotdog vending machine*
- A completely ornamental maneki-neko (that's the name of the
luck-bringing, paw-waving cat figurine)
- A piggy bank that carries money between rounds. It has a cap of 10k
credits worth of holochips, cash and coins, which is pretty high, but
I'm confident people will just destroy it for its contents the moment
they find it. His name is Pigston Swinelord VI.
- More, totally legit and not actually fake bombable walls :^)

*By the by, you can also find it during the national hotdog day.

Screenshots of the new location:
![museum
cafe](https://github.com/tgstation/tgstation/assets/42542238/1c0d93b7-90d5-4459-a48d-81430f0d3613)
![museum
restrooms](https://github.com/tgstation/tgstation/assets/42542238/5a9e049d-6acc-464b-998d-901e43154bae)


## Why It's Good For The Game
You know how most away missions are not that special at all? Yeah,
@mc-oofert set an example of a pretty decent one actually, if not a tad
small. I thought it could use a touch of another mind actually
contributing to it too, because it deserves it.

Also, this sets the basis for other persistent piggy banks. I don't
think they should all have that 10k cap like this one, perhaps 1k is
enough. Beside, the code that mothblocks did for json database datum is
pretty good, so there is not a whole lot of shitcode here.

## Changelog

🆑
add: Added a cafeteria to the museum away mission, with a few special
things to it. To reach it, you'll have to complete a couple puzzles
however.
map: The museum away mission now has a couple restrooms.
add: Hotdog vending machines may spawn during the National Hot Dog Day.
/🆑
This commit is contained in:
Ghom
2024-03-05 18:19:39 -07:00
committed by GitHub
parent e4f3e7e492
commit 88bdabe53b
48 changed files with 1779 additions and 581 deletions
@@ -33,6 +33,10 @@
new_replica.name = "[appearance_object.name][obvious_replica ? " replica" : ""]"
new_replica.desc = "[appearance_object.desc][obvious_replica ? " ..except this one is a replica.": ""]"
new_replica.pixel_y = pixel_y
new_replica.pixel_x = pixel_x
qdel(appearance_object)
qdel(src)
return INITIALIZE_HINT_QDEL
@@ -129,3 +133,68 @@
<br>sometimes i can catch them moving
<br>
<br>we should have never come here"}
/obj/item/paper/fluff/museum/chefs_ultimatum
name = "old note"
default_raw_text = {"I messed it up big times.
<br>I broke the button and now I'm stuck.
<br>Anyway, I don't have the key on me. I flushed it down.
<br>Hell knows where it's now, shit's like all linked together here."}
/obj/item/paper/fluff/museum/numbers_on_walls
name = "reprimanding note"
default_raw_text = "Please refraim from writing the pass all over the place. I know you've the memory of a goldfish, but, like, just put it on a piece of paper, no?"
/obj/effect/mob_spawn/corpse/human/skeleton/museum_chef
name = "Dead Museum Cafeteria Chef"
mob_name = "Nameless Chef"
outfit = /datum/outfit/museum_chef
/datum/outfit/museum_chef
name = "Dead Museum Cafeteria Chef"
uniform = /obj/item/clothing/under/color/green
suit = /obj/item/clothing/suit/toggle/chef
head = /obj/item/clothing/head/utility/chefhat
shoes = /obj/item/clothing/shoes/laceup
mask = /obj/item/clothing/mask/fakemoustache/italian
/obj/machinery/vending/hotdog/museum
obj_flags = parent_type::obj_flags|NO_DECONSTRUCTION
onstation_override = TRUE
#define CAFE_KEYCARD_TOILETS "museum_cafe_key_toilets"
///Do not place these beyond the cafeteria shutters, or you might lock people out of reaching it.
/obj/structure/toilet/museum
/obj/structure/toilet/museum/Initialize(mapload)
. = ..()
if(mapload)
SSqueuelinks.add_to_queue(src, CAFE_KEYCARD_TOILETS)
/obj/item/keycard/cafeteria
name = "museum cafeteria keycard"
color = COLOR_OLIVE
puzzle_id = "museum_cafeteria"
desc = "The key to the cafeteria, as the name implies."
/obj/item/keycard/cafeteria/Initialize(mapload)
. = ..()
if(mapload)
SSqueuelinks.add_to_queue(src, CAFE_KEYCARD_TOILETS)
return INITIALIZE_HINT_LATELOAD
/obj/item/keycard/cafeteria/LateInitialize()
. = ..()
if(SSqueuelinks.queues[CAFE_KEYCARD_TOILETS])
SSqueuelinks.pop_link(CAFE_KEYCARD_TOILETS)
/obj/item/keycard/cafeteria/MatchedLinks(id, partners)
if(id != CAFE_KEYCARD_TOILETS)
return ..()
var/obj/structure/toilet/destination = pick(partners)
forceMove(destination)
destination.w_items += w_class
destination.contents += src
#undef CAFE_KEYCARD_TOILETS
@@ -76,12 +76,12 @@
SEND_SIGNAL(src, COMSIG_PUZZLE_COMPLETED)
qdel(src)
/obj/machinery/puzzle_button/meatderelict
/obj/machinery/puzzle/button/meatderelict
name = "lockdown panel"
desc = "A panel that controls the lockdown of this outpost."
id = "md_prevault"
/obj/machinery/puzzle_button/meatderelict/open_doors()
/obj/machinery/puzzle/button/meatderelict/on_puzzle_complete()
. = ..()
playsound(src, 'sound/effects/alert.ogg', 100, TRUE)
visible_message(span_warning("[src] lets out an alarm as the lockdown is lifted!"))
@@ -121,7 +121,7 @@
/obj/lightning_thrower/Initialize(mapload)
. = ..()
START_PROCESSING(SSprocessing, src)
START_PROCESSING(SSprocessing, src)
/obj/lightning_thrower/Destroy()
. = ..()