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>
This commit is contained in:
ExusA
2024-12-06 14:03:58 +00:00
committed by GitHub
co-authored by 1080pCat
parent ab0627b264
commit 584e6b26d5
12 changed files with 175 additions and 30 deletions
@@ -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
/***********************/
+5
View File
@@ -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'
+68 -30
View File
@@ -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
*/