Files
Bubberstation/code/modules/mining/lavaland/necropolis_chests.dm
nevimer 6e9f2ccfc0 Merge remote-tracking branch 'tgstation/master' into upstream-12-15
# Conflicts:
#	.github/workflows/compile_all_maps.yml
#	.github/workflows/run_integration_tests.yml
#	_maps/map_files/CatwalkStation/CatwalkStation_2023.dmm
#	code/_onclick/hud/credits.dm
#	code/controllers/subsystem/networks/id_access.dm
#	code/datums/diseases/advance/advance.dm
#	code/datums/diseases/advance/symptoms/heal.dm
#	code/game/machinery/doors/door.dm
#	code/game/objects/structures/crates_lockers/closets/secure/medical.dm
#	code/game/objects/structures/crates_lockers/closets/secure/security.dm
#	code/modules/antagonists/malf_ai/malf_ai_modules.dm
#	code/modules/jobs/job_types/_job.dm
#	code/modules/loadout/categories/accessories.dm
#	code/modules/loadout/loadout_helpers.dm
#	code/modules/loadout/loadout_items.dm
#	code/modules/loadout/loadout_preference.dm
#	code/modules/mob/living/silicon/robot/robot_defense.dm
#	code/modules/mod/mod_theme.dm
#	code/modules/projectiles/ammunition/energy/laser.dm
#	code/modules/reagents/reagent_containers/cups/drinks.dm
#	code/modules/shuttle/mobile_port/variants/supply.dm
#	code/modules/surgery/organs/internal/eyes/_eyes.dm
#	code/modules/unit_tests/screenshots/screenshot_antag_icons_heretic.png
#	icons/hud/screen_full.dmi
2025-12-15 18:12:29 -05:00

140 lines
4.3 KiB
Plaintext

//The chests dropped by tendrils and megafauna.
/obj/structure/closet/crate/necropolis
name = "necropolis chest"
desc = "It's watching you closely."
icon_state = "necrocrate"
base_icon_state = "necrocrate"
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
can_install_electronics = FALSE
paint_jobs = null
can_weld_shut = FALSE
/obj/structure/closet/crate/necropolis/tendril
desc = "It's watching you suspiciously. You need a skeleton key to open it."
integrity_failure = 0 //prevents bust_open from firing
/// var to check if it got opened by a key
var/spawned_loot = FALSE
/// What random loot spawner our chest uses
var/loot_to_spawn = /obj/effect/spawner/random/mining_loot
/obj/structure/closet/crate/necropolis/tendril/attackby(obj/item/item, mob/user, list/modifiers, list/attack_modifiers)
if(!istype(item, /obj/item/skeleton_key) || spawned_loot)
return ..()
new loot_to_spawn(src)
spawned_loot = TRUE
qdel(item)
to_chat(user, span_notice("You disable the magic lock, revealing the loot."))
/obj/structure/closet/crate/necropolis/tendril/before_open(mob/living/user, force)
. = ..()
if(!.)
return FALSE
if(!broken && !force && !spawned_loot)
balloon_alert(user, "its locked!")
return FALSE
return TRUE
//Megafauna chests
/obj/structure/closet/crate/necropolis/tendril/demonic
name = "demonic chest"
loot_to_spawn = /obj/effect/spawner/random/mining_loot/demonic
/obj/structure/closet/crate/necropolis/dragon
name = "dragon chest"
/obj/structure/closet/crate/necropolis/dragon/PopulateContents()
var/loot = rand(1,4)
switch(loot)
if(1)
new /obj/item/melee/ghost_sword(src)
if(2)
new /obj/item/lava_staff(src)
if(3)
new /obj/item/book/granter/action/spell/sacredflame(src)
if(4)
new /obj/item/dragons_blood(src)
/obj/structure/closet/crate/necropolis/dragon/crusher
name = "firey dragon chest"
/obj/structure/closet/crate/necropolis/dragon/crusher/PopulateContents()
..()
new /obj/item/crusher_trophy/tail_spike(src)
/obj/structure/closet/crate/necropolis/bubblegum
name = "\improper Ancient Sarcophagus"
desc = "Once guarded by the King of Demons, this sarcophagus contains the relics of an ancient soldier."
icon_state = "necro_bubblegum"
base_icon_state = "necro_bubblegum"
lid_icon_state = "necro_bubblegum_lid"
lid_w = -26
lid_z = 2
/obj/structure/closet/crate/necropolis/bubblegum/PopulateContents()
new /obj/item/clothing/suit/hooded/hostile_environment(src)
/*Bubberstation edit begin (removes bloodcrawl from lootpool)
var/loot = rand(1,2)
switch(loot)
if(1)
new /obj/item/bloodcrawl_bottle(src) //SKYRAT EDIT ORIGINAL : new /obj/item/mayhem(src)
if(2)
Bubberstation edit end*/
new /obj/item/soulscythe(src)
/obj/structure/closet/crate/necropolis/bubblegum/crusher
name = "bloody bubblegum chest"
/obj/structure/closet/crate/necropolis/bubblegum/crusher/PopulateContents()
..()
new /obj/item/crusher_trophy/demon_claws(src)
/obj/structure/closet/crate/necropolis/colossus
name = "colossus chest"
/obj/structure/closet/crate/necropolis/colossus/projectile_hit(obj/projectile/hitting_projectile, def_zone, piercing_hit, blocked)
if(istype(hitting_projectile, /obj/projectile/colossus))
return BULLET_ACT_FORCE_PIERCE
return ..()
/obj/structure/closet/crate/necropolis/colossus/PopulateContents()
var/list/choices = subtypesof(/obj/machinery/anomalous_crystal)
var/random_crystal = pick(choices)
new random_crystal(src)
new /obj/item/organ/vocal_cords/colossus(src)
new /obj/item/cain_and_abel(src)
/obj/structure/closet/crate/necropolis/colossus/crusher
name = "angelic colossus chest"
/obj/structure/closet/crate/necropolis/colossus/crusher/PopulateContents()
..()
new /obj/item/crusher_trophy/blaster_tubes(src)
//Other chests and minor stuff
/obj/structure/closet/crate/necropolis/puzzle
name = "puzzling chest"
/obj/structure/closet/crate/necropolis/puzzle/PopulateContents()
var/loot = rand(1,3)
switch(loot)
if(1)
new /obj/item/soulstone/anybody/mining(src)
if(2)
new /obj/item/wisp_lantern(src)
if(3)
new /obj/item/prisoncube(src)
/obj/item/skeleton_key
name = "skeleton key"
desc = "An artifact usually found in the hands of the natives of lavaland, which NT now holds a monopoly on."
icon = 'icons/obj/mining_zones/artefacts.dmi'
icon_state = "skeleton_key"
w_class = WEIGHT_CLASS_SMALL
custom_materials = list(/datum/material/bone = SHEET_MATERIAL_AMOUNT * 5)