From f439eb70b897cd2f1424b1eed778b8a804c8c948 Mon Sep 17 00:00:00 2001 From: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:22:28 +0300 Subject: [PATCH] Add Equip Delays to Clothing (#499) # Description For centuries SS14 had equip and unequip delays on the clothing component, and yet that feature remained unused and unheard of, not even nyanotrasen/deltav used it when designing shock collars and headcages, whose descriptions clearly suggested they should take time to take off. For centuries salvage specialists could safely swap suits in space. For centuries you could accidentally unequip your eva suit mid-spacewalk and die. Now the time has come. The time when we change it. This adds equip and unequip delays to the base clothing item. The currently chosen time is half a second - it's meant to not be too annoying, but at the same time prevent people from being able to instantly swap clothes, headsets, other things with a single click. EVA suits take 1.5 seconds to equip and 1 second to take off, so to swap EVA suits, you will have to expose your body to the dangers of space for at least 1.5 seconds. For hardsuits, both values are increased to 2.5 seconds. The values are not final and this PR will probably need polishing before it can be merged - for example, while recording the second preview video, I discovered that jetpacks do not inherit from base clothing and thus do not inherit the delays. There's probably way more such items. --- # TODO Add equip/unequip delays to: - [X] most basic clothing items - [X] hardsuits/softsuits - [X] special items (currently headcages and shock collars, possibly more later?) - [ ] Everything that was missed by the above ---

Media

Basics https://github.com/Simple-Station/Einstein-Engines/assets/69920617/3fc900b8-ee13-4968-bf5d-cddeb9a141b6 Hardsuits, eva suits, shock collars, headcages + demonstration that aghost stripping is unaffected. https://github.com/Simple-Station/Einstein-Engines/assets/69920617/a536578f-2ac3-40e1-9b27-3b167e006397

--- # Changelog :cl: - add: Most items now take time to equip and unequip, especially space suits. --- .../Entities/Clothing/OuterClothing/base_clothingouter.yml | 6 ++++++ Resources/Prototypes/Entities/Clothing/base_clothing.yml | 3 +++ .../Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml | 2 ++ .../Nyanotrasen/Entities/Objects/Devices/shock_collar.yml | 2 ++ 4 files changed, 13 insertions(+) diff --git a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml index 13524efa9e6..902c57418e4 100644 --- a/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml +++ b/Resources/Prototypes/Entities/Clothing/OuterClothing/base_clothingouter.yml @@ -93,6 +93,9 @@ - Hardsuit - WhitelistChameleon - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - type: Clothing + equipDelay: 2.5 # Hardsuits are heavy and take a while to put on/off. + unequipDelay: 2.5 - type: entity abstract: true @@ -114,6 +117,9 @@ - type: Tag tags: - HidesHarpyWings #DeltaV: Used by harpies to help render their hardsuit sprites + - type: Clothing + equipDelay: 1.25 # Softsuits are easier to put on and off + unequipDelay: 1 - type: entity parent: ClothingOuterBase diff --git a/Resources/Prototypes/Entities/Clothing/base_clothing.yml b/Resources/Prototypes/Entities/Clothing/base_clothing.yml index 92a698dd301..810ada5429d 100644 --- a/Resources/Prototypes/Entities/Clothing/base_clothing.yml +++ b/Resources/Prototypes/Entities/Clothing/base_clothing.yml @@ -11,6 +11,9 @@ - WhitelistChameleon - type: StaticPrice price: 15 + - type: Clothing + equipDelay: 0.5 + unequipDelay: 0.5 - type: entity abstract: true diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml index 8278114d267..2cd9785d989 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Clothing/Head/hats.yml @@ -99,6 +99,8 @@ sprite: Nyanotrasen/Clothing/Head/Hats/cage.rsi - type: Clothing sprite: Nyanotrasen/Clothing/Head/Hats/cage.rsi + equipDelay: 0.5 + unequipDelay: 6 - type: HeadCage - type: entity diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml index 35cdcae6589..1266a721fe2 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Objects/Devices/shock_collar.yml @@ -8,6 +8,8 @@ sprite: Nyanotrasen/Clothing/Neck/Misc/shock.rsi - type: Clothing sprite: Nyanotrasen/Clothing/Neck/Misc/shock.rsi + equipDelay: 1 + unequipDelay: 10 # It's a collar meant to be used on prisoners (or not), so it probably has some sort of safety. - type: ShockCollar - type: UseDelay delay: 3 # DeltaV: prevent clocks instakilling people