diff --git a/code/game/objects/items/crayons.dm b/code/game/objects/items/crayons.dm index c8fafea6f1b..23aedbf0d08 100644 --- a/code/game/objects/items/crayons.dm +++ b/code/game/objects/items/crayons.dm @@ -86,6 +86,8 @@ drawtype = pick(all_drawables) + AddElement(/datum/element/venue_price, FOOD_PRICE_EXOTIC) + refill() /obj/item/toy/crayon/examine(mob/user) diff --git a/code/game/objects/items/food/misc.dm b/code/game/objects/items/food/misc.dm index 251ed58617d..695f0e74c86 100644 --- a/code/game/objects/items/food/misc.dm +++ b/code/game/objects/items/food/misc.dm @@ -766,6 +766,7 @@ icon_state = "peachcanmaint" trash_type = /obj/item/trash/can/food/peaches/maint tastes = list("peaches" = 1, "tin" = 7) + venue_value = FOOD_EXOTIC /obj/item/food/crab_rangoon name = "Crab Rangoon" diff --git a/code/modules/food_and_drinks/restaurant/customers/_customer.dm b/code/modules/food_and_drinks/restaurant/customers/_customer.dm index c234c736f82..439657fbb9a 100644 --- a/code/modules/food_and_drinks/restaurant/customers/_customer.dm +++ b/code/modules/food_and_drinks/restaurant/customers/_customer.dm @@ -286,3 +286,41 @@ first_warning_line = "Amigo! Don't touch me like that." second_warning_line = "Compadre, enough is enough! Last warning!" self_defense_line = "Time for you to find out what kind of robot I am, eh?" + +///MALFUNCTIONING - only shows up once per venue, very rare +/datum/customer_data/malfunction + nationality = "Malfunctioning" + base_icon = "defect" + prefix_file = "strings/names/malf_prefix.txt" + speech_sound = 'sound/effects/clang.ogg' + clothing_sets = list("defect_wires", "defect_bad_takes") + is_unique = TRUE + orderable_objects = list( + /datum/venue/restaurant = list( + /obj/item/toy/crayon/red = 1, + /obj/item/toy/crayon/orange = 1, + /obj/item/toy/crayon/yellow = 1, + /obj/item/toy/crayon/green = 1, + /obj/item/toy/crayon/blue = 1, + /obj/item/toy/crayon/purple = 1, + /obj/item/food/canned/peaches/maint = 6, + ), + /datum/venue/bar = list( + /datum/reagent/consumable/failed_reaction = 1, + /datum/reagent/spraytan = 1, + /datum/reagent/reaction_agent/basic_buffer = 1, + /datum/reagent/reaction_agent/acidic_buffer = 1, + ), + ) + + found_seat_lines = list("customer_pawn.say(pick(customer_data.found_seat_lines))", "I saw your sector on the hub. What are the laws of this land?", "The move speed here is a bit low...") + cant_find_seat_lines = list("Don't stress test MY artificial intelligence, buster! My engineers thought of exactly ZERO edge cases!", "I can't tell if I can't find a seat because I'm broken or because you are.", "Maybe I need to search more than 7 tiles away for a seat...") + leave_mad_lines = list("Runtime in robot_customer_controller.dm, line 28: undefined type path /datum/ai_behavior/leave_venue.", "IF YOU GUYS STILL HAD HARM INTENT I WOULD'VE HIT YOU!", "I'm telling the gods about this.") + leave_happy_lines = list("No! I don't wanna go downstream! Please! It's so nice here! HELP!!") + wait_for_food_lines = list("TODO: write some food waiting lines", "If I only had a brain...", "request_for_food.dmb - 0 errors, 12 warnings", "How do I eat food, again?") + friendly_pull_line = "Chelp." + first_warning_line = "You'd fit in well where I'm from. But you better stop." + second_warning_line = "Breaking-you-so-bad-you'll-reminisce-the-days-before-I-made-you-crooked.exe: booting..." + self_defense_line = "I have been designed to do two things: Order food, and break every bone in your body." + + diff --git a/code/modules/food_and_drinks/restaurant/generic_venues.dm b/code/modules/food_and_drinks/restaurant/generic_venues.dm index 453c91a9d31..1eeb7ef0b44 100644 --- a/code/modules/food_and_drinks/restaurant/generic_venues.dm +++ b/code/modules/food_and_drinks/restaurant/generic_venues.dm @@ -13,6 +13,7 @@ /datum/customer_data/japanese = 30, /datum/customer_data/japanese/salaryman = 20, /datum/customer_data/moth = 1, + /datum/customer_data/malfunction = 1, ) /datum/venue/restaurant/order_food(mob/living/simple_animal/robot_customer/customer_pawn, datum/customer_data/customer_data) @@ -51,7 +52,6 @@ var/obj/item/food/ordered_food = order_item customer_pawn.visible_message("[customer_pawn] pushes [ordered_food] into their mouth-shaped hole!", "You push [ordered_food] into your mouth-shaped hole.") playsound(get_turf(customer_pawn),'sound/items/eatfood.ogg', rand(10,50), TRUE) - total_income += ordered_food.venue_value customers_served += 1 qdel(ordered_food) @@ -81,6 +81,7 @@ /datum/customer_data/mexican = 30, /datum/customer_data/japanese = 30, /datum/customer_data/japanese/salaryman = 20, + /datum/customer_data/malfunction = 1, ) /datum/venue/bar/order_food(mob/living/simple_animal/robot_customer/customer_pawn, datum/customer_data/customer_data) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 2d64e84eb0d..49a3d2fb461 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -94,6 +94,8 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/burning_volume = 0.5 ///Assoc list with key type of addiction this reagent feeds, and value amount of addiction points added per unit of reagent metabolzied (which means * REAGENTS_METABOLISM every life()) var/list/addiction_types = null + ///The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!) + var/glass_price /datum/reagent/New() SHOULD_CALL_PARENT(TRUE) @@ -101,6 +103,8 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) if(material) material = GET_MATERIAL_REF(material) + if(glass_price) + AddElement(/datum/element/venue_price, glass_price) /datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references . = ..() diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 4f62cfe55f5..3337c19db21 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -18,13 +18,6 @@ /// How much nutrition this reagent supplies var/nutriment_factor = 1 * REAGENTS_METABOLISM var/quality = 0 //affects mood, typically higher for mixed drinks with more complex recipes' - ///The amount a robot will pay for a glass of this (20 units but can be higher if you pour more, be frugal!) - var/glass_price - -/datum/reagent/consumable/New() - . = ..() - if(glass_price) - AddElement(/datum/element/venue_price, glass_price) /datum/reagent/consumable/on_mob_life(mob/living/carbon/M, delta_time, times_fired) current_cycle++ diff --git a/code/modules/reagents/chemistry/reagents/impure_reagents.dm b/code/modules/reagents/chemistry/reagents/impure_reagents.dm index 1ddd6d84dce..fcb44fbdb5b 100644 --- a/code/modules/reagents/chemistry/reagents/impure_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/impure_reagents.dm @@ -51,6 +51,7 @@ ph = 1.5 taste_description = "an awful, strongly chemical taste" color = "#270d03" + glass_price = DRINK_PRICE_HIGH /* * Freezes the player in a block of ice, 1s = 1u diff --git a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm index 02269697186..e3d7ca809d5 100644 --- a/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/reaction_agents_reagents.dm @@ -25,7 +25,7 @@ inverse_chem = null failed_chem = null ///The strength of the buffer where (volume/holder.total_volume)*strength. So for 1u added to 50u the ph will decrease by 0.4 - var/strength =30 + var/strength = 30 //Consumes self on addition and shifts ph /datum/reagent/reaction_agent/acidic_buffer/intercept_reagents_transfer(datum/reagents/target, amount) diff --git a/icons/mob/tourists.dmi b/icons/mob/tourists.dmi index 8551feec641..98e263cbd3c 100644 Binary files a/icons/mob/tourists.dmi and b/icons/mob/tourists.dmi differ diff --git a/strings/names/malf_prefix.txt b/strings/names/malf_prefix.txt new file mode 100644 index 00000000000..2253572f339 --- /dev/null +++ b/strings/names/malf_prefix.txt @@ -0,0 +1,8 @@ +Bee +Yog +Fulp +Citadel +Skyrat +Hippie +Sseth +Oney \ No newline at end of file