├── .editorconfig
├── .gitattributes
├── .github
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ ├── config.yml
│ ├── core.md
│ ├── createjs.md
│ ├── eventemitter3.md
│ ├── macrobot.md
│ ├── openfl.md
│ ├── phaser-ce-signalcommandmap.md
│ ├── phaser-ce.md
│ ├── phaser.md
│ ├── pixi-palidor.md
│ ├── pixi-signalmediator.md
│ ├── pixi.md
│ ├── signalcommandmap.md
│ └── signals.md
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ └── node.js.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .vscode
├── extensions.json
└── settings.json
├── LICENSE
├── README.md
├── common
├── autoinstallers
│ └── rush-prettier
│ │ ├── package.json
│ │ └── pnpm-lock.yaml
├── config
│ └── rush
│ │ ├── .npmrc
│ │ ├── .npmrc-publish
│ │ ├── .pnpmfile.cjs
│ │ ├── artifactory.json
│ │ ├── browser-approved-packages.json
│ │ ├── build-cache.json
│ │ ├── command-line.json
│ │ ├── common-versions.json
│ │ ├── experiments.json
│ │ ├── nonbrowser-approved-packages.json
│ │ ├── pnpm-lock.yaml
│ │ ├── repo-state.json
│ │ ├── rush-plugins.json
│ │ └── version-policies.json
├── git-hooks
│ ├── commit-msg.sample
│ └── pre-commit
└── scripts
│ ├── install-run-rush.js
│ ├── install-run-rushx.js
│ └── install-run.js
├── games
├── battleship
│ ├── .eslintrc.js
│ ├── .vscode
│ │ └── settings.json
│ ├── README.md
│ ├── assets
│ │ ├── atlas
│ │ │ ├── battleship-pixijs.tps
│ │ │ ├── buttons
│ │ │ │ ├── button_background.png
│ │ │ │ ├── icon_home.png
│ │ │ │ ├── icon_pause.png
│ │ │ │ ├── icon_resume.png
│ │ │ │ └── icon_retry.png
│ │ │ ├── others
│ │ │ │ ├── logo_battleship.png
│ │ │ │ └── logo_setzer.png
│ │ │ └── ships
│ │ │ │ ├── ship_2.png
│ │ │ │ ├── ship_3_1.png
│ │ │ │ ├── ship_3_2.png
│ │ │ │ ├── ship_4.png
│ │ │ │ └── ship_5.png
│ │ ├── battleship-pixijs.json
│ │ ├── battleship-pixijs.png
│ │ ├── fonts
│ │ │ ├── SimpleSmallPixel7.fnt
│ │ │ └── SimpleSmallPixel7.png
│ │ └── logo_typescript.png
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── media
│ │ └── battleship_ss_01.png
│ ├── package.json
│ ├── src
│ │ ├── Game.ts
│ │ ├── battleship
│ │ │ ├── configs
│ │ │ │ ├── GameConfig.ts
│ │ │ │ ├── PalidorConfig.ts
│ │ │ │ └── ViewsConfig.ts
│ │ │ ├── events
│ │ │ │ ├── FlowEvent.ts
│ │ │ │ └── GameEvent.ts
│ │ │ ├── game
│ │ │ │ ├── commands
│ │ │ │ │ ├── CreateLevelCommand.ts
│ │ │ │ │ ├── EnemyAttackCommand.ts
│ │ │ │ │ └── HeroAttackCommand.ts
│ │ │ │ ├── events
│ │ │ │ │ └── AttackEvent.ts
│ │ │ │ ├── managers
│ │ │ │ │ └── GameManager.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── BattleField.ts
│ │ │ │ │ ├── Grid.ts
│ │ │ │ │ ├── LevelModel.ts
│ │ │ │ │ ├── Player.ts
│ │ │ │ │ ├── Ship.ts
│ │ │ │ │ └── Tile.ts
│ │ │ │ └── utils
│ │ │ │ │ └── BattleFieldUtils.ts
│ │ │ ├── mediators
│ │ │ │ ├── EnemyComponentMediator.ts
│ │ │ │ ├── EnemyTileDisplayMediator.ts
│ │ │ │ ├── GameOverPopupMediator.ts
│ │ │ │ ├── GameViewMediator.ts
│ │ │ │ ├── HeroComponentMediator.ts
│ │ │ │ ├── HomeViewMediator.ts
│ │ │ │ ├── IntroViewMediator.ts
│ │ │ │ ├── PausePopupMediator.ts
│ │ │ │ └── YouWinPopupMediator.ts
│ │ │ ├── services
│ │ │ │ ├── FlowService.ts
│ │ │ │ └── GameService.ts
│ │ │ ├── utils
│ │ │ │ ├── AtlasKeys.ts
│ │ │ │ ├── Colors.ts
│ │ │ │ ├── DebugField.ts
│ │ │ │ ├── IsoUtils.ts
│ │ │ │ ├── MagicValues.ts
│ │ │ │ ├── PixiFactory.ts
│ │ │ │ └── Texts.ts
│ │ │ └── views
│ │ │ │ ├── GameOverPopup.ts
│ │ │ │ ├── GameView.ts
│ │ │ │ ├── HomeView.ts
│ │ │ │ ├── IntroView.ts
│ │ │ │ ├── PausePopup.ts
│ │ │ │ ├── YouWinPopup.ts
│ │ │ │ └── components
│ │ │ │ ├── CustomButton.ts
│ │ │ │ ├── EnemyComponent.ts
│ │ │ │ ├── EnemyTileDisplay.ts
│ │ │ │ ├── GridDisplay.ts
│ │ │ │ ├── HPsComponent.ts
│ │ │ │ ├── HeroComponent.ts
│ │ │ │ ├── ShipDisplay.ts
│ │ │ │ ├── ShipHPComponent.ts
│ │ │ │ ├── ShipsGridDisplay.ts
│ │ │ │ └── TileDisplay.ts
│ │ └── index.ts
│ ├── test
│ │ ├── battleship
│ │ │ ├── game
│ │ │ │ ├── events
│ │ │ │ │ └── AttackEvent.test.ts
│ │ │ │ ├── managers
│ │ │ │ │ └── GameManager.test.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── BattleField.test.ts
│ │ │ │ │ ├── Grid.test.ts
│ │ │ │ │ ├── Player.test.ts
│ │ │ │ │ ├── Ship.test.ts
│ │ │ │ │ └── Tile.test.ts
│ │ │ │ └── utils
│ │ │ │ │ └── BattleFieldUtils.test.ts
│ │ │ └── services
│ │ │ │ ├── FlowService.test.ts
│ │ │ │ └── GameService.test.ts
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.setzer.config.js
├── match3
│ ├── .eslintrc.js
│ ├── .vscode
│ │ └── settings.json
│ ├── README.md
│ ├── assets
│ │ ├── BerlinSansDemi.fnt
│ │ ├── BerlinSansDemi_1.png
│ │ ├── atlas
│ │ │ ├── buttons
│ │ │ │ ├── button_medium_down.png
│ │ │ │ ├── button_medium_up.png
│ │ │ │ ├── button_small_danger_down.png
│ │ │ │ ├── button_small_danger_up.png
│ │ │ │ ├── button_small_down.png
│ │ │ │ ├── button_small_up.png
│ │ │ │ ├── icon_close.png
│ │ │ │ ├── icon_config.png
│ │ │ │ ├── icon_confirm.png
│ │ │ │ ├── icon_delete.png
│ │ │ │ ├── icon_home.png
│ │ │ │ ├── icon_level_select.png
│ │ │ │ ├── icon_pause.png
│ │ │ │ ├── icon_resume.png
│ │ │ │ ├── icon_retry.png
│ │ │ │ └── level_select_small_star.png
│ │ │ ├── displays
│ │ │ │ ├── logo_matchthree.png
│ │ │ │ ├── logo_setzer.png
│ │ │ │ ├── popup_star.png
│ │ │ │ ├── star_hud_display_00.png
│ │ │ │ ├── star_hud_display_01.png
│ │ │ │ ├── star_hud_display_02.png
│ │ │ │ ├── star_hud_display_03.png
│ │ │ │ ├── star_hud_display_04.png
│ │ │ │ ├── star_hud_display_05.png
│ │ │ │ ├── star_hud_display_06.png
│ │ │ │ ├── star_hud_display_07.png
│ │ │ │ ├── star_hud_display_08.png
│ │ │ │ ├── star_hud_display_09.png
│ │ │ │ └── star_hud_display_10.png
│ │ │ ├── game
│ │ │ │ ├── piece_col_1.png
│ │ │ │ ├── piece_col_2.png
│ │ │ │ ├── piece_col_3.png
│ │ │ │ ├── piece_col_4.png
│ │ │ │ ├── piece_col_5.png
│ │ │ │ ├── piece_col_6.png
│ │ │ │ ├── piece_normal_1.png
│ │ │ │ ├── piece_normal_2.png
│ │ │ │ ├── piece_normal_3.png
│ │ │ │ ├── piece_normal_4.png
│ │ │ │ ├── piece_normal_5.png
│ │ │ │ ├── piece_normal_6.png
│ │ │ │ ├── piece_rainbow.png
│ │ │ │ ├── piece_row_1.png
│ │ │ │ ├── piece_row_2.png
│ │ │ │ ├── piece_row_3.png
│ │ │ │ ├── piece_row_4.png
│ │ │ │ ├── piece_row_5.png
│ │ │ │ └── piece_row_6.png
│ │ │ ├── matchthree-pixijs-atlas.json
│ │ │ ├── matchthree-pixijs-atlas.png
│ │ │ ├── matchthree-starling-atlas.png
│ │ │ ├── matchthree-starling-atlas.xml
│ │ │ └── matchthree-startling-atlas.tps
│ │ ├── backgrounds
│ │ │ ├── background.png
│ │ │ ├── background_hud.png
│ │ │ └── background_popup.png
│ │ ├── fonts
│ │ │ ├── BerlinSansDemi.fnt
│ │ │ └── BerlinSansDemi.png
│ │ ├── gimp
│ │ │ ├── assets.xcf
│ │ │ └── stars.xcf
│ │ ├── logo_typescript.png
│ │ ├── matchthree-pixijs-atlas.json
│ │ └── matchthree-pixijs-atlas.png
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── media
│ │ ├── gif_match3_ts_demo.gif
│ │ ├── img_cover_match3_ts.png
│ │ ├── img_game_match3_ts.png
│ │ ├── img_ss_match3_ts_01.png
│ │ ├── img_ss_match3_ts_02.png
│ │ ├── img_ss_match3_ts_03.png
│ │ └── img_ss_match3_ts_04.png
│ ├── package.json
│ ├── src
│ │ ├── Game.ts
│ │ ├── index.ts
│ │ └── matchthree
│ │ │ ├── configs
│ │ │ ├── GameConfig.ts
│ │ │ ├── PalidorConfig.ts
│ │ │ └── ViewsConfig.ts
│ │ │ ├── events
│ │ │ ├── FlowEvent.ts
│ │ │ └── GameEvent.ts
│ │ │ ├── game
│ │ │ ├── commands
│ │ │ │ ├── CreateLevelCommand.ts
│ │ │ │ ├── GameOverCommand.ts
│ │ │ │ ├── RetryGameCommand.ts
│ │ │ │ ├── SwapPiecesCommand.ts
│ │ │ │ └── SwapPiecesConfirmCommand.ts
│ │ │ ├── displays
│ │ │ │ └── BlankedCell.ts
│ │ │ ├── managers
│ │ │ │ └── GameManager.ts
│ │ │ ├── models
│ │ │ │ ├── GameStatus.ts
│ │ │ │ ├── GridData.ts
│ │ │ │ ├── LevelInfo.ts
│ │ │ │ ├── LevelModel.ts
│ │ │ │ ├── PieceData.ts
│ │ │ │ ├── SwapModel.ts
│ │ │ │ ├── Tile.ts
│ │ │ │ └── TouchPhase.ts
│ │ │ └── utils
│ │ │ │ ├── AnimationUtils.ts
│ │ │ │ ├── GridUtils.ts
│ │ │ │ ├── LevelRepository.ts
│ │ │ │ ├── PieceDisplayPool.ts
│ │ │ │ ├── PieceIds.ts
│ │ │ │ ├── PieceType.ts
│ │ │ │ ├── PieceUtils.ts
│ │ │ │ ├── PowerUpUtils.ts
│ │ │ │ └── ScoreUtils.ts
│ │ │ ├── mediators
│ │ │ ├── AlertPopupMediator.ts
│ │ │ ├── GameOverPopupMediator.ts
│ │ │ ├── GameViewMediator.ts
│ │ │ ├── GridFieldComponentMediator.ts
│ │ │ ├── HUDGameComponentMediator.ts
│ │ │ ├── HomeViewMediator.ts
│ │ │ ├── IntroViewMediator.ts
│ │ │ ├── LevelSelectViewMediator.ts
│ │ │ ├── OptionsViewMediator.ts
│ │ │ ├── PausePopupMediator.ts
│ │ │ ├── StartingPopupMediator.ts
│ │ │ └── YouWinPopupMediator.ts
│ │ │ ├── services
│ │ │ ├── FlowService.ts
│ │ │ └── GameService.ts
│ │ │ ├── utils
│ │ │ ├── AtlasKeys.ts
│ │ │ ├── MagicValues.ts
│ │ │ ├── PixiFactory.ts
│ │ │ ├── Texts.ts
│ │ │ └── ViewPortSize.ts
│ │ │ └── views
│ │ │ ├── AlertPopup.ts
│ │ │ ├── GameOverPopup.ts
│ │ │ ├── GameView.ts
│ │ │ ├── HomeView.ts
│ │ │ ├── IntroView.ts
│ │ │ ├── LevelSelectView.ts
│ │ │ ├── OptionsView.ts
│ │ │ ├── PausePopup.ts
│ │ │ ├── StartingPopup.ts
│ │ │ ├── YouWinPopup.ts
│ │ │ └── components
│ │ │ ├── GridFieldComponent.ts
│ │ │ ├── HUDGameComponent.ts
│ │ │ ├── IconButton.ts
│ │ │ ├── LevelSelectButton.ts
│ │ │ ├── SingleStart.ts
│ │ │ └── StarDisplayComponent.ts
│ ├── test
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── matchthree
│ │ │ ├── game
│ │ │ │ ├── managers
│ │ │ │ │ └── GameManager.test.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── GridData.test.ts
│ │ │ │ │ ├── LevelInfo.test.ts
│ │ │ │ │ ├── LevelModel.test.ts
│ │ │ │ │ ├── PieceData.test.ts
│ │ │ │ │ ├── SwapModel.test.ts
│ │ │ │ │ └── Tile.test.ts
│ │ │ │ └── utils
│ │ │ │ │ ├── GridUtils.test.ts
│ │ │ │ │ ├── PieceUtils.test.ts
│ │ │ │ │ └── PowerUpUtils.test.ts
│ │ │ ├── services
│ │ │ │ └── GameService.test.ts
│ │ │ └── utils
│ │ │ │ └── AtlasKeys.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.setzer.config.js
├── minesweeper
│ ├── .eslintrc.js
│ ├── .vscode
│ │ └── settings.json
│ ├── README.md
│ ├── assets
│ │ ├── atlas
│ │ │ ├── buttons
│ │ │ │ ├── button_background.png
│ │ │ │ ├── icon_home.png
│ │ │ │ ├── icon_pause.png
│ │ │ │ ├── icon_resume.png
│ │ │ │ └── icon_retry.png
│ │ │ ├── minesweeper-pixijs.tps
│ │ │ └── others
│ │ │ │ ├── icon_flag.png
│ │ │ │ ├── icon_flag_large.png
│ │ │ │ ├── icon_mine.png
│ │ │ │ ├── logo_minesweeper.png
│ │ │ │ └── logo_setzer.png
│ │ ├── fonts
│ │ │ ├── SimpleSmallPixel7.fnt
│ │ │ └── SimpleSmallPixel7.png
│ │ ├── logo_typescript.png
│ │ ├── minesweeper-pixijs.json
│ │ └── minesweeper-pixijs.png
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── media
│ │ ├── gif_minesweeper_ts_demo.gif
│ │ ├── img_cover_minesweeper_ts.png
│ │ ├── img_game_minesweeper_ts.png
│ │ ├── img_ss_minesweeper_ts_01.png
│ │ └── img_ss_minesweeper_ts_02.png
│ ├── package.json
│ ├── src
│ │ ├── Game.ts
│ │ ├── index.ts
│ │ └── minesweeper
│ │ │ ├── configs
│ │ │ ├── GameConfig.ts
│ │ │ ├── PalidorConfig.ts
│ │ │ └── ViewsConfig.ts
│ │ │ ├── events
│ │ │ ├── FlowEvent.ts
│ │ │ └── GameEvent.ts
│ │ │ ├── game
│ │ │ ├── commands
│ │ │ │ ├── CreateLevelCommand.ts
│ │ │ │ ├── ExportLevelDataCommand.ts
│ │ │ │ ├── GameOverCommand.ts
│ │ │ │ └── RetryGameCommand.ts
│ │ │ ├── managers
│ │ │ │ ├── GameManager.ts
│ │ │ │ └── HighScoreManager.ts
│ │ │ ├── models
│ │ │ │ ├── Cell.ts
│ │ │ │ ├── CustomLevelModel.ts
│ │ │ │ ├── GameStatus.ts
│ │ │ │ ├── GridData.ts
│ │ │ │ └── LevelModel.ts
│ │ │ └── utils
│ │ │ │ ├── GridUtils.ts
│ │ │ │ └── LevelUtils.ts
│ │ │ ├── mediators
│ │ │ ├── GameOverPopupMediator.ts
│ │ │ ├── GameViewMediator.ts
│ │ │ ├── GridFieldComponentMediator.ts
│ │ │ ├── HUDGameComponentMediator.ts
│ │ │ ├── HomeViewMediator.ts
│ │ │ ├── IntroViewMediator.ts
│ │ │ ├── LevelCustomOptionsViewMediator.ts
│ │ │ ├── LevelSelectViewMediator.ts
│ │ │ ├── PausePopupMediator.ts
│ │ │ ├── StartingPopupMediator.ts
│ │ │ ├── TileDisplayMediator.ts
│ │ │ └── YouWinPopupMediator.ts
│ │ │ ├── services
│ │ │ ├── FlowService.ts
│ │ │ └── GameService.ts
│ │ │ ├── utils
│ │ │ ├── AtlasKeys.ts
│ │ │ ├── Colors.ts
│ │ │ ├── MagicValues.ts
│ │ │ ├── PixiFactory.ts
│ │ │ ├── Texts.ts
│ │ │ └── ViewPortSize.ts
│ │ │ └── views
│ │ │ ├── GameOverPopup.ts
│ │ │ ├── GameView.ts
│ │ │ ├── HomeView.ts
│ │ │ ├── IntroView.ts
│ │ │ ├── LevelCustomOptionsView.ts
│ │ │ ├── LevelSelectView.ts
│ │ │ ├── PausePopup.ts
│ │ │ ├── StartingPopup.ts
│ │ │ ├── YouWinPopup.ts
│ │ │ └── components
│ │ │ ├── CustomButton.ts
│ │ │ ├── GridFieldComponent.ts
│ │ │ ├── HUDGameComponent.ts
│ │ │ ├── NumericStepper.ts
│ │ │ └── TileDisplay.ts
│ ├── test
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── minesweeper
│ │ │ ├── game
│ │ │ │ ├── managers
│ │ │ │ │ └── GameManager.test.ts
│ │ │ │ ├── models
│ │ │ │ │ ├── Cell.test.ts
│ │ │ │ │ ├── GridData.test.ts
│ │ │ │ │ └── LevelModel.test.ts
│ │ │ │ └── utils
│ │ │ │ │ ├── GridUtils.test.ts
│ │ │ │ │ └── LevelUtils.test.ts
│ │ │ └── services
│ │ │ │ └── GameService.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.game.config.js
├── scratchcard
│ ├── .eslintrc.js
│ ├── .vscode
│ │ └── settings.json
│ ├── README.md
│ ├── assets
│ │ ├── atlas.json
│ │ ├── atlas.png
│ │ ├── atlas.tps
│ │ ├── cards
│ │ │ ├── bitbucket.png
│ │ │ ├── chai.png
│ │ │ ├── git.png
│ │ │ ├── github.png
│ │ │ ├── html5.png
│ │ │ ├── javascript.png
│ │ │ ├── mocha.png
│ │ │ ├── node.png
│ │ │ ├── npm.png
│ │ │ ├── palidor.png
│ │ │ ├── pixijs.png
│ │ │ ├── prettier.png
│ │ │ ├── profile.png
│ │ │ ├── robotlegsjs.png
│ │ │ ├── setzer.png
│ │ │ ├── texturepacker.png
│ │ │ ├── typescript.png
│ │ │ ├── vscode.png
│ │ │ ├── webpack.png
│ │ │ └── yarn.png
│ │ └── logo_typescript.png
│ ├── config
│ │ └── rush-project.json
│ ├── media
│ │ └── scratchcard.gif
│ ├── package.json
│ ├── src
│ │ ├── Game.ts
│ │ ├── commands
│ │ │ ├── EndGameCommand.ts
│ │ │ └── StartGameCommand.ts
│ │ ├── configs
│ │ │ └── ScratchConfig.ts
│ │ ├── events
│ │ │ ├── FlowEvent.ts
│ │ │ └── GameEvent.ts
│ │ ├── index.ts
│ │ ├── managers
│ │ │ ├── ScratchManager.ts
│ │ │ └── TickManager.ts
│ │ ├── mediators
│ │ │ ├── FeedbackPopupMediator.ts
│ │ │ ├── HUDViewMediator.ts
│ │ │ ├── IntroViewMediator.ts
│ │ │ ├── MainViewMediator.ts
│ │ │ └── ScratchViewMediator.ts
│ │ ├── models
│ │ │ └── Model.ts
│ │ ├── utils
│ │ │ ├── AssetKeys.ts
│ │ │ ├── Colors.ts
│ │ │ ├── MagicValues.ts
│ │ │ ├── PixiFactory.ts
│ │ │ ├── Prizes.ts
│ │ │ └── Texts.ts
│ │ └── views
│ │ │ ├── FeedbackPopup.ts
│ │ │ ├── HUDView.ts
│ │ │ ├── IntroView.ts
│ │ │ ├── MainView.ts
│ │ │ ├── ScratchView.ts
│ │ │ └── components
│ │ │ ├── Item.ts
│ │ │ └── TextButton.ts
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ └── webpack.config.js
├── space-invaders
│ ├── .eslintrc.js
│ ├── .vscode
│ │ └── settings.json
│ ├── README.md
│ ├── assets
│ │ ├── atlas
│ │ │ ├── buttons
│ │ │ │ ├── button_cancel_over.png
│ │ │ │ ├── button_cancel_up.png
│ │ │ │ ├── button_config_over.png
│ │ │ │ ├── button_config_up.png
│ │ │ │ ├── button_confirm_over.png
│ │ │ │ ├── button_confirm_up.png
│ │ │ │ ├── button_home_over.png
│ │ │ │ ├── button_home_up.png
│ │ │ │ ├── button_pause_over.png
│ │ │ │ ├── button_pause_up.png
│ │ │ │ ├── button_reset_over.png
│ │ │ │ ├── button_reset_up.png
│ │ │ │ ├── button_resume_over.png
│ │ │ │ ├── button_resume_up.png
│ │ │ │ ├── button_retry_over.png
│ │ │ │ ├── button_retry_up.png
│ │ │ │ ├── button_start_over.png
│ │ │ │ └── button_start_up.png
│ │ │ ├── displays
│ │ │ │ ├── cannon_hud.png
│ │ │ │ ├── logo_setzer.png
│ │ │ │ └── logo_spaceinvaders.png
│ │ │ ├── game
│ │ │ │ ├── bullet_frame_01.png
│ │ │ │ ├── cannon_frame_01.png
│ │ │ │ ├── enemy_01_frame_01.png
│ │ │ │ ├── enemy_01_frame_02.png
│ │ │ │ ├── enemy_02_frame_01.png
│ │ │ │ ├── enemy_02_frame_02.png
│ │ │ │ ├── enemy_03_frame_01.png
│ │ │ │ ├── enemy_03_frame_02.png
│ │ │ │ ├── enemy_bonus_frame_01.png
│ │ │ │ ├── enemy_bonus_frame_02.png
│ │ │ │ ├── explosion_frame_01.png
│ │ │ │ └── explosion_frame_02.png
│ │ │ └── spaceinvaders-pixijs-atlas.tps
│ │ ├── fonts
│ │ │ ├── SimpleSmalPixel7_.png
│ │ │ ├── SimpleSmallPixel7.fnt
│ │ │ └── SimpleSmallPixel7_0.png
│ │ ├── logo_typescript.png
│ │ ├── spaceinvaders-pixijs-atlas.json
│ │ └── spaceinvaders-pixijs-atlas.png
│ ├── config
│ │ └── rush-project.json
│ ├── media
│ │ ├── gif_space_invaders_ts_demo.gif
│ │ ├── img_cover_space_invaders_ts.png
│ │ ├── img_game_space_invaders_ts.png
│ │ └── img_ss_space_invaders_ts_01.png
│ ├── package.json
│ ├── src
│ │ ├── Game.ts
│ │ ├── commands
│ │ │ ├── CreateLevelCommand.ts
│ │ │ ├── DecreaseLivesCommand.ts
│ │ │ ├── GameOverCommand.ts
│ │ │ ├── IncreaaseLevelCommand.ts
│ │ │ ├── IncreasePointsCommand.ts
│ │ │ ├── RetryGameCommand.ts
│ │ │ └── StartGameCommand.ts
│ │ ├── config
│ │ │ ├── GameConfig.ts
│ │ │ ├── PalidorConfig.ts
│ │ │ └── ViewsConfig.ts
│ │ ├── events
│ │ │ ├── FlowEvent.ts
│ │ │ └── GameEvent.ts
│ │ ├── game
│ │ │ ├── Managers
│ │ │ │ └── GameManager.ts
│ │ │ ├── displays
│ │ │ │ ├── BulletDisplay.ts
│ │ │ │ ├── CannonDisplay.ts
│ │ │ │ ├── EnemyDisplay.ts
│ │ │ │ └── ExplosionDisplay.ts
│ │ │ ├── entities
│ │ │ │ ├── Bullet.ts
│ │ │ │ ├── Entity.ts
│ │ │ │ └── Explosion.ts
│ │ │ ├── factories
│ │ │ │ └── LevelFactory.ts
│ │ │ └── utils
│ │ │ │ ├── EntityPool.ts
│ │ │ │ ├── GameUtils.ts
│ │ │ │ ├── Point.ts
│ │ │ │ └── Rectangle.ts
│ │ ├── index.ts
│ │ ├── mediators
│ │ │ ├── BattleFieldComponentMediator.ts
│ │ │ ├── GameOverPopupMediator.ts
│ │ │ ├── GameViewMediator.ts
│ │ │ ├── HUDGameComponentMediator.ts
│ │ │ ├── HomeViewMediator.ts
│ │ │ ├── InfoPopupMediator.ts
│ │ │ ├── IntroViewMediator.ts
│ │ │ ├── OptionsViewMediator.ts
│ │ │ ├── PausePopupMediator.ts
│ │ │ ├── ResetConfirmPopupMediator.ts
│ │ │ └── StartingPopupMediator.ts
│ │ ├── models
│ │ │ ├── GameModel.ts
│ │ │ ├── GameStatus.ts
│ │ │ ├── LevelData.ts
│ │ │ └── LevelModel.ts
│ │ ├── services
│ │ │ ├── FlowService.ts
│ │ │ └── GameService.ts
│ │ ├── utils
│ │ │ ├── AtlasKeys.ts
│ │ │ ├── Colors.ts
│ │ │ ├── MagicValues.ts
│ │ │ ├── PixiFactory.ts
│ │ │ ├── SharedObjectManager.ts
│ │ │ ├── Texts.ts
│ │ │ └── ViewPortSize.ts
│ │ └── views
│ │ │ ├── GameOverPopup.ts
│ │ │ ├── GameView.ts
│ │ │ ├── HomeView.ts
│ │ │ ├── InfoPopup.ts
│ │ │ ├── IntroView.ts
│ │ │ ├── OptionsView.ts
│ │ │ ├── PausePopup.ts
│ │ │ ├── ResetConfirmPopup.ts
│ │ │ ├── StartingPopup.ts
│ │ │ └── components
│ │ │ ├── BattleFieldComponent.ts
│ │ │ ├── CustomButton.ts
│ │ │ ├── HUDGameComponent.ts
│ │ │ └── LivesComponent.ts
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ └── webpack.config.js
└── tetris
│ ├── .eslintrc.js
│ ├── .mocharc.json
│ ├── .vscode
│ └── settings.json
│ ├── README.md
│ ├── assets
│ ├── atlas
│ │ ├── buttons
│ │ │ ├── button_cancel_over.png
│ │ │ ├── button_cancel_up.png
│ │ │ ├── button_config_over.png
│ │ │ ├── button_config_up.png
│ │ │ ├── button_confirm_over.png
│ │ │ ├── button_confirm_up.png
│ │ │ ├── button_home_over.png
│ │ │ ├── button_home_up.png
│ │ │ ├── button_pause_over.png
│ │ │ ├── button_pause_up.png
│ │ │ ├── button_reset_over.png
│ │ │ ├── button_reset_up.png
│ │ │ ├── button_resume_over.png
│ │ │ ├── button_resume_up.png
│ │ │ ├── button_retry_over.png
│ │ │ ├── button_retry_up.png
│ │ │ ├── button_start_over.png
│ │ │ └── button_start_up.png
│ │ ├── displays
│ │ │ ├── grid.png
│ │ │ ├── logo_setzer.png
│ │ │ ├── logo_tetris.png
│ │ │ └── next_tile.png
│ │ ├── tetris-pixijs-atlas.tps
│ │ ├── tiles.png
│ │ └── tiles
│ │ │ ├── tile_01.png
│ │ │ ├── tile_02.png
│ │ │ ├── tile_03.png
│ │ │ ├── tile_04.png
│ │ │ ├── tile_05.png
│ │ │ ├── tile_06.png
│ │ │ ├── tile_07.png
│ │ │ └── tile_08.png
│ ├── fonts
│ │ ├── SimpleSmalPixel7_.png
│ │ ├── SimpleSmallPixel7.fnt
│ │ └── SimpleSmallPixel7_0.png
│ ├── logo_typescript.png
│ ├── tetris-pixijs-atlas.json
│ └── tetris-pixijs-atlas.png
│ ├── config
│ └── rush-project.json
│ ├── media
│ ├── gif_tetris_ts_demo.gif
│ ├── img_cover_tetris_ts.png
│ ├── img_game_tetris_ts.png
│ └── img_ss_tetris_ts_01.png
│ ├── package.json
│ ├── src
│ ├── Game.ts
│ ├── commands
│ │ ├── CreateLevelCommand.ts
│ │ ├── GameOverCommand.ts
│ │ ├── GetNextPieceCommand.ts
│ │ └── IncreasePointsCommand.ts
│ ├── configs
│ │ ├── GameConfig.ts
│ │ ├── PalidorConfig.ts
│ │ └── ViewsConfig.ts
│ ├── events
│ │ ├── FlowEvent.ts
│ │ └── GameEvent.ts
│ ├── index.ts
│ ├── managers
│ │ └── GameManager.ts
│ ├── mediators
│ │ ├── GameOverPopupMediator.ts
│ │ ├── GameViewMediator.ts
│ │ ├── GridComponentMediator.ts
│ │ ├── HUDGameComponentMediator.ts
│ │ ├── HomeViewMediator.ts
│ │ ├── InfoPopupMediator.ts
│ │ ├── IntroViewMediator.ts
│ │ ├── NextPieceComponentMediator.ts
│ │ ├── OptionsViewMediator.ts
│ │ ├── PausePopupMediator.ts
│ │ ├── ResetConfirmPopupMediator.ts
│ │ └── StartingPopupMediator.ts
│ ├── models
│ │ ├── GameModel.ts
│ │ ├── GameStatus.ts
│ │ ├── Grid.ts
│ │ ├── Tile.ts
│ │ ├── TileGroup.ts
│ │ └── TileGroupType.ts
│ ├── services
│ │ ├── FlowService.ts
│ │ └── GameService.ts
│ ├── utils
│ │ ├── AtlasKeys.ts
│ │ ├── Colors.ts
│ │ ├── GameUtils.ts
│ │ ├── MagicValues.ts
│ │ ├── PixiFactory.ts
│ │ ├── Texts.ts
│ │ ├── TileGroupFactory.ts
│ │ ├── TilePool.ts
│ │ └── ViewPortSize.ts
│ └── views
│ │ ├── GameOverPopup.ts
│ │ ├── GameView.ts
│ │ ├── HomeView.ts
│ │ ├── InfoPopup.ts
│ │ ├── IntroView.ts
│ │ ├── OptionsView.ts
│ │ ├── PausePopup.ts
│ │ ├── ResetConfirmPopup.ts
│ │ ├── StartingPopup.ts
│ │ └── components
│ │ ├── CustomButton.ts
│ │ ├── DoubleTextField.ts
│ │ ├── GridComponent.ts
│ │ ├── HUDGameComponent.ts
│ │ ├── NextPieceComponent.ts
│ │ └── TileDisplay.ts
│ ├── test
│ ├── entry.ts
│ ├── index.ts
│ ├── models
│ │ ├── GameModel.test.ts
│ │ ├── Grid.test.ts
│ │ ├── Tile.test.ts
│ │ └── TileGroup.test.ts
│ ├── tsconfig.json
│ └── utils
│ │ └── TileGroupFactory.test.ts
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.setzer.config.js
├── integration-tests
└── macrobot-signalcommandmap
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ └── settings.json
│ ├── LICENSE
│ ├── config
│ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ └── index.ts
│ ├── test
│ ├── README.md
│ ├── entry.ts
│ ├── index.ts
│ ├── robotlegs
│ │ └── bender
│ │ │ └── utilities
│ │ │ └── macrobot
│ │ │ ├── impl
│ │ │ ├── dummy.test.ts
│ │ │ └── signalsMappedToMacro.test.ts
│ │ │ └── support
│ │ │ ├── CallbackCustomPayloadCommand.ts
│ │ │ ├── CallbackCustomPayloadSequenceCommand.ts
│ │ │ ├── CallbackNoParametersCommand.ts
│ │ │ ├── CallbackNoParametersSequenceCommand.ts
│ │ │ ├── CallbackParametersCommand.ts
│ │ │ ├── CallbackParametersSequenceCommand.ts
│ │ │ ├── DelaySignal.ts
│ │ │ ├── NoParametersSignal.ts
│ │ │ ├── ParametersSignal.ts
│ │ │ ├── ReportDelayAsyncCommand.ts
│ │ │ ├── ReportNoPayloadAsyncCommand.ts
│ │ │ ├── TestNestedSequenceBySignalCommand.ts
│ │ │ ├── TestParallelByNoPayloadSignalCommand.ts
│ │ │ ├── TestParallelBySignalCommand.ts
│ │ │ ├── TestSequenceByCustomPayloadSignalCommand.ts
│ │ │ ├── TestSequenceByNoPayloadSignalCommand.ts
│ │ │ └── TestSequenceBySignalCommand.ts
│ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── packages
├── core
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── docs
│ │ └── robotlegs
│ │ │ ├── bundles
│ │ │ ├── mvcs
│ │ │ │ └── readme.md
│ │ │ └── readme.md
│ │ │ ├── extensions
│ │ │ ├── commandCenter
│ │ │ │ └── readme.md
│ │ │ ├── contextView
│ │ │ │ └── readme.md
│ │ │ ├── directCommandMap
│ │ │ │ └── readme.md
│ │ │ ├── enhancedLogging
│ │ │ │ └── readme.md
│ │ │ ├── eventCommandMap
│ │ │ │ └── readme.md
│ │ │ ├── eventDispatcher
│ │ │ │ └── readme.md
│ │ │ ├── localEventMap
│ │ │ │ └── readme.md
│ │ │ ├── matching
│ │ │ │ └── readme.md
│ │ │ ├── mediatorMap
│ │ │ │ └── readme.md
│ │ │ ├── modularity
│ │ │ │ └── readme.md
│ │ │ ├── readme.md
│ │ │ ├── viewManager
│ │ │ │ └── readme.md
│ │ │ ├── viewProcessorMap
│ │ │ │ └── readme.md
│ │ │ └── vigilance
│ │ │ │ └── readme.md
│ │ │ ├── framework
│ │ │ ├── readme-async.md
│ │ │ ├── readme-context.md
│ │ │ ├── readme-guards.md
│ │ │ ├── readme-hooks.md
│ │ │ ├── readme-lifecycle.md
│ │ │ ├── readme-logging.md
│ │ │ ├── readme-message-dispatcher.md
│ │ │ └── readme.md
│ │ │ └── readme.md
│ ├── karma.conf.js
│ ├── media
│ │ └── robotlegs.png
│ ├── not-ported-extensions
│ │ ├── modularity
│ │ │ ├── ModularityExtension.ts
│ │ │ ├── api
│ │ │ │ └── IModuleConnector.ts
│ │ │ ├── dsl
│ │ │ │ └── IModuleConnectionAction.ts
│ │ │ └── impl
│ │ │ │ ├── ContextViewBasedExistenceWatcher.ts
│ │ │ │ ├── ModularContextEvent.ts
│ │ │ │ ├── ModuleConnectionConfigurator.ts
│ │ │ │ ├── ModuleConnector.ts
│ │ │ │ └── ViewManagerBasedExistenceWatcher.ts
│ │ ├── viewProcessorMap
│ │ │ ├── ViewProcessorMapExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IViewProcessorMap.ts
│ │ │ │ └── ViewProcessorMapError.ts
│ │ │ ├── dsl
│ │ │ │ ├── IViewProcessorMapper.ts
│ │ │ │ ├── IViewProcessorMapping.ts
│ │ │ │ ├── IViewProcessorMappingConfig.ts
│ │ │ │ └── IViewProcessorUnmapper.ts
│ │ │ ├── impl
│ │ │ │ ├── IViewProcessorFactory.ts
│ │ │ │ ├── IViewProcessorViewHandler.ts
│ │ │ │ ├── NullProcessor.ts
│ │ │ │ ├── NullViewProcessorUnmapper.ts
│ │ │ │ ├── ViewInjectionProcessor.ts
│ │ │ │ ├── ViewProcessorFactory.ts
│ │ │ │ ├── ViewProcessorMap.ts
│ │ │ │ ├── ViewProcessorMapper.ts
│ │ │ │ ├── ViewProcessorMapping.ts
│ │ │ │ └── ViewProcessorViewHandler.ts
│ │ │ └── utils
│ │ │ │ ├── FastPropertyInjector.ts
│ │ │ │ ├── MediatorCreator.ts
│ │ │ │ └── PropertyValueInjector.ts
│ │ └── vigilance
│ │ │ ├── VigilanceExtension.ts
│ │ │ └── VigilantError.ts
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── mvcs
│ │ │ │ └── MVCSBundle.ts
│ │ │ ├── events
│ │ │ ├── api
│ │ │ │ ├── IEvent.ts
│ │ │ │ └── IEventDispatcher.ts
│ │ │ └── impl
│ │ │ │ ├── Event.ts
│ │ │ │ └── EventDispatcher.ts
│ │ │ ├── extensions
│ │ │ ├── commandCenter
│ │ │ │ ├── api
│ │ │ │ │ ├── CommandPayload.ts
│ │ │ │ │ ├── ICommand.ts
│ │ │ │ │ ├── ICommandExecutor.ts
│ │ │ │ │ ├── ICommandMapping.ts
│ │ │ │ │ ├── ICommandMappingList.ts
│ │ │ │ │ └── ICommandTrigger.ts
│ │ │ │ ├── dsl
│ │ │ │ │ ├── ICommandConfigurator.ts
│ │ │ │ │ ├── ICommandMapper.ts
│ │ │ │ │ └── ICommandUnmapper.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── Command.ts
│ │ │ │ │ ├── CommandExecutor.ts
│ │ │ │ │ ├── CommandMapper.ts
│ │ │ │ │ ├── CommandMapping.ts
│ │ │ │ │ ├── CommandMappingList.ts
│ │ │ │ │ ├── CommandTriggerMap.ts
│ │ │ │ │ └── NullCommandTrigger.ts
│ │ │ ├── directCommandMap
│ │ │ │ ├── DirectCommandMapExtension.ts
│ │ │ │ ├── api
│ │ │ │ │ ├── IDirectCommandMap.ts
│ │ │ │ │ └── IDirectCommandMapper.ts
│ │ │ │ ├── dsl
│ │ │ │ │ └── IDirectCommandConfigurator.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── DirectCommandMap.ts
│ │ │ │ │ └── DirectCommandMapper.ts
│ │ │ ├── enhancedLogging
│ │ │ │ ├── ConsoleLoggingExtension.ts
│ │ │ │ ├── InjectableLoggerExtension.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── ConsoleLogTarget.ts
│ │ │ │ │ └── LogMessageParser.ts
│ │ │ ├── eventCommandMap
│ │ │ │ ├── EventCommandMapExtension.ts
│ │ │ │ ├── api
│ │ │ │ │ └── IEventCommandMap.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── EventCommandMap.ts
│ │ │ │ │ └── EventCommandTrigger.ts
│ │ │ ├── eventDispatcher
│ │ │ │ ├── EventDispatcherExtension.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── EventRelay.ts
│ │ │ │ │ └── LifecycleEventRelay.ts
│ │ │ ├── localEventMap
│ │ │ │ ├── LocalEventMapExtension.ts
│ │ │ │ ├── api
│ │ │ │ │ └── IEventMap.ts
│ │ │ │ └── impl
│ │ │ │ │ ├── DomEventMapConfig.ts
│ │ │ │ │ ├── EventMap.ts
│ │ │ │ │ └── EventMapConfig.ts
│ │ │ └── matching
│ │ │ │ ├── IClass.ts
│ │ │ │ ├── IType.ts
│ │ │ │ ├── ITypeFilter.ts
│ │ │ │ ├── ITypeMatcher.ts
│ │ │ │ ├── ITypeMatcherFactory.ts
│ │ │ │ ├── TypeFilter.ts
│ │ │ │ ├── TypeMatcher.ts
│ │ │ │ ├── TypeMatcherError.ts
│ │ │ │ ├── instanceOfType.ts
│ │ │ │ └── isInstanceOfType.ts
│ │ │ └── framework
│ │ │ ├── api
│ │ │ ├── IBundle.ts
│ │ │ ├── IConfig.ts
│ │ │ ├── IContext.ts
│ │ │ ├── IExtension.ts
│ │ │ ├── IGuard.ts
│ │ │ ├── IHook.ts
│ │ │ ├── IInjector.ts
│ │ │ ├── ILifecycle.ts
│ │ │ ├── ILogTarget.ts
│ │ │ ├── ILogger.ts
│ │ │ ├── IMatcher.ts
│ │ │ ├── LifecycleError.ts
│ │ │ ├── LifecycleEvent.ts
│ │ │ ├── LifecycleState.ts
│ │ │ ├── LogLevel.ts
│ │ │ └── PinEvent.ts
│ │ │ └── impl
│ │ │ ├── ClassMatcher.ts
│ │ │ ├── ConfigManager.ts
│ │ │ ├── Context.ts
│ │ │ ├── ExtensionInstaller.ts
│ │ │ ├── Lifecycle.ts
│ │ │ ├── LifecycleTransition.ts
│ │ │ ├── LogManager.ts
│ │ │ ├── Logger.ts
│ │ │ ├── MessageDispatcher.ts
│ │ │ ├── MessageRunner.ts
│ │ │ ├── ObjectHandler.ts
│ │ │ ├── ObjectMatcher.ts
│ │ │ ├── ObjectProcessor.ts
│ │ │ ├── Pin.ts
│ │ │ ├── RobotlegsInjector.ts
│ │ │ ├── UID.ts
│ │ │ ├── applyHooks.ts
│ │ │ ├── getQualifiedClassName.ts
│ │ │ ├── guardsApprove.ts
│ │ │ ├── instantiateUnmapped.ts
│ │ │ └── safelyCallBack.ts
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── events
│ │ │ │ └── impl
│ │ │ │ │ └── event.test.ts
│ │ │ │ ├── extensions
│ │ │ │ ├── commandCenter
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── commandExecutor.test.ts
│ │ │ │ │ │ ├── commandMapper.test.ts
│ │ │ │ │ │ ├── commandMapping.test.ts
│ │ │ │ │ │ ├── commandMappingList.test.ts
│ │ │ │ │ │ ├── commandPayload.test.ts
│ │ │ │ │ │ └── commandTriggerMap.test.ts
│ │ │ │ │ └── support
│ │ │ │ │ │ ├── CallbackCommand.ts
│ │ │ │ │ │ ├── CallbackCommand2.ts
│ │ │ │ │ │ ├── ClassReportingCallbackCommand.ts
│ │ │ │ │ │ ├── ClassReportingCallbackCommand2.ts
│ │ │ │ │ │ ├── ClassReportingCallbackGuard.ts
│ │ │ │ │ │ ├── ClassReportingCallbackGuard2.ts
│ │ │ │ │ │ ├── ClassReportingCallbackHook.ts
│ │ │ │ │ │ ├── MessageReturningCommand.ts
│ │ │ │ │ │ ├── MethodParametersCommand.ts
│ │ │ │ │ │ ├── NullCommand.ts
│ │ │ │ │ │ ├── NullCommand2.ts
│ │ │ │ │ │ ├── NullCommand3.ts
│ │ │ │ │ │ ├── PayloadInjectionPointsCommand.ts
│ │ │ │ │ │ ├── PayloadInjectionPointsGuard.ts
│ │ │ │ │ │ ├── PayloadInjectionPointsHook.ts
│ │ │ │ │ │ ├── PriorityMapping.ts
│ │ │ │ │ │ ├── SelfReportingCallbackCommand.ts
│ │ │ │ │ │ └── SelfReportingCallbackHook.ts
│ │ │ │ ├── directCommandMap
│ │ │ │ │ ├── directCommandMapExtension.test.ts
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── directCommandMap.test.ts
│ │ │ │ │ │ └── directCommandMapper.test.ts
│ │ │ │ │ └── support
│ │ │ │ │ │ └── DirectCommandMapReportingCommand.ts
│ │ │ │ ├── enhancedLogging
│ │ │ │ │ ├── consoleLoggingExtension.test.ts
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── consoleLogTarget.test.ts
│ │ │ │ │ │ └── logMessageParser.test.ts
│ │ │ │ │ └── injectableLoggerExtension.test.ts
│ │ │ │ ├── eventCommandMap
│ │ │ │ │ ├── eventCommandMapExtension.test.ts
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── eventCommandMap.test.ts
│ │ │ │ │ │ └── eventCommandTrigger.test.ts
│ │ │ │ │ └── support
│ │ │ │ │ │ ├── CascadingCommand.ts
│ │ │ │ │ │ ├── CommandMappingCommand.ts
│ │ │ │ │ │ ├── CommandUnmappingCommand.ts
│ │ │ │ │ │ ├── CustomEvent1.ts
│ │ │ │ │ │ ├── CustomEvent1CallbackCommand.ts
│ │ │ │ │ │ ├── CustomEvent2.ts
│ │ │ │ │ │ ├── EventCallbackCommand.ts
│ │ │ │ │ │ ├── EventInjectedCallbackCommand.ts
│ │ │ │ │ │ ├── EventInjectedCallbackGuard.ts
│ │ │ │ │ │ ├── EventParametersCommand.ts
│ │ │ │ │ │ ├── SupportEvent.ts
│ │ │ │ │ │ └── SupportEventTriggeredSelfReportingCallbackCommand.ts
│ │ │ │ ├── eventDispatcher
│ │ │ │ │ ├── eventDispatcherExtension.test.ts
│ │ │ │ │ └── impl
│ │ │ │ │ │ ├── eventRelay.test.ts
│ │ │ │ │ │ └── lifecycleEventRelay.test.ts
│ │ │ │ ├── localEventMap
│ │ │ │ │ ├── impl
│ │ │ │ │ │ ├── domEventMap.test.ts
│ │ │ │ │ │ ├── domEventMapConfig.test.ts
│ │ │ │ │ │ ├── eventMap.test.ts
│ │ │ │ │ │ └── eventMapConfig.test.ts
│ │ │ │ │ ├── localEventMapExtension.test.ts
│ │ │ │ │ └── support
│ │ │ │ │ │ ├── CustomEvent.ts
│ │ │ │ │ │ ├── CustomEvent2.ts
│ │ │ │ │ │ └── MockEventMap.ts
│ │ │ │ └── matching
│ │ │ │ │ ├── instanceOfType.test.ts
│ │ │ │ │ ├── support
│ │ │ │ │ ├── BaseType.ts
│ │ │ │ │ ├── ExtendedType.ts
│ │ │ │ │ └── TypeCollection.ts
│ │ │ │ │ ├── typeFilter.test.ts
│ │ │ │ │ ├── typeMatcher.test.ts
│ │ │ │ │ └── typeMatcherError.test.ts
│ │ │ │ └── framework
│ │ │ │ └── impl
│ │ │ │ ├── applyHooks.test.ts
│ │ │ │ ├── configManager.test.ts
│ │ │ │ ├── configSupport
│ │ │ │ └── TypedConfig.ts
│ │ │ │ ├── context.test.ts
│ │ │ │ ├── contextSupport
│ │ │ │ ├── CallbackConfig.ts
│ │ │ │ └── CallbackExtension.ts
│ │ │ │ ├── extensionInstaller.test.ts
│ │ │ │ ├── guardSupport
│ │ │ │ ├── BossGuard.ts
│ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ ├── HappyGuard.ts
│ │ │ │ └── JustTheMiddleManGuard.ts
│ │ │ │ ├── guardsApprove.test.ts
│ │ │ │ ├── hookSupport
│ │ │ │ └── CallbackHook.ts
│ │ │ │ ├── lifecycle.test.ts
│ │ │ │ ├── lifecycleTransition.test.ts
│ │ │ │ ├── logManager.test.ts
│ │ │ │ ├── logger.test.ts
│ │ │ │ ├── loggingSupport
│ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ └── LogParams.ts
│ │ │ │ ├── messageDispatcher.test.ts
│ │ │ │ ├── objectProcessor.test.ts
│ │ │ │ ├── objectSupport
│ │ │ │ └── TestObject.ts
│ │ │ │ ├── pin.test.ts
│ │ │ │ ├── robotlegsInjector.test.ts
│ │ │ │ ├── safelyCallBack.test.ts
│ │ │ │ └── safelyCallBackSupport
│ │ │ │ ├── createAsyncHandler.ts
│ │ │ │ ├── createCallbackHandlerThatErrors.ts
│ │ │ │ └── createHandler.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── createjs
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── deploy-example.sh
│ ├── example
│ │ ├── Game.ts
│ │ ├── config
│ │ │ └── MyConfig.ts
│ │ ├── index.ts
│ │ ├── mediator
│ │ │ ├── RobotlegsMediator.ts
│ │ │ └── SmileyMediator.ts
│ │ ├── tsconfig.json
│ │ └── view
│ │ │ ├── RobotlegsView.ts
│ │ │ └── SmileyView.ts
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── createjs
│ │ │ │ └── CreateJSBundle.ts
│ │ │ └── extensions
│ │ │ ├── contextView
│ │ │ ├── ContextViewExtension.ts
│ │ │ ├── api
│ │ │ │ └── IContextView.ts
│ │ │ ├── createjsPatch
│ │ │ │ └── createjs-patch.ts
│ │ │ └── impl
│ │ │ │ ├── ContextView.ts
│ │ │ │ └── ContextViewListenerConfig.ts
│ │ │ ├── mediatorMap
│ │ │ ├── MediatorMapExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IMediator.ts
│ │ │ │ ├── IMediatorMap.ts
│ │ │ │ └── IMediatorMapping.ts
│ │ │ ├── dsl
│ │ │ │ ├── IMediatorConfigurator.ts
│ │ │ │ ├── IMediatorMapper.ts
│ │ │ │ └── IMediatorUnmapper.ts
│ │ │ └── impl
│ │ │ │ ├── ConvertToEventDispatcher.ts
│ │ │ │ ├── Mediator.ts
│ │ │ │ ├── MediatorFactory.ts
│ │ │ │ ├── MediatorManager.ts
│ │ │ │ ├── MediatorMap.ts
│ │ │ │ ├── MediatorMapper.ts
│ │ │ │ ├── MediatorMapping.ts
│ │ │ │ ├── MediatorViewHandler.ts
│ │ │ │ └── NullMediatorUnmapper.ts
│ │ │ └── viewManager
│ │ │ ├── ManualStageObserverExtension.ts
│ │ │ ├── StageCrawlerExtension.ts
│ │ │ ├── StageObserverExtension.ts
│ │ │ ├── ViewManagerExtension.ts
│ │ │ ├── api
│ │ │ ├── IViewHandler.ts
│ │ │ └── IViewManager.ts
│ │ │ └── impl
│ │ │ ├── ConfigureViewEvent.ts
│ │ │ ├── ContainerBinding.ts
│ │ │ ├── ContainerBindingEvent.ts
│ │ │ ├── ContainerRegistry.ts
│ │ │ ├── ContainerRegistryEvent.ts
│ │ │ ├── ManualStageObserver.ts
│ │ │ ├── StageCrawler.ts
│ │ │ ├── StageObserver.ts
│ │ │ ├── ViewManager.ts
│ │ │ └── ViewManagerEvent.ts
│ ├── static
│ │ ├── images
│ │ │ ├── loading.gif
│ │ │ ├── logo_createjs.svg
│ │ │ └── robotlegs.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ ├── example.css
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── createjs
│ │ │ │ │ └── createjsBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ ├── contextView
│ │ │ │ ├── contextViewExtension.test.ts
│ │ │ │ ├── createjsPatch
│ │ │ │ │ └── createjsPatch.test.ts
│ │ │ │ ├── impl
│ │ │ │ │ ├── contextView.test.ts
│ │ │ │ │ └── contextViewListenerConfig.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ │ └── LogParams.ts
│ │ │ │ ├── mediatorMap
│ │ │ │ ├── impl
│ │ │ │ │ ├── mediatorFactory.test.ts
│ │ │ │ │ ├── mediatorManager.test.ts
│ │ │ │ │ ├── mediatorMap.test.ts
│ │ │ │ │ ├── mediatorMapPreload.test.ts
│ │ │ │ │ ├── mediatorMapper.test.ts
│ │ │ │ │ └── mediatorViewHandler.test.ts
│ │ │ │ ├── mediatorMapExtension.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── Alpha50PercentHook.ts
│ │ │ │ │ ├── CallbackHook.ts
│ │ │ │ │ ├── CallbackMediator.ts
│ │ │ │ │ ├── EmptyMediator.ts
│ │ │ │ │ ├── ExampleDisplayObjectMediator.ts
│ │ │ │ │ ├── ExampleMediator.ts
│ │ │ │ │ ├── ExampleMediator2.ts
│ │ │ │ │ ├── ExampleView.ts
│ │ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ │ ├── HappyGuard.ts
│ │ │ │ │ ├── HookWithMediatorAndViewInjectionReportFunction.ts
│ │ │ │ │ ├── InjectedMediator.ts
│ │ │ │ │ ├── LifecycleReportingMediator.ts
│ │ │ │ │ ├── MediatorHook.ts
│ │ │ │ │ ├── MediatorWatcher.ts
│ │ │ │ │ ├── NotAView.ts
│ │ │ │ │ ├── NotAViewMediator.ts
│ │ │ │ │ ├── NullMediator.ts
│ │ │ │ │ ├── NullMediator2.ts
│ │ │ │ │ ├── OnlyIfViewHasChildrenGuard.ts
│ │ │ │ │ ├── RectangleMediator.ts
│ │ │ │ │ ├── ViewInjectedAsRequestedMediator.ts
│ │ │ │ │ └── ViewInjectedMediator.ts
│ │ │ │ └── viewManager
│ │ │ │ ├── impl
│ │ │ │ ├── configureViewEvent.test.ts
│ │ │ │ ├── containerBinding.test.ts
│ │ │ │ ├── containerBindingEvent.test.ts
│ │ │ │ ├── containerRegistry.test.ts
│ │ │ │ ├── containerRegistryEvent.test.ts
│ │ │ │ ├── manualStageObserver.test.ts
│ │ │ │ ├── stageCrawler.test.ts
│ │ │ │ ├── stageObserver.test.ts
│ │ │ │ ├── viewManager.test.ts
│ │ │ │ └── viewManagerEvent.test.ts
│ │ │ │ ├── manualStageObserverExtension.test.ts
│ │ │ │ ├── stageCrawlerExtension.test.ts
│ │ │ │ ├── stageObserverExtension.test.ts
│ │ │ │ ├── support
│ │ │ │ ├── CallbackViewHandler.ts
│ │ │ │ └── TreeContainer.ts
│ │ │ │ └── viewManagerExtension.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── eventemitter3
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ └── extensions
│ │ │ └── localEventEmitterMap
│ │ │ ├── LocalEventEmitterMapExtension.ts
│ │ │ ├── api
│ │ │ └── IEventEmitterMap.ts
│ │ │ └── impl
│ │ │ ├── EventEmitterMap.ts
│ │ │ └── EventEmitterMapConfig.ts
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ └── extensions
│ │ │ │ └── localEventEmitterMap
│ │ │ │ ├── impl
│ │ │ │ ├── eventEmitterMap.test.ts
│ │ │ │ └── eventEmitterMapConfig.test.ts
│ │ │ │ └── localEventEmitterMapExtension.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── macrobot
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ └── utilities
│ │ │ └── macrobot
│ │ │ ├── api
│ │ │ ├── IAsyncCommand.ts
│ │ │ ├── IMacro.ts
│ │ │ ├── ISubCommandMapping.ts
│ │ │ └── ISubCommandPayload.ts
│ │ │ ├── dsl
│ │ │ ├── ISubCommandConfigurator.ts
│ │ │ ├── ISubCommandMapper.ts
│ │ │ ├── ISubCommandMappingList.ts
│ │ │ └── ISubCommandUnMapper.ts
│ │ │ └── impl
│ │ │ ├── AbstractMacro.ts
│ │ │ ├── AsyncCommand.ts
│ │ │ ├── ParallelMacro.ts
│ │ │ ├── SequenceMacro.ts
│ │ │ ├── SubCommandMapping.ts
│ │ │ ├── SubCommandMappingList.ts
│ │ │ └── SubCommandPayload.ts
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ └── utilities
│ │ │ │ └── macrobot
│ │ │ │ ├── impl
│ │ │ │ ├── parallelMacro.test.ts
│ │ │ │ ├── sequenceMacro.test.ts
│ │ │ │ ├── subCommandMappingList.test.ts
│ │ │ │ └── subCommandPayload.test.ts
│ │ │ │ └── support
│ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ ├── HappyGuard.ts
│ │ │ │ ├── NullCommand.ts
│ │ │ │ ├── NullCommand2.ts
│ │ │ │ ├── Report1Command.ts
│ │ │ │ ├── Report2Command.ts
│ │ │ │ ├── Report3Command.ts
│ │ │ │ ├── ReportCommandHook.ts
│ │ │ │ ├── ReportDelayAsyncCommand.ts
│ │ │ │ ├── ReportEventCommand.ts
│ │ │ │ ├── ReportEventWithDelayCommand.ts
│ │ │ │ ├── ReportHook.ts
│ │ │ │ ├── ReportMaxNumberCommand.ts
│ │ │ │ ├── ReportNoPayloadAsyncCommand.ts
│ │ │ │ ├── ReportPayloadGuard.ts
│ │ │ │ ├── ReportPayloadHook.ts
│ │ │ │ ├── ReportStringCommand.ts
│ │ │ │ ├── TestAddAndRemoveParallelCommand.ts
│ │ │ │ ├── TestAddAndRemoveSequenceCommand.ts
│ │ │ │ ├── TestAtomicSequenceWithAsyncAndCompleteCallbackCommand.ts
│ │ │ │ ├── TestAtomicSequenceWithAsyncCommand.ts
│ │ │ │ ├── TestEmptyParallelCommand.ts
│ │ │ │ ├── TestNotAtomicSequenceWithAsyncCommand.ts
│ │ │ │ ├── TestParallelCommand.ts
│ │ │ │ ├── TestParallelWithCompleteCallbackCommand.ts
│ │ │ │ ├── TestParallelWithPayloadCommand.ts
│ │ │ │ ├── TestSequenceAnChangeAtomicLaterCommand.ts
│ │ │ │ ├── TestSequenceCommand.ts
│ │ │ │ ├── TestSequenceWithAsyncAndCompleteCallbackCommand.ts
│ │ │ │ ├── TestSequenceWithAsyncCommand.ts
│ │ │ │ ├── TestSequenceWithCompleteCallbackCommand.ts
│ │ │ │ ├── TestSequenceWithGrumpyGuardsCommand.ts
│ │ │ │ ├── TestSequenceWithHappyGuardsCommand.ts
│ │ │ │ ├── TestSequenceWithHooksCommand.ts
│ │ │ │ ├── TestSequenceWithInjectedHooksCommand.ts
│ │ │ │ ├── TestSequenceWithNamedPayloadsCommand.ts
│ │ │ │ ├── TestSequenceWithPayloadCommand.ts
│ │ │ │ ├── TestSequenceWithPayloadInjectedIntoGuardsCommand.ts
│ │ │ │ ├── TestSequenceWithPayloadInjectedIntoHooksCommand.ts
│ │ │ │ └── TestSequenceWithStringPayloadCommand.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── openfl
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── deploy-example.sh
│ ├── example
│ │ ├── Game.ts
│ │ ├── config
│ │ │ └── MyConfig.ts
│ │ ├── index.ts
│ │ ├── mediator
│ │ │ ├── RobotlegsMediator.ts
│ │ │ └── SmileyMediator.ts
│ │ ├── tsconfig.json
│ │ └── view
│ │ │ ├── GameView.ts
│ │ │ ├── RobotlegsView.ts
│ │ │ └── SmileyView.ts
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── openfl
│ │ │ │ └── OpenFLBundle.ts
│ │ │ └── extensions
│ │ │ ├── contextView
│ │ │ ├── ContextViewExtension.ts
│ │ │ ├── api
│ │ │ │ └── IContextView.ts
│ │ │ └── impl
│ │ │ │ ├── ContextView.ts
│ │ │ │ └── ContextViewListenerConfig.ts
│ │ │ ├── mediatorMap
│ │ │ ├── MediatorMapExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IMediator.ts
│ │ │ │ ├── IMediatorMap.ts
│ │ │ │ └── IMediatorMapping.ts
│ │ │ ├── dsl
│ │ │ │ ├── IMediatorConfigurator.ts
│ │ │ │ ├── IMediatorMapper.ts
│ │ │ │ └── IMediatorUnmapper.ts
│ │ │ └── impl
│ │ │ │ ├── ConvertToEventDispatcher.ts
│ │ │ │ ├── Mediator.ts
│ │ │ │ ├── MediatorFactory.ts
│ │ │ │ ├── MediatorManager.ts
│ │ │ │ ├── MediatorMap.ts
│ │ │ │ ├── MediatorMapper.ts
│ │ │ │ ├── MediatorMapping.ts
│ │ │ │ ├── MediatorViewHandler.ts
│ │ │ │ └── NullMediatorUnmapper.ts
│ │ │ └── viewManager
│ │ │ ├── ManualStageObserverExtension.ts
│ │ │ ├── StageCrawlerExtension.ts
│ │ │ ├── StageObserverExtension.ts
│ │ │ ├── ViewManagerExtension.ts
│ │ │ ├── api
│ │ │ ├── IViewHandler.ts
│ │ │ └── IViewManager.ts
│ │ │ └── impl
│ │ │ ├── ConfigureViewEvent.ts
│ │ │ ├── ContainerBinding.ts
│ │ │ ├── ContainerBindingEvent.ts
│ │ │ ├── ContainerRegistry.ts
│ │ │ ├── ContainerRegistryEvent.ts
│ │ │ ├── ManualStageObserver.ts
│ │ │ ├── StageCrawler.ts
│ │ │ ├── StageObserver.ts
│ │ │ ├── ViewManager.ts
│ │ │ └── ViewManagerEvent.ts
│ ├── static
│ │ ├── images
│ │ │ ├── loading.gif
│ │ │ ├── openfl.png
│ │ │ └── robotlegs.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ ├── example.css
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── openfl
│ │ │ │ │ └── openflBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ ├── contextView
│ │ │ │ ├── impl
│ │ │ │ │ ├── contextView.test.ts
│ │ │ │ │ ├── contextViewListenerConfig.test.ts
│ │ │ │ │ └── displayList.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ │ └── LogParams.ts
│ │ │ │ ├── mediatorMap
│ │ │ │ ├── impl
│ │ │ │ │ ├── mediatorFactory.test.ts
│ │ │ │ │ ├── mediatorManager.test.ts
│ │ │ │ │ ├── mediatorMap.test.ts
│ │ │ │ │ ├── mediatorMapPreload.test.ts
│ │ │ │ │ ├── mediatorMapper.test.ts
│ │ │ │ │ └── mediatorViewHandler.test.ts
│ │ │ │ ├── mediatorMapExtension.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── Alpha50PercentHook.ts
│ │ │ │ │ ├── CallbackHook.ts
│ │ │ │ │ ├── CallbackMediator.ts
│ │ │ │ │ ├── EmptyMediator.ts
│ │ │ │ │ ├── ExampleDisplayObjectMediator.ts
│ │ │ │ │ ├── ExampleMediator.ts
│ │ │ │ │ ├── ExampleMediator2.ts
│ │ │ │ │ ├── ExampleView.ts
│ │ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ │ ├── HappyGuard.ts
│ │ │ │ │ ├── HookWithMediatorAndViewInjectionReportFunction.ts
│ │ │ │ │ ├── InjectedMediator.ts
│ │ │ │ │ ├── LifecycleReportingMediator.ts
│ │ │ │ │ ├── MediatorHook.ts
│ │ │ │ │ ├── MediatorWatcher.ts
│ │ │ │ │ ├── NotAView.ts
│ │ │ │ │ ├── NotAViewMediator.ts
│ │ │ │ │ ├── NullMediator.ts
│ │ │ │ │ ├── NullMediator2.ts
│ │ │ │ │ ├── OnlyIfViewHasChildrenGuard.ts
│ │ │ │ │ ├── RectangleMediator.ts
│ │ │ │ │ ├── ViewInjectedAsRequestedMediator.ts
│ │ │ │ │ └── ViewInjectedMediator.ts
│ │ │ │ └── viewManager
│ │ │ │ ├── impl
│ │ │ │ ├── configureViewEvent.test.ts
│ │ │ │ ├── containerBinding.test.ts
│ │ │ │ ├── containerBindingEvent.test.ts
│ │ │ │ ├── containerRegistry.test.ts
│ │ │ │ ├── containerRegistryEvent.test.ts
│ │ │ │ ├── stageCrawler.test.ts
│ │ │ │ ├── stageObserver.test.ts
│ │ │ │ ├── viewManager.test.ts
│ │ │ │ └── viewManagerEvent.test.ts
│ │ │ │ ├── manualStageObserverExtension.test.ts
│ │ │ │ ├── stageCrawlerExtension.test.ts
│ │ │ │ ├── stageObserverExtension.test.ts
│ │ │ │ ├── support
│ │ │ │ ├── CallbackViewHandler.ts
│ │ │ │ └── TreeContainer.ts
│ │ │ │ └── viewManagerExtension.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── phaser-ce-signalcommandmap
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ └── extensions
│ │ │ └── signalCommandMap
│ │ │ ├── SignalCommandMapExtension.ts
│ │ │ ├── api
│ │ │ └── ISignalCommandMap.ts
│ │ │ └── impl
│ │ │ ├── SignalCommandMap.ts
│ │ │ └── SignalCommandTrigger.ts
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ └── extensions
│ │ │ │ └── signalCommandMap
│ │ │ │ ├── signalCommandMapExtension.test.ts
│ │ │ │ └── support
│ │ │ │ ├── Data.ts
│ │ │ │ ├── RelayCommand.ts
│ │ │ │ ├── RelaySignal.ts
│ │ │ │ ├── TargetCommand.ts
│ │ │ │ └── TargetSignal.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── phaser-ce
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── example
│ │ ├── Game.ts
│ │ ├── config
│ │ │ ├── GameConfig.ts
│ │ │ └── StateMediatorConfig.ts
│ │ ├── constants
│ │ │ └── StateKey.ts
│ │ ├── index.ts
│ │ ├── mediators
│ │ │ ├── BootMediator.ts
│ │ │ ├── GameOverMediator.ts
│ │ │ ├── GameTitleMediator.ts
│ │ │ ├── MainMediator.ts
│ │ │ └── PreloadMediator.ts
│ │ ├── models
│ │ │ └── GameModel.ts
│ │ ├── states
│ │ │ ├── BaseState.ts
│ │ │ ├── Boot.ts
│ │ │ ├── GameOver.ts
│ │ │ ├── GameTitle.ts
│ │ │ ├── Main.ts
│ │ │ └── Preload.ts
│ │ └── tsconfig.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── phaser
│ │ │ │ └── PhaserBundle.ts
│ │ │ └── extensions
│ │ │ ├── contextStateManager
│ │ │ ├── ContextStateManagerExtension.ts
│ │ │ ├── api
│ │ │ │ └── IContextStateManager.ts
│ │ │ └── impl
│ │ │ │ ├── ContextStateManager.ts
│ │ │ │ └── ContextStateManagerListenerConfig.ts
│ │ │ ├── stateManager
│ │ │ ├── StateManagerExtension.ts
│ │ │ ├── StateManagerObserverExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IStateHandler.ts
│ │ │ │ └── IStateManager.ts
│ │ │ └── impl
│ │ │ │ ├── ConfigureStateEvent.ts
│ │ │ │ ├── StateManager.ts
│ │ │ │ ├── StateManagerBinding.ts
│ │ │ │ ├── StateManagerBindingEvent.ts
│ │ │ │ ├── StateManagerEvent.ts
│ │ │ │ ├── StateManagerObserver.ts
│ │ │ │ ├── StateRegistry.ts
│ │ │ │ └── StateRegistryEvent.ts
│ │ │ └── stateMediatorMap
│ │ │ ├── StateMediatorMapExtension.ts
│ │ │ ├── api
│ │ │ ├── IStateMediator.ts
│ │ │ ├── IStateMediatorMap.ts
│ │ │ └── IStateMediatorMapping.ts
│ │ │ ├── dsl
│ │ │ ├── IStateMediatorConfigurator.ts
│ │ │ ├── IStateMediatorMapper.ts
│ │ │ └── IStateMediatorUnmapper.ts
│ │ │ └── impl
│ │ │ ├── NullStateMediatorUnmapper.ts
│ │ │ ├── StateMediator.ts
│ │ │ ├── StateMediatorFactory.ts
│ │ │ ├── StateMediatorManager.ts
│ │ │ ├── StateMediatorMap.ts
│ │ │ ├── StateMediatorMapper.ts
│ │ │ ├── StateMediatorMapping.ts
│ │ │ └── StateMediatorStateHandler.ts
│ ├── static
│ │ ├── assets
│ │ │ └── player.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── phaser
│ │ │ │ │ └── phaserBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ ├── contextStateManager
│ │ │ │ ├── contextStateManagerExtension.test.ts
│ │ │ │ ├── impl
│ │ │ │ │ ├── contextStateManager.test.ts
│ │ │ │ │ └── contextStateManagerListenerConfig.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ │ └── LogParams.ts
│ │ │ │ └── stateManager
│ │ │ │ ├── impl
│ │ │ │ ├── configureStateEvent.test.ts
│ │ │ │ ├── stateManagerBindingEvent.test.ts
│ │ │ │ └── stateManagerEvent.test.ts
│ │ │ │ └── support
│ │ │ │ └── CallbackStateHandler.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── phaser
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── deploy-example.sh
│ ├── example
│ │ ├── Game.ts
│ │ ├── commands
│ │ │ ├── AddRobotlegsScoreCommand.ts
│ │ │ └── MainCommand.ts
│ │ ├── config
│ │ │ ├── GameConfig.ts
│ │ │ └── SceneMediatorConfig.ts
│ │ ├── constants
│ │ │ └── SceneKey.ts
│ │ ├── events
│ │ │ └── MainEvent.ts
│ │ ├── index.ts
│ │ ├── mediators
│ │ │ ├── BootMediator.ts
│ │ │ ├── MainMediator.ts
│ │ │ ├── PreloadMediator.ts
│ │ │ └── ScoreViewMediator.ts
│ │ ├── models
│ │ │ └── GameModel.ts
│ │ ├── scenes
│ │ │ ├── BaseScene.ts
│ │ │ ├── Boot.ts
│ │ │ ├── Main.ts
│ │ │ └── Preload.ts
│ │ ├── tsconfig.json
│ │ └── views
│ │ │ └── ScoreView.ts
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── phaser
│ │ │ │ └── PhaserBundle.ts
│ │ │ └── extensions
│ │ │ ├── contextSceneManager
│ │ │ ├── ContextSceneManagerExtension.ts
│ │ │ ├── api
│ │ │ │ └── IContextSceneManager.ts
│ │ │ └── impl
│ │ │ │ ├── ContextSceneManager.ts
│ │ │ │ └── ContextSceneManagerListenerConfig.ts
│ │ │ ├── localEventEmitterMap
│ │ │ ├── LocalEventEmitterMapExtension.ts
│ │ │ ├── api
│ │ │ │ └── IEventEmitterMap.ts
│ │ │ └── impl
│ │ │ │ ├── EventEmitterMap.ts
│ │ │ │ └── EventEmitterMapConfig.ts
│ │ │ ├── mediatorMap
│ │ │ ├── SceneMediatorMapExtension.ts
│ │ │ ├── ViewMediatorMapExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IMediator.ts
│ │ │ │ ├── IMediatorManager.ts
│ │ │ │ ├── IMediatorMapping.ts
│ │ │ │ ├── ISceneMediatorMap.ts
│ │ │ │ └── IViewMediatorMap.ts
│ │ │ ├── dsl
│ │ │ │ ├── IMediatorConfigurator.ts
│ │ │ │ ├── IMediatorMapper.ts
│ │ │ │ └── IMediatorUnmapper.ts
│ │ │ └── impl
│ │ │ │ ├── AbstractMediator.ts
│ │ │ │ ├── AbstractMediatorFactory.ts
│ │ │ │ ├── AbstractMediatorHandler.ts
│ │ │ │ ├── MediatorMapper.ts
│ │ │ │ ├── MediatorMapping.ts
│ │ │ │ ├── NullMediatorUnmapper.ts
│ │ │ │ ├── SceneMediator.ts
│ │ │ │ ├── SceneMediatorFactory.ts
│ │ │ │ ├── SceneMediatorHandler.ts
│ │ │ │ ├── SceneMediatorManager.ts
│ │ │ │ ├── SceneMediatorMap.ts
│ │ │ │ ├── ViewMediator.ts
│ │ │ │ ├── ViewMediatorFactory.ts
│ │ │ │ ├── ViewMediatorHandler.ts
│ │ │ │ ├── ViewMediatorManager.ts
│ │ │ │ └── ViewMediatorMap.ts
│ │ │ └── viewManager
│ │ │ ├── SceneManagerExtension.ts
│ │ │ ├── SceneManagerObserverExtension.ts
│ │ │ ├── api
│ │ │ ├── ISceneHandler.ts
│ │ │ ├── ISceneManager.ts
│ │ │ └── IViewHandler.ts
│ │ │ └── impl
│ │ │ ├── ConfigureSceneEvent.ts
│ │ │ ├── ConfigureViewEvent.ts
│ │ │ ├── SceneManager.ts
│ │ │ ├── SceneManagerBinding.ts
│ │ │ ├── SceneManagerBindingEvent.ts
│ │ │ ├── SceneManagerEvent.ts
│ │ │ ├── SceneManagerObserver.ts
│ │ │ ├── SceneRegistry.ts
│ │ │ └── SceneRegistryEvent.ts
│ ├── static
│ │ ├── images
│ │ │ ├── koreez.jpg
│ │ │ ├── loading.gif
│ │ │ ├── phaser-logo.png
│ │ │ └── robotlegs.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ ├── example.css
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── phaser
│ │ │ │ │ └── phaserBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ ├── contextStateManager
│ │ │ │ ├── contextSceneManagerExtension.test.ts
│ │ │ │ ├── impl
│ │ │ │ │ ├── contextSceneManager.test.ts
│ │ │ │ │ └── contextSceneManagerListenerConfig.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ │ └── LogParams.ts
│ │ │ │ ├── localEventEmitterMap
│ │ │ │ ├── impl
│ │ │ │ │ ├── eventEmitterMap.test.ts
│ │ │ │ │ └── eventEmitterMapConfig.test.ts
│ │ │ │ └── localEventEmitterMapExtension.test.ts
│ │ │ │ └── viewManager
│ │ │ │ ├── impl
│ │ │ │ ├── configureSceneEvent.test.ts
│ │ │ │ ├── configureViewEvent.test.ts
│ │ │ │ ├── sceneBindingEvent.test.ts
│ │ │ │ ├── sceneManagerBinding.test.ts
│ │ │ │ └── sceneManagerEvent.test.ts
│ │ │ │ └── support
│ │ │ │ ├── CallbackSceneHandler.ts
│ │ │ │ ├── CallbackViewHandler.ts
│ │ │ │ ├── MockGame.ts
│ │ │ │ ├── MockScene.ts
│ │ │ │ └── MockView.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── pixi-palidor
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── deploy-example.sh
│ ├── example
│ │ ├── Game.ts
│ │ ├── components
│ │ │ └── ColorButton.ts
│ │ ├── config
│ │ │ └── ExampleConfig.ts
│ │ ├── index.ts
│ │ ├── mediators
│ │ │ ├── FloatingViewMediator.ts
│ │ │ ├── PalidorViewMediator.ts
│ │ │ └── RobotlegsViewMediator.ts
│ │ ├── tsconfig.json
│ │ └── views
│ │ │ ├── AbstractView.ts
│ │ │ ├── FloatingView.ts
│ │ │ ├── PalidorView.ts
│ │ │ └── RobotlegsView.ts
│ ├── karma.conf.js
│ ├── media
│ │ └── layers.png
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── palidor
│ │ │ │ └── PalidorBundle.ts
│ │ │ └── extensions
│ │ │ └── palidorPixi
│ │ │ ├── PalidorPixiExtension.ts
│ │ │ ├── api
│ │ │ ├── IContainerController.ts
│ │ │ ├── IFlowManager.ts
│ │ │ └── IFlowViewMapping.ts
│ │ │ ├── events
│ │ │ └── PalidorEvent.ts
│ │ │ └── impl
│ │ │ ├── FlowManager.ts
│ │ │ ├── FlowViewMapping.ts
│ │ │ └── PixiContainerController.ts
│ ├── static
│ │ ├── images
│ │ │ ├── loading.gif
│ │ │ ├── palidor.png
│ │ │ ├── pixijs-v6-logo.png
│ │ │ └── robotlegsjs.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ ├── example.css
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── palidor
│ │ │ │ │ └── palidorBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ └── palidorPixi
│ │ │ │ ├── impl
│ │ │ │ ├── flowManager.test.ts
│ │ │ │ ├── flowViewMapping.test.ts
│ │ │ │ ├── palidorEvent.test.ts
│ │ │ │ └── pixiContainerController.test.ts
│ │ │ │ ├── palidorPixiExtension.test.ts
│ │ │ │ └── support
│ │ │ │ └── Utils.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── pixi-signalmediator
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ └── extensions
│ │ │ └── signalMediator
│ │ │ ├── SignalMediatorExtension.ts
│ │ │ ├── api
│ │ │ └── ISignalMap.ts
│ │ │ └── impl
│ │ │ ├── SignalMap.ts
│ │ │ └── SignalMediator.ts
│ ├── test
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ └── extensions
│ │ │ │ └── signalMediator
│ │ │ │ ├── impl
│ │ │ │ ├── signalMap.test.ts
│ │ │ │ └── signalMediator.test.ts
│ │ │ │ ├── signalMediatorExtension.test.ts
│ │ │ │ └── support
│ │ │ │ └── TestMediator.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
├── pixi
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── deploy-example.sh
│ ├── example
│ │ ├── Game.ts
│ │ ├── config
│ │ │ └── MyConfig.ts
│ │ ├── index.ts
│ │ ├── mediator
│ │ │ ├── RobotlegsMediator.ts
│ │ │ └── SmileyMediator.ts
│ │ ├── tsconfig.json
│ │ └── view
│ │ │ ├── RobotlegsView.ts
│ │ │ └── SmileyView.ts
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ ├── bundles
│ │ │ └── pixi
│ │ │ │ └── PixiBundle.ts
│ │ │ └── extensions
│ │ │ ├── contextView
│ │ │ ├── ContextViewExtension.ts
│ │ │ ├── api
│ │ │ │ └── IContextView.ts
│ │ │ ├── impl
│ │ │ │ ├── ContextView.ts
│ │ │ │ └── ContextViewListenerConfig.ts
│ │ │ └── pixiPatch
│ │ │ │ └── pixi-patch.ts
│ │ │ ├── mediatorMap
│ │ │ ├── MediatorMapExtension.ts
│ │ │ ├── api
│ │ │ │ ├── IMediator.ts
│ │ │ │ ├── IMediatorMap.ts
│ │ │ │ └── IMediatorMapping.ts
│ │ │ ├── dsl
│ │ │ │ ├── IMediatorConfigurator.ts
│ │ │ │ ├── IMediatorMapper.ts
│ │ │ │ └── IMediatorUnmapper.ts
│ │ │ └── impl
│ │ │ │ ├── Mediator.ts
│ │ │ │ ├── MediatorFactory.ts
│ │ │ │ ├── MediatorManager.ts
│ │ │ │ ├── MediatorMap.ts
│ │ │ │ ├── MediatorMapper.ts
│ │ │ │ ├── MediatorMapping.ts
│ │ │ │ ├── MediatorViewHandler.ts
│ │ │ │ └── NullMediatorUnmapper.ts
│ │ │ └── viewManager
│ │ │ ├── StageCrawlerExtension.ts
│ │ │ ├── StageObserverExtension.ts
│ │ │ ├── ViewManagerExtension.ts
│ │ │ ├── api
│ │ │ ├── IViewHandler.ts
│ │ │ └── IViewManager.ts
│ │ │ ├── impl
│ │ │ ├── ContainerBinding.ts
│ │ │ ├── ContainerBindingEvent.ts
│ │ │ ├── ContainerRegistry.ts
│ │ │ ├── ContainerRegistryEvent.ts
│ │ │ ├── StageCrawler.ts
│ │ │ ├── StageObserver.ts
│ │ │ ├── ViewManager.ts
│ │ │ └── ViewManagerEvent.ts
│ │ │ └── support
│ │ │ └── contains.ts
│ ├── static
│ │ ├── images
│ │ │ ├── loading.gif
│ │ │ ├── pixijs-v6-logo.png
│ │ │ └── robotlegs.png
│ │ ├── index-template.html
│ │ ├── manifest.json
│ │ ├── scripts
│ │ │ └── cache-polyfill.js
│ │ ├── service-worker.js
│ │ └── styles
│ │ │ ├── example.css
│ │ │ └── main.css
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ ├── bundles
│ │ │ │ └── pixi
│ │ │ │ │ └── pixiBundle.test.ts
│ │ │ │ └── extensions
│ │ │ │ ├── contextView
│ │ │ │ ├── contextViewExtension.test.ts
│ │ │ │ ├── impl
│ │ │ │ │ ├── contextView.test.ts
│ │ │ │ │ └── contextViewListenerConfig.test.ts
│ │ │ │ ├── pixiPatch
│ │ │ │ │ └── pixiPatch.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── CallbackLogTarget.ts
│ │ │ │ │ └── LogParams.ts
│ │ │ │ ├── mediatorMap
│ │ │ │ ├── impl
│ │ │ │ │ ├── mediatorFactory.test.ts
│ │ │ │ │ ├── mediatorManager.test.ts
│ │ │ │ │ ├── mediatorMap.test.ts
│ │ │ │ │ ├── mediatorMapPreload.test.ts
│ │ │ │ │ ├── mediatorMapper.test.ts
│ │ │ │ │ └── mediatorViewHandler.test.ts
│ │ │ │ ├── mediatorMapExtension.test.ts
│ │ │ │ └── support
│ │ │ │ │ ├── Alpha50PercentHook.ts
│ │ │ │ │ ├── CallbackHook.ts
│ │ │ │ │ ├── CallbackMediator.ts
│ │ │ │ │ ├── EmptyMediator.ts
│ │ │ │ │ ├── ExampleMediator.ts
│ │ │ │ │ ├── ExampleMediator2.ts
│ │ │ │ │ ├── ExampleSpriteMediator.ts
│ │ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ │ ├── HappyGuard.ts
│ │ │ │ │ ├── HookWithMediatorAndViewInjectionReportFunction.ts
│ │ │ │ │ ├── InjectedMediator.ts
│ │ │ │ │ ├── LifecycleReportingMediator.ts
│ │ │ │ │ ├── MediatorHook.ts
│ │ │ │ │ ├── MediatorWatcher.ts
│ │ │ │ │ ├── NotAView.ts
│ │ │ │ │ ├── NotAViewMediator.ts
│ │ │ │ │ ├── NullMediator.ts
│ │ │ │ │ ├── NullMediator2.ts
│ │ │ │ │ ├── OnlyIfViewHasChildrenGuard.ts
│ │ │ │ │ ├── RectangleMediator.ts
│ │ │ │ │ ├── ViewInjectedAsRequestedMediator.ts
│ │ │ │ │ └── ViewInjectedMediator.ts
│ │ │ │ └── viewManager
│ │ │ │ ├── impl
│ │ │ │ ├── containerBinding.test.ts
│ │ │ │ ├── containerBindingEvent.test.ts
│ │ │ │ ├── containerRegistry.test.ts
│ │ │ │ ├── containerRegistryEvent.test.ts
│ │ │ │ ├── contains.test.ts
│ │ │ │ ├── stageCrawler.test.ts
│ │ │ │ ├── stageObserver.test.ts
│ │ │ │ ├── viewManager.test.ts
│ │ │ │ └── viewManagerEvent.test.ts
│ │ │ │ ├── stageCrawlerExtension.test.ts
│ │ │ │ ├── stageObserverExtension.test.ts
│ │ │ │ ├── support
│ │ │ │ ├── CallbackViewHandler.ts
│ │ │ │ └── TreeContainer.ts
│ │ │ │ └── viewManagerExtension.test.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.example.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ ├── webpack.config.js
│ └── webpack.example.config.js
├── signalcommandmap
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ │ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ │ └── rush-project.json
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ │ ├── index.ts
│ │ └── robotlegs
│ │ │ └── bender
│ │ │ └── extensions
│ │ │ └── signalCommandMap
│ │ │ ├── SignalCommandMapExtension.ts
│ │ │ ├── api
│ │ │ └── ISignalCommandMap.ts
│ │ │ └── impl
│ │ │ ├── SignalCommandMap.ts
│ │ │ └── SignalCommandTrigger.ts
│ ├── test
│ │ ├── README.md
│ │ ├── entry.ts
│ │ ├── index.ts
│ │ ├── robotlegs
│ │ │ └── bender
│ │ │ │ └── extensions
│ │ │ │ └── signalCommandMap
│ │ │ │ ├── impl
│ │ │ │ ├── signalCommandMap.test.ts
│ │ │ │ ├── signalCommandMapIntegration.test.ts
│ │ │ │ └── signalCommandTrigger.test.ts
│ │ │ │ ├── signalCommandMapExtension.test.ts
│ │ │ │ └── support
│ │ │ │ ├── CallbackCommand.ts
│ │ │ │ ├── CallbackParametersCommand.ts
│ │ │ │ ├── CascadingCommand.ts
│ │ │ │ ├── Data.ts
│ │ │ │ ├── ExecuteMethodWithParametersCommand.ts
│ │ │ │ ├── GrumpyGuard.ts
│ │ │ │ ├── HappyGuard.ts
│ │ │ │ ├── NullCommand.ts
│ │ │ │ ├── ParametersSignal.ts
│ │ │ │ ├── Payload.ts
│ │ │ │ ├── PayloadInjectedCallbackCommand.ts
│ │ │ │ ├── PayloadInjectedGuard.ts
│ │ │ │ ├── PayloadInjectedHook.ts
│ │ │ │ ├── RelayCommand.ts
│ │ │ │ ├── RelaySignal.ts
│ │ │ │ ├── ReportingCommand.ts
│ │ │ │ ├── ReportingCommand2.ts
│ │ │ │ ├── ReportingCommand3.ts
│ │ │ │ ├── ReportingGuard.ts
│ │ │ │ ├── ReportingGuard2.ts
│ │ │ │ ├── ReportingHook.ts
│ │ │ │ ├── StrictPayloadCarryingSignal.ts
│ │ │ │ ├── SupportSignal.ts
│ │ │ │ ├── SupportSignal2.ts
│ │ │ │ ├── TargetCommand.ts
│ │ │ │ └── TargetSignal.ts
│ │ └── tsconfig.json
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
└── signals
│ ├── .eslintrc.js
│ ├── .istanbul.yml
│ ├── .mocharc.json
│ ├── .vscode
│ └── settings.json
│ ├── CHANGELOG.json
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── config
│ └── rush-project.json
│ ├── dist
│ └── signals.min.js
│ ├── karma.conf.js
│ ├── package.json
│ ├── src
│ ├── index.ts
│ └── org
│ │ └── osflash
│ │ └── signals
│ │ ├── DeluxeSignal.ts
│ │ ├── IOnceSignal.ts
│ │ ├── IPrioritySignal.ts
│ │ ├── ISignal.ts
│ │ ├── ISlot.ts
│ │ ├── MonoSignal.ts
│ │ ├── OnceSignal.ts
│ │ ├── PrioritySignal.ts
│ │ ├── Promise.ts
│ │ ├── Signal.ts
│ │ ├── Slot.ts
│ │ ├── SlotList.ts
│ │ └── events
│ │ ├── GenericEvent.ts
│ │ ├── IBubbleEventHandler.ts
│ │ └── IEvent.ts
│ ├── test
│ ├── README.md
│ ├── entry.ts
│ ├── index.ts
│ ├── mock
│ │ ├── MockEvent.ts
│ │ ├── MockMouseEvent.ts
│ │ └── Sprite.ts
│ ├── org
│ │ └── osflash
│ │ │ └── signals
│ │ │ ├── AmbiguousRelationshipTest.test.ts
│ │ │ ├── DeluxeSignalTargetTest.test.ts
│ │ │ ├── DeluxeSignalValueClassesTest.test.ts
│ │ │ ├── DeluxeSignalWithBubblingEventTest.test.ts
│ │ │ ├── DeluxeSignalWithGenericEventTest.test.ts
│ │ │ ├── GenericEventTest.test.ts
│ │ │ ├── MonoSignalDispatchArgsTest.test.ts
│ │ │ ├── MonoSignalDispatchExtraArgsTest.test.ts
│ │ │ ├── MonoSignalDispatchNoArgsTest.test.ts
│ │ │ ├── MonoSignalDispatchNonEventTest.test.ts
│ │ │ ├── MonoSignalDispatchVarArgsTest.test.ts
│ │ │ ├── MonoSignalSlotTest.test.ts
│ │ │ ├── MonoSignalTest.test.ts
│ │ │ ├── MonoSignalValueClassesTest.test.ts
│ │ │ ├── PriorityListenersTest.test.ts
│ │ │ ├── PrioritySignalOnceTest.test.ts
│ │ │ ├── PrioritySignalTest.test.ts
│ │ │ ├── PromiseTest.test.ts
│ │ │ ├── RedispatchedEventTest.test.ts
│ │ │ ├── SignalDispatchArgsTest.test.ts
│ │ │ ├── SignalDispatchExtraArgsTest.test.ts
│ │ │ ├── SignalDispatchNoArgsTest.test.ts
│ │ │ ├── SignalDispatchNonEventTest.test.ts
│ │ │ ├── SignalDispatchVarArgsTest.test.ts
│ │ │ ├── SignalTest.test.ts
│ │ │ ├── SignalTestBase.test.ts
│ │ │ ├── SignalWithCustomEventTest.test.ts
│ │ │ ├── SlotListTest.test.ts
│ │ │ ├── SlotPauseResumeTest.test.ts
│ │ │ ├── SlotTest.test.ts
│ │ │ ├── SlotTestBase.test.ts
│ │ │ └── support
│ │ │ ├── Base.ts
│ │ │ ├── BubbleHater.ts
│ │ │ ├── Child.ts
│ │ │ ├── Inherited1.ts
│ │ │ ├── Inherited2.ts
│ │ │ └── MessageEvent.ts
│ ├── tsconfig.json
│ └── util
│ │ ├── AsyncUtil.ts
│ │ └── TestBase.ts
│ ├── tsconfig.eslint.json
│ ├── tsconfig.json
│ ├── tsconfig.test.json
│ └── webpack.config.js
└── rush.json
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | end_of_line = lf
5 | charset = utf-8
6 | trim_trailing_whitespace = true
7 | indent_style = space
8 | indent_size = 4
9 |
10 | [*.{ts}]
11 | indent_style = space
12 | indent_size = 4
13 |
14 | [*.{js,json}]
15 | indent_style = space
16 | indent_size = 2
17 |
18 | [{.auditignore,.codeclimate.yml,.eslintignore,.eslintrc,.istanbul.yml,.prettierrc,.publishrc,.travis.yml}]
19 | indent_style = space
20 | indent_size = 2
21 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | tidelift: "npm/@robotlegsjs/core"
2 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: "👉 READ FIRST: Contributing to RobotlegsJS"
4 | about: Instructions for building the projects, debugging, and submitting a PR.
5 | url: https://github.com/RobotlegsJS/RobotlegsJS-Framework/tree/master/.github/CONTRIBUTING.md
6 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"]
3 | }
4 |
--------------------------------------------------------------------------------
/common/autoinstallers/rush-prettier/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "rush-prettier",
3 | "version": "1.0.0",
4 | "private": true,
5 | "dependencies": {
6 | "prettier": "^2.6.2",
7 | "pretty-quick": "^3.1.3"
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/common/config/rush/nonbrowser-approved-packages.json:
--------------------------------------------------------------------------------
1 | // DO NOT ADD COMMENTS IN THIS FILE. They will be lost when the Rush tool resaves it.
2 | {
3 | "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/approved-packages.schema.json",
4 | "packages": []
5 | }
6 |
--------------------------------------------------------------------------------
/common/config/rush/repo-state.json:
--------------------------------------------------------------------------------
1 | // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush.
2 | {
3 | "pnpmShrinkwrapHash": "fbf4fade2b6617a8265ad2ccb22bdca4deb0a3cf"
4 | }
5 |
--------------------------------------------------------------------------------
/common/git-hooks/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Called by "git commit" with no arguments. The hook should
3 | # exit with non-zero status after issuing an appropriate message if
4 | # it wants to stop the commit.
5 |
6 | # Invoke the "rush prettier" custom command to reformat files whenever they
7 | # are committed. The command is defined in common/config/rush/command-line.json
8 | # and uses the "rush-prettier" autoinstaller.
9 | node common/scripts/install-run-rush.js prettier || exit $?
10 |
--------------------------------------------------------------------------------
/games/battleship/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/buttons/button_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/buttons/button_background.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/buttons/icon_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/buttons/icon_home.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/buttons/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/buttons/icon_pause.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/buttons/icon_resume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/buttons/icon_resume.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/buttons/icon_retry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/buttons/icon_retry.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/others/logo_battleship.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/others/logo_battleship.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/others/logo_setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/others/logo_setzer.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/ships/ship_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/ships/ship_2.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/ships/ship_3_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/ships/ship_3_1.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/ships/ship_3_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/ships/ship_3_2.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/ships/ship_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/ships/ship_4.png
--------------------------------------------------------------------------------
/games/battleship/assets/atlas/ships/ship_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/atlas/ships/ship_5.png
--------------------------------------------------------------------------------
/games/battleship/assets/battleship-pixijs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/battleship-pixijs.png
--------------------------------------------------------------------------------
/games/battleship/assets/fonts/SimpleSmallPixel7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/fonts/SimpleSmallPixel7.png
--------------------------------------------------------------------------------
/games/battleship/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/battleship/media/battleship_ss_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/battleship/media/battleship_ss_01.png
--------------------------------------------------------------------------------
/games/battleship/src/battleship/events/FlowEvent.ts:
--------------------------------------------------------------------------------
1 | import { Event } from "@robotlegsjs/core";
2 |
3 | export class FlowEvent extends Event {
4 | public static SHOW_INTRO_VIEW: string = "showIntroView";
5 | public static SHOW_GAME_VIEW: string = "showGameView";
6 | public static SHOW_HOME_VIEW: string = "showHomeView";
7 |
8 | public static SHOW_GAME_OVER_POPUP: string = "showGameOverPopup";
9 | public static SHOW_YOU_WIN_POPUP: string = "showYouWinPopup";
10 | public static SHOW_PAUSE_POPUP: string = "showPausePopup";
11 |
12 | public constructor(type: string) {
13 | super(type);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/game/events/AttackEvent.ts:
--------------------------------------------------------------------------------
1 | import { Event } from "@robotlegsjs/core";
2 |
3 | export class AttackEvent extends Event {
4 | public static SUCCESS: string = "success";
5 | public static FAIL: string = "fail";
6 |
7 | public constructor(type: string) {
8 | super(type);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/game/models/LevelModel.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { BattleField } from "./BattleField";
3 |
4 | @injectable()
5 | export class LevelModel {
6 | public hero: BattleField;
7 | public enemy: BattleField;
8 | }
9 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/game/models/Player.ts:
--------------------------------------------------------------------------------
1 | export class Player {
2 | public static ENEMY: string = "ENEMY";
3 | public static HERO: string = "HERO";
4 | }
5 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/game/models/Tile.ts:
--------------------------------------------------------------------------------
1 | export class Tile {
2 | public static HITTED: number = -1;
3 | public static BLANKED: number = 0;
4 |
5 | public col: number;
6 | public row: number;
7 |
8 | public constructor(col: number = 0, row: number = 0) {
9 | this.col = col;
10 | this.row = row;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/utils/IsoUtils.ts:
--------------------------------------------------------------------------------
1 | export class IsoUtils {
2 | public static toIso(col: number, row: number): any {
3 | let base = 16;
4 | let x = base * col - base * row;
5 | let y = (base * col + base * row) / 2;
6 | return { x, y };
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/utils/Texts.ts:
--------------------------------------------------------------------------------
1 | export class Texts {
2 | public static DEVELOPER: string = "RONALDO SANTIAGO";
3 | /* Displays */
4 | public static ENEMY: string = "Enemy";
5 | public static HERO: string = "Hero";
6 | /* Texts */
7 | public static MAX_COLS: string = "Cols:";
8 | public static MAX_ROWS: string = "Rows:";
9 |
10 | public static GAME_OVER: string = "Game Over";
11 | public static PAUSED: string = "Paused";
12 | public static YOU_WIN: string = "You Win !!";
13 | public static WIN_MSG: string = "Congratulations\non Winning\nthis battle!";
14 | }
15 |
--------------------------------------------------------------------------------
/games/battleship/src/battleship/views/components/EnemyTileDisplay.ts:
--------------------------------------------------------------------------------
1 | import { TileDisplay } from "./TileDisplay";
2 |
3 | export class EnemyTileDisplay extends TileDisplay {
4 | private _enabled: boolean;
5 |
6 | public set enabled(value: boolean) {
7 | this.interactive = value;
8 | this.buttonMode = value;
9 | this._enabled = value;
10 | }
11 |
12 | public get enabled(): boolean {
13 | return this._enabled;
14 | }
15 |
16 | public constructor(tileId: number, col: number, row: number) {
17 | super(tileId, col, row);
18 | this.enabled = true;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/games/battleship/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | let game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/battleship/test/battleship/game/models/Player.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from "chai";
2 | import { Player } from "../../../../src/battleship/game/models/Player";
3 | import "../../../entry";
4 |
5 | describe("Player", () => {
6 | context("constants", () => {
7 | it("should exist the constants HERO and ENEMY", () => {
8 | assert.exists(Player.HERO);
9 | assert.exists(Player.ENEMY);
10 | });
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/games/battleship/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "es6-map/implement";
12 | import "es6-symbol/implement";
13 |
--------------------------------------------------------------------------------
/games/battleship/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/games/battleship/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/games/battleship/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/battleship/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/match3/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/match3/assets/BerlinSansDemi_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/BerlinSansDemi_1.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_medium_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_medium_down.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_medium_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_medium_up.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_small_danger_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_small_danger_down.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_small_danger_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_small_danger_up.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_small_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_small_down.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/button_small_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/button_small_up.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_close.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_close.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_config.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_config.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_confirm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_confirm.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_delete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_delete.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_home.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_level_select.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_level_select.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_pause.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_resume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_resume.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/icon_retry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/icon_retry.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/buttons/level_select_small_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/buttons/level_select_small_star.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/logo_matchthree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/logo_matchthree.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/logo_setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/logo_setzer.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/popup_star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/popup_star.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_00.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_01.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_02.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_03.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_04.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_05.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_06.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_07.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_08.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_09.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/displays/star_hud_display_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/displays/star_hud_display_10.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_1.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_2.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_3.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_4.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_5.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_col_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_col_6.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_1.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_2.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_3.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_4.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_5.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_normal_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_normal_6.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_rainbow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_rainbow.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_1.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_2.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_3.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_4.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_5.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/game/piece_row_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/game/piece_row_6.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/matchthree-pixijs-atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/matchthree-pixijs-atlas.png
--------------------------------------------------------------------------------
/games/match3/assets/atlas/matchthree-starling-atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/atlas/matchthree-starling-atlas.png
--------------------------------------------------------------------------------
/games/match3/assets/backgrounds/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/backgrounds/background.png
--------------------------------------------------------------------------------
/games/match3/assets/backgrounds/background_hud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/backgrounds/background_hud.png
--------------------------------------------------------------------------------
/games/match3/assets/backgrounds/background_popup.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/backgrounds/background_popup.png
--------------------------------------------------------------------------------
/games/match3/assets/fonts/BerlinSansDemi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/fonts/BerlinSansDemi.png
--------------------------------------------------------------------------------
/games/match3/assets/gimp/assets.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/gimp/assets.xcf
--------------------------------------------------------------------------------
/games/match3/assets/gimp/stars.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/gimp/stars.xcf
--------------------------------------------------------------------------------
/games/match3/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/match3/assets/matchthree-pixijs-atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/assets/matchthree-pixijs-atlas.png
--------------------------------------------------------------------------------
/games/match3/media/gif_match3_ts_demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/gif_match3_ts_demo.gif
--------------------------------------------------------------------------------
/games/match3/media/img_cover_match3_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_cover_match3_ts.png
--------------------------------------------------------------------------------
/games/match3/media/img_game_match3_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_game_match3_ts.png
--------------------------------------------------------------------------------
/games/match3/media/img_ss_match3_ts_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_ss_match3_ts_01.png
--------------------------------------------------------------------------------
/games/match3/media/img_ss_match3_ts_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_ss_match3_ts_02.png
--------------------------------------------------------------------------------
/games/match3/media/img_ss_match3_ts_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_ss_match3_ts_03.png
--------------------------------------------------------------------------------
/games/match3/media/img_ss_match3_ts_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/match3/media/img_ss_match3_ts_04.png
--------------------------------------------------------------------------------
/games/match3/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | const game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/displays/BlankedCell.ts:
--------------------------------------------------------------------------------
1 | import { Graphics } from "pixi.js";
2 | import { Tile } from "../models/Tile";
3 |
4 | export class BlankedCell extends Graphics {
5 | public constructor() {
6 | super();
7 | this.beginFill(0xffffff);
8 | this.drawRect(0, 0, Tile.TILE_WIDTH, Tile.TILE_HEIGHT);
9 | this.alpha = 0.3;
10 | this.pivot.x = this.width * 0.5;
11 | this.pivot.y = this.height * 0.5;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/models/Tile.ts:
--------------------------------------------------------------------------------
1 | export class Tile {
2 | public static TILE_WIDTH: number = 36;
3 | public static TILE_HEIGHT: number = 36;
4 |
5 | public col: number;
6 | public row: number;
7 |
8 | public constructor(col: number = 0, row: number = 0) {
9 | this.col = col;
10 | this.row = row;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/models/TouchPhase.ts:
--------------------------------------------------------------------------------
1 | export class TouchPhase {
2 | public static BEGAN: string = "mousedown";
3 | public static ENDED: string = "mouseup";
4 | }
5 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/utils/PieceIds.ts:
--------------------------------------------------------------------------------
1 | export class PieceIds {
2 | public static EMPTY: number = 0;
3 |
4 | public static BLUE: number = 1;
5 | public static GREEN: number = 2;
6 | public static ORANGE: number = 3;
7 | public static YELLOW: number = 4;
8 | public static PINK: number = 5;
9 | public static LIGHT_BLUE: number = 6;
10 |
11 | public static RAINBOW: number = 7;
12 |
13 | public static ALL_NORMAL_IDS: number[] = [
14 | PieceIds.BLUE,
15 | PieceIds.ORANGE,
16 | PieceIds.GREEN,
17 | PieceIds.YELLOW,
18 | PieceIds.PINK,
19 | PieceIds.LIGHT_BLUE
20 | ];
21 | }
22 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/utils/PieceType.ts:
--------------------------------------------------------------------------------
1 | export class PieceType {
2 | public static EMPTY: string = "empty";
3 |
4 | public static NORMAL: string = "normal";
5 | public static ROW: string = "row";
6 | public static COL: string = "col";
7 | public static RAINBOW: string = "rainbow";
8 | }
9 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/game/utils/ScoreUtils.ts:
--------------------------------------------------------------------------------
1 | export class ScoreUtils {
2 | public static getNumStars(score: number, scoreStars: number[]): number {
3 | let numStars = 0;
4 | for (const scoreStar of scoreStars) {
5 | if (score >= scoreStar) {
6 | numStars++;
7 | }
8 | }
9 | return numStars;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/mediators/GameViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { GameView } from "../views/GameView";
4 |
5 | @injectable()
6 | export class GameViewMediator extends Mediator {
7 | public initialize(): void {
8 | this.view.createComponents();
9 | }
10 |
11 | public destroy(): void {
12 | this.view.destroy();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/games/match3/src/matchthree/utils/ViewPortSize.ts:
--------------------------------------------------------------------------------
1 | export class ViewPortSize {
2 | public static MAX_WIDTH: number = 340;
3 | public static MAX_HEIGHT: number = 480;
4 | public static HALF_WIDTH: number = 170;
5 | public static HALF_HEIGHT: number = 240;
6 | }
7 |
--------------------------------------------------------------------------------
/games/match3/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "es6-map/implement";
12 | import "es6-symbol/implement";
13 |
--------------------------------------------------------------------------------
/games/match3/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/games/match3/test/matchthree/game/models/Tile.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from "chai";
2 | import { Tile } from "../../../../src/matchthree/game/models/Tile";
3 | import "../../../entry";
4 |
5 | describe("Tile", () => {
6 | it("Constructor", () => {
7 | const col = 5;
8 | const row = 6;
9 | const tile = new Tile(col, row);
10 | assert.equal(col, tile.col);
11 | assert.equal(row, tile.row);
12 | });
13 |
14 | it("Constructor: Default Values", () => {
15 | const tile = new Tile();
16 | assert.equal(0, tile.col);
17 | assert.equal(0, tile.row);
18 | });
19 | });
20 |
--------------------------------------------------------------------------------
/games/match3/test/matchthree/utils/AtlasKeys.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from "chai";
2 | import { Sprite, TilingSprite } from "pixi.js";
3 | import { AtlasKeys } from "../../../src/matchthree/utils/AtlasKeys";
4 | import "../../entry";
5 |
6 | describe("AtlasKeys", () => {
7 | it("GetTexture", () => {
8 | const key = "./assets/atlas/game/piece_normal_3.png";
9 | const sprite: Sprite = TilingSprite.from(key, { width: 36, height: 36 });
10 | const textureCache: any = { "./assets/atlas/game/piece_normal_3.png": sprite.texture };
11 | AtlasKeys.update(textureCache);
12 | assert.equal(sprite.texture, AtlasKeys.getTexture(key));
13 | });
14 | });
15 |
--------------------------------------------------------------------------------
/games/match3/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/games/match3/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/match3/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/minesweeper/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/buttons/button_background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/buttons/button_background.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/buttons/icon_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/buttons/icon_home.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/buttons/icon_pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/buttons/icon_pause.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/buttons/icon_resume.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/buttons/icon_resume.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/buttons/icon_retry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/buttons/icon_retry.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/others/icon_flag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/others/icon_flag.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/others/icon_flag_large.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/others/icon_flag_large.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/others/icon_mine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/others/icon_mine.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/others/logo_minesweeper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/others/logo_minesweeper.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/atlas/others/logo_setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/atlas/others/logo_setzer.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/fonts/SimpleSmallPixel7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/fonts/SimpleSmallPixel7.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/minesweeper/assets/minesweeper-pixijs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/assets/minesweeper-pixijs.png
--------------------------------------------------------------------------------
/games/minesweeper/media/gif_minesweeper_ts_demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/media/gif_minesweeper_ts_demo.gif
--------------------------------------------------------------------------------
/games/minesweeper/media/img_cover_minesweeper_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/media/img_cover_minesweeper_ts.png
--------------------------------------------------------------------------------
/games/minesweeper/media/img_game_minesweeper_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/media/img_game_minesweeper_ts.png
--------------------------------------------------------------------------------
/games/minesweeper/media/img_ss_minesweeper_ts_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/media/img_ss_minesweeper_ts_01.png
--------------------------------------------------------------------------------
/games/minesweeper/media/img_ss_minesweeper_ts_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/minesweeper/media/img_ss_minesweeper_ts_02.png
--------------------------------------------------------------------------------
/games/minesweeper/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | const game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/minesweeper/src/minesweeper/game/models/CustomLevelModel.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { Cell } from "./Cell";
3 |
4 | @injectable()
5 | export class CustomLevelModel {
6 | public maxCols: number;
7 | public maxRows: number;
8 | public numMines: number;
9 |
10 | public mines: Cell[];
11 |
12 | public constructor() {
13 | this.mines = [];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/games/minesweeper/src/minesweeper/mediators/GameViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { GameView } from "../views/GameView";
4 |
5 | @injectable()
6 | export class GameViewMediator extends Mediator {
7 | public initialize(): void {
8 | this.view.createComponents();
9 | }
10 |
11 | public destroy(): void {
12 | this.view.destroy();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/games/minesweeper/src/minesweeper/utils/ViewPortSize.ts:
--------------------------------------------------------------------------------
1 | export class ViewPortSize {
2 | public static MAX_WIDTH: number = 400;
3 | public static MAX_HEIGHT: number = 600;
4 | public static HALF_WIDTH: number = 200;
5 | public static HALF_HEIGHT: number = 300;
6 | }
7 |
--------------------------------------------------------------------------------
/games/minesweeper/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "es6-map/implement";
12 | import "es6-symbol/implement";
13 |
--------------------------------------------------------------------------------
/games/minesweeper/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/games/minesweeper/test/minesweeper/game/models/LevelModel.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from "chai";
2 | import { GridData } from "../../../../src/minesweeper/game/models/GridData";
3 | import { LevelModel } from "../../../../src/minesweeper/game/models/LevelModel";
4 | import "../../../entry";
5 |
6 | describe("LevelModel", () => {
7 | let level: LevelModel;
8 |
9 | beforeEach(() => {
10 | level = new LevelModel();
11 | level.setGrid(new GridData());
12 | });
13 |
14 | afterEach(() => {
15 | level = undefined;
16 | });
17 |
18 | it("SetGrid:", () => {
19 | level.setGrid(new GridData());
20 | assert.notEqual(undefined, level.grid);
21 | });
22 | });
23 |
--------------------------------------------------------------------------------
/games/minesweeper/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/games/minesweeper/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/minesweeper/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/scratchcard/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/scratchcard/assets/atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/atlas.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/bitbucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/bitbucket.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/chai.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/chai.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/git.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/git.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/github.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/github.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/html5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/html5.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/javascript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/javascript.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/mocha.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/mocha.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/node.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/node.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/npm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/npm.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/palidor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/palidor.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/pixijs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/pixijs.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/prettier.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/prettier.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/profile.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/robotlegsjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/robotlegsjs.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/setzer.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/texturepacker.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/texturepacker.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/typescript.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/vscode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/vscode.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/webpack.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/webpack.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/cards/yarn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/cards/yarn.png
--------------------------------------------------------------------------------
/games/scratchcard/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/scratchcard/media/scratchcard.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/scratchcard/media/scratchcard.gif
--------------------------------------------------------------------------------
/games/scratchcard/src/events/FlowEvent.ts:
--------------------------------------------------------------------------------
1 | import { Event } from "@robotlegsjs/core";
2 |
3 | export class FlowEvent extends Event {
4 | public static SHOW_INTRO_VIEW: string = "showIntroView";
5 | public static SHOW_MAIN_VIEW: string = "showMainView";
6 | public static SHOW_FEEDBACK: string = "showFeedback";
7 |
8 | public constructor(type: string) {
9 | super(type);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/games/scratchcard/src/events/GameEvent.ts:
--------------------------------------------------------------------------------
1 | import { Event } from "@robotlegsjs/core";
2 |
3 | export class GameEvent extends Event {
4 | public static START_GAME_COMMAND: string = "startGameCommand";
5 | public static END_GAME_COMMAND: string = "endGameCommand";
6 |
7 | public static START: string = "start";
8 | public static END: string = "end";
9 |
10 | public constructor(type: string) {
11 | super(type);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/games/scratchcard/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | const game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/scratchcard/src/mediators/IntroViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { FlowEvent } from "../events/FlowEvent";
4 | import { IntroView } from "../views/IntroView";
5 |
6 | @injectable()
7 | export class IntroViewMediator extends Mediator {
8 | public initialize(): void {
9 | setTimeout(this._onTimerOut.bind(this), 3000, this);
10 | }
11 |
12 | public destroy(): void {
13 | this.eventMap.unmapListeners();
14 | }
15 |
16 | private _onTimerOut(): void {
17 | this.eventDispatcher.dispatchEvent(new FlowEvent(FlowEvent.SHOW_MAIN_VIEW));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/games/scratchcard/src/mediators/MainViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { MainView } from "../views/MainView";
4 |
5 | @injectable()
6 | export class MainViewMediator extends Mediator {
7 | public initialize(): void {
8 | this.view.createComponents();
9 | }
10 |
11 | public destroy(): void {
12 | this.eventMap.unmapListeners();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/games/scratchcard/src/models/Model.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 |
3 | @injectable()
4 | export class Model {
5 | public attempts: number;
6 | public pressed: boolean;
7 | public prizes: string[];
8 |
9 | public posX: number;
10 | public posY: number;
11 |
12 | public feedback: string;
13 | public matchedPrizes: string[];
14 |
15 | public constructor() {
16 | this.attempts = 25;
17 | this.pressed = false;
18 | }
19 |
20 | public decreaseAttemps(): void {
21 | this.attempts -= 1;
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/games/scratchcard/src/utils/Colors.ts:
--------------------------------------------------------------------------------
1 | export class Colors {
2 | public static BACKGROUND_DARK: number = 0x204d63;
3 | public static BACKGROUND_LIGHT: number = 0xb5d6e6;
4 |
5 | public static TEXT: number = 0xb5d6e6;
6 | public static TEXT_DARK: number = 0x204d63;
7 |
8 | public static HIGHLIGHT: number = 0xfdb515;
9 | }
10 |
--------------------------------------------------------------------------------
/games/scratchcard/src/utils/MagicValues.ts:
--------------------------------------------------------------------------------
1 | export class MagicValues {
2 | public static MAX_WIDTH: number = 424;
3 | public static MAX_HEIGHT: number = 600;
4 | public static HALF_WIDTH: number = 212;
5 | public static HALF_HEIGHT: number = 300;
6 |
7 | public static HUD_HEIGHT: number = 80;
8 |
9 | public static ITEM_SIZE: number = 133; // 128 + 5;
10 |
11 | public static TILE_SQUARE: number = 32;
12 |
13 | public static SCRATCH_BOX_WIDTH: number = 404;
14 | public static SCRATCH_BOX_HEIGHT: number = 404;
15 | }
16 |
--------------------------------------------------------------------------------
/games/scratchcard/src/utils/Texts.ts:
--------------------------------------------------------------------------------
1 | export class Texts {
2 | public static DEVELOPER: string = "RONALDO SANTIAGO";
3 |
4 | public static PLAY: string = "play";
5 | public static CLEAR_ALL: string = "reveal all";
6 |
7 | public static SUCCESS: string = "Congratulations!!!";
8 | public static FAIL: string = "Better luck next time";
9 |
10 | public static HUD_SCRATCH_REMAINING: string = "Scratch remaining: ";
11 | }
12 |
--------------------------------------------------------------------------------
/games/scratchcard/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/space-invaders/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_cancel_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_cancel_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_cancel_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_cancel_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_config_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_config_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_config_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_config_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_confirm_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_confirm_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_confirm_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_confirm_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_home_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_home_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_home_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_home_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_pause_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_pause_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_pause_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_pause_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_reset_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_reset_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_reset_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_reset_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_resume_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_resume_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_resume_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_resume_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_retry_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_retry_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_retry_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_retry_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_start_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_start_over.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/buttons/button_start_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/buttons/button_start_up.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/displays/cannon_hud.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/displays/cannon_hud.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/displays/logo_setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/displays/logo_setzer.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/displays/logo_spaceinvaders.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/displays/logo_spaceinvaders.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/bullet_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/bullet_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/cannon_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/cannon_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_01_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_01_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_01_frame_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_01_frame_02.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_02_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_02_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_02_frame_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_02_frame_02.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_03_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_03_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_03_frame_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_03_frame_02.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_bonus_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_bonus_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/enemy_bonus_frame_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/enemy_bonus_frame_02.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/explosion_frame_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/explosion_frame_01.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/atlas/game/explosion_frame_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/atlas/game/explosion_frame_02.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/fonts/SimpleSmalPixel7_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/fonts/SimpleSmalPixel7_.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/fonts/SimpleSmallPixel7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/fonts/SimpleSmallPixel7_0.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/space-invaders/assets/spaceinvaders-pixijs-atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/assets/spaceinvaders-pixijs-atlas.png
--------------------------------------------------------------------------------
/games/space-invaders/media/gif_space_invaders_ts_demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/media/gif_space_invaders_ts_demo.gif
--------------------------------------------------------------------------------
/games/space-invaders/media/img_cover_space_invaders_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/media/img_cover_space_invaders_ts.png
--------------------------------------------------------------------------------
/games/space-invaders/media/img_game_space_invaders_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/media/img_game_space_invaders_ts.png
--------------------------------------------------------------------------------
/games/space-invaders/media/img_ss_space_invaders_ts_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/space-invaders/media/img_ss_space_invaders_ts_01.png
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/DecreaseLivesCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameService } from "../services/GameService";
4 |
5 | @injectable()
6 | export class DecreaseLivesCommand implements ICommand {
7 | @inject(GameModel)
8 | private _model: GameModel;
9 |
10 | @inject(GameService)
11 | private _gameService: GameService;
12 |
13 | public execute(): void {
14 | this._model.lives -= 1;
15 | this._gameService.updateHUDData();
16 |
17 | if (this._model.lives === 0) {
18 | this._gameService.gameOver();
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/GameOverCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameStatus } from "../models/GameStatus";
4 | import { FlowService } from "../services/FlowService";
5 |
6 | @injectable()
7 | export class GameOverCommand implements ICommand {
8 | @inject(GameModel)
9 | private _model: GameModel;
10 |
11 | @inject(FlowService)
12 | private _flowService: FlowService;
13 |
14 | public execute(): void {
15 | this._model.status = GameStatus.GAMEOVER;
16 |
17 | this._flowService.showGameOverPopup();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/IncreaaseLevelCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameService } from "../services/GameService";
4 |
5 | @injectable()
6 | export class IncreaseLevelCommand implements ICommand {
7 | @inject(GameModel)
8 | private _model: GameModel;
9 |
10 | @inject(GameService)
11 | private _gameService: GameService;
12 |
13 | public execute(): void {
14 | this._model.level += 1;
15 |
16 | this._gameService.clearBattleField();
17 | this._gameService.updateHUDData();
18 | this._gameService.createLevelCommand();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/IncreasePointsCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameService } from "../services/GameService";
4 |
5 | @injectable()
6 | export class IncreasePointsCommand implements ICommand {
7 | @inject(GameModel)
8 | private _model: GameModel;
9 |
10 | @inject(GameService)
11 | private _gameService: GameService;
12 |
13 | public execute(): void {
14 | this._model.score += 100;
15 |
16 | this._gameService.updateHUDData();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/RetryGameCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameService } from "../services/GameService";
4 |
5 | @injectable()
6 | export class RetryGameCommand implements ICommand {
7 | @inject(GameModel)
8 | private _gameModel: GameModel;
9 |
10 | @inject(GameService)
11 | private _gameService: GameService;
12 |
13 | public execute(): void {
14 | this._gameService.clearBattleField();
15 |
16 | this._gameModel.clear();
17 |
18 | this._gameService.createLevelCommand();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/games/space-invaders/src/commands/StartGameCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameService } from "../services/GameService";
4 |
5 | @injectable()
6 | export class StartGameCommand implements ICommand {
7 | @inject(GameModel)
8 | private _gameModel: GameModel;
9 |
10 | @inject(GameService)
11 | private _gameService: GameService;
12 |
13 | public execute(): void {
14 | this._gameModel.clear();
15 |
16 | this._gameService.clearBattleField();
17 | this._gameService.updateHUDData();
18 | this._gameService.createLevelCommand();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/games/space-invaders/src/game/displays/BulletDisplay.ts:
--------------------------------------------------------------------------------
1 | import { Sprite } from "pixi.js";
2 | import { AtlasKeys } from "../../utils/AtlasKeys";
3 |
4 | export class BulletDisplay extends Sprite {
5 | public constructor() {
6 | super(AtlasKeys.getTexture(AtlasKeys.BULLET));
7 |
8 | this.anchor.x = 0.5;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/games/space-invaders/src/game/displays/CannonDisplay.ts:
--------------------------------------------------------------------------------
1 | import { Sprite } from "pixi.js";
2 | import { AtlasKeys } from "../../utils/AtlasKeys";
3 |
4 | export class CannonDisplay extends Sprite {
5 | public constructor() {
6 | super(AtlasKeys.getTexture(AtlasKeys.CANNON));
7 |
8 | this.anchor.set(0.5);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/games/space-invaders/src/game/entities/Bullet.ts:
--------------------------------------------------------------------------------
1 | import { Entity } from "./Entity";
2 |
3 | export class Bullet extends Entity {
4 | public static ENEMY: number = 0;
5 | public static PlAYER: number = 1;
6 |
7 | public target: number = Bullet.ENEMY;
8 |
9 | public constructor(typeID: number = Entity.BULLET) {
10 | super(typeID);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/games/space-invaders/src/game/utils/Point.ts:
--------------------------------------------------------------------------------
1 | export class Point {
2 | public x: number;
3 | public y: number;
4 |
5 | public constructor(x: number = 0, y: number = 0) {
6 | this.x = x;
7 | this.y = y;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/games/space-invaders/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | const game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/space-invaders/src/mediators/GameViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { inject, injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { GameService } from "../services/GameService";
4 | import { GameView } from "../views/GameView";
5 |
6 | @injectable()
7 | export class GameViewMediator extends Mediator {
8 | @inject(GameService)
9 | private _gameService: GameService;
10 |
11 | public initialize(): void {
12 | this.view.createComponents();
13 | this._gameService.startCommand();
14 | }
15 |
16 | public destroy(): void {
17 | this.view.destroy();
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/games/space-invaders/src/models/GameModel.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 |
3 | @injectable()
4 | export class GameModel {
5 | public hiScore: number;
6 | public score: number;
7 | public level: number;
8 | public lives: number;
9 |
10 | public status: String;
11 |
12 | public constructor() {
13 | this.hiScore = 0;
14 | this.clear();
15 | }
16 |
17 | public clear(): void {
18 | this.level = 1;
19 | this.lives = 3;
20 | this.score = 0;
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/games/space-invaders/src/models/GameStatus.ts:
--------------------------------------------------------------------------------
1 | export class GameStatus {
2 | public static GAME: string = "game";
3 | public static GAMEOVER: string = "gameOver";
4 | }
5 |
--------------------------------------------------------------------------------
/games/space-invaders/src/models/LevelData.ts:
--------------------------------------------------------------------------------
1 | export class LevelData {
2 | public cols: number;
3 | public rows: number;
4 | public map: number[][];
5 |
6 | public constructor(cols: number, rows: number) {
7 | this.cols = cols;
8 | this.rows = rows;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/games/space-invaders/src/utils/Colors.ts:
--------------------------------------------------------------------------------
1 | export class Colors {
2 | public static BACKGROUND: number = 0x307291;
3 | public static BACKGROUND_DARK: number = 0x204d63;
4 |
5 | public static DYNAMIC_TEXT: number = 0xc1ddea;
6 | public static STATIC_TEXT: number = 0x6fb0cf;
7 |
8 | public static GAME_ITEMS: number = 0xb5d6e6;
9 | }
10 |
--------------------------------------------------------------------------------
/games/space-invaders/src/utils/MagicValues.ts:
--------------------------------------------------------------------------------
1 | export class MagicValues {
2 | public static BORDER_OFFSET: number = 18;
3 | public static SHARED_OBJECT_NAME: string = "SpaceInvadersPalidor";
4 | }
5 |
--------------------------------------------------------------------------------
/games/space-invaders/src/utils/SharedObjectManager.ts:
--------------------------------------------------------------------------------
1 | export class SharedObjectManager {}
2 |
--------------------------------------------------------------------------------
/games/space-invaders/src/utils/ViewPortSize.ts:
--------------------------------------------------------------------------------
1 | export class ViewPortSize {
2 | public static MAX_WIDTH: number = 340;
3 | public static MAX_HEIGHT: number = 480;
4 | public static HALF_WIDTH: number = 170;
5 | public static HALF_HEIGHT: number = 240;
6 | }
7 |
--------------------------------------------------------------------------------
/games/space-invaders/src/views/components/BattleFieldComponent.ts:
--------------------------------------------------------------------------------
1 | import { Container } from "pixi.js";
2 |
3 | export class BattleFieldComponent extends Container {
4 | public constructor() {
5 | super();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/games/space-invaders/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/tetris/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/games/tetris/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_cancel_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_cancel_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_cancel_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_cancel_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_config_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_config_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_config_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_config_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_confirm_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_confirm_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_confirm_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_confirm_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_home_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_home_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_home_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_home_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_pause_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_pause_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_pause_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_pause_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_reset_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_reset_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_reset_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_reset_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_resume_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_resume_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_resume_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_resume_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_retry_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_retry_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_retry_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_retry_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_start_over.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_start_over.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/buttons/button_start_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/buttons/button_start_up.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/displays/grid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/displays/grid.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/displays/logo_setzer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/displays/logo_setzer.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/displays/logo_tetris.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/displays/logo_tetris.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/displays/next_tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/displays/next_tile.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_01.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_02.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_03.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_04.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_05.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_06.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_07.png
--------------------------------------------------------------------------------
/games/tetris/assets/atlas/tiles/tile_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/atlas/tiles/tile_08.png
--------------------------------------------------------------------------------
/games/tetris/assets/fonts/SimpleSmalPixel7_.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/fonts/SimpleSmalPixel7_.png
--------------------------------------------------------------------------------
/games/tetris/assets/fonts/SimpleSmallPixel7_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/fonts/SimpleSmallPixel7_0.png
--------------------------------------------------------------------------------
/games/tetris/assets/logo_typescript.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/logo_typescript.png
--------------------------------------------------------------------------------
/games/tetris/assets/tetris-pixijs-atlas.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/assets/tetris-pixijs-atlas.png
--------------------------------------------------------------------------------
/games/tetris/media/gif_tetris_ts_demo.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/media/gif_tetris_ts_demo.gif
--------------------------------------------------------------------------------
/games/tetris/media/img_cover_tetris_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/media/img_cover_tetris_ts.png
--------------------------------------------------------------------------------
/games/tetris/media/img_game_tetris_ts.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/media/img_game_tetris_ts.png
--------------------------------------------------------------------------------
/games/tetris/media/img_ss_tetris_ts_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/games/tetris/media/img_ss_tetris_ts_01.png
--------------------------------------------------------------------------------
/games/tetris/src/commands/GameOverCommand.ts:
--------------------------------------------------------------------------------
1 | import { ICommand, inject, injectable } from "@robotlegsjs/core";
2 | import { GameModel } from "../models/GameModel";
3 | import { GameStatus } from "../models/GameStatus";
4 | import { FlowService } from "../services/FlowService";
5 |
6 | @injectable()
7 | export class GameOverCommand implements ICommand {
8 | @inject(GameModel)
9 | private _model: GameModel;
10 |
11 | @inject(FlowService)
12 | private _flowService: FlowService;
13 |
14 | public execute(): void {
15 | this._model.status = GameStatus.GAMEOVER;
16 | this._flowService.showGameOverPopup();
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/games/tetris/src/index.ts:
--------------------------------------------------------------------------------
1 | import "reflect-metadata";
2 | import { Game } from "./Game";
3 |
4 | const game: Game = new Game();
5 |
6 | game.render();
7 |
--------------------------------------------------------------------------------
/games/tetris/src/mediators/GameViewMediator.ts:
--------------------------------------------------------------------------------
1 | import { inject, injectable } from "@robotlegsjs/core";
2 | import { Mediator } from "@robotlegsjs/pixi";
3 | import { GameService } from "../services/GameService";
4 | import { GameView } from "../views/GameView";
5 |
6 | @injectable()
7 | export class GameViewMediator extends Mediator {
8 | @inject(GameService)
9 | private _gameService: GameService;
10 |
11 | public initialize(): void {
12 | this.view.createComponents();
13 |
14 | this._gameService.createLevel();
15 | }
16 |
17 | public destroy(): void {
18 | this.view.destroy();
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/games/tetris/src/models/GameModel.ts:
--------------------------------------------------------------------------------
1 | import { injectable } from "@robotlegsjs/core";
2 | import { TileGroup } from "./TileGroup";
3 |
4 | @injectable()
5 | export class GameModel {
6 | public score: number;
7 | public level: number;
8 | public lines: number;
9 | public hiScore: number;
10 |
11 | public currentPiece: TileGroup;
12 | public nextPiece: TileGroup;
13 |
14 | public status: string;
15 |
16 | public constructor() {
17 | this.clear();
18 | }
19 |
20 | public clear(): void {
21 | this.score = 0;
22 | this.level = 1;
23 | this.lines = 0;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/games/tetris/src/models/GameStatus.ts:
--------------------------------------------------------------------------------
1 | export class GameStatus {
2 | public static GAME: string = "game";
3 | public static GAMEOVER: string = "gameOver";
4 | }
5 |
--------------------------------------------------------------------------------
/games/tetris/src/utils/Colors.ts:
--------------------------------------------------------------------------------
1 | export class Colors {
2 | public static BACKGROUND: number = 0x307291;
3 | public static BACKGROUND_DARK: number = 0x204d63;
4 |
5 | public static DYNAMIC_TEXT: number = 0xc1ddea;
6 | public static STATIC_TEXT: number = 0x6fb0cf;
7 |
8 | public static GAME_ITEMS: number = 0xb5d6e6;
9 | }
10 |
--------------------------------------------------------------------------------
/games/tetris/src/utils/MagicValues.ts:
--------------------------------------------------------------------------------
1 | export class MagicValues {
2 | public static BORDER_OFFSET: number = 18;
3 | public static SHARED_OBJECT_NAME: String = "TetrisPalidor";
4 | }
5 |
--------------------------------------------------------------------------------
/games/tetris/src/utils/ViewPortSize.ts:
--------------------------------------------------------------------------------
1 | export class ViewPortSize {
2 | public static MAX_WIDTH: number = 340;
3 | public static MAX_HEIGHT: number = 480;
4 | public static HALF_WIDTH: number = 170;
5 | public static HALF_HEIGHT: number = 240;
6 | }
7 |
--------------------------------------------------------------------------------
/games/tetris/src/views/components/GridComponent.ts:
--------------------------------------------------------------------------------
1 | import { Container } from "pixi.js";
2 | import { TilePool } from "../../utils/TilePool";
3 | import { TileDisplay } from "./TileDisplay";
4 |
5 | export class GridComponent extends Container {
6 | public clear(): void {
7 | while (this.children.length > 0) {
8 | if (this.getChildAt(0) instanceof TileDisplay) {
9 | TilePool.back(this.getChildAt(0));
10 | }
11 | this.removeChildAt(0);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/games/tetris/src/views/components/NextPieceComponent.ts:
--------------------------------------------------------------------------------
1 | import { Container } from "pixi.js";
2 |
3 | export class NextPieceComponent extends Container {
4 | public constructor() {
5 | super();
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/games/tetris/src/views/components/TileDisplay.ts:
--------------------------------------------------------------------------------
1 | import { Sprite, Texture } from "pixi.js";
2 |
3 | export class TileDisplay extends Sprite {
4 | private _typeId: number;
5 |
6 | public get typeId(): number {
7 | return this._typeId;
8 | }
9 |
10 | public constructor(texture: Texture, typeId: number) {
11 | super(texture);
12 |
13 | this._typeId = typeId;
14 | }
15 |
16 | public removeFromParent(): void {
17 | this.parent.removeChild(this);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/games/tetris/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
--------------------------------------------------------------------------------
/games/tetris/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/games/tetris/test/models/GameModel.test.ts:
--------------------------------------------------------------------------------
1 | import { assert } from "chai";
2 | import { GameModel } from "../../src/models/GameModel";
3 | import "../entry";
4 |
5 | describe("GameModel", () => {
6 | it("Clear: Returns the values to default", () => {
7 | let model: GameModel = new GameModel();
8 | model.clear();
9 | let result = model.level === 1 && model.lines === 0 && model.score === 0;
10 | assert.isTrue(result);
11 | });
12 | });
13 |
--------------------------------------------------------------------------------
/games/tetris/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/games/tetris/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/games/tetris/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/src/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | export const dummyMethod = (num1: number, num2: number): number => {
9 | return num1 + num2;
10 | };
11 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/robotlegs/bender/utilities/macrobot/support/CallbackNoParametersCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { ICommand, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class CallbackNoParametersCommand implements ICommand {
12 | public execute(): void {}
13 | }
14 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/robotlegs/bender/utilities/macrobot/support/NoParametersSignal.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 | import { Signal } from "@robotlegsjs/signals";
10 |
11 | @injectable()
12 | export class NoParametersSignal extends Signal {}
13 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/integration-tests/macrobot-signalcommandmap/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/core/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/packages/core/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/core/docs/robotlegs/extensions/commandCenter/readme.md:
--------------------------------------------------------------------------------
1 | # CommandCenter
2 |
3 | This extension is used by command based extensions such as the Event Command Map.
4 |
5 | It is not intended to be used directly.
6 |
--------------------------------------------------------------------------------
/packages/core/docs/robotlegs/extensions/vigilance/readme.md:
--------------------------------------------------------------------------------
1 | # Vigilance Extension
2 |
3 | ## Overview
4 |
5 | The Vigilance Extension throws Errors when warnings, errors or fatal messages are logged. This keeps the good times rolling.
--------------------------------------------------------------------------------
/packages/core/docs/robotlegs/framework/readme.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Framework
2 |
3 | - [Context](readme-context.md)
4 | - [Logging](readme-logging.md)
5 | - [Lifecycle](readme-lifecycle.md)
6 | - [Guards](readme-guards.md)
7 | - [Hooks](readme-hooks.md)
8 |
--------------------------------------------------------------------------------
/packages/core/docs/robotlegs/readme.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Overview
2 |
3 | ## Framework
4 |
5 | The Robotlegs framework:
6 |
7 | + Context
8 | + Configuration manager
9 | + Extension installer
10 | + Guards and hooks
11 | + Lifecycle
12 | + Logging
13 |
14 | [Framework](framework)
15 |
16 | ## Extensions
17 |
18 | Robotlegs provides a number of built-in extensions:
19 |
20 | + Command map
21 | + Mediator map
22 | + View manager
23 | + And many more
24 |
25 | [Extensions](extensions)
26 |
27 | ## Bundles
28 |
29 | Extensions are combined into convenient drop-in bundles:
30 |
31 | + MVCS Bundle
32 | + And others
33 |
34 | [Bundles](bundles)
35 |
--------------------------------------------------------------------------------
/packages/core/media/robotlegs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/core/media/robotlegs.png
--------------------------------------------------------------------------------
/packages/core/src/robotlegs/bender/extensions/matching/IClass.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | export type IClass = new (...args: any[]) => T;
9 |
--------------------------------------------------------------------------------
/packages/core/src/robotlegs/bender/extensions/matching/IType.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IClass } from "./IClass";
9 |
10 | export type ISymbol = (description?: string | number) => T;
11 | export type IType = IClass | ISymbol;
12 |
--------------------------------------------------------------------------------
/packages/core/src/robotlegs/bender/framework/api/IBundle.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IExtension } from "./IExtension";
9 |
10 | /**
11 | * A bundle installs a set of Extensions and Configurations into a Context
12 | */
13 | export interface IBundle extends IExtension {}
14 |
--------------------------------------------------------------------------------
/packages/core/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/core/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 | import "jsdom-global";
15 |
--------------------------------------------------------------------------------
/packages/core/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/core/test/robotlegs/bender/extensions/commandCenter/support/NullCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "inversify";
9 |
10 | @injectable()
11 | export class NullCommand {
12 | public execute(): void {}
13 | }
14 |
--------------------------------------------------------------------------------
/packages/core/test/robotlegs/bender/extensions/commandCenter/support/NullCommand2.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "inversify";
9 |
10 | @injectable()
11 | export class NullCommand2 {
12 | public execute(): void {}
13 | }
14 |
--------------------------------------------------------------------------------
/packages/core/test/robotlegs/bender/extensions/commandCenter/support/NullCommand3.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "inversify";
9 |
10 | @injectable()
11 | export class NullCommand3 {
12 | public execute(): void {}
13 | }
14 |
--------------------------------------------------------------------------------
/packages/core/test/robotlegs/bender/framework/impl/objectSupport/TestObject.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | export class TestObject {
9 | public constructor(public name: string) {
10 | this.name = name;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/core/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/core/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/core/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/createjs/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/createjs/deploy-example.sh:
--------------------------------------------------------------------------------
1 | yarn build:example
2 | rm -Rf gh-pages
3 | mkdir -p gh-pages
4 | cd gh-pages
5 | git init .
6 | git remote add origin git@github.com:RobotlegsJS/RobotlegsJS-CreateJS.git
7 | cp -r ../dist/* .
8 | git checkout -b gh-pages
9 | git add .
10 | git commit -m "update example build"
11 | git push origin gh-pages --force
12 |
--------------------------------------------------------------------------------
/packages/createjs/example/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import "reflect-metadata";
9 | import { Game } from "./Game";
10 |
11 | (window).initGame = () => {
12 | let game: Game = new Game();
13 | (window).game = game;
14 | };
15 |
--------------------------------------------------------------------------------
/packages/createjs/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/createjs/src/robotlegs/bender/extensions/contextView/api/IContextView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | // eslint-disable-next-line @rushstack/typedef-var
9 | export const IContextView = Symbol("IContextView");
10 | export interface IContextView {
11 | view: createjs.Stage;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/createjs/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/createjs/static/images/loading.gif
--------------------------------------------------------------------------------
/packages/createjs/static/images/robotlegs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/createjs/static/images/robotlegs.png
--------------------------------------------------------------------------------
/packages/createjs/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Your Game",
3 | "short_name": "Your Game",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "orientation": "landscape",
7 | "icons": [
8 | {
9 | "src": "icon.png",
10 | "sizes": "512x512",
11 | "type": "image/png"
12 | },
13 | {
14 | "src": "launcher-icon-2x.png",
15 | "sizes": "96x96",
16 | "type": "image/png"
17 | },
18 | {
19 | "src": "launcher-icon-3x.png",
20 | "sizes": "144x144",
21 | "type": "image/png"
22 | },
23 | {
24 | "src": "launcher-icon-4x.png",
25 | "sizes": "192x192",
26 | "type": "image/png"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/packages/createjs/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/createjs/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/createjs/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/EmptyMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class EmptyMediator {}
12 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/ExampleView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | export class ExampleView extends createjs.Container {}
9 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/GrumpyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class GrumpyGuard implements IGuard {
12 | public approve(): boolean {
13 | return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/HappyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class HappyGuard implements IGuard {
12 | public approve(): boolean {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/NotAView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NotAView {
12 | public mediatorName: string;
13 | }
14 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator {}
12 |
--------------------------------------------------------------------------------
/packages/createjs/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator2.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator2 {}
12 |
--------------------------------------------------------------------------------
/packages/createjs/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/createjs/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/createjs/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/createjs/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/eventemitter3/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/packages/eventemitter3/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/eventemitter3/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs EventEmitter3 Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/eventemitter3/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/eventemitter3/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/eventemitter3/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/eventemitter3/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/eventemitter3/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/macrobot/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/packages/macrobot/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/macrobot/src/robotlegs/bender/utilities/macrobot/api/IAsyncCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { ICommand } from "@robotlegsjs/core";
9 |
10 | export interface IAsyncCommand extends ICommand {
11 | registerCompleteCallback(callback: Function): void;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/macrobot/src/robotlegs/bender/utilities/macrobot/dsl/ISubCommandUnMapper.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IClass, ICommand } from "@robotlegsjs/core";
9 |
10 | export interface ISubCommandUnMapper {
11 | remove(commandClass: IClass): void;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/macrobot/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/macrobot/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/macrobot/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/macrobot/test/robotlegs/bender/utilities/macrobot/support/GrumpyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class GrumpyGuard implements IGuard {
12 | public approve(): boolean {
13 | return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/macrobot/test/robotlegs/bender/utilities/macrobot/support/HappyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class HappyGuard implements IGuard {
12 | public approve(): boolean {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/macrobot/test/robotlegs/bender/utilities/macrobot/support/NullCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { ICommand, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullCommand implements ICommand {
12 | public execute(): void {
13 | // do nothing
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/macrobot/test/robotlegs/bender/utilities/macrobot/support/NullCommand2.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { ICommand, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullCommand2 implements ICommand {
12 | public execute(): void {
13 | // do nothing
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/macrobot/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/macrobot/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/macrobot/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/openfl/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/openfl/deploy-example.sh:
--------------------------------------------------------------------------------
1 | yarn build:example
2 | rm -Rf gh-pages
3 | mkdir -p gh-pages
4 | cd gh-pages
5 | git init .
6 | git remote add origin git@github.com:RobotlegsJS/RobotlegsJS-OpenFL.git
7 | cp -r ../dist/* .
8 | git checkout -b gh-pages
9 | git add .
10 | git commit -m "update example build"
11 | git push origin gh-pages --force
12 |
--------------------------------------------------------------------------------
/packages/openfl/example/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import "reflect-metadata";
9 | import { Game } from "./Game";
10 |
11 | (window).initGame = () => {
12 | let game: Game = new Game();
13 | (window).game = game;
14 | };
15 |
--------------------------------------------------------------------------------
/packages/openfl/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/openfl/src/robotlegs/bender/extensions/contextView/api/IContextView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import Stage from "openfl/display/Stage";
9 |
10 | // eslint-disable-next-line @rushstack/typedef-var
11 | export const IContextView = Symbol("IContextView");
12 | export interface IContextView {
13 | view: Stage;
14 | }
15 |
--------------------------------------------------------------------------------
/packages/openfl/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/openfl/static/images/loading.gif
--------------------------------------------------------------------------------
/packages/openfl/static/images/openfl.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/openfl/static/images/openfl.png
--------------------------------------------------------------------------------
/packages/openfl/static/images/robotlegs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/openfl/static/images/robotlegs.png
--------------------------------------------------------------------------------
/packages/openfl/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Your Game",
3 | "short_name": "Your Game",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "orientation": "landscape",
7 | "icons": [
8 | {
9 | "src": "icon.png",
10 | "sizes": "512x512",
11 | "type": "image/png"
12 | },
13 | {
14 | "src": "launcher-icon-2x.png",
15 | "sizes": "96x96",
16 | "type": "image/png"
17 | },
18 | {
19 | "src": "launcher-icon-3x.png",
20 | "sizes": "144x144",
21 | "type": "image/png"
22 | },
23 | {
24 | "src": "launcher-icon-4x.png",
25 | "sizes": "192x192",
26 | "type": "image/png"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/packages/openfl/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/openfl/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/openfl/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/EmptyMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class EmptyMediator {}
12 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/ExampleView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import DisplayObjectContainer from "openfl/display/DisplayObjectContainer";
9 |
10 | export class ExampleView extends DisplayObjectContainer {}
11 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/GrumpyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class GrumpyGuard implements IGuard {
12 | public approve(): boolean {
13 | return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/HappyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class HappyGuard implements IGuard {
12 | public approve(): boolean {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/NotAView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NotAView {
12 | public mediatorName: string;
13 | }
14 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator {}
12 |
--------------------------------------------------------------------------------
/packages/openfl/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator2.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator2 {}
12 |
--------------------------------------------------------------------------------
/packages/openfl/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/openfl/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/openfl/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/openfl/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/RelaySignal.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class RelaySignal extends Phaser.Signal {
12 | public constructor() {
13 | super();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/TargetSignal.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class TargetSignal extends Phaser.Signal {
12 | public constructor() {
13 | super();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce-signalcommandmap/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/phaser-ce/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/phaser-ce/src/robotlegs/bender/extensions/contextStateManager/api/IContextStateManager.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | // eslint-disable-next-line @rushstack/typedef-var
9 | export const IContextStateManager = Symbol("IContextStateManager");
10 | export interface IContextStateManager {
11 | stateManager: Phaser.StateManager;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/phaser-ce/static/assets/player.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/phaser-ce/static/assets/player.png
--------------------------------------------------------------------------------
/packages/phaser-ce/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Your Game",
3 | "short_name": "Your Game",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "orientation": "landscape",
7 | "icons": [
8 | {
9 | "src": "icon.png",
10 | "sizes": "512x512",
11 | "type": "image/png"
12 | },
13 | {
14 | "src": "launcher-icon-2x.png",
15 | "sizes": "96x96",
16 | "type": "image/png"
17 | },
18 | {
19 | "src": "launcher-icon-3x.png",
20 | "sizes": "144x144",
21 | "type": "image/png"
22 | },
23 | {
24 | "src": "launcher-icon-4x.png",
25 | "sizes": "192x192",
26 | "type": "image/png"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/packages/phaser-ce/static/styles/main.css:
--------------------------------------------------------------------------------
1 | html {
2 | width: 100%;
3 | height: 100%;
4 | margin: 0px;
5 | padding: 0px;
6 | }
7 |
8 | body {
9 | height: inherit;
10 | width: inherit;
11 | margin: 0px;
12 | display: flex;
13 | justify-content: center;
14 | align-items: center;
15 | }
16 |
--------------------------------------------------------------------------------
/packages/phaser-ce/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/phaser-ce/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | ///
11 |
12 | /* eslint-disable import/no-internal-modules */
13 | import "bluebird/js/browser/bluebird";
14 | import "es6-map/implement";
15 | import "es6-symbol/implement";
16 |
--------------------------------------------------------------------------------
/packages/phaser-ce/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/phaser-ce/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser-ce/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/phaser/deploy-example.sh:
--------------------------------------------------------------------------------
1 | yarn build:example
2 | rm -Rf gh-pages
3 | mkdir -p gh-pages
4 | cd gh-pages
5 | git init .
6 | git remote add origin git@github.com:RobotlegsJS/RobotlegsJS-Phaser.git
7 | cp -r ../dist/* .
8 | git checkout -b gh-pages
9 | git add .
10 | git commit -m "update example build"
11 | git push origin gh-pages --force
12 |
--------------------------------------------------------------------------------
/packages/phaser/example/commands/MainCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { Event, ICommand, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class MainCommand implements ICommand {
12 | public execute(event: Event): void {
13 | console.log(event.type, event.data);
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/phaser/example/constants/SceneKey.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | export class SceneKey {
9 | public static BOOT: string = "Boot";
10 | public static PRELOAD: string = "Preload";
11 | public static MAIN: string = "Main";
12 | }
13 |
--------------------------------------------------------------------------------
/packages/phaser/example/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | import "reflect-metadata";
11 | import { Game } from "./Game";
12 |
13 | (window).initGame = function () {
14 | let game: Game = new Game();
15 | (window).game = game;
16 | };
17 |
--------------------------------------------------------------------------------
/packages/phaser/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/phaser/src/robotlegs/bender/extensions/contextSceneManager/api/IContextSceneManager.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | // eslint-disable-next-line @rushstack/typedef-var
9 | export const IContextSceneManager = Symbol("IContextSceneManager");
10 | export interface IContextSceneManager {
11 | sceneManager: Phaser.Scenes.SceneManager;
12 | }
13 |
--------------------------------------------------------------------------------
/packages/phaser/static/images/koreez.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/phaser/static/images/koreez.jpg
--------------------------------------------------------------------------------
/packages/phaser/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/phaser/static/images/loading.gif
--------------------------------------------------------------------------------
/packages/phaser/static/images/phaser-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/phaser/static/images/phaser-logo.png
--------------------------------------------------------------------------------
/packages/phaser/static/images/robotlegs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/phaser/static/images/robotlegs.png
--------------------------------------------------------------------------------
/packages/phaser/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Your Game",
3 | "short_name": "Your Game",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "orientation": "landscape",
7 | "icons": [
8 | {
9 | "src": "icon.png",
10 | "sizes": "512x512",
11 | "type": "image/png"
12 | },
13 | {
14 | "src": "launcher-icon-2x.png",
15 | "sizes": "96x96",
16 | "type": "image/png"
17 | },
18 | {
19 | "src": "launcher-icon-3x.png",
20 | "sizes": "144x144",
21 | "type": "image/png"
22 | },
23 | {
24 | "src": "launcher-icon-4x.png",
25 | "sizes": "192x192",
26 | "type": "image/png"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/packages/phaser/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/phaser/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/phaser/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/phaser/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/phaser/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/deploy-example.sh:
--------------------------------------------------------------------------------
1 | yarn build:example
2 | rm -Rf gh-pages
3 | mkdir -p gh-pages
4 | cd gh-pages
5 | git init .
6 | git remote add origin git@github.com:RobotlegsJS/RobotlegsJS-Pixi-Palidor.git
7 | cp -r ../dist/* .
8 | git checkout -b gh-pages
9 | git add .
10 | git commit -m "update example build"
11 | git push origin gh-pages --force
12 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/example/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import "reflect-metadata";
9 | import { Game } from "./Game";
10 |
11 | (window).initGame = () => {
12 | let game: Game = new Game();
13 | (window).game = game;
14 | };
15 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/example/views/PalidorView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { AbstractView } from "./AbstractView";
9 |
10 | export class PalidorView extends AbstractView {
11 | public constructor() {
12 | super("Palidor", "images/palidor.png", 0xebf0f9, 0xa2a2d0);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/example/views/RobotlegsView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { AbstractView } from "./AbstractView";
9 |
10 | export class RobotlegsView extends AbstractView {
11 | public constructor() {
12 | super("RobotlegsJS", "images/robotlegsjs.png", 0x007acd, 0x005c9a);
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/media/layers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi-palidor/media/layers.png
--------------------------------------------------------------------------------
/packages/pixi-palidor/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi-palidor/static/images/loading.gif
--------------------------------------------------------------------------------
/packages/pixi-palidor/static/images/palidor.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi-palidor/static/images/palidor.png
--------------------------------------------------------------------------------
/packages/pixi-palidor/static/images/pixijs-v6-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi-palidor/static/images/pixijs-v6-logo.png
--------------------------------------------------------------------------------
/packages/pixi-palidor/static/images/robotlegsjs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi-palidor/static/images/robotlegsjs.png
--------------------------------------------------------------------------------
/packages/pixi-palidor/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/pixi-palidor/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "es6-map/implement";
12 | import "es6-symbol/implement";
13 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi-palidor/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | // Copyright (c) 2016 San Dinh Studios. All Rights Reserved.
4 | //
5 | // NOTICE: You are permitted to use, modify, and distribute this file
6 | // in accordance with the terms of the license agreement accompanying it.
7 | // ------------------------------------------------------------------------------
8 |
9 | ///
10 |
11 | /* eslint-disable import/no-internal-modules */
12 | import "bluebird/js/browser/bluebird";
13 | import "es6-map/implement";
14 | import "es6-symbol/implement";
15 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi-signalmediator/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/pixi/deploy-example.sh:
--------------------------------------------------------------------------------
1 | yarn build:example
2 | rm -Rf gh-pages
3 | mkdir -p gh-pages
4 | cd gh-pages
5 | git init .
6 | git remote add origin git@github.com:RobotlegsJS/RobotlegsJS-Pixi.git
7 | cp -r ../dist/* .
8 | git checkout -b gh-pages
9 | git add .
10 | git commit -m "update example build"
11 | git push origin gh-pages --force
12 |
--------------------------------------------------------------------------------
/packages/pixi/example/index.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import "reflect-metadata";
9 | import { Game } from "./Game";
10 |
11 | (window).initGame = () => {
12 | let game: Game = new Game();
13 | (window).game = game;
14 | };
15 |
--------------------------------------------------------------------------------
/packages/pixi/example/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.example.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/pixi/src/robotlegs/bender/extensions/contextView/api/IContextView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { Container } from "pixi.js";
9 |
10 | // eslint-disable-next-line @rushstack/typedef-var
11 | export const IContextView = Symbol("IContextView");
12 | export interface IContextView {
13 | view: Container;
14 | }
15 |
--------------------------------------------------------------------------------
/packages/pixi/static/images/loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi/static/images/loading.gif
--------------------------------------------------------------------------------
/packages/pixi/static/images/pixijs-v6-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi/static/images/pixijs-v6-logo.png
--------------------------------------------------------------------------------
/packages/pixi/static/images/robotlegs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RobotlegsJS/RobotlegsJS-Framework/5c96ef027f4135c0f23e72e053b518bf45fb81d4/packages/pixi/static/images/robotlegs.png
--------------------------------------------------------------------------------
/packages/pixi/static/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Your Game",
3 | "short_name": "Your Game",
4 | "start_url": "index.html",
5 | "display": "standalone",
6 | "orientation": "landscape",
7 | "icons": [
8 | {
9 | "src": "icon.png",
10 | "sizes": "512x512",
11 | "type": "image/png"
12 | },
13 | {
14 | "src": "launcher-icon-2x.png",
15 | "sizes": "96x96",
16 | "type": "image/png"
17 | },
18 | {
19 | "src": "launcher-icon-3x.png",
20 | "sizes": "144x144",
21 | "type": "image/png"
22 | },
23 | {
24 | "src": "launcher-icon-4x.png",
25 | "sizes": "192x192",
26 | "type": "image/png"
27 | }
28 | ]
29 | }
30 |
--------------------------------------------------------------------------------
/packages/pixi/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/pixi/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/pixi/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/EmptyMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class EmptyMediator {}
12 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/GrumpyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class GrumpyGuard implements IGuard {
12 | public approve(): boolean {
13 | return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/HappyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class HappyGuard implements IGuard {
12 | public approve(): boolean {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/NotAView.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NotAView {
12 | public mediatorName: string;
13 | }
14 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator {}
12 |
--------------------------------------------------------------------------------
/packages/pixi/test/robotlegs/bender/extensions/mediatorMap/support/NullMediator2.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullMediator2 {}
12 |
--------------------------------------------------------------------------------
/packages/pixi/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/pixi/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi/tsconfig.example.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-example"
5 | },
6 | "include": ["./src/**/*.ts", "./example/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/pixi/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | // Place your settings in this file to overwrite default and user settings.
2 | {
3 | "typescript.tsdk": "node_modules/typescript/lib"
4 | }
5 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/README.md:
--------------------------------------------------------------------------------
1 | # Robotlegs Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/entry.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | ///
9 |
10 | /* eslint-disable import/no-internal-modules */
11 | import "bluebird/js/browser/bluebird";
12 | import "es6-map/implement";
13 | import "es6-symbol/implement";
14 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/GrumpyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class GrumpyGuard implements IGuard {
12 | public approve(): boolean {
13 | return false;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/HappyGuard.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { IGuard, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class HappyGuard implements IGuard {
12 | public approve(): boolean {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/NullCommand.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { ICommand, injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class NullCommand implements ICommand {
12 | public execute(): void {
13 | // do nothing.
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/robotlegs/bender/extensions/signalCommandMap/support/Payload.ts:
--------------------------------------------------------------------------------
1 | // ------------------------------------------------------------------------------
2 | // Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | //
4 | // NOTICE: You are permitted to use, modify, and distribute this file
5 | // in accordance with the terms of the license agreement accompanying it.
6 | // ------------------------------------------------------------------------------
7 |
8 | import { injectable } from "@robotlegsjs/core";
9 |
10 | @injectable()
11 | export class Payload {}
12 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signalcommandmap/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signals/.mocharc.json:
--------------------------------------------------------------------------------
1 | {
2 | "recursive": true,
3 | "full-trace": true,
4 | "bail": true,
5 | "spec": "./test/**/*.test.ts",
6 | "require": "reflect-metadata"
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signals/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "typescript.tsdk": "node_modules/typescript/lib"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/signals/src/org/osflash/signals/events/IBubbleEventHandler.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | import { IEvent } from "./IEvent";
9 |
10 | export interface IBubbleEventHandler {
11 | /**
12 | * Handler for event bubbling.
13 | * It's left to the IBubbleEventHandler to decide what to do with the event.
14 | *
15 | * @param event The event that bubbled up.
16 | * @return whether to continue bubbling this event
17 | */
18 | onEventBubbled(event: IEvent): boolean;
19 | }
20 |
--------------------------------------------------------------------------------
/packages/signals/test/README.md:
--------------------------------------------------------------------------------
1 | # Signals Testing
2 |
3 | Unit tests are written using Mocha, Chai and Sinon.
4 |
--------------------------------------------------------------------------------
/packages/signals/test/entry.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | ///
9 |
10 | import "bluebird";
11 | import "es6-map";
12 | import "es6-symbol";
13 |
--------------------------------------------------------------------------------
/packages/signals/test/index.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // require all modules ending in ".test.ts" from the
4 | // current directory and all subdirectories
5 | const testsContext = require.context(".", true, /\.test\.ts$/);
6 |
7 | testsContext.keys().forEach(testsContext);
8 |
--------------------------------------------------------------------------------
/packages/signals/test/mock/MockEvent.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | export class MockEvent {
9 | public constructor(public type: string) {
10 | this.type = type;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/signals/test/mock/MockMouseEvent.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | import { MockEvent } from "./MockEvent";
9 |
10 | export class MockMouseEvent extends MockEvent {}
11 |
--------------------------------------------------------------------------------
/packages/signals/test/mock/Sprite.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | export class Sprite {}
9 |
--------------------------------------------------------------------------------
/packages/signals/test/org/osflash/signals/support/Base.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | export class Base {}
9 |
--------------------------------------------------------------------------------
/packages/signals/test/org/osflash/signals/support/BubbleHater.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | import { IBubbleEventHandler } from "../../../../../src/org/osflash/signals/events/IBubbleEventHandler";
9 | import { IEvent } from "../../../../../src/org/osflash/signals/events/IEvent";
10 |
11 | export class BubbleHater implements IBubbleEventHandler {
12 | public onEventBubbled(event: IEvent): boolean {
13 | throw new Error("I SAID NO BUBBLES!!!");
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/packages/signals/test/org/osflash/signals/support/Inherited1.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | import { Base } from "./Base";
9 |
10 | export class Inherited1 extends Base {}
11 |
--------------------------------------------------------------------------------
/packages/signals/test/org/osflash/signals/support/Inherited2.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
3 | *
4 | * This source code is licensed under the MIT license found in the
5 | * LICENSE file in the root directory of this source tree.
6 | */
7 |
8 | import { Inherited1 } from "./Inherited1";
9 |
10 | export class Inherited2 extends Inherited1 {}
11 |
--------------------------------------------------------------------------------
/packages/signals/test/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../tsconfig.test.json"
3 | }
4 |
--------------------------------------------------------------------------------
/packages/signals/tsconfig.eslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------
/packages/signals/tsconfig.test.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "lib-test"
5 | },
6 | "include": ["./src/**/*.ts", "./test/**/*.ts"]
7 | }
8 |
--------------------------------------------------------------------------------