diff --git a/Content.Server/Movement/Components/FootstepModifierComponent.cs b/Content.Server/Movement/Components/FootstepModifierComponent.cs index 9384c7d730..fd09533153 100644 --- a/Content.Server/Movement/Components/FootstepModifierComponent.cs +++ b/Content.Server/Movement/Components/FootstepModifierComponent.cs @@ -1,3 +1,4 @@ +using Content.Shared.Audio; using Content.Shared.Sound; using Robust.Shared.Audio; using Robust.Shared.GameObjects; @@ -18,9 +19,12 @@ namespace Content.Server.Movement.Components [DataField("footstepSoundCollection", required: true)] public SoundSpecifier SoundCollection = default!; + [DataField("variation")] + public float Variation = default; + public void PlayFootstep() { - SoundSystem.Play(Filter.Pvs(Owner), SoundCollection.GetSound(), Owner.Transform.Coordinates, AudioParams.Default.WithVolume(-2f)); + SoundSystem.Play(Filter.Pvs(Owner), SoundCollection.GetSound(), Owner.Transform.Coordinates, AudioHelpers.WithVariation(Variation).WithVolume(-2f)); } } } diff --git a/Resources/Audio/Items/Toys/quack.ogg b/Resources/Audio/Items/Toys/quack.ogg new file mode 100644 index 0000000000..c053b9972f Binary files /dev/null and b/Resources/Audio/Items/Toys/quack.ogg differ diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index 660e6ff506..8536743b09 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -191,6 +191,8 @@ prob: 1 - id: ClothingOuterHardsuitSecurityRed prob: 1 + - id: ClothingShoeSlippersDuck + prob: 0.2 - id: DrinkVacuumFlask prob: 0.8 - id: ClothingBeltSecurityFilled diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml index 28bbc7effa..56603c28fa 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml @@ -5,6 +5,8 @@ components: - type: StorageFill contents: + - id: FlashlightSeclite + prob: 1 - id: TaserGun prob: 0.3 - id: ClothingHeadHatWarden @@ -31,6 +33,8 @@ components: - type: StorageFill contents: + - id: FlashlightSeclite + prob: 0.8 - id: ClothingUniformJumpsuitSecGrey prob: 0.3 - id: ClothingHeadHelmetHelmet @@ -65,7 +69,8 @@ prob: 1 - id: ClothingOuterCoatDetective prob: 1 - + - id: FlashlightSeclite + prob: 1 - type: entity id: ClosetBombFilled diff --git a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml index 1c84261290..481e0f3845 100644 --- a/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml +++ b/Resources/Prototypes/Entities/Clothing/Shoes/misc.yml @@ -31,6 +31,22 @@ - type: Clothing sprite: Clothing/Shoes/Misc/slippers.rsi +- type: entity + parent: ClothingShoesBase + id: ClothingShoeSlippersDuck + name: ducky slippers + # description: You wish these made quacking sounds as you walked. + description: Comfy, yet haunted by the ghosts of ducks you fed bread to as a child. + components: + - type: Sprite + sprite: Clothing/Shoes/Misc/duck-slippers.rsi + - type: Clothing + sprite: Clothing/Shoes/Misc/duck-slippers.rsi + - type: FootstepModifier + variation: 0.07 + footstepSoundCollection: + collection: footstep_duck + - type: entity parent: ClothingShoesBase id: ClothingShoesTourist diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 8a08b95414..bd43b28d14 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -113,6 +113,27 @@ - type: UseDelay delay: 1.0 +- type: entity + parent: BaseItem + id: ToyRubberDuck + name: rubber ducky + description: Not carried here by ocean currents. + components: + - type: Sprite + sprite: Objects/Fun/ducky.rsi + state: icon + - type: Clothing + QuickEquip: false + sprite: Objects/Fun/ducky.rsi + Slots: + - Helmet + - type: ItemCooldown + - type: EmitSoundOnUse + sound: + path: /Audio/Items/Toys/quack.ogg + - type: UseDelay + delay: 1.0 + - type: entity parent: BaseItem id: PlushieVox diff --git a/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml similarity index 59% rename from Resources/Prototypes/Entities/Objects/Tools/flashlight.yml rename to Resources/Prototypes/Entities/Objects/Tools/flashlights.yml index 6156430251..8aabc436df 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/flashlight.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/flashlights.yml @@ -29,3 +29,24 @@ - type: Appearance visuals: - type: FlashLightVisualizer + +- type: entity + name: seclite + parent: FlashlightLantern + id: FlashlightSeclite + description: A robust flashlight used by security. + components: + - type: PowerCellSlot + startingCellType: PowerCellSmallSuper + - type: Sprite + sprite: Objects/Tools/seclite.rsi + layers: + - state: seclite + - state: seclite-overlay + shader: unshaded + visible: false + - type: Item + sprite: Objects/Tools/seclite.rsi + - type: PointLight + enabled: false + radius: 4 diff --git a/Resources/Prototypes/SoundCollections/footsteps.yml b/Resources/Prototypes/SoundCollections/footsteps.yml index c4e1c951db..171c39c0c5 100644 --- a/Resources/Prototypes/SoundCollections/footsteps.yml +++ b/Resources/Prototypes/SoundCollections/footsteps.yml @@ -67,6 +67,11 @@ - /Audio/Effects/Footsteps/clownstep1.ogg - /Audio/Effects/Footsteps/clownstep2.ogg +- type: soundCollection + id: footstep_duck + files: + - /Audio/Items/Toys/quack.ogg + - type: soundCollection id: footstep_heavy files: diff --git a/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/equipped-FEET.png b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/equipped-FEET.png new file mode 100644 index 0000000000..c772c311c9 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/equipped-FEET.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/icon.png b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/icon.png new file mode 100644 index 0000000000..a6b47a5399 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/icon.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-left.png b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-left.png new file mode 100644 index 0000000000..9817653a9f Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-left.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-right.png b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-right.png new file mode 100644 index 0000000000..2c13090697 Binary files /dev/null and b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/inhand-right.png differ diff --git a/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/meta.json b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/meta.json new file mode 100644 index 0000000000..e3bd2c38ec --- /dev/null +++ b/Resources/Textures/Clothing/Shoes/Misc/duck-slippers.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from ParadiseSS13 at commit https://github.com/ParadiseSS13/Paradise/commit/de795c4e312980d6f239375a9fa589cd57151599", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Fun/ducky.rsi/equipped-HELMET.png b/Resources/Textures/Objects/Fun/ducky.rsi/equipped-HELMET.png new file mode 100644 index 0000000000..89a1dc6184 Binary files /dev/null and b/Resources/Textures/Objects/Fun/ducky.rsi/equipped-HELMET.png differ diff --git a/Resources/Textures/Objects/Fun/ducky.rsi/icon.png b/Resources/Textures/Objects/Fun/ducky.rsi/icon.png new file mode 100644 index 0000000000..9c65c12023 Binary files /dev/null and b/Resources/Textures/Objects/Fun/ducky.rsi/icon.png differ diff --git a/Resources/Textures/Objects/Fun/ducky.rsi/inhand-left.png b/Resources/Textures/Objects/Fun/ducky.rsi/inhand-left.png new file mode 100644 index 0000000000..8f1554c1e5 Binary files /dev/null and b/Resources/Textures/Objects/Fun/ducky.rsi/inhand-left.png differ diff --git a/Resources/Textures/Objects/Fun/ducky.rsi/inhand-right.png b/Resources/Textures/Objects/Fun/ducky.rsi/inhand-right.png new file mode 100644 index 0000000000..c3238c9d98 Binary files /dev/null and b/Resources/Textures/Objects/Fun/ducky.rsi/inhand-right.png differ diff --git a/Resources/Textures/Objects/Fun/ducky.rsi/meta.json b/Resources/Textures/Objects/Fun/ducky.rsi/meta.json new file mode 100644 index 0000000000..b980878efa --- /dev/null +++ b/Resources/Textures/Objects/Fun/ducky.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/4f6190e2895e09116663ef282d3ce1d8b35c032e and modified by Swept", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-HELMET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/equipped-BELT.png b/Resources/Textures/Objects/Tools/seclite.rsi/equipped-BELT.png new file mode 100644 index 0000000000..816575d326 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/meta.json b/Resources/Textures/Objects/Tools/seclite.rsi/meta.json new file mode 100644 index 0000000000..f06d071347 --- /dev/null +++ b/Resources/Textures/Objects/Tools/seclite.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation/commit/52cbeaf94322209d4c6596818dda9fb3654729d3 and modified by Swept", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "seclite" + }, + { + "name": "seclite-on" + }, + { + "name": "seclite-overlay" + }, + { + "name": "off-inhand-left", + "directions": 4 + }, + { + "name": "off-inhand-right", + "directions": 4 + }, + { + "name": "on-inhand-left", + "directions": 4 + }, + { + "name": "on-inhand-right", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-left.png b/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-left.png new file mode 100644 index 0000000000..4f64674309 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-left.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-right.png b/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-right.png new file mode 100644 index 0000000000..6e79814063 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-right.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-left.png b/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-left.png new file mode 100644 index 0000000000..3bbdfefaf0 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-left.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-right.png b/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-right.png new file mode 100644 index 0000000000..ad27d43a70 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-right.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png new file mode 100644 index 0000000000..317e638c18 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png new file mode 100644 index 0000000000..a5e9f773ed Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png differ diff --git a/Resources/Textures/Objects/Tools/seclite.rsi/seclite.png b/Resources/Textures/Objects/Tools/seclite.rsi/seclite.png new file mode 100644 index 0000000000..d8ace36de9 Binary files /dev/null and b/Resources/Textures/Objects/Tools/seclite.rsi/seclite.png differ