/obj/random name = "random object" desc = "This item type is used to spawn random objects at round-start" icon = 'icons/misc/mark.dmi' icon_state = "rup" var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything var/list/spawnlist var/list/problist var/has_postspawn // creates a new object and deletes itself /obj/random/Initialize() . = ..() if (!prob(spawn_nothing_percentage)) var/obj/spawned_item = spawn_item() if(spawned_item) spawned_item.pixel_x = pixel_x spawned_item.pixel_y = pixel_y if(has_postspawn) post_spawn(spawned_item) return INITIALIZE_HINT_QDEL // this function should return a specific item to spawn /obj/random/proc/item_to_spawn() return 0 /obj/random/proc/post_spawn(obj/thing) log_debug("random_obj: [DEBUG_REF(src)] registered itself as having post_spawn, but did not override post_spawn()!") // creates the random item /obj/random/proc/spawn_item() if (spawnlist) var/itemtype = pick(spawnlist) . = new itemtype(loc) else if (problist) var/itemtype = pickweight(problist) . = new itemtype(loc) else var/itemtype = item_to_spawn() . = new itemtype(loc) if (!.) log_debug("random_obj: [DEBUG_REF(src)] returned null item!") /obj/random/single name = "randomly spawned object" desc = "This item type is used to randomly spawn a given object at round-start" icon_state = "x3" var/spawn_object = null item_to_spawn() return ispath(spawn_object) ? spawn_object : text2path(spawn_object) /obj/random/tool name = "random tool" desc = "This is a random tool" icon = 'icons/obj/tools.dmi' icon_state = "welder_off" spawnlist = list( /obj/item/screwdriver, /obj/item/wirecutters, /obj/item/weldingtool, /obj/item/crowbar, /obj/item/wrench, /obj/item/device/flashlight ) /obj/random/technology_scanner name = "random scanner" desc = "This is a random technology scanner." icon = 'icons/obj/device.dmi' icon_state = "atmos" problist = list( /obj/item/device/t_scanner = 5, /obj/item/device/radio = 2, /obj/item/device/analyzer = 5 ) /obj/random/powercell name = "random powercell" desc = "This is a random powercell." icon = 'icons/obj/power.dmi' icon_state = "cell" problist = list( /obj/item/cell/crap = 10, /obj/item/cell = 40, /obj/item/cell/high = 40, /obj/item/cell/super = 9, /obj/item/cell/hyper = 1 ) /obj/random/bomb_supply name = "bomb supply" desc = "This is a random bomb supply." icon = 'icons/obj/assemblies/new_assemblies.dmi' icon_state = "signaller" problist = list( /obj/item/device/assembly/igniter = 2, /obj/item/device/assembly/prox_sensor = 2, /obj/item/device/assembly/signaler = 2, /obj/item/device/multitool = 1, /obj/item/device/transfer_valve = 0.5 ) /obj/random/toolbox name = "random toolbox" desc = "This is a random toolbox." icon = 'icons/obj/storage.dmi' icon_state = "red" spawnlist = list( /obj/item/storage/toolbox/mechanical = 3, /obj/item/storage/toolbox/electrical = 2, /obj/item/storage/toolbox/emergency = 1 ) /obj/random/tech_supply name = "random tech supply" desc = "This is a random piece of technology supplies." icon = 'icons/obj/power.dmi' icon_state = "cell" // spawn_nothing_percentage = 50 problist = list( /obj/random/powercell = 3, /obj/random/technology_scanner = 2, /obj/item/stack/packageWrap = 1, /obj/random/bomb_supply = 2, /obj/item/extinguisher = 1, /obj/item/clothing/gloves/fyellow = 1, /obj/item/stack/cable_coil = 3, /obj/random/toolbox = 2, /obj/item/storage/belt/utility = 2, /obj/random/tool = 5, /obj/item/tape_roll = 2 ) /obj/random/medical name = "Random Medicine" desc = "This is a random medical item." icon = 'icons/obj/stacks/medical.dmi' icon_state = "brutepack" spawn_nothing_percentage = 25 problist = list( /obj/item/stack/medical/bruise_pack = 4, /obj/item/stack/medical/ointment = 4, /obj/item/stack/medical/advanced/bruise_pack = 2, /obj/item/stack/medical/advanced/ointment = 2, /obj/item/stack/medical/splint = 1, /obj/item/bodybag = 2, /obj/item/bodybag/cryobag = 1, /obj/item/storage/pill_bottle/kelotane = 2, /obj/item/storage/pill_bottle/bicaridine = 2, /obj/item/storage/pill_bottle/antitox = 2, /obj/item/storage/pill_bottle/mortaphenyl = 2, /obj/item/reagent_containers/syringe/dylovene = 2, /obj/item/reagent_containers/syringe/inaprovaline = 2, /obj/item/stack/nanopaste = 1 ) /obj/random/firstaid name = "Random First Aid Kit" desc = "This is a random first aid kit." icon = 'icons/obj/storage.dmi' icon_state = "firstaid" problist = list( /obj/item/storage/firstaid/regular = 3, /obj/item/storage/firstaid/toxin = 2, /obj/item/storage/firstaid/o2 = 2, /obj/item/storage/firstaid/fire = 2, /obj/item/storage/firstaid/brute = 1, /obj/item/storage/firstaid/adv = 1 ) /obj/random/contraband name = "Random Illegal Item" desc = "Hot Stuff." icon = 'icons/obj/cosmetics.dmi' icon_state = "purplecomb" // spawn_nothing_percentage = 50 problist = list( /obj/item/storage/pill_bottle/mortaphenyl = 3, /obj/item/storage/pill_bottle/happy = 2, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/reagent_containers/glass/beaker/vial/random/toxin = 1, /obj/item/contraband/poster = 5, /obj/item/material/knife/butterfly = 2, /obj/item/material/butterflyblade = 3, /obj/item/material/butterflyhandle = 3, /obj/item/material/wirerod = 3, /obj/item/melee/baton/cattleprod = 1, /obj/item/material/knife/tacknife = 1, /obj/item/material/kitchen/utensil/knife/boot = 2, /obj/item/storage/secure/briefcase/money = 1, /obj/item/material/knife/butterfly/switchblade = 1, /obj/item/reagent_containers/syringe/drugs = 1, /obj/item/reagent_containers/food/snacks/grown/mushroom/libertycap = 2, /obj/item/reagent_containers/food/snacks/grown/ambrosiavulgaris = 2, /obj/item/reagent_containers/food/snacks/grown/ambrosiadeus = 1, /obj/item/reagent_containers/food/snacks/grown/mushroom/reishi = 1, /obj/item/reagent_containers/food/snacks/grown/mushroom/destroyingangel = 1, /obj/item/reagent_containers/food/snacks/grown/mushroom/ghostmushroom = 0.5, /obj/item/seeds/ambrosiavulgarisseed = 2, /obj/item/seeds/ambrosiadeusseed = 1, /obj/item/clothing/mask/gas/voice = 1, /obj/item/clothing/gloves/brassknuckles = 2, /obj/item/reagent_containers/inhaler/space_drugs = 2 ) /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/random/energy name = "Random Energy Weapon" desc = "This is a random security weapon." icon = 'icons/obj/guns/ecarbine.dmi' icon_state = "energykill100" problist = list( /obj/item/gun/energy/rifle/laser = 2, /obj/item/gun/energy/gun = 2, /obj/item/gun/energy/stunrevolver = 1 ) /obj/random/projectile name = "Random Projectile Weapon" desc = "This is a random security weapon." icon = 'icons/obj/guns/cshotgun.dmi' icon_state = "cshotgun" problist = list( /obj/item/gun/projectile/shotgun/pump = 3, /obj/item/gun/projectile/automatic/wt550 = 2, /obj/item/gun/projectile/shotgun/pump/combat = 1 ) /obj/random/handgun name = "Random Handgun" desc = "This is a random security sidearm." icon = 'icons/obj/guns/secgun.dmi' icon_state = "secgun" problist = list( /obj/item/gun/projectile/sec = 3, /obj/item/gun/projectile/sec/wood = 1 ) /obj/random/ammo name = "Random Ammunition" desc = "This is random ammunition." icon = 'icons/obj/ammo.dmi' icon_state = "45-10" problist = list( /obj/item/storage/box/beanbags = 6, /obj/item/storage/box/shotgunammo = 2, /obj/item/storage/box/shotgunshells = 4, /obj/item/storage/box/stunshells = 1, /obj/item/ammo_magazine/c45m = 2, /obj/item/ammo_magazine/c45m/rubber = 4, /obj/item/ammo_magazine/c45m/flash = 4, /obj/item/ammo_magazine/mc9mmt = 2, /obj/item/ammo_magazine/mc9mmt/rubber = 6 ) /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/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/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/belt name = "random belt" problist = list( /obj/item/storage/belt/utility = 1, /obj/item/storage/belt/medical = 0.4, /obj/item/storage/belt/medical/first_responder = 0.4, /obj/item/storage/belt/security/tactical = 0.1, /obj/item/storage/belt/military = 0.1, /obj/item/storage/belt/janitor = 0.4 ) // Spawns a random backpack. // Novelty and rare backpacks have lower weights. /obj/random/backpack name = "random backpack" problist = list( /obj/item/storage/backpack = 3, /obj/item/storage/backpack/holding = 0.5, /obj/item/storage/backpack/cultpack = 2, /obj/item/storage/backpack/clown = 2, /obj/item/storage/backpack/medic = 3, /obj/item/storage/backpack/security = 3, /obj/item/storage/backpack/captain = 2, /obj/item/storage/backpack/industrial = 3, /obj/item/storage/backpack/toxins = 3, /obj/item/storage/backpack/hydroponics = 3, /obj/item/storage/backpack/genetics = 3, /obj/item/storage/backpack/virology = 3, /obj/item/storage/backpack/pharmacy = 3, /obj/item/storage/backpack/cloak = 2, /obj/item/storage/backpack/syndie = 1, /obj/item/storage/backpack/wizard = 1, /obj/item/storage/backpack/satchel = 3, /obj/item/storage/backpack/satchel_norm = 3, /obj/item/storage/backpack/satchel_eng = 3, /obj/item/storage/backpack/satchel_med = 3, /obj/item/storage/backpack/satchel_vir = 3, /obj/item/storage/backpack/satchel_pharm = 3, /obj/item/storage/backpack/satchel_gen = 3, /obj/item/storage/backpack/satchel_tox = 3, /obj/item/storage/backpack/satchel_sec = 3, /obj/item/storage/backpack/satchel_hyd = 3, /obj/item/storage/backpack/satchel_cap = 1, /obj/item/storage/backpack/satchel_syndie = 1, /obj/item/storage/backpack/satchel_wizard = 1, /obj/item/storage/backpack/ert = 1, /obj/item/storage/backpack/ert/security = 1, /obj/item/storage/backpack/ert/engineer = 1, /obj/item/storage/backpack/ert/medical = 1, /obj/item/storage/backpack/duffel = 3, /obj/item/storage/backpack/duffel/cap = 1, /obj/item/storage/backpack/duffel/hyd = 3, /obj/item/storage/backpack/duffel/vir = 3, /obj/item/storage/backpack/duffel/med = 3, /obj/item/storage/backpack/duffel/eng = 3, /obj/item/storage/backpack/duffel/tox = 3, /obj/item/storage/backpack/duffel/sec = 3, /obj/item/storage/backpack/duffel/gen = 3, /obj/item/storage/backpack/duffel/pharm = 3, /obj/item/storage/backpack/duffel/syndie = 1, /obj/item/storage/backpack/duffel/wizard = 1, /obj/item/storage/backpack/messenger = 2, /obj/item/storage/backpack/messenger/pharm = 2, /obj/item/storage/backpack/messenger/med = 2, /obj/item/storage/backpack/messenger/viro = 2, /obj/item/storage/backpack/messenger/tox = 2, /obj/item/storage/backpack/messenger/gen = 2, /obj/item/storage/backpack/messenger/com = 1, /obj/item/storage/backpack/messenger/engi = 2, /obj/item/storage/backpack/messenger/hyd = 2, /obj/item/storage/backpack/messenger/sec = 2, /obj/item/storage/backpack/messenger/syndie = 1, /obj/item/storage/backpack/messenger/wizard = 1 ) /obj/random/voidsuit name = "random voidsuit" var/damaged = 0 var/list/suitmap = list( /obj/item/clothing/suit/space/void = /obj/item/clothing/head/helmet/space/void, /obj/item/clothing/suit/space/void/engineering = /obj/item/clothing/head/helmet/space/void/engineering, /obj/item/clothing/suit/space/void/mining = /obj/item/clothing/head/helmet/space/void/mining, /obj/item/clothing/suit/space/void/medical = /obj/item/clothing/head/helmet/space/void/medical, /obj/item/clothing/suit/space/void/security = /obj/item/clothing/head/helmet/space/void/security, /obj/item/clothing/suit/space/void/atmos = /obj/item/clothing/head/helmet/space/void/atmos, /obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc, /obj/item/clothing/suit/space/void/captain = /obj/item/clothing/head/helmet/space/void/captain, /obj/item/clothing/suit/space/void/cruiser = /obj/item/clothing/head/helmet/space/void/cruiser, /obj/item/clothing/suit/space/void/coalition = /obj/item/clothing/head/helmet/space/void/coalition, /obj/item/clothing/suit/space/void/hos = /obj/item/clothing/head/helmet/space/void/hos, /obj/item/clothing/suit/space/void/lancer = /obj/item/clothing/head/helmet/space/void/lancer, /obj/item/clothing/suit/space/void/sci = /obj/item/clothing/head/helmet/space/void/sci, /obj/item/clothing/suit/space/void/sol = /obj/item/clothing/head/helmet/space/void/sol, /obj/item/clothing/suit/space/void/hephaestus = /obj/item/clothing/head/helmet/space/void/hephaestus, /obj/item/clothing/suit/space/void/zenghu = /obj/item/clothing/head/helmet/space/void/zenghu, /obj/item/clothing/suit/space/void/einstein = /obj/item/clothing/head/helmet/space/void/einstein, /obj/item/clothing/suit/space/void/zavodskoi = /obj/item/clothing/head/helmet/space/void/zavodskoi ) problist = list( /obj/item/clothing/suit/space/void = 2, /obj/item/clothing/suit/space/void/engineering = 2, /obj/item/clothing/suit/space/void/mining = 2, /obj/item/clothing/suit/space/void/medical = 2.3, /obj/item/clothing/suit/space/void/security = 1, /obj/item/clothing/suit/space/void/atmos = 1.5, /obj/item/clothing/suit/space/void/merc = 0.5, /obj/item/clothing/suit/space/void/captain = 0.3, /obj/item/clothing/suit/space/void/cruiser = 0.5, /obj/item/clothing/suit/space/void/coalition = 1, /obj/item/clothing/suit/space/void/hos = 0.3, /obj/item/clothing/suit/space/void/lancer = 0.3, /obj/item/clothing/suit/space/void/sci = 2, /obj/item/clothing/suit/space/void/sol = 0.5, /obj/item/clothing/suit/space/void/zavodskoi = 0.5, /obj/item/clothing/suit/space/void/einstein = 0.5, /obj/item/clothing/suit/space/void/hephaestus = 0.5, /obj/item/clothing/suit/space/void/zenghu = 0.5 ) has_postspawn = TRUE /obj/random/voidsuit/no_nanotrasen suitmap = list( /obj/item/clothing/suit/space/void = /obj/item/clothing/head/helmet/space/void, /obj/item/clothing/suit/space/void/merc = /obj/item/clothing/head/helmet/space/void/merc, /obj/item/clothing/suit/space/void/cruiser = /obj/item/clothing/head/helmet/space/void/cruiser, /obj/item/clothing/suit/space/void/coalition = /obj/item/clothing/head/helmet/space/void/coalition, /obj/item/clothing/suit/space/void/lancer = /obj/item/clothing/head/helmet/space/void/lancer, /obj/item/clothing/suit/space/void/sol = /obj/item/clothing/head/helmet/space/void/sol, /obj/item/clothing/suit/space/void/hephaestus = /obj/item/clothing/head/helmet/space/void/hephaestus, /obj/item/clothing/suit/space/void/zenghu = /obj/item/clothing/head/helmet/space/void/zenghu, /obj/item/clothing/suit/space/void/einstein = /obj/item/clothing/head/helmet/space/void/einstein, /obj/item/clothing/suit/space/void/zavodskoi = /obj/item/clothing/head/helmet/space/void/zavodskoi ) problist = list( /obj/item/clothing/suit/space/void = 2, /obj/item/clothing/suit/space/void/merc = 0.5, /obj/item/clothing/suit/space/void/cruiser = 0.5, /obj/item/clothing/suit/space/void/coalition = 1, /obj/item/clothing/suit/space/void/lancer = 0.3, /obj/item/clothing/suit/space/void/sol = 0.5, /obj/item/clothing/suit/space/void/zavodskoi = 0.5, /obj/item/clothing/suit/space/void/einstein = 0.5, /obj/item/clothing/suit/space/void/hephaestus = 0.5, /obj/item/clothing/suit/space/void/zenghu = 0.5 ) /obj/random/voidsuit/Initialize(mapload, _damaged = 0) damaged = _damaged . = ..(mapload) /obj/random/voidsuit/post_spawn(obj/item/clothing/suit/space/suit) var/helmet = suitmap[suit.type] if (helmet) new helmet(loc) else log_debug("random_obj (voidsuit): Type [suit.type] was unable to spawn a matching helmet!") new /obj/item/clothing/shoes/magboots(loc) if (damaged && prob(60)) suit.create_breaches(pick(BRUTE, BURN), rand(1, 5)) /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/magivend = 0.5, //The things it dispenses are just costumes to non-wizards /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/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/booze name = "random alcoholic drink" desc = "This is a random alcoholic drink." icon = 'icons/obj/drinks.dmi' icon_state = "broken_bottle" spawnlist = list( /obj/item/reagent_containers/food/drinks/bottle/gin, /obj/item/reagent_containers/food/drinks/bottle/whiskey, /obj/item/reagent_containers/food/drinks/bottle/vodka, /obj/item/reagent_containers/food/drinks/bottle/tequila, /obj/item/reagent_containers/food/drinks/bottle/bottleofnothing, /obj/item/reagent_containers/food/drinks/bottle/rum, /obj/item/reagent_containers/food/drinks/bottle/champagne, /obj/item/reagent_containers/food/drinks/bottle/vermouth, /obj/item/reagent_containers/food/drinks/bottle/kahlua, /obj/item/reagent_containers/food/drinks/bottle/cognac, /obj/item/reagent_containers/food/drinks/bottle/wine, /obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/item/reagent_containers/food/drinks/bottle/melonliquor, /obj/item/reagent_containers/food/drinks/bottle/pwine, /obj/item/reagent_containers/food/drinks/bottle/brandy, /obj/item/reagent_containers/food/drinks/bottle/guinness, /obj/item/reagent_containers/food/drinks/bottle/drambuie, /obj/item/reagent_containers/food/drinks/bottle/cremeyvette, /obj/item/reagent_containers/food/drinks/bottle/cremewhite, /obj/item/reagent_containers/food/drinks/bottle/chartreuseyellow, /obj/item/reagent_containers/food/drinks/bottle/chartreusegreen, /obj/item/reagent_containers/food/drinks/bottle/grenadine, /obj/item/reagent_containers/food/drinks/bottle/bluecuracao, /obj/item/reagent_containers/food/drinks/bottle/bitters, /obj/item/reagent_containers/food/drinks/bottle/champagne, /obj/item/reagent_containers/food/drinks/bottle/mintsyrup, /obj/item/reagent_containers/food/drinks/bottle/sarezhiwine, /obj/item/reagent_containers/food/drinks/bottle/small/beer, /obj/item/reagent_containers/food/drinks/bottle/small/ale, /obj/item/reagent_containers/food/drinks/bottle/small/xuizijuice ) /obj/random/melee name = "random melee weapon" desc = "This is a random melee weapon." icon = 'icons/obj/weapons.dmi' icon_state = "baton" spawnlist = list( /obj/item/melee/telebaton, /obj/item/melee/energy/sword, /obj/item/melee/energy/sword/pirate, /obj/item/melee/energy/glaive, /obj/item/melee/chainsword, /obj/item/melee/baton/stunrod, /obj/item/material/harpoon, /obj/random/sword, /obj/item/melee/hammer, /obj/item/melee/hammer/powered, /obj/item/material/twohanded/fireaxe, /obj/item/melee/classic_baton, /obj/item/material/twohanded/pike, /obj/item/material/twohanded/pike/halberd, /obj/item/material/twohanded/pike/pitchfork, /obj/item/melee/whip, /obj/item/clothing/accessory/storage/bayonet ) /obj/random/coin name = "random coin" desc = "This is a random coin." icon = 'icons/obj/coins.dmi' icon_state = "coin__heads" problist = list( /obj/item/coin/iron = 5, /obj/item/coin/silver = 3, /obj/item/coin/gold = 0.7, /obj/item/coin/phoron = 0.5, /obj/item/coin/uranium = 0.5, /obj/item/coin/platinum = 0.2, /obj/item/coin/diamond = 0.1 ) /obj/random/spacecash name = "random credit chips" desc = "This is a random credit chip." icon = 'icons/obj/cash.dmi' icon_state = "spacecash1" problist = list( /obj/item/spacecash/c1 = 6, /obj/item/spacecash/c10 = 3, /obj/item/spacecash/c20 = 2, /obj/item/spacecash/c50 = 1, /obj/item/spacecash/c100 = 0.3, /obj/item/spacecash/c200 = 0.2, /obj/item/spacecash/c1000 = 0.1 ) /obj/random/energy_antag name = "random energy weapon" desc = "This is a random energy weapon." icon = 'icons/obj/guns/retro.dmi' icon_state = "retro100" spawnlist = list( /obj/item/gun/energy/retro, /obj/item/gun/energy/xray, /obj/item/gun/energy/gun, /obj/item/gun/energy/pistol, /obj/item/gun/energy/mindflayer, /obj/item/gun/energy/toxgun, /obj/item/gun/energy/vaurca/gatlinglaser, /obj/item/gun/energy/vaurca/blaster, /obj/item/gun/energy/crossbow/largecrossbow, /obj/item/gun/energy/rifle, /obj/item/gun/energy/rifle/laser, /obj/item/gun/energy/rifle/laser/heavy, /obj/item/gun/energy/rifle/laser/xray, /obj/item/gun/energy/net, /obj/item/gun/energy/laser/shotgun, /obj/item/gun/energy/decloner, /obj/item/gun/energy/freeze ) /obj/random/colored_jumpsuit name = "random colored jumpsuit" desc = "This is a random colored jumpsuit." icon = 'icons/obj/clothing/uniforms.dmi' icon_state = "black" spawnlist = list( /obj/item/clothing/under/color/black, /obj/item/clothing/under/color/blue, /obj/item/clothing/under/color/green, /obj/item/clothing/under/color/grey, /obj/item/clothing/under/color/orange, /obj/item/clothing/under/color/pink, /obj/item/clothing/under/color/red, /obj/item/clothing/under/color/white, /obj/item/clothing/under/color/yellow, /obj/item/clothing/under/lightblue, /obj/item/clothing/under/aqua, /obj/item/clothing/under/purple, /obj/item/clothing/under/lightpurple, /obj/item/clothing/under/lightgreen, /obj/item/clothing/under/lightbrown, /obj/item/clothing/under/brown, /obj/item/clothing/under/yellowgreen, /obj/item/clothing/under/darkblue, /obj/item/clothing/under/lightred, /obj/item/clothing/under/darkred ) /obj/random/loot name = "random maintenance loot items" desc = "Stuff for the maint-dwellers." icon = 'icons/obj/items.dmi' icon_state = "gift3" problist = list( /obj/item/assembly/shock_kit = 0.1, /obj/item/bluespace_crystal/artificial = 0.1, /obj/item/bodybag = 0.7, /obj/item/clothing/accessory/storage/knifeharness = 0.3, /obj/item/clothing/accessory/storage/webbing = 0.6, /obj/item/clothing/glasses/sunglasses = 0.75, /obj/item/clothing/glasses/welding = 0.75, /obj/item/clothing/head/bearpelt = 0.4, /obj/item/clothing/head/collectable/petehat = 0.1, /obj/item/clothing/head/cueball = 0.25, /obj/item/clothing/head/hardhat = 1.2, /obj/item/clothing/head/helmet/augment = 0.1, /obj/item/clothing/head/pirate = 0.2, /obj/item/clothing/head/plaguedoctorhat = 0.3, /obj/item/clothing/head/pumpkin/lantern = 0.4, /obj/item/clothing/head/redcoat = 0.2, /obj/item/clothing/head/richard = 0.3, /obj/item/clothing/head/softcap/rainbow = 0.7, /obj/item/clothing/head/syndicatefake = 0.5, /obj/item/clothing/head/ushanka = 0.3, /obj/item/clothing/head/witchwig = 0.5, /obj/item/clothing/mask/balaclava = 0.75, /obj/item/clothing/mask/fakemoustache = 0.4, /obj/item/clothing/mask/gas = 1.25, /obj/item/clothing/mask/gas/clown_hat = 0.1, /obj/item/clothing/mask/gas/cyborg = 0.7, /obj/item/clothing/mask/gas/mime = 0.1, /obj/item/clothing/mask/gas/old = 0.75, /obj/item/clothing/mask/gas/owl_mask = 0.5, /obj/item/clothing/mask/gas/syndicate = 0.4, /obj/item/clothing/mask/horsehead = 0.5, /obj/item/clothing/mask/luchador = 0.1, /obj/item/clothing/mask/luchador/rudos = 0.1, /obj/item/clothing/mask/luchador/tecnicos = 0.1, /obj/item/clothing/mask/muzzle = 0.2, /obj/item/clothing/mask/pig = 0.3, /obj/item/clothing/mask/smokable/cigarette/cigar/cohiba = 0.7, /obj/item/clothing/mask/smokable/pipe/cobpipe = 0.5, /obj/item/clothing/shoes/carp = 0.5, /obj/item/clothing/shoes/clown_shoes = 0.1, /obj/item/clothing/shoes/combat = 0.2, /obj/item/clothing/shoes/cyborg = 0.4, /obj/item/clothing/shoes/galoshes = 0.6, /obj/item/clothing/shoes/jackboots = 0.5, /obj/item/clothing/shoes/rainbow = 0.5, /obj/item/clothing/shoes/slippers_worn = 0.5, /obj/item/clothing/shoes/winter = 0.3, /obj/item/clothing/shoes/workboots = 0.75, /obj/item/clothing/suit/ianshirt = 0.5, /obj/item/clothing/suit/imperium_monk = 0.4, /obj/item/clothing/suit/storage/hazardvest = 0.75, /obj/item/clothing/suit/storage/toggle/leather_jacket/nanotrasen = 0.7, /obj/item/clothing/suit/storage/vest = 0.2, /obj/item/clothing/suit/syndicatefake = 0.6, /obj/item/clothing/under/mime = 0.1, /obj/item/clothing/under/overalls = 1, /obj/item/clothing/under/rainbow = 0.9, /obj/item/clothing/under/rank/clown = 0.1, /obj/item/clothing/under/syndicate/tacticool = 0.4, /obj/item/clothing/under/syndicate/tracksuit = 0.2, /obj/item/device/firing_pin = 0.3, /obj/item/device/firing_pin/clown = 0.01, /obj/item/device/flashlight = 1, /obj/item/device/flashlight/flare = 0.5, /obj/item/device/flashlight/heavy = 0.5, /obj/item/device/flashlight/lantern = 0.4, /obj/item/device/flashlight/maglight = 0.4, /obj/item/device/floor_painter = 0.6, /obj/item/device/gps/engineering = 0.6, /obj/item/device/kinetic_analyzer = 0.1, /obj/item/device/laser_pointer/purple = 0.1, /obj/item/device/light_meter = 0.1, /obj/item/device/magnetic_lock/engineering = 0.3, /obj/item/device/magnetic_lock/keypad = 0.1, /obj/item/device/magnetic_lock/security = 0.3, /obj/item/device/megaphone = 0.3, /obj/item/device/price_scanner = 0.1, /obj/item/device/taperecorder = 0.6, /obj/item/device/uv_light = 0.1, /obj/item/device/wormhole_jaunter = 0.1, /obj/item/inflatable/door/ = 0.1, /obj/item/seeds/random = 0.25, /obj/item/stack/material/bronze{amount=10}, /obj/item/banhammer = 0.05, /obj/item/clothing/head/cone = 0.7, /obj/item/contraband/poster = 1.3, /obj/item/extinguisher = 1.3, /obj/item/extinguisher/mini = 0.9, /obj/item/flag/america = 0.1, /obj/item/flag/america/l = 0.1, /obj/item/flame/lighter = 0.9, /obj/item/flame/lighter/zippo = 0.7, /obj/item/grenade/chem_grenade/cleaner = 0.1, /obj/item/grenade/smokebomb = 0.05, //We /tg/ now. /obj/item/haircomb = 0.5, /obj/item/inflatable_duck = 0.2, /obj/item/lipstick = 0.6, /obj/item/material/hook = 0.3, /obj/item/material/knife/tacknife = 0.4, /obj/item/mesmetron = 0.1, /obj/item/pickaxe = 0.4, /obj/item/razor = 0.5, /obj/item/reagent_containers/extinguisher_refill = 0.1, /obj/item/reagent_containers/extinguisher_refill/filled = 0.5, /obj/item/reagent_containers/food/drinks/flask/lithium = 0.3, /obj/item/reagent_containers/food/drinks/flask/shiny = 0.3, /obj/item/reagent_containers/food/drinks/teapot = 0.4, /obj/item/reagent_containers/cooking_container/plate/bowl = 0.8, /obj/item/reagent_containers/inhaler/hyperzine = 0.1, /obj/item/reagent_containers/spray/cleaner = 0.6, /obj/item/reagent_containers/spray/sterilizine = 0.4, /obj/item/reagent_containers/spray/waterflower = 0.2, /obj/item/shovel = 0.5, /obj/item/spacecash/ewallet/lotto = 0.3, /obj/item/staff/broom = 0.5, /obj/item/storage/bag/plasticbag = 1, /obj/item/storage/box/condimentbottles = 0.2, /obj/item/storage/box/donkpockets = 0.6, /obj/item/storage/box/drinkingglasses = 0.2, /obj/item/storage/box/lights = 0.5, /obj/item/storage/box/lights/colored/blue = 0.1, /obj/item/storage/box/lights/colored/cyan = 0.1, /obj/item/storage/box/lights/colored/green = 0.1, /obj/item/storage/box/lights/colored/magenta = 0.1, /obj/item/storage/box/lights/colored/red = 0.1, /obj/item/storage/box/lights/colored/yellow = 0.1, /obj/item/storage/box/lights/coloredmixed = 0.2, /obj/item/storage/box/masks = 0.5, /obj/item/storage/box/mousetraps = 0.3, /obj/item/storage/box/pineapple = 0.1, /obj/item/storage/box/smokebombs = 0.1, /obj/item/storage/box/syringes = 0.3, /obj/item/storage/box/fancy/cigarettes = 1.2, /obj/item/storage/box/fancy/cigarettes/acmeco = 0.3, /obj/item/storage/box/fancy/cigarettes/blank = 1, /obj/item/storage/box/fancy/cigarettes/dromedaryco = 0.8, /obj/item/storage/box/fancy/crayons = 0.5, /obj/item/storage/wallet/random/ = 0.1, /obj/item/trap/animal = 0.8, /obj/random/arcade = 0.25, /obj/random/backpack = 0.7, /obj/random/belt = 0.9, /obj/random/booze = 1.1, /obj/random/chameleon = 0.5, /obj/random/coin = 1.2, /obj/random/colored_jumpsuit = 0.7, /obj/random/contraband = 0.9, /obj/random/firstaid = 0.4, /obj/random/gloves = 2, /obj/random/glowstick = 0.4, /obj/random/hoodie = 0.5, /obj/random/bandana = 0.5, /obj/random/softcap = 0.5, /obj/random/beret = 0.5, /obj/random/junk = 0.4, /obj/random/medical = 0.4, /obj/random/powercell = 0.8, /obj/random/smalltank = 0.5, /obj/random/soap = 0.5, /obj/random/spacecash = 0.3, /obj/random/tech_supply = 1.2, /obj/random/technology_scanner = 1, /obj/random/tool = 1, /obj/random/toolbox = 1, /obj/random_produce = 0.25, /obj/random/watches = 1 ) /obj/random/chameleon name = "random possible chameleon item" desc = "A random possible chameleon item. What could possibly go wrong?" icon = 'icons/obj/clothing/gloves.dmi' icon_state = "yellow" problist = list( /obj/item/clothing/gloves/chameleon = 1, /obj/item/clothing/gloves/black = 10, /obj/item/clothing/head/chameleon = 0.5, /obj/item/clothing/head/softcap = 5, /obj/item/clothing/mask/chameleon = 1, /obj/item/clothing/mask/gas = 10, /obj/item/clothing/shoes/chameleon = 0.5, /obj/item/clothing/shoes/black = 5, /obj/item/clothing/suit/chameleon = 0.1, /obj/item/clothing/suit/armor/vest = 1, /obj/item/clothing/under/chameleon = 0.75, /obj/item/clothing/under/color/black = 7.5, /obj/item/gun/energy/chameleon = 0.1, /obj/item/gun/bang/deagle = 0.1, /obj/item/storage/backpack/chameleon = 1, /obj/item/storage/backpack = 10, /obj/item/clothing/glasses/chameleon = 1 ) /obj/random/gloves name = "random gloves" desc = "Random gloves, assorted usefulness." icon = 'icons/obj/clothing/gloves.dmi' icon_state = "yellow" problist = list( /obj/item/clothing/gloves/black = 1, /obj/item/clothing/gloves/black_leather = 0.5, /obj/item/clothing/gloves/botanic_leather = 0.7, /obj/item/clothing/gloves/boxing = 0.3, /obj/item/clothing/gloves/boxing/green = 0.3, /obj/item/clothing/gloves/captain = 0.1, /obj/item/clothing/gloves/combat = 0.2, /obj/item/clothing/gloves/fyellow = 1.2, /obj/item/clothing/gloves/latex = 0.5, /obj/item/clothing/gloves/latex/nitrile = 0.4, /obj/item/clothing/gloves/yellow = 0.9 ) /obj/random/watches name = "random watches" desc = "Random watches, probably able to tell the time." icon = 'icons/obj/clothing/gloves.dmi' icon_state = "watch" problist = list( /obj/item/clothing/wrists/watch = 1, /obj/item/clothing/wrists/watch/silver = 0.7, /obj/item/clothing/wrists/watch/gold = 0.5, /obj/item/clothing/wrists/watch/spy = 0.3, ) /obj/random/hoodie name = "random winter coat" desc = "This is a random winter coat." icon = 'icons/obj/hoodies.dmi' icon_state = "coatwinter" problist = list( /obj/item/clothing/suit/storage/hooded/wintercoat = 5, /obj/item/clothing/suit/storage/hooded/wintercoat/engineering = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/engineering/atmos = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/medical = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/science = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/hydro = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/cargo = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/miner = 3, /obj/item/clothing/suit/storage/hooded/wintercoat/security = 2, /obj/item/clothing/suit/storage/hooded/wintercoat/captain = 1 ) /obj/random/bandana name = "random bandana" desc = "This is a random bandana." icon = 'icons/obj/clothing/hats/bandanas.dmi' icon_state = "bandana" problist = list( /obj/item/clothing/head/bandana/colorable/random = 5, /obj/item/clothing/head/bandana/engineering = 3, /obj/item/clothing/head/bandana/atmos = 3, /obj/item/clothing/head/bandana/medical = 3, /obj/item/clothing/head/bandana/science = 3, /obj/item/clothing/head/bandana/hydro = 3, /obj/item/clothing/head/bandana/cargo = 3, /obj/item/clothing/head/bandana/miner = 3, /obj/item/clothing/head/bandana/security = 2, /obj/item/clothing/head/bandana/captain = 1 ) /obj/random/softcap name = "random softcap" desc = "This is a random softcap." icon = 'icons/obj/clothing/hats/soft_caps.dmi' icon_state = "softcap" problist = list( /obj/item/clothing/head/softcap/colorable/random = 5, /obj/item/clothing/head/softcap/engineering = 3, /obj/item/clothing/head/softcap/atmos = 3, /obj/item/clothing/head/softcap/medical = 3, /obj/item/clothing/head/softcap/science = 3, /obj/item/clothing/head/softcap/hydro = 3, /obj/item/clothing/head/softcap/cargo = 3, /obj/item/clothing/head/softcap/miner = 3, /obj/item/clothing/head/softcap/security = 2, /obj/item/clothing/head/softcap/captain = 1 ) /obj/random/beret name = "random beret" desc = "This is a random beret." icon = 'icons/obj/clothing/hats/berets.dmi' icon_state = "beret" problist = list( /obj/item/clothing/head/beret/colorable/random = 5, /obj/item/clothing/head/beret/engineering = 3, /obj/item/clothing/head/beret/atmos = 3, /obj/item/clothing/head/beret/medical = 3, /obj/item/clothing/head/beret/science = 3, /obj/item/clothing/head/beret/hydro = 3, /obj/item/clothing/head/beret/cargo = 3, /obj/item/clothing/head/beret/miner = 3, /obj/item/clothing/head/beret/security = 2, /obj/item/clothing/head/beret/captain = 1 ) /obj/random/highvalue name = "random high valuable item" desc = "This is a random high valuable item." icon = 'icons/obj/coins.dmi' icon_state = "coin_diamond_heads" problist = list( /obj/item/bluespace_crystal = 5, /obj/item/stack/telecrystal{amount = 10} = 5, /obj/item/clothing/suit/armor/reactive = 0.5, /obj/item/clothing/glasses/thermal = 0.5, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.5, /obj/random/sword = 0.5, /obj/item/gun/energy/lawgiver = 0.5, /obj/item/melee/energy/axe = 0.5, /obj/item/gun/projectile/automatic/terminator = 0.5, /obj/item/rig/military = 0.5, /obj/item/rig/unathi/fancy = 0.5, /obj/item/rig/vaurca/minimal = 0.5, /obj/item/anomaly_core = 0.5 ) /obj/random/highvalue/no_crystal problist = list( /obj/item/clothing/suit/armor/reactive = 0.5, /obj/item/clothing/glasses/thermal = 0.5, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.5, /obj/random/sword = 0.5, /obj/item/gun/energy/lawgiver = 0.5, /obj/item/melee/energy/axe = 0.5, /obj/item/gun/projectile/automatic/terminator = 0.5, /obj/item/rig/military = 0.5, /obj/item/rig/unathi/fancy = 0.5, /obj/item/rig/vaurca/minimal = 0.5, /obj/item/anomaly_core = 0.5 ) /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 ) //Sometimes the chef will have spare oil in storage. //Sometimes they wont, and will need to order it from cargo //Variety is the spice of life! /obj/random/cookingoil name = "random cooking oil" desc = "Has a 50% chance of spawning a tank of cooking oil, otherwise nothing" icon = 'icons/obj/reagent_dispensers.dmi' icon_state = "oiltank" spawn_nothing_percentage = 50 spawnlist = list( /obj/structure/reagent_dispensers/cookingoil ) /obj/random/sword name = "random sword" desc = "This is a random sword." icon = 'icons/obj/weapons.dmi' icon_state = "claymore" spawnlist = list( /obj/item/material/sword, /obj/item/material/sword/katana, /obj/item/material/sword/rapier, /obj/item/material/sword/longsword, /obj/item/material/sword/sabre, /obj/item/material/sword/axe, /obj/item/material/sword/khopesh, /obj/item/material/sword/dao, /obj/item/material/sword/gladius ) /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/prize/ripley = 1, /obj/item/toy/prize/fireripley = 1, /obj/item/toy/prize/deathripley = 1, /obj/item/toy/prize/gygax = 1, /obj/item/toy/prize/durand = 1, /obj/item/toy/prize/honk = 1, /obj/item/toy/prize/marauder = 1, /obj/item/toy/prize/seraph = 1, /obj/item/toy/prize/mauler = 1, /obj/item/toy/prize/odysseus = 1, /obj/item/toy/prize/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/clown_hat = 11, /obj/item/clothing/mask/gas/mime = 11, /obj/item/clothing/shoes/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/custom_ka name = "random custom kinetic accelerator" desc = "Contains random assemblies. The parts may not always be compatible with eachother." icon = 'icons/obj/kinetic_accelerators.dmi' icon_state = "frame01" spawnlist = list( /obj/item/toy/prize/honk ) has_postspawn = TRUE post_spawn(obj/thing) var/list/frames = list( /obj/item/gun/custom_ka/frame01 = 1, /obj/item/gun/custom_ka/frame02 = 2, /obj/item/gun/custom_ka/frame03 = 3, /obj/item/gun/custom_ka/frame04 = 2, /obj/item/gun/custom_ka/frame05 = 1 ) var/list/cells = list( /obj/item/custom_ka_upgrade/cells/cell01 = 2, /obj/item/custom_ka_upgrade/cells/cell02 = 3, /obj/item/custom_ka_upgrade/cells/cell03 = 2, /obj/item/custom_ka_upgrade/cells/cell04 = 1, /obj/item/custom_ka_upgrade/cells/cell05 = 1 ) var/list/barrels = list( /obj/item/custom_ka_upgrade/barrels/barrel01 = 2, /obj/item/custom_ka_upgrade/barrels/barrel02 = 3, /obj/item/custom_ka_upgrade/barrels/barrel03 = 2, /obj/item/custom_ka_upgrade/barrels/barrel04 = 1, /obj/item/custom_ka_upgrade/barrels/barrel05 = 1 ) var/frame_type = pickweight(frames) var/obj/item/gun/custom_ka/spawned_frame = new frame_type(thing.loc) var/cell_type = pickweight(cells) spawned_frame.installed_cell = new cell_type(spawned_frame) var/barrel_type = pickweight(barrels) spawned_frame.installed_barrel = new barrel_type(spawned_frame) spawned_frame.installed_upgrade_chip = new /obj/item/custom_ka_upgrade/upgrade_chips/capacity(spawned_frame) spawned_frame.update_icon() spawned_frame.update_stats() qdel(thing) /obj/random/prebuilt_ka name = "random prebuilt kinetic accelerator" desc = "Contains working kinetic accelerators that were prebuilt in code." icon = 'icons/obj/kinetic_accelerators.dmi' icon_state = "frameA" spawnlist = list( /obj/item/gun/custom_ka/frame01/prebuilt = 2.5, /obj/item/gun/custom_ka/frame02/prebuilt = 5, /obj/item/gun/custom_ka/frame03/prebuilt = 10, /obj/item/gun/custom_ka/frame04/prebuilt = 5, /obj/item/gun/custom_ka/frame05/prebuilt = 2.5, /obj/item/gun/custom_ka/frameA/prebuilt = 1, /obj/item/gun/custom_ka/frameB/prebuilt = 1, /obj/item/gun/custom_ka/frameC/prebuilt = 1, /obj/item/gun/custom_ka/frameD/prebuilt = 1, /obj/item/gun/custom_ka/frameF/prebuilt01 = 1, /obj/item/gun/custom_ka/frameF/prebuilt02 = 1 ) /obj/random/vault_rig name = "random rigsuit" desc = "Contains a random rigsuit found in the vault." icon = 'icons/obj/rig_modules.dmi' icon_state = "breacher_rig" spawnlist = list( /obj/item/rig/ce = 1, /obj/item/rig/eva= 1, /obj/item/rig/hazard = 1, /obj/item/rig/hazmat = 1, /obj/item/rig/medical = 1, /obj/item/rig/industrial = 1 ) /obj/random/telecrystals name = "random telecrystals" desc = "Contains a random amount of telecrystals." icon = 'icons/obj/telescience.dmi' icon_state = "telecrystal" spawnlist = list( /obj/item/stack/telecrystal{amount = 5} = 0.7, /obj/item/stack/telecrystal{amount = 10} = 0.1, /obj/item/stack/telecrystal{amount = 15} = 0.2, ) /obj/random/bad_ai name = "random evil AI module" desc = "Contains a random evil AI module." icon = 'icons/obj/module.dmi' icon_state = "std_mod" spawnlist = list( /obj/item/aiModule/antimov = 1, /obj/item/aiModule/asimov = 1, /obj/item/aiModule/purge = 1, /obj/item/aiModule/quarantine = 1, /obj/item/aiModule/freeform = 1, /obj/item/aiModule/oneHuman = 0.5, /obj/item/aiModule/oxygen = 1 ) /obj/random/rig_module name = "random rig module" desc = "Contains a random rig module worthy of vault protection." icon = 'icons/obj/rig_modules.dmi' icon_state = "actuators" spawnlist = list( /obj/item/rig_module/actuators/combat = 1, /obj/item/rig_module/chem_dispenser/combat = 1, /obj/item/rig_module/chem_dispenser/injector = 1, /obj/item/rig_module/device/emag_hand = 1, /obj/item/rig_module/device/rfd_c = 1, /obj/item/rig_module/electrowarfare_suite = 0.5, /obj/item/rig_module/emp_shielding = 0.5, /obj/item/rig_module/fabricator/energy_net = 1, /obj/item/rig_module/fabricator = 0.5, /obj/item/rig_module/grenade_launcher = 0.5, /obj/item/rig_module/maneuvering_jets = 0.5, /obj/item/rig_module/mounted/egun = 1, /obj/item/rig_module/mounted/smg = 0.5, /obj/item/rig_module/vision/multi = 0.5 ) /obj/random/finances name = "random valued item" desc = "Contains raw valued items like phoron, gold, and money." spawnlist = list( /obj/item/spacecash/bundle{worth = 5000} = 0.25, /obj/item/spacecash/bundle{worth = 10000} = 0.5, /obj/item/spacecash/bundle{worth = 25000} = 0.25, /obj/item/stack/material/phoron{amount = 50} = 1, /obj/item/stack/material/gold{amount = 50} = 1 ) has_postspawn = TRUE /obj/random/finances/post_spawn(var/obj/item/spawned) spawned.update_icon() /obj/random/vault_weapon name = "random vault weapon" desc = "This is a random vault weapon." icon = 'icons/obj/guns/caplaser.dmi' icon_state = "caplaser" spawnlist = list( /obj/item/gun/custom_ka/frameA/prebuilt = 1, /obj/item/gun/custom_ka/frameB/prebuilt = 0.5, /obj/item/gun/custom_ka/frameC/prebuilt = 0.25, /obj/item/gun/custom_ka/frameD/prebuilt = 0.125, /obj/item/gun/custom_ka/frameF/prebuilt01 = 0.03125, /obj/item/gun/custom_ka/frameF/prebuilt02 = 0.03125, /obj/item/gun/custom_ka/frameE/prebuilt = 0.03125, /obj/item/gun/energy/captain/xenoarch = 0.5, /obj/item/gun/energy/laser/xenoarch = 0.5, /obj/item/gun/energy/laser/practice/xenoarch = 0.25, /obj/item/gun/energy/xray/xenoarch = 0.25, /obj/item/gun/energy/net = 1 ) /obj/random/vault_weapon/post_spawn(var/obj/item/gun/spawned) spawned.name = "prototype [spawned.name]" if(istype(spawned,/obj/item/gun/custom_ka/)) var/obj/item/gun/custom_ka/KA = spawned KA.can_disassemble_barrel = FALSE KA.can_disassemble_cell = FALSE if(istype(spawned,/obj/item/gun/energy/)) var/obj/item/gun/energy/E = spawned E.charge_cost *= 2 E.self_recharge = 0 E.reliability = 90 /obj/random/animal_crate name = "random animal" desc = "Contains a random crate with some animal." icon = 'icons/obj/storage.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/jargon, /obj/item/flag/jargon/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/vaurca, /obj/item/flag/vaurca/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/obj/items.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/weapon_and_ammo name = "random weapon and ammo" desc = "Summons a random weapon, with ammo if applicable" icon = 'icons/obj/guns/xenoblaster.dmi' icon_state = "xenoblaster" var/chosen_rarity //Can be set to force certain rarity var/concealable = FALSE //If the gun should fit in a backpack has_postspawn = TRUE var/list/Shoddy = list( /obj/item/gun/energy/blaster = 1, /obj/item/gun/energy/retro = 0.5, /obj/item/gun/energy/toxgun = 0.5, /obj/item/gun/projectile/automatic/improvised = 1, /obj/item/gun/projectile/contender = 0.5, /obj/item/gun/projectile/leyon = 1, /obj/item/gun/projectile/revolver/derringer = 1, /obj/item/gun/projectile/shotgun/pump/rifle/obrez = 1, /obj/item/gun/projectile/shotgun/pump/rifle/vintage = 1, /obj/item/gun/launcher/harpoon = 1 ) var/list/Common = list( /obj/item/gun/energy/blaster/carbine = 1, /obj/item/gun/energy/crossbow/largecrossbow = 1, /obj/item/gun/energy/laser = 0.5, /obj/item/gun/energy/pistol = 1, /obj/item/gun/energy/rifle = 1, /obj/item/gun/projectile/automatic/c20r = 1, /obj/item/gun/projectile/automatic/mini_uzi = 1, /obj/item/gun/projectile/automatic/tommygun = 1, /obj/item/gun/projectile/automatic/wt550/lethal = 0.5, /obj/item/gun/projectile/colt = 0.5, /obj/item/gun/projectile/pistol/sol = 1, /obj/item/gun/projectile/pistol/adhomai = 1, /obj/item/gun/projectile/revolver/detective = 0.5, /obj/item/gun/projectile/revolver/adhomian = 1, /obj/item/gun/projectile/revolver/lemat = 1, /obj/item/gun/projectile/sec/lethal= 0.5, /obj/item/gun/projectile/shotgun/doublebarrel/pellet = 1, /obj/item/gun/projectile/shotgun/pump/rifle = 1, /obj/item/gun/projectile/tanto = 1, /obj/item/gun/projectile/gauss = 1, /obj/item/gun/projectile/revolver/knife = 1 ) var/list/Rare = list( /obj/item/gun/energy/blaster/revolver = 1, /obj/item/gun/energy/blaster/rifle = 1, /obj/item/gun/energy/pistol/hegemony = 1, /obj/item/gun/energy/rifle/laser = 1, /obj/item/gun/energy/rifle/icelance = 1, /obj/item/gun/energy/rifle/ionrifle = 0.5, /obj/item/gun/energy/vaurca/blaster = 1, /obj/item/gun/energy/xray = 1, /obj/item/gun/energy/lasercannon = 1, /obj/item/gun/projectile/automatic/rifle/sts35 = 1, /obj/item/gun/projectile/automatic/x9 = 1, /obj/item/gun/projectile/deagle = 1, /obj/item/gun/projectile/deagle/adhomai = 1, /obj/item/gun/projectile/silenced = 1, /obj/item/gun/projectile/dragunov = 1, /obj/item/gun/projectile/plasma/bolter = 0.5, /obj/item/gun/projectile/shotgun/doublebarrel/sawn = 1, /obj/item/gun/projectile/shotgun/foldable = 1, /obj/item/gun/projectile/shotgun/pump/combat = 1, /obj/item/gun/projectile/shotgun/pump/combat/sol = 1, /obj/item/gun/projectile/automatic/rifle/adhomian = 1, /obj/item/gun/projectile/musket = 0.5, /obj/item/gun/launcher/grenade = 1, /obj/item/gun/energy/freeze = 0.5 ) var/list/Epic = list( /obj/item/gun/energy/decloner = 0.5, /obj/item/gun/energy/rifle/laser/xray = 1, /obj/item/gun/energy/rifle/laser/tachyon = 1, /obj/item/gun/energy/sniperrifle = 1, /obj/item/gun/energy/tesla = 1, /obj/item/gun/energy/laser/shotgun = 1, /obj/item/gun/energy/vaurca/gatlinglaser = 1, /obj/item/gun/projectile/automatic/rifle/shotgun = 0.5, /obj/item/gun/projectile/automatic/rifle/sol = 1, /obj/item/gun/projectile/automatic/rifle/w556 = 1, /obj/item/gun/projectile/automatic/rifle/z8 = 1, /obj/item/gun/projectile/cannon = 1, /obj/item/gun/projectile/plasma = 0.5, /obj/item/gun/projectile/revolver = 0.5 ) var/list/Legendary = list( /obj/item/gun/energy/lawgiver = 1, /obj/item/gun/energy/pulse = 1, /obj/item/gun/energy/pulse/pistol = 1, /obj/item/gun/energy/rifle/pulse = 1, /obj/item/gun/projectile/automatic/railgun = 1, /obj/item/gun/projectile/automatic/rifle/l6_saw = 1, /obj/item/gun/projectile/automatic/terminator = 1, /obj/item/gun/projectile/gyropistol = 1, /obj/item/gun/projectile/nuke = 1, /obj/item/gun/projectile/revolver/mateba = 1 ) /obj/random/weapon_and_ammo/concealable concealable = TRUE /obj/random/weapon_and_ammo/post_spawn(var/obj/item/gun/projectile/spawned) if(istype(spawned, /obj/item/gun/energy)) return else if(istype(spawned, /obj/item/gun/projectile)) if(spawned.magazine_type) var/obj/item/ammo_magazine/am = spawned.magazine_type new am(spawned.loc) new am(spawned.loc) else if(istype(spawned, /obj/item/gun/projectile/shotgun) && spawned.caliber == "shotgun") if(istype(spawned.loc, /obj/item/storage/box)) spawned.loc.icon_state = "largebox" var/obj/item/storage/box/b = new /obj/item/storage/box(spawned.loc) for(var/i = 0; i < 8; i++) new spawned.ammo_type(b) else if(spawned.ammo_type) var/list/provided_ammo = list() for(var/i = 0; i < (spawned.max_shells * 2); i++) provided_ammo += new spawned.ammo_type(spawned.loc) if(provided_ammo.len) new /obj/item/ammo_pile(spawned.loc, provided_ammo) if(istype(spawned, /obj/item/gun/projectile/musket)) new /obj/item/reagent_containers/powder_horn(spawned.loc) else if(istype(spawned, /obj/item/gun/launcher)) if(istype(spawned, /obj/item/gun/launcher/harpoon)) for(var/i in 1 to 4) new /obj/item/material/harpoon(spawned.loc) if(istype(spawned, /obj/item/gun/launcher/grenade)) var/list/grenade_types = list( /obj/item/grenade/smokebomb, /obj/item/grenade/flashbang, /obj/item/grenade/empgrenade, /obj/item/grenade/chem_grenade/incendiary ) var/obj/item/storage/bag/plasticbag/bag = new /obj/item/storage/bag/plasticbag(spawned.loc) for(var/i in 1 to 7) var/chosen_type = pick(grenade_types) new chosen_type(bag) /obj/random/weapon_and_ammo/spawn_item() var/obj/item/W = pick_gun() . = new W(loc) /obj/random/weapon_and_ammo/proc/pick_gun() var/list/possible_rarities = list( "Shoddy" = 25, "Common" = 35, "Rare" = 25, "Epic" = 14, "Legendary" = 1 ) if(!chosen_rarity) chosen_rarity = pickweight(possible_rarities) var/obj/item/W switch(chosen_rarity) if("Shoddy") W = pickweight(Shoddy) if("Common") W = pickweight(Common) if("Rare") W = pickweight(Rare) if("Epic") W = pickweight(Epic) if("Legendary") W = pickweight(Legendary) if(concealable) var/weapon_w_class = initial(W.w_class) if(weapon_w_class > 3) chosen_rarity = null return pick_gun() return W /obj/random/keg name = "random alcohol keg" desc = "Contains a random alcohol keg." icon = 'icons/obj/reagent_dispensers.dmi' icon_state = "beertankTEMP" spawnlist = list( /obj/structure/reagent_dispensers/keg/beerkeg = 2, /obj/structure/reagent_dispensers/keg/xuizikeg = 0.5, /obj/structure/reagent_dispensers/keg/mead = 0.5 ) /obj/random/pizzabox name = "random pizzabox" desc = "Contains a random pizzabox." icon = 'icons/obj/food.dmi' icon_state = "pizzabox1" spawnlist = list( /obj/item/pizzabox/margherita, /obj/item/pizzabox/vegetable, /obj/item/pizzabox/mushroom, /obj/item/pizzabox/meat, /obj/item/pizzabox/pineapple ) /obj/random/seed name = "random seed" desc = "This is a random normal seed." icon = 'icons/obj/seeds.dmi' icon_state = "random" spawnlist = list( /obj/item/seeds/limeseed, /obj/item/seeds/lemonseed, /obj/item/seeds/orangeseed, /obj/item/seeds/grapeseed, /obj/item/seeds/berryseed, /obj/item/seeds/appleseed, /obj/item/seeds/bananaseed, /obj/item/seeds/watermelonseed, /obj/item/seeds/pumpkinseed, /obj/item/seeds/wheatseed, /obj/item/seeds/cornseed, /obj/item/seeds/riceseed, /obj/item/seeds/sugarcaneseed, /obj/item/seeds/carrotseed, /obj/item/seeds/garlicseed, /obj/item/seeds/onionseed, /obj/item/seeds/potatoseed, /obj/item/seeds/whitebeetseed, /obj/item/seeds/tomatoseed, /obj/item/seeds/chiliseed, /obj/item/seeds/eggplantseed, /obj/item/seeds/peanutseed, /obj/item/seeds/soyaseed, /obj/item/seeds/cabbageseed )