diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 6ea87725d1b..f2a57d1c212 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -118,7 +118,7 @@
if(istype(W,/obj/item/weapon/storage))
..() // -> item/attackby()
if((slices_num <= 0 || !slices_num) || !slice_path)
- return 1
+ return 0
var/inaccurate = 0
if( \
istype(W, /obj/item/weapon/kitchenknife) || \
diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm
index effc3e18844..6fa91b4aaf3 100644
--- a/code/modules/research/circuitprinter.dm
+++ b/code/modules/research/circuitprinter.dm
@@ -101,7 +101,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
user << "\The [name] must be linked to an R&D console first!"
return 1
if (O.is_open_container())
- return
+ return 0
if (!istype(O, /obj/item/stack/sheet/glass) && !istype(O, /obj/item/stack/sheet/mineral/gold) && !istype(O, /obj/item/stack/sheet/mineral/diamond) && !istype(O, /obj/item/stack/sheet/mineral/uranium))
user << "\red You cannot insert this item into the [name]!"
return 1
diff --git a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
index 74d886edb60..6dcd45c8255 100644
--- a/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
+++ b/code/modules/research/xenoarchaeology/machinery/geosample_scanner.dm
@@ -68,7 +68,7 @@
user << "You can't do that while [src] is scanning!"
else
if(istype(I, /obj/item/stack/nanopaste))
- var/choice = alert("What do you want to do with the nanopaste?","Radiometric Scanner","Add nanopaste","Fix seal integrity")
+ var/choice = alert("What do you want to do with the nanopaste?","Radiometric Scanner","Scan nanopaste","Fix seal integrity")
if(choice == "Fix seal integrity")
var/obj/item/stack/nanopaste/N = I
var/amount_used = min(N.amount, 10 - scanner_seal_integrity / 10)
@@ -79,12 +79,16 @@
var/choice = alert("What do you want to do with the container?","Radiometric Scanner","Add coolant","Empty coolant","Scan container")
if(choice == "Add coolant")
var/obj/item/weapon/reagent_containers/glass/G = I
- G.reagents.trans_to(src, min(src.reagents.maximum_volume - src.reagents.total_volume, G.reagents.total_volume))
+ var/amount_transferred = min(src.reagents.maximum_volume - src.reagents.total_volume, G.reagents.total_volume)
+ G.reagents.trans_to(src, amount_transferred)
+ user << "You empty [amount_transferred]u of coolant into [src]."
update_coolant()
return
else if(choice == "Empty coolant")
var/obj/item/weapon/reagent_containers/glass/G = I
- src.reagents.trans_to(G, min(G.reagents.maximum_volume - G.reagents.total_volume, src.reagents.total_volume))
+ var/amount_transferred = min(G.reagents.maximum_volume - G.reagents.total_volume, src.reagents.total_volume)
+ src.reagents.trans_to(G, amount_transferred)
+ user << "You remove [amount_transferred]u of coolant from [src]."
update_coolant()
return
user.drop_item()
@@ -95,14 +99,18 @@
var/total_purity = 0
fresh_coolant = 0
coolant_purity = 0
+ var/num_reagent_types = 0
for (var/datum/reagent/current_reagent in src.reagents.reagent_list)
if (!current_reagent)
continue
var/cur_purity = coolant_reagents_purity[current_reagent.id]
if(!cur_purity)
cur_purity = 0.1
- total_purity += cur_purity
+ else if(cur_purity > 1)
+ cur_purity = 1
+ total_purity += cur_purity * current_reagent.volume
fresh_coolant += current_reagent.volume
+ num_reagent_types += 1
if(total_purity && fresh_coolant)
coolant_purity = total_purity / fresh_coolant