mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2026-08-17 23:17:01 +01:00
## About The Pull Request This PR includes a few different things mostly revolving around food and drinks: 1) **BLUD REBALANCE** Blud has been changed significantly. This change will be accompanied by an IC bulletin and OOC dev blog post, the changes are as follows: - Blud can now always be consumed, even when you're starving. - Blud is now metabolized after ingestion at the same rate as regular blood (a lot faster than previously). - Blud's blood_content values have been bumped significantly. 30u of real Blood restores ~120 nutrition, while 30u of Blud restores 25% less nutrition, at ~90 (tested in-game). - Blud boxes now contain 50u instead of 30u. For reference, regular-sized milk cartons are 50u and mini milk cartons are 30u. - Cargo's Vetalan Care Package now consists of 5 boxes of Blud MAX and another 5 boxes of Blud MAX Light, for a total of 250u of real Blood and 250u of Synthblood. Previously it consisted of 3 bags of AB+ which are 200u each for 600u of Blood. The suit that comes in the care package was also deleted, but it still comes in a nice coffin. 2) **SEASONAL ITEMS** All of the items from last year's Christmas testmerge have been re-added with a few minor updates. New Halloween themed items have also been added. These seasonal items are fully functional, but **can't be obtained currently since they're not taking advantage of the seasonal item rotation code at this time.** The full list of items is as follows: - Two new cigarette varieties, Temperamento Vanilla (Xmas) and Kaiju Cherry (Halloween) - Three new types of bottled alcohol, Caramel Whiskey (Xmas), Sour Apple Schnapps (Halloween) and Candy Corn Flavored Vodka (Halloween) - Seven new cocktails using seasonal ingredients, Caramel White Russian (Xmas), Salted Caramel Cider (Xmas), Appletini (Halloween), Sour Apple Mimosa (Halloween), Sour Apple Fizz (Halloween), Candy Corn Martini (Halloween) and Halloween Punch (Halloween). - There is also a "food synthesis" recipe for turning the candy corn martini into edible jello shots using water and protein. - Three new snacks, Gingerbread Cookies (Xmas), Stroopwafels (Xmas) and Holiday Cake (Xmas, Contraband). Halloween snacks will hopefully be added later down the line. - Four new soda varieties: Space Cola Cinnamon (Xmas), Space-Up Cranberry (Xmas), Space Cola Licorice (Halloween) and Dr. Gibb Mystery (Halloween). - One new canned coffee variety: Peppermint Mocha (Xmas). Halloween variety will hopefully come along with the snacks. It's a lot of spriting work. 3) **ASSORTED FIXES AND QOL IMPROVEMENTS** - Bar and Cafe vendors now stock canned Pineapple juice year-round, this is generally useful but especially handy for the halloween vodka cocktails. - One new year-round cocktail recipe: The AMF. - Robust Softdrinks no longer stocks KyoCola, Ocha Midori and Ramune, since those are already present in the NipponTan vending machines. This cuts down on that particular menu's bloat a little. - Temperamento Menthol Company now called Temperamento Tobacco Company - CC's Hard Rootbeer proof is now calculated as VODKA/2, slightly lowering it's proof from 50 to 40. This was done because the bottle desc for this drink states it's regular rootbeer with vodka added. - BludBox MAX no longer calls donors "free-range", the blood is now "ethically-sourced" instead. - The lore entry on Vetalan Outreach Society has been brushed up and also had typos corrected. ## Why It's Good For The Game 1) Vetalans, Medical and Blud have been in need of addressing for a while now, and this is the mechanical part of the effort, making Vetalans less reliant on blood bags. 2) The seasonal item system is here. The groundwork and the first batch of items are laid out, I just need to figure out how to implement and test the seasonal rotations. 3) Most of these are QoL and fixes. The AMF came into being very late at night after the brainworms won. ## Changelog 🆑 add: Added two new brands of seasonal cigarette. add: Added three new brands of seasonal alcohol. add: Added four new varieties of seasonal soda. add: Added seven new varieties of seasonal cocktails. add: Added one seasonal variety of food synthesis reaction. add: Added three new varieties of seasonal snack food. add: Added one seasonal variety of canned coffee. add: Added one new regular cocktail. add: Added Pineapple Juice cans to Bar and Cafe vendors. del: Removed NipponTan drinks from Robust Softdrinks stock. tweak: Temperamento Menthol Company renamed to Temperamento Tobacco Company. tweak: Small changes to the Vetalan Outreach Society advertisement. tweak: Small changes to BludBox MAX description. tweak: Blud now always nourishes Vetalans regardless of nutrition status. tweak: Blud now metabolizes at the same rate as Blood when ingested. tweak: Blud now provides Vetalans with 75% the nutritional value compared to Blood. tweak: Vetalan Care Package now contains BludBox MAX and BludBox MAX Light cartons instead of AB+ Blood Packs. tweak: Vetalan Care Package no longer contains a suit. tweak: BludBox cartons now hold 50u, up from 30u. tweak: CC's Hard Rootbeer proof now calculated in a more lore-friendly manner. fix: Pineapple juice no longer purple when poured into a metamorphic glass. imageadd: added sprites for all item additions listed above. /🆑
746 lines
27 KiB
Plaintext
746 lines
27 KiB
Plaintext
/*
|
|
* Everything derived from the common cardboard box.
|
|
* Basically everything except the original is a kit (starts full).
|
|
*
|
|
* Contains:
|
|
* Empty box, starter boxes (survival/engineer),
|
|
* Latex glove and sterile mask boxes,
|
|
* Syringe, beaker, dna injector boxes,
|
|
* Blanks, flashbangs, and EMP grenade boxes,
|
|
* Tracking and chemical implant boxes,
|
|
* Prescription glasses and drinking glass boxes,
|
|
* Condiment bottle and silly cup boxes,
|
|
* Donkpocket and monkeycube boxes,
|
|
* ID and security PDA cart boxes,
|
|
* Handcuff, mousetrap, and pillbottle boxes,
|
|
* Snap-pops and matchboxes,
|
|
* Replacement light boxes.
|
|
*
|
|
* For syndicate call-ins see uplink_kits.dm
|
|
*/
|
|
|
|
/obj/item/storage/box
|
|
name = "box"
|
|
desc = "It's just an ordinary box."
|
|
icon_state = "box"
|
|
item_state = "syringe_kit"
|
|
max_single_weight_class = WEIGHT_CLASS_SMALL
|
|
max_combined_volume = STORAGE_VOLUME_BOX
|
|
weight_volume = ITEM_VOLUME_BOX
|
|
drop_sound = 'sound/items/drop/cardboardbox.ogg'
|
|
pickup_sound = 'sound/items/pickup/cardboardbox.ogg'
|
|
worth_intrinsic = 25
|
|
|
|
var/foldable = /obj/item/stack/material/cardboard // BubbleWrap - if set, can be folded (when empty) into a sheet of cardboard
|
|
|
|
/// dynamic state support
|
|
var/dynamic_state = TRUE
|
|
/// dynamic state overlay, if any
|
|
var/dynamic_overlay
|
|
/// dynamic state x shift, for off-center sprites like cases
|
|
var/dynamic_x_shift
|
|
/// dynamic state y shift, for off-center sprites like cases
|
|
var/dynamic_y_shift
|
|
|
|
// todo: implement dynamic state, like how /tg/ boxes work
|
|
|
|
// BubbleWrap - A box can be folded up to make card
|
|
/obj/item/storage/box/attack_self(mob/user, datum/event_args/actor/actor)
|
|
. = ..()
|
|
if(.)
|
|
return
|
|
if(..()) return
|
|
|
|
//try to fold it.
|
|
if ( contents.len )
|
|
return
|
|
|
|
if ( !ispath(foldable) )
|
|
return
|
|
// Now make the cardboard
|
|
to_chat(user, "<span class='notice'>You fold [src] flat.</span>")
|
|
new foldable(get_turf(src))
|
|
qdel(src)
|
|
|
|
/obj/item/storage/box/legacy_survival
|
|
name = "emergency supply box"
|
|
desc = "A survival box issued to crew members for use in emergency situations."
|
|
starts_with = list(
|
|
/obj/item/clothing/mask/breath
|
|
)
|
|
|
|
/obj/item/storage/box/legacy_survival/synth
|
|
name = "synthetic supply box"
|
|
desc = "A survival box issued to synthetic crew members for use in emergency situations."
|
|
starts_with = list(
|
|
)
|
|
|
|
/obj/item/storage/box/legacy_survival/comp
|
|
name = "emergency supply box"
|
|
desc = "A comprehensive survival box issued to crew members for use in emergency situations. Contains additional supplies."
|
|
icon_state = "survival"
|
|
starts_with = list(
|
|
/obj/item/reagent_containers/hypospray/autoinjector,
|
|
/obj/item/stack/medical/bruise_pack,
|
|
/obj/item/flashlight/glowstick,
|
|
/obj/item/reagent_containers/food/snacks/wrapped/proteinbar,
|
|
/obj/item/clothing/mask/breath
|
|
)
|
|
|
|
/obj/item/storage/box/gloves
|
|
name = "box of latex gloves"
|
|
desc = "Contains white gloves."
|
|
icon_state = "latex"
|
|
starts_with = list(/obj/item/clothing/gloves/sterile/latex = 7)
|
|
|
|
/obj/item/storage/box/masks
|
|
name = "box of sterile masks"
|
|
desc = "This box contains masks of sterility."
|
|
icon_state = "sterile"
|
|
starts_with = list(/obj/item/clothing/mask/surgical = 7)
|
|
|
|
/obj/item/storage/box/syringes
|
|
name = "box of syringes"
|
|
desc = "A box full of syringes."
|
|
icon_state = "syringe"
|
|
starts_with = list(/obj/item/reagent_containers/syringe = 7)
|
|
|
|
/obj/item/storage/box/syringegun
|
|
name = "box of syringe gun cartridges"
|
|
desc = "A box full of compressed gas cartridges."
|
|
icon_state = "syringe"
|
|
starts_with = list(/obj/item/ammo_casing/syringe = 7)
|
|
|
|
/obj/item/storage/box/beakers
|
|
name = "box of beakers"
|
|
icon_state = "beaker"
|
|
starts_with = list(/obj/item/reagent_containers/glass/beaker = 7)
|
|
|
|
/obj/item/storage/box/injectors
|
|
name = "box of DNA injectors"
|
|
desc = "This box contains injectors it seems."
|
|
starts_with = list(
|
|
/obj/item/dnainjector/h2m = 3,
|
|
/obj/item/dnainjector/m2h = 3
|
|
)
|
|
|
|
// todo: all this should be special ammo magazines or something i hate abusing box-code lmao
|
|
|
|
/obj/item/storage/box/blanks
|
|
name = "box of blank shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front."
|
|
icon_state = "blankshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g/blank = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/blanks/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/blank = 16)
|
|
|
|
/obj/item/storage/box/beanbags
|
|
name = "box of beanbag shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "beanshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/beanbags/legacy_spawn_contents()
|
|
for(var/i in 1 to 8)
|
|
new /obj/item/ammo_casing/a12g/beanbag(src)
|
|
|
|
/obj/item/storage/box/beanbags/large/legacy_spawn_contents()
|
|
for(var/i in 1 to 16)
|
|
new /obj/item/ammo_casing/a12g/beanbag(src)
|
|
|
|
/obj/item/storage/box/shotgunammo
|
|
name = "box of shotgun slugs"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "lethalshellshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/shotgunammo/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g = 16)
|
|
|
|
/obj/item/storage/box/shotgunshells
|
|
name = "box of shotgun shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "lethalslug_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/shotgunshells/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/pellet = 16)
|
|
|
|
/obj/item/storage/box/flashshells
|
|
name = "box of illumination shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "illumshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
starts_with = list(/obj/item/ammo_casing/a12g/flare = 8)
|
|
|
|
/obj/item/storage/box/flashshells/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/flare = 16)
|
|
|
|
/obj/item/storage/box/stunshells
|
|
name = "box of stun shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "stunshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/stunshells/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/stunshell = 16)
|
|
|
|
/obj/item/storage/box/practiceshells
|
|
name = "box of practice shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
icon_state = "blankshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g/practice = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/practiceshells/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/practice = 16)
|
|
|
|
/obj/item/storage/box/empshells
|
|
name = "box of emp shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front."
|
|
icon_state = "empshot_box"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(/obj/item/ammo_casing/a12g/techshell/emp = 8)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/empshells/large
|
|
starts_with = list(/obj/item/ammo_casing/a12g/techshell/emp = 16)
|
|
|
|
/obj/item/storage/box/sniperammo
|
|
name = "box of 12.7mm shells"
|
|
desc = "It has a picture of a gun and several warning symbols on the front.<br>WARNING: Live ammunition. Misuse may result in serious injury or death."
|
|
starts_with = list(/obj/item/ammo_casing/a12_7mm = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/flashbangs
|
|
name = "box of flashbangs (WARNING)"
|
|
desc = "<B>WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use.</B>"
|
|
icon_state = "flashbang"
|
|
starts_with = list(/obj/item/grenade/simple/flashbang = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/emps
|
|
name = "box of emp grenades"
|
|
desc = "A box containing 5 military grade EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
|
icon_state = "emp"
|
|
starts_with = list(/obj/item/grenade/simple/emp = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/empslite
|
|
name = "box of low yield emp grenades"
|
|
desc = "A box containing 5 low yield EMP grenades.<br> WARNING: Do not use near unshielded electronics or biomechanical augmentations, death or permanent paralysis may occur."
|
|
icon_state = "emp"
|
|
starts_with = list(/obj/item/grenade/simple/emp/low_yield = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/smokes
|
|
name = "box of smoke bombs"
|
|
desc = "A box containing 7 smoke bombs."
|
|
icon_state = "flashbang"
|
|
starts_with = list(/obj/item/grenade/simple/smoke = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/anti_photons
|
|
name = "box of anti-photon grenades"
|
|
desc = "A box containing 7 experimental photon disruption grenades."
|
|
icon_state = "flashbang"
|
|
starts_with = list(/obj/item/grenade/simple/antiphoton = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/frags
|
|
name = "box of fragmentation grenades (WARNING)"
|
|
desc = "A box containing 7 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
|
icon_state = "frag"
|
|
starts_with = list(/obj/item/grenade/simple/explosive = 7)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/frags_half_box
|
|
name = "box of fragmentation grenades (WARNING)"
|
|
desc = "A box containing 4 military grade fragmentation grenades.<br> WARNING: These devices are extremely dangerous and can cause limb loss or death in repeated use."
|
|
icon_state = "frag"
|
|
starts_with = list(/obj/item/grenade/simple/explosive = 4)
|
|
drop_sound = 'sound/items/drop/ammobox.ogg'
|
|
pickup_sound = 'sound/items/pickup/ammobox.ogg'
|
|
|
|
/obj/item/storage/box/metalfoam
|
|
name = "box of metal foam grenades."
|
|
desc = "A box containing 7 metal foam grenades."
|
|
icon_state = "flashbang"
|
|
starts_with = list(/obj/item/grenade/simple/chemical/premade/metalfoam = 7)
|
|
|
|
/obj/item/storage/box/teargas
|
|
name = "box of teargas grenades"
|
|
desc = "A box containing 7 teargas grenades."
|
|
icon_state = "flashbang"
|
|
starts_with = list(/obj/item/grenade/simple/chemical/premade/teargas = 7)
|
|
|
|
/obj/item/storage/box/flare
|
|
name = "box of flares"
|
|
desc = "A box containing 4 flares."
|
|
starts_with = list(/obj/item/flashlight/flare = 4)
|
|
|
|
/obj/item/storage/box/trackimp
|
|
name = "boxed tracking implant kit"
|
|
desc = "Box full of scum-bag tracking utensils."
|
|
icon_state = "implant"
|
|
starts_with = list(
|
|
/obj/item/implantcase/tracking = 4,
|
|
/obj/item/implanter,
|
|
/obj/item/implantpad,
|
|
/obj/item/locator
|
|
)
|
|
|
|
/obj/item/storage/box/chemimp
|
|
name = "boxed chemical implant kit"
|
|
desc = "Box of stuff used to implant chemicals."
|
|
icon_state = "implant"
|
|
starts_with = list(
|
|
/obj/item/implantcase/chem = 5,
|
|
/obj/item/implanter,
|
|
/obj/item/implantpad
|
|
)
|
|
|
|
/obj/item/storage/box/camerabug
|
|
name = "mobile camera pod box"
|
|
desc = "A box containing some mobile camera pods."
|
|
icon_state = "pda"
|
|
starts_with = list(
|
|
/obj/item/camerabug = 6,
|
|
/obj/item/bug_monitor
|
|
)
|
|
|
|
/obj/item/storage/box/rxglasses
|
|
name = "box of prescription glasses"
|
|
desc = "This box contains nerd glasses."
|
|
icon_state = "glasses"
|
|
starts_with = list(/obj/item/clothing/glasses/regular = 7)
|
|
|
|
/obj/item/storage/box/cdeathalarm_kit
|
|
name = "death alarm kit"
|
|
desc = "Box of stuff used to implant death alarms."
|
|
icon_state = "implant"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
starts_with = list(
|
|
/obj/item/implantcase/death_alarm = 7,
|
|
/obj/item/implanter
|
|
)
|
|
|
|
/obj/item/storage/box/condimentbottles
|
|
name = "box of condiment bottles"
|
|
desc = "It has a large ketchup smear on it."
|
|
starts_with = list(/obj/item/reagent_containers/food/condiment = 7)
|
|
|
|
/obj/item/storage/box/cups
|
|
name = "box of paper cups"
|
|
desc = "It has pictures of paper cups on the front."
|
|
starts_with = list(/obj/item/reagent_containers/food/drinks/sillycup = 7)
|
|
|
|
/obj/item/storage/box/donkpockets
|
|
name = "box of donk-pockets"
|
|
desc = "<B>Instructions:</B> <I>Heat in microwave. Product will cool if not eaten within seven minutes.</I>"
|
|
icon_state = "donk_kit"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket = 7)
|
|
|
|
/obj/item/storage/box/sinpockets
|
|
name = "box of sin-pockets"
|
|
desc = "<B>Instructions:</B> <I>Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes.</I>"
|
|
icon_state = "donk_kit"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/donkpocket/sinpocket = 7)
|
|
|
|
/obj/item/storage/box/monkeycubes
|
|
name = "monkey cube box"
|
|
desc = "Drymate brand monkey cubes. Just add water!"
|
|
icon = 'icons/obj/food.dmi'
|
|
icon_state = "monkeycubebox"
|
|
insertion_whitelist = list(/obj/item/reagent_containers/food/snacks/monkeycube)
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped = 4)
|
|
|
|
/obj/item/storage/box/monkeycubes/farwacubes
|
|
name = "farwa cube box"
|
|
desc = "Drymate brand farwa cubes, shipped from Meralar. Just add water!"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/farwacube = 4)
|
|
|
|
/obj/item/storage/box/monkeycubes/stokcubes
|
|
name = "stok cube box"
|
|
desc = "Drymate brand stok cubes, shipped from Moghes. Just add water!"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/stokcube = 4)
|
|
|
|
/obj/item/storage/box/monkeycubes/neaeracubes
|
|
name = "neaera cube box"
|
|
desc = "Drymate brand neaera cubes, shipped from Jargon 4. Just add water!"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/monkeycube/wrapped/neaeracube = 4)
|
|
|
|
/obj/item/storage/box/ids
|
|
name = "box of spare IDs"
|
|
desc = "Has so many empty IDs."
|
|
icon_state = "id"
|
|
starts_with = list(/obj/item/card/id = 7)
|
|
|
|
/obj/item/storage/box/seccarts
|
|
name = "box of spare R.O.B.U.S.T. Cartridges"
|
|
desc = "A box full of R.O.B.U.S.T. Cartridges, used by Security."
|
|
icon_state = "pda"
|
|
starts_with = list(/obj/item/cartridge/security = 7)
|
|
|
|
/obj/item/storage/box/handcuffs
|
|
name = "box of spare handcuffs"
|
|
desc = "A box full of handcuffs."
|
|
icon_state = "handcuff"
|
|
starts_with = list(/obj/item/handcuffs = 7)
|
|
|
|
/obj/item/storage/box/mousetraps
|
|
name = "box of Pest-B-Gon mousetraps"
|
|
desc = "<B><FONT color='red'>WARNING:</FONT></B> <I>Keep out of reach of children</I>."
|
|
icon_state = "mousetraps"
|
|
starts_with = list(/obj/item/assembly/mousetrap = 7)
|
|
|
|
/obj/item/storage/box/pillbottles
|
|
name = "box of pill bottles"
|
|
desc = "It has pictures of pill bottles on its front."
|
|
starts_with = list(/obj/item/storage/pill_bottle = 7)
|
|
icon_state = "pillbox"
|
|
|
|
/obj/item/storage/box/snappops
|
|
name = "snap pop box"
|
|
desc = "Eight wrappers of fun! Ages 8 and up. Not suitable for children."
|
|
icon = 'icons/obj/toy.dmi'
|
|
icon_state = "spbox"
|
|
insertion_whitelist = list(/obj/item/toy/snappop)
|
|
starts_with = list(/obj/item/toy/snappop = 8)
|
|
|
|
/obj/item/storage/box/matches
|
|
name = "matchbox"
|
|
desc = "A small box of 'Space-Proof' premium matches."
|
|
icon = 'icons/obj/cigarettes.dmi'
|
|
icon_state = "matchbox"
|
|
suit_storage_class = SUIT_STORAGE_CLASS_SOFTWEAR
|
|
w_class = WEIGHT_CLASS_TINY
|
|
slot_flags = SLOT_BELT
|
|
insertion_whitelist = list(/obj/item/flame/match)
|
|
starts_with = list(/obj/item/flame/match = 10)
|
|
drop_sound = 'sound/items/drop/matchbox.ogg'
|
|
pickup_sound = 'sound/items/pickup/matchbox.ogg'
|
|
|
|
/obj/item/storage/box/matches/using_item_on(obj/item/using, datum/event_args/actor/clickchain/clickchain, clickchain_flags)
|
|
if(istype(using, /obj/item/flame/match))
|
|
var/obj/item/flame/match/W = using
|
|
if(istype(W) && !W.lit && !W.burnt)
|
|
W.lit = 1
|
|
W.damage_type = "burn"
|
|
W.icon_state = "match_lit"
|
|
START_PROCESSING(SSobj, W)
|
|
W.update_icon()
|
|
return CLICKCHAIN_DID_SOMETHING | CLICKCHAIN_DO_NOT_PROPAGATE
|
|
return ..()
|
|
|
|
/obj/item/storage/box/autoinjectors
|
|
name = "box of injectors"
|
|
desc = "Contains autoinjectors."
|
|
icon_state = "syringe"
|
|
starts_with = list(/obj/item/reagent_containers/hypospray/autoinjector = 7)
|
|
|
|
/obj/item/storage/box/lights
|
|
name = "box of replacement bulbs"
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "light"
|
|
desc = "This box is shaped on the inside so that only light tubes and bulbs fit."
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "syringe_kit", SLOT_ID_LEFT_HAND = "syringe_kit")
|
|
max_items = 24
|
|
insertion_whitelist = list(/obj/item/light/tube, /obj/item/light/bulb)
|
|
max_combined_volume = WEIGHT_VOLUME_SMALL * 24 //holds 24 items of w_class 2
|
|
allow_mass_gather = TRUE // for picking up broken bulbs, not that most people will try
|
|
|
|
/obj/item/storage/box/lights/bulbs
|
|
starts_with = list(/obj/item/light/bulb = 24)
|
|
|
|
/obj/item/storage/box/lights/tubes
|
|
name = "box of replacement tubes"
|
|
icon_state = "lighttube"
|
|
starts_with = list(/obj/item/light/tube = 24)
|
|
|
|
/obj/item/storage/box/lights/mixed
|
|
name = "box of replacement lights"
|
|
icon_state = "lightmixed"
|
|
starts_with = list(
|
|
/obj/item/light/tube = 16,
|
|
/obj/item/light/bulb = 8,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/fairy
|
|
name = "box of replacement fairy bulbs"
|
|
icon_state = "lightfairy"
|
|
insertion_whitelist = list(/obj/item/light/bulb/fairy)
|
|
starts_with = list(/obj/item/light/bulb/fairy = 24)
|
|
|
|
//Colored Lights
|
|
/obj/item/storage/box/lights/bulbs_colored
|
|
name = "box of colored bulbs"
|
|
icon_state = "light_color"
|
|
starts_with = list(
|
|
/obj/item/light/bulb/red = 4,
|
|
/obj/item/light/bulb/orange = 4,
|
|
/obj/item/light/bulb/yellow = 4,
|
|
/obj/item/light/bulb/green = 4,
|
|
/obj/item/light/bulb/blue = 4,
|
|
/obj/item/light/bulb/purple = 4,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/bulbs_neon
|
|
name = "box of neon bulbs"
|
|
icon_state = "light_color"
|
|
max_items = 30
|
|
starts_with = list(
|
|
/obj/item/light/bulb/neon_pink = 6,
|
|
/obj/item/light/bulb/neon_blue = 6,
|
|
/obj/item/light/bulb/neon_green = 6,
|
|
/obj/item/light/bulb/neon_yellow = 6,
|
|
/obj/item/light/bulb/neon_white = 6,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/tubes_colored
|
|
name = "box of colored tubes"
|
|
icon_state = "lighttube_color"
|
|
starts_with = list(
|
|
/obj/item/light/tube/red = 4,
|
|
/obj/item/light/tube/orange = 4,
|
|
/obj/item/light/tube/yellow = 4,
|
|
/obj/item/light/tube/green = 4,
|
|
/obj/item/light/tube/blue = 4,
|
|
/obj/item/light/tube/purple = 4,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/tubes_neon
|
|
name = "box of neon tubes"
|
|
icon_state = "lighttube_color"
|
|
max_items = 30
|
|
starts_with = list(
|
|
/obj/item/light/tube/neon_pink = 6,
|
|
/obj/item/light/tube/neon_blue = 6,
|
|
/obj/item/light/tube/neon_green = 6,
|
|
/obj/item/light/tube/neon_yellow = 6,
|
|
/obj/item/light/tube/neon_white = 6,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/mixed_colored
|
|
name = "box of colored lights"
|
|
icon_state = "lightmixed_color"
|
|
starts_with = list(
|
|
/obj/item/light/tube/red = 2,
|
|
/obj/item/light/tube/orange = 2,
|
|
/obj/item/light/tube/yellow = 2,
|
|
/obj/item/light/tube/green = 2,
|
|
/obj/item/light/tube/blue = 2,
|
|
/obj/item/light/tube/purple = 2,
|
|
/obj/item/light/bulb/red = 2,
|
|
/obj/item/light/bulb/orange = 2,
|
|
/obj/item/light/bulb/yellow = 2,
|
|
/obj/item/light/bulb/green = 2,
|
|
/obj/item/light/bulb/blue = 2,
|
|
/obj/item/light/bulb/purple = 2,
|
|
)
|
|
|
|
/obj/item/storage/box/lights/mixed_neon
|
|
name = "box of neon lights"
|
|
icon_state = "lightmixed_color"
|
|
max_items = 30
|
|
starts_with = list(
|
|
/obj/item/light/tube/neon_pink = 3,
|
|
/obj/item/light/tube/neon_blue = 3,
|
|
/obj/item/light/tube/neon_green = 3,
|
|
/obj/item/light/tube/neon_yellow = 3,
|
|
/obj/item/light/tube/neon_white = 3,
|
|
/obj/item/light/bulb/neon_pink = 3,
|
|
/obj/item/light/bulb/neon_blue = 3,
|
|
/obj/item/light/bulb/neon_green = 3,
|
|
/obj/item/light/bulb/neon_yellow = 3,
|
|
/obj/item/light/bulb/neon_white = 3,
|
|
)
|
|
|
|
/obj/item/storage/box/freezer
|
|
name = "portable freezer"
|
|
desc = "This nifty shock-resistant device will keep your 'groceries' nice and non-spoiled."
|
|
icon = 'icons/obj/storage.dmi'
|
|
icon_state = "portafreezer"
|
|
item_state_slots = list(SLOT_ID_RIGHT_HAND = "medicalpack", SLOT_ID_LEFT_HAND = "medicalpack")
|
|
foldable = null
|
|
max_single_weight_class = WEIGHT_CLASS_NORMAL
|
|
insertion_whitelist = list(/obj/item/organ)
|
|
max_combined_volume = WEIGHT_VOLUME_NORMAL * 5 // Formally 21. Odd numbers are bad.
|
|
allow_mass_gather = TRUE // for picking up broken bulbs, not that most people will try
|
|
worth_intrinsic = 150
|
|
|
|
/obj/item/storage/box/freezer/Entered(var/atom/movable/AM)
|
|
if(istype(AM, /obj/item/organ))
|
|
var/obj/item/organ/O = AM
|
|
O.preserve(PORTABLE_FREEZER_TRAIT)
|
|
..()
|
|
|
|
/obj/item/storage/box/freezer/Exited(var/atom/movable/AM)
|
|
if(istype(AM, /obj/item/organ))
|
|
var/obj/item/organ/O = AM
|
|
O.unpreserve(PORTABLE_FREEZER_TRAIT)
|
|
..()
|
|
|
|
/obj/item/storage/box/ambrosia
|
|
name = "ambrosia seeds box"
|
|
desc = "Contains the seeds you need to get a little high."
|
|
starts_with = list(/obj/item/seeds/ambrosiavulgarisseed = 7)
|
|
|
|
/obj/item/storage/box/ambrosiadeus
|
|
name = "ambrosia deus seeds box"
|
|
desc = "Contains the seeds you need to get a proper healthy high."
|
|
starts_with = list(/obj/item/seeds/ambrosiadeusseed = 7)
|
|
|
|
/obj/item/storage/box/wormcan
|
|
name = "box of worms"
|
|
desc = "It's a box filled with worms."
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/worm = 10)
|
|
|
|
/obj/item/storage/box/firingpins
|
|
name = "box of standard firing pins"
|
|
desc = "A box full of standard firing pins, to allow newly-developed firearms to operate."
|
|
icon_state = "firingpins"
|
|
starts_with = list(/obj/item/firing_pin = 8)
|
|
|
|
/obj/item/storage/box/legacy_survival
|
|
starts_with = list(
|
|
/obj/item/tool/prybar/red,
|
|
/obj/item/clothing/glasses/goggles,
|
|
/obj/item/clothing/mask/breath
|
|
)
|
|
|
|
/obj/item/storage/box/legacy_survival/synth
|
|
starts_with = list(
|
|
/obj/item/tool/prybar/red,
|
|
/obj/item/clothing/glasses/goggles
|
|
)
|
|
|
|
/obj/item/storage/box/legacy_survival/comp
|
|
starts_with = list(
|
|
/obj/item/tool/prybar/red,
|
|
/obj/item/clothing/glasses/goggles,
|
|
/obj/item/reagent_containers/hypospray/autoinjector,
|
|
/obj/item/stack/medical/bruise_pack,
|
|
/obj/item/flashlight/glowstick,
|
|
/obj/item/reagent_containers/food/snacks/wrapped/proteinbar,
|
|
/obj/item/clothing/mask/breath
|
|
)
|
|
|
|
/obj/item/storage/box/explorerkeys
|
|
name = "box of volunteer headsets"
|
|
desc = "A box full of volunteer headsets, for issuing out to exploration volunteers."
|
|
starts_with = list(/obj/item/radio/headset/volunteer = 7)
|
|
|
|
/obj/item/storage/box/treats
|
|
name = "box of pet treats"
|
|
desc = "A box full of small treats for pets, you could eat them too if you really wanted to, but why would you?"
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/dtreat = 7)
|
|
/obj/item/storage/box/commandkeys
|
|
name = "box of command keys"
|
|
desc = "A box full of command keys, for command to give out as necessary."
|
|
starts_with = list(/obj/item/encryptionkey/headset_com = 7)
|
|
|
|
/obj/item/storage/box/servicekeys
|
|
name = "box of service keys"
|
|
desc = "A box full of service keys, for the HoP to give out as necessary."
|
|
starts_with = list(/obj/item/encryptionkey/headset_service = 7)
|
|
|
|
/obj/item/storage/box/legacy_survival/space
|
|
name = "boxed emergency suit and helmet"
|
|
icon_state = "survivaleng"
|
|
starts_with = list(
|
|
/obj/item/clothing/suit/space/emergency,
|
|
/obj/item/clothing/head/helmet/space/emergency,
|
|
/obj/item/clothing/mask/breath,
|
|
/obj/item/tank/emergency/oxygen/double
|
|
)
|
|
|
|
/obj/item/storage/secure/briefcase/trashmoney
|
|
starts_with = list(/obj/item/spacecash/c200 = 10)
|
|
|
|
/obj/item/storage/box/rainponcho
|
|
name = "foil raincoat pouch"
|
|
icon_state = "rainponcho"
|
|
foldable = null
|
|
max_items = 1
|
|
insertion_whitelist = list(/obj/item/clothing/suit/storage/hooded/rainponcho)
|
|
starts_with = list(/obj/item/clothing/suit/storage/hooded/rainponcho)
|
|
|
|
// Seasonal vending machine boxes
|
|
|
|
/obj/item/storage/box/gingerbreadcookie
|
|
name = "Centauri Gingerbread Cookies"
|
|
icon = 'icons/obj/food.dmi'
|
|
icon_state = "gingerbreadbox"
|
|
desc = "Just like mom used to make. Assuming your mom was a trans-stellar food corporation, that is."
|
|
|
|
var/startswith = 8
|
|
max_combined_volume = WEIGHT_VOLUME_SMALL * 8
|
|
insertion_whitelist = list(
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/cane,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/star,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/tree
|
|
)
|
|
starts_with = list(
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/cane,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/tree,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/star,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/cane,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/tree,
|
|
/obj/item/reagent_containers/food/snacks/gingerbreadcookie/star
|
|
)
|
|
|
|
/obj/item/storage/box/stroopwafel
|
|
name = "Van Thyssen's Stroopwafels"
|
|
icon = 'icons/obj/food.dmi'
|
|
icon_state = "stroopwafelbox"
|
|
desc = "A hexagonal box of imported holiday treats. Best served with coffee."
|
|
var/startswith = 7
|
|
max_combined_volume = WEIGHT_VOLUME_SMALL * 7
|
|
insertion_whitelist = list(
|
|
/obj/item/reagent_containers/food/snacks/stroopwafel
|
|
)
|
|
starts_with = list(
|
|
/obj/item/reagent_containers/food/snacks/stroopwafel = 7
|
|
)
|
|
|
|
/obj/item/storage/box/holidaycake
|
|
name = "Christmas Syndi-Cake"
|
|
desc = "A rare seasonal Syndicake product. The packaging advertises it as having TACTICAL HOLIDAY FLAVOR. It's long past it's expiration date."
|
|
icon = 'icons/obj/food.dmi'
|
|
icon_state = "holidaycakebox"
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
max_single_weight_class = WEIGHT_CLASS_NORMAL
|
|
starts_with = list(/obj/item/reagent_containers/food/snacks/sliceable/holidaycake)
|