diff --git a/modular_darkpack/modules/antediluvian_sarcophagus/code/sarcophagus.dm b/modular_darkpack/modules/antediluvian_sarcophagus/code/sarcophagus.dm index 7f62b6e51eb5..c5b83473689c 100644 --- a/modular_darkpack/modules/antediluvian_sarcophagus/code/sarcophagus.dm +++ b/modular_darkpack/modules/antediluvian_sarcophagus/code/sarcophagus.dm @@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(caesar_cipher, list( icon_state = "b_sarcophagus" // layer = CAR_LAYER density = TRUE - anchored = TRUE + anchored = FALSE pixel_w = -8 var/password = "Brongus" var/passkey = 5 @@ -102,13 +102,11 @@ GLOBAL_LIST_INIT(caesar_cipher, list( /obj/sarcophagus/Initialize(mapload) . = ..() password = pick(GLOB.sarcophagus_passwords) - if(prob(50)) - passkey = rand(5, 15) - else - passkey = rand(-15, -5) + passkey = rand(5, 15) + //to_chat(world, span_userdanger("UNKNOWN SARCOPHAGUS POSITION HAS BEEN LEAKED")) - if(!mapload) - SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) + //if(!mapload) + // SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) /obj/sarcophagus/examine(mob/user) . = ..() @@ -130,17 +128,51 @@ GLOBAL_LIST_INIT(caesar_cipher, list( if(!pass) return ITEM_INTERACT_BLOCKING if(password == uppertext(pass)) - icon_state = "b_sarcophagus-open1" - to_chat(world, span_userdanger("UNKNOWN SARCOPHAGUS HAS BEEN OPENED")) - SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) - var/sound_length = SSsounds.get_sound_length(OPEN_SOUND) - playsound(src, OPEN_SOUND, 100, FALSE) - spawn(sound_length) - icon_state = "b_sarcophagus-open0" - new /mob/living/simple_animal/hostile/megafauna/wendigo/antediluvian(loc) - return ITEM_INTERACT_SUCCESS + open_the_sarcophagus() + return ITEM_INTERACT_SUCCESS + +/obj/sarcophagus/proc/open_the_sarcophagus() + icon_state = "b_sarcophagus-open1" + to_chat(world, span_userdanger("UNKNOWN SARCOPHAGUS HAS BEEN OPENED")) + SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) + var/sound_length = SSsounds.get_sound_length(OPEN_SOUND) + playsound(src, OPEN_SOUND, 100, FALSE) + spawn(sound_length) + icon_state = "b_sarcophagus-open0" + if(prob(50)) + new /mob/living/simple_animal/hostile/megafauna/wendigo/antediluvian(loc) + else + new /mob/living/simple_animal/hostile/megafauna/colossus/antediluvian(loc) #undef OPEN_SOUND +/obj/sarcophagus/bomb + +/obj/sarcophagus/bomb/open_the_sarcophagus() + icon_state = "b_sarcophagus-open2" + to_chat(world, span_userdanger("UNKNOWN SARCOPHAGUS HAS BEEN OPENED")) + SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) + playsound(src, 'sound/items/weapons/armbomb.ogg', 100, FALSE) + anchored = TRUE + addtimer(CALLBACK(src, PROC_REF(explode)), 6 SECONDS) + +/obj/sarcophagus/bomb/proc/explode() + explosion(src, devastation_range = 2, heavy_impact_range = 7, light_impact_range = 11) + qdel(src) + priority_announce( + "BREAKING NEWS!!! A massive explosion has been reported in your area. First responders are advised to rush to the scene as soon as possible to rescue any survivors and a curfew is issued immediately to all citizens until the city is safe.", + "EMERGENCY BREAKING NEWS", + 'modular_darkpack/modules/events/sounds/news_notification.ogg', + ANNOUNCEMENT_TYPE_PRIORITY, + color_override = "red", + ) + +/obj/sarcophagus/empty + +/obj/sarcophagus/empty/open_the_sarcophagus() + icon_state = "b_sarcophagus-open0" + to_chat(world, span_userdanger("UNKNOWN SARCOPHAGUS HAS BEEN OPENED")) + SEND_SOUND(world, sound('modular_darkpack/master_files/sounds/announce.ogg')) + /obj/fake_sarcophagus name = "unknown sarcophagus" desc = "A shiver runs down your spine just looking at it..." diff --git a/modular_darkpack/modules/antediluvian_sarcophagus/code/the_antediluvian.dm b/modular_darkpack/modules/antediluvian_sarcophagus/code/the_antediluvian.dm index 9ab2f270ec68..9a386da72850 100644 --- a/modular_darkpack/modules/antediluvian_sarcophagus/code/the_antediluvian.dm +++ b/modular_darkpack/modules/antediluvian_sarcophagus/code/the_antediluvian.dm @@ -1,7 +1,7 @@ #define ANTEDILUVIAN_SCORE "Antediluvians Killed" #define BOSS_MEDAL_ANTEDILUVIAN "Antediluvian Killer" /mob/living/simple_animal/hostile/megafauna/wendigo/antediluvian - name = "Unknown Antediluvian" + name = "Unknown Methuselah" desc = "A mythological legendary kindred, you probably aren't going to survive this." health = 2500 maxHealth = 2500 @@ -18,7 +18,7 @@ score_achievement_type = /datum/award/score/antediluvian_score /mob/living/simple_animal/hostile/megafauna/colossus/antediluvian - name = "Unknown Antediluvian" + name = "Unknown Methuselah" desc = "A mythological legendary kindred, you probably aren't going to survive this." health = 2500 maxHealth = 2500 @@ -32,13 +32,13 @@ score_achievement_type = /datum/award/score/antediluvian_score /datum/award/achievement/boss/antediluvian_kill - name = "Antediluvian Killer" + name = "Methuselah Killer" desc = "The bigger they are... the better the loot" database_id = BOSS_MEDAL_ANTEDILUVIAN icon_state = "firstboss" /datum/award/score/antediluvian_score - name = "Antediluvian Killed" + name = "Methuselah Killed" desc = "You've killed HOW many?" database_id = ANTEDILUVIAN_SCORE diff --git a/modular_darkpack/modules/events/code/landmarks/event_landmarks.dm b/modular_darkpack/modules/events/code/landmarks/event_landmarks.dm index b5879141ffee..6ff7dd79cd47 100644 --- a/modular_darkpack/modules/events/code/landmarks/event_landmarks.dm +++ b/modular_darkpack/modules/events/code/landmarks/event_landmarks.dm @@ -1,3 +1,7 @@ +/obj/effect/landmark/event_spawn/sarcophagus + name = "sarcophagus event spawn" + icon_state = "navigate" + /obj/effect/landmark/event_spawn/szlachta name = "szlachta event spawn" icon = 'modular_darkpack/modules/events/icons/event_landmarks.dmi' diff --git a/modular_darkpack/modules/events/code/sarcophagus_event.dm b/modular_darkpack/modules/events/code/sarcophagus_event.dm new file mode 100644 index 000000000000..43462815d805 --- /dev/null +++ b/modular_darkpack/modules/events/code/sarcophagus_event.dm @@ -0,0 +1,56 @@ +/datum/round_event_control/darkpack/sarcophagus + name = "Sarcophagus" + typepath = /datum/round_event/sarcophagus + weight = 1 + min_players = 20 + max_occurrences = 1 + earliest_start = 70 MINUTES + category = EVENT_CATEGORY_INVASION + description = "A strange sarcophagus has appeared in the city..." + darkpack_allowed = TRUE + +/datum/round_event_control/darkpack/sarcophagus/can_spawn_event(players_amt, allow_magic) + . = ..() + var/sarcophagus_spawns = 0 + for(var/obj/effect/landmark/event_spawn/sarcophagus/L in GLOB.generic_event_spawns) + sarcophagus_spawns++ + if(sarcophagus_spawns >= 2) + return TRUE + return FALSE + +/datum/round_event/sarcophagus + start_when = 1 + announce_when = 5 + +/datum/round_event/sarcophagus/announce(fake) + priority_announce( + "You receive a notification about a viral Endpost - a respected archaeologist notes that the location of a long-lost Assyrian sarcophagus alongside it's key, which was famously stolen, seems to be in your city according to newly published criminological records tracking the suspected thief.", + "Viral News Story", + 'modular_darkpack/modules/events/sounds/news_notification.ogg', + ANNOUNCEMENT_TYPE_PRIORITY, + color_override = "yellow", + ) + +/datum/round_event/sarcophagus/start() + var/list/landmarks = list() + for(var/obj/effect/landmark/event_spawn/sarcophagus/L in GLOB.generic_event_spawns) + // dont spawn if a player is nearby we don't need them popping in unrealistically + var/player_nearby = FALSE + for(var/mob/living/nearby_mob in view(DEFAULT_SIGHT_DISTANCE, L.loc)) + if(nearby_mob.client) + player_nearby = TRUE + break + if(player_nearby) + continue + landmarks += L + + if(length(landmarks) < 2) + return + + var/obj/effect/landmark/event_spawn/sarcophagus/sarcophagus_landmark = pick(landmarks) + landmarks -= sarcophagus_landmark + var/obj/effect/landmark/event_spawn/sarcophagus/key_landmark = pick(landmarks) + + var/sarcophagus_type = pick(list(/obj/sarcophagus/bomb, /obj/sarcophagus, /obj/sarcophagus/empty)) + new sarcophagus_type(sarcophagus_landmark.loc) + new /obj/item/sarcophagus_key(key_landmark.loc) diff --git a/modular_darkpack/modules/events/icons/event_landmarks.dmi b/modular_darkpack/modules/events/icons/event_landmarks.dmi index cef1b3eb4822..258d9218df99 100644 Binary files a/modular_darkpack/modules/events/icons/event_landmarks.dmi and b/modular_darkpack/modules/events/icons/event_landmarks.dmi differ diff --git a/tgstation.dme b/tgstation.dme index a01a0abf082c..32b2cd67e625 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7269,6 +7269,7 @@ #include "modular_darkpack\modules\ert\code\outfits\swat_outfits.dm" #include "modular_darkpack\modules\events\code\_darkpack_event.dm" #include "modular_darkpack\modules\events\code\blackout_event.dm" +#include "modular_darkpack\modules\events\code\sarcophagus_event.dm" #include "modular_darkpack\modules\events\code\szlachta_attack_event.dm" #include "modular_darkpack\modules\events\code\landmarks\event_landmarks.dm" #include "modular_darkpack\modules\external_organs\code\gargoyle_wings.dm"