Files
Aurora.3/code/game/objects/random/misc.dm
T
Batrachophreno 98d00638ce Horizon maint access rights and contents variety (#22262)
Two major changes to Horizon maints:
1. Updated maint door access to actually be consistent across the ship.
That is to say, you should have access to the maints behind your own
department, you should be able to make meaningful use out of them (no
random useless dead ends), but you shouldn't automatically get free
access to the entirety of the ship maints due to lack of hatch access
control. This was a non-issue until the Horizon expansion that greatly
increased maint interconnectivity. Now, everyone has consistent maint
access, and free access remains for Code Blue (or manually Command
disabling access controls).

2. Maint loot should be more interesting. Static contraband spawns were
reduced but a large number of new spawners were added that should make
loot, contraband, tools, trash, etc., spawn in more varied places. This
should make maint travel involve more Happy Surprises rather than
strictly being a rote process of 'lets see what spawned in XYZ room this
time).

Miscellaneous other bugfixes and spawn tweaks based on my observation;
on repeatedly re-loading the Horizon, the numbers chosen seemed to
repeatedly give me the most satisfying results. See file changes.
2026-04-21 14:19:40 +00:00

678 lines
22 KiB
Plaintext

/obj/random/smokable
name = "random smokable/chewable"
desc = "This is a random smoking/chewing item."
icon_state = "cigarettes"
problist = list(
/obj/item/storage/box/fancy/cigarettes = 30,
/obj/item/storage/box/fancy/cigarettes/blank = 5,
/obj/item/storage/box/fancy/cigarettes/acmeco = 2,
/obj/item/storage/box/fancy/cigarettes/dromedaryco = 10,
/obj/item/storage/box/fancy/cigarettes/cigar = 9,
/obj/item/storage/box/fancy/cigarettes/nicotine = 10,
/obj/item/storage/box/fancy/cigarettes/rugged = 10,
/obj/item/storage/box/fancy/cigarettes/pra = 5,
/obj/item/storage/box/fancy/cigarettes/dpra = 2,
/obj/item/storage/box/fancy/cigarettes/nka = 2,
/obj/item/storage/box/fancy/cigarettes/federation = 2,
/obj/item/storage/box/fancy/cigarettes/dyn = 2,
/obj/item/storage/box/fancy/cigarettes/oracle = 3,
/obj/item/storage/box/fancy/cigarettes/koko = 1,
/obj/item/storage/chewables/rollable = 3,
/obj/item/storage/chewables/rollable/unathi = 1,
/obj/item/storage/chewables/rollable/fine = 1,
/obj/item/storage/chewables/rollable/nico = 1,
/obj/item/storage/chewables/rollable/oracle = 2,
/obj/item/storage/chewables/rollable/vedamor = 1,
/obj/item/storage/chewables/tobacco/bad = 4,
/obj/item/storage/chewables/tobacco = 3,
/obj/item/storage/chewables/tobacco/fine = 2,
/obj/item/storage/chewables/tobacco/federation = 1,
/obj/item/storage/chewables/tobacco/dyn = 1,
/obj/item/storage/chewables/tobacco/koko = 1,
/obj/item/storage/chewables/oracle = 3,
/obj/item/storage/box/fancy/chewables/tobacco/nico = 3,
/obj/item/storage/chewables/solar_salve = 1
)
/obj/random/action_figure
name = "random action figure"
desc = "This is a random action figure."
icon_state = "toy"
spawnlist = list(
/obj/item/toy/figure/cmo,
/obj/item/toy/figure/assistant,
/obj/item/toy/figure/atmos,
/obj/item/toy/figure/bartender,
/obj/item/toy/figure/borg,
/obj/item/toy/figure/gardener,
/obj/item/toy/figure/captain,
/obj/item/toy/figure/cargotech,
/obj/item/toy/figure/ce,
/obj/item/toy/figure/chaplain,
/obj/item/toy/figure/chef,
/obj/item/toy/figure/chemist,
/obj/item/toy/figure/clown,
/obj/item/toy/figure/corgi,
/obj/item/toy/figure/detective,
/obj/item/toy/figure/dsquad,
/obj/item/toy/figure/engineer,
/obj/item/toy/figure/geneticist,
/obj/item/toy/figure/hop,
/obj/item/toy/figure/hos,
/obj/item/toy/figure/qm,
/obj/item/toy/figure/janitor,
/obj/item/toy/figure/agent,
/obj/item/toy/figure/librarian,
/obj/item/toy/figure/md,
/obj/item/toy/figure/mime,
/obj/item/toy/figure/miner,
/obj/item/toy/figure/ninja,
/obj/item/toy/figure/wizard,
/obj/item/toy/figure/rd,
/obj/item/toy/figure/roboticist,
/obj/item/toy/figure/scientist,
/obj/item/toy/figure/syndie,
/obj/item/toy/figure/secofficer,
/obj/item/toy/figure/warden,
/obj/item/toy/figure/psychologist,
/obj/item/toy/figure/paramedic,
/obj/item/toy/figure/ert
)
/obj/random/plushie
name = "random plushie"
desc = "This is a random plushie."
icon_state = "plushie"
spawnlist = list(
/obj/item/toy/plushie/ian,
/obj/item/toy/plushie/drone,
/obj/item/toy/plushie/carp,
/obj/item/toy/plushie/beepsky,
/obj/item/toy/plushie/ivancarp,
/obj/item/toy/plushie/nymph,
/obj/item/toy/plushie/mouse,
/obj/item/toy/plushie/kitten,
/obj/item/toy/plushie/lizard,
/obj/item/toy/plushie/spider,
/obj/item/toy/plushie/farwa,
/obj/item/toy/plushie/bear,
/obj/item/toy/plushie/bearfire,
/obj/item/toy/plushie/schlorrgo,
/obj/item/toy/plushie/coolschlorrgo,
/obj/item/toy/plushie/slime,
/obj/item/toy/plushie/bee,
/obj/item/toy/plushie/shark,
/obj/item/toy/plushie/greimorian,
/obj/item/toy/plushie/herring_gull,
/obj/item/toy/plushie/cockatoo,
/obj/item/toy/plushie/norinori,
/obj/item/toy/plushie/fox,
/obj/item/toy/plushie/fox/black,
/obj/item/toy/plushie/fox/marble,
/obj/item/toy/plushie/fox/blue,
/obj/item/toy/plushie/fox/orange,
/obj/item/toy/plushie/fox/coffee,
/obj/item/toy/plushie/fox/pink,
/obj/item/toy/plushie/fox/purple,
/obj/item/toy/plushie/fox/crimson,
/obj/item/toy/plushie/axic,
/obj/item/toy/plushie/qill,
/obj/item/toy/plushie/xana,
/obj/item/toy/plushie/ipc,
/obj/item/toy/plushie/domadice,
/obj/item/toy/plushie/squid
)
/obj/random/balloon
name = "random balloon"
desc = "This is a random balloon."
icon_state = "bloon"
spawnlist = list(
/obj/item/toy/balloon/color = 7,
/obj/item/toy/balloon/latex = 1,
/obj/item/toy/balloon/latex/nitrile = 1,
/obj/item/toy/balloon/syndicate = 2,
/obj/item/toy/balloon/nanotrasen = 2,
/obj/item/toy/balloon/fellowship = 1,
/obj/item/toy/balloon/fellowshiphead = 1,
/obj/item/toy/balloon/contender = 1,
/obj/item/toy/balloon/contenderhead = 1,
/obj/item/toy/balloon/bat = 1,
/obj/item/toy/balloon/ghost = 1,
/obj/item/toy/balloon/xmastree = 1,
/obj/item/toy/balloon/candycane = 1,
/obj/item/toy/balloon/heart/red = 2,
/obj/item/toy/balloon/heart/pink = 2
)
/obj/random/desktoy
name = "random desk toy"
desc = "This is a random desk toy."
icon_state = "desktoy"
spawnlist = list(
/obj/item/toy/desk/newtoncradle,
/obj/item/toy/desk/fan,
/obj/item/toy/desk/officetoy,
/obj/item/toy/desk/dippingbird
)
/obj/random/lavalamp
name = "random lava lamp"
desc = "This is a random lava lamp."
icon_state = "lavalamp"
spawnlist = list(
/obj/item/flashlight/lamp/lava,
/obj/item/flashlight/lamp/lava/red,
/obj/item/flashlight/lamp/lava/orange,
/obj/item/flashlight/lamp/lava/yellow,
/obj/item/flashlight/lamp/lava/green,
/obj/item/flashlight/lamp/lava/cyan,
/obj/item/flashlight/lamp/lava/blue,
/obj/item/flashlight/lamp/lava/purple,
/obj/item/flashlight/lamp/lava/pink
)
/obj/random/glowstick
name = "random glowstick"
desc = "This is a random glowstick."
icon_state = "glowstick"
spawnlist = list(
/obj/item/flashlight/flare/glowstick,
/obj/item/flashlight/flare/glowstick/red,
/obj/item/flashlight/flare/glowstick/blue,
/obj/item/flashlight/flare/glowstick/orange,
/obj/item/flashlight/flare/glowstick/yellow
)
/obj/random/arcade
name = "random arcade loot"
desc = "Arcade loot!"
icon_state = "toy"
spawnlist = list(
/obj/item/storage/box/unique/snappops = 11,
/obj/item/clothing/under/syndicate/tacticool = 5,
/obj/item/toy/sword = 22,
/obj/item/gun/projectile/revolver/capgun = 11,
/obj/item/toy/crossbow = 11,
/obj/item/storage/box/fancy/crayons = 11,
/obj/item/toy/spinningtoy = 11,
/obj/item/toy/mech/ripley = 1,
/obj/item/toy/mech/fireripley = 1,
/obj/item/toy/mech/deathripley = 1,
/obj/item/toy/mech/gygax = 1,
/obj/item/toy/mech/durand = 1,
/obj/item/toy/mech/honk = 1,
/obj/item/toy/mech/marauder = 1,
/obj/item/toy/mech/seraph = 1,
/obj/item/toy/mech/mauler = 1,
/obj/item/toy/mech/odysseus = 1,
/obj/item/toy/mech/phazon = 1,
/obj/item/reagent_containers/spray/waterflower = 5,
/obj/random/action_figure = 11,
/obj/random/plushie = 44,
/obj/item/toy/cultsword = 5,
/obj/random/balloon = 22,
/obj/item/toy/katana = 11,
/obj/item/toy/bosunwhistle = 5,
/obj/item/storage/belt/champion = 11,
/obj/item/pen/invisible = 5,
/obj/item/grenade/fake = 1,
/obj/item/bikehorn = 11,
/obj/item/clothing/mask/fakemoustache = 11,
/obj/item/clothing/mask/gas/mime = 11,
/obj/item/clothing/shoes/slippers/carp = 9,
/obj/item/gun/energy/wand/toy = 5,
/obj/item/binoculars = 11,
/obj/item/megaphone = 11,
/obj/item/eightball = 11,
/obj/item/eightball/haunted = 1,
/obj/item/eightball/broken = 1,
/obj/item/spirit_board = 5,
/obj/item/laser_pointer = 1,
/obj/item/clothing/accessory/badge/press/plastic = 2,
/obj/item/storage/box/partypopper = 11
)
/obj/random/arcade/orion
name = "random arcade loot for orion trails"
desc = "Arcade loot for orion trails aracde machine!"
icon_state = "toy"
spawnlist = list(
/obj/item/clothing/under/syndicate/tacticool = 7,
/obj/item/toy/sword = 22,
/obj/item/gun/projectile/revolver/capgun = 11,
/obj/item/gun/bang/deagle = 22,
/obj/item/toy/crossbow = 11,
/obj/random/action_figure = 11,
/obj/item/toy/cultsword = 7,
/obj/random/balloon = 22,
/obj/item/toy/katana = 11,
/obj/random/plushie = 55,
/obj/item/storage/belt/champion = 11,
/obj/item/pen/invisible = 10,
/obj/item/grenade/fake = 7,
/obj/item/gun/energy/wand/toy = 7,
/obj/item/binoculars = 11,
/obj/item/megaphone = 11,
/obj/item/eightball = 11,
/obj/item/eightball/haunted = 5,
/obj/item/spirit_board = 5,
/obj/item/clothing/accessory/badge/press/plastic = 2
)
/obj/random/animal_crate
name = "random animal"
desc = "Contains a random crate with an animal."
icon_state = "woodcrate"
spawnlist = list(
/obj/structure/largecrate/animal/corgi = 3,
/obj/structure/largecrate/animal/cow = 4,
/obj/structure/largecrate/animal/goat = 3,
/obj/structure/largecrate/animal/snake = 3,
/obj/structure/largecrate/animal/cat = 2,
/obj/structure/largecrate/animal/chick = 4,
/obj/structure/largecrate/animal/adhomai = 0.5,
/obj/structure/largecrate/animal/adhomai/fatshouter = 0.5,
/obj/structure/largecrate/animal/adhomai/rafama = 0.5,
/obj/structure/largecrate/animal/adhomai/schlorrgo = 0.2,
/obj/structure/largecrate/animal/hakhma = 0.5,
/obj/structure/largecrate/animal/moghes = 0.5,
/obj/structure/largecrate/animal/moghes/warmount = 0.2,
/obj/structure/largecrate/animal/moghes/miervesh = 0.5,
/obj/structure/largecrate/animal/moghes/otzek = 0.5
)
/obj/random/random_flag
name = "random flag"
desc = "Contains a random boxed flag or banner."
icon_state = "flagbox"
spawnlist = list(
/obj/item/flag/biesel,
/obj/item/flag/biesel/l,
/obj/item/flag/dominia,
/obj/item/flag/dominia/l,
/obj/item/flag/dpra,
/obj/item/flag/dpra/l,
/obj/item/flag/elyra,
/obj/item/flag/elyra/l,
/obj/item/flag/eridani,
/obj/item/flag/eridani/l,
/obj/item/flag/hegemony,
/obj/item/flag/hegemony/l,
/obj/item/flag/heph,
/obj/item/flag/heph/l,
/obj/item/flag/nralakk,
/obj/item/flag/nralakk/l,
/obj/item/flag/nanotrasen,
/obj/item/flag/nanotrasen/l,
/obj/item/flag/nka,
/obj/item/flag/nka/l,
/obj/item/flag/pra,
/obj/item/flag/pra/l,
/obj/item/flag/sol,
/obj/item/flag/sol/l,
/obj/item/flag/sedantis,
/obj/item/flag/sedantis/l,
/obj/item/flag/zenghu,
/obj/item/flag/zenghu/l,
/obj/item/flag/coalition,
/obj/item/flag/coalition/l
)
/obj/random/gift
name = "random gift"
desc = "Contains a randomly sized gift."
icon_state = "present"
spawnlist = list(
/obj/item/xmasgift = 0.5,
/obj/item/xmasgift/medium = 0.3,
/obj/item/xmasgift/large = 0.2
)
/obj/random/junk
name = "random trash"
desc = "This is toss."
icon_state = "junk"
spawn_nothing_percentage = 5
problist = list(
/obj/item/trash/koisbar = 0.5,
/obj/item/trash/raisins = 1,
/obj/item/trash/candy = 1,
/obj/item/trash/cheesie = 2,
/obj/item/trash/chips = 0.75,
/obj/item/trash/popcorn = 0.75,
/obj/item/trash/sosjerky = 0.5,
/obj/item/trash/syndi_cakes = 0.25,
/obj/item/trash/waffles = 0.75,
/obj/item/trash/plate = 0.75,
/obj/item/trash/snack_bowl = 0.75,
/obj/item/trash/pistachios = 0.75,
/obj/item/trash/semki = 0.5,
/obj/item/trash/tray = 0.75,
/obj/item/trash/candle = 0.75,
/obj/item/trash/liquidfood = 0.75,
/obj/item/trash/tastybread= 0.75,
/obj/item/trash/meatsnack = 0.5,
/obj/item/trash/maps = 0.5,
/obj/item/trash/tuna = 0.5,
/obj/item/trash/algaechips = 0.5,
/obj/effect/decal/cleanable/ash = 1.5,
/obj/effect/decal/cleanable/dirt = 2,
/obj/effect/decal/cleanable/flour = 1,
/obj/effect/decal/cleanable/greenglow = 1,
/obj/effect/decal/cleanable/molten_item = 1,
/obj/effect/decal/cleanable/vomit = 2,
/obj/effect/decal/cleanable/generic = 2,
/obj/effect/decal/cleanable/liquid_fuel = 0.5,
/obj/effect/decal/cleanable/mucus = 1.5,
/obj/effect/decal/cleanable/blood/drip = 1.5,
/obj/item/storage/box = 1,
/obj/item/material/shard = 1,
/obj/item/material/shard/shrapnel = 1,
/obj/item/broken_bottle = 1,
/obj/item/stack/material/cardboard = 1,
/obj/item/stack/rods = 1,
/obj/item/corncob = 1,
/obj/item/paper/crumpled = 1,
/obj/item/inflatable/torn = 1,
/obj/item/ammo_casing/c45/rubber = 0.5,
/obj/item/ammo_casing/c9mm/rubber = 0.5,
/obj/item/ammo_casing/c45/flash = 0.5,
/obj/item/ammo_casing/shotgun/beanbag = 0.5,
/obj/item/flame/lighter/random = 0.25,
/obj/item/lipstick/random = 0.25,
/obj/item/reagent_containers/glass/beaker/vial/random = 0.1,
/obj/item/towel/random = 0.1,
/obj/item/flashlight/flare/glowstick/random = 0.25,
/obj/item/stack/cable_coil/random/ = 0.1,
/obj/item/bananapeel = 0.1, //honk,
/obj/item/key = 0.1,
/obj/item/reagent_containers/blood/ripped = 0.1,
/obj/item/shreddedp = 0.1
)
/obj/random/dirt_75
name = "dirt 75%"
desc = "75% chance of spawning dirt, otherwise nothing."
icon = 'icons/effects/effects.dmi'
icon_state = "dirt"
layer = BELOW_OBJ_LAYER // just so it appears under structures in map editor
spawn_nothing_percentage = 25
spawnlist = list(
/obj/effect/decal/cleanable/dirt
)
/obj/random/vendor
name = "random vendor"
icon_state = "vendor"
var/depleted = FALSE
var/scan_id = TRUE // Should the spawned vendor check IDs
problist = list(
/obj/machinery/vending/boozeomat = 1,
/obj/machinery/vending/coffee = 1,
/obj/machinery/vending/snack = 1,
/obj/machinery/vending/cola = 1,
/obj/machinery/vending/cigarette = 1,
/obj/machinery/vending/medical = 1.2,
/obj/machinery/vending/phoronresearch = 0.7,
/obj/machinery/vending/security = 0.3,
/obj/machinery/vending/hydronutrients = 1,
/obj/machinery/vending/hydroseeds = 1,
/obj/machinery/vending/dinnerware = 1,
/obj/machinery/vending/sovietsoda = 2,
/obj/machinery/vending/tool = 1,
/obj/machinery/vending/engivend = 0.6,
/obj/machinery/vending/engineering = 1,
/obj/machinery/vending/robotics = 1,
/obj/machinery/vending/tacticool = 0.2,
/obj/machinery/vending/tacticool/ert = 0.1
)
has_postspawn = TRUE
/obj/random/vendor/Initialize(mapload, _depleted = 0)
depleted = _depleted
. = ..()
/obj/random/vendor/post_spawn(obj/machinery/vending/V)
if (!depleted)
return
//Greatly reduce the contents. it will have 0-20% of what it usually has
for (var/content in V.products)
if (prob(40))
V.products[content] = 0 //40% chance to completely lose an item
else
var/multiplier = rand(0,20) //Else, we reduce it to a very low percentage
if (multiplier)
multiplier /= 100
V.products[content] *= multiplier
if (V.products[content] < 1 && V.products[content] > 0) //But we'll usually have at least 1 left
V.products[content] = 0
// Clamp to an integer so we don't get 0.78 of a screwdriver.
V.products[content] = round(V.products[content])
V.scan_id &= scan_id
/obj/random/smalltank
name = "random small tank"
icon_state = "airtank"
problist = list(
/obj/item/tank/emergency_oxygen = 3,
/obj/item/tank/emergency_oxygen/engi = 2,
/obj/item/tank/emergency_oxygen/double = 1,
)
/obj/random/pottedplant
name = "random potted plant, big"
desc = "Spawns a random potted plant."
icon_state = "potted_plant_big"
spawn_nothing_percentage = 1
/obj/random/pottedplant/spawn_item()
var/obj/structure/flora/pottedplant/P = null
var/list/unwanted = list(
/obj/structure/flora/pottedplant, // don't want parent base obj
/obj/structure/flora/pottedplant/dead2, // does not fit horizon's aesthetic
/obj/structure/flora/pottedplant/empty
)
var/list/rare = list(
/obj/structure/flora/pottedplant/eye,
/obj/structure/flora/pottedplant/dead
)
while(!P)
P = pick(typesof(/obj/structure/flora/pottedplant))
if((P in unwanted) || ((P in rare) && prob(50)))
P = null
. = new P(loc)
/obj/random/pottedplant_small
name = "random potted plant, small"
desc = "Spawns a random potted plant."
icon_state = "potted_plant_small"
spawn_nothing_percentage = 1
/obj/random/pottedplant_small/spawn_item()
var/obj/item/flora/pottedplant_small/P = null
var/list/unwanted = list(
/obj/item/flora/pottedplant_small, // don't want parent base obj
/obj/item/flora/pottedplant_small/empty
)
var/list/rare = list(
/obj/item/flora/pottedplant_small/dead
)
while(!P)
P = pick(typesof(/obj/item/flora/pottedplant_small))
if((P in unwanted) || ((P in rare) && prob(50)))
P = null
. = new P(loc)
/obj/random/syrup
name = "random syrup"
desc = "Contains random bottles of flavored syrup."
icon_state = "syrup"
problist = list(
/obj/item/reagent_containers/food/condiment/syrup_chocolate = 2,
/obj/item/reagent_containers/food/condiment/syrup_strawberry = 1,
/obj/item/reagent_containers/food/condiment/syrup_berry = 0.5,
/obj/item/reagent_containers/food/condiment/syrup_raspberry = 0.3,
/obj/item/reagent_containers/food/condiment/syrup_blueberry = 0.3,
/obj/item/reagent_containers/food/condiment/syrup_blue_raspberry = 0.3,
/obj/item/reagent_containers/food/condiment/syrup_ylphaberry = 0.3,
/obj/item/reagent_containers/food/condiment/syrup_caramel = 0.5,
/obj/item/reagent_containers/food/condiment/syrup_pumpkin = 0.3,
/obj/item/reagent_containers/food/condiment/syrup_vanilla = 0.5,
/obj/item/reagent_containers/food/condiment/syrup_dirtberry = 0.3
)
/obj/random/condiment
name = "random condiments and sauces"
desc = "Contains random condiments for use in the galley."
icon_state = "condiment"
spawn_nothing_percentage = 10
problist = list(
/obj/item/reagent_containers/food/condiment/ketchup = 2,
/obj/item/reagent_containers/food/condiment/mayonnaise = 1.8,
/obj/item/reagent_containers/food/condiment/hot_sauce = 1.5,
/obj/random/syrup = 1.5,
/obj/item/reagent_containers/food/condiment/honey = 1,
/obj/item/reagent_containers/food/condiment/soysauce = 1,
/obj/item/reagent_containers/food/condiment/garlicsauce = 1,
/obj/item/reagent_containers/food/condiment/barbecue = 1,
/obj/item/reagent_containers/food/condiment/ntella = 1,
/obj/item/reagent_containers/food/condiment/peanut_butter = 1,
/obj/item/reagent_containers/food/condiment/cherry_jelly = 1,
/obj/item/reagent_containers/food/condiment/sweet_chili = 0.8,
/obj/item/reagent_containers/food/condiment/grape_jelly = 0.5
)
/obj/random/kitchen_staples
name = "random galley staples"
desc = "Contains random ingredients that are handy in the galley"
icon_state = "ingredient_bag"
spawn_nothing_percentage = 20
problist = list(
/obj/item/reagent_containers/food/condiment/gelatin = 1,
/obj/item/reagent_containers/food/condiment/batter = 1,
/obj/item/reagent_containers/food/condiment/syrup_simple = 1,
/obj/item/reagent_containers/food/condiment/vanilla = 1,
/obj/item/storage/box/fancy/food/sliced_bread = 1,
/obj/item/reagent_containers/food/condiment/cocoa = 1,
/obj/item/reagent_containers/food/condiment/cream_cheese = 1
)
/obj/random/maintenance_junk_or_loot
name = "random maintenance junk or loot"
desc = "Spawns any of: junk, loot, trash, trash pile, locker with junk or loot, (or other things)."
icon_state = "maint_junk_loot"
spawn_nothing_percentage = 45
has_postspawn = TRUE
problist = list(
// spawn just one thing:
/obj/random/junk = 2,
/obj/random/dirt_75 = 1,
/obj/random/loot = 1.2,
/obj/structure/trash_pile = 1.1,
/obj/random/tool = 0.5,
/obj/random/tech_supply = 0.2,
/obj/structure/girder = 0.2,
/obj/random/canister/empty = 0.2,
/obj/structure/reagent_dispensers/fueltank = 0.1,
/obj/random/canister/filled/restricted = 0.1,
/obj/structure/closet/crate/loot = 0.05,
/obj/random/contraband = 0.2,
// spawn a container and maybe fill it with more junk:
/obj/structure/table/rack = 1,
/obj/structure/table/steel = 1,
/obj/structure/closet/crate = 1,
/obj/structure/closet/crate/trashcart = 0.2,
/obj/structure/closet/crate/plastic = 0.1,
)
var/list/more_junk_problist = list(
/obj/random/junk = 1,
/obj/random/loot = 1.2,
/obj/random/tech_supply = 0.2,
/obj/random/tool = 0.2,
/obj/random/contraband = 0.2,
)
/obj/random/maintenance_junk_or_loot/post_spawn(var/obj/spawned)
if(istype(spawned, /obj/structure/table))
if(prob(65))
var/obj/more_junk = pickweight(more_junk_problist)
new more_junk(spawned.loc)
else if(istype(spawned, /obj/structure/closet))
if(prob(90))
var/i_max = rand(1, 4)
for(var/i in 1 to i_max)
var/obj/more_junk = pickweight(more_junk_problist)
new more_junk(spawned.loc)
else if(prob(10) && !spawned.density)
var/i_max = rand(1, 2)
for(var/i in 1 to i_max)
var/obj/more_junk = pickweight(more_junk_problist)
new more_junk(spawned.loc)
/obj/random/yarn
name = "random yarn"
desc = "This is a random ball of yarn."
icon = 'icons/obj/item/knitting.dmi'
icon_state = "white_ball"
spawnlist = list(
/obj/item/yarn/blue,
/obj/item/yarn/green,
/obj/item/yarn/purple,
/obj/item/yarn/red,
/obj/item/yarn/yellow
)
/obj/random/horticulture_magazine
name = "random horticulture magazine"
desc = "This is a random magazine."
icon = 'icons/obj/library.dmi'
icon_state = "horticulture1"
spawnlist = list(
/obj/item/toy/comic/magazine/horticulturetoday/issue1,
/obj/item/toy/comic/magazine/horticulturetoday/issue2,
/obj/item/toy/comic/magazine/horticulturetoday/issue3,
/obj/item/toy/comic/magazine/horticulturetoday/issue4,
/obj/item/toy/comic/magazine/horticulturetoday/issue5,
/obj/item/toy/comic/magazine/horticulturetoday/issue6
)
/obj/random/hydroponics
name = "random hydroponics item"
desc = "This is a hydroponics thing."
icon_state = "tech_supply"
spawnlist = list(
/obj/item/material/scythe/sickle = 1,
/obj/item/material/scythe = 1,
/obj/item/reagent_containers/glass/bottle/mutagen = 1,
/obj/item/reagent_containers/glass/fertilizer/rh = 1,
/obj/item/reagent_containers/glass/fertilizer/l4z = 1,
/obj/item/reagent_containers/glass/fertilizer/ez = 1,
/obj/item/crowbar = 1,
/obj/item/shovel = 1,
/obj/item/shovel/spade = 1,
/obj/item/wrench = 1,
/obj/random/condiment = 3,
/obj/random/kitchen_staples = 3,
/obj/random/smokable = 1,
/obj/random/seed = 3,
/obj/random/plushie = 1,
/obj/random/med_stack = 1,
/obj/item/reagent_containers/glass/bottle/ammonia = 1,
)
/obj/random/holoturret
name = "random holoturret"
desc = "This is a random turret item. It could be active or simply a statue."
icon_state = "holoturret"
problist = list(
/obj/machinery/porta_turret/hologram = 1,
/obj/structure/unathi_statue/warrior/right = 1,
)