From 7bec3db5f4e7204016f90a0eb905a521daf5a019 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Wed, 26 Aug 2020 02:36:15 +0200 Subject: [PATCH] Adds more quality of life for bartending. (#9630) --- code/game/atoms.dm | 6 +- code/game/objects/objs.dm | 2 +- code/modules/detectivework/tools/rag.dm | 9 +- code/modules/mob/living/carbon/taste.dm | 6 -- code/modules/reagents/dispenser/dispenser2.dm | 3 +- .../reagent_containers/food/drinks.dm | 3 + .../food/drinks/drinkingglass.dm | 82 ++++++++----------- html/changelogs/mattatlas-bartendingtime.yml | 44 ++++++++++ 8 files changed, 94 insertions(+), 61 deletions(-) create mode 100644 html/changelogs/mattatlas-bartendingtime.yml diff --git a/code/game/atoms.dm b/code/game/atoms.dm index a8f00240149..f559a9d78fc 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -416,7 +416,11 @@ src.germ_level = 0 if(istype(blood_DNA, /list)) blood_DNA = null - return 1 + return TRUE + +/atom/proc/on_rag_wipe(var/obj/item/reagent_containers/glass/rag/R) + clean_blood() + R.reagents.splash(src, 1) /atom/proc/get_global_map_pos() if(!islist(global_map) || isemptylist(global_map)) return diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index f7dbb110fbf..f090daeef74 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -252,4 +252,4 @@ // whether mobs can unequip and drop items into us or not /obj/proc/can_hold_dropped_items() - return TRUE \ No newline at end of file + return TRUE diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index 4cf42bf6510..0c0626b7f4f 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -109,20 +109,19 @@ if(!reagents.total_volume) to_chat(user, SPAN_WARNING("\The [initial(name)] is dry!")) else - if ( !(last_clean && world.time < last_clean + 120) ) - user.visible_message("\The [user] starts to wipe down \the [A] with \the [src]!") + if (!(last_clean && world.time < last_clean + 120) ) + user.visible_message("[user] starts to wipe [A] with [src].") clean_msg = TRUE last_clean = world.time else clean_msg = FALSE playsound(loc, 'sound/effects/mop.ogg', 25, 1) - reagents.splash(A, 1) //get a small amount of liquid on the thing we're wiping. update_name() update_icon() if(do_after(user,cleantime)) if(clean_msg) - user.visible_message("\The [user] finishes wiping off \the [A]!") - A.clean_blood() + user.visible_message("[user] finishes wiping [A].") + A.on_rag_wipe(src) /obj/item/reagent_containers/glass/rag/attack(atom/target as obj|turf|area, mob/user as mob , flag) if(isliving(target)) diff --git a/code/modules/mob/living/carbon/taste.dm b/code/modules/mob/living/carbon/taste.dm index 29e311bcfd9..0ef11113c6e 100644 --- a/code/modules/mob/living/carbon/taste.dm +++ b/code/modules/mob/living/carbon/taste.dm @@ -30,7 +30,6 @@ calculate text size per text. var/list/out = list() var/list/tastes = list() //descriptor = strength - var/lukewarm = 0 // should we allow it to be lukewarm or not if(minimum_percent <= 100) for(var/datum/reagent/R in reagent_list) if(!R.taste_mult) @@ -49,8 +48,6 @@ calculate text size per text. tastes[taste_desc] += taste_amount else tastes[taste_desc] = taste_amount - if(R.default_temperature >= (T0C + 15) && R.default_temperature <= (T0C + 25)) - lukewarm = 1 //deal with percentages var/total_taste = 0 @@ -82,9 +79,6 @@ calculate text size per text. temp_text = "cold" if(T0C to T0C + 15) temp_text = "cool" - if(T0C + 15 to T0C + 25) - if(lukewarm) - temp_text = "lukewarm" if(T0C + 25 to T0C + 40) temp_text = "warm" if(T0C + 40 to T0C + 100) diff --git a/code/modules/reagents/dispenser/dispenser2.dm b/code/modules/reagents/dispenser/dispenser2.dm index 79f336ff781..bc2f1760689 100644 --- a/code/modules/reagents/dispenser/dispenser2.dm +++ b/code/modules/reagents/dispenser/dispenser2.dm @@ -22,7 +22,6 @@ /obj/machinery/chemical_dispenser/Initialize() . = ..() - if(spawn_cartridges) for(var/type in spawn_cartridges) add_cartridge(new type(src)) @@ -166,7 +165,7 @@ else if(href_list["ejectBeaker"]) if(container) var/obj/item/reagent_containers/B = container - B.forceMove(loc) + usr.put_in_hands(B) container = null if(icon_state_active) icon_state = initial(icon_state) diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index d47700ecb39..ad2f0e7d901 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -36,6 +36,9 @@ If you add a drink with no empty icon sprite, ensure it is flagged as NO_EMPTY_I /obj/item/reagent_containers/food/drinks/on_reagent_change() update_icon() +/obj/item/reagent_containers/food/drinks/on_rag_wipe(var/obj/item/reagent_containers/glass/rag/R) + clean_blood() + /obj/item/reagent_containers/food/drinks/update_icon() if(!reagents.total_volume) if(drink_flags & UNIQUE_EMPTY_ICON) diff --git a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm index 512c8cbd855..f2426aae57e 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/drinkingglass.dm @@ -6,59 +6,49 @@ icon_state = "glass_empty" amount_per_transfer_from_this = 5 volume = 30 - unacidable = 1 //glass + unacidable = TRUE //glass center_of_mass = list("x"=16, "y"=10) drop_sound = 'sound/items/drop/drinkglass.ogg' - pickup_sound = 'sound/items/pickup/drinkglass.ogg' + pickup_sound = 'sound/items/pickup/drinkglass.ogg' matter = list(MATERIAL_GLASS = 300) drink_flags = NO_EMPTY_ICON //This should not be removed unless a total overhaul of drink reagent sprites is done. - on_reagent_change() - /*if(reagents.reagent_list.len > 1 ) - icon_state = "glass_brown" - name = "Glass of Hooch" - desc = "Two or more drinks, mixed together."*/ - /*else if(reagents.reagent_list.len == 1) - for(var/datum/reagent/R in reagents.reagent_list) - switch(R.type)*/ - if (reagents.reagent_list.len > 0) - var/datum/reagent/R = reagents.get_master_reagent() +/obj/item/reagent_containers/food/drinks/drinkingglass/on_reagent_change() + if (reagents.reagent_list.len > 0) + var/datum/reagent/R = reagents.get_master_reagent() - if(R.glass_icon_state) - icon_state = R.glass_icon_state - else - icon_state = "glass_brown" - - if(R.glass_name) - name = R.glass_name - else - name = "glass of.. what?" - - if(R.glass_desc) - desc = R.glass_desc - else - desc = "You can't really tell what this is." - - if(R.glass_center_of_mass) - center_of_mass = R.glass_center_of_mass - else - center_of_mass = list("x"=16, "y"=10) + if(R.glass_icon_state) + icon_state = R.glass_icon_state + else + icon_state = "nothing" + + if(R.glass_name) + name = R.glass_name + else + name = "glass of something" + + if(R.glass_desc) + desc = R.glass_desc + else + desc = "You can't really tell what this is." + + if(R.glass_center_of_mass) + center_of_mass = R.glass_center_of_mass else - icon_state = "glass_empty" - name = "glass" - desc = "Your standard drinking glass." center_of_mass = list("x"=16, "y"=10) - return + else + icon_state = "glass_empty" + name = "glass" + desc = "Your standard drinking glass." + center_of_mass = list("x"=16, "y"=10) -// for /obj/machinery/vending/sovietsoda -/obj/item/reagent_containers/food/drinks/drinkingglass/soda - Initialize() - . = ..() - reagents.add_reagent(/datum/reagent/drink/sodawater, 50) - on_reagent_change() +// for /obj/machinery/vending/sovietsoda +/obj/item/reagent_containers/food/drinks/drinkingglass/soda/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/drink/sodawater, 50) + on_reagent_change() -/obj/item/reagent_containers/food/drinks/drinkingglass/cola - Initialize() - . = ..() - reagents.add_reagent(/datum/reagent/drink/space_cola, 50) - on_reagent_change() +/obj/item/reagent_containers/food/drinks/drinkingglass/cola/Initialize() + . = ..() + reagents.add_reagent(/datum/reagent/drink/space_cola, 50) + on_reagent_change() diff --git a/html/changelogs/mattatlas-bartendingtime.yml b/html/changelogs/mattatlas-bartendingtime.yml new file mode 100644 index 00000000000..b07c7256a5c --- /dev/null +++ b/html/changelogs/mattatlas-bartendingtime.yml @@ -0,0 +1,44 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Glass of.. what? renamed to glass of something. The sprite is also now white instead of brown." + - tweak: "Dispensers of all kinds now eject items to your hands." + - tweak: "Rags no longer put water in reagent containers. Also generalized wipedown functionality so it can be overridden by atoms." + - tweak: "Reagents will no longer display lukewarm when drank." \ No newline at end of file