* feat: added assets for scores
* refactor: modified scoretext component to show sprite with the score
* refactor: changed all ocurrences of scoretext to use score enum as value
* feat: extension to get value
* test: refactor score texts
* refactor: refactored sandbox for scoretexts
* refactor: moved score_text to score_component
* refactor: score enum to Points
* test: golden tests for points
* chore: unused imports
* chore: unused imports
* test: coverage for points extension
* refactor: removed unused points and changed enum names
* test: golden test for kept scores
* Update test/game/components/scoring_behavior_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* refactor: score priority over sparky animatronic
* test: reorder tests
* chore: removed empty test group
* fix: missed dino desert points
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* chore: create app_ui package
* chore: add dialog asset
* chore: create DialogDecoration
* chore: import app_ui
* feat: use DialogDecoration in app
* fix: update description
* fix: rename package
* fix: update README
* fix: exlude generated files from analysis
* fix: update workflow file
* fix: update tests
* fix: update description
* added how to play content
* added how to play screen for mobile devices (#245)
* ui: added how to play dialog for mobile
* chore: added mobile dialog content test
* fix: apply code review
* chore: addressed refactor feedback
* feat: how to play dialog is timed and manually dismissible (#251)
* chore: autoclose how to play dialog after 3 seconds
* test: added test for barrier dismiss on tap
* fix: update description
* fix: add Material to decoration
* chore: swapped asset for the spacebar
* chore: removed duplicate variable
* chore: moved timer logic to how to play dialog
* ui: added rocket to mobile launch directions
* feat(platform_helper): created a platform helper package to detect web vs mobile
* feat(platform_helper): import platform helper into pinball
* test: wrote tests for platform detection on how to play dialog
* chore: added platform helper package to ci
* chore: address foreseen nits
Co-authored-by: arturplaczek <arturp1989@gmail.com>
Co-authored-by: arturplaczek <33895544+arturplaczek@users.noreply.github.com>
* feat: added events for multiplier
* feat: added events for increment, apply and reset multiplier
* feat: added multiplier to game bloc state
* test: test for multiplier at game bloc
* test: added multiplier to game state
* refactor: multiplier always increased by 1
* refactor: add multiplier state on BallLost
* refactor: added round to game state and changed gameover and ball lost logic
* test: fixed tests for game bloc
* refactor: multiplier max value 6 at game bloc
* test: fixed tests with new game over logic
* chore: properties renamed and removed unused
* Update lib/game/bloc/game_event.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* fix: pubspec from main
* refactor: pubspec from main
* chore: removed unused import
* feat: ball added event to game bloc
* test: fixed test for ball added
* feat: added BallAdded event on ball mounted
* test: fixing tests for BallAdded
* test: flamebloctester for ball added
* test: refactored tests for pinballgame
* refactor: BallAdded event on ball mounted
* chore: removed unnecessary imports
* test: refactor tests for pinball_game
* refactor: use rounds instead of balls
* refactor: changed BallLost event with RoundLost, and moved part of the logic to controlled_ball
* test: tests for RoundLost
* fix: fixed wrong tests for pinball_game
* test: remove deleted balls property from GameState
* chore: doc
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* feat: add debug information
* feat: add debug information
* feat: add debug information
* feat: add debug information
* feat: add debug information
* feat: add debug information
* feat: add debug information
* feat: new plunger animation asset
* refactor: changed plunger position
* fix: fixed merge conflicts with main at launcher component
* fix: fixed merge conflicts on plunger
* feat: added plunger animation and fixed position
* refactor: plunger position and compressionDistance
* test: tests and golden test for plunger
* refactor: oncomplete at plunger animations
* test: fixed tests for animation
* refactor: plunger with SpriteAnimationGroupComponent
* test: fixed golden tests and removed unused ones
* test: golden tests images
* chore: doc and refactor methods
* refactor: improved plunger body to catch the ball
* refactor: improved plunger body to catch the ball
* test: updated plunger golden tests
* Update packages/pinball_components/lib/src/components/plunger.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* refactor: _PlungerSpriteAnimationGroupComponent load sprites onload
* chore: removed unused import
* Update packages/pinball_components/lib/src/components/plunger.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update packages/pinball_components/lib/src/components/plunger.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* fix: fix animation duration
* fix: fixed plunger animation
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* feat: launch backgroun railing asset
* refactor: launch ramp final assets
* refactor: updated assets and position for launcher ramp
* test: golden tests for launcher ramp
* fix: render order and positioning
* refactor: TODO for future refactor of final ramp shape
* refactor: extended launcher foreground rail until boundary bottom to avoid balls scape from dino
Co-authored-by: Allison Ryan <allisonryan0002@gmail.com>
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* feat: created pinball_theme package
* refactor: moved component_controller to pinball_flame
* ci: defined workflow
* refactor: moved blueprint and priority to pinball_flame
* feat: exported keyboard_input_controller.dart
* feat: made Mocks be Mocks
* docs: updated description
* docs: fixed typo
* fix: merge conflicts
* refactor: spaceship ramp curve and new assets
* refactor: use separate base assets
* refactor: group spaceship stories
* refactor: set opacity on all sprite descendants
* chore: move positioning
* feat: added alien bumpers
* test: tests for alien bumpers
* feat: sandbox for alien bumpers
* refactor: changed alien bumper ellipses
* feat: added alien bumpers zone to game
* test: tests for alien zone
* refactor: final size and positions for alien bumpers
* feat: added new alien zone bumpers
* test: changed tests for alien
* chore: api doc
* refactor: alien sandbox traceable
* Update lib/game/components/alien_zone.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* refactor: moved alien from board to pinball and fixed sprites
* test: fixed test for alien at pinball
* Update packages/pinball_components/sandbox/lib/stories/alien_bumper/alien_bumper_game.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* test: clean flamebloc test
* refactor: ControlledAlienBumper visible for testing
* chore: removed unused file
* test: fixed alien test in pinball
* refactor: refactored alien dashbook stories
* chore: analysis error
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* feat: added SparkyFireZone component to the board
* chore: doc for sparky fire zone
* refactor: moved sparky from board to pinball
* refactor: ControlledSparkyBumper visible for testing
* test: fixed test
* test: fixed sparky test in pinball
* refactor: added kicker asset and fixed dimensions and sizes
* refactor: loadsprite for kicker
* test: added golden test for kicker
* feat: included Kicker sandbox
* refactor: analyzer fixes
Co-authored-by: alestiago <dev@alestiago.com>
* refactor: renamed JetpackRamp to SpaceshipEntranceRamp
* refactor: renamed Layer.jetpack to Layer.spaceshipEntranceRamp
* refactor: moved spaceship entrance ramp and assets to pinball components
* test: tests for spaceship ramp
* refactor: renamed SpaceshipEntranceRamp to SpaceshipRamp
* refactor: included BonusBallController
* feat: made LaunchedBallControler react to states
* refactor: removed isLastBall
* fix: solved tests
* fix: solved BonusLetterActivated test
* refactor: used ensureAdd
* refactor: move user score to gameover dialog
* feat: added input textfield
* feat: fixed ui
* feat: send user added to bloc and firebase
* chore: todo for future ui refactor
* feat: capitalize playerinitials to bloc
* refactor: show button on success add user
* test: fixed tests
* test: adding more tests for tap
* test: fixed tests
* test: fixed tests for gameover dialog pressed buttons
* fix: fixed tests and doc
* feat: included left and right flipper assets
* feat: loaded left and right flipper assets
* feat: moved Flipper to components and defined controller
* refactor: moved lock to FlipperJoint
* refactor(sandbox): rephrased description
* feat(sanbox): including Flipper example
* feat: included Tracing story
* feat: defined trace method
* feat(sandbox): included right flipper
* feat: sized Flipper to match asset
* refactor: moved tests
* feat: tested flipper_controller
* feat: adjusted flipper size
* feat(sandbox): removed TapDetector
* refactor: removed unused import
* fix: increased test coverage
* docs: improved doc comments
* fix: changing merge imports
* refactor: simplified loading asset logic
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* chore: removed old Flipper asset
* fix: used correct variable
* feat: enchanced tracing example
* refactor: renamed circleAssetShadow to assetShadow
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* feat: included ChromeDino in Board
* feat: made ChromeDino sweep
* feat: enclosed ChromeDino
* feat: included ChromeDino in Board
* feat: included initial file
* feat: made ChromeDino sweep
* feat: enclosed ChromeDino
* feat: positioned and clean
* feat: used ChromeDinoJoint
* feat: used a Timer in ChromeDino animation
* feat: positioned ChromeDino
* feat: adjusted motor values
* feat: created test file
* feat: included tests
* refactor: used TimerComponent
* feat: adjusted ChromeDino
* refactor: renamed test variable
* refactor: removed redundant test
* fix: included components import
* refactor: removed joint member
* refactor: included missing new line
* docs: fixed "dinosaur" typo
Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Rui Miguel Alonso <ruiskas@gmail.com>
* refactor: rename RoundBumper to DashNestBumper
* feat: implemented DashNestBumper
* refactor: renamed files and tests
* chore: removed unused import
* refactor: renamed file to be a test file
* feat: added a new Ball on new state
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* feat: refactoring ball component to separate business from ui logic
* fix: tests
* fix: lint
* fix: test coverage
* Update lib/game/components/ball.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* chore: refactoring to use flutter gen on the game
* fix: lint
* Update lib/game/components/spaceship.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* fix: lint
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* fix: camera position
* Update lib/game/pinball_game.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* fix: fixed error activating bottom letter while bonus word animation
* test: coverage for test isEnabled
* Update lib/game/components/bonus_word.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* chore: test method name
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
Co-authored-by: Erick <erickzanardoo@gmail.com>
* refactor: improve layer and ramp to allow connection between different layers outside from board
* refactor: modified spaceship to be Layered and RampOpening
* refactor: moved ramp and game components to connect jetpack ramp with spaceship
* test: test coverage and removed layer unnecessary tests for spaceship
* refactor: jetpack ramp removed rotation
* refactor: hardcoded layer spaceship inside each component
Co-authored-by: Erick <erickzanardoo@gmail.com>
* feat: made SlingShot rounded
* feat: updated SlingShot tests
* refactor: defined Shape extension
* refactor: fixed test name typo
Co-authored-by: Rui Miguel Alonso <ruiskas@gmail.com>
* feat: added generic area and area callback for ramps crossing
* feat: added jetpack ramp (blue one) and own area, contact callback and maskbits
* feat: added sparky ramp (yellow one) and own area, contact callback and maskbits
* feat: included ramp components
* feat: added maskbits to ball for collisions
* feat: added paths to pinball game
* feat: added maskbits to paths
* fix: fixed collisions of a ball that only touch path entrance but doesn't get into
* fix: analysis warnings
* feat: ball default maskbits
* chore: refactor some names and vars
* test: tests for ramps and callbacks, and coverage
* test: pinball game check ramps are added
* test: tests for ramps check childrens
* test: fixing tests for ramps
* test: fix tests
* chore: increase sparky angle
* fix: placed plunge aligned with straight launcher path
* fix: fixed maskBits change for ball on crossing ramps and tests coverage
* doc: public member api docs
* chore: placed launcher ramp
* test: moved mock from crossing ramps to helpers file
* fix: build and dep where broken by forge2d/position_body_component
* Update lib/game/components/crossing_ramp.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update lib/game/components/jetpack_ramp.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update test/game/components/crossing_ramp_test.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update test/game/components/jetpack_ramp_test.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update test/game/components/sparky_ramp_test.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* Update lib/game/components/jetpack_ramp.dart
Co-authored-by: Erick <erickzanardoo@gmail.com>
* chore: fixed formatting
* chore: removed coverage tool
* Update lib/game/components/crossing_ramp.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update test/game/components/ball_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update lib/game/components/crossing_ramp.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update lib/game/components/jetpack_ramp.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update test/game/components/crossing_ramp_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update test/game/components/pathway_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update test/game/pinball_game_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* Update test/game/components/pathway_test.dart
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
* test: fix tests and groups
* chore: ramp area name changed to opening
* refactor: ball with mixin Layer for mask collisions
* chore: avoid foreach in a function literal
* refactor: hide maskbits and manage only with layer param
* chore: formatting file
* refactor: changed name for ramp area
* refactor: sparky+launcher into one path
* doc: doc layer for ball
* refactor: sparky to launcher
* feat: allow jetpack ramp to be over the board
* feat: refactor to allow jetpack ramp to be above board and launcher ramp
* test: coverage
* fix: fixed conflict with merge Component position
* chore: analysis fixes
* chore: doc and comments
* refactor: initial position to ramps and cleaned ramp callbacks
* refactor: improved ramp contact callback
* refactor: ball layer and ramp addAll components
* refactor: create fixtures for pathways and opening improved
* refactor: placed ramps on pinball game
* refactor: splitted layer from rampopening
* refactor: rampopening with layered mixin
* test: fixed all changes with tests
* test: fixed tests after Layer mixin changes
* chore: refactor names, test and doc
* chore: review docs and names
* fix: fixed tests and bug with initialposition collision
* chore: analysis error
* fix: fixed collision end from ramps
* test: coverage
* chore: fixed spaces between methods and other comments from pr
* chore: remove unnecessary layer set on Layered
* fix: removed unrelated files from pr
* chore: removed unused import
* refactor: ballsInside private and removed from tests
* chore: todo comment
* chore: removed unused import
* chore: removed podfile
* doc: changed Layered doc
* doc: changed Layered doc
* Update test/game/components/ramp_opening_test.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* Update lib/game/components/layer.dart
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* docs: improved punctuation
Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Allison Ryan <77211884+allisonryan0002@users.noreply.github.com>
Co-authored-by: Alejandro Santiago <dev@alestiago.com>
* feat: made Baseboard use InitialPosition
* feat: made Plunger use InitialPosition
* feat: made SlingShot use InitialPosition
* fix: fixed plunger not initialised
* feat: made RoundBumper use InitialPosition
* feat: made Pathway use InitialPosition
* feat: made JointAnchor use InitialPosition
* feat: made BonusWord use InitialPosition
* feat: changed override to onLoad
* feat: made Flipper use InitialPosition
* feat: made Ball use InitialPosition
* feat: made InitialPosition position the body
* feat: included default value
* feat: removed unnecessary positioning
* refactor: removed old test
* refactor: removed unnecessary tests
* refactor: improved assertion message
Co-authored-by: Erick <erickzanardoo@gmail.com>
Co-authored-by: Erick <erickzanardoo@gmail.com>