mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
# 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
140 lines
4.3 KiB
Plaintext
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)
|