diff --git a/code/game/sound.dm b/code/game/sound.dm index fa311c5ece524..7d63311d301fa 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -133,6 +133,8 @@ 'sound/machines/terminal_button07.ogg', 'sound/machines/terminal_button08.ogg') if ("desceration") soundin = pick('sound/misc/desceration-01.ogg', 'sound/misc/desceration-02.ogg', 'sound/misc/desceration-03.ogg') + if ("can_open") + soundin = pick('sound/effects/can_open1.ogg', 'sound/effects/can_open2.ogg', 'sound/effects/can_open3.ogg') return soundin /proc/playsound_global(file, repeat=0, wait, channel, volume) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index 08fc5391201c1..b776ed292074f 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -29,6 +29,10 @@ if(!canconsume(M, user)) return 0 + + if (!is_open_container()) + to_chat(user, "[src]'s lid hasn't been opened!") + return 0 if(M == user) to_chat(M, "You swallow a gulp of [src].") @@ -50,6 +54,10 @@ /obj/item/weapon/reagent_containers/food/drinks/afterattack(obj/target, mob/user , proximity) if(!proximity) return if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + + if (!is_open_container()) + to_chat(user, "[target]'s tab isn't open!") + return if(!target.reagents.total_volume) to_chat(user, "[target] is empty.") @@ -87,11 +95,17 @@ to_chat(user, "You heat [src] with [I].") reagents.handle_reactions() ..() + + + + + //////////////////////////////////////////////////////////////////////////////// /// Drinks. END //////////////////////////////////////////////////////////////////////////////// + /obj/item/weapon/reagent_containers/food/drinks/trophy name = "pewter cup" desc = "Everyone gets a trophy." @@ -312,7 +326,9 @@ /obj/item/weapon/reagent_containers/food/drinks/soda_cans name = "soda can" - + container_type = 0 + spillable = FALSE + /obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user) if(M == user && !src.reagents.total_volume && user.a_intent == INTENT_HARM && user.zone_selected == "head") user.visible_message("[user] crushes the can of [src] on [user.p_their()] forehead!", "You crush the can of [src] on your forehead.") @@ -321,6 +337,16 @@ crushed_can.icon_state = icon_state qdel(src) ..() + + +/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack_self(mob/user) + if(!is_open_container()) + to_chat(user, "You pull back the tab of \the [src] with a satisfying pop.") //Ahhhhhhhh + container_type = OPENCONTAINER + playsound(src, "can_open", 50, 1) + spillable = TRUE + return + return ..() /obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola name = "Space Cola" diff --git a/sound/effects/can_open1.ogg b/sound/effects/can_open1.ogg new file mode 100644 index 0000000000000..4b38ab77038e6 Binary files /dev/null and b/sound/effects/can_open1.ogg differ diff --git a/sound/effects/can_open2.ogg b/sound/effects/can_open2.ogg new file mode 100644 index 0000000000000..0b054c23c69dc Binary files /dev/null and b/sound/effects/can_open2.ogg differ diff --git a/sound/effects/can_open3.ogg b/sound/effects/can_open3.ogg new file mode 100644 index 0000000000000..4523c6f1fec8e Binary files /dev/null and b/sound/effects/can_open3.ogg differ