Files
Aurora.3/code/game/objects/random/loot.dm
Avery Marie fe14d644e4 Random Contraband and Cargo Lists Tweaks (#18799)
This PR does the following. 

- Removes Heroin, Cocaine (and it's subtypes), Raskara dust, and all
other Tier-1 drugs in our drug list (excpet from the Cargo reagent
spawner.

- Adds more contraband to the contraband loot table. For example - 
- Cocaine, Heroin, 9mm pistol, derringer revolver, sawn off shotgun
(improvised), paralysis pen, and the poison pen. I also added auto
injectors for drugs that are not in pill form, like imprednezene(?),
stimpack, beserk, and nightlife.
         
- Adds more contraband map spawns in maintenance areas. I believe it
adds 5 or 6 across all three z-levels in areas like the abandoned bar,
the poker table, a table in maintenance by science, the maintenance
under the bar, etc. The map diff bot will show. These are not always
guaranteed to spawn either upon my testing. I'm not sure why, but it
works better this way imo.

- Removes ambrosia and other non-contraband drugs from the loot table
for now.

If requested, I am open to adding one or two custom contraband spawners
for the brig. Just ask in the PR's comments.

---------

Signed-off-by: Avery Marie <98699252+Eyeveri@users.noreply.github.com>
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
2024-04-05 22:30:23 +00:00

620 lines
21 KiB
Plaintext

/obj/random/loot
name = "random maintenance loot"
desc = "Stuff for the maint-dwellers."
icon = 'icons/holidays/christmas/presents.dmi'
icon_state = "gift1"
problist = list(
/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/hardhat = 1.2,
/obj/item/clothing/head/helmet/augment = 0.1,
/obj/item/clothing/head/pirate = 0.2,
/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/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/slippers/carp = 0.5,
/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/sneakers/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/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/overalls = 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/paint_sprayer = 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/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/glass/beaker/teapot = 0.4,
/obj/item/reagent_containers/cooking_container/board/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/cleaner_tablets = 0.4,
/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/wizard_dressup = 0.25,
/obj/item/device/synthesized_instrument/violin = 0.1,
/obj/item/device/synthesized_instrument/guitar = 1,
/obj/item/device/synthesized_instrument/trumpet = 0.25,
/obj/item/reagent_containers/pill/cleaner_tablet = 0.6,
/obj/item/storage/box/fancy/food/pralinebox = 0.1
)
/obj/random/highvalue
name = "random high value item"
desc = "This is a random high value item."
icon = 'icons/obj/coins.dmi'
icon_state = "coin_diamond_heads"
problist = list(
/obj/random/telecrystals = 0.1,
/obj/item/gun/projectile/automatic/rifle/shotgun = 0.1,
/obj/random/melee = 0.3,
/obj/item/gun/energy/lawgiver = 0.1,
/obj/item/gun/projectile/automatic/terminator = 0.1,
/obj/item/device/personal_shield = 0.4,
/obj/random/safe_rig = 0.4,
/obj/item/gun/energy/disruptorpistol/magnum = 0.3,
/obj/item/gun/projectile/shotgun/pump/combat = 0.2,
/obj/item/clothing/glasses/thermal = 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 = 0.5,
/obj/item/anomaly_core = 0.5,
/obj/item/reagent_containers/food/drinks/bottle/vintage_wine = 0.1
)
//Can be good loot for away sites as well as a guaranteed valuable for a merchant.
/obj/random/highvalue/no_weapon
problist = list(
/obj/item/bluespace_crystal = 1,
/obj/item/reagent_containers/food/drinks/bottle/vintage_wine = 0.1,
/obj/item/clothing/glasses/thermal = 0.5,
/obj/item/anomaly_core = 0.5,
/obj/item/rig/military = 0.2,
/obj/item/rig/unathi/fancy = 0.2,
/obj/item/rig/vaurca = 0.2,
/obj/item/stack/material/phoron/full = 0.1,
/obj/item/stack/material/plasteel/full = 0.8,
/obj/random/voidsuit = 1,
/obj/item/rfd/construction = 0.4,
/obj/item/vaurca/box = 0.1,
/obj/item/melee/vaurca/rock = 0.1,
/obj/item/device/personal_shield = 0.1,
/obj/item/storage/secure/briefcase/money = 0.1
)
/obj/random/highvalue/cash
problist = list(
/obj/item/storage/secure/briefcase/money = 1,
/obj/item/stack/material/phoron/full = 0.1
)
/obj/random/highvalue/safe
name = "random corporate safe high value item"
desc = "This is a random corporate safe high value item."
icon = 'icons/obj/coins.dmi'
icon_state = "coin_diamond_heads"
problist = list(
/obj/item/device/personal_shield = 0.4,
/obj/random/safe_rig = 0.4,
/obj/item/clothing/glasses/thermal = 0.3,
/obj/item/storage/toolbox/infiltration = 0.3,
/obj/random/melee/highvalue = 0.3,
/obj/item/gun/energy/disruptorpistol/magnum = 0.3,
/obj/item/gun/projectile/shotgun/pump/combat = 0.2,
/obj/item/gun/energy/lawgiver = 0.1,
/obj/item/gun/projectile/automatic/terminator = 0.1,
/obj/item/gun/projectile/automatic/rifle/shotgun = 0.1
)
/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/mech/honk
)
has_postspawn = TRUE
/obj/random/custom_ka/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/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 = 10} = 0.5,
/obj/item/stack/telecrystal{amount = 15} = 0.4,
/obj/item/stack/telecrystal{amount = 20} = 0.3,
/obj/item/stack/telecrystal{amount = 30} = 0.2
)
/obj/random/contraband
name = "random contraband"
desc = "This is some random contraband."
icon = 'icons/obj/cosmetics.dmi'
icon_state = "purplecomb"
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/pill/cocaine = 3,
/obj/item/reagent_containers/pill/heroin = 2,
/obj/item/reagent_containers/hypospray/autoinjector/stimpack = 2,
/obj/item/reagent_containers/hypospray/autoinjector/impedrezene = 0.4,
/obj/item/reagent_containers/hypospray/autoinjector/night_juice = 0.3,
/obj/item/storage/box/syndie_kit/syringe_gun = 0.5,
/obj/item/reagent_containers/syringe/drugs = 1,
/obj/item/reagent_containers/inhaler/space_drugs = 2,
/obj/item/storage/box/smokes = 0.7,
/obj/item/grenade/napalm = 0.4,
/obj/item/reagent_containers/glass/beaker/vial/random/toxin = 1,
/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/knife/bayonet = 2,
/obj/item/material/kitchen/utensil/knife/boot = 2,
/obj/item/storage/secure/briefcase/money = 1,
/obj/item/gun/projectile/pistol = 0.2,
/obj/item/gun/projectile/revolver/derringer = 0.4,
/obj/item/gun/projectile/shotgun/improvised/sawn = 0.3,
/obj/item/storage/pill_bottle/spotlight = 1,
/obj/item/material/knife/butterfly/switchblade = 1,
/obj/item/clothing/mask/gas/voice = 1,
/obj/item/clothing/gloves/brassknuckles = 2,
/obj/item/reagent_containers/inhaler/xuxigas = 1,
/obj/item/toy/balloon/syndicate = 4
)
/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/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/barricade_materials
name = "random barricade materials"
spawnlist = list(
/obj/item/stack/material/steel = 0.75,
/obj/item/stack/material/plasteel = 0.25,
/obj/item/stack/material/wood = 0.75
)
has_postspawn = TRUE
/obj/random/barricade_materials/post_spawn(obj/thing)
var/obj/item/stack/material/M = thing
M.amount = rand(10, 20)
M.update_icon()
/obj/random/barbed_wire
name = "barbed wire"
spawnlist = list(
/obj/item/stack/barbed_wire = 1
)
has_postspawn = TRUE
/obj/random/barbed_wire/post_spawn(obj/thing)
var/obj/item/stack/material/M = thing
M.amount = rand(10, 20)
M.update_icon()
/obj/random/tool_konyang
name = "tool"
spawnlist = list(
/obj/item/screwdriver = 1,
/obj/item/crowbar = 1,
/obj/item/wirecutters = 1,
/obj/item/wrench = 1,
/obj/item/crowbar/rescue_axe = 0.25,
/obj/item/crowbar/red = 0.25,
)
/obj/random/survival_weapon
name = "survival weapon"
problist = list(
/obj/item/crowbar = 1,
/obj/item/shovel = 1,
/obj/item/pickaxe = 0.5,
/obj/item/surgery/scalpel = 0.5,
/obj/item/surgery/surgicaldrill = 0.5,
/obj/item/surgery/circular_saw = 0.5,
/obj/item/material/sword/improvised_sword = 0.5,
/obj/item/material/twohanded/baseballbat = 0.5,
/obj/item/material/twohanded/fireaxe = 0.05,
/obj/item/material/harpoon = 0.5,
/obj/item/material/knife/bayonet = 0.5,
/obj/item/material/knife/trench = 0.5,
/obj/item/material/knife/butterfly = 0.25,
/obj/item/material/twohanded/spear/steel = 0.5,
/obj/item/material/twohanded/spear/plasteel = 0.05,
/obj/item/melee/classic_baton = 0.5
)
/obj/random/high_grade_weapon
name = "high grade weapon"
problist = list(
/obj/item/material/sword/axe = 0.5,
/obj/item/material/sword/longsword = 0.25,
/obj/item/material/sword/rapier = 0.5,
/obj/item/material/sword/sabre = 0.25,
/obj/item/material/sword/khopesh = 0.5,
/obj/item/material/sword/katana = 0.05,
/obj/item/pickaxe/hammer = 0.5
)
/obj/random/light
name = "random light"
problist = list(
/obj/item/device/flashlight = 1,
/obj/item/device/flashlight/flare = 2,
/obj/item/device/flashlight/lamp = 0.5,
/obj/item/device/flashlight/maglight = 0.25,
/obj/item/device/flashlight/marshallingwand = 0.25,
/obj/item/device/flashlight/pen = 1,
/obj/item/device/flashlight/heavy = 0.05,
/obj/item/device/flashlight/lamp = 0.25
)
/obj/random/med_stack
name = "medical supplies"
problist = list(
/obj/item/stack/medical/bruise_pack = 2,
/obj/item/stack/medical/ointment = 2,
/obj/item/stack/medical/advanced/bruise_pack = 0.05,
/obj/item/stack/medical/advanced/ointment = 0.05
)
has_postspawn = TRUE
/obj/random/med_stack/post_spawn(obj/thing)
var/obj/item/stack/M = thing
M.amount = rand(1, 10)
M.update_icon()
/obj/random/splints
name = "splints"
problist = list(
/obj/item/stack/medical/splint = 1
)
has_postspawn = TRUE
/obj/random/splints/post_spawn(obj/thing)
var/obj/item/stack/M = thing
M.amount = rand(1, 5)
M.update_icon()
/obj/random/gun_with_ammo
has_postspawn = TRUE
/obj/random/gun_with_ammo/post_spawn(obj/thing)
var/obj/item/gun/projectile/G = thing
if(G.ammo_magazine)
var/mags = rand(0, 2)
for(var/i = 1 to mags)
var/obj/item/ammo_magazine/AG = new G.ammo_magazine.type(get_turf(G))
if(prob(50))
var/to_delete = rand(1, length(AG.stored_ammo))
var/delete_counter = 0
for(var/obj/item/ammo_casing/AC in AG.stored_ammo)
qdel(AC)
delete_counter++
if(delete_counter > to_delete)
break
AG.update_icon()
/obj/random/gun_with_ammo/pistols
name = "pistols"
problist = list(
/obj/item/gun/projectile/pistol = 1,
/obj/item/gun/projectile/pistol/detective = 1,
/obj/item/gun/projectile/colt = 1,
/obj/item/gun/projectile/pistol/sol = 0.5,
/obj/item/gun/projectile/tanto = 0.25,
/obj/item/gun/projectile/sec/lethal = 1,
/obj/item/gun/projectile/leyon = 1,
/obj/item/gun/projectile/revolver = 0.05,
/obj/item/gun/projectile/revolver/detective = 1,
/obj/item/gun/projectile/revolver/lemat = 0.5,
/obj/item/gun/projectile/revolver/konyang/pirate = 0.5,
/obj/item/gun/projectile/revolver/konyang/police = 0.5
)
/obj/random/gun_with_ammo/automatic
name = "automatics"
problist = list(
/obj/item/gun/projectile/automatic/mini_uzi = 1,
/obj/item/gun/projectile/automatic/c20r = 1,
/obj/item/gun/projectile/automatic/xanusmg = 1,
/obj/item/gun/projectile/automatic/rifle/jingya = 0.25,
/obj/item/gun/projectile/automatic/rifle/sol = 0.1,
/obj/item/gun/projectile/automatic/rifle/carbine/civcarbine = 0.75,
/obj/item/gun/projectile/automatic/konyang_pirate = 1,
/obj/item/gun/projectile/automatic/tommygun = 0.5,
/obj/item/gun/projectile/automatic/lebman = 1,
/obj/item/gun/projectile/automatic/x9 = 0.5
)
/obj/random/shotgun
name = "shotgun"
problist = list(
/obj/item/gun/projectile/shotgun/foldable = 1,
/obj/item/gun/projectile/shotgun/doublebarrel = 1,
/obj/item/gun/projectile/shotgun/doublebarrel/sawn = 1,
/obj/item/gun/projectile/shotgun/pump = 1,
/obj/item/gun/projectile/shotgun/pump/combat = 0.5,
/obj/item/gun/projectile/shotgun/pump/lever_action = 0.5
)
has_postspawn = TRUE
/obj/random/shotgun/post_spawn(obj/thing)
var/shells = rand(1, 10)
var/shell_type = pick("shells", "slugs")
for(var/i = 1 to shells)
if(shell_type == "shells")
new /obj/item/ammo_casing/shotgun/pellet(get_turf(thing))
else
new /obj/item/ammo_casing/shotgun(get_turf(thing))
/obj/random/semiautos
name = "semiautos"
problist = list(
/obj/item/gun/projectile/shotgun/pump/rifle/scope = 0.05,
/obj/item/gun/projectile/shotgun/pump/rifle/obrez = 1,
/obj/item/gun/projectile/shotgun/pump/rifle/vintage = 0.5,
/obj/item/gun/projectile/shotgun/pump/lever_action = 0.5
)
has_postspawn = TRUE
/obj/random/semiautos/post_spawn(obj/thing)
var/shells = rand(1, 20)
var/obj/item/gun/projectile/shotgun/pump/rifle/R = thing
for(var/i = 1 to shells)
new R.ammo_type(get_turf(R))
/obj/random/barricade_kit
name = "barricade kits"
problist = list(
/obj/item/stack/barricade/random = 1,
/obj/item/stack/barricade/wood/random = 0.5,
/obj/item/stack/barricade/plasteel/random = 0.25
)