Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this SHOULD work? dont see why we would remove it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

was getting out of index errors with the above lists

the logic is super hard to track but basically i was getting negative indices on the above alists

passkey = rand(5, 15)

//to_chat(world, span_userdanger("<b>UNKNOWN SARCOPHAGUS POSITION HAS BEEN LEAKED</b>"))
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)
. = ..()
Expand All @@ -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("<b>UNKNOWN SARCOPHAGUS HAS BEEN OPENED</b>"))
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("<b>UNKNOWN SARCOPHAGUS HAS BEEN OPENED</b>"))
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("<b>UNKNOWN SARCOPHAGUS HAS BEEN OPENED</b>"))
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("<b>UNKNOWN SARCOPHAGUS HAS BEEN OPENED</b>"))
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..."
Expand Down
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand All @@ -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

Expand Down
Original file line number Diff line number Diff line change
@@ -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'
Expand Down
56 changes: 56 additions & 0 deletions modular_darkpack/modules/events/code/sarcophagus_event.dm
Original file line number Diff line number Diff line change
@@ -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
Comment on lines +36 to +45
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should prob be used in the canspawn logic as well.


if(length(landmarks) < 2)
return
Comment on lines +47 to +48
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If someone wants to trigger this as an admin and force it to spawn in one spot. thats prob fine

Suggested change
if(length(landmarks) < 2)
return

Copy link
Copy Markdown
Contributor Author

@chazzyjazzy chazzyjazzy May 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the below logic assumes two different landmarks since line 51 and i could be wrong but if i get rid of the pick() and landmarks -= logic then it would be likely that the key and the sarcophagus would spawn on top of each other more often than desired which kinda takes away alot of the suspense of the ideal whatever of the event


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)
Binary file modified modular_darkpack/modules/events/icons/event_landmarks.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions tgstation.dme
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// DM Environment file for tgstation.dme.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\objs\dwelling_window_defs.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\areas\area_dwelling_instances.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\area_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\obj_dwelling.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\dwelling\code\_dwelling_gvars_defines.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\latejoin_antagonists\code\latejoin_subsystem.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\economy\code\stocks_license.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\mytherceria.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\powers\code\discipline\healer_valeren.dm.

Check failure on line 1 in tgstation.dme

View workflow job for this annotation

GitHub Actions / Run Linters / linters

Ticked File Enforcement

Missing include for modular_darkpack\modules\drugs\code\bloodpacks\bloodpack_adulteration.dm.
// All manual changes should be made outside the BEGIN_ and END_ blocks.
// New source code should be placed in .dm files: choose File/New --> Code File.

Expand Down Expand Up @@ -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"
Expand Down
Loading