diff --git a/code/datums/components/sisyphus_awarder.dm b/code/datums/components/sisyphus_awarder.dm index 36fc344c746..2a18a2889fc 100644 --- a/code/datums/components/sisyphus_awarder.dm +++ b/code/datums/components/sisyphus_awarder.dm @@ -5,6 +5,8 @@ /datum/component/sisyphus_awarder /// What poor sap is hauling this rock? var/mob/living/sisyphus + /// Reference to a place where it all started. + var/turf/bottom_of_the_hill /datum/component/sisyphus_awarder/Initialize() if (!istype(parent, /obj/item/boulder)) @@ -30,6 +32,7 @@ RegisterSignal(the_taker, COMSIG_ENTER_AREA, PROC_REF(on_bearer_changed_area)) RegisterSignal(the_taker, COMSIG_QDELETING, PROC_REF(on_dropped)) sisyphus = the_taker + bottom_of_the_hill = get_turf(the_taker) /// If you ever drop this shit you fail the challenge /datum/component/sisyphus_awarder/proc/on_dropped() @@ -45,5 +48,21 @@ return if (entered_area.type != /area/centcom/central_command_areas/evacuation) return // Don't istype because taking pods doesn't count + chosen_one.client?.give_award(/datum/award/achievement/misc/sisyphus, chosen_one) + play_reward_scene() + qdel(src) + +/// Sends the player back to the Lavaland and plays a funny sound +/datum/component/sisyphus_awarder/proc/play_reward_scene() + if(isnull(bottom_of_the_hill)) + return // This probably shouldn't happen, but... + + podspawn(list( + "path" = /obj/structure/closet/supplypod/centcompod/sisyphus, + "target" = get_turf(sisyphus), + "reverse_dropoff_coords" = list(bottom_of_the_hill.x, bottom_of_the_hill.y, bottom_of_the_hill.z), + )) + + SEND_SOUND(sisyphus, 'sound/ambience/music/sisyphus/sisyphus.ogg') diff --git a/code/modules/cargo/supplypod.dm b/code/modules/cargo/supplypod.dm index 259be3891dd..0b6a41973da 100644 --- a/code/modules/cargo/supplypod.dm +++ b/code/modules/cargo/supplypod.dm @@ -99,6 +99,23 @@ delays = list(POD_TRANSIT = 20, POD_FALLING = 4, POD_OPENING = 30, POD_LEAVING = 30) resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF +/obj/structure/closet/supplypod/centcompod/sisyphus + delays = list(POD_TRANSIT = 0, POD_FALLING = 0, POD_OPENING = 0, POD_LEAVING = 0.2) + reverse_delays = list(POD_TRANSIT = 0, POD_FALLING = 1.5 SECONDS, POD_OPENING = 0.6 SECONDS, POD_LEAVING = 0) + custom_rev_delay = TRUE + effectStealth = TRUE + reversing = TRUE + reverse_option_list = list( + "Mobs" = TRUE, + "Objects" = FALSE, + "Anchored" = FALSE, + "Underfloor" = FALSE, + "Wallmounted" = FALSE, + "Floors" = FALSE, + "Walls" = FALSE, + "Mecha" = TRUE, + ) + /obj/structure/closet/supplypod/back_to_station name = "blood-red supply pod" desc = "An intimidating supply pod, covered in the blood-red markings" diff --git a/sound/ambience/music/sisyphus/sisyphus.ogg b/sound/ambience/music/sisyphus/sisyphus.ogg new file mode 100644 index 00000000000..c69d0b608eb Binary files /dev/null and b/sound/ambience/music/sisyphus/sisyphus.ogg differ