Adds duck-related content and a seclite (#4489)
* Added rubber ducky * Adds ducky slippers * Adds seclite * Update Resources/Textures/Objects/Tools/seclite.rsi/meta.json Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * Update Resources/Textures/Objects/Fun/ducky.rsi/meta.json Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com> * The duck slippers now quack as you walk Co-authored-by: Paul Ritter <ritter.paul1@googlemail.com>
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Shared.Audio;
|
||||||
using Content.Shared.Sound;
|
using Content.Shared.Sound;
|
||||||
using Robust.Shared.Audio;
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
@@ -18,9 +19,12 @@ namespace Content.Server.Movement.Components
|
|||||||
[DataField("footstepSoundCollection", required: true)]
|
[DataField("footstepSoundCollection", required: true)]
|
||||||
public SoundSpecifier SoundCollection = default!;
|
public SoundSpecifier SoundCollection = default!;
|
||||||
|
|
||||||
|
[DataField("variation")]
|
||||||
|
public float Variation = default;
|
||||||
|
|
||||||
public void PlayFootstep()
|
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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Resources/Audio/Items/Toys/quack.ogg
Normal file
@@ -191,6 +191,8 @@
|
|||||||
prob: 1
|
prob: 1
|
||||||
- id: ClothingOuterHardsuitSecurityRed
|
- id: ClothingOuterHardsuitSecurityRed
|
||||||
prob: 1
|
prob: 1
|
||||||
|
- id: ClothingShoeSlippersDuck
|
||||||
|
prob: 0.2
|
||||||
- id: DrinkVacuumFlask
|
- id: DrinkVacuumFlask
|
||||||
prob: 0.8
|
prob: 0.8
|
||||||
- id: ClothingBeltSecurityFilled
|
- id: ClothingBeltSecurityFilled
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
components:
|
components:
|
||||||
- type: StorageFill
|
- type: StorageFill
|
||||||
contents:
|
contents:
|
||||||
|
- id: FlashlightSeclite
|
||||||
|
prob: 1
|
||||||
- id: TaserGun
|
- id: TaserGun
|
||||||
prob: 0.3
|
prob: 0.3
|
||||||
- id: ClothingHeadHatWarden
|
- id: ClothingHeadHatWarden
|
||||||
@@ -31,6 +33,8 @@
|
|||||||
components:
|
components:
|
||||||
- type: StorageFill
|
- type: StorageFill
|
||||||
contents:
|
contents:
|
||||||
|
- id: FlashlightSeclite
|
||||||
|
prob: 0.8
|
||||||
- id: ClothingUniformJumpsuitSecGrey
|
- id: ClothingUniformJumpsuitSecGrey
|
||||||
prob: 0.3
|
prob: 0.3
|
||||||
- id: ClothingHeadHelmetHelmet
|
- id: ClothingHeadHelmetHelmet
|
||||||
@@ -65,7 +69,8 @@
|
|||||||
prob: 1
|
prob: 1
|
||||||
- id: ClothingOuterCoatDetective
|
- id: ClothingOuterCoatDetective
|
||||||
prob: 1
|
prob: 1
|
||||||
|
- id: FlashlightSeclite
|
||||||
|
prob: 1
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: ClosetBombFilled
|
id: ClosetBombFilled
|
||||||
|
|||||||
@@ -31,6 +31,22 @@
|
|||||||
- type: Clothing
|
- type: Clothing
|
||||||
sprite: Clothing/Shoes/Misc/slippers.rsi
|
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
|
- type: entity
|
||||||
parent: ClothingShoesBase
|
parent: ClothingShoesBase
|
||||||
id: ClothingShoesTourist
|
id: ClothingShoesTourist
|
||||||
|
|||||||
@@ -113,6 +113,27 @@
|
|||||||
- type: UseDelay
|
- type: UseDelay
|
||||||
delay: 1.0
|
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
|
- type: entity
|
||||||
parent: BaseItem
|
parent: BaseItem
|
||||||
id: PlushieVox
|
id: PlushieVox
|
||||||
|
|||||||
@@ -29,3 +29,24 @@
|
|||||||
- type: Appearance
|
- type: Appearance
|
||||||
visuals:
|
visuals:
|
||||||
- type: FlashLightVisualizer
|
- 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
|
||||||
@@ -67,6 +67,11 @@
|
|||||||
- /Audio/Effects/Footsteps/clownstep1.ogg
|
- /Audio/Effects/Footsteps/clownstep1.ogg
|
||||||
- /Audio/Effects/Footsteps/clownstep2.ogg
|
- /Audio/Effects/Footsteps/clownstep2.ogg
|
||||||
|
|
||||||
|
- type: soundCollection
|
||||||
|
id: footstep_duck
|
||||||
|
files:
|
||||||
|
- /Audio/Items/Toys/quack.ogg
|
||||||
|
|
||||||
- type: soundCollection
|
- type: soundCollection
|
||||||
id: footstep_heavy
|
id: footstep_heavy
|
||||||
files:
|
files:
|
||||||
|
|||||||
|
After Width: | Height: | Size: 337 B |
|
After Width: | Height: | Size: 413 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 310 B |
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Objects/Fun/ducky.rsi/equipped-HELMET.png
Normal file
|
After Width: | Height: | Size: 350 B |
BIN
Resources/Textures/Objects/Fun/ducky.rsi/icon.png
Normal file
|
After Width: | Height: | Size: 330 B |
BIN
Resources/Textures/Objects/Fun/ducky.rsi/inhand-left.png
Normal file
|
After Width: | Height: | Size: 299 B |
BIN
Resources/Textures/Objects/Fun/ducky.rsi/inhand-right.png
Normal file
|
After Width: | Height: | Size: 290 B |
26
Resources/Textures/Objects/Fun/ducky.rsi/meta.json
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Objects/Tools/seclite.rsi/equipped-BELT.png
Normal file
|
After Width: | Height: | Size: 204 B |
40
Resources/Textures/Objects/Tools/seclite.rsi/meta.json
Normal file
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
BIN
Resources/Textures/Objects/Tools/seclite.rsi/off-inhand-left.png
Normal file
|
After Width: | Height: | Size: 488 B |
|
After Width: | Height: | Size: 401 B |
BIN
Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-left.png
Normal file
|
After Width: | Height: | Size: 444 B |
BIN
Resources/Textures/Objects/Tools/seclite.rsi/on-inhand-right.png
Normal file
|
After Width: | Height: | Size: 462 B |
BIN
Resources/Textures/Objects/Tools/seclite.rsi/seclite-on.png
Normal file
|
After Width: | Height: | Size: 287 B |
BIN
Resources/Textures/Objects/Tools/seclite.rsi/seclite-overlay.png
Normal file
|
After Width: | Height: | Size: 121 B |
BIN
Resources/Textures/Objects/Tools/seclite.rsi/seclite.png
Normal file
|
After Width: | Height: | Size: 286 B |