diff --git a/_maps/map_files/stations/boxstation.dmm b/_maps/map_files/stations/boxstation.dmm index eb56b6746b1..57035dd0383 100644 --- a/_maps/map_files/stations/boxstation.dmm +++ b/_maps/map_files/stations/boxstation.dmm @@ -3111,6 +3111,9 @@ }, /obj/structure/table, /obj/item/deck/cards, +/obj/item/storage/fancy/juice_boxes/random{ + pixel_y = 12 + }, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "anO" = ( @@ -10307,6 +10310,10 @@ /area/station/hallway/secondary/entry/north) "aMC" = ( /obj/structure/table, +/obj/item/reagent_containers/drinks/carton/grape{ + pixel_x = 5; + pixel_y = 5 + }, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) "aMD" = ( @@ -10510,6 +10517,7 @@ /area/station/maintenance/fsmaint) "aNj" = ( /obj/structure/table, +/obj/item/reagent_containers/drinks/carton/grape, /turf/simulated/floor/plating, /area/station/maintenance/fsmaint) "aNk" = ( @@ -54025,6 +54033,11 @@ /obj/effect/spawner/random/plushies, /turf/simulated/floor/carpet/arcade, /area/station/public/arcade) +"hRP" = ( +/obj/structure/table/wood, +/obj/effect/spawner/random/food_or_drink/juice_boxes, +/turf/simulated/floor/plasteel/dark, +/area/station/maintenance/asmaint) "hSg" = ( /obj/structure/cable/extra_insulated{ icon_state = "1-2" @@ -141242,7 +141255,7 @@ ciY nCZ iXD nCZ -hXR +hRP ciY aab aaa diff --git a/_maps/map_files/stations/cerestation.dmm b/_maps/map_files/stations/cerestation.dmm index 19d64781f6c..b91eb518afb 100644 --- a/_maps/map_files/stations/cerestation.dmm +++ b/_maps/map_files/stations/cerestation.dmm @@ -40228,6 +40228,10 @@ /obj/structure/table, /obj/item/paper_bin, /obj/item/pen, +/obj/item/reagent_containers/drinks/carton/plum{ + pixel_y = 14; + pixel_x = 6 + }, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "hGE" = ( @@ -61032,7 +61036,13 @@ pixel_x = -13; pixel_y = 2 }, -/obj/item/ashtray/plastic, +/obj/item/ashtray/plastic{ + pixel_y = -2 + }, +/obj/item/storage/fancy/juice_boxes/random{ + pixel_y = 11; + pixel_x = 3 + }, /turf/simulated/floor/plasteel, /area/station/public/fitness) "lZy" = ( @@ -95242,6 +95252,16 @@ }, /turf/simulated/floor/plasteel/dark, /area/station/medical/medbay2) +"tNX" = ( +/obj/structure/table/wood, +/obj/item/ashtray/glass, +/obj/effect/turf_decal/tiles/neutral, +/obj/item/reagent_containers/drinks/carton/watermelon{ + pixel_x = -6; + pixel_y = 13 + }, +/turf/simulated/floor/plasteel, +/area/station/hallway/primary/port/south) "tNZ" = ( /obj/structure/closet/crate/freezer/iv_storage, /turf/simulated/floor/plasteel{ @@ -131776,7 +131796,7 @@ kAn stO hzU mRj -gTt +tNX iYG mCM ecG diff --git a/_maps/map_files/stations/deltastation.dmm b/_maps/map_files/stations/deltastation.dmm index 1a0e4207292..bb404d78262 100644 --- a/_maps/map_files/stations/deltastation.dmm +++ b/_maps/map_files/stations/deltastation.dmm @@ -4377,6 +4377,9 @@ "avp" = ( /obj/structure/table/wood, /obj/item/clothing/glasses/regular/hipster, +/obj/item/storage/fancy/juice_boxes/random{ + pixel_y = 13 + }, /turf/simulated/floor/plasteel/dark, /area/station/maintenance/fore2) "avq" = ( @@ -23688,6 +23691,7 @@ /obj/effect/turf_decal/tiles/department/engineering/side{ dir = 4 }, +/obj/item/reagent_containers/drinks/carton/lemonade, /turf/simulated/floor/plasteel, /area/station/engineering/break_room) "bQw" = ( @@ -78149,6 +78153,7 @@ "qAT" = ( /obj/structure/table, /obj/item/deck/cards, +/obj/effect/spawner/random/food_or_drink/juice_boxes, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "qAW" = ( diff --git a/_maps/map_files/stations/emeraldstation.dmm b/_maps/map_files/stations/emeraldstation.dmm index 2e302615fa5..6b7bc726b74 100644 --- a/_maps/map_files/stations/emeraldstation.dmm +++ b/_maps/map_files/stations/emeraldstation.dmm @@ -24104,6 +24104,7 @@ /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 4 }, +/obj/effect/spawner/random/food_or_drink/juice_boxes, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "eTZ" = ( @@ -45966,6 +45967,9 @@ /obj/effect/turf_decal/tiles/department/engineering/corner{ dir = 8 }, +/obj/item/storage/fancy/juice_boxes/random{ + pixel_y = 11 + }, /turf/simulated/floor/plasteel, /area/station/public/dorms) "jlg" = ( @@ -90061,6 +90065,7 @@ /obj/machinery/atmospherics/unary/outlet_injector/on{ dir = 8 }, +/obj/effect/spawner/random/food_or_drink/juice_boxes, /turf/simulated/floor/plasteel, /area/station/security/permabrig) "scb" = ( diff --git a/_maps/map_files/stations/metastation.dmm b/_maps/map_files/stations/metastation.dmm index f8b232fcbda..0fbcfecdbeb 100644 --- a/_maps/map_files/stations/metastation.dmm +++ b/_maps/map_files/stations/metastation.dmm @@ -4714,6 +4714,9 @@ /obj/structure/disposalpipe/segment, /obj/structure/table, /obj/item/deck/cards, +/obj/item/storage/fancy/juice_boxes/random{ + pixel_y = 9 + }, /turf/simulated/floor/plasteel, /area/station/public/dorms) "aJG" = ( @@ -28901,6 +28904,7 @@ pixel_y = 1 }, /obj/effect/turf_decal/tiles/dark/checker, +/obj/item/reagent_containers/drinks/carton/vegetable, /turf/simulated/floor/plasteel, /area/station/medical/break_room) "cZr" = ( @@ -64422,6 +64426,7 @@ /area/station/command/office/ce) "poG" = ( /obj/structure/table, +/obj/effect/spawner/random/food_or_drink/juice_boxes, /turf/simulated/floor/plating, /area/station/maintenance/theatre) "poM" = ( diff --git a/code/__HELPERS/screen_objs.dm b/code/__HELPERS/screen_objs.dm index aa86b6d5795..68680ee0dc3 100644 --- a/code/__HELPERS/screen_objs.dm +++ b/code/__HELPERS/screen_objs.dm @@ -89,3 +89,19 @@ /proc/cut_relative_direction(fragment) var/static/regex/regex = regex(@"([A-Z])\w+", "g") return regex.Replace(fragment, "") + +/// Gets the location of an object on a client's screen. Thanks to Kaioken on BYOND forums. +/proc/get_obj_screen_xy(obj/target_obj, client/viewer) + var/atom/scrn_center = viewer.virtual_eye + var/center_x + var/center_y + if(isnum(viewer.view)) + center_x = viewer.view + 1 + center_y = center_x + else + center_x = ceil(text2num(splittext(viewer.view, "x")[1]) / 2) + center_y = ceil(text2num(splittext(viewer.view, "x")[2]) / 2) + var/x_dist = scrn_center.x - target_obj.x + var/y_dist = scrn_center.y - target_obj.y + + return list("x" = center_x - x_dist, "y" = center_y - y_dist) diff --git a/code/_globalvars/lists/maint_loot_tables.dm b/code/_globalvars/lists/maint_loot_tables.dm index 13580ab5816..b28f2bf9344 100644 --- a/code/_globalvars/lists/maint_loot_tables.dm +++ b/code/_globalvars/lists/maint_loot_tables.dm @@ -46,6 +46,7 @@ GLOBAL_LIST_INIT(maintenance_loot_tier_1, list( // Sub-spawners /obj/effect/spawner/random/engineering/toolbox, /obj/effect/spawner/random/snacks, + /obj/effect/spawner/random/food_or_drink/juice_boxes, // Assemblies and cells /obj/item/assembly/prox_sensor, diff --git a/code/game/objects/effects/spawners/random/food_spawners.dm b/code/game/objects/effects/spawners/random/food_spawners.dm index 2515b507e3a..e498df9086c 100644 --- a/code/game/objects/effects/spawners/random/food_spawners.dm +++ b/code/game/objects/effects/spawners/random/food_spawners.dm @@ -50,3 +50,20 @@ /obj/effect/spawner/random/food_or_drink/salad, /obj/effect/spawner/random/food_or_drink/dinner, ) + +/obj/effect/spawner/random/food_or_drink/juice_boxes + name = "juice box spawner" + loot = list( + /obj/item/reagent_containers/drinks/carton/apple = 2, + /obj/item/reagent_containers/drinks/carton/banana = 2, + /obj/item/reagent_containers/drinks/carton/berry = 2, + /obj/item/reagent_containers/drinks/carton/carrot = 1, + /obj/item/reagent_containers/drinks/carton/grape = 2, + /obj/item/reagent_containers/drinks/carton/lemonade = 1, + /obj/item/reagent_containers/drinks/carton/orange = 2, + /obj/item/reagent_containers/drinks/carton/pineapple = 2, + /obj/item/reagent_containers/drinks/carton/plum = 1, + /obj/item/reagent_containers/drinks/carton/tomato = 2, + /obj/item/reagent_containers/drinks/carton/vegetable = 1, + /obj/item/reagent_containers/drinks/carton/watermelon = 2, + ) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index d63f173953b..85273a2af55 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -15,6 +15,7 @@ * Cigar Box * Vial Box * Aquatic Starter Kit + * Juice Box Box */ /obj/item/storage/fancy @@ -561,3 +562,159 @@ new /obj/item/tank_brush(src) new /obj/item/fishfood(src) new /obj/item/storage/bag/fish(src) + +/obj/item/storage/fancy/juice_boxes + name = "Stationside Juice Box Variety Pack" + desc = "Every flavor of juice boxes, right at your fingertips." + storage_slots = 12 + // Fancier storage slots for that haphazardly-picked-over look + var/list/storage_slot_list[12] + icon = 'icons/obj/juice_box.dmi' + icon_state = "juice_box_box" + icon_type = "juice carton" + appearance_flags = parent_type::appearance_flags | KEEP_TOGETHER + can_hold = list(/obj/item/reagent_containers/drinks/carton) + +/obj/item/storage/fancy/juice_boxes/update_icon_state() + return + +/obj/item/storage/fancy/juice_boxes/update_overlays() + . = ..() + . += image('icons/obj/juice_box.dmi', "juice_box_box") + for(var/index in 1 to length(storage_slot_list)) + var/obj/item/reagent_containers/drinks/carton/juice_type = storage_slot_list[index] + if(!istype(juice_type)) + continue + if(!(juice_type.icon_state)) + continue + var/image/box_icon = image(icon, src, "[copytext(juice_type.icon_state, 1, -3)]slot") + box_icon.pixel_x = 3 * ((index - 1) % 6) + box_icon.pixel_y = -4 * (index > 6) + . += box_icon + . += image(icon, src, "juice_box_box_front") + +/obj/item/storage/fancy/juice_boxes/remove_from_storage(obj/item/I, atom/new_location) + . = ..() + if(. && storage_slot_list.Find(I)) + storage_slot_list[storage_slot_list.Find(I)] = null + update_icon() + +/obj/item/storage/fancy/juice_boxes/attackby__legacy__attackchain(obj/item/I, mob/user, params) + if(length(can_hold)) + if(!is_type_in_typecache(I, can_hold)) + return ..() + if(isrobot(user)) + return // Robots can't interact with storage items. + + handle_item_insertion(I, user, params) + return TRUE + +/obj/item/storage/fancy/juice_boxes/handle_item_insertion(obj/item/juice_box, mob/user, params, prevent_warning = FALSE) + . = ..() + if(!.) + return + if(!(juice_box in contents)) + return + + var/list/paramlist = params2list(params) + // If we don't have info about where the user clicked, put the item at the end of the list. + if(!paramlist.Find("icon-x") || !paramlist.Find("icon-y") || !paramlist.Find("screen-loc")) + insert_into_end(juice_box) + return + + var/src_screenxy = get_obj_screen_xy(src, user.client) + var/clicked_screenxy = splittext(paramlist["screen-loc"], ",") + // If the user clicked inside the boxes interface instead of on the icon, put the item at the end of the list. + if(src_screenxy["x"] != text2num(splittext(clicked_screenxy[1], ":")[1]) || \ + src_screenxy["y"] != text2num(splittext(clicked_screenxy[2], ":")[1])) + insert_into_end(juice_box) + return + + // The user clicked our very fancy icon, so figure out where the nearest slot is and put the juice box there. + var/storage_slot = ceil(clamp(1, (text2num(paramlist["icon-x"]) - 7), 15) / 3) + storage_slot += 6 * (text2num(paramlist["icon-y"]) < 20) + insert_into_nearest(juice_box, user, storage_slot) + +/// Pick the nearest empty slot in this juice box box to slot the juice box into. +/obj/item/storage/fancy/juice_boxes/proc/insert_into_nearest(obj/item/juice_box, mob/user, storage_slot) + var/distance = 0 + var/second_row_slot = storage_slot > 6 ? storage_slot - 6 : storage_slot + 6 + while(distance < storage_slots / 2) + if(storage_slot - distance > 0 && !storage_slot_list[storage_slot - distance]) + storage_slot_list[storage_slot - distance] = juice_box + break + if(storage_slot + distance <= storage_slots && !storage_slot_list[storage_slot + distance]) + storage_slot_list[storage_slot + distance] = juice_box + break + if(second_row_slot - distance > 0 && !storage_slot_list[second_row_slot - distance]) + storage_slot_list[second_row_slot - distance] = juice_box + break + if(second_row_slot + distance <= storage_slots && !storage_slot_list[second_row_slot + distance]) + storage_slot_list[second_row_slot + distance] = juice_box + break + distance++ + + // If it somehow doesn't fit in a storage slot, it shouldn't be in the contents either. + if(!(juice_box in storage_slot_list)) + to_chat(user, SPAN_WARNING("Somehow, [juice_box] doesn't seem to fit.")) + remove_from_storage(juice_box, get_turf(src)) + + // Nudge the standard contents around so they're in the right order. + var/contents_copy = contents.Copy() + for(var/index = 1 to storage_slots) + if(!storage_slot_list[index]) + continue + contents_copy -= storage_slot_list[index] + contents_copy += storage_slot_list[index] + contents = contents_copy + + // Re-show any mobs viewing the contents the juice boxes in the proper order. + for(var/each_mob in mobs_viewing) + show_to(each_mob) + + update_icon() + +/// Put the juice box into the last slot on the list, and nudge other juice boxes out of the way if necessary. +/obj/item/storage/fancy/juice_boxes/proc/insert_into_end(obj/item/juice_box) + var/list/items_to_nudge = list() + // Find an empty slot + for(var/storage_slot = storage_slots; storage_slot > 0; storage_slot--) + if(!storage_slot_list[storage_slot]) + break + items_to_nudge.Add(storage_slot_list[storage_slot]) + + // If the empty slot was not at the end, move each juice box found back one slot until the last slot is empty + while(length(items_to_nudge)) + storage_slot_list[storage_slots - length(items_to_nudge)] = items_to_nudge[length(items_to_nudge)] + items_to_nudge.Remove(items_to_nudge[length(items_to_nudge)]) + + storage_slot_list[storage_slots] = juice_box + update_icon() + +/obj/item/storage/fancy/juice_boxes/random + +/obj/item/storage/fancy/juice_boxes/random/populate_contents() + var/index = 1 + for(var/juice_type in typesof(/obj/item/reagent_containers/drinks/carton) - /obj/item/reagent_containers/drinks/carton) + if(prob(35)) + storage_slot_list[index] = new juice_type(src) + index++ + update_icon() + +/obj/item/storage/fancy/juice_boxes/full + +/obj/item/storage/fancy/juice_boxes/full/populate_contents() + new /obj/item/reagent_containers/drinks/carton/apple(src) + new /obj/item/reagent_containers/drinks/carton/banana(src) + new /obj/item/reagent_containers/drinks/carton/berry(src) + new /obj/item/reagent_containers/drinks/carton/carrot(src) + new /obj/item/reagent_containers/drinks/carton/grape(src) + new /obj/item/reagent_containers/drinks/carton/lemonade(src) + new /obj/item/reagent_containers/drinks/carton/orange(src) + new /obj/item/reagent_containers/drinks/carton/pineapple(src) + new /obj/item/reagent_containers/drinks/carton/plum(src) + new /obj/item/reagent_containers/drinks/carton/tomato(src) + new /obj/item/reagent_containers/drinks/carton/vegetable(src) + new /obj/item/reagent_containers/drinks/carton/watermelon(src) + storage_slot_list = contents.Copy() + update_icon() diff --git a/code/modules/client/preference/quirks/positive_quirks.dm b/code/modules/client/preference/quirks/positive_quirks.dm index 66631e6cbe0..1cebdea27e0 100644 --- a/code/modules/client/preference/quirks/positive_quirks.dm +++ b/code/modules/client/preference/quirks/positive_quirks.dm @@ -51,7 +51,7 @@ /obj/item/food/meatkebab, /obj/item/food/salmonsteak, // If anyone microwaves their leftover fish in the workplace it should be on sight /obj/item/food/shrimp_skewer, - /obj/item/food/omelette + /obj/item/food/omelette, ) var/list/snack_options = list( /obj/item/food/chips, @@ -63,8 +63,7 @@ /obj/item/food/candy/chocolate_orange, /obj/item/food/sliced/mothmallow, /obj/item/food/sliced/apple_cake, - /obj/item/food/sliced/banarnarbread - + /obj/item/food/sliced/banarnarbread, ) var/list/drink_options = list( /obj/item/reagent_containers/drinks/h_chocolate, @@ -75,7 +74,19 @@ /obj/item/reagent_containers/drinks/cans/space_up, /obj/item/reagent_containers/drinks/cans/iced_tea, /obj/item/reagent_containers/drinks/cans/starkist, - /obj/item/reagent_containers/drinks/bottle/beer // Don't tell your boss + /obj/item/reagent_containers/drinks/bottle/beer, // Don't tell your boss + /obj/item/reagent_containers/drinks/carton/apple, + /obj/item/reagent_containers/drinks/carton/banana, + /obj/item/reagent_containers/drinks/carton/berry, + /obj/item/reagent_containers/drinks/carton/carrot, + /obj/item/reagent_containers/drinks/carton/grape, + /obj/item/reagent_containers/drinks/carton/lemonade, + /obj/item/reagent_containers/drinks/carton/orange, + /obj/item/reagent_containers/drinks/carton/pineapple, + /obj/item/reagent_containers/drinks/carton/plum, + /obj/item/reagent_containers/drinks/carton/tomato, + /obj/item/reagent_containers/drinks/carton/vegetable, + /obj/item/reagent_containers/drinks/carton/watermelon, ) /obj/item/storage/box/papersack/prepped_meal/populate_contents() diff --git a/code/modules/food_and_drinks/drinks/drinks/carton.dm b/code/modules/food_and_drinks/drinks/drinks/carton.dm new file mode 100644 index 00000000000..79295628d5c --- /dev/null +++ b/code/modules/food_and_drinks/drinks/drinks/carton.dm @@ -0,0 +1,66 @@ +/obj/item/reagent_containers/drinks/carton + name = "Generic Drink Carton" + desc = ABSTRACT_TYPE_DESC + possible_transfer_amounts = list(5,10,15,20,25,30) + volume = 30 + icon = 'icons/obj/juice_box.dmi' + icon_state = null + +/obj/item/reagent_containers/drinks/carton/Initialize(mapload) + if(!length(list_reagents)) + return ..() + + desc = "A carton of pending drink." + . = ..() + + var/datum/reagent/drink_reagent = reagents.get_master_reagent() + name = "Stationside [drink_reagent.name] Box" + desc = "A carton of Stationside brand [lowertext(drink_reagent.name)]." + +/obj/item/reagent_containers/drinks/carton/apple + icon_state = "apple_box" + list_reagents = list("applejuice" = 30) + +/obj/item/reagent_containers/drinks/carton/banana + icon_state = "banana_box" + list_reagents = list("banana" = 30) + +/obj/item/reagent_containers/drinks/carton/berry + icon_state = "berry_box" + list_reagents = list("berryjuice" = 30) + +/obj/item/reagent_containers/drinks/carton/carrot + icon_state = "carrot_box" + list_reagents = list("carrotjuice" = 30) + +/obj/item/reagent_containers/drinks/carton/grape + icon_state = "grape_box" + list_reagents = list("grapejuice" = 30) + +/obj/item/reagent_containers/drinks/carton/lemonade + icon_state = "lemonade_box" + list_reagents = list("lemonade" = 30) + +/obj/item/reagent_containers/drinks/carton/orange + icon_state = "orange_box" + list_reagents = list("orangejuice" = 30) + +/obj/item/reagent_containers/drinks/carton/pineapple + icon_state = "pineapple_box" + list_reagents = list("pineapplejuice" = 30) + +/obj/item/reagent_containers/drinks/carton/plum + icon_state = "plum_box" + list_reagents = list("plumjuice" = 30) + +/obj/item/reagent_containers/drinks/carton/tomato + icon_state = "tomato_box" + list_reagents = list("tomatojuice" = 30) + +/obj/item/reagent_containers/drinks/carton/vegetable + icon_state = "vegetable_box" + list_reagents = list("vegjuice" = 30) + +/obj/item/reagent_containers/drinks/carton/watermelon + icon_state = "watermelon_box" + list_reagents = list("watermelonjuice" = 30) diff --git a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm index 670d2825043..7d7f8aaee9a 100644 --- a/code/modules/reagents/chemistry/reagents/drinks_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drinks_reagents.dm @@ -1,9 +1,9 @@ /datum/reagent/consumable/drink/orangejuice - name = "Orange juice" + name = "Orange Juice" id = "orangejuice" description = "Both delicious AND rich in Vitamin C, what more do you need?" drink_icon = "glass_orange" - drink_name = "Glass of Orange juice" + drink_name = "Glass of Orange Juice" drink_desc = "Vitamins! Yay!" taste_description = "orange juice" @@ -19,7 +19,7 @@ description = "Tomatoes made into juice. What a waste of big, juicy tomatoes, huh?" color = "#C00609" drink_icon = "glass_red" - drink_name = "Glass of Tomato juice" + drink_name = "Glass of Tomato Juice" drink_desc = "Are you sure this is tomato juice?" taste_description = "tomato juice" @@ -35,7 +35,7 @@ description = "Pineapples juiced into a liquid. Sweet and sugary." color = "#e5b437" drink_icon = "glass_orange" - drink_name = "Glass of pineapple juice" + drink_name = "Glass of Pineapple Juice" drink_desc = "A bright drink, sweet and sugary." taste_description = "pineapple juice" @@ -45,7 +45,7 @@ description = "The sweet-sour juice of limes." color = "#68E735" drink_icon = "glass_green" - drink_name = "Glass of Lime juice" + drink_name = "Glass of Lime Juice" drink_desc = "A glass of sweet-sour lime juice." taste_description = "lime juice" @@ -56,12 +56,12 @@ return ..() | update_flags /datum/reagent/consumable/drink/carrotjuice - name = "Carrot juice" + name = "Carrot Juice" id = "carrotjuice" description = "Just like a carrot, but without the crunching." color = "#FFA500" drink_icon = "carrotjuice" - drink_name = "Glass of carrot juice" + drink_name = "Glass of Carrot Juice" drink_desc = "Just like a carrot, but without the crunching." taste_description = "carrot juice" @@ -74,32 +74,32 @@ return ..() | update_flags /datum/reagent/consumable/drink/beetjuice - name = "Beet juice" + name = "Beet Juice" id = "beetjuice" description = "Sweet as a 'sugar beet' would imply." color = "#7E0243" drink_icon = "glass_magenta" - drink_name = "Glass of beet juice" + drink_name = "Glass of Beet Juice" drink_desc = "Sweet as a 'sugar beet' would imply." taste_description = "beet juice" /datum/reagent/consumable/drink/plumjuice - name = "Plum juice" + name = "Plum Juice" id = "plumjuice" description = "A fan favorite of old people across the galaxy." color = "#99305D" drink_icon = "glass_magenta" - drink_name = "Glass of plum juice" + drink_name = "Glass of Plum Juice" drink_desc = "A fan favorite of old people across the galaxy." taste_description = "prune juice" /datum/reagent/consumable/drink/lettucejuice - name = "Lettuce juice" + name = "Lettuce Juice" id = "lettucejuice" description = "They say you should eat your greens, but drinking them is just as good." color = "#79B330" drink_icon = "glass_green" - drink_name = "Glass of lettuce juice" + drink_name = "Glass of Lettuce Juice" drink_desc = "They say you should eat your greens, but drinking them is just as good." taste_description = "lettuce juice" @@ -126,7 +126,7 @@ description = "A refreshing mixed drink of orange, lemon and lime juice." color = "#B5FF00" drink_icon = "triplecitrus" - drink_name = "Glass of triple citrus Juice" + drink_name = "Glass of Triple Citrus Juice" drink_desc = "As colorful and healthy as it is delicious." taste_description = "citrus juice" @@ -142,7 +142,7 @@ description = "A delicious blend of several different kinds of berries." color = "#B23A4E" drink_icon = "berryjuice" - drink_name = "Glass of berry juice" + drink_name = "Glass of Berry Juice" drink_desc = "Berry juice. Or maybe it's jam. Who cares?" taste_description = "berry juice" @@ -152,7 +152,7 @@ description = "A tasty juice blended from various kinds of very deadly and toxic berries." color = "#B23A4E" drink_icon = "poisonberryjuice" - drink_name = "Glass of poison berry juice" + drink_name = "Glass of Poison Berry Juice" drink_desc = "A glass of deadly juice." taste_description = "berry juice" @@ -166,7 +166,7 @@ id = "applejuice" description = "The sweet juice of an apple, fit for all ages." color = "#FBF969" - drink_name = "Apple Juice" + drink_name = "Glass of Apple Juice" drink_desc = "Apple juice. Maybe it would have been better in a pie..." taste_description = "apple juice" @@ -175,7 +175,7 @@ id = "bungojuice" description = "Exotic! You feel like you are on vacation already." color = "#F9E43D" - drink_name = "Bungo Juice" + drink_name = "Glass of Bungo Juice" drink_desc = "Exotic! You feel like you are on vacation already." taste_description = "succulent bungo with an acidic poisonous tang" @@ -184,7 +184,7 @@ id = "watermelonjuice" description = "Delicious juice made from watermelon." color = "#ae2631" - drink_name = "Watermelon Juice" + drink_name = "Glass of Watermelon Juice" drink_desc = "Almost water." taste_description = "watermelon juice" @@ -194,7 +194,7 @@ description = "This juice is VERY sour." color = "#E5F249" drink_icon = "lemonglass" - drink_name = "Glass of lemonjuice" + drink_name = "Glass of Lemon Juice" drink_desc = "Sour..." taste_description = "lemon juice" @@ -203,7 +203,7 @@ id = "grapejuice" description = "This juice is known to stain shirts." color = "#993399" // rgb: 153, 51, 153 - drink_name = "Grape Juice" + drink_name = "Glass of Grape Juice" drink_desc = "If you leave it out for long enough, it might turn into wine." taste_description = "grape juice" @@ -214,7 +214,7 @@ color = "#F6F834" process_flags = ORGANIC | SYNTHETIC drink_icon = "banana" - drink_name = "Glass of banana juice" + drink_name = "Glass of Banana Juice" drink_desc = "The raw essence of a banana. HONK" taste_description = "banana juice" @@ -249,7 +249,7 @@ nutriment_factor = 2 * REAGENTS_METABOLISM color = "#302000" // rgb: 48, 32, 0 drink_icon = "glass_brown" - drink_name = "Glass of potato juice" + drink_name = "Glass of Potato Juice" drink_desc = "Who in the hell requests this? Gross!" taste_description = "puke, you're pretty sure" @@ -552,7 +552,7 @@ id = "pumpkinjuice" description = "Juiced from real pumpkin." color = "#FFA500" - drink_name = "Pumpkin Juice" + drink_name = "Glass of Pumpkin Juice" drink_desc = "Healthy and tasty!" taste_description = "autumn" @@ -561,7 +561,7 @@ id = "blumpkinjuice" description = "Juiced from real blumpkin." color = "#00BFFF" - drink_name = "Blumpkin Juice" + drink_name = "Glass of Blumpkin Juice" drink_desc = "Unhealthy and revolting! It seems to be glowing..." taste_description = "caustic puke" diff --git a/code/modules/supply/supply_packs/pack_organic.dm b/code/modules/supply/supply_packs/pack_organic.dm index 2fb53d52725..2e5a52f6adb 100644 --- a/code/modules/supply/supply_packs/pack_organic.dm +++ b/code/modules/supply/supply_packs/pack_organic.dm @@ -204,6 +204,15 @@ containername = "beer starter kit" announce_beacons = list("Bar" = list("Bar")) +/datum/supply_packs/organic/juice_boxes + name = "Stationside Juice Boxes Variety Pack" + contains = list(/obj/item/storage/fancy/juice_boxes/full, + /obj/item/storage/fancy/juice_boxes/full, + /obj/item/storage/fancy/juice_boxes/full, + ) + cost = 400 + containername = "juice box box box" + //////// livestock /datum/supply_packs/organic/cow name = "Cow Crate" @@ -454,4 +463,4 @@ cost = 150 containertype = /obj/structure/largecrate containername = "Bottler Unit Crate" - + diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 3083950d567..025a0130eb2 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/juice_box.dmi b/icons/obj/juice_box.dmi new file mode 100644 index 00000000000..31cf27dacc8 Binary files /dev/null and b/icons/obj/juice_box.dmi differ diff --git a/paradise.dme b/paradise.dme index 252d1532be7..bccef7b078c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -2200,6 +2200,7 @@ #include "code\modules\food_and_drinks\drinks\bottler\bottler_recipes.dm" #include "code\modules\food_and_drinks\drinks\drinks\bottle.dm" #include "code\modules\food_and_drinks\drinks\drinks\cans.dm" +#include "code\modules\food_and_drinks\drinks\drinks\carton.dm" #include "code\modules\food_and_drinks\drinks\drinks\drinkingglass.dm" #include "code\modules\food_and_drinks\drinks\drinks\mugs.dm" #include "code\modules\food_and_drinks\drinks\drinks\shotglass.dm"