mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-20 04:17:33 +01:00
9194363697
This changes up some of the possible warehouse spawn content. More book options, couple of shield gens, slightly higher chance of some mats and some other changes. The big notable one is the chance of a big mob in the warehouse was changed from 3% per round to 9% and the list for small and large mobs was expanded. Particularly psirens were added, with a need to reduce the spawn rate after the arc. The warehouse spawn total was also reduced from 180 to 120, partly as a test and to make the warehouse slightly less overloaded.
422 lines
12 KiB
Plaintext
422 lines
12 KiB
Plaintext
// --- Uncommon ---
|
|
|
|
STOCK_ITEM_UNCOMMON(shrooms, 2)
|
|
if(prob(65))
|
|
new /obj/item/seeds/glowshroom(L)
|
|
if(prob(5))
|
|
new /obj/item/seeds/ghostmushroomseed(L)
|
|
if(prob(30))
|
|
new /obj/item/seeds/amanitamycelium(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(plasteel, 3)
|
|
new /obj/item/stack/material/plasteel(L, rand(1,30))
|
|
|
|
STOCK_ITEM_UNCOMMON(silver, 2)
|
|
new /obj/item/stack/material/silver(L, rand(5,30))
|
|
|
|
STOCK_ITEM_UNCOMMON(phoronsheets, 0.25)
|
|
new /obj/item/stack/material/phoron(L, rand(5,20))
|
|
|
|
STOCK_ITEM_UNCOMMON(phoronglass, 0.5)
|
|
new /obj/item/stack/material/glass/phoronglass(L, rand(10,20))
|
|
|
|
STOCK_ITEM_UNCOMMON(stone, 2)
|
|
if(prob(50))
|
|
new /obj/item/stack/material/sandstone(L, 50)
|
|
else
|
|
new /obj/item/stack/material/marble(L, 50)
|
|
|
|
STOCK_ITEM_UNCOMMON(iron, 2)
|
|
new /obj/item/stack/material/iron(L, 50)
|
|
|
|
STOCK_ITEM_UNCOMMON(other_mat, 0.5)
|
|
var/obj/item/stack/material/M = pick(/obj/item/stack/material/osmium, /obj/item/stack/material/mhydrogen, /obj/item/stack/material/tritium, /obj/item/stack/material/bronze)
|
|
new M(L, rand(1, 20))
|
|
|
|
STOCK_ITEM_UNCOMMON(flare, 2)
|
|
new /obj/item/flashlight/flare(L)
|
|
new /obj/item/flashlight/flare(L)
|
|
if (prob(50))
|
|
new /obj/random/glowstick(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(implants, 1)
|
|
if(prob(50))
|
|
new /obj/item/storage/box/cdeathalarm_kit(L)
|
|
else
|
|
new /obj/item/storage/box/tactical/trackimp(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(flashbang, 0.75)
|
|
new /obj/item/storage/box/tactical/flashbangs(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(stinger, 0.75)
|
|
new /obj/item/storage/box/tactical/stingers(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(arrest, 1)
|
|
if(prob(60))
|
|
new /obj/item/storage/box/handcuffs(L)
|
|
else
|
|
new /obj/item/holowarrant(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(monkey, 2)
|
|
if(prob(40))
|
|
var/type = pick( \
|
|
/obj/item/storage/box/unique/monkeycubes/farwacubes, \
|
|
/obj/item/storage/box/unique/monkeycubes/stokcubes, \
|
|
/obj/item/storage/box/unique/monkeycubes/neaeracubes \
|
|
)
|
|
new type(L)
|
|
else
|
|
new /obj/item/storage/box/unique/monkeycubes(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(specialcrayon, 1.5)
|
|
if(prob(50))
|
|
new /obj/item/pen/crayon/mime(L)
|
|
else
|
|
new /obj/item/pen/crayon/rainbow(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(contraband, 2)
|
|
for(var/i in 1 to rand(1, 3))
|
|
new /obj/random/contraband(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(mediumcell, 3)
|
|
for(var/i in 1 to rand(1,2))
|
|
var/type = pick( \
|
|
/obj/item/cell/super, \
|
|
/obj/item/cell/high \
|
|
)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(chempack, 5)
|
|
var/list/chems = GET_SINGLETON_SUBTYPE_MAP(/singleton/reagent/)
|
|
var/list/exclusion = list(/singleton/reagent/drink, /singleton/reagent, /singleton/reagent/adminordrazine, /singleton/reagent/polysomnine/beer2, /singleton/reagent/azoth, /singleton/reagent/elixir,\
|
|
/singleton/reagent/liquid_fire, /singleton/reagent/philosopher_stone, /singleton/reagent/toxin/undead, /singleton/reagent/love_potion, /singleton/reagent/shapesand, /singleton/reagent/usolve,\
|
|
/singleton/reagent/sglue, /singleton/reagent/black_matter, /singleton/reagent/drugs/cocaine, /singleton/reagent/drugs/raskara_dust, /singleton/reagent/drugs/heroin, /singleton/reagent/drugs/joy, /singleton/reagent/toxin/stimm, /singleton/reagent/drugs/impedrezene, /singleton/reagent/bottle_lightning, /singleton/reagent/toxin/hylemnomil, /singleton/reagent/toxin/nanites, /singleton/reagent/nitroglycerin,
|
|
/singleton/reagent/aslimetoxin, /singleton/reagent/sanasomnum, /singleton/reagent/rezadone, /singleton/reagent/kois/black, /singleton/reagent/toxin/carpotoxin, /singleton/reagent/toxin/malignant_tumour_cells)
|
|
chems -= exclusion
|
|
for (var/i in 1 to rand(2, 4))
|
|
var/obj/item/reagent_containers/chem_disp_cartridge/C = new /obj/item/reagent_containers/chem_disp_cartridge(L)
|
|
var/rname = pick(chems)
|
|
//If we get a drink, reroll it once.
|
|
//Should result in a higher chance of getting medicines and chemicals
|
|
if (ispath(rname, /singleton/reagent/drink) || ispath(rname, /singleton/reagent/alcohol/ethanol))
|
|
rname = pick(chems)
|
|
var/singleton/reagent/R = GET_SINGLETON(rname)
|
|
C.reagents.add_reagent(rname, C.volume)
|
|
C.setLabel(R.name)
|
|
|
|
STOCK_ITEM_UNCOMMON(robolimbs, 3)
|
|
for(var/i in 1 to rand(1, 2))
|
|
var/manuf = pick(GLOB.fabricator_robolimbs)
|
|
var/type = pick( \
|
|
/obj/item/robot_parts/l_arm, \
|
|
/obj/item/robot_parts/r_arm, \
|
|
/obj/item/robot_parts/l_leg, \
|
|
/obj/item/robot_parts/r_leg \
|
|
)
|
|
new type(L, manuf)
|
|
|
|
STOCK_ITEM_UNCOMMON(circuitboards, 3)
|
|
var/list/allboards = subtypesof(/obj/item/circuitboard)
|
|
var/list/exclusion = list(
|
|
/obj/item/circuitboard/unary_atmos,
|
|
/obj/item/circuitboard/telecomms,
|
|
/* Remove abstract hardsuit circuit boards.
|
|
These 4 aren't used in hardsuit construction.
|
|
Their children are used instead. */
|
|
/obj/item/circuitboard/rig_assembly,
|
|
/obj/item/circuitboard/rig_assembly/civilian,
|
|
/obj/item/circuitboard/rig_assembly/combat,
|
|
/obj/item/circuitboard/rig_assembly/illegal
|
|
)
|
|
|
|
allboards -= exclusion
|
|
for(var/i in 1 to rand(1, 2))
|
|
var/type = pick(allboards)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(jetpack, 3)
|
|
new /obj/item/tank/jetpack/void(L)
|
|
if(prob(40))
|
|
new /obj/item/tank/emergency_oxygen/double(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(inhaler, 1)
|
|
var/obj/item/reagent_containers/inhaler/I = pick(subtypesof(/obj/item/reagent_containers/inhaler))
|
|
new I(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(advwelder, 2)
|
|
if(prob(5))
|
|
new /obj/item/weldingtool/experimental(L)
|
|
else
|
|
new /obj/item/weldingtool/hugetank(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(policebaton, 1.5)
|
|
new /obj/item/melee/classic_baton(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(stunbaton, 0.75) //batons spawn with no powercell
|
|
var/obj/item/melee/baton/B = new /obj/item/melee/baton(L)
|
|
if(B.bcell)
|
|
QDEL_NULL(B.bcell)
|
|
|
|
B.queue_icon_update()
|
|
|
|
STOCK_ITEM_UNCOMMON(firingpin, 3)
|
|
new /obj/item/storage/box/firingpins(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(watch, 3)
|
|
new /obj/random/watches(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(MMI, 1.5)
|
|
new /obj/item/mmi(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(voidsuit, 2)
|
|
new /obj/random/voidsuit(L,1)
|
|
|
|
STOCK_ITEM_UNCOMMON(violin, 1)
|
|
new /obj/item/synthesized_instrument/violin(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(atmosfiresuit, 2)
|
|
new /obj/item/clothing/head/hardhat/atmos(L)
|
|
new /obj/item/clothing/suit/fire/atmos(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(debugger, 2)
|
|
new /obj/item/debugger(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(surgerykit, 2.5)
|
|
new /obj/item/storage/firstaid/surgery(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(crimekit, 1)
|
|
new /obj/item/storage/briefcase/crimekit(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(carpet, 2)
|
|
new /obj/item/stack/tile/carpet(L, 50)
|
|
|
|
STOCK_ITEM_UNCOMMON(gift, 4)
|
|
new /obj/item/a_gift(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(riotshield, 2)
|
|
new /obj/item/shield/riot(L)
|
|
if(prob(20))
|
|
new /obj/item/shield/riot(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(fireaxe, 1)
|
|
new /obj/item/material/twohanded/fireaxe(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(service, 2)
|
|
new /obj/item/rfd/service(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(robot, 2)
|
|
var/list/bots = list(
|
|
/mob/living/bot/cleanbot = 2,
|
|
/mob/living/bot/medbot = 2,
|
|
/mob/living/bot/farmbot = 1,
|
|
)
|
|
|
|
var/type = pickweight(bots)
|
|
var/mob/living/bot/newbot = new type(L)
|
|
newbot.on = FALSE //Deactivated
|
|
|
|
STOCK_ITEM_UNCOMMON(headset, 2)
|
|
var/list/sets = list(
|
|
/obj/item/radio/headset/headset_eng = 1,
|
|
/obj/item/radio/headset/headset_rob = 0.4,
|
|
/obj/item/radio/headset/headset_med = 1,
|
|
/obj/item/radio/headset/headset_sci = 0.8,
|
|
/obj/item/radio/headset/headset_medsci = 0.4,
|
|
/obj/item/radio/headset/headset_cargo = 1,
|
|
/obj/item/radio/headset/headset_service = 1,
|
|
/obj/item/radio/headset/headset_sec = 0.5
|
|
)
|
|
|
|
var/type = pickweight(sets)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(bat, 1.2)
|
|
new /obj/item/material/twohanded/baseballbat(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(scythe, 0.75)
|
|
new /obj/item/material/scythe(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(laserpoint, 0.75)
|
|
new /obj/item/laser_pointer(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(manual, 2)
|
|
if(prob(20))
|
|
var/list/booklist = subtypesof(/obj/item/book/manual)
|
|
booklist -= /obj/item/book/manual/wiki //just this one. we want to keep the subtypes.
|
|
booklist -= /obj/item/book/manual/nuclear //yeah no
|
|
var/type = pick(booklist)
|
|
new type(L)
|
|
else
|
|
if (!establish_db_connection(GLOB.dbcon))
|
|
return
|
|
|
|
var/query_str = "SELECT author, title, content FROM ss13_library ORDER BY RAND() LIMIT :amount:"
|
|
var/list/query_data = list("amount" = 3)
|
|
|
|
var/DBQuery/query_books = GLOB.dbcon.NewQuery(query_str)
|
|
query_books.Execute(query_data)
|
|
|
|
while (query_books.NextRow())
|
|
CHECK_TICK
|
|
var/author = query_books.item[1]
|
|
var/title = query_books.item[2]
|
|
var/content = query_books.item[3]
|
|
var/obj/item/book/B = new(L)
|
|
B.name = "Book: [title]"
|
|
B.title = title
|
|
B.author = author
|
|
B.dat = content
|
|
var/randbook = "book[rand(1,16)]"
|
|
B.icon_state = randbook
|
|
B.item_state = randbook
|
|
|
|
STOCK_ITEM_UNCOMMON(spystuff, 0.75)
|
|
if(prob(40))
|
|
new /obj/item/radiojammer(L)
|
|
else
|
|
new /obj/item/clothing/glasses/night(L)
|
|
if(prob(10))
|
|
new /obj/item/storage/box/syndie_kit/spy/hidden(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(seeds, 1)
|
|
for(var/i in 1 to rand(1, 3))
|
|
var/obj/item/seeds/SP = pick(subtypesof(/obj/item/seeds) - /obj/item/seeds/cutting)
|
|
new SP(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(rped, 1)
|
|
new /obj/item/storage/part_replacer(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(briefcase, 2)
|
|
var/list/briefcases = list(
|
|
/obj/item/storage/briefcase = 1,
|
|
/obj/item/storage/briefcase/real = 0.8,
|
|
/obj/item/storage/briefcase/black = 0.8,
|
|
/obj/item/storage/briefcase/aluminium = 0.5,
|
|
/obj/item/storage/briefcase/nt = 0.5
|
|
)
|
|
|
|
var/type = pickweight(briefcases)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(blade, 1.2)
|
|
var/list/blades = list(
|
|
/obj/item/material/knife/butterfly = 1,
|
|
/obj/item/material/knife/butterfly/switchblade = 1,
|
|
/obj/item/material/hook = 1.5,
|
|
/obj/item/material/knife/ritual = 1.5,
|
|
/obj/item/material/hatchet/butch = 1,
|
|
/obj/item/material/hatchet = 1.5,
|
|
/obj/item/material/hatchet/unathiknife = 0.75,
|
|
/obj/item/material/knife/tacknife = 1,
|
|
/obj/item/material/knife/bayonet = 0.5
|
|
)
|
|
|
|
var/type = pickweight(blades)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(laserscalpel, 1.3)
|
|
new /obj/item/surgery/scalpel/laser(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(electropack, 1)
|
|
new /obj/item/radio/electropack(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(randomhide, 0.5)
|
|
var/obj/item/stack/material/animalhide/spawn_hide = pick(typesof(/obj/item/stack/material/animalhide))
|
|
new spawn_hide(L, rand(5, 50))
|
|
|
|
STOCK_ITEM_UNCOMMON(hoodie, 1)
|
|
new /obj/random/hoodie(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(bang, 0.5)
|
|
var/obj/item/gun/bang/B = pick(subtypesof(/obj/item/gun/bang))
|
|
new B(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(cookingoil, 1)
|
|
var/turf/T = get_turf(L)
|
|
if(!turf_clear(T))
|
|
for(var/turf/U in range(T,1))
|
|
if(turf_clear(U))
|
|
T = U
|
|
break
|
|
new /obj/structure/reagent_dispensers/cookingoil(T)
|
|
|
|
STOCK_ITEM_UNCOMMON(coin, 1.3)
|
|
new /obj/random/coin(L)
|
|
if(prob(20))
|
|
new /obj/random/coin(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(plushie, 1)
|
|
new /obj/random/plushie(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(flag, 1)
|
|
new /obj/random/random_flag(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(apiary, 1)
|
|
new /obj/item/bee_pack(L)
|
|
if(prob(75))
|
|
new /obj/item/bee_net(L)
|
|
if(prob(60))
|
|
new /obj/item/bee_smoker(L)
|
|
if(prob(30))
|
|
new /obj/item/honey_frame(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(wristbound, 0.5)
|
|
var/list/possible_wristbounds = list()
|
|
for(var/thing in subtypesof(/obj/item/modular_computer/handheld/wristbound/preset))
|
|
var/obj/item/modular_computer/handheld/wristbound/preset/P = thing
|
|
if(initial(P.hidden))
|
|
continue
|
|
possible_wristbounds += P
|
|
var/wristbound_type = pick(possible_wristbounds)
|
|
new wristbound_type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(pops, 0.5)
|
|
if(prob(85))
|
|
new /obj/item/storage/box/unique/snappops(L)
|
|
else if (prob(25))
|
|
new /obj/item/storage/box/unique/snappops/syndi(L)
|
|
else
|
|
new /obj/item/storage/box/partypopper(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(collectable_headwear, 0.5)
|
|
var/type = pick(subtypesof(/obj/item/clothing/head/collectable))
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(pickaxes, 1)
|
|
var/list/pickaxe_type = list(
|
|
/obj/item/pickaxe = 10,
|
|
/obj/item/pickaxe/hammer = 1,
|
|
/obj/item/pickaxe/silver = 2,
|
|
/obj/item/pickaxe/drill = 5,
|
|
/obj/item/pickaxe/gold = 0.5,
|
|
/obj/item/pickaxe/diamond = 0.25,
|
|
/obj/item/pickaxe/brush = 1,
|
|
/obj/item/pickaxe/hand = 2
|
|
)
|
|
var/type = pickweight(pickaxe_type)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(alt_glasses, 1)
|
|
var/list/glasses = list(/obj/item/clothing/glasses/regular/circle,
|
|
/obj/item/clothing/glasses/regular/jamjar,
|
|
/obj/item/clothing/glasses/threedglasses,
|
|
/obj/item/clothing/glasses/regular/hipster,
|
|
/obj/item/clothing/glasses/regular/scanners)
|
|
var/type = pick(glasses)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(gumballs, 3)
|
|
new /obj/item/glass_jar/gumball(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(stickers, 1)
|
|
var/list/all_stickers = subtypesof(/obj/item/storage/stickersheet)
|
|
|
|
var/type = pick(all_stickers)
|
|
new type(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(wizarddressup, 1)
|
|
new /obj/random/wizard_dressup(L)
|
|
|
|
STOCK_ITEM_UNCOMMON(nothing, 0)
|
|
// no-op
|