From e12f68df051f5b2fb61222945b59571fc260282c Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Sat, 8 Oct 2022 01:29:51 +0200 Subject: [PATCH] [MIRROR] Easter Egg DLC - Captain's log and WGW [MDB IGNORE] (#16702) * Easter Egg DLC - Captain's log and WGW (#68411) This adds two easter eggs that have been apart of SS13 lore since the game was created: Captain's Log - Broken tape recorder that (spawns on the derelict station) Woody's Got Wood - Used spellbook that makes a person go temporary blind if they read it (spawns in curators forbidden knowledge bookcase) Why It's Good For The Game These have been apart of SS13 lore for a long time. It would be cool to have some "official" easter eggs for players to discover. Changelog cl add: Add mail goodies for curator. (random books) add: Adds easter egg - Captain's Log. Tape recorder that spawns on derelict station. add: Adds easter egg - Woody's Got Wood. Will rarely appear as a mail goodie for curator. /cl * Easter Egg DLC - Captain's log and WGW Co-authored-by: Tim --- _maps/RandomRuins/SpaceRuins/TheDerelict.dmm | 179 +++++++++--------- .../objects/items/devices/taperecorder.dm | 14 +- .../objects/items/granters/magic/blind.dm | 14 ++ code/modules/jobs/job_types/curator.dm | 6 + .../ruins/spaceruin_code/TheDerelict.dm | 137 ++++++++++++++ 5 files changed, 258 insertions(+), 92 deletions(-) diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 5946fafa37b..ae4b6ba0267 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -170,12 +170,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, /area/ruin/space/ks13/hallway/central) -"cg" = ( -/obj/structure/table, -/obj/item/clothing/head/chefhat, -/obj/structure/cable, -/turf/open/floor/iron/airless, -/area/ruin/space/ks13/service/kitchen) "ci" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -240,10 +234,31 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/ruin/space/ks13/security/court) +"cR" = ( +/obj/machinery/computer/monitor{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/unlocked{ + dir = 8; + environ = 0; + equipment = 0; + lighting = 0; + name = "Aft Solar APC"; + pixel_x = -25; + start_charge = 0 + }, +/turf/open/floor/iron, +/area/ruin/space/ks13/engineering/sb_bow_solars_control) "de" = ( /obj/structure/girder/reinforced, /turf/open/floor/plating/airless, /area/ruin/space/ks13/engineering/atmos) +"df" = ( +/obj/structure/table, +/obj/item/clothing/head/powdered_wig, +/turf/open/floor/iron, +/area/ruin/space/ks13/security/court) "dj" = ( /obj/structure/closet/radiation, /turf/open/floor/iron, @@ -501,6 +516,12 @@ /obj/structure/girder/reinforced, /turf/open/floor/plating/airless, /area/ruin/space/ks13/service/jani) +"ic" = ( +/obj/structure/table, +/obj/item/clothing/head/chefhat, +/obj/structure/cable, +/turf/open/floor/iron/airless, +/area/ruin/space/ks13/service/kitchen) "ie" = ( /obj/effect/decal/cleanable/glass, /obj/item/shard{ @@ -1236,17 +1257,6 @@ /obj/structure/cable, /turf/open/floor/iron/airless, /area/ruin/space/ks13/hallway/central) -"pU" = ( -/obj/docking_port/stationary{ - dir = 2; - dwidth = 11; - height = 22; - shuttle_id = "whiteship_z4"; - name = "KSS13: Derelict"; - width = 35 - }, -/turf/template_noop, -/area/space/nearstation) "pW" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -1631,19 +1641,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/engine/air, /area/ruin/space/ks13/science/ordnance) -"sa" = ( -/obj/structure/table/wood, -/obj/item/clothing/head/caphat{ - armor = null; - desc = "A worn captains hat. This probably won't protect your noggin too well."; - pixel_x = 7; - pixel_y = 9 - }, -/obj/effect/spawner/random/maintenance, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating/airless, -/area/space/nearstation) "sc" = ( /turf/open/floor/plating/airless, /area/ruin/space/ks13/science/genetics) @@ -1911,6 +1908,35 @@ /obj/item/stack/rods, /turf/template_noop, /area/space/nearstation) +"tq" = ( +/obj/structure/closet/crate, +/obj/item/clothing/head/rasta, +/obj/item/clothing/head/beanie/black, +/obj/item/clothing/head/beanie/christmas, +/obj/item/clothing/head/beanie/darkblue, +/obj/item/clothing/head/beanie/red, +/obj/item/clothing/head/waldo, +/obj/item/clothing/head/bearpelt, +/obj/item/clothing/head/beret, +/obj/item/clothing/head/bomb_hood, +/obj/item/clothing/head/bunnyhead, +/obj/item/clothing/head/cardborg, +/obj/item/clothing/head/cone, +/obj/item/clothing/head/festive, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/sec, +/obj/item/clothing/head/jester, +/obj/item/clothing/head/nun_hood, +/obj/item/clothing/head/papersack, +/obj/item/clothing/head/rabbitears, +/obj/item/clothing/head/snowman, +/obj/item/clothing/head/sombrero, +/obj/item/clothing/head/wig, +/obj/item/clothing/head/wizard/fake, +/obj/item/clothing/head/wizard/santa, +/obj/item/clothing/head/xenos, +/turf/open/floor/iron/airless, +/area/ruin/space/ks13/ai/vault) "tr" = ( /obj/structure/cable, /turf/open/floor/iron/chapel, @@ -2270,6 +2296,11 @@ /obj/structure/table_frame, /turf/open/floor/iron/airless, /area/ruin/space/ks13/engineering/atmos) +"vL" = ( +/obj/effect/mapping_helpers/burnt_floor, +/obj/item/tape/captains_log, +/turf/open/floor/plating/airless, +/area/space/nearstation) "vN" = ( /turf/open/floor/iron/airless, /area/ruin/space/ks13/hallway/aft) @@ -2368,6 +2399,19 @@ /obj/structure/cable, /turf/open/floor/iron/airless, /area/ruin/space/ks13/hallway/aft) +"ws" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/caphat{ + armor = null; + desc = "A worn captains hat. This probably won't protect your noggin too well."; + pixel_x = 7; + pixel_y = 9 + }, +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating/airless, +/area/space/nearstation) "wu" = ( /obj/structure/rack, /obj/effect/decal/cleanable/dirt, @@ -2480,6 +2524,17 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/iron, /area/ruin/space/ks13/command/bridge) +"wV" = ( +/obj/docking_port/stationary{ + dir = 2; + dwidth = 11; + height = 22; + shuttle_id = "whiteship_z4"; + name = "KSS13: Derelict"; + width = 35 + }, +/turf/template_noop, +/area/space/nearstation) "wX" = ( /obj/machinery/light/directional/north, /obj/structure/closet/crate, @@ -5122,11 +5177,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/airless, /area/ruin/space/ks13/dorms) -"KJ" = ( -/obj/structure/table, -/obj/item/clothing/head/powdered_wig, -/turf/open/floor/iron, -/area/ruin/space/ks13/security/court) "KL" = ( /obj/item/shard{ icon_state = "small"; @@ -7300,35 +7350,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/iron/airless, /area/ruin/space/ks13/service/hydro) -"VG" = ( -/obj/structure/closet/crate, -/obj/item/clothing/head/rasta, -/obj/item/clothing/head/beanie/black, -/obj/item/clothing/head/beanie/christmas, -/obj/item/clothing/head/beanie/darkblue, -/obj/item/clothing/head/beanie/red, -/obj/item/clothing/head/waldo, -/obj/item/clothing/head/bearpelt, -/obj/item/clothing/head/beret, -/obj/item/clothing/head/bomb_hood, -/obj/item/clothing/head/bunnyhead, -/obj/item/clothing/head/cardborg, -/obj/item/clothing/head/cone, -/obj/item/clothing/head/festive, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/sec, -/obj/item/clothing/head/jester, -/obj/item/clothing/head/nun_hood, -/obj/item/clothing/head/papersack, -/obj/item/clothing/head/rabbitears, -/obj/item/clothing/head/snowman, -/obj/item/clothing/head/sombrero, -/obj/item/clothing/head/wig, -/obj/item/clothing/head/wizard/fake, -/obj/item/clothing/head/wizard/santa, -/obj/item/clothing/head/xenos, -/turf/open/floor/iron/airless, -/area/ruin/space/ks13/ai/vault) "VH" = ( /obj/effect/mapping_helpers/burnt_floor, /obj/item/ammo_casing/a357{ @@ -8137,22 +8158,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/airless, /area/ruin/space/ks13/security/sec) -"ZQ" = ( -/obj/machinery/computer/monitor{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/power/apc/unlocked{ - dir = 8; - environ = 0; - equipment = 0; - lighting = 0; - name = "Aft Solar APC"; - pixel_x = -25; - start_charge = 0 - }, -/turf/open/floor/iron, -/area/ruin/space/ks13/engineering/sb_bow_solars_control) "ZR" = ( /obj/effect/decal/cleanable/blood/gibs/torso, /turf/open/floor/iron/dark, @@ -9271,7 +9276,7 @@ CU Xj uf rk -qG +vL ZD aa aa @@ -10635,7 +10640,7 @@ Jr Jr PE NZ -cg +ic oT Cv Dq @@ -11672,7 +11677,7 @@ NW aa aa aa -pU +wV aa aa aa @@ -15327,7 +15332,7 @@ yz oP wX At -VG +tq At oZ oP @@ -15770,7 +15775,7 @@ pR pR xS VB -ZQ +cR DU yz yz @@ -16029,7 +16034,7 @@ SA Am rl HL -sa +ws Hu IL rk @@ -16604,7 +16609,7 @@ sg zN uw gH -KJ +df JT MO gy diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 97280d6c2c8..d68c22ddd17 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -340,7 +340,6 @@ /obj/item/taperecorder/empty starting_tape_type = null - /obj/item/tape name = "tape" desc = "A magnetic tape that can hold up to ten minutes of content on either side." @@ -371,10 +370,6 @@ var/list/icons_available = list() var/radial_icon_file = 'icons/hud/radial_tape.dmi' -/obj/item/tape/fire_act(exposed_temperature, exposed_volume) - unspool() - ..() - /obj/item/tape/Initialize(mapload) . = ..() initial_icon_state = icon_state //random tapes will set this after choosing their icon @@ -387,6 +382,15 @@ if(prob(50)) tapeflip() +/obj/item/tape/examine(mob/user) + . = ..() + if(unspooled) + . += span_notice("It looks like the tape is unspooled. A screwdriver might fix this.") + +/obj/item/tape/fire_act(exposed_temperature, exposed_volume) + unspool() + ..() + /obj/item/tape/proc/update_available_icons() icons_available = list() diff --git a/code/game/objects/items/granters/magic/blind.dm b/code/game/objects/items/granters/magic/blind.dm index ee79de3565f..1a1bb5e9f0f 100644 --- a/code/game/objects/items/granters/magic/blind.dm +++ b/code/game/objects/items/granters/magic/blind.dm @@ -17,3 +17,17 @@ . = ..() to_chat(user, span_warning("You go blind!")) user.adjust_blindness(10) + +/obj/item/book/granter/action/spell/blind/wgw + name = "Woody's Got Wood" + pages_to_mastery = 69 // Andy's favorite number + uses = 0 // it's spent + desc = "This book looks dangerous. Only suffering awaits those who read." + remarks = list( // Death awaits + "T-T-This is bad...", + "This is REALLY bad...", + "I think my eyes are starting to bleed...", + "Please, make it stop...", + "HELP ME SOMEONE, WHY AM I READING THIS...", + ) + diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm index 4421765131a..b19394410eb 100644 --- a/code/modules/jobs/job_types/curator.dm +++ b/code/modules/jobs/job_types/curator.dm @@ -21,6 +21,12 @@ /datum/job_department/service, ) + mail_goodies = list( + /obj/item/book/random = 44, + /obj/item/book/manual/random = 5, + /obj/item/book/granter/action/spell/blind/wgw = 1, + ) + family_heirlooms = list(/obj/item/pen/fountain, /obj/item/storage/dice) job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN diff --git a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm index 8b603ad95e4..46dac537894 100644 --- a/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm +++ b/code/modules/mapfluff/ruins/spaceruin_code/TheDerelict.dm @@ -175,3 +175,140 @@ icon = 'icons/obj/weapons/turrets.dmi' icon_state = "turretCover" density = TRUE + +/// Captain's log +/// Credits to goonstation13 for orginal SS13 lore +/// https://wiki.ss13.co/Storyline +/// https://www.youtube.com/watch?v=7M-JPH5SOmI (old video) +/// https://www.youtube.com/watch?v=FHH1vfY6HTA (new video) +/obj/item/tape/captains_log + name = "captain's log" + desc = "A dusty old tape." + icon_state = "tape_blue" + used_capacity = 10 MINUTES // so the tape is full and can't be recorded over + storedinfo = list( // the captain recorded this in several segements + // 1st monologue (start of shift) + "\[00:01\] Every single day I spend on this station", + "\[00:07\] I become more and more certain that this was some kind of macabre punishment assignment", + "\[00:17\] I don't know what I did to deserve being consigned to this glued together ball of orbital wreckage", + "\[00:28\] But someones got it out for me", + "\[00:36\] On the station I may well be called 'Captain'", + "\[00:42\] But the title brings with it all the prestige and responsibility of some kind of fucking manchild kindergarten teacher", + "\[00:55\] To think Nanotrasen loves to call this hellhole:", + "\[01:03\] A state of the art orbital plasma research facility", + "\[01:10\] If I remember correctly though", + "\[01:15\] It was all about the plasma", + "\[01:19\] It was like the new oil", + "\[01:25\] As soon as we got all the fun exploration and discovery shit out of the way", + "\[01:35\] We started drilling", + "\[01:40\] All the companies and industries wanted to guzzle it up", + "\[01:48\] Despite the fact we knew jack shit about it and still don't", + "\[01:55\] But that didn't stop them", + "\[01:59\] (clicking sound)", + // 2nd monologue (early shift) + "\[15:05\] So they give me a crew of scientists and engineers to research and harness this so called plasma", + "\[15:15\] Not to mention the INCOMPETENT security", + "\[15:20\] The HOMICIDAL chef", + "\[15:25\] SUSPICIOUS fucking detective", + "\[15:29\] USELESS clown", + "\[15:35\] And BATSHIT fucking janitors", + "\[15:46\] That includes the crotchety fucking IBM piece of shit we're supposed to call an AI", + "\[15:52\] And it's legion of cyborg assholes", + "\[15:58\] If this wasn't bad enough there is the wizards federation to worry about", + "\[16:06\] Crazy bastards", + "\[16:10\] What can be worse than a bunch of plasma-humping-space-freaks?", + "\[16:17\] The syndicate", + "\[16:21\] Hell bent on nuking everything we've accomplished to kingdom come", + "\[16:27\] Yet the crew still goes about their daily business", + "\[16:33\] Constantly looking over their shoulder in suspicion of one another", + "\[16:40\] And who wouldn't? Even the monkeys on board for genetic testing are monitored 24/7", + "\[16:52\] Despite it all though", + "\[16:56\] These cruel, paranoid, rejects spend every waking hour perfecting their robust combat skills", + "\[17:00\] Or wondering in awe at the promise plasma has to offer", + "\[17:07\] And if things go wrong it's hardly a problem", + "\[17:17\] Our advanced genetics and medical staff can ensure a 2nd life in matter of minutes", + // 3rd monologue (middle shift) + "\[28:03\] I don't know why i'm even recording this...", + "\[28:13\] I sure as hell don't need it for myself", + "\[28:25\] Sure, I could upload it with all the evidence and dirt i've found over the years on Nanotrasen", + "\[28:32\] But what's the point?", + "\[28:36\] Who would give a shit other than corporate making me suddenly disappear?", + "\[28:47\] I suppose I could send and upload it to the network and let people make their own judgements", + "\[28:59\] After all, i'm the one sitting out here in deep space, cruising along leisurely", + // 4th monologue (end of shift) + "\[47:01\] I don't care what they call me back on the station", + "\[47:06\] I'm not a traitor!", + "\[47:10\] I'm a man of principles and standards", + "\[47:17\] And if lives get in the way of those principles, so be it", + "\[47:22\] I'd say I'm the better man here", + "\[47:32\] Once they called me captain, but when it's all said and done", + "\[47:41\] I'll be a hero", + "\[47:45\] If you run across this transmission by chance", + "\[47:52\] Get you pudgy little nerd ass over to Space Station 13 and start busting heads.", + "\[48:00\] (farting noises)", + ) + timestamp = list( + // 1st monologue (start of shift) + 1 SECONDS, + 7 SECONDS, + 17 SECONDS, + 28 SECONDS, + 36 SECONDS, + 42 SECONDS, + 55 SECONDS, + 1 MINUTES + 3 SECONDS, + 1 MINUTES + 10 SECONDS, + 1 MINUTES + 15 SECONDS, + 1 MINUTES + 19 SECONDS, + 1 MINUTES + 25 SECONDS, + 1 MINUTES + 35 SECONDS, + 1 MINUTES + 40 SECONDS, + 1 MINUTES + 48 SECONDS, + 1 MINUTES + 55 SECONDS, + 1 MINUTES + 59 SECONDS, + // 2nd monologue (early shift) + 15 MINUTES + 5 SECONDS, + 15 MINUTES + 15 SECONDS, + 15 MINUTES + 20 SECONDS, + 15 MINUTES + 25 SECONDS, + 15 MINUTES + 29 SECONDS, + 15 MINUTES + 35 SECONDS, + 15 MINUTES + 46 SECONDS, + 15 MINUTES + 52 SECONDS, + 15 MINUTES + 58 SECONDS, + 16 MINUTES + 6 SECONDS, + 16 MINUTES + 10 SECONDS, + 16 MINUTES + 17 SECONDS, + 16 MINUTES + 21 SECONDS, + 16 MINUTES + 27 SECONDS, + 16 MINUTES + 33 SECONDS, + 16 MINUTES + 40 SECONDS, + 16 MINUTES + 52 SECONDS, + 16 MINUTES + 56 SECONDS, + 17 MINUTES + 0 SECONDS, + 17 MINUTES + 7 SECONDS, + 17 MINUTES + 17 SECONDS, + // 3rd monologue (middle shift) + 28 MINUTES + 3 SECONDS, + 28 MINUTES + 13 SECONDS, + 28 MINUTES + 25 SECONDS, + 28 MINUTES + 32 SECONDS, + 28 MINUTES + 36 SECONDS, + 28 MINUTES + 47 SECONDS, + 28 MINUTES + 59 SECONDS, + // 4th monologue (end of shift) + 47 MINUTES + 1 SECONDS, + 47 MINUTES + 6 SECONDS, + 47 MINUTES + 10 SECONDS, + 47 MINUTES + 17 SECONDS, + 47 MINUTES + 22 SECONDS, + 47 MINUTES + 32 SECONDS, + 47 MINUTES + 41 SECONDS, + 47 MINUTES + 45 SECONDS, + 47 MINUTES + 52 SECONDS, + 48 MINUTES + 0 SECONDS, + ) + +/obj/item/tape/captains_log/Initialize(mapload) + . = ..() + unspool() // the tape spawns damaged