Syndicate Decoy Bundle + Snap Pops (#25333)

* it works

halilujeah

* toggleable lights

removes a redundant flashlight since you can turn on the balloons to cast light

* final touches

syndicate decoys :trollface:

* touches

it works now

* minor spelling mistake



* minor spelling mistake 2

darn

* adds whistle

commanders now spawn with a whistle around their neck

* yaml linter

luv you linter baby

* smallify the whistle

it was way too big, this has been addressed

* sprite fix

am dummy 👍

* netsync errors

wouldn't compile properly

* forgor

* i suck at yaml

smh

* decoys for all

now both syndicate and traitors can use the decoys, yippee!

* Update meta.json

credit my discord username

* Update uplink-catalog.ftl

* Update decoys.yml

base decoy no longer shows in the entity browser

* immortal gone

balloons have gained mortality
This commit is contained in:
Firewatch
2024-02-28 16:53:46 -05:00
committed by GitHub
parent 9884351101
commit 93d820f315
42 changed files with 496 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
- files: - files:
- "whistle_1.ogg" - "whistle_1.ogg"
- "whistle_2.ogg" - "whistle_2.ogg"
- "whistle_3.ogg" - "whistle_3.ogg"
@@ -8,4 +8,12 @@
- "whistle_7.ogg" - "whistle_7.ogg"
license: "CC0-1.0" license: "CC0-1.0"
copyright: "User strongbot on freesound.org. Modified by Fahasor on github" copyright: "User strongbot on freesound.org. Modified by Fahasor on github"
source: "https://freesound.org/people/strongbot/sounds/568995/" source: "https://freesound.org/people/strongbot/sounds/568995/"
- files:
- "trench_whistle_1.ogg"
- "trench_whistle_2.ogg"
- "trench_whistle_3.ogg"
license: "CC0-1.0"
copyright: "Deleted user on freesound.org."
source: "https://freesound.org/people/deleted_user_2104797/sounds/324539/"

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -192,6 +192,9 @@ uplink-observation-kit-desc = Includes surveillance camera monitor board and sec
uplink-emp-kit-name = Electrical Disruptor Kit uplink-emp-kit-name = Electrical Disruptor Kit
uplink-emp-kit-desc = The ultimate reversal on energy-based weaponry: Disables disablers, stuns stunbatons, discharges laser guns! Contains 3 EMP grenades and an EMP implanter. Note: Does not disrupt actual firearms. uplink-emp-kit-desc = The ultimate reversal on energy-based weaponry: Disables disablers, stuns stunbatons, discharges laser guns! Contains 3 EMP grenades and an EMP implanter. Note: Does not disrupt actual firearms.
uplink-decoy-kit-name = Decoy Kit
uplink-decoy-kit-desc = State-of-the-art distraction technology straight from RND. Comes with five realistic balloons, four decoy grenades, and some snap poppers!
uplink-chemistry-kit-name = Chemical Synthesis Kit uplink-chemistry-kit-name = Chemical Synthesis Kit
uplink-chemistry-kit-desc = A starter kit for the aspiring chemist, includes toxin and vestine for all your criminal needs! uplink-chemistry-kit-desc = A starter kit for the aspiring chemist, includes toxin and vestine for all your criminal needs!

View File

@@ -366,3 +366,22 @@
- id: ClothingHandsGlovesNitrile - id: ClothingHandsGlovesNitrile
- id: SyringeTranexamicAcid - id: SyringeTranexamicAcid
- id: SyringeHyronalin - id: SyringeHyronalin
- type: entity
parent: ClothingBackpackDuffelSyndicateBundle
id: ClothingBackpackDuffelSyndicateDecoyKitFilled
name: decoy bundle
description: "Contains distractions, both auditory and visual. Smell coming soon."
components:
- type: StorageFill
contents:
- id: BalloonOperative
- id: BalloonAgent
- id: BalloonElite
- id: BalloonJuggernaut
- id: BalloonCommander
- id: SnapPopBox
- id: GrenadeDummy
amount: 2
- id: SyndieTrickyBomb
amount: 2

View File

@@ -288,6 +288,7 @@
components: components:
- type: StorageFill - type: StorageFill
contents: contents:
- id: SnapPopBox
- id: CrazyGlue - id: CrazyGlue
amount: 2 amount: 2
- id: PlasticBanana - id: PlasticBanana

View File

@@ -525,7 +525,7 @@
description: uplink-binary-translator-key-desc description: uplink-binary-translator-key-desc
icon: { sprite: /Textures/Objects/Devices/encryption_keys.rsi, state: rd_label } icon: { sprite: /Textures/Objects/Devices/encryption_keys.rsi, state: rd_label }
productEntity: EncryptionKeyBinary productEntity: EncryptionKeyBinary
cost: cost:
Telecrystal: 1 Telecrystal: 1
categories: categories:
@@ -792,6 +792,17 @@
categories: categories:
- UplinkBundles - UplinkBundles
- type: listing
id: UplinkDecoyKit
name: uplink-decoy-kit-name
description: uplink-decoy-kit-desc
icon: { sprite: /Textures/Objects/Tools/Decoys/operative_decoy.rsi, state: folded }
productEntity: ClothingBackpackDuffelSyndicateDecoyKitFilled
cost:
Telecrystal: 6
categories:
- UplinkBundles
- type: listing - type: listing
id: UplinkMedsBundle id: UplinkMedsBundle
name: uplink-meds-bundle-name name: uplink-meds-bundle-name

View File

@@ -0,0 +1,61 @@
- type: entity
parent: BaseItem
id: SnapPop
name: snap pop
description: Throw it at the floor and listen to it POP!
components:
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: snappop
- type: Item
size: Tiny
- type: Damageable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/snap.ogg
- !type:ExplodeBehavior
- type: DamageOnLand
damage:
types:
Blunt: 3
- type: Explosive
explosionType: Default
# Cosmetic explosion :tf:
maxIntensity: 0.01
intensitySlope: 1
totalIntensity: 0.01
- type: Tag
tags:
- SnapPop
- type: entity
parent: BaseStorageItem
id: SnapPopBox
name: snap pop box
description: Contains twenty snap pops for a few minutes of popping fun!
components:
- type: Item
size: Normal
- type: Sprite
sprite: Objects/Fun/toys.rsi
state: spbox
- type: Storage
grid:
- 0,0,4,3
areaInsert: true
maxItemSize: Tiny
- type: StorageFill
contents:
- id: SnapPop
amount: 20
- type: Dumpable

View File

@@ -13,7 +13,7 @@
- type: UseDelay - type: UseDelay
delay: 3 delay: 3
- type: EmitSoundOnUse - type: EmitSoundOnUse
sound: sound:
collection: BaseWhistle collection: BaseWhistle
- type: Whistle - type: Whistle
distance: 5 distance: 5
@@ -27,4 +27,24 @@
sprite: Objects/Fun/whistle.rsi sprite: Objects/Fun/whistle.rsi
state: securityWhistle state: securityWhistle
- type: Item - type: Item
sprite: Objects/Fun/whistle.rsi sprite: Objects/Fun/whistle.rsi
- type: entity
parent: BaseWhistle
id: SyndicateWhistle
name: trench whistle
description: A whistle used by Syndicate commanders to draw attention. Avanti!
components:
- type: Sprite
sprite: Clothing/Neck/Misc/whistles.rsi
state: icon
- type: Clothing
sprite: Clothing/Neck/Misc/whistles.rsi
quickEquip: False
slots:
- neck
- type: EmitSoundOnUse
sound:
collection: TrenchWhistle
- type: Whistle
distance: 15 # Let your enemies hear the sound of death approaching

View File

@@ -0,0 +1,169 @@
# Operative Balloons, looks just like the real thing!
- type: entity
parent: [BaseItem, BaseFoldable]
id: BaseDecoy
abstract: true
components:
- type: Rotatable
- type: Sprite
sprite: Objects/Tools/Decoys/operative_decoy.rsi
layers:
- state: oballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/pop_high.ogg
- type: Appearance
- type: Item
size: Normal
- type: RandomMetadata # No metagaming these, jimbo.
nameSegments:
- SyndicateNamesPrefix
- SyndicateNamesNormal
- type: Damageable
damageContainer: Inorganic
- type: ToggleableLightVisuals
- type: Foldable
folded: true
- type: PowerCellSlot
cellSlotId: cell_slot
- type: ItemSlots
slots:
cell_slot:
name: power-cell-slot-component-slot-name-default
startingItem: PowerCellHigh
- type: ContainerContainer
containers:
cell_slot: !type:ContainerSlot
- type: Tag
tags:
- Balloon
- Flashlight
- type: entity
parent: BaseDecoy
id: BalloonOperative
name: operative balloon
description: Upon closer inspection, this Syndicate operative is actually a balloon.
components:
- type: HandheldLight
addPrefix: false
- type: Sprite
sprite: Objects/Tools/Decoys/operative_decoy.rsi
layers:
- state: oballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: PointLight # Just like the real thing...
autoRot: true
radius: 1.5
energy: 2.3
offset: 0, -1
color: green
netsync: false
- type: entity
parent: BaseDecoy
id: BalloonAgent
name: agent balloon
description: Upon closer inspection, this Syndicate agent is actually a balloon.
components:
- type: HandheldLight
addPrefix: false
- type: Sprite
sprite: Objects/Tools/Decoys/agent_decoy.rsi
layers:
- state: aballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: PointLight
radius: 1.5
energy: 2.3
offset: 0, -1
color: green
netsync: false
- type: entity
parent: BaseDecoy
id: BalloonElite
name: elite operative balloon
description: Upon closer inspection, this Syndicate elite operative is actually a balloon.
components:
- type: HandheldLight
addPrefix: false
- type: Sprite
sprite: Objects/Tools/Decoys/elite_decoy.rsi
layers:
- state: eballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: PointLight
radius: 1.5
energy: 2.3
offset: 0, -1
color: red
netsync: false
- type: entity
parent: BaseDecoy
id: BalloonJuggernaut
name: juggernaut balloon
description: Upon closer inspection, this Syndicate juggernaut is actually a balloon.
components:
- type: HandheldLight
addPrefix: false
- type: Sprite
sprite: Objects/Tools/Decoys/juggernaut_decoy.rsi
layers:
- state: jballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: PointLight # Inbuilt flashlight, I guess?
radius: 1.5
energy: 2.3
offset: 0, -1
netsync: false
- type: entity
parent: BaseDecoy
id: BalloonCommander
name: commander balloon
description: Upon closer inspection, this Syndicate commander is actually a balloon.
components:
- type: HandheldLight
addPrefix: false
- type: Sprite
sprite: Objects/Tools/Decoys/commander_decoy.rsi
layers:
- state: cballoon
map: ["unfoldedLayer"]
- state: folded
map: ["foldedLayer"]
visible: false
- type: PointLight
radius: 1.5
energy: 2.3
offset: 0, -1
color: green
netsync: false

View File

@@ -379,3 +379,42 @@
reagents: reagents:
- ReagentId: TearGas - ReagentId: TearGas
Quantity: 50 Quantity: 50
# Non-explosive "dummy" grenades to use as a distraction.
- type: entity
name: trick grenade
description: All the grenade without any of the boom.
parent: GrenadeBase
id: GrenadeDummy
components:
- type: Sprite
sprite: Objects/Weapons/Grenades/grenade.rsi
- type: DeleteOnTrigger
- type: SpawnOnTrigger
proto: GrenadeFlashEffect
- type: SoundOnTrigger
sound:
path: /Audio/Effects/Emotes/parp1.ogg
- type: Appearance
- type: TimerTriggerVisuals
primingSound:
path: /Audio/Effects/countdown.ogg
- type: entity
name: syndicate trickybomb
description: A syndicate-manufactured explosive used to make an excellent distraction.
parent: GrenadeDummy
id: SyndieTrickyBomb
components:
- type: Sprite
sprite: Objects/Weapons/Grenades/syndgrenade.rsi
- type: SoundOnTrigger
sound:
path: /Audio/Effects/Emotes/parp1.ogg
- type: Appearance
- type: TimerTriggerVisuals
primingSound:
path: /Audio/Effects/minibombcountdown.ogg
params:
volume: 12

View File

@@ -123,6 +123,7 @@
mask: ClothingMaskGasSyndicate mask: ClothingMaskGasSyndicate
eyes: ClothingEyesHudSyndicate eyes: ClothingEyesHudSyndicate
ears: ClothingHeadsetAltSyndicate ears: ClothingHeadsetAltSyndicate
neck: SyndicateWhistle
gloves: ClothingHandsGlovesCombat gloves: ClothingHandsGlovesCombat
outerClothing: ClothingOuterHardsuitSyndieCommander outerClothing: ClothingOuterHardsuitSyndieCommander
shoes: ClothingShoesBootsCombatFilled shoes: ClothingShoesBootsCombatFilled

View File

@@ -8,3 +8,10 @@
- /Audio/Items/Whistle/whistle_5.ogg - /Audio/Items/Whistle/whistle_5.ogg
- /Audio/Items/Whistle/whistle_6.ogg - /Audio/Items/Whistle/whistle_6.ogg
- /Audio/Items/Whistle/whistle_7.ogg - /Audio/Items/Whistle/whistle_7.ogg
- type: soundCollection
id: TrenchWhistle
files:
- /Audio/Items/Whistle/trench_whistle_1.ogg
- /Audio/Items/Whistle/trench_whistle_2.ogg
- /Audio/Items/Whistle/trench_whistle_3.ogg

View File

@@ -1067,6 +1067,9 @@
- type: Tag - type: Tag
id: SmallMech id: SmallMech
- type: Tag
id: SnapPop
- type: Tag - type: Tag
id: Smokable id: Smokable

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1,19 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Drawn by Firewatchin on Discord.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "equipped-NECK",
"directions": 4
},
{
"name": "icon"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Modified from existing sprites.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "folded"
},
{
"name": "aballoon",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Modified from existing sprites.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "folded"
},
{
"name": "cballoon",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Modified from existing sprites.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "folded"
},
{
"name": "eballoon",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Modified from existing sprites.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "folded"
},
{
"name": "jballoon",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,18 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Modified from existing sprites.",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "folded"
},
{
"name": "oballoon",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 424 B

View File

@@ -0,0 +1,40 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Taken from vgstation and modified by Swept at https://github.com/vgstation-coders/vgstation13/blob/Bleeding-Edge/icons/obj/lighting.dmi",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "flashlight"
},
{
"name": "flashlight-on"
},
{
"name": "flashlight-overlay"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "inhand-left-light",
"directions": 4
},
{
"name": "inhand-right-light",
"directions": 4
},
{
"name": "equipped-BELT",
"directions": 4
}
]
}