diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index ce79de34f6b..9d476d964ee 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -410,6 +410,20 @@ /obj/item/storage/bag/trash/cyborg = /obj/item/storage/bag/trash/bluespace/cyborg ) +/***********************/ +// MARK: Service +/***********************/ + +/obj/item/borg/upgrade/rsf_executive + name = "executive service upgrade" + desc = "An upgrade that replaces a service cyborg's Rapid Service Fabricator with a classy Executive version." + icon_state = "cyborg_upgrade5" + origin_tech = "bio=2;materials=1" + require_module = TRUE + module_type = /obj/item/robot_module/butler + items_to_add = list(/obj/item/kitchen/knife/cheese) + items_to_replace = list(/obj/item/rsf = /obj/item/rsf/executive) + /***********************/ // MARK: Syndicate /***********************/ diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 3fcc330ad13..dc9d02135ad 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -131,6 +131,11 @@ icon_state = "popsicle_stick_s" desc = "Still tastes sweet." +/obj/item/trash/caviar + name = "caviar can" + icon_state = "caviar-empty" + desc = "There's none left." + // Ammo casings /obj/item/trash/spentcasing icon = 'icons/obj/ammo.dmi' diff --git a/code/game/objects/items/weapons/RSF.dm b/code/game/objects/items/weapons/RSF.dm index a9ca00fa7ff..c92cd28bb05 100644 --- a/code/game/objects/items/weapons/RSF.dm +++ b/code/game/objects/items/weapons/RSF.dm @@ -16,13 +16,8 @@ var/atom/currently_dispensing var/power_mode = POWER_NONE -/obj/item/rsf/attack_self__legacy__attackchain(mob/user) - playsound(loc, 'sound/effects/pop.ogg', 50, 0) - if(!currently_dispensing) - to_chat(user, "Choose an item to dispense!") - else - to_chat(user, "You are currently dispensing a [initial(currently_dispensing.name)].") - var/static/list/rsf_items = list("Drinking Glass" = /obj/item/reagent_containers/drinks/drinkingglass, + var/list/rsf_items = list( + "Drinking Glass" = /obj/item/reagent_containers/drinks/drinkingglass, "Paper" = /obj/item/paper, "Pen" = /obj/item/pen, "Dice Pack" = /obj/item/storage/bag/dice, @@ -30,8 +25,12 @@ "Newdles" = /obj/item/food/chinese/newdles, "Donut" = /obj/item/food/donut, "Chicken Soup" = /obj/item/reagent_containers/drinks/chicken_soup, - "Tofu Burger" = /obj/item/food/burger/tofu) - var/static/list/rsf_icons = list("Drinking Glass" = image(icon = 'icons/obj/drinks.dmi', icon_state = "glass_empty"), + "Tofu Burger" = /obj/item/food/burger/tofu + ) + + var/static/list/rsf_icons = list( + "Drinking Glass" = image(icon = 'icons/obj/drinks.dmi', icon_state = "glass_empty"), + "Shot Glass" = image(icon = 'icons/obj/drinks.dmi', icon_state = "shotglass"), "Paper" = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "paper"), "Pen" = image(icon = 'icons/obj/bureaucracy.dmi', icon_state = "pen"), "Dice Pack" = image(icon = 'icons/obj/dice.dmi', icon_state = "dicebag"), @@ -39,34 +38,52 @@ "Newdles" = image(icon = 'icons/obj/food/food.dmi', icon_state = "chinese3"), "Donut" = image(icon = 'icons/obj/food/bakedgoods.dmi', icon_state = "donut1"), "Chicken Soup" = image(icon = 'icons/obj/drinks.dmi', icon_state = "soupcan"), - "Tofu Burger" = image(icon = 'icons/obj/food/burgerbread.dmi', icon_state = "tofuburger")) - var/rsf_radial_choice = show_radial_menu(user, src, rsf_icons) + "Tofu Burger" = image(icon = 'icons/obj/food/burgerbread.dmi', icon_state = "tofuburger"), + "Cigar" = image(icon = 'icons/obj/clothing/masks.dmi', icon_state = "cigaroff"), + "Smoked Cheese" = image(icon = 'icons/obj/food/food.dmi', icon_state = "cheesewheel-smoked"), + "Edam Cheese" = image(icon = 'icons/obj/food/food.dmi', icon_state = "cheesewheel-edam"), + "Blue Cheese" = image(icon = 'icons/obj/food/food.dmi', icon_state = "cheesewheel-blue"), + "Camembert Cheese" = image(icon = 'icons/obj/food/food.dmi', icon_state = "cheesewheel-camembert"), + "Caviar" = image(icon = 'icons/obj/food/seafood.dmi', icon_state = "caviar") + ) + + var/static/list/power_costs = list( + "Drinking Glass" = POWER_LOW, + "Shot Glass" = POWER_LOW, + "Paper" = POWER_LOW, + "Pen" = POWER_LOW, + "Dice Pack" = POWER_LOW, + "Cigarette" = POWER_LOW, + "Newdles" = POWER_HIGH, + "Donut" = POWER_HIGH, + "Chicken Soup" = POWER_HIGH, + "Tofu Burger" = POWER_HIGH, + "Cigar" = POWER_LOW, + "Smoked Cheese" = POWER_HIGH, + "Edam Cheese" = POWER_HIGH, + "Blue Cheese" = POWER_HIGH, + "Camembert Cheese" = POWER_HIGH, + "Caviar" = POWER_HIGH + ) + +/obj/item/rsf/attack_self__legacy__attackchain(mob/user) + playsound(loc, 'sound/effects/pop.ogg', 50, FALSE) + if(!currently_dispensing) + to_chat(user, "Choose an item to dispense!") + else + to_chat(user, "You are currently dispensing a [initial(currently_dispensing.name)].") + + var/rsf_radial_choice = show_radial_menu(user, src, get_radial_contents()) if(user.stat || !in_range(user, src)) return currently_dispensing = rsf_items[rsf_radial_choice] - switch(rsf_radial_choice) - if("Drinking Glass") - power_mode = POWER_LOW - if("Paper") - power_mode = POWER_LOW - if("Pen") - power_mode = POWER_LOW - if("Dice Pack") - power_mode = POWER_LOW - if("Cigarette") - power_mode = POWER_LOW - if("Newdles") - power_mode = POWER_HIGH - if("Donut") - power_mode = POWER_HIGH - if("Chicken Soup") - power_mode = POWER_HIGH - if("Tofu Burger") - power_mode = POWER_HIGH + power_mode = power_costs[rsf_radial_choice] if(currently_dispensing) to_chat(user, "Your RSF has been configured to now dispense a [initial(currently_dispensing.name)]!") return TRUE +/obj/item/rsf/proc/get_radial_contents() + return rsf_icons & rsf_items /obj/item/rsf/afterattack__legacy__attackchain(atom/A, mob/user, proximity) if(!currently_dispensing) @@ -88,6 +105,27 @@ playsound(loc, 'sound/machines/click.ogg', 10, 1) new currently_dispensing(T) +/obj/item/rsf/executive + name = "\improper Executive-Service-Fabricator" + desc = "A fancier version of the RSF, used to deploy classy refreshments and materials to high ranking clientelle." + icon_state = "rsf-exec" + + rsf_items = list( + "Drinking Glass" = /obj/item/reagent_containers/drinks/drinkingglass, + "Shot Glass" = /obj/item/reagent_containers/drinks/drinkingglass/shotglass, + "Paper" = /obj/item/paper, + "Pen" = /obj/item/pen, + "Dice Pack" = /obj/item/storage/bag/dice, + "Cigar" = /obj/item/clothing/mask/cigarette/cigar, + "Cigarette" = /obj/item/clothing/mask/cigarette, + "Smoked Cheese" = /obj/item/food/sliceable/cheesewheel/smoked, + "Edam Cheese" = /obj/item/food/sliceable/cheesewheel/edam, + "Blue Cheese" = /obj/item/food/sliceable/cheesewheel/blue, + "Camembert Cheese" = /obj/item/food/sliceable/cheesewheel/camembert, + "Caviar" = /obj/item/food/caviar, + "Donut" = /obj/item/food/donut + ) + #undef POWER_NONE #undef POWER_LOW #undef POWER_HIGH diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index c176eea3c8d..ab8529afb20 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -219,6 +219,12 @@ desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable." origin_tech = null +/obj/item/kitchen/knife/cheese + name = "cheese knife" + desc = "A blunt knife used to slice cheese." + icon_state = "knife-cheese" + force = 3 + /* * Rolling Pins */ diff --git a/code/modules/food_and_drinks/food/foods/ingredients.dm b/code/modules/food_and_drinks/food/foods/ingredients.dm index c30770175fc..da8df590bd8 100644 --- a/code/modules/food_and_drinks/food/foods/ingredients.dm +++ b/code/modules/food_and_drinks/food/foods/ingredients.dm @@ -54,6 +54,68 @@ filling_color = "#FFF700" tastes = list("cheese" = 1) +/obj/item/food/sliceable/cheesewheel/smoked + name = "smoked cheese wheel" + desc = "A wheel of fancy imported-style smoked cheese." + icon_state = "cheesewheel-smoked" + slice_path = /obj/item/food/cheesewedge/smoked + slices_num = 4 + list_reagents = list("nutriment" = 2, "vitamin" = 2, "cheese" = 15) + tastes = list("cheese" = 1, "smoke" = 2) + +/obj/item/food/cheesewedge/smoked + name = "smoked cheese wedge" + desc = "A wedge of fancy smoked cheese." + icon_state = "cheesewedge-smoked" + tastes = list("cheese" = 1, "smoke" = 2) + +/obj/item/food/sliceable/cheesewheel/edam + name = "edam cheese wheel" + desc = "A wheel of mild edam cheese." + icon_state = "cheesewheel-edam" + slice_path = /obj/item/food/cheesewedge/edam + slices_num = 4 + list_reagents = list("nutriment" = 2, "vitamin" = 2, "cheese" = 15) + tastes = list("cheese" = 1, "salt" = 2, "almonds" = 2) + +/obj/item/food/cheesewedge/edam + name = "edam cheese wedge" + desc = "A wedge of mild edam cheese. It's said to have a nutty flavor." + icon_state = "cheesewedge-edam" + tastes = list("cheese" = 1, "salt" = 2, "almonds" = 2) + +/obj/item/food/sliceable/cheesewheel/blue + name = "blue cheese wheel" + desc = "A wheel of pungent blue cheese. It's an acquired taste..." + icon_state = "cheesewheel-blue" + slice_path = /obj/item/food/cheesewedge/blue + slices_num = 5 + list_reagents = list("nutriment" = 2, "vitamin" = 2, "cheese" = 10) + tastes = list("strong cheese" = 2, "salt" = 1, "bitter mold" = 1) + +/obj/item/food/cheesewedge/blue + name = "blue cheese wedge" + desc = "A wedge of pungent blue cheese. The flavor is... intense." + icon_state = "cheesewedge-blue" + bitesize = 2 + tastes = list("strong cheese" = 2, "salt" = 1, "bitter mold" = 1) + +/obj/item/food/sliceable/cheesewheel/camembert + name = "camembert cheese wheel" + desc = "A miniature wheel of gooey camembert. Yum..." + icon_state = "cheesewheel-camembert" + slice_path = /obj/item/food/cheesewedge/camembert + slices_num = 2 + list_reagents = list("nutriment" = 1, "vitamin" = 2, "cheese" = 6) + tastes = list("mild cheese" = 3, "gooeyness" = 1) + +/obj/item/food/cheesewedge/camembert + name = "camembert cheese slice" + desc = "A piece of camembert. It's soft and gooey." + icon_state = "cheesewedge-camembert" + bitesize = 2 + tastes = list("mild cheese" = 3, "gooeyness" = 1) + /obj/item/food/cheesewedge/checkpass(passflag) if((passflag & PASSDOOR) && ismouse(pulledby)) return TRUE diff --git a/code/modules/food_and_drinks/food/foods/seafood.dm b/code/modules/food_and_drinks/food/foods/seafood.dm index 5291a48db63..a381e3ae20b 100644 --- a/code/modules/food_and_drinks/food/foods/seafood.dm +++ b/code/modules/food_and_drinks/food/foods/seafood.dm @@ -368,3 +368,13 @@ list_reagents = list("nutriment" = 2) tastes = list("grilled eel" = 1, "seaweed" = 1) goal_difficulty = FOOD_GOAL_NORMAL + +/obj/item/food/caviar + name = "\improper Three-Star caviar" + desc = "A small, pretentious looking can of fish eggs." + icon = 'icons/obj/food/seafood.dmi' + icon_state = "caviar" + bitesize = 1 + trash = /obj/item/trash/caviar + list_reagents = list("protein" = 5) + tastes = list("fish" = 2, "high society" = 1) diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 45357c571e2..fb709fa9dc9 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1303,6 +1303,16 @@ construction_time = 12 SECONDS category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_rsf_executive + name = "Cyborg Upgrade (Executive Service Upgrade)" + id = "borg_upgrade_RSF_executive" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/rsf_executive + req_tech = list("materials" = 2, "biotech" = 3) + materials = list(MAT_METAL = 10000, MAT_GLASS = 6000, MAT_GOLD = 2000) + construction_time = 12 SECONDS + category = list("Cyborg Upgrade Modules") + //Misc /datum/design/mecha_tracking name = "Exosuit Tracking Beacon" diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index d5a6a5c1f09..19a43ff7d57 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/food/seafood.dmi b/icons/obj/food/seafood.dmi index 45b3050244a..6984cbcd36b 100644 Binary files a/icons/obj/food/seafood.dmi and b/icons/obj/food/seafood.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index fa69bb43736..cd23f4d6697 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/tools.dmi b/icons/obj/tools.dmi index cd7f22b04e2..b0d19f5de99 100644 Binary files a/icons/obj/tools.dmi and b/icons/obj/tools.dmi differ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index c1b0445568d..ef669b16b01 100644 Binary files a/icons/obj/trash.dmi and b/icons/obj/trash.dmi differ