Voidsuit Oxygen Integration (#17387)

* Makes oxygen tanks able to be used in voidsuits again

Actually incorporates and lets you use the oxygen tank that is INSIDE OF THE SUIT without it being put into your suit storage. When I was bugfixing and saw it just spew the oxygen tank out into the suit storage slot I thought to myself 'what is even the point'

Rigsuits can already do this and are superior in every way (they splint all your limbs, they have integrated oxygen tanks, self cooling, among other things), so let's let voidsuits have a little buff

* POCKET_ALL_TANKS
This commit is contained in:
Cameron Lennox
2025-03-20 10:58:18 -04:00
committed by GitHub
parent 3a3d7db81e
commit e5483acc6a
5 changed files with 25 additions and 19 deletions
@@ -1019,6 +1019,15 @@
else
return null
/atom/proc/get_voidsuit()
return null
/mob/living/carbon/human/get_voidsuit()
if(istype(wear_suit, /obj/item/clothing/suit/space/void))
return wear_suit
else
return null
//Boot animation screen objects
/obj/screen/rig_booting
screen_loc = "1,1"
@@ -18,7 +18,7 @@
icon_state = "rig-vintagecrew"
item_state_slots = list(slot_r_hand_str = "sec_voidsuitTG", slot_l_hand_str = "sec_voidsuitTG")
armor = list(melee = 30, bullet = 15, laser = 15,energy = 5, bomb = 20, bio = 100, rad = 50)
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_ENGINEERING, POCKET_MINING)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_ENGINEERING, POCKET_MINING)
//Engineering Crewsuit (ORANGE, RING)
//This is probably the most appealing to get your hands on for basic protection and the specialist stuff
@@ -162,7 +162,7 @@
item_state_slots = list(slot_r_hand_str = "sec_voidsuitTG", slot_l_hand_str = "sec_voidsuitTG")
armor = list(melee = 25, bullet = 10, laser = 10, energy = 50, bomb = 10, bio = 100, rad = 100)
siemens_coefficient = 0.8
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_XENOARC, /obj/item/storage/firstaid)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_XENOARC, /obj/item/storage/firstaid)
//Miner's Crewsuit (BROWN)
//Basically just the basic suit, but with brown markings. If anyone wants to tweak this, go wild.
@@ -180,7 +180,7 @@
icon_state = "rig-vintageminer"
item_state_slots = list(slot_r_hand_str = "sec_voidsuitTG", slot_l_hand_str = "sec_voidsuitTG")
armor = list(melee = 30, bullet = 15, laser = 15,energy = 5, bomb = 20, bio = 100, rad = 50)
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_MINING)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_MINING)
//Mercenary Crewsuit (RED, CROSS)
//The best of the best, this should be ultra-rare
@@ -202,4 +202,4 @@
breach_threshold = 16 //Extra Thicc
resilience = 0.05 //Military Armor
siemens_coefficient = 0.6
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_SECURITY)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_SECURITY)
@@ -344,7 +344,7 @@
icon_state = "void_explorer"
item_state_slots = list(slot_r_hand_str = "skrell_suit_black", slot_l_hand_str = "skrell_suit_black")
armor = list(melee = 50, bullet = 15, laser = 35, energy = 25, bomb = 30, bio = 100, rad = 70)
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_MEDICAL, POCKET_EXPLO)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_MEDICAL, POCKET_EXPLO)
breach_threshold = 14 //These are kinda thicc
resilience = 0.15 //Armored
@@ -365,7 +365,7 @@
icon_state = "void_exp_medic"
item_state_slots = list(slot_r_hand_str = "skrell_suit_black", slot_l_hand_str = "skrell_suit_black")
armor = list(melee = 50, bullet = 15, laser = 25, energy = 15, bomb = 30, bio = 100, rad = 90)
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_MEDICAL, POCKET_EXPLO)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, POCKET_MINING, POCKET_MEDICAL, POCKET_EXPLO)
breach_threshold = 14 //These are kinda thicc
resilience = 0.15 //Armored
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE+5000
@@ -398,7 +398,7 @@
item_state_slots = list(slot_r_hand_str = "atmos_voidsuit", slot_l_hand_str = "atmos_voidsuit")
name = "pilot voidsuit"
armor = list(melee = 40, bullet = 10, laser = 25, energy = 15, bomb = 25, bio = 100, rad = 60)
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, /obj/item/storage/toolbox, /obj/item/storage/briefcase/inflatable)
allowed = list(POCKET_ALL_TANKS, POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SUIT_REGULATORS, /obj/item/storage/toolbox, /obj/item/storage/briefcase/inflatable)
/obj/item/clothing/head/helmet/space/void/pilot/alt
icon_state = "rig0_pilot2"
+2 -11
View File
@@ -96,13 +96,6 @@
to_chat(M, "Your suit's helmet deploys with a hiss.")
hood.canremove = FALSE
if(tank)
if(H.s_store) //In case someone finds a way.
to_chat(M, "Alarmingly, the valve on your suit's installed tank fails to engage.")
else if (H.equip_to_slot_if_possible(tank, slot_s_store))
to_chat(M, "The valve on your suit's installed tank safely engages.")
tank.canremove = FALSE
if(cooler)
if(H.s_store) //Ditto
to_chat(M, "Alarmingly, the cooling unit installed into your suit fails to deploy.")
@@ -288,9 +281,7 @@
if(tank)
to_chat(user, "\The [src] already has an airtank installed.")
else if(cooler)
to_chat(user, "\The [src]'s suit cooling unit is in the way. Remove it first.")
else if(istype(W,/obj/item/tank/phoron))
to_chat(user, "\The [W] cannot be inserted into \the [src]'s storage compartment.")
to_chat(user, "\The [src]'s suit cooling unit is the modular suit storage. Remove it first.")
else
to_chat(user, "You insert \the [W] into \the [src]'s storage compartment.")
user.drop_item()
@@ -301,7 +292,7 @@
if(cooler)
to_chat(user, "\The [src] already has a suit cooling unit installed.")
else if(tank)
to_chat(user, "\The [src]'s airtank is in the way. Remove it first.")
to_chat(user, "\The [src]'s airtank is in the modular suit storage. Remove it first.")
else
to_chat(user, "You insert \the [W] into \the [src]'s storage compartment.")
user.drop_item()