From f80bf21dff640f788a26c2e7de3a7e0b36e37805 Mon Sep 17 00:00:00 2001
From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com>
Date: Fri, 2 Jun 2023 04:52:44 +1000
Subject: [PATCH 1/2] Merge pull request #14928 from
Youtubeboy139/voidsuit-upgrade
The Suits of the Void
---
code/modules/clothing/spacesuits/void/void.dm | 62 +++++++++++-------
sound/machines/click2.ogg | Bin 0 -> 6331 bytes
2 files changed, 40 insertions(+), 22 deletions(-)
create mode 100644 sound/machines/click2.ogg
diff --git a/code/modules/clothing/spacesuits/void/void.dm b/code/modules/clothing/spacesuits/void/void.dm
index a47fd885cd..91ee803760 100644
--- a/code/modules/clothing/spacesuits/void/void.dm
+++ b/code/modules/clothing/spacesuits/void/void.dm
@@ -32,7 +32,7 @@
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
min_pressure_protection = 0 * ONE_ATMOSPHERE
max_pressure_protection = 10 * ONE_ATMOSPHERE
-
+ action_button_name = "Toggle Helmet"
species_restricted = list("Human", SPECIES_SKRELL, "Promethean")
sprite_sheets = VR_SPECIES_SPRITE_SHEETS_SUIT_MOB
sprite_sheets_obj = VR_SPECIES_SPRITE_SHEETS_SUIT_ITEM
@@ -47,12 +47,23 @@
var/obj/item/clothing/head/helmet/helmet = null // Deployable helmet, if any.
var/obj/item/weapon/tank/tank = null // Deployable tank, if any.
var/obj/item/device/suit_cooling_unit/cooler = null// Cooling unit, for FBPs. Cannot be installed alongside a tank.
-
+
//Cycler settings
var/no_cycle = FALSE //stop this item from being put in a cycler
+//Does it spawn with any Inbuilt devices?
+/obj/item/clothing/suit/space/void/Initialize()
+ . = ..()
+ if(boots && ispath(boots))
+ boots = new boots(src)
+ if(helmet && ispath(helmet))
+ helmet = new helmet(src)
+ if(tank && ispath(tank))
+ tank = new tank(src)
+
/obj/item/clothing/suit/space/void/examine(user)
. = ..()
+ . += to_chat(usr, "Alt-click to relase Tank/Cooling unit if installed.")
for(var/obj/item/I in list(helmet,boots,tank,cooler))
. += "It has \a [I] installed."
if(tank && in_range(src,user))
@@ -145,13 +156,18 @@
helmet.set_light_flags(helmet.light_flags & ~LIGHT_ATTACHED)
helmet = null
-/obj/item/clothing/suit/space/void/verb/toggle_helmet()
+/obj/item/clothing/suit/space/void/ui_action_click(mob/living/user, action_name)
+ if(..())
+ return TRUE
+ toggle_helmet()
+/obj/item/clothing/suit/space/void/verb/toggle_helmet()
set name = "Toggle Helmet"
set category = "Object"
set src in usr
- if(!istype(src.loc,/mob/living)) return
+ if(!isliving(loc))
+ return
if(!helmet)
to_chat(usr, "There is no helmet installed.")
@@ -159,44 +175,45 @@
var/mob/living/carbon/human/H = usr
- if(!istype(H))
- return
- if(H.stat)
- return
- if(H.wear_suit != src)
- return
+ if(!istype(H)) return
+ if(H.stat) return
+ if(H.wear_suit != src) return
+
+ if(helmet.light_on)
+ to_chat(H, SPAN_NOTICE("The helmet light shuts off as it retracts."))
+ helmet.update_flashlight(H)
if(H.head == helmet)
- to_chat(H, "You retract your suit helmet.")
+ to_chat(H, SPAN_NOTICE("You retract your suit helmet."))
helmet.canremove = TRUE
H.drop_from_inventory(helmet)
helmet.forceMove(src)
+ playsound(src.loc, 'sound/machines/click2.ogg', 75, 1)
else
if(H.head)
- to_chat(H, "You cannot deploy your helmet while wearing \the [H.head].")
+ to_chat(H, SPAN_DANGER("You cannot deploy your helmet while wearing \the [H.head]."))
return
if(H.equip_to_slot_if_possible(helmet, slot_head))
- helmet.pickup(H)
helmet.canremove = FALSE
to_chat(H, "You deploy your suit helmet, sealing you off from the world.")
-
- if(helmet.light_system == STATIC_LIGHT)
- helmet.update_light()
+ playsound(src.loc, 'sound/machines/click2.ogg', 75, 1)
+
+/obj/item/clothing/suit/space/void/AltClick(mob/living/user)
+ eject_tank()
/obj/item/clothing/suit/space/void/verb/eject_tank()
-
set name = "Eject Voidsuit Tank/Cooler"
set category = "Object"
set src in usr
if(!istype(src.loc,/mob/living)) return
- if(!tank && !cooler)
- to_chat(usr, "There is no tank or cooling unit inserted.")
- return
-
var/mob/living/carbon/human/H = usr
+ if(!tank && !cooler)
+ to_chat(H, SPAN_NOTICE("There is no tank or cooling unit inserted."))
+ return
+
if(!istype(H)) return
if(H.stat) return
if(H.wear_suit != src) return
@@ -208,7 +225,8 @@
else
removing = cooler
cooler = null
- to_chat(H, "You press the emergency release, ejecting \the [removing] from your suit.")
+ to_chat(H, SPAN_DANGER("You press the emergency release, ejecting \the [removing] from your suit."))
+ playsound(src.loc, 'sound/machines/click.ogg', 75, 1)
removing.canremove = TRUE
H.drop_from_inventory(removing)
diff --git a/sound/machines/click2.ogg b/sound/machines/click2.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..c442f8b162771a178bb48b46139dc16bf1e95c03
GIT binary patch
literal 6331
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
literal 0
HcmV?d00001