diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 3e7c00f3d0ff..201e34654624 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -510,6 +510,34 @@ /obj/item/storage/pill_bottle/proc/error_idlock(mob/user) to_chat(user, SPAN_WARNING("It must have some kind of ID lock...")) +/obj/item/storage/pill_bottle/proc/choose_color(mob/user) + if(!user) + user = usr + var/static/list/possible_colors = list( + "Orange" = "", + "Blue" = "1", + "Yellow" = "2", + "Light Purple" = "3", + "Light Grey" = "4", + "White" = "5", + "Light Green" = "6", + "Cyan" = "7", + "Bordeaux" = "8", + "Aquamarine" = "9", + "Grey" = "10", + "Red" = "11", + "Black" = "12", + ) + var/selected_color = tgui_input_list(user, "Select a color.", "Color choice", possible_colors) + if(!selected_color) + return + + selected_color = possible_colors[selected_color] + + icon_state = "pill_canister" + selected_color + to_chat(user, SPAN_NOTICE("You color [src].")) + update_icon() + /obj/item/storage/pill_bottle/verb/set_maptext() set category = "Object" set name = "Set short label (on-sprite)" diff --git a/code/game/objects/items/tools/misc_tools.dm b/code/game/objects/items/tools/misc_tools.dm index 06f42aacd56c..b016f0e67b33 100644 --- a/code/game/objects/items/tools/misc_tools.dm +++ b/code/game/objects/items/tools/misc_tools.dm @@ -58,6 +58,10 @@ if(isturf(A)) to_chat(user, SPAN_WARNING("The label won't stick to that.")) return + if(istype(A, /obj/item/storage/pill_bottle)) + var/obj/item/storage/pill_bottle/target_pill_bottle = A + target_pill_bottle.choose_color(user) + if(!label || !length(label)) remove_label(A, user) return diff --git a/code/modules/reagents/chemistry_machinery/chem_master.dm b/code/modules/reagents/chemistry_machinery/chem_master.dm index dc5206bb2df5..5b145f75940f 100644 --- a/code/modules/reagents/chemistry_machinery/chem_master.dm +++ b/code/modules/reagents/chemistry_machinery/chem_master.dm @@ -141,7 +141,15 @@ if(length(label) < 3) loaded_pill_bottle.maptext_label = label loaded_pill_bottle.update_icon() + else if(href_list["setcolor"]) + // Checking for state changes + if(!loaded_pill_bottle) + return + + if(!Adjacent(usr)) + return + loaded_pill_bottle.choose_color() else if(href_list["close"]) close_browser(user, "chemmaster") @@ -355,7 +363,8 @@ if(pill_maker) if(loaded_pill_bottle) dat += "Eject [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]
" - dat += "Add label to [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]

" + dat += "Add label to [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]
" + dat += "Set color to [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\]

" dat += "Transfer [loaded_pill_bottle] \[[loaded_pill_bottle.contents.len]/[loaded_pill_bottle.max_storage_space]\] to the smartfridge

" else dat += "No pill bottle inserted.

"