diff --git a/lib/game/components/components.dart b/lib/game/components/components.dart index 3fae6abd..5157574e 100644 --- a/lib/game/components/components.dart +++ b/lib/game/components/components.dart @@ -11,4 +11,4 @@ export 'game_flow_controller.dart'; export 'google_word/google_word.dart'; export 'launcher.dart'; export 'scoring_behavior.dart'; -export 'sparky_fire_zone.dart'; +export 'sparky_scorch.dart'; diff --git a/lib/game/components/sparky_fire_zone.dart b/lib/game/components/sparky_scorch.dart similarity index 87% rename from lib/game/components/sparky_fire_zone.dart rename to lib/game/components/sparky_scorch.dart index a37c2469..e4af4aab 100644 --- a/lib/game/components/sparky_fire_zone.dart +++ b/lib/game/components/sparky_scorch.dart @@ -5,15 +5,13 @@ import 'package:pinball/game/game.dart'; import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_flame/pinball_flame.dart'; -/// {@template sparky_fire_zone} -/// Area positioned at the top left of the board where the [Ball] -/// can bounce off [SparkyBumper]s. -/// -/// When a [Ball] hits [SparkyBumper]s, the bumper animates. +/// {@template sparky_scorch} +/// Area positioned at the top left of the board containing the +/// [SparkyComputer], [SparkyAnimatronic], and [SparkyBumper]s. /// {@endtemplate} -class SparkyFireZone extends Blueprint { - /// {@macro sparky_fire_zone} - SparkyFireZone() +class SparkyScorch extends Blueprint { + /// {@macro sparky_scorch} + SparkyScorch() : super( components: [ SparkyBumper.a( diff --git a/lib/game/pinball_game.dart b/lib/game/pinball_game.dart index a4b740fb..08c749e6 100644 --- a/lib/game/pinball_game.dart +++ b/lib/game/pinball_game.dart @@ -54,7 +54,7 @@ class PinballGame extends Forge2DGame final launcher = Launcher(); unawaited(addFromBlueprint(launcher)); await add(FlutterForest()); - await addFromBlueprint(SparkyFireZone()); + await addFromBlueprint(SparkyScorch()); await addFromBlueprint(AndroidAcres()); await addFromBlueprint(DinoDesert()); unawaited(addFromBlueprint(Slingshots())); @@ -185,7 +185,7 @@ class DebugPinballGame extends PinballGame with FPSCounter { @override Future onLoad() async { await super.onLoad(); - await _loadBackground(); + // await _loadBackground(); await add(_DebugInformation()); } diff --git a/packages/pinball_components/assets/images/sparky/bumper/a/inactive.png b/packages/pinball_components/assets/images/sparky/bumper/a/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/a/inactive.png rename to packages/pinball_components/assets/images/sparky/bumper/a/dimmed.png diff --git a/packages/pinball_components/assets/images/sparky/bumper/a/active.png b/packages/pinball_components/assets/images/sparky/bumper/a/lit.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/a/active.png rename to packages/pinball_components/assets/images/sparky/bumper/a/lit.png diff --git a/packages/pinball_components/assets/images/sparky/bumper/b/inactive.png b/packages/pinball_components/assets/images/sparky/bumper/b/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/b/inactive.png rename to packages/pinball_components/assets/images/sparky/bumper/b/dimmed.png diff --git a/packages/pinball_components/assets/images/sparky/bumper/b/active.png b/packages/pinball_components/assets/images/sparky/bumper/b/lit.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/b/active.png rename to packages/pinball_components/assets/images/sparky/bumper/b/lit.png diff --git a/packages/pinball_components/assets/images/sparky/bumper/c/inactive.png b/packages/pinball_components/assets/images/sparky/bumper/c/dimmed.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/c/inactive.png rename to packages/pinball_components/assets/images/sparky/bumper/c/dimmed.png diff --git a/packages/pinball_components/assets/images/sparky/bumper/c/active.png b/packages/pinball_components/assets/images/sparky/bumper/c/lit.png similarity index 100% rename from packages/pinball_components/assets/images/sparky/bumper/c/active.png rename to packages/pinball_components/assets/images/sparky/bumper/c/lit.png diff --git a/packages/pinball_components/assets/images/sparky/computer/glow.png b/packages/pinball_components/assets/images/sparky/computer/glow.png new file mode 100644 index 00000000..07ffdb0c Binary files /dev/null and b/packages/pinball_components/assets/images/sparky/computer/glow.png differ diff --git a/packages/pinball_components/lib/gen/assets.gen.dart b/packages/pinball_components/lib/gen/assets.gen.dart index 71c01cfd..248277c5 100644 --- a/packages/pinball_components/lib/gen/assets.gen.dart +++ b/packages/pinball_components/lib/gen/assets.gen.dart @@ -357,6 +357,10 @@ class $AssetsImagesSparkyComputerGen { AssetGenImage get base => const AssetGenImage('assets/images/sparky/computer/base.png'); + /// File path: assets/images/sparky/computer/glow.png + AssetGenImage get glow => + const AssetGenImage('assets/images/sparky/computer/glow.png'); + /// File path: assets/images/sparky/computer/top.png AssetGenImage get top => const AssetGenImage('assets/images/sparky/computer/top.png'); @@ -429,37 +433,37 @@ class $AssetsImagesSpaceshipRampArrowGen { class $AssetsImagesSparkyBumperAGen { const $AssetsImagesSparkyBumperAGen(); - /// File path: assets/images/sparky/bumper/a/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/sparky/bumper/a/active.png'); + /// File path: assets/images/sparky/bumper/a/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/sparky/bumper/a/dimmed.png'); - /// File path: assets/images/sparky/bumper/a/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/sparky/bumper/a/inactive.png'); + /// File path: assets/images/sparky/bumper/a/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/sparky/bumper/a/lit.png'); } class $AssetsImagesSparkyBumperBGen { const $AssetsImagesSparkyBumperBGen(); - /// File path: assets/images/sparky/bumper/b/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/sparky/bumper/b/active.png'); + /// File path: assets/images/sparky/bumper/b/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/sparky/bumper/b/dimmed.png'); - /// File path: assets/images/sparky/bumper/b/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/sparky/bumper/b/inactive.png'); + /// File path: assets/images/sparky/bumper/b/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/sparky/bumper/b/lit.png'); } class $AssetsImagesSparkyBumperCGen { const $AssetsImagesSparkyBumperCGen(); - /// File path: assets/images/sparky/bumper/c/active.png - AssetGenImage get active => - const AssetGenImage('assets/images/sparky/bumper/c/active.png'); + /// File path: assets/images/sparky/bumper/c/dimmed.png + AssetGenImage get dimmed => + const AssetGenImage('assets/images/sparky/bumper/c/dimmed.png'); - /// File path: assets/images/sparky/bumper/c/inactive.png - AssetGenImage get inactive => - const AssetGenImage('assets/images/sparky/bumper/c/inactive.png'); + /// File path: assets/images/sparky/bumper/c/lit.png + AssetGenImage get lit => + const AssetGenImage('assets/images/sparky/bumper/c/lit.png'); } class Assets { diff --git a/packages/pinball_components/lib/src/components/render_priority.dart b/packages/pinball_components/lib/src/components/render_priority.dart index c63b2b31..e79d1f59 100644 --- a/packages/pinball_components/lib/src/components/render_priority.dart +++ b/packages/pinball_components/lib/src/components/render_priority.dart @@ -57,7 +57,7 @@ abstract class RenderPriority { static const int rocket = _below + bottomBoundary; - // Dino Land + // Dino Desert static const int dinoTopWall = _above + ballOnBoard; @@ -71,12 +71,14 @@ abstract class RenderPriority { static const int flutterForest = _above + launchRampForegroundRailing; - // Sparky Fire Zone + // Sparky Scorch static const int computerBase = _below + ballOnBoard; static const int computerTop = _above + ballOnBoard; + static const int computerGlow = _above + ballOnBoard; + static const int sparkyAnimatronic = _above + spaceshipRampForegroundRailing; static const int sparkyBumper = _above + ballOnBoard; diff --git a/packages/pinball_components/lib/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior.dart b/packages/pinball_components/lib/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior.dart index 81cfa5e1..2c2c50fe 100644 --- a/packages/pinball_components/lib/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior.dart +++ b/packages/pinball_components/lib/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior.dart @@ -3,19 +3,19 @@ import 'package:pinball_components/pinball_components.dart'; import 'package:pinball_flame/pinball_flame.dart'; /// {@template sparky_bumper_blinking_behavior} -/// Makes a [SparkyBumper] blink back to [SparkyBumperState.active] when -/// [SparkyBumperState.inactive]. +/// Makes a [SparkyBumper] blink back to [SparkyBumperState.lit] when +/// [SparkyBumperState.dimmed]. /// {@endtemplate} class SparkyBumperBlinkingBehavior extends TimerComponent with ParentIsA { - /// {@macro sparky_bumper_sprite_behavior} + /// {@macro sparky_bumper_blinking_behavior} SparkyBumperBlinkingBehavior() : super(period: 0.05); void _onNewState(SparkyBumperState state) { switch (state) { - case SparkyBumperState.active: + case SparkyBumperState.lit: break; - case SparkyBumperState.inactive: + case SparkyBumperState.dimmed: timer ..reset() ..start(); diff --git a/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_cubit.dart b/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_cubit.dart index bbb9b63b..2f7ba7c4 100644 --- a/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_cubit.dart +++ b/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_cubit.dart @@ -5,13 +5,13 @@ import 'package:bloc/bloc.dart'; part 'sparky_bumper_state.dart'; class SparkyBumperCubit extends Cubit { - SparkyBumperCubit() : super(SparkyBumperState.active); + SparkyBumperCubit() : super(SparkyBumperState.lit); void onBallContacted() { - emit(SparkyBumperState.inactive); + emit(SparkyBumperState.dimmed); } void onBlinked() { - emit(SparkyBumperState.active); + emit(SparkyBumperState.lit); } } diff --git a/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_state.dart b/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_state.dart index 35cc5ffa..096af299 100644 --- a/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_state.dart +++ b/packages/pinball_components/lib/src/components/sparky_bumper/cubit/sparky_bumper_state.dart @@ -1,10 +1,8 @@ +// ignore_for_file: public_member_api_docs + part of 'sparky_bumper_cubit.dart'; -/// Indicates the [SparkyBumperCubit]'s current state. enum SparkyBumperState { - /// A lit up bumper. - active, - - /// A dimmed bumper. - inactive, + lit, + dimmed, } diff --git a/packages/pinball_components/lib/src/components/sparky_bumper/sparky_bumper.dart b/packages/pinball_components/lib/src/components/sparky_bumper/sparky_bumper.dart index d6434375..11175c0d 100644 --- a/packages/pinball_components/lib/src/components/sparky_bumper/sparky_bumper.dart +++ b/packages/pinball_components/lib/src/components/sparky_bumper/sparky_bumper.dart @@ -17,8 +17,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { SparkyBumper._({ required double majorRadius, required double minorRadius, - required String onAssetPath, - required String offAssetPath, + required String litAssetPath, + required String dimmedAssetPath, required Vector2 spritePosition, required this.bloc, Iterable? children, @@ -31,8 +31,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { SparkyBumperBallContactBehavior(), SparkyBumperBlinkingBehavior(), _SparkyBumperSpriteGroupComponent( - onAssetPath: onAssetPath, - offAssetPath: offAssetPath, + litAssetPath: litAssetPath, + dimmedAssetPath: dimmedAssetPath, position: spritePosition, state: bloc.state, ), @@ -46,8 +46,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { }) : this._( majorRadius: 2.9, minorRadius: 2.1, - onAssetPath: Assets.images.sparky.bumper.a.active.keyName, - offAssetPath: Assets.images.sparky.bumper.a.inactive.keyName, + litAssetPath: Assets.images.sparky.bumper.a.lit.keyName, + dimmedAssetPath: Assets.images.sparky.bumper.a.dimmed.keyName, spritePosition: Vector2(0, -0.25), bloc: SparkyBumperCubit(), children: children, @@ -59,8 +59,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { }) : this._( majorRadius: 2.85, minorRadius: 2, - onAssetPath: Assets.images.sparky.bumper.b.active.keyName, - offAssetPath: Assets.images.sparky.bumper.b.inactive.keyName, + litAssetPath: Assets.images.sparky.bumper.b.lit.keyName, + dimmedAssetPath: Assets.images.sparky.bumper.b.dimmed.keyName, spritePosition: Vector2(0, -0.35), bloc: SparkyBumperCubit(), children: children, @@ -72,8 +72,8 @@ class SparkyBumper extends BodyComponent with InitialPosition { }) : this._( majorRadius: 3, minorRadius: 2.2, - onAssetPath: Assets.images.sparky.bumper.c.active.keyName, - offAssetPath: Assets.images.sparky.bumper.c.inactive.keyName, + litAssetPath: Assets.images.sparky.bumper.c.lit.keyName, + dimmedAssetPath: Assets.images.sparky.bumper.c.dimmed.keyName, spritePosition: Vector2(0, -0.4), bloc: SparkyBumperCubit(), children: children, @@ -127,20 +127,20 @@ class _SparkyBumperSpriteGroupComponent extends SpriteGroupComponent with HasGameRef, ParentIsA { _SparkyBumperSpriteGroupComponent({ - required String onAssetPath, - required String offAssetPath, + required String litAssetPath, + required String dimmedAssetPath, required Vector2 position, required SparkyBumperState state, - }) : _onAssetPath = onAssetPath, - _offAssetPath = offAssetPath, + }) : _litAssetPath = litAssetPath, + _dimmedAssetPath = dimmedAssetPath, super( anchor: Anchor.center, position: position, current: state, ); - final String _onAssetPath; - final String _offAssetPath; + final String _litAssetPath; + final String _dimmedAssetPath; @override Future onLoad() async { @@ -151,11 +151,11 @@ class _SparkyBumperSpriteGroupComponent parent.bloc.stream.listen((state) => current = state); final sprites = { - SparkyBumperState.active: Sprite( - gameRef.images.fromCache(_onAssetPath), + SparkyBumperState.lit: Sprite( + gameRef.images.fromCache(_litAssetPath), ), - SparkyBumperState.inactive: Sprite( - gameRef.images.fromCache(_offAssetPath), + SparkyBumperState.dimmed: Sprite( + gameRef.images.fromCache(_dimmedAssetPath), ), }; this.sprites = sprites; diff --git a/packages/pinball_components/lib/src/components/sparky_computer.dart b/packages/pinball_components/lib/src/components/sparky_computer.dart index 7f0cef8c..b25dae4e 100644 --- a/packages/pinball_components/lib/src/components/sparky_computer.dart +++ b/packages/pinball_components/lib/src/components/sparky_computer.dart @@ -15,6 +15,7 @@ class SparkyComputer extends Blueprint { components: [ _ComputerBase(), _ComputerTopSpriteComponent(), + _ComputerGlowSpriteComponent(), ], ); } @@ -65,15 +66,17 @@ class _ComputerBaseSpriteComponent extends SpriteComponent with HasGameRef { _ComputerBaseSpriteComponent() : super( anchor: Anchor.center, - position: Vector2(-11.95, -48.35), + position: Vector2(-12.1, -48.15), ); @override Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - Assets.images.sparky.computer.base.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.sparky.computer.base.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; @@ -84,7 +87,7 @@ class _ComputerTopSpriteComponent extends SpriteComponent with HasGameRef { _ComputerTopSpriteComponent() : super( anchor: Anchor.center, - position: Vector2(-12.45, -49.75), + position: Vector2(-12.52, -49.37), priority: RenderPriority.computerTop, ); @@ -92,8 +95,32 @@ class _ComputerTopSpriteComponent extends SpriteComponent with HasGameRef { Future onLoad() async { await super.onLoad(); - final sprite = await gameRef.loadSprite( - Assets.images.sparky.computer.top.keyName, + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.sparky.computer.top.keyName, + ), + ); + this.sprite = sprite; + size = sprite.originalSize / 10; + } +} + +class _ComputerGlowSpriteComponent extends SpriteComponent with HasGameRef { + _ComputerGlowSpriteComponent() + : super( + anchor: Anchor.center, + position: Vector2(7.4, 10), + priority: RenderPriority.computerGlow, + ); + + @override + Future onLoad() async { + await super.onLoad(); + + final sprite = Sprite( + gameRef.images.fromCache( + Assets.images.sparky.computer.glow.keyName, + ), ); this.sprite = sprite; size = sprite.originalSize / 10; diff --git a/packages/pinball_components/sandbox/lib/main.dart b/packages/pinball_components/sandbox/lib/main.dart index 96083717..83807387 100644 --- a/packages/pinball_components/sandbox/lib/main.dart +++ b/packages/pinball_components/sandbox/lib/main.dart @@ -19,7 +19,7 @@ void main() { addBottomGroupStories(dashbook); addPlungerStories(dashbook); addSlingshotStories(dashbook); - addSparkyBumperStories(dashbook); + addSparkyScorchStories(dashbook); addAndroidAcresStories(dashbook); addBoundariesStories(dashbook); addGoogleWordStories(dashbook); diff --git a/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart b/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart index 1be94133..edfd0c35 100644 --- a/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/launch_ramp/launch_ramp_game.dart @@ -15,7 +15,7 @@ class LaunchRampGame extends BallGame { ); static const description = ''' - Shows how LaunchRamp are rendered. + Shows how the LaunchRamp is rendered. - Activate the "trace" parameter to overlay the body. - Tap anywhere on the screen to spawn a ball into the game. @@ -26,7 +26,7 @@ class LaunchRampGame extends BallGame { await super.onLoad(); camera - ..followVector2(Vector2(0, 0)) + ..followVector2(Vector2.zero()) ..zoom = 7.5; await addFromBlueprint(LaunchRamp()); await ready(); diff --git a/packages/pinball_components/sandbox/lib/stories/sparky_bumper/stories.dart b/packages/pinball_components/sandbox/lib/stories/sparky_bumper/stories.dart deleted file mode 100644 index 418636db..00000000 --- a/packages/pinball_components/sandbox/lib/stories/sparky_bumper/stories.dart +++ /dev/null @@ -1,11 +0,0 @@ -import 'package:dashbook/dashbook.dart'; -import 'package:sandbox/common/common.dart'; -import 'package:sandbox/stories/sparky_bumper/sparky_bumper_game.dart'; - -void addSparkyBumperStories(Dashbook dashbook) { - dashbook.storiesOf('Sparky Bumpers').addGame( - title: 'Traced', - description: SparkyBumperGame.description, - gameBuilder: (_) => SparkyBumperGame(), - ); -} diff --git a/packages/pinball_components/sandbox/lib/stories/sparky_bumper/sparky_bumper_game.dart b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_bumper_game.dart similarity index 74% rename from packages/pinball_components/sandbox/lib/stories/sparky_bumper/sparky_bumper_game.dart rename to packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_bumper_game.dart index 9bebde9e..c45c4895 100644 --- a/packages/pinball_components/sandbox/lib/stories/sparky_bumper/sparky_bumper_game.dart +++ b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_bumper_game.dart @@ -9,6 +9,7 @@ class SparkyBumperGame extends BallGame { Shows how a SparkyBumper is rendered. - Activate the "trace" parameter to overlay the body. + - Tap anywhere on the screen to spawn a ball into the game. '''; @override @@ -16,12 +17,12 @@ class SparkyBumperGame extends BallGame { await super.onLoad(); await images.loadAll([ - Assets.images.sparky.bumper.a.active.keyName, - Assets.images.sparky.bumper.a.inactive.keyName, - Assets.images.sparky.bumper.b.active.keyName, - Assets.images.sparky.bumper.b.inactive.keyName, - Assets.images.sparky.bumper.c.active.keyName, - Assets.images.sparky.bumper.c.inactive.keyName, + Assets.images.sparky.bumper.a.lit.keyName, + Assets.images.sparky.bumper.a.dimmed.keyName, + Assets.images.sparky.bumper.b.lit.keyName, + Assets.images.sparky.bumper.b.dimmed.keyName, + Assets.images.sparky.bumper.c.lit.keyName, + Assets.images.sparky.bumper.c.dimmed.keyName, ]); final center = screenToWorld(camera.viewport.canvasSize! / 2); diff --git a/packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_computer_game.dart b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_computer_game.dart new file mode 100644 index 00000000..36ec5914 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/sparky_computer_game.dart @@ -0,0 +1,33 @@ +import 'dart:async'; + +import 'package:flame/input.dart'; +import 'package:pinball_components/pinball_components.dart'; +import 'package:pinball_flame/pinball_flame.dart'; +import 'package:sandbox/stories/ball/basic_ball_game.dart'; + +class SparkyComputerGame extends BallGame { + SparkyComputerGame(); + + static const description = ''' + Shows how the SparkyComputer is rendered. + + - Activate the "trace" parameter to overlay the body. + - Tap anywhere on the screen to spawn a ball into the game. +'''; + + @override + Future onLoad() async { + await super.onLoad(); + + await images.loadAll([ + Assets.images.sparky.computer.base.keyName, + Assets.images.sparky.computer.top.keyName, + Assets.images.sparky.computer.glow.keyName, + ]); + + camera.followVector2(Vector2(-10, -40)); + await addFromBlueprint(SparkyComputer()); + await ready(); + await traceAllBodies(); + } +} diff --git a/packages/pinball_components/sandbox/lib/stories/sparky_scorch/stories.dart b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/stories.dart new file mode 100644 index 00000000..9fb47f57 --- /dev/null +++ b/packages/pinball_components/sandbox/lib/stories/sparky_scorch/stories.dart @@ -0,0 +1,18 @@ +import 'package:dashbook/dashbook.dart'; +import 'package:sandbox/common/common.dart'; +import 'package:sandbox/stories/sparky_scorch/sparky_bumper_game.dart'; +import 'package:sandbox/stories/sparky_scorch/sparky_computer_game.dart'; + +void addSparkyScorchStories(Dashbook dashbook) { + dashbook.storiesOf('Sparky Scorch') + ..addGame( + title: 'Sparky Computer', + description: SparkyComputerGame.description, + gameBuilder: (_) => SparkyComputerGame(), + ) + ..addGame( + title: 'Sparky Bumper', + description: SparkyBumperGame.description, + gameBuilder: (_) => SparkyBumperGame(), + ); +} diff --git a/packages/pinball_components/sandbox/lib/stories/stories.dart b/packages/pinball_components/sandbox/lib/stories/stories.dart index 9e1d44d8..45eba5f7 100644 --- a/packages/pinball_components/sandbox/lib/stories/stories.dart +++ b/packages/pinball_components/sandbox/lib/stories/stories.dart @@ -13,4 +13,4 @@ export 'layer/stories.dart'; export 'plunger/stories.dart'; export 'score_text/stories.dart'; export 'slingshot/stories.dart'; -export 'sparky_bumper/stories.dart'; +export 'sparky_scorch/stories.dart'; diff --git a/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_ball_contact_behavior_test.dart b/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_ball_contact_behavior_test.dart index 88bd8145..f67b28d7 100644 --- a/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_ball_contact_behavior_test.dart +++ b/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_ball_contact_behavior_test.dart @@ -31,7 +31,7 @@ void main() { whenListen( bloc, const Stream.empty(), - initialState: SparkyBumperState.active, + initialState: SparkyBumperState.lit, ); final sparkyBumper = SparkyBumper.test(bloc: bloc); diff --git a/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior_test.dart b/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior_test.dart index 0d938820..2210754f 100644 --- a/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior_test.dart +++ b/packages/pinball_components/test/src/components/sparky_bumper/behaviors/sparky_bumper_blinking_behavior_test.dart @@ -17,7 +17,7 @@ void main() { 'SparkyBumperBlinkingBehavior', () { flameTester.testGameWidget( - 'calls onBlinked after 0.05 seconds when inactive', + 'calls onBlinked after 0.05 seconds when dimmed', setUp: (game, tester) async { final behavior = SparkyBumperBlinkingBehavior(); final bloc = MockSparkyBumperCubit(); @@ -25,14 +25,14 @@ void main() { whenListen( bloc, streamController.stream, - initialState: SparkyBumperState.active, + initialState: SparkyBumperState.lit, ); final sparkyBumper = SparkyBumper.test(bloc: bloc); await sparkyBumper.add(behavior); await game.ensureAdd(sparkyBumper); - streamController.add(SparkyBumperState.inactive); + streamController.add(SparkyBumperState.dimmed); await tester.pump(); game.update(0.05); diff --git a/packages/pinball_components/test/src/components/sparky_bumper/cubit/sparky_bumper_cubit_test.dart b/packages/pinball_components/test/src/components/sparky_bumper/cubit/sparky_bumper_cubit_test.dart index 4192f806..6310dca2 100644 --- a/packages/pinball_components/test/src/components/sparky_bumper/cubit/sparky_bumper_cubit_test.dart +++ b/packages/pinball_components/test/src/components/sparky_bumper/cubit/sparky_bumper_cubit_test.dart @@ -7,17 +7,17 @@ void main() { 'SparkyBumperCubit', () { blocTest( - 'onBallContacted emits inactive', + 'onBallContacted emits dimmed', build: SparkyBumperCubit.new, act: (bloc) => bloc.onBallContacted(), - expect: () => [SparkyBumperState.inactive], + expect: () => [SparkyBumperState.dimmed], ); blocTest( - 'onBlinked emits active', + 'onBlinked emits lit', build: SparkyBumperCubit.new, act: (bloc) => bloc.onBlinked(), - expect: () => [SparkyBumperState.active], + expect: () => [SparkyBumperState.lit], ); }, ); diff --git a/packages/pinball_components/test/src/components/sparky_bumper/sparky_bumper_test.dart b/packages/pinball_components/test/src/components/sparky_bumper/sparky_bumper_test.dart index 225b5922..0d255454 100644 --- a/packages/pinball_components/test/src/components/sparky_bumper/sparky_bumper_test.dart +++ b/packages/pinball_components/test/src/components/sparky_bumper/sparky_bumper_test.dart @@ -13,12 +13,12 @@ import '../../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); final assets = [ - Assets.images.sparky.bumper.a.active.keyName, - Assets.images.sparky.bumper.a.inactive.keyName, - Assets.images.sparky.bumper.b.active.keyName, - Assets.images.sparky.bumper.b.inactive.keyName, - Assets.images.sparky.bumper.c.active.keyName, - Assets.images.sparky.bumper.c.inactive.keyName, + Assets.images.sparky.bumper.a.lit.keyName, + Assets.images.sparky.bumper.a.dimmed.keyName, + Assets.images.sparky.bumper.b.lit.keyName, + Assets.images.sparky.bumper.b.dimmed.keyName, + Assets.images.sparky.bumper.c.lit.keyName, + Assets.images.sparky.bumper.c.dimmed.keyName, ]; final flameTester = FlameTester(() => TestGame(assets)); @@ -49,7 +49,7 @@ void main() { whenListen( bloc, const Stream.empty(), - initialState: SparkyBumperState.active, + initialState: SparkyBumperState.lit, ); when(bloc.close).thenAnswer((_) async {}); final sparkyBumper = SparkyBumper.test(bloc: bloc); diff --git a/test/game/components/sparky_fire_zone_test.dart b/test/game/components/sparky_scorch_test.dart similarity index 76% rename from test/game/components/sparky_fire_zone_test.dart rename to test/game/components/sparky_scorch_test.dart index 9b254617..1d4b25ff 100644 --- a/test/game/components/sparky_fire_zone_test.dart +++ b/test/game/components/sparky_scorch_test.dart @@ -12,22 +12,25 @@ import '../../helpers/helpers.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); final assets = [ - Assets.images.sparky.bumper.a.active.keyName, - Assets.images.sparky.bumper.a.inactive.keyName, - Assets.images.sparky.bumper.b.active.keyName, - Assets.images.sparky.bumper.b.inactive.keyName, - Assets.images.sparky.bumper.c.active.keyName, - Assets.images.sparky.bumper.c.inactive.keyName, + Assets.images.sparky.computer.top.keyName, + Assets.images.sparky.computer.base.keyName, + Assets.images.sparky.computer.glow.keyName, Assets.images.sparky.animatronic.keyName, + Assets.images.sparky.bumper.a.lit.keyName, + Assets.images.sparky.bumper.a.dimmed.keyName, + Assets.images.sparky.bumper.b.lit.keyName, + Assets.images.sparky.bumper.b.dimmed.keyName, + Assets.images.sparky.bumper.c.lit.keyName, + Assets.images.sparky.bumper.c.dimmed.keyName, ]; final flameTester = FlameTester( () => EmptyPinballTestGame(assets: assets), ); - group('SparkyFireZone', () { + group('SparkyScorch', () { flameTester.test('loads correctly', (game) async { - await game.addFromBlueprint(SparkyFireZone()); + await game.addFromBlueprint(SparkyScorch()); await game.ready(); }); @@ -36,7 +39,7 @@ void main() { 'a SparkyComputer', (game) async { expect( - SparkyFireZone().blueprints.whereType().single, + SparkyScorch().blueprints.whereType().single, isNotNull, ); }, @@ -45,8 +48,8 @@ void main() { flameTester.test( 'a SparkyAnimatronic', (game) async { - final sparkyFireZone = SparkyFireZone(); - await game.addFromBlueprint(sparkyFireZone); + final sparkysScorch = SparkyScorch(); + await game.addFromBlueprint(sparkysScorch); await game.ready(); expect( @@ -59,8 +62,8 @@ void main() { flameTester.test( 'three SparkyBumper', (game) async { - final sparkyFireZone = SparkyFireZone(); - await game.addFromBlueprint(sparkyFireZone); + final sparkysScorch = SparkyScorch(); + await game.addFromBlueprint(sparkysScorch); await game.ready(); expect( diff --git a/test/game/pinball_game_test.dart b/test/game/pinball_game_test.dart index ef831b5c..62a60570 100644 --- a/test/game/pinball_game_test.dart +++ b/test/game/pinball_game_test.dart @@ -74,22 +74,16 @@ void main() { Assets.images.spaceship.ramp.arrow.active5.keyName, Assets.images.spaceship.rail.main.keyName, Assets.images.spaceship.rail.exit.keyName, - Assets.images.sparky.bumper.a.active.keyName, - Assets.images.sparky.bumper.a.inactive.keyName, - Assets.images.sparky.bumper.b.active.keyName, - Assets.images.sparky.bumper.b.inactive.keyName, - Assets.images.sparky.bumper.c.active.keyName, - Assets.images.sparky.bumper.c.inactive.keyName, - Assets.images.sparky.animatronic.keyName, Assets.images.sparky.computer.top.keyName, Assets.images.sparky.computer.base.keyName, + Assets.images.sparky.computer.glow.keyName, Assets.images.sparky.animatronic.keyName, - Assets.images.sparky.bumper.a.inactive.keyName, - Assets.images.sparky.bumper.a.active.keyName, - Assets.images.sparky.bumper.b.active.keyName, - Assets.images.sparky.bumper.b.inactive.keyName, - Assets.images.sparky.bumper.c.active.keyName, - Assets.images.sparky.bumper.c.inactive.keyName, + Assets.images.sparky.bumper.a.lit.keyName, + Assets.images.sparky.bumper.a.dimmed.keyName, + Assets.images.sparky.bumper.b.lit.keyName, + Assets.images.sparky.bumper.b.dimmed.keyName, + Assets.images.sparky.bumper.c.lit.keyName, + Assets.images.sparky.bumper.c.dimmed.keyName, ]; final flameTester = FlameTester(