diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm
index ffcc6a23f31..1990cccdd73 100644
--- a/code/game/objects/items/devices/suit_cooling.dm
+++ b/code/game/objects/items/devices/suit_cooling.dm
@@ -5,6 +5,7 @@
icon = 'icons/obj/contained_items/tools/suitcooler.dmi'
icon_state = "suitcooler0"
item_state = "coolingpack"
+ action_button_name = "Toggle Cooling Unit"
contained_sprite = TRUE
slot_flags = SLOT_BACK //you can carry it on your back if you want, but it won't do anything unless attached to suit storage
@@ -146,7 +147,7 @@
else
turn_on()
if(on)
- to_chat(user, SPAN_NOTICE("You switch on the [src]."))
+ to_chat(user, SPAN_NOTICE("You switch on \the [src]."))
/obj/item/device/suit_cooling_unit/attackby(obj/item/W, mob/user)
if(W.isscrewdriver())
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index c53bff8310d..892483096c4 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -87,15 +87,18 @@
var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any.
var/obj/item/clothing/head/helmet/helmet = null // Deployable helmet, if any.
var/obj/item/tank/tank = null // Deployable tank, if any.
+ var/obj/item/device/suit_cooling_unit/cooler = null // Deployable suit cooler, if any
/obj/item/clothing/suit/space/void/examine(user)
..(user)
var/list/part_list = new
- for(var/obj/item/I in list(helmet,boots,tank))
+ for(var/obj/item/I in list(helmet,boots,tank,cooler))
part_list += "\a [I]"
to_chat(user, "\The [src] has [english_list(part_list)] installed.")
if(tank && in_range(src,user))
- to_chat(user, "The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank].")
+ to_chat(user, SPAN_NOTICE("The wrist-mounted pressure gauge reads [max(round(tank.air_contents.return_pressure()),0)] kPa remaining in \the [tank]."))
+ if (cooler && in_range(src,user))
+ to_chat(user, SPAN_NOTICE("The mounted cooler's battery charge reads [round(cooler.cell.percent())]%"))
/obj/item/clothing/suit/space/void/refit_for_species(var/target_species)
..()
@@ -133,6 +136,10 @@
to_chat(M, "The valve on your suit's installed tank safely engages.")
tank.canremove = 0
+ if(cooler)
+ if (H.equip_to_slot_if_possible(cooler, slot_s_store))
+ cooler.canremove = 0
+
/obj/item/clothing/suit/space/void/proc/cleanup_from_mob()
var/mob/living/carbon/human/H
@@ -154,6 +161,10 @@
tank.canremove = 1
tank.forceMove(src)
+ if(cooler)
+ cooler.canremove = 1
+ cooler.forceMove(src)
+
/obj/item/clothing/suit/space/void/on_slotmove()
..()
cleanup_from_mob()
@@ -209,7 +220,7 @@
to_chat(usr, "There is no tank inserted.")
return
- to_chat(user, "You press the emergency release, ejecting \the [tank] from your suit.")
+ to_chat(user, SPAN_INFO("You press the emergency release lever, ejecting \the [tank] from your suit."))
tank.canremove = 1
playsound(src, 'sound/effects/air_seal.ogg', 50, 1)
@@ -219,6 +230,30 @@
tank.forceMove(get_turf(src))
src.tank = null
+/obj/item/clothing/suit/space/void/verb/eject_cooler()
+
+ set name = "Eject Suit Cooler"
+ set category = "Object"
+ set src in view(1)
+
+ var/mob/living/user = usr
+
+ if(use_check_and_message(user)) return
+
+ if(!cooler)
+ to_chat(usr, "There is no suit cooler installed.")
+ return
+
+ to_chat(user, SPAN_INFO("You engage the release mechanism, ejecting \the [cooler] from your suit."))
+ cooler.canremove = 1
+ playsound(src, 'sound/items/Deconstruct.ogg', 30, 1)
+
+ if(user.get_inventory_slot(src) == slot_wear_suit)
+ user.drop_from_inventory(cooler)
+ else
+ cooler.forceMove(get_turf(src))
+ src.cooler = null
+
/obj/item/clothing/suit/space/void/attack_self()
toggle_helmet()
@@ -230,12 +265,12 @@
return ..()
if(user.get_inventory_slot(src) == slot_wear_suit)
- to_chat(user, "You cannot modify \the [src] while it is being worn.")
+ to_chat(user, SPAN_WARNING("You cannot modify \the [src] while it is being worn."))
return
if(W.isscrewdriver())
- if(helmet || boots || tank)
- var/choice = input("What component would you like to remove?") as null|anything in list(helmet,boots,tank)
+ if(helmet || boots || tank || cooler)
+ var/choice = input("What component would you like to remove?") as null|anything in list(helmet,boots,tank,cooler)
if(!choice) return
playsound(src, 'sound/items/screwdriver.ogg', 50, 1)
@@ -244,13 +279,17 @@
tank.forceMove(get_turf(src))
src.tank = null
else if(choice == helmet)
- to_chat(user, "You detatch \the [helmet] from \the [src]'s helmet mount.")
+ to_chat(user, "You detach \the [helmet] from \the [src]'s helmet mount.")
helmet.forceMove(get_turf(src))
src.helmet = null
else if(choice == boots)
- to_chat(user, "You detatch \the [boots] from \the [src]'s boot mounts.")
+ to_chat(user, "You detach \the [boots] from \the [src]'s boot mounts.")
boots.forceMove(get_turf(src))
src.boots = null
+ else if (choice == cooler)
+ to_chat(user, "You detach \the [cooler] from \the [src]'s cooler mount.")
+ cooler.forceMove(get_turf(src))
+ src.cooler = null
else
to_chat(user, "\The [src] does not have anything installed.")
return
@@ -283,5 +322,13 @@
user.drop_from_inventory(W,src)
tank = W
return
-
+ else if (istype(W, /obj/item/device/suit_cooling_unit))
+ if(cooler)
+ to_chat(user, "\The [src] already has a suit cooler installed.")
+ else
+ playsound(src, 'sound/items/Deconstruct.ogg', 30, 1)
+ to_chat(user, "You insert \the [W] into \the [src]'s storage compartment.")
+ user.drop_from_inventory(W,src)
+ cooler = W
+ return
..()
diff --git a/html/changelogs/omicega-fe9sfew90rfewrwe.yml b/html/changelogs/omicega-fe9sfew90rfewrwe.yml
new file mode 100644
index 00000000000..90e391d700e
--- /dev/null
+++ b/html/changelogs/omicega-fe9sfew90rfewrwe.yml
@@ -0,0 +1,13 @@
+# Your name.
+author: Omicega
+
+# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
+delete-after: True
+
+# Any changes you've made. See valid prefix list above.
+# INDENT WITH TWO SPACES. NOT TABS. SPACES.
+# SCREW THIS UP AND IT WON'T WORK.
+# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
+# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
+changes:
+ - rscadd: "Allows suit coolers to be plugged into voidsuits just like oxygen tanks. Adds an action button for them too, just like magboots."