mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-18 19:39:42 +01:00
Shaker and Cyborg Drink Synthesizer Additions (#13652)
This commit is contained in:
@@ -482,7 +482,7 @@
|
||||
var/empty_amount = RG.reagents.trans_to(src, RG.amount_per_transfer_from_this)
|
||||
var/max_reagents = RG.reagents.maximum_volume
|
||||
user.visible_message("<b>[user]</b> empties [empty_amount == max_reagents ? "all of \the [RG]" : "some of \the [RG]"] into \a [src].")
|
||||
playsound(src.loc, 'sound/effects/pour.ogg', 10, 1)
|
||||
playsound(src.loc, /decl/sound_category/generic_pour_sound, 10, 1)
|
||||
return
|
||||
|
||||
// Filling/empying Syringes
|
||||
|
||||
@@ -565,6 +565,12 @@
|
||||
'sound/items/wield/generic3.ogg'
|
||||
)
|
||||
|
||||
/decl/sound_category/generic_pour_sound
|
||||
sounds = list(
|
||||
'sound/effects/pour1.ogg',
|
||||
'sound/effects/pour2.ogg'
|
||||
)
|
||||
|
||||
/decl/sound_category/wield_generic_sound
|
||||
sounds = list(
|
||||
'sound/items/wield/generic1.ogg',
|
||||
@@ -684,6 +690,22 @@
|
||||
'sound/weapons/laserstrong.ogg'
|
||||
)
|
||||
|
||||
/decl/sound_category/shaker_shaking
|
||||
sounds = list(
|
||||
'sound/items/shaking1.ogg',
|
||||
'sound/items/shaking2.ogg',
|
||||
'sound/items/shaking3.ogg',
|
||||
'sound/items/shaking4.ogg',
|
||||
'sound/items/shaking5.ogg',
|
||||
'sound/items/shaking6.ogg'
|
||||
)
|
||||
|
||||
/decl/sound_category/shaker_lid_off
|
||||
sounds = list(
|
||||
'sound/items/shaker_lid_off1.ogg',
|
||||
'sound/items/shaker_lid_off2.ogg'
|
||||
)
|
||||
|
||||
/decl/sound_category/quick_arcade // quick punchy arcade sounds
|
||||
sounds = list(
|
||||
'sound/arcade/get_fuel.ogg',
|
||||
|
||||
@@ -1720,7 +1720,7 @@
|
||||
result = /decl/reagent/alcohol/goldschlager
|
||||
required_reagents = list(/decl/reagent/alcohol/vodka = 10, /decl/reagent/gold = 1)
|
||||
mix_message = null
|
||||
reaction_sound = 'sound/effects/pour.ogg'
|
||||
reaction_sound = /decl/sound_category/generic_pour_sound
|
||||
result_amount = 10
|
||||
|
||||
/datum/chemical_reaction/drink/patron
|
||||
|
||||
@@ -306,6 +306,9 @@
|
||||
return 1
|
||||
|
||||
var/trans = reagents.trans_to(target, amount_per_transfer_from_this)
|
||||
playsound(src, 'sound/effects/pour.ogg', 25, 1)
|
||||
to_chat(user, "<span class='notice'>You transfer [trans] units of the solution to [target].</span>")
|
||||
on_pour()
|
||||
return 1
|
||||
|
||||
/obj/item/reagent_containers/proc/on_pour()
|
||||
playsound(src, /decl/sound_category/generic_pour_sound, 25, 1)
|
||||
@@ -1,6 +1,9 @@
|
||||
/obj/item/reagent_containers/hypospray/borghypo
|
||||
name = "cyborg hypospray"
|
||||
desc = "An advanced chemical synthesizer and injection system, designed for heavy-duty medical equipment."
|
||||
desc_info = "Stationbound synthesizers produce specific reagents dependent on the selected module, which you can select by using it. \
|
||||
The reagents recharge automatically at the cost of energy.<br> Alt Click the synthesizer to change the transfer amount."
|
||||
desc_fluff = null
|
||||
icon = 'icons/obj/syringe.dmi'
|
||||
item_state = "hypo"
|
||||
icon_state = "borghypo"
|
||||
@@ -33,9 +36,10 @@
|
||||
var/decl/reagent/R = decls_repository.get_decl(T)
|
||||
reagent_names += R.name
|
||||
|
||||
update_icon()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/update_icon()
|
||||
/obj/item/reagent_containers/hypospray/borghypo/update_icon() // To do: Will work on the Medical Synthesizer in a future PR -Vrow
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/Destroy()
|
||||
@@ -54,6 +58,7 @@
|
||||
if(reagent_volumes[T] < volume)
|
||||
R.cell.use(charge_cost)
|
||||
reagent_volumes[T] = min(reagent_volumes[T] + 5, volume)
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/inject(var/mob/living/M, var/mob/user, proximity)
|
||||
@@ -61,18 +66,19 @@
|
||||
return
|
||||
|
||||
if(!reagent_volumes[reagent_ids[mode]])
|
||||
to_chat(user,"<span class='warning'>The injector is empty.</span>")
|
||||
to_chat(user, SPAN_WARNING("The injector is empty."))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] injects [M] with their hypospray!</span>", "<span class='notice'>You inject [M] with your hypospray!</span>", "<span class='notice'>You hear a hissing noise.</span>")
|
||||
to_chat(M,"<span class='notice'>You feel a tiny prick!</span>")
|
||||
|
||||
user.visible_message(SPAN_NOTICE("[user] injects [M] with their hypospray!"), SPAN_NOTICE("You inject [M] with your hypospray!"), SPAN_NOTICE("You hear a hissing noise."))
|
||||
to_chat(M, SPAN_NOTICE("You feel a tiny prick!"))
|
||||
|
||||
if(M.reagents)
|
||||
var/t = min(amount_per_transfer_from_this, reagent_volumes[reagent_ids[mode]])
|
||||
M.reagents.add_reagent(reagent_ids[mode], t)
|
||||
reagent_volumes[reagent_ids[mode]] -= t
|
||||
admin_inject_log(user, M, src, reagent_ids[mode], reagents.get_temperature(), t)
|
||||
to_chat(user,"<span class='notice'>[t] units injected. [reagent_volumes[reagent_ids[mode]]] units remaining.</span>")
|
||||
to_chat(user, SPAN_NOTICE("[t] units injected. [reagent_volumes[reagent_ids[mode]]] units remaining."))
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/afterattack(atom/target, mob/user, proximity)
|
||||
@@ -103,27 +109,47 @@
|
||||
playsound(loc, 'sound/effects/pop.ogg', 50, 0)
|
||||
mode = t
|
||||
var/decl/reagent/R = decls_repository.get_decl(reagent_ids[mode])
|
||||
to_chat(usr, "<span class='notice'>Synthesizer is now producing '[R.name]'.</span>")
|
||||
to_chat(usr, SPAN_NOTICE("Synthesizer is now producing '[R.name]'."))
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/examine(mob/user)
|
||||
if(!..(user, 2))
|
||||
return
|
||||
|
||||
var/decl/reagent/R = decls_repository.get_decl(reagent_ids[mode])
|
||||
|
||||
to_chat(user, "<span class='notice'>It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left.</span>")
|
||||
to_chat(user, SPAN_NOTICE("It is currently producing [R.name] and has [reagent_volumes[reagent_ids[mode]]] out of [volume] units left."))
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/service
|
||||
name = "cyborg drink synthesizer"
|
||||
desc = "A portable drink dispenser."
|
||||
icon = 'icons/obj/drinks.dmi'
|
||||
icon_state = "shaker"
|
||||
desc = "A portable drink synthesizer and dispenser."
|
||||
icon = 'icons/obj/shaker.dmi'
|
||||
icon_state = "drink_synth"
|
||||
charge_cost = 20
|
||||
recharge_time = 3
|
||||
volume = 60
|
||||
possible_transfer_amounts = list(5, 10, 20, 30)
|
||||
reagent_ids = list(/decl/reagent/alcohol/beer, /decl/reagent/alcohol/coffee/kahlua, /decl/reagent/alcohol/whiskey, /decl/reagent/alcohol/wine, /decl/reagent/alcohol/vodka, /decl/reagent/alcohol/gin, /decl/reagent/alcohol/rum, /decl/reagent/alcohol/tequila, /decl/reagent/alcohol/vermouth, /decl/reagent/alcohol/cognac, /decl/reagent/alcohol/ale, /decl/reagent/alcohol/mead, /decl/reagent/water, /decl/reagent/sugar, /decl/reagent/drink/ice, /decl/reagent/drink/tea, /decl/reagent/drink/icetea, /decl/reagent/drink/space_cola, /decl/reagent/drink/spacemountainwind, /decl/reagent/drink/dr_gibb, /decl/reagent/drink/spaceup, /decl/reagent/drink/tonic, /decl/reagent/drink/sodawater, /decl/reagent/drink/lemon_lime, /decl/reagent/drink/orangejuice, /decl/reagent/drink/limejuice, /decl/reagent/drink/watermelonjuice, /decl/reagent/drink/coffee, /decl/reagent/drink/coffee/espresso)
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/service/update_icon()
|
||||
underlays.Cut()
|
||||
cut_overlays()
|
||||
|
||||
var/rid = reagent_ids[mode]
|
||||
var/decl/reagent/R = decls_repository.get_decl(rid)
|
||||
if(reagent_volumes[rid])
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/shaker.dmi', "[icon_state]-0")
|
||||
var/percent = round((reagent_volumes[rid] / volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9) filling.icon_state = "[icon_state]-0"
|
||||
if(10 to 19) filling.icon_state = "[icon_state]-10"
|
||||
if(20 to 39) filling.icon_state = "[icon_state]-20"
|
||||
if(40 to 59) filling.icon_state = "[icon_state]-40"
|
||||
if(60 to 79) filling.icon_state = "[icon_state]-60"
|
||||
if(80 to 90) filling.icon_state = "[icon_state]-80"
|
||||
if(91 to INFINITY) filling.icon_state = "[icon_state]-100"
|
||||
filling.color = R.get_color()
|
||||
add_overlay(filling)
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/service/attack(var/mob/M, var/mob/user)
|
||||
return
|
||||
|
||||
@@ -135,11 +161,11 @@
|
||||
return
|
||||
|
||||
if(!reagent_volumes[reagent_ids[mode]])
|
||||
to_chat(user, "<span class='notice'>[src] is out of this reagent, give it some time to refill.</span>")
|
||||
to_chat(user, SPAN_NOTICE("[src] is out of this reagent, give it some time to refill."))
|
||||
return
|
||||
|
||||
if(!REAGENTS_FREE_SPACE(target.reagents))
|
||||
to_chat(user, "<span class='notice'>[target] is full.</span>")
|
||||
to_chat(user, SPAN_NOTICE("[target] is full."))
|
||||
return
|
||||
|
||||
var/rid = reagent_ids[mode]
|
||||
@@ -148,5 +174,16 @@
|
||||
var/amt = min(amount_per_transfer_from_this, reagent_volumes[rid])
|
||||
target.reagents.add_reagent(rid, amt, temperature = temp)
|
||||
reagent_volumes[rid] -= amt
|
||||
to_chat(user, "<span class='notice'>You transfer [amt] units of the solution to [target].</span>")
|
||||
to_chat(user, SPAN_NOTICE("You transfer [amt] units of [R.name] to [target]."))
|
||||
playsound(src.loc, /decl/sound_category/generic_pour_sound, 50, 1)
|
||||
dispense()
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/hypospray/borghypo/service/proc/dispense()
|
||||
var/decl/reagent/R = decls_repository.get_decl(reagent_ids[mode])
|
||||
var/mutable_appearance/reagent_overlay = mutable_appearance('icons/obj/shaker.dmi', "disp")
|
||||
reagent_overlay.color = R.get_color()
|
||||
underlays += reagent_overlay
|
||||
underlays += image('icons/obj/shaker.dmi', "[icon_state]-disp")
|
||||
flick("disp-mask", src)
|
||||
update_icon()
|
||||
@@ -427,20 +427,184 @@ If you add a drink with no empty icon sprite, ensure it is flagged as NO_EMPTY_I
|
||||
/obj/item/reagent_containers/food/drinks/shaker
|
||||
name = "shaker"
|
||||
desc = "A metal shaker to mix drinks in."
|
||||
desc_info = "Alt Click the shaker to twist the cap closed/loose. If the cap is loose, use the shaker to remove it. Without a cap, use the shaker again to remove the top. \
|
||||
If the shaker has a top fitted, you can Alt Click the shaker to change the transfer amount. Without a top, the transfer amount changes to max automatically."
|
||||
icon = 'icons/obj/shaker.dmi'
|
||||
icon_state = "shaker"
|
||||
item_state = "shaker"
|
||||
contained_sprite = TRUE
|
||||
filling_states = "10;25;50;75;80;100"
|
||||
unacidable = TRUE
|
||||
amount_per_transfer_from_this = 10
|
||||
possible_transfer_amounts = list(10, 30, 60)
|
||||
volume = 120
|
||||
center_of_mass = list("x"=16, "y"=8)
|
||||
var/last_shake = 0
|
||||
var/twisted = FALSE
|
||||
var/obj/item/shaker_top/top
|
||||
var/obj/item/reagent_containers/food/drinks/shaker_cup/cap
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/Initialize()
|
||||
. = ..()
|
||||
top = new(src)
|
||||
cap = new(src)
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/Destroy()
|
||||
QDEL_NULL(top)
|
||||
QDEL_NULL(cap)
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/update_icon()
|
||||
cut_overlays()
|
||||
if(top)
|
||||
icon_state = "shakertop"
|
||||
item_state = "shakertop"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
item_state = icon_state
|
||||
if(reagents.total_volume)
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/shaker.dmi', "[icon_state]-[get_filling_state()]")
|
||||
filling.color = reagents.get_color()
|
||||
add_overlay(filling)
|
||||
if(cap)
|
||||
add_overlay("shaker_cap")
|
||||
update_held_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/AltClick(mob/user)
|
||||
if(cap)
|
||||
toggle_twist()
|
||||
return
|
||||
if(top)
|
||||
set_APTFT()
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/attack_self(mob/user)
|
||||
if(!twisted)
|
||||
if(cap)
|
||||
to_chat(user, SPAN_NOTICE("You remove \the [src]'s [cap]."))
|
||||
user.put_in_hands(cap)
|
||||
flags |= OPENCONTAINER
|
||||
cap = null
|
||||
playsound(src.loc, /decl/sound_category/shaker_lid_off, 50, 1)
|
||||
update_icon()
|
||||
return
|
||||
if(top)
|
||||
toggle_top()
|
||||
return
|
||||
to_chat(user, SPAN_WARNING("It would be a bad idea to shake it without it being closed."))
|
||||
return
|
||||
if(last_shake <= world.time - 10) //Spam limiter.
|
||||
last_shake = world.time
|
||||
playsound(src.loc, 'sound/items/soda_shaking.ogg', 50, 1)
|
||||
playsound(src.loc, /decl/sound_category/shaker_shaking, 50, 1)
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/reagent_containers/food/drinks/shaker_cup))
|
||||
if(cap)
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has \a [cap]."))
|
||||
return TRUE
|
||||
if(W.reagents.total_volume > 0)
|
||||
var/obj/item/reagent_containers/food/drinks/shaker_cup/C = W
|
||||
C.standard_pour_into(user, src)
|
||||
return TRUE
|
||||
if(!top)
|
||||
to_chat(user, SPAN_WARNING("\The [src] lacks a top to fit \the [W] on."))
|
||||
return TRUE
|
||||
to_chat(user, SPAN_NOTICE("You put \the [W] onto \the [src]."))
|
||||
user.drop_from_inventory(W, src)
|
||||
flags ^= OPENCONTAINER
|
||||
cap = W
|
||||
playsound(src.loc, /decl/sound_category/shaker_lid_off, 50, 1)
|
||||
update_icon()
|
||||
return TRUE
|
||||
if(istype(W, /obj/item/shaker_top))
|
||||
if(top)
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has \a [top]."))
|
||||
return TRUE
|
||||
to_chat(user, SPAN_NOTICE("You fit \the [W] onto \the [src]."))
|
||||
amount_per_transfer_from_this = 10
|
||||
user.drop_from_inventory(W, src)
|
||||
top = W
|
||||
playsound(src.loc, /decl/sound_category/shaker_lid_off, 50, 1)
|
||||
update_icon()
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/on_pour()
|
||||
if(!top)
|
||||
playsound(src, 'sound/effects/pour_big.ogg', 50, 1)
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/verb/toggle_twist()
|
||||
set category = "Object"
|
||||
set name = "Twist Cap"
|
||||
set src in usr
|
||||
|
||||
if(!cap)
|
||||
to_chat(usr, SPAN_WARNING("\The [src] doesn't have a cap!"))
|
||||
return
|
||||
twisted = !twisted
|
||||
to_chat(usr, SPAN_NOTICE("You twist \the [cap] [twisted ? "closed for a tight seal" : "loose"]."))
|
||||
update_icon()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker/verb/toggle_top()
|
||||
set category = "Object"
|
||||
set name = "Remove Top"
|
||||
set src in usr
|
||||
|
||||
if(cap)
|
||||
to_chat(usr, SPAN_WARNING("You must remove \the [cap] first!"))
|
||||
return
|
||||
if(!top)
|
||||
to_chat(usr, SPAN_WARNING("\The [src] doesn't have a top to remove!"))
|
||||
return
|
||||
to_chat(usr, SPAN_NOTICE("You remove \the [src]'s [top]."))
|
||||
amount_per_transfer_from_this = 120
|
||||
usr.put_in_hands(top)
|
||||
top = null
|
||||
playsound(src.loc, /decl/sound_category/shaker_lid_off, 50, 1)
|
||||
update_icon()
|
||||
|
||||
/obj/item/shaker_top
|
||||
name = "shaker top"
|
||||
desc = "A metal shaker top with an in-built filter on the bottom."
|
||||
desc_info = "When fitted on a shaker, you can Alt Click the shaker to change transfer amount of the shaker."
|
||||
icon = 'icons/obj/shaker.dmi'
|
||||
icon_state = "shaker_top"
|
||||
item_state = "shaker_top"
|
||||
contained_sprite = TRUE
|
||||
drop_sound = 'sound/items/drop/bottle.ogg'
|
||||
pickup_sound = null
|
||||
center_of_mass = list("x" = 16, "y" = 16)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker_cup
|
||||
name = "shaker cap"
|
||||
desc = "A metal shaker cap that also doubles as a metal cup to measure liquids, or to drink from."
|
||||
desc_info = "Alt Click the cap to change the transfer amount."
|
||||
icon = 'icons/obj/shaker.dmi'
|
||||
icon_state = "shaker_cup"
|
||||
item_state = "shaker_cup"
|
||||
contained_sprite = TRUE
|
||||
filling_states = "50;100"
|
||||
pickup_sound = null
|
||||
volume = 10
|
||||
possible_transfer_amounts = list(1,2,3,4,5,10)
|
||||
center_of_mass = list("x" = 16, "y" = 16)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker_cup/update_icon()
|
||||
cut_overlays()
|
||||
|
||||
if(reagents?.total_volume)
|
||||
var/mutable_appearance/filling = mutable_appearance('icons/obj/shaker.dmi', "[icon_state]-[get_filling_state()]")
|
||||
filling.color = reagents.get_color()
|
||||
add_overlay(filling)
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/shaker_cup/AltClick(mob/user)
|
||||
set_APTFT()
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/teapot
|
||||
name = "teapot"
|
||||
desc = "An elegant teapot. It simply oozes class."
|
||||
@@ -503,11 +667,13 @@ If you add a drink with no empty icon sprite, ensure it is flagged as NO_EMPTY_I
|
||||
/obj/item/reagent_containers/food/drinks/flask/vacuumflask/Initialize()
|
||||
. = ..()
|
||||
cup = new(src)
|
||||
flags ^= OPENCONTAINER
|
||||
|
||||
/obj/item/reagent_containers/food/drinks/flask/vacuumflask/attack_self(mob/user)
|
||||
if(cup)
|
||||
to_chat(user, SPAN_NOTICE("You remove \the [src]'s cap."))
|
||||
user.put_in_hands(cup)
|
||||
flags |= OPENCONTAINER
|
||||
cup = null
|
||||
update_icon()
|
||||
|
||||
@@ -517,10 +683,11 @@ If you add a drink with no empty icon sprite, ensure it is flagged as NO_EMPTY_I
|
||||
to_chat(user, SPAN_WARNING("\The [src] already has a cap."))
|
||||
return TRUE
|
||||
if(W.reagents.total_volume + reagents.total_volume > volume)
|
||||
to_chat(user, SPAN_WARNING("There's too much fluid in both the cap and the flask!"))
|
||||
to_chat(user, SPAN_WARNING("There's too much fluid in both the cap and \the [src]!"))
|
||||
return TRUE
|
||||
to_chat(user, SPAN_NOTICE("You put the cap onto \the [src]."))
|
||||
user.drop_from_inventory(W, src)
|
||||
flags ^= OPENCONTAINER
|
||||
cup = W
|
||||
cup.reagents.trans_to_holder(reagents, cup.reagents.total_volume)
|
||||
update_icon()
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
var/obj/item/material/kitchen/utensil/U = W
|
||||
if(istype(W,/obj/item/material/kitchen/utensil/fork)&&(is_liquid))
|
||||
to_chat(user, SPAN_NOTICE("You uselessly pass \the [U] through \the [src]."))
|
||||
playsound(user.loc, 'sound/effects/pour.ogg', 10, 1)
|
||||
playsound(user.loc, /decl/sound_category/generic_pour_sound, 10, 1)
|
||||
return
|
||||
else
|
||||
if(U.scoop_food)
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
author: Vrow, KingOfThePing
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- imagedel: "Removed old shaker sprite."
|
||||
- imageadd: "Added a new shaker that is more metallic, with additional detachable top and cap, as well as in-hands for them."
|
||||
- imageadd: "Added a unique new cyborg drink sythesizer sprite, with visible filling color so you can see what you have selected!"
|
||||
- soundadd: "Added several shaking sounds for the shaker, removing the cap/top sounds, a big pour sound, and a new generic pouring sound."
|
||||
- rscadd: "You can now remove the new shaker's top, and also the cap that doubles as a mini cup!"
|
||||
- tweak: "The cyborg drink synthesizer now tells you what reagent you have just transferred to stuff."
|
||||
- bugfix: "Fixed being able to pour stuff into a capped vacuum flask."
|
||||
- bugfix: "Fixed cyborg synthesizer's inaccurate desc_info, and cleared the desc_fluff from them as well."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 135 KiB After Width: | Height: | Size: 135 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user