diff --git a/code/ATMOSPHERICS/components/unary/vent_pump.dm b/code/ATMOSPHERICS/components/unary/vent_pump.dm
index 368a8ae506c..180af8fd312 100644
--- a/code/ATMOSPHERICS/components/unary/vent_pump.dm
+++ b/code/ATMOSPHERICS/components/unary/vent_pump.dm
@@ -9,6 +9,7 @@
layer = TURF_LAYER
var/area_uid
var/id_tag = null
+ power_channel = ENVIRON
var/on = 0
var/pump_direction = 1 //0 = siphoning, 1 = releasing
@@ -44,6 +45,7 @@
high_volume
name = "Large Air Vent"
+ power_channel = EQUIP
New()
..()
air_contents.volume = 1000
@@ -268,10 +270,10 @@
usr << "It seems welded shut."
power_change()
-// if(powered(EVNIRON))
-// stat &= ~NOPOWER
-// else
-// stat |= NOPOWER
+ if(powered(power_channel))
+ stat &= ~NOPOWER
+ else
+ stat |= NOPOWER
update_icon()
attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
diff --git a/code/WorkInProgress/Chemistry-Machinery.dm b/code/WorkInProgress/Chemistry-Machinery.dm
index 4cb590a6a4e..769619621a2 100644
--- a/code/WorkInProgress/Chemistry-Machinery.dm
+++ b/code/WorkInProgress/Chemistry-Machinery.dm
@@ -109,7 +109,7 @@
var/condi = 0
New()
- var/datum/reagents/R = new/datum/reagents(50)
+ var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm
index 228b5203a3c..57a12ed7928 100644
--- a/code/WorkInProgress/Chemistry-Tools.dm
+++ b/code/WorkInProgress/Chemistry-Tools.dm
@@ -2649,6 +2649,19 @@
desc = "Your standard drinking glass"
return
+// for /obj/machinery/vending/sovietsoda
+/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda
+ New()
+ ..()
+ reagents.add_reagent("sodawater", 50)
+ on_reagent_change()
+
+/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola
+ New()
+ ..()
+ reagents.add_reagent("cola", 50)
+ on_reagent_change()
+
///jar
/obj/item/weapon/reagent_containers/food/drinks/jar
diff --git a/code/defines/area/Space Station 13 areas.dm b/code/defines/area/Space Station 13 areas.dm
index 7b848f546d7..d88a6c7b3b3 100644
--- a/code/defines/area/Space Station 13 areas.dm
+++ b/code/defines/area/Space Station 13 areas.dm
@@ -17,7 +17,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area
var/fire = null
var/atmos = 1
- var/atmosalm = null
+ var/atmosalm = 0
var/poweralm = 1
var/party = null
level = null
diff --git a/code/defines/obj/vending.dm b/code/defines/obj/vending.dm
index b2acedf9986..ac976937b51 100644
--- a/code/defines/obj/vending.dm
+++ b/code/defines/obj/vending.dm
@@ -155,3 +155,14 @@
//product_amounts = "8;5;4" Old totals
product_hidden = "/obj/item/weapon/kitchen/utensil/spoon;/obj/item/weapon/kitchen/utensil/knife;/obj/item/weapon/kitchen/rollingpin"
product_hideamt = "2;2;2"
+
+
+/obj/machinery/vending/sovietsoda
+ name = "BODA"
+ desc = "Old sweet water vending machine"
+ icon_state = "sovietsoda"
+ product_paths = "/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/soda"
+ product_amounts = "30"
+ //product_amounts = "8;5;4" Old totals
+ product_hidden = "/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/cola"
+ product_hideamt = "20"
diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm
index dd4b538c7ce..1401289d0a3 100644
--- a/code/game/machinery/alarm.dm
+++ b/code/game/machinery/alarm.dm
@@ -514,7 +514,7 @@ table tr:first-child th:first-child { border: none;}
var/varname = href_list["var"]
var/datum/tlv/tlv = TLV[env]
var/newval = input("Enter [varname] for env", "Alarm triggers", tlv.vars[varname]) as num|null
- if (isnull(newval) || ..() || locked)
+ if (isnull(newval) || ..() || (locked && issilicon(usr)))
return
if (newval<0)
tlv.vars[varname] = -1.0
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index d74515ad58a..d24f9a1956d 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -106,7 +106,7 @@
if(istype(O,/obj/item/weapon/baton))
if(O:charges < 10)
O:charges += 1
-
+ R.module.respawn_consumable(R)
verb
diff --git a/code/game/objects/stacks/stack.dm b/code/game/objects/stacks/stack.dm
index f2b31dcea31..8fdf69357f6 100644
--- a/code/game/objects/stacks/stack.dm
+++ b/code/game/objects/stacks/stack.dm
@@ -132,10 +132,12 @@
var/title as text
var/can_build = 1
can_build = can_build && (max_multiplier>0)
+ /*
if (R.one_per_turf)
can_build = can_build && !(locate(R.result_type) in usr.loc)
if (R.on_floor)
can_build = can_build && istype(usr.loc, /turf/simulated/floor)
+ */
if (R.res_amount>1)
title+= "[R.res_amount]x [R.title]\s"
else
@@ -147,8 +149,15 @@
t1 += text("[]", title)
continue
if (R.max_res_amount>1 && max_multiplier>1)
- var/multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount))
- t1 += text(" | []x ", src, i, multiplier, multiplier*R.res_amount)
+ max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount))
+ t1 += " |"
+ var/list/multipliers = list(5,10,25)
+ for (var/n in multipliers)
+ if (max_multiplier>=n)
+ t1 += " [n*R.res_amount]x"
+ if (!(max_multiplier in multipliers))
+ t1 += " [max_multiplier*R.res_amount]x"
+
t1 += "