Arcade machine improvements (#24200)

* Give 'em something to talk about

* Wire panel visuals

* Wire graphics tweak

* More ads and thanks

* More ads for a noisy arcade

* New screen for space villain machines

* Implement EmitSoundIntervalComponent and a bunch of arcade noises

* Require power for sounds

* Allow earlier startup intervals

* Orange glow

* Audio attributions

* Include the PR link

* Replace EmitSoundInterval with expanded SpamEmitSound

* Remove pacman-themed arcade sounds

* Documentation good.

* Updated methods to use Entity<T>

* Refactored SpamEmitSound to get rid of accumulator and chance.

* Fixed prewarm logic

* Moved stuff to Shared

* Fix outdated YAML

* Better prediction, auto pause handling

* Make enable/disable reset the timer instead of trying to save it.
This commit is contained in:
Tayrtahn
2024-03-28 02:28:45 -04:00
committed by GitHub
parent a071bc5dbf
commit b1ba6b5bb6
35 changed files with 425 additions and 57 deletions

View File

@@ -0,0 +1,4 @@
- files: ["hahaha.ogg", "pew_pew.ogg", "sting_*.ogg"]
license: "CC0-1.0"
copyright: "Recorded by https://github.com/Tayrtahn"
source: "https://github.com/space-wizards/space-station-14/pull/24200"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,26 @@
advertisement-block-game-1 = Legally distinct!
advertisement-block-game-2 = What the hell is a T-spin?
advertisement-block-game-3 = These blocks aren't going to clear themselves!
advertisement-block-game-4 = Beep boop! Bwoooop!
advertisement-block-game-5 = Let's play a game!
advertisement-block-game-6 = 6 whole colors of gameplay!
advertisement-block-game-7 = Hot 8-bit action!
advertisement-block-game-8 = Blocks, blocks, blocks!
advertisement-block-game-9 = Think YOU can claim the high score?
advertisement-block-game-10 = Nanotrasen Block Game IS what TetrISN'T!
advertisement-block-game-11 = Now with blast processing!
advertisement-block-game-12 = Our lawyers are standing by!
advertisement-block-game-13 = Hallelujah, it's raining blocks!
thankyou-block-game-1 = Play again soon!
thankyou-block-game-2 = Well played!
thankyou-block-game-3 = Just one more game?
thankyou-block-game-4 = Stopping so soon?
thankyou-block-game-5 = The blocks will miss you.
thankyou-block-game-6 = Thanks for playin'!
thankyou-block-game-7 = Come back soon!
thankyou-block-game-8 = Beep bwooop!
thankyou-block-game-9 = There's always time for another game!
thankyou-block-game-10 = Don't give up now!
thankyou-block-game-11 = There are always more blocks!
thankyou-block-game-12 = The blocks await your return!

View File

@@ -0,0 +1,28 @@
advertisement-space-villain-1 = Are you a bad enough dude to beat this game?
advertisement-space-villain-2 = Beat the bad guy; win a prize!
advertisement-space-villain-3 = FIGHT ME!
advertisement-space-villain-4 = Space needs a hero!
advertisement-space-villain-5 = I'm holding out for a hero!
advertisement-space-villain-6 = Won't someone save us?
advertisement-space-villain-7 = Mua-hah-hah-hah!
advertisement-space-villain-8 = Spaaaaaaaace Villain!
advertisement-space-villain-9 = No one can defeat me!
advertisement-space-villain-10 = Tremble before me!
advertisement-space-villain-11 = CHALLENGE ME!
advertisement-space-villain-12 = FEAR ME!
advertisement-space-villain-13 = Do you dare to face me in battle!?
advertisement-space-villain-14 = Beware, I live!
advertisement-space-villain-15 = I hunger!
thankyou-space-villain-1 = And where do you think you're going, punk?
thankyou-space-villain-2 = Is that all you've got?
thankyou-space-villain-3 = This fight isn't over!
thankyou-space-villain-4 = Challenge again soon!
thankyou-space-villain-5 = Who dares to challenge me next?
thankyou-space-villain-6 = I knew you couldn't defeat me!
thankyou-space-villain-7 = Too much for you to handle?
thankyou-space-villain-8 = Run, coward!
thankyou-space-villain-9 = You never stood a chance.
thankyou-space-villain-10 = Care for a rematch?
thankyou-space-villain-11 = Fight me again!
thankyou-space-villain-12 = Come back here and fight me!

View File

@@ -0,0 +1,29 @@
- type: advertisementsPack
id: BlockGameAds
advertisements:
- advertisement-block-game-1
- advertisement-block-game-2
- advertisement-block-game-3
- advertisement-block-game-4
- advertisement-block-game-5
- advertisement-block-game-6
- advertisement-block-game-7
- advertisement-block-game-8
- advertisement-block-game-9
- advertisement-block-game-10
- advertisement-block-game-11
- advertisement-block-game-12
- advertisement-block-game-13
thankyous:
- thankyou-block-game-1
- thankyou-block-game-2
- thankyou-block-game-3
- thankyou-block-game-4
- thankyou-block-game-5
- thankyou-block-game-6
- thankyou-block-game-7
- thankyou-block-game-8
- thankyou-block-game-9
- thankyou-block-game-10
- thankyou-block-game-11
- thankyou-block-game-12

View File

@@ -0,0 +1,31 @@
- type: advertisementsPack
id: SpaceVillainAds
advertisements:
- advertisement-space-villain-1
- advertisement-space-villain-2
- advertisement-space-villain-3
- advertisement-space-villain-4
- advertisement-space-villain-5
- advertisement-space-villain-6
- advertisement-space-villain-7
- advertisement-space-villain-8
- advertisement-space-villain-9
- advertisement-space-villain-10
- advertisement-space-villain-11
- advertisement-space-villain-12
- advertisement-space-villain-13
- advertisement-space-villain-14
- advertisement-space-villain-15
thankyous:
- thankyou-space-villain-1
- thankyou-space-villain-2
- thankyou-space-villain-3
- thankyou-space-villain-4
- thankyou-space-villain-5
- thankyou-space-villain-6
- thankyou-space-villain-7
- thankyou-space-villain-8
- thankyou-space-villain-9
- thankyou-space-villain-10
- thankyou-space-villain-11
- thankyou-space-villain-12

View File

@@ -10,29 +10,65 @@
priority: Low
- type: ExtensionCableReceiver
- type: PointLight
radius: 1.5
radius: 1.8
energy: 1.6
color: "#3db83b"
- type: LitOnPowered
- type: Sprite
sprite: Structures/Machines/arcade.rsi
layers:
- map: ["computerLayerBody"]
state: arcade
- map: ["computerLayerScreen"]
state: invaders
state: screen_invaders
- map: ["enum.WiresVisualLayers.MaintenancePanel"]
state: panel
visible: false
- type: Icon
sprite: Structures/Machines/arcade.rsi
state: arcade
- type: WiresPanel
- type: Wires
layoutId: Arcade
boardName: wires-board-name-arcade
- type: WiresVisuals
- type: TypingIndicator
proto: robot
- type: Speech
speechVerb: Robotic
speechSounds: Vending
- type: Anchorable
- type: Pullable
- type: StaticPrice
price: 300
- type: SpamEmitSoundRequirePower
- type: SpamEmitSound
minInterval: 30
maxInterval: 90
sound:
collection: ArcadeNoise
params:
volume: -8
maxDistance: 10
variation: 0.05
- type: entity
id: SpaceVillainArcade
name: space villain arcade
parent: ArcadeBase
components:
- type: Sprite
sprite: Structures/Machines/arcade.rsi
layers:
- map: ["computerLayerBody"]
state: arcade
- map: ["computerLayerScreen"]
state: screen_spacevillain
- map: ["enum.WiresVisualLayers.MaintenancePanel"]
state: panel
visible: false
- type: PointLight
color: "#e3a136"
- type: SpaceVillainArcade
rewardAmount: 0
possibleRewards:
@@ -108,6 +144,10 @@
type: WiresBoundUserInterface
- type: Computer
board: SpaceVillainArcadeComputerCircuitboard
- type: Advertise
pack: SpaceVillainAds
minWait: 60 # Arcades are noisy
maxWait: 240
- type: entity
id: SpaceVillainArcadeFilled
@@ -130,15 +170,14 @@
- map: ["computerLayerBody"]
state: arcade
- map: ["computerLayerScreen"]
state: blockgame
state: screen_blockgame
- map: ["enum.WiresVisualLayers.MaintenancePanel"]
state: panel
visible: false
- type: BlockGameArcade
- type: ActivatableUI
key: enum.BlockGameUiKey.Key
- type: ActivatableUIRequiresPower
- type: WiresPanel
- type: Wires
layoutId: Arcade
boardName: wires-board-name-arcade
- type: UserInterface
interfaces:
- key: enum.BlockGameUiKey.Key
@@ -147,3 +186,7 @@
type: WiresBoundUserInterface
- type: Computer
board: BlockGameArcadeComputerCircuitboard
- type: Advertise
pack: BlockGameAds
minWait: 60 # Arcades are noisy
maxWait: 240

View File

@@ -22,7 +22,6 @@
- type: SleepEmitSound
snore: /Audio/Voice/Misc/silly_snore.ogg
interval: 10
chance: 1.0
- !type:AddImplantSpecial
implants: [ SadTromboneImplant ]

View File

@@ -0,0 +1,11 @@
- type: soundCollection
id: ArcadeNoise
files:
- /Audio/Machines/Arcade/hahaha.ogg
- /Audio/Machines/Arcade/pew_pew.ogg
- /Audio/Machines/Arcade/sting_01.ogg
- /Audio/Machines/Arcade/sting_02.ogg
- /Audio/Machines/Arcade/sting_03.ogg
- /Audio/Machines/Arcade/sting_04.ogg
- /Audio/Machines/Arcade/sting_05.ogg
- /Audio/Machines/Arcade/sting_06.ogg

View File

@@ -87,6 +87,7 @@
id: Arcade
wires:
- !type:PowerWireAction
- !type:SpeechWireAction
- !type:ArcadeOverflowWireAction
- !type:ArcadePlayerInvincibleWireAction
- !type:ArcadeEnemyInvincibleWireAction

View File

@@ -19,7 +19,11 @@
"directions": 4
},
{
"name": "invaders",
"name": "panel",
"directions": 4
},
{
"name": "screen_invaders",
"directions": 4,
"delays": [
[
@@ -42,7 +46,7 @@
]
},
{
"name": "blockgame",
"name": "screen_blockgame",
"directions": 4,
"delays": [
[
@@ -82,6 +86,48 @@
4.8
]
]
},
{
"name": "screen_spacevillain",
"directions": 4,
"delays": [
[
1.0,
0.8,
0.2,
0.8,
0.5,
1.0,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.1,
0.5,
1.0,
0.1,
0.1,
0.1,
0.1,
0.1,
0.2,
0.5,
0.1,
0.8,
1.0
],
[
9.6
],
[
9.6
],
[
9.6
]
]
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 B