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