Files
Leland KembleandGitHub 057cb60a96 Finishes up the remnants of surprise barricades (#94894)
## About The Pull Request

Some full barricades still managed to crop up in places they shouldn't
due to unnoticed barricade spawners, these have now been replaced by new
crude barricade spawners(so it keeps 20% chance to not be there) where
relevant and the maplint has been updated to keep them out of where they
don't belong

## Why It's Good For The Game

If a door is barricaded it should be visible

## Changelog
🆑

map: The last full wooden barricades on top of dense objects have been
excised

/🆑
2026-01-23 01:03:08 +00:00

383 lines
14 KiB
Plaintext

/obj/effect/spawner/random/structure
name = "structure spawner"
desc = "Now you see me, now you don't..."
///12% chance to spawn a ouija board, or a potted plant. Btw, Wawastation has a guaranteed board.
/obj/effect/spawner/random/structure/twelve_percent_spirit_board
name = "12% spirit board"
icon_state = "spirit_board"
loot = list(
/obj/structure/spirit_board = 3,
/obj/item/kirbyplants/random = 22,
)
/obj/effect/spawner/random/structure/crate
name = "crate spawner"
icon_state = "crate_secure"
loot = list(
/obj/effect/spawner/random/structure/crate_loot = 744,
/obj/structure/closet/crate/trashcart/filled = 75,
/obj/effect/spawner/random/trash/moisture_trap = 50,
/obj/effect/spawner/random/trash/hobo_squat = 30,
/obj/structure/closet/mini_fridge = 35,
/obj/effect/spawner/random/trash/mess = 30,
/obj/item/kirbyplants/fern = 20,
/obj/structure/closet/crate/decorations = 15,
/obj/effect/decal/remains/human/smokey/maintenance = 7,
/obj/structure/destructible/cult/pants_altar = 1,
)
/obj/effect/spawner/random/structure/crate_abandoned
name = "locked crate spawner"
icon_state = "crate_secure"
spawn_loot_chance = 20
loot = list(/obj/structure/closet/crate/secure/loot)
/obj/effect/spawner/random/structure/girder
name = "girder spawner"
icon_state = "girder"
spawn_loot_chance = 90
loot = list( // 80% chance normal girder, 10% chance of displaced, 10% chance of nothing
/obj/structure/girder = 8,
/obj/structure/girder/displaced = 1,
)
/obj/effect/spawner/random/structure/grille
name = "grille spawner"
icon_state = "grille"
spawn_loot_chance = 90
loot = list( // 80% chance normal grille, 10% chance of broken, 10% chance of nothing
/obj/structure/grille = 8,
/obj/structure/grille/broken = 1,
)
/obj/effect/spawner/random/structure/furniture_parts
name = "furniture parts spawner"
icon_state = "table_parts"
loot = list(
/obj/structure/table_frame,
/obj/structure/table_frame/wood,
/obj/item/rack_parts,
)
/obj/effect/spawner/random/structure/table_or_rack
name = "table or rack spawner"
icon_state = "rack_parts"
loot = list(
/obj/effect/spawner/random/structure/table,
/obj/structure/rack,
)
/obj/effect/spawner/random/structure/table
name = "table spawner"
icon_state = "table"
loot = list(
/obj/structure/table = 40,
/obj/structure/table/wood = 30,
/obj/structure/table/glass = 20,
/obj/structure/table/reinforced = 5,
/obj/structure/table/wood/poker = 5,
)
/obj/effect/spawner/random/structure/table_fancy
name = "table spawner"
icon_state = "table_fancy"
loot_type_path = /obj/structure/table/wood/fancy
loot = list()
/obj/effect/spawner/random/structure/tank_holder
name = "tank holder spawner"
icon_state = "tank_holder"
loot = list(
/obj/structure/tank_holder/oxygen = 40,
/obj/structure/tank_holder/extinguisher = 40,
/obj/structure/tank_holder = 20,
/obj/structure/tank_holder/extinguisher/advanced = 1,
)
/obj/effect/spawner/random/structure/closet_empty
name = "empty closet spawner"
icon_state = "locker"
loot = list(
/obj/structure/closet = 850,
/obj/structure/closet/cabinet = 150,
/obj/structure/closet/acloset = 1,
)
/obj/effect/spawner/random/structure/closet_empty/make_item(spawn_loc, type_path_to_make)
var/obj/structure/closet/peek_a_boo = ..()
if(istype(peek_a_boo) && prob(50))
peek_a_boo.open(special_effects = FALSE) //the crate appears immediatly out of thin air so no need to animate anything
return peek_a_boo
/obj/effect/spawner/random/structure/closet_empty/crate
name = "empty crate spawner"
icon_state = "crate"
loot = list(
/obj/structure/closet/crate = 20,
/obj/structure/closet/crate/cardboard = 5,
/obj/structure/closet/crate/wooden = 1,
/obj/structure/closet/crate/internals = 1,
/obj/structure/closet/crate/medical = 1,
/obj/structure/closet/crate/freezer = 1,
/obj/structure/closet/crate/radiation = 1,
/obj/structure/closet/crate/hydroponics = 1,
/obj/structure/closet/crate/engineering = 1,
/obj/structure/closet/crate/engineering/electrical = 1,
/obj/structure/closet/crate/science = 1,
)
/obj/effect/spawner/random/structure/closet_empty/crate/with_loot
name = "crate spawner with maintenance loot"
icon_state = "crate"
/obj/effect/spawner/random/structure/closet_empty/crate/with_loot/make_item(spawn_loc, type_path_to_make)
var/obj/structure/closet/closet_to_fill = ..()
closet_to_fill.RegisterSignal(closet_to_fill, COMSIG_CLOSET_CONTENTS_INITIALIZED, TYPE_PROC_REF(/obj/structure/closet/, populate_with_random_maint_loot))
return closet_to_fill
/obj/effect/spawner/random/structure/crate_loot
name = "lootcrate spawner"
icon_state = "crate"
loot = list(
/obj/effect/spawner/random/structure/closet_empty/crate/with_loot = 15,
/obj/effect/spawner/random/structure/closet_empty/crate = 4,
/obj/structure/closet/crate/secure/loot = 1,
)
/obj/effect/spawner/random/structure/closet_private
name = "private closet spawner"
icon_state = "cabinet"
loot = list(
/obj/structure/closet/secure_closet/personal,
/obj/structure/closet/secure_closet/personal/cabinet,
)
/obj/effect/spawner/random/structure/closet_maintenance
name = "maintenance closet spawner"
icon_state = "locker"
loot = list( // use these for maintenance areas
/obj/effect/spawner/random/structure/closet_empty = 10,
/obj/structure/closet/emcloset = 2,
/obj/structure/closet/firecloset = 2,
/obj/structure/closet/toolcloset = 2,
/obj/structure/closet/l3closet = 1,
/obj/structure/closet/radiation = 1,
/obj/structure/closet/bombcloset = 1,
/obj/structure/closet/mini_fridge/grimy = 1,
)
/obj/effect/spawner/random/structure/chair_flipped
name = "flipped chair spawner"
icon_state = "chair"
loot = list(
/obj/item/chair/wood,
/obj/item/chair/stool/bar,
/obj/item/chair/stool,
/obj/item/chair,
)
/obj/effect/spawner/random/structure/chair_comfy
name = "comfy chair spawner"
icon_state = "chair"
loot_type_path = /obj/structure/chair/comfy
loot = list()
/obj/effect/spawner/random/structure/chair_maintenance
name = "maintenance chair spawner"
icon_state = "chair"
loot = list(
/obj/structure/chair = 200,
/obj/structure/chair/stool = 200,
/obj/structure/chair/stool/bar = 200,
/obj/effect/spawner/random/structure/chair_flipped = 150,
/obj/structure/chair/wood = 100,
/obj/effect/spawner/random/structure/chair_comfy = 50,
/obj/structure/chair/office/light = 50,
/obj/structure/chair/office = 50,
/obj/structure/chair/wood/wings = 1,
/obj/structure/chair/old = 1,
)
/obj/effect/spawner/random/structure/barricade
name = "barricade spawner"
icon_state = "barricade"
spawn_loot_chance = 80
loot = list(
/obj/structure/barricade/wooden,
/obj/structure/barricade/wooden/crude,
)
/obj/effect/spawner/random/structure/barricade/crude
name = "crude barricade spawner"
icon_state = "barricade_crude"
loot = list(/obj/structure/barricade/wooden/crude)
/obj/effect/spawner/random/structure/billboard
name = "billboard spawner"
icon = 'icons/obj/fluff/billboard.dmi'
icon_state = "billboard_random"
loot = list(
/obj/structure/billboard/azik = 50,
/obj/structure/billboard/donk_n_go = 50,
/obj/structure/billboard/space_cola = 50,
/obj/structure/billboard/nanotrasen = 35,
/obj/structure/billboard/nanotrasen/defaced = 15,
)
/obj/effect/spawner/random/structure/billboard/nanotrasen //useful for station maps- NT isn't the sort to advertise for competitors
name = "\improper Nanotrasen billboard spawner"
loot = list(
/obj/structure/billboard/nanotrasen = 35,
/obj/structure/billboard/nanotrasen/defaced = 15,
)
/obj/effect/spawner/random/structure/billboard/lizardsgas //for the space ruin, The Lizard's Gas. I don't see much use for the sprites below anywhere else since they're unifunctional.
name = "\improper The Lizards Gas billboard spawner"
loot = list(
/obj/structure/billboard/lizards_gas = 75,
/obj/structure/billboard/lizards_gas/defaced = 25,
)
/obj/effect/spawner/random/structure/billboard/roadsigns //also pretty much only unifunctionally useful for gas stations
name = "\improper Gas Station billboard spawner"
loot = list(
/obj/structure/billboard/roadsign/two,
/obj/structure/billboard/roadsign/twothousand,
/obj/structure/billboard/roadsign/twomillion,
/obj/structure/billboard/roadsign/error,
)
/obj/effect/spawner/random/structure/steam_vent
name = "steam vent spawner"
loot = list(
/obj/structure/steam_vent,
/obj/structure/steam_vent/fast,
)
/obj/effect/spawner/random/structure/musician/piano/random_piano
name = "random piano spawner"
icon_state = "piano"
loot = list(
/obj/structure/musician/piano,
/obj/structure/musician/piano/minimoog,
)
/obj/effect/spawner/random/structure/shipping_container
name = "random shipping container spawner"
icon = 'icons/obj/fluff/containers.dmi'
icon_state = "random_container"
loot = list(
/obj/structure/shipping_container = 3,
/obj/structure/shipping_container/amsco = 3,
/obj/structure/shipping_container/blue = 3,
/obj/structure/shipping_container/conarex = 3,
/obj/structure/shipping_container/deforest = 3,
/obj/structure/shipping_container/defaced = 3,
/obj/structure/shipping_container/great_northern = 3,
/obj/structure/shipping_container/green = 3,
/obj/structure/shipping_container/kahraman = 2,
/obj/structure/shipping_container/kahraman/alt = 1,
/obj/structure/shipping_container/kosmologistika = 3,
/obj/structure/shipping_container/magenta = 3,
/obj/structure/shipping_container/nakamura = 3,
/obj/structure/shipping_container/nanotrasen = 3,
/obj/structure/shipping_container/ntfid = 2,
/obj/structure/shipping_container/ntfid/defaced = 1,
/obj/structure/shipping_container/nthi = 1,
/obj/structure/shipping_container/nthi/minor = 1,
/obj/structure/shipping_container/nthi/precious = 1,
/obj/structure/shipping_container/orange = 3,
/obj/structure/shipping_container/purple = 3,
/obj/structure/shipping_container/red = 3,
/obj/structure/shipping_container/sunda = 3,
/obj/structure/shipping_container/vitezstvi = 2,
/obj/structure/shipping_container/vitezstvi/flags = 1,
/obj/structure/shipping_container/yellow = 3,
/obj/structure/shipping_container/biosustain = 3,
/obj/structure/shipping_container/cybersun = 2,
/obj/structure/shipping_container/cybersun/defaced = 1,
/obj/structure/shipping_container/donk_co = 3,
/obj/structure/shipping_container/exagon = 1,
/obj/structure/shipping_container/exagon/minor = 1,
/obj/structure/shipping_container/exagon/precious = 1,
/obj/structure/shipping_container/gorlex = 2,
/obj/structure/shipping_container/gorlex/red = 1,
/obj/structure/shipping_container/interdyne = 3,
/obj/structure/shipping_container/oms = 3,
/obj/structure/shipping_container/tiger_coop = 2,
/obj/structure/shipping_container/tiger_coop = 1,
)
/obj/effect/spawner/random/structure/shipping_container/blank
name = "random blank shipping container spawner"
loot = list(
/obj/structure/shipping_container = 3,
/obj/structure/shipping_container/blue = 3,
/obj/structure/shipping_container/green = 3,
/obj/structure/shipping_container/magenta = 3,
/obj/structure/shipping_container/orange = 3,
/obj/structure/shipping_container/purple = 3,
/obj/structure/shipping_container/red = 3,
/obj/structure/shipping_container/yellow = 3,
)
/obj/effect/spawner/random/structure/syndicate //syndicate containers only
name = "random syndicate shipping container spawner"
loot = list(
/obj/structure/shipping_container/biosustain = 3,
/obj/structure/shipping_container/cybersun = 2,
/obj/structure/shipping_container/cybersun/defaced = 1,
/obj/structure/shipping_container/donk_co = 3,
/obj/structure/shipping_container/exagon = 1,
/obj/structure/shipping_container/exagon/minor = 1,
/obj/structure/shipping_container/exagon/precious = 1,
/obj/structure/shipping_container/gorlex = 2,
/obj/structure/shipping_container/gorlex/red = 1,
/obj/structure/shipping_container/interdyne = 3,
/obj/structure/shipping_container/oms = 3,
/obj/structure/shipping_container/tiger_coop = 2,
/obj/structure/shipping_container/tiger_coop = 1,
)
/obj/effect/spawner/random/structure/shipping_container/station_appropriate //places extra emphasis on NT containers, excludes syndicate companies (except Donk. Co.) entirely
name = "station-appropriate shipping container spawner"
loot = list(
/obj/structure/shipping_container/nanotrasen = 5,
/obj/structure/shipping_container/nthi = 1,
/obj/structure/shipping_container/nthi/minor = 1,
/obj/structure/shipping_container/nthi/precious = 1,
/obj/structure/shipping_container/ntfid = 3,
/obj/structure/shipping_container/nakamura = 2,
/obj/structure/shipping_container/deforest = 2,
/obj/structure/shipping_container/kosmologistika = 2,
/obj/structure/shipping_container/donk_co = 2,
/obj/structure/shipping_container/amsco = 1,
/obj/structure/shipping_container/conarex = 1,
/obj/structure/shipping_container/kahraman = 1,
/obj/structure/shipping_container/kahraman/alt = 1,
/obj/structure/shipping_container/sunda = 1,
/obj/structure/shipping_container/vitezstvi = 1,
)
/obj/effect/spawner/random/structure/shipping_container/reefer //reefers only
name = "random reefer container spawner"
loot = list(
/obj/structure/shipping_container/reefer = 3,
/obj/structure/shipping_container/reefer/biosustain = 3,
/obj/structure/shipping_container/reefer/deforest = 3,
/obj/structure/shipping_container/reefer/interdyne = 3,
)
/obj/effect/spawner/random/structure/shipping_container/gas //gas cisterns only
name = "random gas cistern spawner"
loot = list(
/obj/structure/shipping_container/gas = 3,
/obj/structure/shipping_container/gas/apda = 3,
/obj/structure/shipping_container/gas/apda/hydrogen = 3,
/obj/structure/shipping_container/gas/exagon = 3,
/obj/structure/shipping_container/gas/nthi = 3,
)