Files
2020-02-19 19:48:29 -08:00

551 lines
18 KiB
Plaintext

/obj/storage/crate
name = "crate"
desc = "A small, cuboid object with a hinged top and empty interior."
is_short = 1
icon_state = "crate"
icon_closed = "crate"
icon_opened = "crateopen"
icon_welded = "welded-crate"
soundproofing = 3
throwforce = 50 //ouch
can_flip_bust = 1
event_handler_flags = USE_FLUID_ENTER | USE_CHECKEXIT | USE_CANPASS
get_desc()
. = ..()
if(src.delivery_destination)
. += "\nThere's a barcode with the code for [src.delivery_destination] on it."
update_icon()
..()
if(src.delivery_destination)
src.overlays += "crate-barcode"
CanPass(atom/movable/mover, turf/target)
if(istype(mover, /obj/projectile))
return 1
return ..()
CheckExit(atom/movable/O as mob|obj, target as turf)
if(istype(O, /obj/projectile))
return 1
return ..()
/obj/storage/crate/internals
name = "internals crate"
desc = "An internals crate."
icon_state = "o2crate"
icon_opened = "o2crateopen"
icon_closed = "o2crate"
/obj/storage/crate/medical
name = "medical crate"
desc = "A medical crate."
icon_state = "medicalcrate"
icon_opened = "medicalcrateopen"
icon_closed = "medicalcrate"
/obj/storage/crate/medical/morgue
name = "morgue supplies crate"
desc = "A medical crate containing supplies for use in morgues."
spawn_contents = list(/obj/item/storage/box/biohazard_bags = 2,
/obj/item/storage/box/body_bag = 2,
/obj/item/clothing/gloves/latex/random,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/mask/surgical_shield,
/obj/item/device/analyzer/healthanalyzer,
/obj/item/device/reagentscanner,
/obj/item/device/detective_scanner,
/obj/item/spraybottle/cleaner/,
/obj/item/reagent_containers/glass/bottle/formaldehyde,
/obj/item/reagent_containers/syringe)
/obj/storage/crate/rcd
name = "\improper RCD crate"
desc = "A crate for the storage of the RCD."
spawn_contents = list(/obj/item/rcd_ammo = 5,
/obj/item/rcd)
/obj/storage/crate/abcumarker
name = "\improper ABCU-Marker crate"
desc = "A crate for ABCU marker devices."
spawn_contents = list(/obj/item/blueprint_marker = 5)
/obj/storage/crate/freezer
name = "freezer"
desc = "A freezer."
icon_state = "freezer"
icon_opened = "freezeropen"
icon_closed = "freezer"
/obj/storage/crate/bartending
name = "bartending crate"
spawn_contents = list(/obj/item/reagent_containers/food/drinks/bottle = 5,
/obj/item/reagent_containers/glass/beaker/large = 2,
/obj/item/device/reagentscanner,
/obj/item/clothing/glasses/spectro,
/obj/item/reagent_containers/dropper/mechanical,
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/food/drinks/drinkingglass/pitcher,
/obj/item/storage/firstaid/toxin,
/obj/item/reagent_containers/emergency_injector/calomel)
/obj/storage/crate/biohazard
name = "biohazard crate"
desc = "A crate for biohazardous materials."
icon_state = "biohazardcrate"
icon_opened = "biohazardcrateopen"
icon_closed = "biohazardcrate"
cdc
name = "CDC pathogen sample crate"
desc = "A crate for sending pathogen or blood samples to the CDC for analysis."
/obj/storage/crate/freezer/milk
spawn_contents = list(/obj/item/reagent_containers/food/drinks/milk = 10, \
/obj/item/gun/russianrevolver)
/obj/storage/crate/bin
name = "large bin"
desc = "A large bin."
icon = 'icons/obj/storage.dmi'
icon_state = "largebin"
icon_opened = "largebinopen"
icon_closed = "largebin"
/obj/storage/crate/bin/lostandfound
name = "\improper Lost and Found bin"
desc = "Theoretically, items that are lost by a person are placed here so that the person may come and find them. This never happens."
spawn_contents = list(/obj/item/gnomechompski)
/obj/storage/crate/adventure
name = "adventure crate"
desc = "Only distantly related to the adventure closet."
spawn_contents = list(/obj/item/device/radio/headset/multifreq = 4,
/obj/item/device/audio_log = 2,
/obj/item/audio_tape = 4,
/obj/item/camera_test = 2,
/obj/item/device/light/flashlight = 2,
/obj/item/paper/book/critter_compendium,
/obj/item/reagent_containers/food/drinks/milk,
/obj/item/reagent_containers/food/snacks/sandwich/pb,
/obj/item/paper/note_from_mom)
/obj/storage/crate/materials
name = "building materials crate"
spawn_contents = list(/obj/item/sheet/steel/fullstack,
/obj/item/sheet/glass/fullstack)
/obj/storage/crate/furnacefuel
name = "furnace fuel crate"
desc = "A crate with fuel for a furnace."
spawn_contents = list(/obj/item/raw_material/char = 30)
/obj/storage/crate/robotics_supplies
name = "robotics supplies crate"
desc = "A crate containing supplies for Robotics."
spawn_contents = list(/obj/item/sheet/steel/fullstack = 3,
/obj/item/sheet/glass/fullstack,
/obj/item/cell/supercell = 4,
/obj/item/cable_coil = 2)
/obj/storage/crate/robotics_supplies_borg
name = "robotics supplies crate"
desc = "A crate containing supplies for Robotics and an extra set of cyborg parts."
spawn_contents = list(/obj/item/sheet/steel/fullstack = 3,
/obj/item/sheet/glass/fullstack,
/obj/item/ai_interface,
/obj/item/parts/robot_parts/robot_frame,
/obj/item/parts/robot_parts/leg/left,
/obj/item/parts/robot_parts/leg/right,
/obj/item/parts/robot_parts/arm/left,
/obj/item/parts/robot_parts/arm/right,
/obj/item/parts/robot_parts/chest,
/obj/item/parts/robot_parts/head,
/obj/item/cell/supercell = 4,
/obj/item/cable_coil = 2)
/obj/storage/crate/clown
desc = "A small, cuboid object with a hinged top and empty interior. It looks a little funny."
spawn_contents = list(/obj/item/clothing/under/misc/clown/fancy,
/obj/item/clothing/under/misc/clown/dress,
/obj/item/clothing/under/misc/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/mask/clown_hat,
/obj/item/storage/box/crayon,
/obj/item/storage/box/crayon/basic,
/obj/item/storage/box/balloonbox)
make_my_stuff()
if (..()) // make_my_stuff is called multiple times due to lazy init, so the parent returns 1 if it actually fired and 0 if it already has
if (prob(5))
new /obj/item/pen/crayon/rainbow(src)
return 1
/obj/storage/crate/materials
name = "building materials crate"
spawn_contents = list(/obj/item/sheet/steel/fullstack,
/obj/item/sheet/glass/fullstack)
/*
* SPOOKY haunted crate!
*/
/obj/storage/crate/haunted
icon = 'icons/misc/halloween.dmi'
icon_state = "crate"
var/triggered = 0
make_my_stuff()
if (..()) // make_my_stuff is called multiple times due to lazy init, so the parent returns 1 if it actually fired and 0 if it already has
if(prob(60))
new /obj/critter/spirit( src )
return 1
open()
..()
if(!triggered)
triggered = 1
gibs(src.loc)
return
/obj/storage/crate/syndicate_surplus
var/ready = 0
New()
SPAWN_DBG(2 SECONDS)
if (!ready)
spawn_items()
proc/spawn_items(var/mob/owner)
ready = 1
var/telecrystals = 0
var/list/possible_items = list()
if (islist(syndi_buylist_cache))
for (var/datum/syndicate_buylist/S in syndi_buylist_cache)
var/blocked = 0
if (ticker && ticker.mode && S.blockedmode && islist(S.blockedmode) && S.blockedmode.len)
for (var/V in S.blockedmode)
if (ispath(V) && istype(ticker.mode, V))
blocked = 1
break
if (blocked == 0 && !S.not_in_crates)
possible_items += S
if (islist(possible_items) && possible_items.len)
while(telecrystals < 18)
var/datum/syndicate_buylist/item_datum = pick(possible_items)
if(telecrystals + item_datum.cost > 24) continue
var/obj/item/I = new item_datum.item(src)
if (owner)
item_datum.run_on_spawn(I, owner)
if (owner.mind)
owner.mind.traitor_crate_items += item_datum
telecrystals += item_datum.cost
/obj/storage/crate/pizza
name = "pizza box"
desc = "A pizza box."
icon_state = "pizzabox"
icon_opened = "pizzabox_open"
icon_closed = "pizzabox"
// New crates woo. (Gannets)
/obj/storage/crate/packing
name = "packing crate"
desc = "A packing crate."
icon_state = "packingcrate1"
New()
..()
var/n = rand(1,12)
icon_state = "packingcrate[n]"
icon_opened = "packingcrate[n]_open"
icon_closed = "packingcrate[n]"
/obj/storage/crate/wooden
name = "wooden crate"
desc = "A wooden crate."
New()
var/n = rand(1,9)
icon_state = "woodencrate[n]"
icon_opened = "woodencrate[n]_open"
icon_closed = "woodencrate[n]"
..()
/obj/storage/crate/loot_crate
name = "Loot Crate"
desc = "A small, cuboid object with a hinged top and loot filled interior."
spawn_contents = list(/obj/random_item_spawner/loot_crate/surplus)
// Gannets' Nuke Ops Specialist Class Crates
/obj/storage/crate/classcrate
name = "class crate"
desc = "A class crate"
//spawn_contents = list(null)
icon_state = "attachecase"
icon_opened = "attachecase_open"
icon_closed = "attachecase"
demo
name = "Class Crate - Grenadier"
desc = "A crate containing a Specialist Operative loadout. This one features a hand-held grenade launcher, bandolier and a pile of ordnance."
spawn_contents = list(/obj/item/gun/kinetic/grenade_launcher,
/obj/item/storage/backpack/grenade_bandolier,
/obj/item/ammo/bullets/grenade_round/explosive = 2,
/obj/item/ammo/bullets/grenade_round/high_explosive,
/obj/item/storage/grenade_pouch/frag,
/obj/item/storage/grenade_pouch/stinger,
/obj/item/breaching_charge = 2,
/obj/item/clothing/suit/space/syndicate/specialist,
/obj/item/clothing/head/helmet/space/syndicate/specialist)
heavy
name = "Class Crate - Heavy Weapons Specialist"
desc = "A crate containing a Specialist Operative loadout. This one features a light machine gun, several belts of ammunition and a pouch of grenades."
spawn_contents = list(/obj/item/gun/kinetic/light_machine_gun,
/obj/item/ammo/bullets/lmg = 3,
/obj/item/storage/grenade_pouch/high_explosive,
/obj/item/clothing/suit/space/industrial/syndicate/specialist,
/obj/item/clothing/head/helmet/space/syndicate/specialist)
assault
name = "Class Crate - Assault Trooper"
desc = "A crate containing a Specialist Operative loadout. This one includes a customized assault rifle, several additional magazines as well as an assortment of breach and clear grenades."
spawn_contents = list(/obj/item/gun/kinetic/assault_rifle,
/obj/item/storage/pouch/assault_rifle/mixed,
/obj/item/chem_grenade/flashbang = 2,
/obj/item/old_grenade/stinger/frag,
/obj/item/old_grenade/stinger,
/obj/item/breaching_charge = 2,
/obj/item/clothing/suit/space/syndicate/specialist,
/obj/item/clothing/head/helmet/space/syndicate/specialist)
agent
name = "Class Crate - Infiltrator"
desc = "A crate containing a Specialist Operative loadout. This one includes a pair of semi-automatic pistols, a combat knife, an electromagnetic card (EMAG) and a cloaking device."
spawn_contents = list(/obj/item/gun/kinetic/pistol = 2,
/obj/item/storage/pouch/bullet_9mm,
/obj/item/clothing/glasses/nightvision,
/obj/item/cloaking_device,
/obj/item/old_grenade/smoke = 2,
/obj/item/dagger/syndicate/specialist,
/obj/item/card/emag,
/obj/item/clothing/suit/space/syndicate/specialist/infiltrator,
/obj/item/clothing/head/helmet/space/syndicate/specialist/infiltrator)
agent_rework
name = "Class Crate - Infiltrator"
desc = "A crate containing a Specialist Operative loadout. Includes a tranquilizer pistol with a fast acting payload, a cloaking device with 5 uses, a combat knife and an electromagnetic card (EMAG)."
spawn_contents = list(/obj/item/gun/kinetic/tranq_pistol,
/obj/item/storage/pouch/tranq_pistol_dart,
/obj/item/clothing/glasses/nightvision,
/obj/item/cloaking_device/limited,
/obj/item/old_grenade/smoke = 2,
/obj/item/dagger/syndicate/specialist,
/obj/item/card/emag,
/obj/item/clothing/suit/space/syndicate/specialist/infiltrator,
/obj/item/clothing/head/helmet/space/syndicate/specialist/infiltrator)
medic
name = "Class Crate - Combat Medic"
desc = "A crate containing a Specialist Operative loadout. This one is packed with medical supplies, some poison and a syringe gun delivery system."
spawn_contents = list(/obj/item/gun/syringe,
/obj/item/reagent_containers/glass/bottle/poison,
/obj/item/storage/box/donkpocket_w_kit,
/obj/item/clothing/glasses/healthgoggles/upgraded,
/obj/item/device/analyzer/healthanalyzer/borg,
/obj/item/storage/medical_pouch,
/obj/item/storage/belt/syndicate_medic_belt,
/obj/item/storage/backpack/syndicate_medic_satchel,
/obj/item/clothing/suit/space/syndicate/specialist/medic,
/obj/item/clothing/head/helmet/space/syndicate/specialist)
engineer
name = "Class Crate - Combat Engineer"
desc = "A crate containing a Specialist Operative loadout."
spawn_contents = list(/obj/item/paper/nast_manual,
/obj/item/turret_deployer,
/obj/item/wrench/battle,
/obj/item/gun/kinetic/spacker,
/obj/item/storage/pouch/shotgun,
/obj/item/weldingtool/high_cap,
/obj/item/storage/belt/utility/prepared,
/obj/item/clothing/suit/space/syndicate/specialist/engineer,
/obj/item/clothing/head/helmet/space/syndicate/specialist)
pyro
name = "Class Crate - Firebrand"
desc = "A crate containing a Specialist Operative loadout."
spawn_contents = list(/obj/item/flamethrower/loaded/napalm,
/obj/item/fireaxe,
/obj/item/reagent_containers/food/drinks/fueltank/napalm = 2,
/obj/item/storage/grenade_pouch/incendiary,
/obj/item/clothing/suit/space/syndicate/specialist/firebrand,
/obj/item/clothing/head/helmet/space/syndicate/specialist/firebrand)
sniper
name = "Class Crate - Marksman"
desc = "A crate containing a Specialist Operative loudout."
spawn_contents = list(/obj/item/gun/kinetic/sniper,
/obj/item/storage/pouch/sniper,
///obj/item/device/chameleon,
/obj/item/storage/grenade_pouch/smoke,
/obj/item/clothing/suit/space/syndicate/specialist/sniper,
/obj/item/clothing/head/helmet/space/syndicate/specialist/sniper)
qm //Hi Gannets, I like your crate and wanted to use it for some QM stuff. Come yell at Azungar if this is not ok.
name = "Weapons crate"
desc = "Just a fancy crate that may or may not contain weapons."
//trench loots : gps, clothing/armor, meds, shipcomponents, foods, etc
/obj/storage/crate/trench_loot
name = "rusted crate"
desc = "This crate looks old. The lock has rusted off."
//spawn_contents = list(null)
icon_state = "rustedcrate"
icon_opened = "rustedcrate_open"
icon_closed = "rustedcrate"
var/datum/light/point/light = 0
var/init = 0
New()
..()
if (current_state == GAME_STATE_PLAYING)
initialize()
disposing()
light = 0
..()
initialize()
..()
if (!init)
init = 1
if (!light)
light = new
light.attach(src)
light.set_brightness(1)
light.set_color(0.4, 1, 0.4)
light.set_height(3)
light.enable()
meds
spawn_contents = list(/obj/item/storage/firstaid/old = 2,
/obj/item/reagent_containers/vape/medical/o2,
/obj/item/storage/pill_bottle/epinephrine,
/obj/item/storage/pill_bottle/salicylic_acid)
meds2
spawn_contents = list(/obj/item/reagent_containers/glass/beaker/large/epinephrine,
/obj/item/reagent_containers/glass/beaker/large/antitox,
/obj/item/reagent_containers/glass/beaker/large/brute,
/obj/item/reagent_containers/glass/beaker/large/burn,
/obj/item/reagent_containers/syringe)
ore
spawn_contents = list(/obj/item/raw_material/erebite = 5,
/obj/item/raw_material/miracle = 2,
/obj/item/raw_material/telecrystal = 5,
/obj/item/raw_material/cerenkite = 5,
/obj/item/mining_tool/powerhammer)
ore2
spawn_contents = list(/obj/item/raw_material/plasmastone = 5,
/obj/item/raw_material/uqill = 5,
/obj/item/clothing/head/helmet/space/industrial,
/obj/item/clothing/suit/space/industrial,
/obj/item/mining_tool/power_pick)
ore3
spawn_contents = list(/obj/item/raw_material/cobryl = 5,
/obj/item/raw_material/gold = 5,
/obj/item/raw_material/claretine = 5,
/obj/item/raw_material/bohrum = 5,
/obj/item/mining_tool)
ore4
spawn_contents = list(/obj/item/raw_material/fibrilith = 5,
/obj/item/raw_material/miracle = 3,
/obj/item/raw_material/starstone,
/obj/item/mining_tool)
rad
spawn_contents = list(/obj/item/clothing/suit/rad,
/obj/item/mine/radiation = 5,
/obj/item/clothing/head/rad_hood,
/obj/item/storage/pill_bottle/antirad,
/obj/item/storage/pill_bottle/antitox,
/obj/item/storage/pill_bottle/mutadone,
/obj/item/reagent_containers/glass/beaker/cryoxadone)
drug
spawn_contents = list(/obj/item/reagent_containers/patch/synthflesh = 3,
/obj/item/storage/pill_bottle/methamphetamine,
/obj/item/reagent_containers/syringe/krokodil,
/obj/item/reagent_containers/glass/beaker/stablemut,
/obj/item/reagent_containers/food/drinks/rum_spaced)
ship
spawn_contents = list(/obj/item/shipcomponent/mainweapon/mining,
/obj/item/shipcomponent/secondary_system/repair,
/obj/item/shipcomponent/sensor/mining,
/obj/item/shipcomponent/secondary_system/gps)
ship2
spawn_contents = list(/obj/item/shipcomponent/mainweapon/foamer,
/obj/item/shipcomponent/sensor/mining,
/obj/item/shipcomponent/secondary_system/tractor_beam)
ship3
spawn_contents = list(/obj/item/shipcomponent/mainweapon/rockdrills,
/obj/item/shipcomponent/sensor/mining)
clothes
spawn_contents = list(/obj/item/clothing/under/gimmick/blackstronaut,
/obj/item/clothing/shoes/cleats,
/obj/item/clothing/mask/balaclava,
/obj/item/reagent_containers/glass/beaker/burn)
clothes2
spawn_contents = list(/obj/item/clothing/under/gimmick/mario/luigi,
/obj/item/clothing/suit/wizrobe/green,
/obj/item/clothing/shoes/galoshes,
/obj/item/reagent_containers/glass/beaker/burn)
tools
spawn_contents = list(/obj/item/hand_tele,
/obj/item/device/flash,
/obj/item/device/pda2/captain)
tools2
spawn_contents = list(/obj/item/storage/toolbox/mechanical,
/obj/machinery/bot/medbot,
/obj/item/device/light/flashlight,
/obj/item/device/radio,
/obj/item/cell/erebite/charged)
weapons
spawn_contents = list(/obj/item/gun/energy/phaser_gun,
/obj/item/old_grenade/stinger = 2,
/obj/item/ammo/power_cell/med_power)
weapons2
spawn_contents = list(/obj/item/gun/energy/laser_gun,
/obj/item/chem_grenade/cryo = 4)
weapons3
spawn_contents = list(/obj/item/barrier,
/obj/item/chem_grenade/shock = 2)
weapons4
spawn_contents = list(/obj/item/gun/kinetic/zipgun,
/obj/item/ammo/bullets/a38 = 2)