├── .editorconfig ├── .gitignore ├── .husky └── pre-commit ├── .npmrc ├── .prettierignore ├── .prettierrc.json ├── LICENSE ├── README.md ├── angular.json ├── backend ├── .dockerignore ├── .gitignore ├── Dockerfile ├── arena.env ├── development.env ├── fly.toml ├── jest.config.js ├── package-lock.json ├── package.json ├── src │ ├── arena.config.ts │ ├── game.config.ts │ ├── index.ts │ └── rooms │ │ ├── GameRoom.ts │ │ ├── namesDictionary.ts │ │ ├── schema │ │ ├── GameState.ts │ │ └── cardValues.ts │ │ └── utility.ts ├── test.env ├── test │ ├── gameRoom.test.ts │ ├── hand.test.ts │ ├── loadtest.ts │ └── utility.test.ts └── tsconfig.json ├── cypress.config.ts ├── cypress ├── e2e │ └── spec.cy.ts ├── support │ └── e2e.ts └── tsconfig.json ├── package.json ├── screenshot.png ├── src ├── app │ ├── app-routing.module.ts │ ├── app.component.html │ ├── app.component.scss │ ├── app.component.ts │ ├── app.module.ts │ ├── game-screen │ │ ├── game-guard.service.ts │ │ ├── game-screen.component.html │ │ ├── game-screen.component.scss │ │ ├── game-screen.component.ts │ │ ├── placePlayersAtTable.spec.ts │ │ ├── placePlayersAtTable.ts │ │ ├── player-action │ │ │ ├── input-constrain.directive.ts │ │ │ ├── player-action.component.html │ │ │ ├── player-action.component.scss │ │ │ └── player-action.component.ts │ │ └── player │ │ │ ├── hand-score │ │ │ ├── hand-score.component.html │ │ │ ├── hand-score.component.scss │ │ │ └── hand-score.component.ts │ │ │ ├── money-counter │ │ │ ├── money-counter.component.html │ │ │ ├── money-counter.component.scss │ │ │ ├── money-counter.component.spec.ts │ │ │ └── money-counter.component.ts │ │ │ ├── player.component.html │ │ │ ├── player.component.scss │ │ │ ├── player.component.ts │ │ │ ├── playing-card │ │ │ ├── playing-card.component.html │ │ │ ├── playing-card.component.scss │ │ │ ├── playing-card.component.spec.ts │ │ │ └── playing-card.component.ts │ │ │ └── timestamp-progress-bar │ │ │ ├── timestamp-progress-bar.component.html │ │ │ ├── timestamp-progress-bar.component.scss │ │ │ ├── timestamp-progress-bar.component.spec.ts │ │ │ └── timestamp-progress-bar.component.ts │ ├── game.service.spec.ts │ ├── game.service.ts │ ├── join-screen │ │ ├── join-guard.service.ts │ │ ├── join-screen.component.html │ │ ├── join-screen.component.scss │ │ ├── join-screen.component.spec.ts │ │ └── join-screen.component.ts │ └── kick-dialog │ │ ├── kick-dialog.component.html │ │ ├── kick-dialog.component.scss │ │ └── kick-dialog.component.ts ├── assets │ ├── .gitkeep │ └── og-image.png ├── environments │ ├── environment.development.ts │ └── environment.ts ├── favicon.ico ├── index.html ├── main.ts └── styles.scss ├── tailwind.config.js ├── tsconfig.app.json ├── tsconfig.json └── tsconfig.spec.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | npx lint-staged 5 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/.npmrc -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | !src 4 | !backend 5 | !cypress -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/README.md -------------------------------------------------------------------------------- /angular.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/angular.json -------------------------------------------------------------------------------- /backend/.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/.dockerignore -------------------------------------------------------------------------------- /backend/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .DS_Store 3 | coverage 4 | lib 5 | .vscode 6 | loadtest.log* -------------------------------------------------------------------------------- /backend/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/Dockerfile -------------------------------------------------------------------------------- /backend/arena.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=production -------------------------------------------------------------------------------- /backend/development.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=development -------------------------------------------------------------------------------- /backend/fly.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/fly.toml -------------------------------------------------------------------------------- /backend/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/jest.config.js -------------------------------------------------------------------------------- /backend/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/package-lock.json -------------------------------------------------------------------------------- /backend/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/package.json -------------------------------------------------------------------------------- /backend/src/arena.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/arena.config.ts -------------------------------------------------------------------------------- /backend/src/game.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/game.config.ts -------------------------------------------------------------------------------- /backend/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/index.ts -------------------------------------------------------------------------------- /backend/src/rooms/GameRoom.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/rooms/GameRoom.ts -------------------------------------------------------------------------------- /backend/src/rooms/namesDictionary.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/rooms/namesDictionary.ts -------------------------------------------------------------------------------- /backend/src/rooms/schema/GameState.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/rooms/schema/GameState.ts -------------------------------------------------------------------------------- /backend/src/rooms/schema/cardValues.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/rooms/schema/cardValues.ts -------------------------------------------------------------------------------- /backend/src/rooms/utility.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/src/rooms/utility.ts -------------------------------------------------------------------------------- /backend/test.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=test 2 | ROOM_LOG_DISABLE=true -------------------------------------------------------------------------------- /backend/test/gameRoom.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/test/gameRoom.test.ts -------------------------------------------------------------------------------- /backend/test/hand.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/test/hand.test.ts -------------------------------------------------------------------------------- /backend/test/loadtest.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/test/loadtest.ts -------------------------------------------------------------------------------- /backend/test/utility.test.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/test/utility.test.ts -------------------------------------------------------------------------------- /backend/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/backend/tsconfig.json -------------------------------------------------------------------------------- /cypress.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/cypress.config.ts -------------------------------------------------------------------------------- /cypress/e2e/spec.cy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/cypress/e2e/spec.cy.ts -------------------------------------------------------------------------------- /cypress/support/e2e.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/cypress/support/e2e.ts -------------------------------------------------------------------------------- /cypress/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/cypress/tsconfig.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/package.json -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/screenshot.png -------------------------------------------------------------------------------- /src/app/app-routing.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/app-routing.module.ts -------------------------------------------------------------------------------- /src/app/app.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/app.component.html -------------------------------------------------------------------------------- /src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/app.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/app.component.ts -------------------------------------------------------------------------------- /src/app/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/app.module.ts -------------------------------------------------------------------------------- /src/app/game-screen/game-guard.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/game-guard.service.ts -------------------------------------------------------------------------------- /src/app/game-screen/game-screen.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/game-screen.component.html -------------------------------------------------------------------------------- /src/app/game-screen/game-screen.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/game-screen.component.scss -------------------------------------------------------------------------------- /src/app/game-screen/game-screen.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/game-screen.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/placePlayersAtTable.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/placePlayersAtTable.spec.ts -------------------------------------------------------------------------------- /src/app/game-screen/placePlayersAtTable.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/placePlayersAtTable.ts -------------------------------------------------------------------------------- /src/app/game-screen/player-action/input-constrain.directive.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player-action/input-constrain.directive.ts -------------------------------------------------------------------------------- /src/app/game-screen/player-action/player-action.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player-action/player-action.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player-action/player-action.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player-action/player-action.component.scss -------------------------------------------------------------------------------- /src/app/game-screen/player-action/player-action.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player-action/player-action.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/hand-score/hand-score.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/hand-score/hand-score.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player/hand-score/hand-score.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/game-screen/player/hand-score/hand-score.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/hand-score/hand-score.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/money-counter/money-counter.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/money-counter/money-counter.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player/money-counter/money-counter.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/game-screen/player/money-counter/money-counter.component.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/money-counter/money-counter.component.spec.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/money-counter/money-counter.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/money-counter/money-counter.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/player.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/player.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player/player.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/player.component.scss -------------------------------------------------------------------------------- /src/app/game-screen/player/player.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/player.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/playing-card/playing-card.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/playing-card/playing-card.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player/playing-card/playing-card.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/playing-card/playing-card.component.scss -------------------------------------------------------------------------------- /src/app/game-screen/player/playing-card/playing-card.component.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/playing-card/playing-card.component.spec.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/playing-card/playing-card.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/playing-card/playing-card.component.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.html -------------------------------------------------------------------------------- /src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.spec.ts -------------------------------------------------------------------------------- /src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game-screen/player/timestamp-progress-bar/timestamp-progress-bar.component.ts -------------------------------------------------------------------------------- /src/app/game.service.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game.service.spec.ts -------------------------------------------------------------------------------- /src/app/game.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/game.service.ts -------------------------------------------------------------------------------- /src/app/join-screen/join-guard.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/join-screen/join-guard.service.ts -------------------------------------------------------------------------------- /src/app/join-screen/join-screen.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/join-screen/join-screen.component.html -------------------------------------------------------------------------------- /src/app/join-screen/join-screen.component.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/join-screen/join-screen.component.scss -------------------------------------------------------------------------------- /src/app/join-screen/join-screen.component.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/join-screen/join-screen.component.spec.ts -------------------------------------------------------------------------------- /src/app/join-screen/join-screen.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/join-screen/join-screen.component.ts -------------------------------------------------------------------------------- /src/app/kick-dialog/kick-dialog.component.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/kick-dialog/kick-dialog.component.html -------------------------------------------------------------------------------- /src/app/kick-dialog/kick-dialog.component.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/kick-dialog/kick-dialog.component.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/app/kick-dialog/kick-dialog.component.ts -------------------------------------------------------------------------------- /src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/assets/og-image.png -------------------------------------------------------------------------------- /src/environments/environment.development.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | gameServer: 'ws://localhost:2567', 3 | }; 4 | -------------------------------------------------------------------------------- /src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | gameServer: 'wss://21-online-backend.fly.dev', 3 | }; 4 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/index.html -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/main.ts -------------------------------------------------------------------------------- /src/styles.scss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/src/styles.scss -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/tailwind.config.js -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/tsconfig.app.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.spec.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stopnoanime/21-online/HEAD/tsconfig.spec.json --------------------------------------------------------------------------------