├── .github └── workflows │ ├── deploy.yml │ └── qa.yml ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── go.sh ├── keys.md ├── package.json ├── src ├── cli │ ├── createAlchemyProject.ts │ ├── devServer.ts │ ├── generateSpriteSheet.ts │ ├── index.ts │ ├── loadSounds.ts │ └── square.ase └── runtime │ ├── d.ts │ ├── index.ts │ ├── internal │ ├── animate.ts │ ├── debugConsole.ts │ ├── debugOverlay.tsx │ ├── dom.ts │ ├── getTexture.ts │ ├── getTextures.ts │ ├── getTexturesInFolder.ts │ ├── handleError.ts │ ├── input.ts │ ├── inspectMode.ts │ ├── makeGetAverageDuration.ts │ ├── random.ts │ ├── showGrid.ts │ ├── showHitbox.ts │ ├── sound.ts │ ├── subscribe.ts │ ├── subscribeKey.ts │ ├── ticker.ts │ ├── timer.ts │ ├── useAutoPause.ts │ ├── useScreenShake.ts │ └── util.ts │ ├── module │ ├── boundsToString.ts │ ├── centerPivot.ts │ ├── contains.ts │ ├── create.ts │ ├── createGame.ts │ ├── event.ts │ ├── flipSprite.ts │ ├── getAllChildren.ts │ ├── getAllLeafChildren.ts │ ├── intersects.ts │ ├── keys.ts │ ├── loadDataFromImage.ts │ ├── logObject.ts │ ├── pixiTypeGuard.ts │ ├── position.ts │ ├── reconcile.ts │ ├── reconcileSprites.ts │ ├── reset.ts │ └── sync.ts │ ├── setScene.ts │ └── type.ts ├── template ├── .github │ └── workflows │ │ ├── deployProduction.yml │ │ ├── deployStaging.yml │ │ └── qa.yml ├── sprite │ ├── light │ │ └── circle.png │ ├── square.ase │ └── ui │ │ └── plus-minus.ase ├── src │ ├── data.ts │ ├── env.ts │ ├── index.html │ ├── main.ts │ ├── public │ │ ├── asset │ │ │ ├── font │ │ │ │ └── PressStart2P-Regular.ttf │ │ │ ├── music │ │ │ │ └── bgm.mp3 │ │ │ ├── sound │ │ │ │ └── coin.mp3 │ │ │ └── spritesheet │ │ │ │ ├── data.json │ │ │ │ └── sheet.png │ │ └── style.css │ ├── scene │ │ ├── game │ │ │ ├── index.ts │ │ │ └── pause.ts │ │ └── mainMenu.ts │ ├── sounds.json │ ├── state.ts │ ├── type.ts │ └── ui │ │ └── settings.ts └── vite.config.ts ├── test ├── cli │ ├── cli.test.ts │ └── create.test.ts ├── runtime │ ├── animate.test.ts │ ├── getTexturesInFolder.test.ts │ ├── input.test.ts │ ├── position.test.ts │ ├── reconcile.test.ts │ ├── reconcileSprites.test.ts │ └── timer.test.ts └── util.ts ├── tsconfig.json ├── tsconfig.prod.json └── vitest.config.ts /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/.github/workflows/deploy.yml -------------------------------------------------------------------------------- /.github/workflows/qa.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/.github/workflows/qa.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | DS_Store 4 | /game 5 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact=true -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/README.md -------------------------------------------------------------------------------- /go.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/go.sh -------------------------------------------------------------------------------- /keys.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/keys.md -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/package.json -------------------------------------------------------------------------------- /src/cli/createAlchemyProject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/createAlchemyProject.ts -------------------------------------------------------------------------------- /src/cli/devServer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/devServer.ts -------------------------------------------------------------------------------- /src/cli/generateSpriteSheet.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/generateSpriteSheet.ts -------------------------------------------------------------------------------- /src/cli/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/index.ts -------------------------------------------------------------------------------- /src/cli/loadSounds.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/loadSounds.ts -------------------------------------------------------------------------------- /src/cli/square.ase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/cli/square.ase -------------------------------------------------------------------------------- /src/runtime/d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/runtime/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/index.ts -------------------------------------------------------------------------------- /src/runtime/internal/animate.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/animate.ts -------------------------------------------------------------------------------- /src/runtime/internal/debugConsole.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/debugConsole.ts -------------------------------------------------------------------------------- /src/runtime/internal/debugOverlay.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/debugOverlay.tsx -------------------------------------------------------------------------------- /src/runtime/internal/dom.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/dom.ts -------------------------------------------------------------------------------- /src/runtime/internal/getTexture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/getTexture.ts -------------------------------------------------------------------------------- /src/runtime/internal/getTextures.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/getTextures.ts -------------------------------------------------------------------------------- /src/runtime/internal/getTexturesInFolder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/getTexturesInFolder.ts -------------------------------------------------------------------------------- /src/runtime/internal/handleError.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/handleError.ts -------------------------------------------------------------------------------- /src/runtime/internal/input.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/input.ts -------------------------------------------------------------------------------- /src/runtime/internal/inspectMode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/inspectMode.ts -------------------------------------------------------------------------------- /src/runtime/internal/makeGetAverageDuration.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/makeGetAverageDuration.ts -------------------------------------------------------------------------------- /src/runtime/internal/random.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/random.ts -------------------------------------------------------------------------------- /src/runtime/internal/showGrid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/showGrid.ts -------------------------------------------------------------------------------- /src/runtime/internal/showHitbox.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/showHitbox.ts -------------------------------------------------------------------------------- /src/runtime/internal/sound.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/sound.ts -------------------------------------------------------------------------------- /src/runtime/internal/subscribe.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/subscribe.ts -------------------------------------------------------------------------------- /src/runtime/internal/subscribeKey.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/subscribeKey.ts -------------------------------------------------------------------------------- /src/runtime/internal/ticker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/ticker.ts -------------------------------------------------------------------------------- /src/runtime/internal/timer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/timer.ts -------------------------------------------------------------------------------- /src/runtime/internal/useAutoPause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/useAutoPause.ts -------------------------------------------------------------------------------- /src/runtime/internal/useScreenShake.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/useScreenShake.ts -------------------------------------------------------------------------------- /src/runtime/internal/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/internal/util.ts -------------------------------------------------------------------------------- /src/runtime/module/boundsToString.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/boundsToString.ts -------------------------------------------------------------------------------- /src/runtime/module/centerPivot.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/centerPivot.ts -------------------------------------------------------------------------------- /src/runtime/module/contains.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/contains.ts -------------------------------------------------------------------------------- /src/runtime/module/create.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/create.ts -------------------------------------------------------------------------------- /src/runtime/module/createGame.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/createGame.ts -------------------------------------------------------------------------------- /src/runtime/module/event.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/event.ts -------------------------------------------------------------------------------- /src/runtime/module/flipSprite.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/flipSprite.ts -------------------------------------------------------------------------------- /src/runtime/module/getAllChildren.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/getAllChildren.ts -------------------------------------------------------------------------------- /src/runtime/module/getAllLeafChildren.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/getAllLeafChildren.ts -------------------------------------------------------------------------------- /src/runtime/module/intersects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/intersects.ts -------------------------------------------------------------------------------- /src/runtime/module/keys.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/keys.ts -------------------------------------------------------------------------------- /src/runtime/module/loadDataFromImage.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/loadDataFromImage.ts -------------------------------------------------------------------------------- /src/runtime/module/logObject.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/logObject.ts -------------------------------------------------------------------------------- /src/runtime/module/pixiTypeGuard.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/pixiTypeGuard.ts -------------------------------------------------------------------------------- /src/runtime/module/position.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/position.ts -------------------------------------------------------------------------------- /src/runtime/module/reconcile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/reconcile.ts -------------------------------------------------------------------------------- /src/runtime/module/reconcileSprites.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/reconcileSprites.ts -------------------------------------------------------------------------------- /src/runtime/module/reset.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/reset.ts -------------------------------------------------------------------------------- /src/runtime/module/sync.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/module/sync.ts -------------------------------------------------------------------------------- /src/runtime/setScene.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/setScene.ts -------------------------------------------------------------------------------- /src/runtime/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/src/runtime/type.ts -------------------------------------------------------------------------------- /template/.github/workflows/deployProduction.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/.github/workflows/deployProduction.yml -------------------------------------------------------------------------------- /template/.github/workflows/deployStaging.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/.github/workflows/deployStaging.yml -------------------------------------------------------------------------------- /template/.github/workflows/qa.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/.github/workflows/qa.yml -------------------------------------------------------------------------------- /template/sprite/light/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/sprite/light/circle.png -------------------------------------------------------------------------------- /template/sprite/square.ase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/sprite/square.ase -------------------------------------------------------------------------------- /template/sprite/ui/plus-minus.ase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/sprite/ui/plus-minus.ase -------------------------------------------------------------------------------- /template/src/data.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/data.ts -------------------------------------------------------------------------------- /template/src/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/env.ts -------------------------------------------------------------------------------- /template/src/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/index.html -------------------------------------------------------------------------------- /template/src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/main.ts -------------------------------------------------------------------------------- /template/src/public/asset/font/PressStart2P-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/asset/font/PressStart2P-Regular.ttf -------------------------------------------------------------------------------- /template/src/public/asset/music/bgm.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/asset/music/bgm.mp3 -------------------------------------------------------------------------------- /template/src/public/asset/sound/coin.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/asset/sound/coin.mp3 -------------------------------------------------------------------------------- /template/src/public/asset/spritesheet/data.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/asset/spritesheet/data.json -------------------------------------------------------------------------------- /template/src/public/asset/spritesheet/sheet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/asset/spritesheet/sheet.png -------------------------------------------------------------------------------- /template/src/public/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/public/style.css -------------------------------------------------------------------------------- /template/src/scene/game/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/scene/game/index.ts -------------------------------------------------------------------------------- /template/src/scene/game/pause.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/scene/game/pause.ts -------------------------------------------------------------------------------- /template/src/scene/mainMenu.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/scene/mainMenu.ts -------------------------------------------------------------------------------- /template/src/sounds.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/sounds.json -------------------------------------------------------------------------------- /template/src/state.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/state.ts -------------------------------------------------------------------------------- /template/src/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/type.ts -------------------------------------------------------------------------------- /template/src/ui/settings.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/src/ui/settings.ts -------------------------------------------------------------------------------- /template/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/template/vite.config.ts -------------------------------------------------------------------------------- /test/cli/cli.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/cli/cli.test.ts -------------------------------------------------------------------------------- /test/cli/create.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/cli/create.test.ts -------------------------------------------------------------------------------- /test/runtime/animate.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/animate.test.ts -------------------------------------------------------------------------------- /test/runtime/getTexturesInFolder.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/getTexturesInFolder.test.ts -------------------------------------------------------------------------------- /test/runtime/input.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/input.test.ts -------------------------------------------------------------------------------- /test/runtime/position.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/position.test.ts -------------------------------------------------------------------------------- /test/runtime/reconcile.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/reconcile.test.ts -------------------------------------------------------------------------------- /test/runtime/reconcileSprites.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/reconcileSprites.test.ts -------------------------------------------------------------------------------- /test/runtime/timer.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/runtime/timer.test.ts -------------------------------------------------------------------------------- /test/util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/test/util.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.prod.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/tsconfig.prod.json -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sajmoni/alchemy/HEAD/vitest.config.ts --------------------------------------------------------------------------------