Adds the RSF Executive Service Upgrade for cyborgs (#27371)
* Adds the Executive RSF cyborg upgrade. First commit for the Executive RSF with basic functionality. * Add cheese knife Adds a cheese knife along with the RSF upgrade to cut the cheese. * Executive RSF Upgrade functionality. Adds cheeses, caviar, cheese knife, and reorders RSF code to be neater. * Nerf cyborg cheeses Nerfs cyborg cheeses to be worse than chef food. * Resprites Smoked Cheese * Fixes power cost calculation * Cleanup * Standardize tech and Materials cost * Adds caviar trash Adds an empty caviar can. * Edam and flavor Add Edam Adjusts flavors to compete with cheese reagent * Undo sprinkled donut Undid changes to RSF donut * Fix RSF icon missed pixel * Boolean fix Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com> Signed-off-by: ExusA <67055922+ExusA@users.noreply.github.com> * Resprites basic cheese Resprites basic cheese at the request of @DGamerL * Update new cheese sprite Adds wax to the new cheese. * Delete unused cheese icon Deletes a prototype cheese icon. * Readds normal cigarettes to the executive RSF Adds normal cigarettes back to the RSF at Fordoxia's request. * Turns caviar from red to black Rebrands caviar into the fancier, black variety * Deconflict --------- Signed-off-by: ExusA <67055922+ExusA@users.noreply.github.com> Co-authored-by: 1080pCat <96908085+1080pCat@users.noreply.github.com>
@@ -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
|
||||
/***********************/
|
||||
|
||||
@@ -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'
|
||||
|
||||
@@ -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, "<span class='notice'>Choose an item to dispense!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You are currently dispensing a [initial(currently_dispensing.name)].</span>")
|
||||
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, "<span class='notice'>Choose an item to dispense!</span>")
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You are currently dispensing a [initial(currently_dispensing.name)].</span>")
|
||||
|
||||
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, "<span class='notice'>Your RSF has been configured to now dispense a [initial(currently_dispensing.name)]!</span>")
|
||||
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
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 13 KiB |