/obj/random/smokable name = "random smokable" desc = "This is a random smoking item." icon = 'icons/obj/cigs_lighters.dmi' icon_state = "cigpacket" 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/random/action_figure name = "random action figure" desc = "This is a random action figure." icon = 'icons/obj/toy.dmi' icon_state = "assistant" 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 = 'icons/obj/toy.dmi' icon_state = "nymphplushie" 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/farwa, /obj/item/toy/plushie/squid, /obj/item/toy/plushie/bear, /obj/item/toy/plushie/bearfire, /obj/item/toy/plushie/herring_gull ) /obj/random/balloon name = "random balloon" desc = "This is a random balloon." icon = 'icons/obj/toy.dmi' icon_state = "balloon" 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/random/desktoy name = "random desk toy" desc = "This is a random desk toy." icon = 'icons/obj/toy.dmi' icon_state = "dippybird" 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 = 'icons/obj/lighting.dmi' icon_state = "lavalamp" spawnlist = list( /obj/item/device/flashlight/lamp/lava, /obj/item/device/flashlight/lamp/lava/red, /obj/item/device/flashlight/lamp/lava/orange, /obj/item/device/flashlight/lamp/lava/yellow, /obj/item/device/flashlight/lamp/lava/green, /obj/item/device/flashlight/lamp/lava/cyan, /obj/item/device/flashlight/lamp/lava/blue, /obj/item/device/flashlight/lamp/lava/purple, /obj/item/device/flashlight/lamp/lava/pink ) /obj/random/glowstick name = "random glowstick" desc = "This is a random glowstick." icon = 'icons/obj/lighting.dmi' icon_state = "glowstick" spawnlist = list( /obj/item/device/flashlight/flare/glowstick, /obj/item/device/flashlight/flare/glowstick/red, /obj/item/device/flashlight/flare/glowstick/blue, /obj/item/device/flashlight/flare/glowstick/orange, /obj/item/device/flashlight/flare/glowstick/yellow ) /obj/random/arcade name = "random arcade loot" desc = "Arcade loot!" icon = 'icons/obj/items.dmi' icon_state = "gift3" spawnlist = list( /obj/item/storage/box/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/device/binoculars = 11, /obj/item/device/megaphone = 11, /obj/item/eightball = 11, /obj/item/eightball/haunted = 1, /obj/item/eightball/broken = 1, /obj/item/spirit_board = 5, /obj/item/device/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 = 'icons/obj/items.dmi' icon_state = "gift3" 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 = 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/device/binoculars = 11, /obj/item/device/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 = 'icons/obj/structures.dmi' icon_state = "densecrate" spawnlist = list( /obj/structure/largecrate/animal/corgi = 3, /obj/structure/largecrate/animal/cow = 4, /obj/structure/largecrate/animal/goat = 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/random/random_flag name = "random flag" desc = "Contains a random boxed flag or banner." icon = 'icons/obj/decals.dmi' icon_state = "flag_boxed" 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 = 'icons/holidays/christmas/presents.dmi' icon_state = "gift1" 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 = 'icons/obj/trash.dmi' icon_state = "koisbar" 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/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/device/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 = ABOVE_CABLE_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" 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" /obj/random/smalltank/item_to_spawn() if (prob(40)) return /obj/item/tank/emergency_oxygen else if (prob(60)) return /obj/item/tank/emergency_oxygen/engi else return /obj/item/tank/emergency_oxygen/double /obj/random/pottedplant name = "random potted plant" desc = "Spawns a random potted plant." icon = 'icons/obj/plants.dmi' icon_state = "plant-26" 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)