Adds can shaking (#18755)

* Shake shake

* Un-shake the shaken

* boom
This commit is contained in:
Guti
2025-11-14 19:09:24 -05:00
committed by GitHub
parent 59f1346e4f
commit bdc94d4a3b
+33
View File
@@ -5,6 +5,39 @@
drop_sound = 'sound/items/drop/soda.ogg'
pickup_sound = 'sound/items/pickup/soda.ogg'
cant_chance = 1 //arbitrarily high for april fools; if it's not reverted in its entirety I suggest rolling it down to 2% or something
var/shaken = 0 // How many times this can has been shaken.
/obj/item/reagent_containers/food/drinks/cans/attack_self(mob/user)
if(user.a_intent == I_HURT && !is_open_container())
to_chat(user, span_warning("You shake [src]."))
if(!shaken)
START_PROCESSING(SSobj, src)
shaken += 3
return
if(HAS_TRAIT(user, TRAIT_UNLUCKY) && prob(10)) // Because it's always funny
shaken += 10
. = ..()
/obj/item/reagent_containers/food/drinks/cans/open(mob/user)
. = ..()
if(!cant_open && shaken)
to_chat(user, span_warning("[src] [(shaken > 50) ? "explodes" : "foams"] when you open it!"))
var/obj/effect/effect/foam/foam = new /obj/effect/effect/foam(src.loc)
foam.amount = (shaken > 50) ? 2 : 1
reagents.splash(user, shaken/2)
reagents.trans_to(foam, shaken/2)
if(shaken > 50)
if(HAS_TRAIT(user, TRAIT_UNLUCKY) && prob(0.1))
explosion(get_turf(src), -1, -1, -1, 7)
user.gib()
else
explosion(get_turf(src), -1, -1, -1, 1)
qdel(src)
/obj/item/reagent_containers/food/drinks/cans/process()
if(shaken <= 0)
return PROCESS_KILL
shaken--
//DRINKS