{"version":3,"sources":["features/games/dashboard/GameListItemPlayers.tsx","features/games/dashboard/GameListItem.tsx","app/api/agent.ts","app/models/windEnum.ts","app/models/gameStatusEnum.ts","app/common/util/util.ts","app/stores/gameStore.ts","app/models/tileStatus.ts","app/models/actionTypeEnum.ts","app/models/seatOrientationEnum.ts","app/models/actionStatusEnum.ts","app/stores/userStore.ts","app/stores/commonStore.ts","app/stores/modalStore.ts","app/stores/roundStore.ts","app/stores/hubStore.ts","app/stores/profileStore.ts","app/stores/ruleStore.ts","app/stores/beatTheBotStore.ts","app/stores/rootStore.ts","features/games/dashboard/GameList.tsx","features/games/dashboard/GameListItemPlaceholder.tsx","features/games/dashboard/GameDashboard.tsx","app/models/game.ts","app/common/form/MyTextInput.tsx","app/common/form/MyCheckbox.tsx","features/games/form/GameForm.tsx","app/models/tile.ts","app/layout/LoadingComponent.tsx","app/common/sounds/tileThrow.mp3","features/games/play/TileListBoard.tsx","app/models/extraPointEnum.ts","app/models/playResultEnum.ts","features/games/play/PlayerStatus.tsx","app/common/sounds/tileSelect.mp3","features/games/play/DraggableTile.tsx","app/common/sounds/playerTurn.mp3","features/games/play/PrevailingWindIndicator.tsx","features/games/play/MainPlayerSection.tsx","app/common/sounds/voice-over_tonny.mp3","features/games/play/ActionActivated.tsx","features/games/play/TileListOtherPlayer.tsx","features/games/play/TileListOtherPlayerVertical.tsx","app/common/sounds/btnClick.mp3","features/games/play/ResultModal.tsx","features/rules/RulesHands.tsx","features/rules/RulesExtraPoints.tsx","features/games/play/RulesModal.tsx","app/common/sounds/selfPick.mp3","app/common/sounds/playerAction.mp3","features/games/play/PlayerAction.tsx","app/common/util/tileHelper.ts","features/games/play/GameOn.tsx","app/common/form/TextAreaInput.tsx","features/games/lobby/GameLobbyChat.tsx","features/games/lobby/GameLobbyHeader.tsx","features/games/lobby/GameLobbySeat.tsx","features/games/lobby/GameLobbySidebar.tsx","features/games/lobby/GameLobbyInfo.tsx","features/games/lobby/GameLobby.tsx","app/layout/NotFound.tsx","app/common/modals/ModalContainer.tsx","app/layout/PrivateRoute.tsx","app/common/form/TextInput.tsx","app/common/form/ErrorMessage.tsx","features/user/SocialLogin.tsx","app/common/validators/validators.ts","features/user/ForgotPasswordForm.tsx","features/user/LoginForm.tsx","features/user/RegisterForm.tsx","features/user/JoinGameForm.tsx","features/nav/NavBar.tsx","features/footer/Footer.tsx","features/home/HomePage.tsx","features/legals/PrivacyPolicy.tsx","features/profiles/ProfileHeader.tsx","features/profiles/ProfileEditForm.tsx","features/profiles/ProfileDescription.tsx","app/common/photoUpload/PhotoWidgetDropzone.tsx","app/common/photoUpload/PhotoWidgetCropper.tsx","app/common/photoUpload/PhotoUploadWidget.tsx","features/profiles/ProfilePhotos.tsx","features/profiles/ProfileContent.tsx","features/profiles/ProfilePage.tsx","features/user/RegisterSuccess.tsx","features/user/VerifyEmail.tsx","features/rules/RulesBasic.tsx","features/rules/RulesContent.tsx","features/rules/RulesPage.tsx","features/legals/TermsAndConditions.tsx","features/user/ForgotPasswordSuccess.tsx","features/user/ResetPasswordForm.tsx","features/user/ResetPasswordSuccess.tsx","features/legals/DataDeletion.tsx","features/info/About.tsx","features/info/ChangeLog.tsx","app/layout/App.tsx","serviceWorker.ts","app/layout/ScrollToTop.tsx","index.tsx"],"names":["GameListItemPlayers","players","List","horizontal","map","player","Item","Popup","header","displayName","trigger","Image","size","circular","src","image","userName","GameListItem","game","host","gamePlayers","filter","p","isHost","Segment","Group","style","marginBottom","Content","Header","as","Link","to","code","title","Description","Label","basic","color","content","isCurrentPlayerConnected","Icon","name","format","date","secondary","clearing","Button","floated","axios","defaults","baseURL","process","withCredentials","interceptors","request","use","config","token","window","localStorage","getItem","headers","Authorization","error","Promise","reject","response","undefined","message","toast","status","data","history","push","removeItem","info","method","errors","hasOwnProperty","WindDirection","responseBody","Response","requests","url","get","then","body","post","put","delete","file","formData","FormData","append","agent","Games","list","params","detailByCode","detail","id","create","update","end","latestRound","User","current","login","user","register","fblogin","accessToken","refreshToken","verifyEmail","email","resendVerifyEmailConfirm","forgotPassword","reset","resetPassword","resendForgotPassword","Rounds","roundCounter","gameCode","Profiles","uploadPhoto","photo","setMainPhoto","deletePhoto","updateProfile","profile","BeatTheBots","GameStatus","botUserName","isBotUser","includes","getWindOfEmptySeat","playerWithSeats","initialSeatWind","allWinds","East","South","West","North","forEach","indexOfEast","indexOf","splice","indexOfSouth","indexOfWest","indexOfNorth","getWindDirectionImg","wind","ret","imgAlt","imgPath","sortByActiveCounter","a","b","activeTileCounter","sortTiles","tileSetGroupIndex","tile","tileType","tileValue","setGameProps","currentPlayer","find","Date","some","hostUserName","Unassigned","TileStatus","ActionType","SeatOrientation","ActionStatus","GameStore","rootStore","getGame","gameRegistry","this","reaction","predicate","keys","page","clear","loadGames","games","sort","getTime","sortedGames","Object","entries","reduce","toISOString","split","URLSearchParams","String","value","key","groupGamesByDate","Array","from","values","gamesByDateDesc","userStore","gameOver","Over","OverPrematurely","observable","Map","action","runInAction","gameSound","set","computed","loadingGameInitial","axiosParams","gamesEnvelope","gameCount","console","log","loadingLatestRoundInitial","toJS","currentBots","toUpperCase","modalStore","closeModal","submitting","newGame","event","target","currentTarget","UserStore","refreshTokenTimeout","jwtToken","JSON","parse","atob","timeout","exp","now","setTimeout","clearTimeout","stopRefreshTokenTimer","commonStore","setToken","startRefreshTokenTimer","loading","CommonStore","setItem","appLoaded","ModalStore","shallow","open","modal","RoundStore","round","isOver","gameStore","gameIsOver","showResult","isEnding","roundEndingCounter","hubStore","tiedRound","mainPlayer","otherPlayers","seatOrientation","Left","Right","Top","activeActions","actionType","SelfWin","actionStatus","Activated","length","SelfKong","Chow","Pong","Kong","Win","GiveUp","jackpotCounter","remainingTiles","boardTiles","rt","BoardActive","BoardGraveyard","playerTiles","UserActive","UserJustPicked","UserGraveyard","showRules","loadingRoundInitial","HubStore","ref","roundStore","cooldownTime","roundTimeStamp","updateMainPlayerTiles","updatedTile","tileIdx","findIndex","t","getGameAndRoundProps","gameId","roundId","ms","resolve","roundOtherPlayers","hubConnection","on","curPlayer","x","gameHost","closeResultModal","chatMsg","chatMsgs","indexOfBot","Created","state","invoke","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","configureLogging","LogLevel","None","build","addHubConnectionHandler","HubConnectionState","Disconnected","Disconnecting","hubLoading","start","catch","botGroup","currentGameCode","InitialSeatWind","seat","hubActionLoading","shuffleNewSeat","Playing","reorderedTiles","originalTiles","originalManualSort","RoundTiles","IsManualSort","isManualSort","i","objIndex","mainPlayerAliveTiles","obj","tileId","selectedTile","clientTimeStamp","currentRound","tileToThrow","owner","thrownBy","mustThrow","tilesWithoutThrown","boardWithoutThrown","tiles","ChowTiles","TileType","TileValue","tempAction","ProfileStore","activeIndex","activeTab","loadingProfile","uploadingPhoto","photos","isMain","RuleStore","BeaTheBotStore","loadingLadderInitial","laddersEnv","beatTheBotLadders","ladders","configure","enforceActions","RootStoreContext","createContext","beatTheBotStore","ruleStore","profileStore","BeatTheBotStore","observer","gamesGroupByDate","useContext","group","divided","GameListItemPlaceholder","Placeholder","fluid","marginTop","minHeight","Line","Paragraph","disabled","loadingInitial","useEffect","Grid","Column","width","GameFormValues","init","minPoint","maxPoint","useJackpot","time","assign","MyTextInput","props","useField","field","meta","Form","Field","touched","label","uppercase","className","MyCheckbox","helpers","Checkbox","onChange","e","d","setValue","checked","onBlur","setTouched","showPopup","popupContent","TileSetGroup","validationSchema","Yup","required","typeError","min","max","integer","positive","match","createGame","editGame","loadGame","useState","setGame","setLoading","finally","enableReinitialize","initialValues","onSubmit","dateAndTime","handleSubmit","isValid","isSubmitting","dirty","autoComplete","placeholder","type","onClick","LoadingComponent","inverted","Dimmer","active","Loader","graveyardTiles","activeTile","activeTileAnimation","useSound","tileThrowSfx","playTileThrownSfx","prevActiveTile","useRef","Container","display","flexWrap","alignItems","alignContent","boardGraveyardCounter","paddingRight","Transition","transitionOnMount","animation","duration","ExtraPoint","PlayResult","isDealer","points","isDraggingOver","droppableProvided","droppableSnapshot","containerStyleName","doThrowTile","tileSelectSfx","volume","play","stop","droppableProps","innerRef","background","index","draggableId","provided","snapshot","onDoubleClick","draggableProps","dragHandleProps","onMouseEnter","onMouseLeave","height","square","padding","isPlayerFlower","Flower","userFlowerNum","tv","isUserFlower","FlowerNumericOne","FlowerRomanOne","FlowerNumericTwo","FlowerRomanTwo","FlowerNumericThree","FlowerRomanThree","FlowerNumericFour","FlowerRomanFour","mainPlayerGraveYardTiles","hasNonSelfPickAction","orderTiles","playerTurnSfx","playplayerTurnSfx","isMyTurn","autoSort","beforeOrderingTiles","recurseEverything","beforeOrderingManualSortValue","sortedTile","Row","centered","droppableId","direction","borderRadius","textAlign","isInitialDealer","verticalAlign","backgroundColor","floating","activatedAction","tonnyVoiceOverSfx","sprite","chow","pong","kong","sek","zimo","playTonnyVoiceOver","animationStyle","animationDuration","isVisible","setIsVisible","visibleTimer","visible","float","closedTiles","activeTilesCount","alt","overflow","displayClosedTile","slice","isReversed","reversed","maxHeight","marginLeft","groupedLosers","confirmOpen","setConfirmOpen","btnClickSfx","playbtnClickSfx","startRound","endGame","startRevenge","getMainUser","boardActiveTile","winners","losers","tiePlayers","roundResults","activeBoardTile","r","playResult","Lost","LostWithPenalty","Tie","llist","l","groupLosersByName","Modal","closeIcon","onClose","icon","isTied","avatar","w","toLowerCase","roundResultHands","h","point","roundResultExtraPoints","ep","extraPoint","SelfPick","lname","lostList","Actions","position","Confirm","onCancel","onConfirm","RulesHands","bulleted","RulesExtraPoints","closeRulesModal","panes","menuItem","render","Tab","Pane","selfPickSfx","playSelfPickSfx","playerActionSfx","playPlayerActionSfx","openResultModal","hasChowAction","hasPongAction","hasKongAction","hasGiveUpAction","hasWinAction","hasSelfKongAction","hasSelfWinAction","pickTile","endingRound","winRound","skipAction","kongOptions","setKongOptions","chowOptions","setChowOptions","isWinner","setIsWinner","buttonAnimation","buttonAnimationDuration","hasAction","clearKongOptions","clearChowOptions","selectTilesToKong","kongtiles","ex","selectTilesToChow","chowtiles","Card","itemsPerRow","items","Dragon","Wind","chowTilesOptions","playerActiveTiles","sameTypeChowTiles","One","tileTwo","Two","tileThree","Three","twoThreeArray","Nine","tileSeven","Seven","tileEight","Eight","sevenEightArray","possibleTiles","_","uniqWith","testChowTiles","probableTile","foundDups","firsta","seconda","GetPossibleChow","mainPlayerActiveTiles","ct","cardDisplay","tileSet","cardObj","tileOne","validTileForKongs","isPlayerTurn","kongTiles","chain","groupBy","asd","ts","userActive","pongedTile","tileSetGroup","tileIsAlive","allTileAlive","GetPossibleKong","kt","Or","soundOff","soundOn","loadRound","leftPlayer","rightPlayer","topPlayer","boardGraveyardTiles","openRulesModal","throwTile","createHubConnection","leaveGroup","showNavBar","showFooter","warn","reorderTiles","activeTiles","startIndex","endIndex","result","removed","onDragEnd","destination","source","getCalculationResult","bodyResult","gameWinners","gameLosers","sadLoserName","res","proWinnerName","sortedLosersLessToMore","sortedWinners","transfer","remainder","firstTransaction","secondTransaction","lastRemainder","thirdTransaction","getActiveTileAnimation","borderStyle","borderColor","alignItem","justifyContent","paddingTop","tileStyleName","TextAreaInput","input","rows","addChatMsg","attached","border","Comment","cm","Avatar","Author","Metadata","formatDistance","createdAt","Text","form","component","labelPosition","primary","gameImageStyle","gameImageTextStyle","bottom","left","userNoWind","joinGame","cancelGame","leaveGame","sitGame","standUpGame","playerWind","addBot","botSit","botLeave","botStandUp","randomizeWind","needBotCount","cb","availableBots","relaxed","Extra","GameLobbyInfo","isOpen","setIsOpen","copy","onOpen","getLatestRound","NotFound","Inline","Component","rest","isLoggedIn","TextInput","ErrorMessage","text","Message","statusText","flat","err","fbCallback","appId","fields","callback","renderProps","isValidEmail","createValidator","test","validate","combineValidators","composeValidators","isRequired","ForgotPasswordForm","FORM_ERROR","submitError","invalid","pristine","dirtySinceLastSubmit","password","fbLogin","openModal","paddingBottom","cursor","Menu","Divider","RegisterForm","href","isAlphabetic","joinGameByCode","logout","fixed","NavLink","exact","marginRight","spaced","Dropdown","pointing","vertical","fitted","link","PrivacyPolicy","isCurrentUser","Reveal","animated","hidden","bio","hasLengthLessThan","editMode","setEditMode","overflowWrap","dropzoneStyles","dropzoneActive","PhotoWidgetDropzone","setFiles","onDrop","useCallback","acceptedFiles","preview","URL","createObjectURL","useDropzone","getRootProps","getInputProps","isDragActive","PhotoWidgetCropper","setImage","imagePreview","cropper","aspectRatio","guides","viewMode","dragMode","scalable","cropBoxMovable","cropBoxResizable","crop","getCroppedCanvas","toBlob","blob","files","revokeObjectURL","sub","widths","addPhotoMode","setAddPhotoMode","setTarget","deleteTarget","setDeleteTarget","negative","ProfileContent","setActiveTab","menu","menuPosition","onTabChange","loadProfile","username","location","queryString","search","success","Status","handleConfirmEmailResend","setStatus","getBody","RulesBasic","RulesContent","RulesPage","TermsAndConditions","newPassword","confirmNewPassword","matchesField","updateFormValue","DataDeletion","About","ChangeLog","withRouter","setAppLoaded","getUser","path","HomePage","GameDashboard","GameOn","GameLobby","GameForm","ProfilePage","RegisterSuccess","VerifyEmail","ForgotPasswordSuccess","ResetPasswordForm","ResetPasswordSuccess","Boolean","hostname","children","pathname","scrollTo","dateFnsLocalizer","createBrowserHistory","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.a31c5bcc.chunk.js","sourcesContent":["import React from 'react';\r\nimport { List, Image, Popup } from 'semantic-ui-react';\r\nimport { IGamePlayer } from '../../../app/models/player';\r\n\r\ninterface IProps {\r\n players: IGamePlayer[]\r\n}\r\n\r\nconst GameListItemPlayers : React.FC = ({players}) => { \r\n return (\r\n \r\n {players.map(player => (\r\n \r\n \r\n }\r\n />\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default GameListItemPlayers;","import React, { Fragment } from \"react\";\r\nimport { Item, Button, Segment, Icon, Label } from \"semantic-ui-react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IGame } from \"../../../app/models/game\";\r\nimport GameListItemPlayers from \"./GameListItemPlayers\";\r\nimport { format } from \"date-fns\";\r\n\r\nconst GameListItem: React.FC<{ game: IGame }> = ({ game }) => {\r\n const host = game.gamePlayers.filter((p) => p.isHost)[0];\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {game.title}\r\n \r\n \r\n {host && (\r\n \r\n Hosted by{\" \"}\r\n \r\n {host?.displayName}\r\n \r\n \r\n )}\r\n \r\n {game.isHost && (\r\n \r\n \r\n \r\n )}\r\n {game.isCurrentPlayerConnected && !game.isHost && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {format(game.date, \"h:mm a\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GameListItem;\r\n","import axios, { AxiosResponse } from \"axios\";\r\nimport { history } from \"../..\";\r\nimport { IGame, IGamesEnvelope } from \"../models/game\";\r\nimport {\r\n IResetPasswordFormValues,\r\n IUser,\r\n IUserFormValues,\r\n} from \"../models/user\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IProfile, IPhoto } from \"../models/profile\";\r\nimport { ILadderEnvelope } from \"../models/beatTheBotLadder\";\r\n\r\naxios.defaults.baseURL = process.env.REACT_APP_API_URL;\r\naxios.defaults.withCredentials = true;\r\n\r\naxios.interceptors.request.use(\r\n (config) => {\r\n const token = window.localStorage.getItem(\"jwt\");\r\n if (token) config.headers.Authorization = `Bearer ${token}`;\r\n return config;\r\n },\r\n (error) => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(undefined, (error) => {\r\n if (error.message === \"Network Error\" && !error.response) {\r\n toast.error(\"Network error - refresh your browser.\");\r\n }\r\n const { status, data, config, headers } = error.response;\r\n if (status === 404) {\r\n history.push(\"/notfound\");\r\n }\r\n\r\n if (status === 401 && headers['www-authenticate'] === 'Bearer error=\"invalid_token\", error_description=\"The token is expired\"') {\r\n window.localStorage.removeItem(\"jwt\");\r\n history.push(\"/\");\r\n toast.info(\"Your session has expired, please login again\");\r\n }\r\n\r\n if (\r\n status === 400 &&\r\n config.method === \"get\" &&\r\n data.errors.hasOwnProperty(\"id\")\r\n ) {\r\n history.push(\"/notfound\");\r\n }\r\n if (status === 500) {\r\n toast.error(\"Server error!\");\r\n }\r\n throw error.response;\r\n});\r\n\r\nconst responseBody = (Response: AxiosResponse) => Response.data;\r\n\r\n// const sleep = (ms: number) => (response: AxiosResponse) =>\r\n// new Promise(resolve => setTimeout(() => resolve(response), ms));\r\n\r\nconst requests = {\r\n get: (url: string) => axios.get(url).then(responseBody),\r\n post: (url: string, body: {}) => axios.post(url, body).then(responseBody),\r\n put: (url: string, body: {}) => axios.put(url, body).then(responseBody),\r\n del: (url: string) => axios.delete(url).then(responseBody),\r\n postForm: (url: string, file: Blob) => {\r\n let formData = new FormData();\r\n formData.append(\"File\", file);\r\n return axios\r\n .post(url, formData, {\r\n headers: { \"Content-type\": \"multipart/form-data\" },\r\n })\r\n .then(responseBody);\r\n },\r\n};\r\nconst BeatTheBots = {\r\n create:(gameCode: string) => requests.post(`/beatthebot/`, {gameCode}),\r\n list:():Promise => requests.get(`/beatthebot/`)\r\n}\r\n\r\nconst Games = {\r\n list: (params: URLSearchParams): Promise =>\r\n axios.get(\"/games\", {params: params}).then(responseBody),\r\n detailByCode: (code: string) => requests.get(`/games/code/${code}`),\r\n detail: (id: string) => requests.get(`/games/${id}`),\r\n create: (game: IGame) => requests.post(\"games\", game),\r\n update: (game: IGame) => requests.put(`/games/${game.id}`, game),\r\n delete: (id: string) => requests.del(`/games/${id}`),\r\n end:(id: string) => requests.post(`/games/${id}/end`, {}),\r\n latestRound: (code: string) => requests.get(`/games/code/${code}/latestround`),\r\n};\r\n\r\nconst Rounds = {\r\n detail: (roundCounter: string, gameCode: string) =>\r\n requests.post(`/rounds/Details`, {\r\n roundCounter: roundCounter,\r\n gameCode: gameCode\r\n }),\r\n};\r\n\r\nconst User = {\r\n current: (): Promise => requests.get(\"/user\"),\r\n login: (user: IUserFormValues): Promise =>\r\n requests.post(`/user/login/`, user),\r\n register: (user: IUserFormValues): Promise =>\r\n requests.post(`/user/register/`, user),\r\n fblogin: (accessToken: string) =>\r\n requests.post(`/user/facebook`, { accessToken }),\r\n refreshToken: (): Promise => requests.post(`/user/refreshToken`, {}),\r\n verifyEmail: (token: string, email: string): Promise =>\r\n requests.post(`/user/verifyEmail`, { token, email }),\r\n resendVerifyEmailConfirm: (email: string): Promise =>\r\n requests.get(`/user/resendEmailVerification?email=${email}`),\r\n forgotPassword: (reset: IResetPasswordFormValues): Promise => {\r\n return requests.post(`/user/forgotPassword`, reset);\r\n },\r\n resetPassword: (reset: IResetPasswordFormValues): Promise =>\r\n requests.post(`/user/resetPassword`, reset),\r\n resendForgotPassword: (email: string): Promise =>\r\n requests.get(`/user/resendForgotPasswordVerification?email=${email}`),\r\n};\r\n\r\nconst Profiles = {\r\n get: (userName: string): Promise =>\r\n requests.get(`/profiles/${userName}`),\r\n uploadPhoto: (photo: Blob): Promise =>\r\n requests.postForm(`/photos`, photo),\r\n setMainPhoto: (id: string) => requests.post(`/photos/${id}/setMain`, {}),\r\n deletePhoto: (id: string) => requests.del(`/photos/${id}`),\r\n updateProfile: (profile: Partial) =>\r\n requests.put(`/profiles`, profile),\r\n};\r\n\r\nconst agent = {\r\n Games,\r\n User,\r\n Rounds,\r\n Profiles,\r\n BeatTheBots\r\n};\r\n\r\nexport default agent;\r\n","export enum WindDirection{\r\n East,\r\n South,\r\n West,\r\n North,\r\n Unassigned\r\n}\r\n","export enum GameStatus{\r\n Created,\r\n Playing,\r\n OverPrematurely,\r\n Over\r\n}","import { IGame } from \"../../models/game\";\r\nimport { IUser } from \"../../models/user\";\r\nimport { WindDirection } from \"../../models/windEnum\";\r\nimport { IRoundTile } from \"../../models/tile\";\r\nimport { createValidator } from \"revalidate\";\r\nimport { IGamePlayer } from \"../../models/player\";\r\n\r\nexport interface WindDirectionImage {\r\n imgPath: string;\r\n imgAlt: string;\r\n}\r\n\r\nexport const botUserName = [\"sayky\", \"nina\", \"fifi\"];\r\n\r\nexport const isBotUser = (userName: string) : boolean => {\r\n return botUserName.includes(userName);\r\n}\r\n\r\nexport const getWindOfEmptySeat = (gamePlayers: IGamePlayer[]): WindDirection => {\r\n\r\n const playerWithSeats = gamePlayers.filter(p => p.initialSeatWind !== undefined)\r\n\r\n let allWinds = [WindDirection.East, WindDirection.South, WindDirection.West, WindDirection.North]; \r\n playerWithSeats.forEach((p) => {\r\n if(p.initialSeatWind === WindDirection.East){\r\n const indexOfEast = allWinds.indexOf(WindDirection.East);\r\n allWinds.splice(indexOfEast, 1);\r\n }else if(p.initialSeatWind === WindDirection.South){\r\n const indexOfSouth = allWinds.indexOf(WindDirection.South);\r\n allWinds.splice(indexOfSouth, 1);\r\n }else if(p.initialSeatWind === WindDirection.West){\r\n const indexOfWest = allWinds.indexOf(WindDirection.West);\r\n allWinds.splice(indexOfWest, 1);\r\n }else if(p.initialSeatWind === WindDirection.North){\r\n const indexOfNorth = allWinds.indexOf(WindDirection.North);\r\n allWinds.splice(indexOfNorth, 1);\r\n }\r\n })\r\n return allWinds[0];\r\n}\r\n\r\nexport const getWindDirectionImg = (\r\n wind: WindDirection\r\n): WindDirectionImage => {\r\n let ret: WindDirectionImage = { imgAlt: \"\", imgPath: \"\" };\r\n switch (wind) {\r\n case WindDirection.East:\r\n ret = {\r\n imgAlt: \"prevailing-wind-east\",\r\n imgPath: \"/assets/seat_indicator/east_indicator.png\",\r\n };\r\n break;\r\n case WindDirection.South:\r\n ret = {\r\n imgAlt: \"prevailing-wind-south\",\r\n imgPath: \"/assets/seat_indicator/south_indicator.png\",\r\n };\r\n break;\r\n case WindDirection.West:\r\n ret = {\r\n imgAlt: \"prevailing-wind-west\",\r\n imgPath: \"/assets/seat_indicator/west_indicator.png\",\r\n };\r\n break;\r\n case WindDirection.North:\r\n ret = {\r\n imgAlt: \"prevailing-wind-north\",\r\n imgPath: \"/assets/seat_indicator/north_indicator.png\",\r\n };\r\n break;\r\n }\r\n return ret;\r\n};\r\n\r\nexport const GetOtherUserWindPosition = (\r\n currentUserWind: WindDirection,\r\n direction: string\r\n) => {\r\n switch (direction) {\r\n case \"left\":\r\n switch (currentUserWind) {\r\n case WindDirection.East:\r\n return WindDirection.North;\r\n case WindDirection.South:\r\n return WindDirection.East;\r\n case WindDirection.West:\r\n return WindDirection.South;\r\n case WindDirection.North:\r\n return WindDirection.West;\r\n }\r\n break;\r\n case \"right\":\r\n switch (currentUserWind) {\r\n case WindDirection.East:\r\n return WindDirection.South;\r\n case WindDirection.South:\r\n return WindDirection.West;\r\n case WindDirection.West:\r\n return WindDirection.North;\r\n case WindDirection.North:\r\n return WindDirection.East;\r\n }\r\n break;\r\n case \"top\":\r\n switch (currentUserWind) {\r\n case WindDirection.East:\r\n return WindDirection.West;\r\n case WindDirection.South:\r\n return WindDirection.North;\r\n case WindDirection.West:\r\n return WindDirection.East;\r\n case WindDirection.North:\r\n return WindDirection.South;\r\n }\r\n break;\r\n }\r\n};\r\n\r\nexport const sortByActiveCounter = (a: IRoundTile, b: IRoundTile) => {\r\n if (a.activeTileCounter > b.activeTileCounter) return 1;\r\n if (a.activeTileCounter < b.activeTileCounter) return -1;\r\n return 0;\r\n};\r\n\r\nexport const sortTiles = (a: IRoundTile, b: IRoundTile) => {\r\n if (a.status > b.status) return -1;\r\n if (a.status < b.status) return 1;\r\n if (a.tileSetGroupIndex < b.tileSetGroupIndex) return -1;\r\n if (a.tileSetGroupIndex > b.tileSetGroupIndex) return 1;\r\n if (a.tile.tileType > b.tile.tileType) return -1;\r\n if (a.tile.tileType < b.tile.tileType) return 1;\r\n if (a.tile.tileValue > b.tile.tileValue) return 1;\r\n if (a.tile.tileValue < b.tile.tileValue) return -1;\r\n return 0;\r\n};\r\n\r\nexport const isLessThan = (n: number) =>\r\n createValidator(\r\n (message) => (value) => {\r\n if (value && Number(value) >= n) {\r\n return message;\r\n }\r\n },\r\n (field) => `${field} must be less than ${n}`\r\n );\r\n\r\nexport const isGreaterThan = (n: number) =>\r\n createValidator(\r\n (message) => (value) => {\r\n if (value && Number(value) <= n) {\r\n return message;\r\n }\r\n },\r\n (field) => `${field} must be greater than ${n}`\r\n );\r\n\r\nexport const combineDateAndTime = (date: Date, time: Date) => {\r\n const dateString = date.toISOString().split(\"T\")[0];\r\n const timeString = time.toISOString().split(\"T\")[1];\r\n\r\n return new Date(dateString + \" \" + timeString);\r\n};\r\n\r\nexport const setGameProps = (game: IGame, user: IUser) => {\r\n let currentPlayer = game.gamePlayers.find(\r\n (p) => p.userName === user.userName\r\n );\r\n game.date = new Date(game.date);\r\n\r\n game.isCurrentPlayerConnected = game.gamePlayers.some(\r\n (p) => p.userName === user.userName\r\n );\r\n\r\n game.isHost = game.hostUserName === user.userName;\r\n\r\n if (currentPlayer?.initialSeatWind !== undefined) {\r\n game.initialSeatWind = game.gamePlayers.find(\r\n (p) => p.userName === user.userName\r\n )!.initialSeatWind;\r\n } else {\r\n game.initialSeatWind = WindDirection.Unassigned;\r\n }\r\n return game;\r\n};\r\n","import {\r\n observable,\r\n action,\r\n computed,\r\n runInAction,\r\n toJS,\r\n reaction,\r\n} from \"mobx\";\r\nimport { SyntheticEvent } from \"react\";\r\nimport { IGame } from \"../models/game\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { history } from \"../..\";\r\nimport { toast } from \"react-toastify\";\r\nimport { isBotUser, setGameProps } from \"../common/util/util\";\r\nimport { IRound } from \"../models/round\";\r\nimport { GameStatus } from \"../models/gameStatusEnum\";\r\n\r\nconst LIMIT = 10;\r\n\r\nexport default class GameStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.predicate.keys(),\r\n () => {\r\n this.page = 0;\r\n this.gameRegistry.clear();\r\n this.loadGames();\r\n }\r\n );\r\n }\r\n\r\n @observable gameSound = true;\r\n @observable gameRegistry = new Map();\r\n @observable game: IGame | null = null;\r\n @observable currentBots : string[] = [];\r\n @observable loadingGameInitial = false;\r\n @observable loadingLatestRoundInitial = false;\r\n @observable submitting = false;\r\n @observable target = \"\";\r\n @observable gameCount = 0;\r\n @observable page = 0;\r\n @observable latestRound: IRound | null = null;\r\n @observable predicate = new Map();\r\n\r\n @action soundOn = () =>{\r\n runInAction(() => {\r\n this.gameSound = true;\r\n })\r\n }\r\n\r\n @action soundOff = () =>{\r\n runInAction(() => {\r\n this.gameSound = false;\r\n })\r\n }\r\n\r\n @action setPredicate = (predicate: string, value: string | Date) => {\r\n this.predicate.clear();\r\n if (predicate !== \"all\") {\r\n this.predicate.set(predicate, value);\r\n }\r\n };\r\n\r\n @computed get axiosParams() {\r\n const params = new URLSearchParams();\r\n params.append(\"limit\", String(LIMIT));\r\n params.append(\"offset\", `${this.page ? this.page * LIMIT : 0}`);\r\n this.predicate.forEach((value, key) => {\r\n if (key === \"startDate\") {\r\n params.append(key, value.toISOString());\r\n } else {\r\n params.append(key, value);\r\n }\r\n });\r\n return params;\r\n }\r\n\r\n @computed get gamesGroupByDate() {\r\n return this.groupGamesByDate(Array.from(this.gameRegistry.values()));\r\n }\r\n\r\n @computed get gamesByDate() {\r\n return this.gamesByDateDesc(Array.from(this.gameRegistry.values()));\r\n }\r\n\r\n @computed get getMainUser() {\r\n return this.game && this.game.gamePlayers\r\n ? this.game.gamePlayers.find(\r\n (p) => p.userName === this.rootStore.userStore.user!.userName\r\n )\r\n : null;\r\n }\r\n\r\n @computed get gameIsOver() {\r\n let gameOver: boolean = false;\r\n\r\n if (this.game?.status === GameStatus.Over) gameOver = true;\r\n if (this.game?.status === GameStatus.OverPrematurely) gameOver = true;\r\n\r\n return gameOver;\r\n }\r\n\r\n @computed get userNoWind() {\r\n return this.game\r\n ? this.game.gamePlayers.some(\r\n (p) => p.initialSeatWind === null || p.initialSeatWind === undefined\r\n )\r\n : false;\r\n }\r\n\r\n @action loadGames = async () => {\r\n this.loadingGameInitial = true;\r\n try {\r\n const gamesEnvelope = await agent.Games.list(this.axiosParams);\r\n const { games, gameCount } = gamesEnvelope;\r\n\r\n runInAction(\"loading games\", () => {\r\n games.forEach((game) => {\r\n setGameProps(game, this.rootStore.userStore.user!);\r\n this.gameRegistry.set(game.code, game);\r\n });\r\n this.gameCount = gameCount;\r\n this.loadingGameInitial = false;\r\n });\r\n } catch (error) {\r\n runInAction(\"load games error\", () => {\r\n this.loadingGameInitial = false;\r\n });\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action getLatestRound = async (code: string) => {\r\n this.loadingLatestRoundInitial = true;\r\n try {\r\n const latestRound = await agent.Games.latestRound(code);\r\n runInAction(\"getting latest round\", () => {\r\n this.latestRound = latestRound;\r\n this.loadingLatestRoundInitial = false;\r\n });\r\n return latestRound;\r\n } catch (error) {\r\n runInAction(\"getting game error\", () => {\r\n this.loadingLatestRoundInitial = false;\r\n });\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action loadGame = async (code: string) => {\r\n let game = this.getGame(code);\r\n if (game) {\r\n this.game = game;\r\n return toJS(game);\r\n } else {\r\n this.loadingGameInitial = true;\r\n try {\r\n game = await agent.Games.detailByCode(code);\r\n runInAction(\"getting game\", () => {\r\n setGameProps(game, this.rootStore.userStore.user!);\r\n this.game = game;\r\n this.game?.gamePlayers.forEach((p) => {\r\n if(isBotUser(p.userName)){\r\n this.currentBots.push(p.userName);\r\n }\r\n })\r\n this.gameRegistry.set(code, game);\r\n this.loadingGameInitial = false;\r\n });\r\n return game;\r\n } catch (error) {\r\n runInAction(\"getting game error\", () => {\r\n this.loadingGameInitial = false;\r\n history.push(`/`);\r\n });\r\n }\r\n }\r\n };\r\n\r\n\r\n @action joinGameByCode = async (gameCode: string) => {\r\n await agent.Games.detailByCode(gameCode);\r\n history.push(`/games/${gameCode.toUpperCase()}`);\r\n this.rootStore.modalStore.closeModal();\r\n };\r\n\r\n @action createGame = async (game: IGame) => {\r\n this.submitting = true;\r\n try {\r\n var newGame: IGame = await agent.Games.create(game);\r\n runInAction(\"creating games\", () => {\r\n setGameProps(newGame, this.rootStore.userStore.user!);\r\n this.game = newGame;\r\n this.currentBots = [];\r\n this.gameRegistry.set(newGame.code, newGame);\r\n //when creating a new game, there will be one user in the game\r\n var player = newGame.gamePlayers[0];\r\n if (this.game) {\r\n if (this.rootStore.userStore.user?.userName === player.userName) {\r\n this.game.initialSeatWind = player.initialSeatWind;\r\n this.game.isCurrentPlayerConnected = true;\r\n }\r\n }\r\n\r\n this.submitting = false;\r\n });\r\n history.push(`/games/${newGame.code}`);\r\n } catch (error) {\r\n runInAction(\"creating game error\", () => {\r\n this.submitting = false;\r\n });\r\n toast.error(\"Problem submitting data\");\r\n }\r\n };\r\n\r\n @action editGame = async (game: IGame) => {\r\n this.submitting = true;\r\n try {\r\n await agent.Games.update(game);\r\n runInAction(\"editing game\", () => {\r\n this.gameRegistry.set(game.code, game);\r\n this.game = game;\r\n this.submitting = false;\r\n history.push(`/games/${game.code}`);\r\n });\r\n } catch (error) {\r\n runInAction(\"editing game error\", () => {\r\n this.submitting = false;\r\n });\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action deleteGame = async (\r\n event: SyntheticEvent,\r\n id: string\r\n ) => {\r\n this.submitting = true;\r\n this.target = event.currentTarget.name;\r\n try {\r\n await agent.Games.delete(id);\r\n runInAction(\"deleting game\", () => {\r\n this.gameRegistry.delete(id);\r\n this.submitting = false;\r\n this.target = \"\";\r\n });\r\n } catch (error) {\r\n runInAction(\"deleting game error\", () => {\r\n this.submitting = false;\r\n this.target = \"\";\r\n });\r\n console.log(error);\r\n }\r\n };\r\n\r\n getGame = (code: string) => {\r\n return this.gameRegistry.get(code);\r\n };\r\n\r\n gamesByDateDesc(games: IGame[]){\r\n const sortedGames: IGame[] = games.sort(\r\n (a, b) => b.date.getTime() - a.date.getTime()\r\n );\r\n return sortedGames;\r\n }\r\n\r\n groupGamesByDate(games: IGame[]) {\r\n const sortedGames = games.sort(\r\n (a, b) => b.date.getTime() - a.date.getTime()\r\n );\r\n return Object.entries(\r\n sortedGames.reduce((games, game) => {\r\n const date = game.date.toISOString().split(\"T\")[0];\r\n games[date] = games[date] ? [...games[date], game] : [game];\r\n return games;\r\n }, {} as { [key: string]: IGame[] })\r\n );\r\n }\r\n}\r\n","export enum TileStatus{\r\n //Tile belongs to the board\r\n Unrevealed = 0,\r\n //Tile just picked from the board\r\n UserJustPicked = 1,\r\n //Tile that is on player's hand\r\n UserActive = 2,\r\n //Tile is kept by player\r\n UserGraveyard = 3,\r\n //Tile is alive on board\r\n BoardActive = 4,\r\n //Tile is dead on board\r\n BoardGraveyard = 5\r\n}\r\n","export enum ActionType\r\n{\r\n Win,\r\n SelfWin,\r\n Kong,\r\n SelfKong,\r\n Pong,\r\n Chow,\r\n GiveUp\r\n}","export enum SeatOrientation\r\n{\r\n Left,\r\n Top,\r\n Right,\r\n None\r\n} ","export enum ActionStatus\r\n{\r\n Active,\r\n Activated,\r\n Inactive,\r\n Skipped,\r\n}","import { observable, computed, action, runInAction } from \"mobx\";\r\nimport { IResetPasswordFormValues, IUser, IUserFormValues } from \"../models/user\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { history } from \"../..\";\r\n\r\nexport default class UserStore {\r\n refreshTokenTimeout: any;\r\n rootStore: RootStore;\r\n\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable user: IUser | null = null;\r\n @observable loading: boolean = false;\r\n\r\n @computed get isLoggedIn() {\r\n return !!this.user;\r\n }\r\n\r\n @action gotoForgotPassword = () => {\r\n history.push(\"/user/forgotPassword\");\r\n this.rootStore.modalStore.closeModal();\r\n }\r\n\r\n @action forgotPassword = async(values: IResetPasswordFormValues) => {\r\n try {\r\n await agent.User.forgotPassword(values);\r\n this.rootStore.modalStore.closeModal();\r\n history.push(`/user/forgotPasswordSuccess?email=${values.email}`);\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n @action resetPassword = async(values: IResetPasswordFormValues) => {\r\n try {\r\n await agent.User.resetPassword(values);\r\n history.push(`/user/resetPasswordSuccess`);\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n @action register = async (values: IUserFormValues) => {\r\n try {\r\n await agent.User.register(values);\r\n this.rootStore.modalStore.closeModal();\r\n history.push(`/user/registerSuccess?email=${values.email}`);\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n @action refreshToken = async () => {\r\n this.stopRefreshTokenTimer();\r\n try {\r\n const user = await agent.User.refreshToken();\r\n runInAction(() => {\r\n this.user = user;\r\n })\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.startRefreshTokenTimer(user);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n @action login = async (values: IUserFormValues) => {\r\n try {\r\n const user = await agent.User.login(values);\r\n runInAction(() => {\r\n this.user = user;\r\n });\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.startRefreshTokenTimer(user);\r\n this.rootStore.modalStore.closeModal();\r\n history.push(`/`);\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n @action getUser = async () => {\r\n try {\r\n const user = await agent.User.current();\r\n runInAction(() => {\r\n this.user = user;\r\n });\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.startRefreshTokenTimer(user);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action logout = () => {\r\n this.rootStore.commonStore.setToken(null);\r\n this.user = null;\r\n history.push(\"/\");\r\n this.stopRefreshTokenTimer();\r\n };\r\n\r\n @action fbLogin = async (response: any) => {\r\n this.loading = true;\r\n try {\r\n const user = await agent.User.fblogin(response.accessToken);\r\n runInAction(() => {\r\n this.user = user;\r\n this.rootStore.commonStore.setToken(user.token);\r\n this.startRefreshTokenTimer(user);\r\n this.rootStore.modalStore.closeModal();\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loading = false;\r\n })\r\n throw error;\r\n }\r\n };\r\n\r\n private startRefreshTokenTimer(user: IUser) {\r\n const jwtToken = JSON.parse(atob(user.token.split('.')[1]));\r\n const expires = new Date(jwtToken.exp * 1000);\r\n const timeout = expires.getTime() - Date.now() - (60 * 1000);\r\n this.refreshTokenTimeout = setTimeout(this.refreshToken, timeout);\r\n }\r\n\r\n private stopRefreshTokenTimer() {\r\n clearTimeout(this.refreshTokenTimeout);\r\n }\r\n}\r\n","import { RootStore } from \"./rootStore\";\r\nimport { observable, action, reaction } from \"mobx\";\r\n\r\nexport default class CommonStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.token,\r\n (token) => {\r\n if (token) {\r\n window.localStorage.setItem(\"jwt\", token);\r\n } else {\r\n window.localStorage.removeItem(\"jwt\");\r\n }\r\n }\r\n );\r\n }\r\n\r\n @observable token: string | null = window.localStorage.getItem(\"jwt\");\r\n @observable appLoaded = false;\r\n @observable showNavBar = true;\r\n @observable showFooter = true;\r\n\r\n @action setToken = (token: string | null) => {\r\n this.token = token;\r\n };\r\n\r\n @action setAppLoaded = () => {\r\n this.appLoaded = true;\r\n };\r\n}\r\n","import { RootStore } from \"./rootStore\";\r\nimport { observable, action } from \"mobx\";\r\n\r\nexport default class ModalStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore){\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable.shallow modal = {\r\n open: false,\r\n body: null\r\n }\r\n \r\n @action openModal = (content: any) => {\r\n this.modal.open = true;\r\n this.modal.body = content;\r\n }\r\n\r\n @action closeModal = () => {\r\n this.modal.open = false;\r\n this.modal.body = null;\r\n } \r\n}","import {\r\n observable,\r\n action,\r\n runInAction,\r\n computed,\r\n reaction,\r\n} from \"mobx\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { sortTiles, sortByActiveCounter } from \"../common/util/util\";\r\nimport { IRound } from \"../models/round\";\r\nimport { IRoundTile } from \"../models/tile\";\r\nimport { TileStatus } from \"../models/tileStatus\";\r\nimport { ActionType } from \"../models/actionTypeEnum\";\r\nimport { SeatOrientation } from \"../models/seatOrientationEnum\";\r\nimport { ActionStatus } from \"../models/actionStatusEnum\";\r\n\r\nconst pickDefaultCounter: number = 3;\r\n\r\nexport default class RoundStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.round?.isOver,\r\n () => {\r\n if (this.round?.isOver && !rootStore.gameStore.gameIsOver) {\r\n this.showResult = true;\r\n }\r\n }\r\n );\r\n\r\n //reaction to automatically call round tied\r\n //when 1 tile left and the person's turn give up\r\n //when no tile left\r\n reaction(\r\n () => this.round?.isEnding && this.roundEndingCounter,\r\n () => {\r\n if (this.round?.isEnding) {\r\n this.roundEndingCounter > 0 &&\r\n setTimeout(\r\n () => runInAction(() => this.roundEndingCounter--),\r\n 1000\r\n );\r\n if (this.roundEndingCounter === 0) {\r\n //call round over if its the user's turn so that no multiple call\r\n if(this.isHost){\r\n rootStore.hubStore.tiedRound();\r\n }\r\n }\r\n } else {\r\n runInAction(() => {\r\n this.roundEndingCounter = 5;\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n @observable round: IRound | null = null;\r\n @observable pickCounter: number = pickDefaultCounter;\r\n @observable canPick: boolean = false;\r\n @observable isMyTurn: boolean = false;\r\n @observable isManualSort: boolean = false;\r\n @observable showResult: boolean = false;\r\n @observable showRules: boolean = false;\r\n @observable roundOver: boolean = false;\r\n @observable roundEndingCounter: number = 5;\r\n @observable.shallow selectedTile: IRoundTile | null = null;\r\n @observable loadingRoundInitial = false;\r\n\r\n @computed get isHost() {\r\n return this.rootStore.gameStore.game?.isHost;\r\n }\r\n\r\n @computed get mainPlayer() {\r\n return this.round?.mainPlayer;\r\n }\r\n\r\n @computed get leftPlayer() {\r\n return this.round?.otherPlayers.filter(\r\n (p) => p.seatOrientation === SeatOrientation.Left\r\n )[0];\r\n }\r\n\r\n @computed get rightPlayer() {\r\n return this.round?.otherPlayers.filter(\r\n (p) => p.seatOrientation === SeatOrientation.Right\r\n )[0];\r\n }\r\n\r\n @computed get topPlayer() {\r\n return this.round?.otherPlayers.filter(\r\n (p) => p.seatOrientation === SeatOrientation.Top\r\n )[0];\r\n }\r\n\r\n @computed get hasNonSelfPickAction(){\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType !== ActionType.SelfWin && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasSelfKongAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.SelfKong && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasSelfWinAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.SelfWin && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasChowAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.Chow && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasPongAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.Pong && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasKongAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.Kong && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasWinAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.Win && a.actionStatus !== ActionStatus.Activated\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get hasGiveUpAction() {\r\n return this.mainPlayer!.activeActions\r\n ? this.mainPlayer!.activeActions.filter(\r\n (a) => a.actionType === ActionType.GiveUp\r\n ).length > 0\r\n : false;\r\n }\r\n\r\n @computed get jackpotCounter(){\r\n return this.round?.jackpotCounter;\r\n }\r\n\r\n @computed get remainingTiles() {\r\n return this.round?.remainingTiles;\r\n }\r\n\r\n @computed get boardActiveTile() {\r\n return this.round?.boardTiles\r\n ? this.round?.boardTiles.find(\r\n (rt) => rt.status === TileStatus.BoardActive\r\n )\r\n : null;\r\n }\r\n\r\n @computed get boardGraveyardTiles() {\r\n return this.round?.boardTiles\r\n ? this.round?.boardTiles.filter(\r\n (rt) => rt.status === TileStatus.BoardGraveyard\r\n )\r\n : null;\r\n }\r\n\r\n @computed get mainPlayerAliveTiles() {\r\n return this.mainPlayer\r\n ? this.mainPlayer.playerTiles\r\n .filter(\r\n (rt) =>\r\n rt.status === TileStatus.UserActive ||\r\n rt.status === TileStatus.UserJustPicked\r\n )\r\n .sort(sortByActiveCounter)\r\n : null;\r\n }\r\n\r\n @computed get mainPlayerActiveTiles() {\r\n return this.mainPlayer\r\n ? this.mainPlayer.playerTiles\r\n .filter((rt) => rt.status === TileStatus.UserActive)\r\n .sort(sortByActiveCounter)\r\n : null;\r\n }\r\n\r\n @computed get mainPlayerGraveYardTiles() {\r\n return this.mainPlayer\r\n ? this.mainPlayer.playerTiles\r\n .filter((rt) => rt.status === TileStatus.UserGraveyard)\r\n .sort(sortTiles)\r\n : null;\r\n }\r\n\r\n @computed get mainPlayerJustPickedTile() {\r\n return this.mainPlayer\r\n ? this.mainPlayer.playerTiles.filter(\r\n (rt) => rt.status === TileStatus.UserJustPicked\r\n )\r\n : null;\r\n }\r\n\r\n @action openRulesModal = () => {\r\n runInAction(() => {\r\n this.showRules = true;\r\n });\r\n };\r\n\r\n @action openResultModal = () => {\r\n runInAction(() => {\r\n this.showResult = true;\r\n });\r\n };\r\n\r\n @action closeRulesModal = () => {\r\n runInAction(() => {\r\n this.showRules = false;\r\n });\r\n };\r\n\r\n @action closeResultModal = () => {\r\n runInAction(() => {\r\n this.showResult = false;\r\n });\r\n };\r\n\r\n @action loadRound = async (roundCounter: string, gameCode: string) => {\r\n let round: IRound;\r\n this.loadingRoundInitial = true;\r\n try {\r\n round = await agent.Rounds.detail(\r\n roundCounter,\r\n gameCode\r\n );\r\n runInAction(\"getting round\", () => {\r\n this.round = round;\r\n this.loadingRoundInitial = false;\r\n });\r\n return round;\r\n } catch (error) {\r\n runInAction(\"getting round error\", () => {\r\n this.loadingRoundInitial = false;\r\n });\r\n console.log(error);\r\n }\r\n};\r\n}\r\n","import { observable, action, runInAction, toJS } from \"mobx\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { history } from \"../..\";\r\nimport { toast } from \"react-toastify\";\r\nimport {\r\n HubConnection,\r\n HubConnectionBuilder,\r\n HubConnectionState,\r\n LogLevel,\r\n} from \"@microsoft/signalr\";\r\nimport { WindDirection } from \"../models/windEnum\";\r\nimport { IRound } from \"../models/round\";\r\nimport { IRoundTile, TileType, TileValue } from \"../models/tile\";\r\nimport RoundStore from \"./roundStore\";\r\nimport GameStore from \"./gameStore\";\r\nimport UserStore from \"./userStore\";\r\nimport { IGamePlayer, IRoundOtherPlayer } from \"../models/player\";\r\nimport { GameStatus } from \"../models/gameStatusEnum\";\r\nimport { IGame } from \"../models/game\";\r\nimport { TileStatus } from \"../models/tileStatus\";\r\nimport { getWindOfEmptySeat, isBotUser, setGameProps } from \"../common/util/util\";\r\n\r\nexport default class HubStore {\r\n rootStore: RootStore;\r\n hubStore: HubStore;\r\n roundStore: RoundStore;\r\n gameStore: GameStore;\r\n userStore: UserStore;\r\n cooldownTime: number = 1500;\r\n roundTimeStamp: Date;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n this.hubStore = this.rootStore.hubStore;\r\n this.roundStore = this.rootStore.roundStore;\r\n this.gameStore = this.rootStore.gameStore;\r\n this.userStore = this.rootStore.userStore;\r\n this.roundTimeStamp = new Date();\r\n }\r\n\r\n @observable hubActionLoading: boolean = false;\r\n @observable hubLoading: boolean = false;\r\n @observable.ref hubConnection: HubConnection | null = null;\r\n\r\n sleep(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n }\r\n\r\n updateOtherPlayers(roundOtherPlayers: IRoundOtherPlayer[]) {\r\n roundOtherPlayers.forEach(() => {\r\n runInAction(\"updating other players\", () => {\r\n this.roundStore.round!.otherPlayers = roundOtherPlayers;\r\n });\r\n });\r\n }\r\n\r\n addHubConnectionHandler() {\r\n if (this.hubConnection) {\r\n this.hubConnection.on(\"UpdatePlayersWind\", (players: IGamePlayer[]) => {\r\n runInAction(() => {\r\n players.forEach((p) => {\r\n let curPlayer = this.rootStore.gameStore.game?.gamePlayers.find(\r\n (x) => x.userName === p.userName\r\n );\r\n if (curPlayer) {\r\n curPlayer.initialSeatWind = p.initialSeatWind;\r\n\r\n if (curPlayer.userName === this.userStore.user?.userName)\r\n this.rootStore.gameStore.game!.initialSeatWind =\r\n p.initialSeatWind;\r\n }\r\n });\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"GameEnded\", (game: IGame) => {\r\n runInAction(() => {\r\n if (this.rootStore.gameStore.game && this.rootStore.gameStore.game.code === game.code) {\r\n setGameProps(game, this.rootStore.userStore.user!);\r\n this.rootStore.gameStore.game = game;\r\n this.gameStore.gameRegistry.set(game.code, game);\r\n\r\n const gameHost = game.gamePlayers.find((p) => p.isHost);\r\n if (this.rootStore.userStore.user?.userName !== gameHost?.userName) {\r\n toast.info(`Game ${game.code} has ended`);\r\n }\r\n this.rootStore.roundStore.closeResultModal();\r\n }\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"PlayerStoodUp\", (player: IGamePlayer) => {\r\n runInAction(() => {\r\n let curPlayer = this.rootStore.gameStore.game?.gamePlayers.find(\r\n (x) => x.userName === player.userName\r\n );\r\n if (curPlayer) curPlayer.initialSeatWind = undefined;\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"PlayerSat\", (player: IGamePlayer) => {\r\n runInAction(() => {\r\n let curPlayer = this.rootStore.gameStore.game?.gamePlayers.find(\r\n (x) => x.userName === player.userName\r\n );\r\n if (curPlayer) curPlayer.initialSeatWind = player.initialSeatWind;\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"GameCancelled\", (gameCode: string) => {\r\n toast.info(`Host cancelled game ${gameCode}`);\r\n history.push(`/`);\r\n });\r\n\r\n this.hubConnection.on(\"UpdateRound\", (round: IRound) => {\r\n runInAction(\"updating round\", () => {\r\n this.roundStore.round = round;\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"RoundStarted\", (round: IRound) => {\r\n runInAction(() => {\r\n this.roundStore.showResult = false;\r\n this.roundStore.round = round;\r\n });\r\n history.push(\r\n `/games/${this.rootStore.gameStore.game!.code}/rounds/${\r\n this.roundStore.round!.roundCounter\r\n }`\r\n );\r\n });\r\n\r\n this.hubConnection.on(\"ReceiveChatMsg\", (chatMsg) =>\r\n runInAction(() => {\r\n this.gameStore.game!.chatMsgs.push(chatMsg);\r\n })\r\n );\r\n\r\n this.hubConnection.on(\"PlayerDisconnected\", (player) =>\r\n runInAction(() => {\r\n if (this.gameStore.game) {\r\n this.gameStore.game.gamePlayers = this.gameStore.game.gamePlayers.filter(\r\n (p) => p.userName !== player?.userName\r\n );\r\n\r\n //if its bot user then remove from currentBots\r\n if(isBotUser(player?.userName))\r\n {\r\n const indexOfBot = this.gameStore.currentBots.indexOf(player.userName)\r\n this.gameStore.currentBots.splice(indexOfBot, 1);\r\n }\r\n\r\n if (this.rootStore.userStore.user?.userName === player.userName) {\r\n this.gameStore.game.initialSeatWind = WindDirection.Unassigned;\r\n this.gameStore.game.isCurrentPlayerConnected = false;\r\n }\r\n\r\n this.gameStore.gameRegistry.set(\r\n this.gameStore.game.code,\r\n this.gameStore.game\r\n );\r\n if (\r\n this.rootStore.userStore.user?.userName !== player.userName &&\r\n this.gameStore.game.status === GameStatus.Created\r\n )\r\n toast.info(`${player.displayName} has left the Game`);\r\n }\r\n })\r\n );\r\n\r\n this.hubConnection.on(\"PlayerConnected\", (player: IGamePlayer) => {\r\n runInAction(() => {\r\n if (this.gameStore.game) {\r\n const exist = this.gameStore.game.gamePlayers.find(\r\n (p) => p.userName === player.userName\r\n );\r\n if (!exist) {\r\n this.gameStore.game.gamePlayers.push(player);\r\n\r\n if (this.rootStore.userStore.user?.userName !== player.userName)\r\n toast.info(`${player.displayName} has joined the Game`);\r\n }\r\n\r\n //if its bot user then remove from currentBots\r\n if(isBotUser(player.userName))\r\n {\r\n this.gameStore.currentBots.push(player.userName);\r\n }\r\n \r\n\r\n if (this.rootStore.userStore.user?.userName === player.userName) {\r\n this.gameStore.game.initialSeatWind = player.initialSeatWind;\r\n this.gameStore.game.isCurrentPlayerConnected = true;\r\n }\r\n\r\n this.gameStore.gameRegistry.set(\r\n this.gameStore.game.code,\r\n this.gameStore.game\r\n );\r\n }\r\n });\r\n });\r\n\r\n this.hubConnection.on(\"Send\", (message) => {\r\n toast.info(message);\r\n });\r\n }\r\n }\r\n\r\n @action leaveGroup = (gameCode: string) => {\r\n if (this.hubConnection!.state === \"Connected\")\r\n this.hubConnection!.invoke(\"RemoveFromGroup\", gameCode);\r\n };\r\n\r\n @action createHubConnection = async (gameCode: string) => {\r\n if (this.hubConnection == null) {\r\n this.hubConnection = new HubConnectionBuilder()\r\n .withUrl(\r\n `${process.env.REACT_APP_API_GAME_HUB_URL!}/?gcode=${gameCode}`,\r\n {\r\n accessTokenFactory: () => this.rootStore.commonStore.token!,\r\n }\r\n )\r\n .withAutomaticReconnect()\r\n .configureLogging(LogLevel.None)\r\n .build();\r\n this.addHubConnectionHandler();\r\n }\r\n if (\r\n this.hubConnection.state === HubConnectionState.Disconnected ||\r\n this.hubConnection.state === HubConnectionState.Disconnecting\r\n ) {\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n this.hubConnection\r\n .start()\r\n .then(() => {\r\n if (this.hubConnection!.state === \"Connected\")\r\n this.hubConnection?.invoke(\"JoinGame\", gameCode);\r\n })\r\n .then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n })\r\n .catch((error) => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n console.log(\"Error establishing connection\", error);\r\n });\r\n } else if (this.hubConnection!.state === \"Connected\") {\r\n this.hubConnection?.invoke(\"JoinGame\", gameCode);\r\n }\r\n };\r\n\r\n @action addBot = async (botGroup: string) => {\r\n try {\r\n const currentGameCode = this.rootStore.gameStore.game?.code;\r\n if (currentGameCode) {\r\n this.hubConnection!.invoke(\"AddBot\", currentGameCode, botGroup).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem adding bot to game\");\r\n }\r\n };\r\n\r\n @action botSit = async (botGroup: string) => {\r\n try {\r\n let values: any = {};\r\n const game = this.rootStore.gameStore.game;\r\n const currentGameCode = game?.code;\r\n if (currentGameCode) {\r\n values.gameCode = currentGameCode;\r\n //figure out empty seat\r\n values.InitialSeatWind = getWindOfEmptySeat(game?.gamePlayers!);\r\n this.hubConnection!.invoke(\"BotSit\", values, botGroup).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem telling bot to sit game\");\r\n }\r\n };\r\n\r\n @action botStandUp = async (botGroup: string) => {\r\n try {\r\n const currentGameCode = this.rootStore.gameStore.game?.code;\r\n if (currentGameCode) {\r\n this.hubConnection!.invoke(\"BotStandUp\", currentGameCode, botGroup).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem telling bot to standup game\");\r\n }\r\n };\r\n\r\n @action botLeave = async (botGroup: string) => {\r\n try {\r\n const currentGameCode = this.rootStore.gameStore.game?.code;\r\n if (currentGameCode) {\r\n this.hubConnection!.invoke(\"BotLeave\", currentGameCode, botGroup).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem telling bot to leave game\");\r\n }\r\n };\r\n\r\n @action addChatMsg = async (values: any) => {\r\n values.gameCode = this.gameStore.game!.code;\r\n try {\r\n this.hubConnection!.invoke(\"SendChatMsg\", values).catch(() => {\r\n toast.error(\"Unable to send chat message\");\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action endGame = async () => {\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n const currentGameCode = this.rootStore.gameStore.game?.code;\r\n if (currentGameCode) {\r\n this.hubConnection!.invoke(\"EndGame\", currentGameCode).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n });\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem ending game\");\r\n }\r\n };\r\n\r\n @action cancelGame = async (gameCode: string) => {\r\n //actually deleting game lol\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"CancelGame\", gameCode);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem cancelling game\");\r\n }\r\n };\r\n\r\n @action joinGame = async () => {\r\n const gameCode = this.gameStore.game!.code;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"JoinGame\", gameCode);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem joining to game\");\r\n }\r\n };\r\n\r\n @action leaveGame = async () => {\r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"LeaveGame\", values);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem leaving from game\");\r\n }\r\n };\r\n @action sitGame = async (seat: WindDirection) => {\r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n values.InitialSeatWind = seat;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"SitGame\", values);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem connecting to game\");\r\n }\r\n };\r\n\r\n @action standUpGame = async () => {\r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"StandUpGame\", values);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem disconnecting from game\");\r\n }\r\n };\r\n\r\n @action randomizeWind = async () => {\r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"RandomizeWind\", values);\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem randomizing game's wind\");\r\n }\r\n };\r\n\r\n @action tiedRound = async () => {\r\n this.hubActionLoading = true;\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n this.hubConnection!.invoke(\"TiedRound\", this.getGameAndRoundProps());\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem calling TiedRound\");\r\n }\r\n };\r\n\r\n @action endingRound = async () => {\r\n this.hubActionLoading = true;\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n this.hubConnection!.invoke(\"EndingRound\", this.getGameAndRoundProps());\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem calling EndingRound\");\r\n }\r\n };\r\n\r\n //this is same method as startround but set shufflenewseat value to true\r\n @action startRevenge = async () => { \r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n values.shuffleNewSeat = true;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"StartRound\", values).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n if (this.rootStore.gameStore.game)\r\n this.rootStore.gameStore.game.status = GameStatus.Playing;\r\n });\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem disconnecting from game\");\r\n }\r\n\r\n };\r\n\r\n @action startRound = async () => {\r\n let values: any = {};\r\n values.gameCode = this.gameStore.game!.code;\r\n values.shuffleNewSeat = false;\r\n runInAction(() => {\r\n this.hubLoading = true;\r\n });\r\n try {\r\n this.hubConnection!.invoke(\"StartRound\", values).then(() => {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n if (this.rootStore.gameStore.game)\r\n this.rootStore.gameStore.game.status = GameStatus.Playing;\r\n });\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubLoading = false;\r\n });\r\n toast.error(\"problem disconnecting from game\");\r\n }\r\n };\r\n\r\n @action winRound = async () => {\r\n this.hubActionLoading = true;\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\r\n \"WinRound\",\r\n this.getGameAndRoundProps()\r\n )\r\n .catch(() => {\r\n toast.error(`problem calling win`);\r\n })\r\n .then(() => {\r\n runInAction(() => {\r\n this.roundStore.showResult = true;\r\n this.hubActionLoading = false;\r\n });\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem calling win\");\r\n }\r\n };\r\n\r\n @action orderTiles = async (\r\n reorderedTiles: IRoundTile[],\r\n originalTiles: IRoundTile[],\r\n originalManualSort: boolean\r\n ) => {\r\n let values = this.getGameAndRoundProps();\r\n values.RoundTiles = reorderedTiles;\r\n values.IsManualSort = this.rootStore.roundStore.isManualSort;\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\"SortTiles\", values).catch(() => {\r\n toast.error(`failed ordering tile`);\r\n for (let i = 0; i < originalTiles!.length; i++) {\r\n let objIndex = this.rootStore.roundStore.mainPlayerAliveTiles!.findIndex(\r\n (obj) => obj.id === originalTiles![i].id\r\n );\r\n runInAction(\"updating reordered tile\", () => {\r\n this.rootStore.roundStore.mainPlayerAliveTiles![\r\n objIndex\r\n ].activeTileCounter = originalTiles![i].activeTileCounter;\r\n });\r\n }\r\n\r\n runInAction(\"manual Sort\", () => {\r\n this.rootStore.roundStore.isManualSort = originalManualSort;\r\n });\r\n });\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem ordering tile\");\r\n }\r\n };\r\n\r\n @action throwTile = async () => {\r\n let values = this.getGameAndRoundProps();\r\n values.tileId = this.roundStore.selectedTile?.id;\r\n values.clientTimeStamp = new Date().toISOString();\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n const currentRound = toJS(this.roundStore.round);\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n runInAction(\"throw tile initially\", () => {\r\n const tileToThrow = this.roundStore.selectedTile;\r\n if (tileToThrow) {\r\n //throw tile locally to show responsiveness XD\r\n\r\n //update board tile\r\n tileToThrow.owner = \"board\";\r\n tileToThrow.status = TileStatus.BoardActive;\r\n tileToThrow.thrownBy = this.userStore.user!.userName;\r\n this.roundStore.round!.boardTiles.push(tileToThrow);\r\n this.roundStore.round!.mainPlayer.mustThrow = false;\r\n\r\n //take off main player thrown tile\r\n const tilesWithoutThrown = currentRound!.mainPlayer?.playerTiles.filter(\r\n function (t) {\r\n return t.id !== tileToThrow.id;\r\n }\r\n );\r\n if (tilesWithoutThrown) {\r\n this.roundStore.round!.mainPlayer.playerTiles = tilesWithoutThrown;\r\n }\r\n }\r\n });\r\n this.hubConnection!.invoke(\"ThrowTile\", values).then(() => {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n //revert the optimistic throw tile lol\r\n const tileToThrow = this.roundStore.selectedTile;\r\n if (tileToThrow) {\r\n this.roundStore.round!.mainPlayer.mustThrow = true;\r\n this.roundStore.round!.mainPlayer.playerTiles.push(tileToThrow);\r\n const boardWithoutThrown = this.roundStore.round!.boardTiles.filter(\r\n (t) => t.id === tileToThrow.id\r\n );\r\n if (boardWithoutThrown) {\r\n this.roundStore.round!.boardTiles = boardWithoutThrown;\r\n }\r\n }\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem throwing tile\");\r\n }\r\n };\r\n\r\n @action throwAllTile = async () => {\r\n let values = this.getGameAndRoundProps();\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n this.hubConnection!.invoke(\"ThrowAllTiles\", values);\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem throwing all tile\");\r\n }\r\n };\r\n\r\n @action pickTile = async () => {\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\r\n \"PickTile\",\r\n this.getGameAndRoundProps()\r\n );\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem picking tile\");\r\n }\r\n };\r\n\r\n @action pong = async () => {\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\r\n \"PongTile\",\r\n this.getGameAndRoundProps()\r\n ).catch(() => {\r\n toast.error(`can't pong`);\r\n });\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n console.log(error);\r\n toast.error(\"problem invoking pong to hub \");\r\n }\r\n };\r\n\r\n @action chow = async (tiles: any[]) => {\r\n let values = this.getGameAndRoundProps();\r\n values.ChowTiles = tiles;\r\n\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\"ChowTile\", values).catch(() => {\r\n toast.error(`can't chow`);\r\n });\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem invoking chow to hub \");\r\n }\r\n };\r\n\r\n @action kong = async (tileType: TileType, tileValue: TileValue) => {\r\n let values = this.getGameAndRoundProps();\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n values.TileType = tileType;\r\n values.TileValue = tileValue;\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\"KongTile\", values).catch(() => {\r\n toast.error(`can't kong`);\r\n });\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem invoking kong to hub \");\r\n }\r\n };\r\n\r\n @action skipAction = async () => {\r\n runInAction(() => {\r\n this.hubActionLoading = true;\r\n });\r\n const tempAction = [...this.roundStore.mainPlayer!.activeActions];\r\n try {\r\n if (this.hubConnection && this.hubConnection.state === \"Connected\") {\r\n await this.hubConnection!.invoke(\r\n \"SkipAction\",\r\n this.getGameAndRoundProps()\r\n ).catch(() => {\r\n runInAction(() => {\r\n this.roundStore.mainPlayer!.activeActions = tempAction;\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(`can't skip`);\r\n });\r\n runInAction(() => {\r\n this.hubActionLoading = false;\r\n });\r\n } else {\r\n toast.error(\"disconnected from the game, please refresh your browser\");\r\n }\r\n } catch (error) {\r\n runInAction(() => {\r\n this.roundStore.mainPlayer!.activeActions = tempAction;\r\n this.hubActionLoading = false;\r\n });\r\n toast.error(\"problem skipping action\");\r\n }\r\n };\r\n\r\n updateMainPlayerTiles = (updatedTile: IRoundTile) => {\r\n let tileIdx = this.roundStore.round?.mainPlayer.playerTiles.findIndex(\r\n (t) => t.id === updatedTile.id\r\n );\r\n runInAction(\"updating tile\", () => {\r\n if (tileIdx)\r\n this.roundStore.round!.mainPlayer.playerTiles[tileIdx] = updatedTile;\r\n });\r\n };\r\n\r\n getGameAndRoundProps = () => {\r\n let values: any = {};\r\n values.gameId = this.gameStore.game?.id;\r\n values.gameCode = this.gameStore.game?.code;\r\n values.roundId = this.roundStore.round?.id;\r\n values.roundCounter = this.roundStore.round?.roundCounter;\r\n return values;\r\n };\r\n}\r\n","import { RootStore } from './rootStore';\r\nimport { observable, action, runInAction, computed } from 'mobx';\r\nimport agent from '../api/agent';\r\nimport { toast } from 'react-toastify';\r\nimport { IProfile, IPhoto } from '../models/profile';\r\n\r\nexport default class ProfileStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @observable profile: IProfile | null = null;\r\n @observable loadingProfile = true;\r\n @observable uploadingPhoto = false;\r\n @observable loading = false;\r\n @observable activeTab: number = 0;\r\n @observable loadingActivities = false;\r\n\r\n @computed get isCurrentUser() {\r\n if (this.rootStore.userStore.user && this.profile) {\r\n return this.rootStore.userStore.user.userName === this.profile.userName;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n @action setActiveTab = (activeIndex: number) => {\r\n this.activeTab = activeIndex;\r\n } \r\n\r\n @action loadProfile = async (userName: string) => {\r\n this.loadingProfile = true;\r\n try {\r\n const profile = await agent.Profiles.get(userName);\r\n runInAction(() => {\r\n this.profile = profile;\r\n this.loadingProfile = false;\r\n });\r\n } catch (error) {\r\n runInAction(() => {\r\n this.loadingProfile = false;\r\n });\r\n console.log(error);\r\n }\r\n };\r\n\r\n @action uploadPhoto = async (file: Blob) => {\r\n this.uploadingPhoto = true;\r\n try {\r\n const photo = await agent.Profiles.uploadPhoto(file);\r\n runInAction(() => {\r\n if (this.profile) {\r\n this.profile.photos.push(photo);\r\n if (photo.isMain && this.rootStore.userStore.user) {\r\n this.rootStore.userStore.user.image = photo.url;\r\n this.profile.image = photo.url;\r\n }\r\n }\r\n this.uploadingPhoto = false;\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n toast.error('Problem uploading photo');\r\n runInAction(() => {\r\n this.uploadingPhoto = false;\r\n });\r\n }\r\n };\r\n\r\n @action setMainPhoto = async (photo: IPhoto) => {\r\n this.loading = true;\r\n try {\r\n await agent.Profiles.setMainPhoto(photo.id);\r\n runInAction(() => {\r\n this.rootStore.userStore.user!.image = photo.url;\r\n this.profile!.photos.find(a => a.isMain)!.isMain = false;\r\n this.profile!.photos.find(a => a.id === photo.id)!.isMain = true;\r\n this.profile!.image = photo.url;\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n toast.error('Problem setting photo as main');\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action deletePhoto = async (photo: IPhoto) => {\r\n this.loading = true;\r\n try {\r\n await agent.Profiles.deletePhoto(photo.id);\r\n runInAction(() => {\r\n this.profile!.photos = this.profile!.photos.filter(\r\n a => a.id !== photo.id\r\n );\r\n this.loading = false;\r\n });\r\n } catch (error) {\r\n toast.error('Problem deleting the photo');\r\n runInAction(() => {\r\n this.loading = false;\r\n });\r\n }\r\n };\r\n\r\n @action updateProfile = async (profile: Partial) => {\r\n try {\r\n await agent.Profiles.updateProfile(profile);\r\n runInAction(() => {\r\n if (\r\n profile.displayName !== this.rootStore.userStore.user!.displayName\r\n ) {\r\n this.rootStore.userStore.user!.displayName = profile.displayName!;\r\n }\r\n this.profile = { ...this.profile!, ...profile };\r\n });\r\n } catch (error) {\r\n toast.error('Problem updating profile');\r\n }\r\n };\r\n}","import { RootStore } from './rootStore';\r\nimport { observable, action } from 'mobx';\r\n\r\nexport default class RuleStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable activeTab: number = 0;\r\n\r\n @action setActiveTab = (activeIndex: number) => {\r\n this.activeTab = activeIndex;\r\n } \r\n}","import {\r\n observable,\r\n action,\r\n runInAction,\r\n} from \"mobx\";\r\nimport agent from \"../api/agent\";\r\nimport { RootStore } from \"./rootStore\";\r\nimport { IBeatTheBotLadder } from \"../models/beatTheBotLadder\";\r\nimport { history } from \"../..\";\r\n\r\nexport default class BeaTheBotStore {\r\n rootStore: RootStore;\r\n constructor(rootStore: RootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n @observable activeTab: number = 0;\r\n @observable loadingLadderInitial = false;\r\n @observable beatTheBotLadders: IBeatTheBotLadder[] | null = null;\r\n\r\n @action setActiveTab = (activeIndex: number) => {\r\n this.activeTab = activeIndex;\r\n } \r\n\r\n @action submitBeatTheBotEntry = async (gameCode:string) => {\r\n const result = await agent.BeatTheBots.create(gameCode);\r\n if(result === 'success'){\r\n history.push(`/beatthebots/BeatTheBotSubmissionSuccess?gameCode=${gameCode}`);\r\n }\r\n }\r\n\r\n @action loadLadders = async () => {\r\n this.loadingLadderInitial = true;\r\n try {\r\n const laddersEnv = await agent.BeatTheBots.list();\r\n runInAction(\"loading ladder\", () => {\r\n this.beatTheBotLadders = laddersEnv.ladders;\r\n this.loadingLadderInitial = false;\r\n });\r\n } catch (error) {\r\n runInAction(\"load ladder error\", () => {\r\n this.loadingLadderInitial = false;\r\n });\r\n console.log(error);\r\n }\r\n };\r\n}","import GameStore from \"./gameStore\";\r\nimport UserStore from \"./userStore\";\r\nimport { createContext } from \"react\";\r\nimport { configure } from \"mobx\";\r\nimport CommonStore from \"./commonStore\";\r\nimport ModalStore from \"./modalStore\";\r\nimport RoundStore from \"./roundStore\";\r\nimport HubStore from \"./hubStore\";\r\nimport ProfileStore from \"./profileStore\";\r\nimport RuleStore from \"./ruleStore\";\r\nimport BeatTheBotStore from \"./beatTheBotStore\";\r\n\r\nconfigure({ enforceActions: \"always\" });\r\n\r\nexport class RootStore{\r\n beatTheBotStore: BeatTheBotStore;\r\n ruleStore: RuleStore;\r\n gameStore: GameStore;\r\n userStore: UserStore;\r\n commonStore: CommonStore;\r\n modalStore: ModalStore;\r\n roundStore: RoundStore;\r\n hubStore: HubStore;\r\n profileStore: ProfileStore;\r\n \r\n constructor(){\r\n this.beatTheBotStore = new BeatTheBotStore(this);\r\n this.ruleStore = new RuleStore(this);\r\n this.gameStore = new GameStore(this);\r\n this.userStore = new UserStore(this);\r\n this.commonStore = new CommonStore(this);\r\n this.modalStore = new ModalStore(this);\r\n this.roundStore = new RoundStore(this);\r\n this.hubStore = new HubStore(this);\r\n this.profileStore = new ProfileStore(this);\r\n }\r\n}\r\n\r\nexport const RootStoreContext = createContext(new RootStore());","import React, { useContext, Fragment } from \"react\";\r\nimport { Item, Label } from \"semantic-ui-react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport GameListItem from \"./GameListItem\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\n\r\nconst GameList: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { gamesGroupByDate } = rootStore.gameStore;\r\n return (\r\n \r\n {gamesGroupByDate.map(([group, games]) => (\r\n \r\n \r\n \r\n {games.map(game => (\r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\nexport default observer(GameList);\r\n","import React, { Fragment } from 'react';\r\nimport { Segment, Button, Placeholder } from 'semantic-ui-react';\r\nconst GameListItemPlaceholder = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Revenge!{\" \"}\r\n \r\n }\r\n position=\"right center\"\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\nexport default observer(ResultModal);\r\n","import React from \"react\";\r\nimport { Container, Segment, Header, List, Image } from \"semantic-ui-react\";\r\n\r\nconst RulesHands = () => {\r\n return (\r\n \r\n \r\n
Supported Hands Type
\r\n \r\n \r\n
Chicken (雞糊) - 0 pt
\r\n

Meld (winning hand) it’s a combination of pong/kong and chow that is NOT in a same suit.

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
Straight (平糊) - 1 pt
\r\n

Every meld is a chow

\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
Triplets (對對糊) - 3 pt
\r\n

Every meld is either a pong or kong

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
MixedOneSuit (清一色) - 3 pt
\r\n

Mix of tiles from one suit and honor tiles

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
AllOneSuit (全清一色) - 7 pt
\r\n

All tiles are from one suit

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
SevenPairs (七對) - 6 pt
\r\n

All tiles containing seven pairs

\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
ThirteenOrphans (十三腰) - 13 pt
\r\n

One of each 1, 9, wind, and dragon, and a 14th tile forming a pair with any of these.

\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n \r\n
SmallDragon (小三完) - 5 pt
\r\n

Melds of 2 dragons and a pair of the 3rd dragon

\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
BigDragon (大三完) - 10 pt
\r\n

Melds of all 3 dragons

\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
SmallFourWind (小四喜) - 13 pt
\r\n

Melds of 3 winds and a pair of the 4th wind

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
BigFourWind (大四喜) - 13 pt
\r\n

Melds of all 4 winds

\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
HiddenTreasure - 13 pt
\r\n

Four pong and all concealed and win by Self-Drawn

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
AllTerminals (全腰九) - 13 pt
\r\n

Hand containing Pongs/Kongs of Ones and Nines only

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
MixedTerminals (半腰九) - 7 pt
\r\n

Hand containing Pongs/Kongs of Ones and Nines and honor tiles

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n
AllHonors (全番子) - 10 pt
\r\n

All honor tiles

\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n \r\n
AllKongs - 13 pt
\r\n

Hand containing 4 Kongs

\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RulesHands;\r\n","import React from \"react\";\r\nimport { Container, Segment, Header, List } from \"semantic-ui-react\";\r\n\r\nconst RulesExtraPoints = () => {\r\n return (\r\n \r\n \r\n
Supported Extra Points
\r\n \r\n \r\n
SelfPick - 1 pt
\r\n

Win by picking your own winning tile

\r\n
\r\n\r\n \r\n
ConcealedHand - 1 pt
\r\n

Win by not forming any chow/pong/kong with discarded tile

\r\n
\r\n \r\n
SeatWind - 1 pt
\r\n

Win with meld of your own seat's wind

\r\n
\r\n \r\n
PrevailingWind - 1 pt
\r\n

Win with meld of current round wind

\r\n
\r\n\r\n \r\n
RedDragon - 1 pt
\r\n

Win with pong/kong of red dragon

\r\n
\r\n \r\n
GreenDragon - 1 pt
\r\n

Win with pong/kong of green dragon - 1 pt

\r\n
\r\n \r\n
WhiteDragon - 1 pt
\r\n

Win with pong/kong of white dragon

\r\n
\r\n\r\n \r\n
NoFlower - 1 pt
\r\n

Win with not getting any flower

\r\n
\r\n\r\n \r\n
RomanFlower - 1 pt
\r\n

Win with your seat flower

\r\n
\r\n\r\n \r\n
NumericFlower - 1 pt
\r\n

Win with your seat flower

\r\n
\r\n\r\n \r\n
AllFourFlowerSameType - 1 pt
\r\n

Win with 4 of same type of flower

\r\n
\r\n\r\n \r\n
WinOnLastTile - 1 pt
\r\n

Win by picking the last tile of the round

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default RulesExtraPoints;\r\n","import React, { useContext } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { Modal, Tab } from \"semantic-ui-react\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport RulesHands from \"../../rules/RulesHands\";\r\nimport RulesExtraPoints from \"../../rules/RulesExtraPoints\";\r\n\r\nconst RulesModal: React.FC = () => {\r\n const rootStore = useContext(RootStoreContext);\r\n const { showRules, closeRulesModal } = rootStore.roundStore;\r\n\r\n const panes = [\r\n {\r\n menuItem: { key: \"hands\", content: \"Hands\" },\r\n render: () => (\r\n \r\n \r\n \r\n ),\r\n },\r\n {\r\n menuItem: { key: \"extra_points\", content: \"Extra Points\" },\r\n render: () => (\r\n \r\n \r\n \r\n ),\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default observer(RulesModal);\r\n","export default __webpack_public_path__ + \"static/media/selfPick.a296d572.mp3\";","export default __webpack_public_path__ + \"static/media/playerAction.71f1b251.mp3\";","import React, { useContext, useState, SyntheticEvent, useEffect } from \"react\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport { IRoundTile, TileType } from \"../../../app/models/tile\";\r\nimport {\r\n GetPossibleKong,\r\n GetPossibleChow,\r\n} from \"../../../app/common/util/tileHelper\";\r\nimport { toJS } from \"mobx\";\r\nimport _ from \"lodash\";\r\nimport { toast } from \"react-toastify\";\r\nimport {\r\n Button,\r\n Card,\r\n CardProps,\r\n Transition,\r\n Container,\r\n} from \"semantic-ui-react\";\r\nimport { PlayResult } from \"../../../app/models/playResultEnum\";\r\nimport useSound from \"use-sound\";\r\nimport selfPickSfx from \"../../../app/common/sounds/selfPick.mp3\";\r\nimport playerActionSfx from \"../../../app/common/sounds/playerAction.mp3\";\r\nimport btnClickSfx from \"../../../app/common/sounds/btnClick.mp3\";\r\n\r\nconst PlayerAction: React.FC = () => {\r\n const [playSelfPickSfx] = useSound(selfPickSfx);\r\n const [playPlayerActionSfx] = useSound(playerActionSfx);\r\n const [playbtnClickSfx] = useSound(btnClickSfx);\r\n const rootStore = useContext(RootStoreContext);\r\n const { gameIsOver, gameSound } = rootStore.gameStore;\r\n const {\r\n openResultModal,\r\n showResult,\r\n round,\r\n mainPlayer,\r\n boardActiveTile,\r\n hasChowAction,\r\n hasPongAction,\r\n hasKongAction,\r\n hasGiveUpAction,\r\n hasWinAction,\r\n hasSelfKongAction,\r\n hasSelfWinAction,\r\n hasNonSelfPickAction,\r\n } = rootStore.roundStore;\r\n const {\r\n pickTile,\r\n endingRound,\r\n pong,\r\n kong,\r\n chow,\r\n hubActionLoading,\r\n winRound,\r\n skipAction,\r\n } = rootStore.hubStore;\r\n\r\n const [kongOptions, setKongOptions] = useState([]);\r\n const [chowOptions, setChowOptions] = useState([]);\r\n const [isWinner, setIsWinner] = useState(false);\r\n const buttonAnimation = \"jiggle\";\r\n const buttonAnimationDuration = 500;\r\n const hasAction = mainPlayer!.activeActions.length > 0;\r\n\r\n useEffect(() => {\r\n if (round?.roundResults) {\r\n const currentPlayerWin = round.roundResults?.find(\r\n (r) =>\r\n r.playResult === PlayResult.Win && r.userName === mainPlayer?.userName\r\n )!;\r\n if (currentPlayerWin) {\r\n setIsWinner(true);\r\n }\r\n }\r\n }, [round?.roundResults, mainPlayer?.userName]);\r\n\r\n useEffect(() => {\r\n if (gameSound) {\r\n if (hasSelfWinAction) {\r\n playSelfPickSfx();\r\n }\r\n if (hasNonSelfPickAction) {\r\n playPlayerActionSfx();\r\n }\r\n }\r\n }, [\r\n hasSelfWinAction,\r\n hasNonSelfPickAction,\r\n playSelfPickSfx,\r\n playPlayerActionSfx,\r\n gameSound,\r\n ]);\r\n\r\n const clearKongOptions = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n setKongOptions([]);\r\n };\r\n\r\n const clearChowOptions = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n setChowOptions([]);\r\n };\r\n\r\n const doOpenResultModal = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n openResultModal();\r\n };\r\n\r\n const doGiveUp = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n endingRound();\r\n };\r\n const doPickTile = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n pickTile();\r\n };\r\n\r\n const doSkipAction = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n clearChowOptions();\r\n skipAction();\r\n };\r\n const doWinRound = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n winRound();\r\n };\r\n\r\n const doPong = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n clearChowOptions();\r\n pong();\r\n };\r\n\r\n const selectTilesToKong = (event: SyntheticEvent, data: any) => {\r\n try {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n kong(data.kongtiles[0], data.kongtiles[1]);\r\n clearKongOptions();\r\n } catch (ex) {\r\n toast.error(`failed konging`);\r\n }\r\n };\r\n\r\n const doChow = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n let boardActiveTile = rootStore.roundStore.boardActiveTile;\r\n\r\n //if board tile is dragon or wind then user cant chow\r\n if (\r\n boardActiveTile?.tile.tileType === TileType.Dragon ||\r\n boardActiveTile?.tile.tileType === TileType.Wind ||\r\n boardActiveTile?.tile.tileType === TileType.Flower\r\n ) {\r\n toast.error(`can't chow`);\r\n return;\r\n }\r\n\r\n let playerActiveTiles = rootStore.roundStore.mainPlayerActiveTiles;\r\n let chowTilesOptions: Array = GetPossibleChow(\r\n boardActiveTile!,\r\n playerActiveTiles!\r\n );\r\n\r\n if (chowTilesOptions.length === 1) {\r\n const ct = chowTilesOptions[0];\r\n chow([ct[0].id, ct[1].id]);\r\n } else if (chowTilesOptions.length > 1) {\r\n let cardDisplay: CardProps[] = [];\r\n _.forEach(chowTilesOptions, function (tileSet) {\r\n let cardObj: CardProps = {};\r\n const tileOne = tileSet[0];\r\n const tileTwo = tileSet[1];\r\n cardObj.key = tileOne.id;\r\n cardObj.style = { width: \"68px\" };\r\n cardObj.className = \"raised\";\r\n cardObj.content = (\r\n
\r\n
\r\n
\r\n
\r\n );\r\n cardObj.onClick = selectTilesToChow;\r\n cardObj.chowtiles = [tileOne.id, tileTwo.id];\r\n cardDisplay.push(cardObj);\r\n });\r\n setChowOptions(cardDisplay);\r\n } else {\r\n toast.error(`can't chow`);\r\n }\r\n };\r\n\r\n const selectTilesToChow = (event: SyntheticEvent, data: any) => {\r\n try {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n chow(data.chowtiles);\r\n clearChowOptions();\r\n } catch (ex) {\r\n toast.error(`failed chowing`);\r\n }\r\n };\r\n\r\n const doKong = () => {\r\n if (gameSound) {\r\n playbtnClickSfx();\r\n }\r\n let validTileForKongs: IRoundTile[] = GetPossibleKong(\r\n mainPlayer!.isMyTurn,\r\n mainPlayer?.playerTiles!,\r\n boardActiveTile!\r\n );\r\n clearChowOptions();\r\n\r\n if (validTileForKongs.length === 1) {\r\n let kt = toJS(validTileForKongs[0]);\r\n kong(kt.tile.tileType, kt.tile.tileValue);\r\n } else if (validTileForKongs.length > 1) {\r\n let cardDisplay: CardProps[] = [];\r\n _.forEach(validTileForKongs, function (rt) {\r\n let cardObj: CardProps = {};\r\n cardObj.key = rt.id;\r\n cardObj.style = { width: \"34px\" };\r\n cardObj.className = \"raised\";\r\n cardObj.content = (\r\n
\r\n );\r\n cardObj.onClick = selectTilesToKong;\r\n cardObj.kongtiles = [rt.tile.tileType, rt.tile.tileValue];\r\n cardDisplay.push(cardObj);\r\n });\r\n setKongOptions(cardDisplay);\r\n } else {\r\n toast.error(`can't kong`);\r\n }\r\n };\r\n return (\r\n \r\n {kongOptions.length > 0 && (\r\n \r\n )}\r\n\r\n {chowOptions.length > 0 && (\r\n \r\n )}\r\n\r\n {!gameIsOver && hasAction && hasChowAction && chowOptions.length === 0 && (\r\n \r\n \r\n \r\n )}\r\n\r\n {chowOptions.length > 1 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default observer(PlayerAction);\r\n","import { IRoundTile, TileValue, TileSetGroup } from \"../../models/tile\";\r\nimport _ from \"lodash\";\r\nimport { TileStatus } from \"../../models/tileStatus\";\r\n\r\nexport const GetPossibleChow = (\r\n boardActiveTile: IRoundTile,\r\n playerActiveTiles: IRoundTile[]\r\n): Array => {\r\n let chowTilesOptions: Array = [];\r\n\r\n let sameTypeChowTiles = playerActiveTiles.filter(\r\n (t) =>\r\n t.tile.tileType === boardActiveTile.tile.tileType &&\r\n t.tile.tileValue !== boardActiveTile.tile.tileValue\r\n );\r\n\r\n // If the board active tile is one\r\n if (boardActiveTile.tile.tileValue === TileValue.One) {\r\n const tileTwo = sameTypeChowTiles?.find(\r\n (t) => t.tile.tileValue === TileValue.Two\r\n );\r\n const tileThree = sameTypeChowTiles?.find(\r\n (t) => t.tile.tileValue === TileValue.Three\r\n );\r\n\r\n if (tileTwo && tileThree) {\r\n let twoThreeArray: IRoundTile[] = [tileTwo, tileThree];\r\n chowTilesOptions.push(twoThreeArray);\r\n }\r\n // If the board active tile is nine\r\n } else if (boardActiveTile.tile.tileValue === TileValue.Nine) {\r\n const tileSeven = sameTypeChowTiles?.find(\r\n (t) => t.tile.tileValue === TileValue.Seven\r\n );\r\n const tileEight = sameTypeChowTiles?.find(\r\n (t) => t.tile.tileValue === TileValue.Eight\r\n );\r\n\r\n if (tileSeven && tileEight) {\r\n let sevenEightArray: IRoundTile[] = [tileSeven, tileEight];\r\n chowTilesOptions.push(sevenEightArray);\r\n }\r\n // if not one or nine\r\n } else {\r\n let possibleTiles = sameTypeChowTiles?.filter(\r\n (t) =>\r\n t.tile.tileValue === boardActiveTile!.tile.tileValue - 2 ||\r\n t.tile.tileValue === boardActiveTile!.tile.tileValue + 2 ||\r\n t.tile.tileValue === boardActiveTile!.tile.tileValue + 1 ||\r\n t.tile.tileValue === boardActiveTile!.tile.tileValue - 1\r\n );\r\n\r\n if (possibleTiles && possibleTiles.length > 1) {\r\n //remove dups\r\n possibleTiles = _.uniqWith(\r\n possibleTiles,\r\n (a, b) =>\r\n a.tile.tileType === b.tile.tileType &&\r\n a.tile.tileValue === b.tile.tileValue\r\n );\r\n\r\n //now we try to get possible tiles to chow\r\n for (var i = 0; i < possibleTiles.length; i++) {\r\n let t = possibleTiles[i];\r\n let testChowTiles: IRoundTile[] = [];\r\n testChowTiles.push(t);\r\n testChowTiles.push(boardActiveTile!);\r\n testChowTiles.sort((a, b) => a!.tile.tileValue - b!.tile.tileValue);\r\n\r\n let probableTile;\r\n if ((t.tile.tileValue + boardActiveTile!.tile.tileValue) % 2 !== 0) {\r\n //then these two tiles is connected\r\n probableTile = possibleTiles.find(\r\n (t) => t.tile.tileValue === testChowTiles[1].tile.tileValue + 1\r\n );\r\n } else {\r\n //then these two tiles is not connected\r\n probableTile = possibleTiles.find(\r\n (t) => t.tile.tileValue === testChowTiles[0].tile.tileValue + 1\r\n );\r\n }\r\n if (probableTile) {\r\n chowTilesOptions.push(\r\n [probableTile, t].sort(\r\n (a, b) => a!.tile.tileValue - b!.tile.tileValue\r\n )\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n //remove dups\r\n chowTilesOptions = _.uniqWith(chowTilesOptions, (a, b) => {\r\n let foundDups = true;\r\n var firsta = _.find(b, function (t) {\r\n return t.tile.tileValue === a[0].tile.tileValue;\r\n });\r\n var seconda = _.find(b, function (t) {\r\n return t.tile.tileValue === a[1].tile.tileValue;\r\n });\r\n\r\n if (!firsta || !seconda) foundDups = false;\r\n\r\n return foundDups;\r\n });\r\n\r\n return chowTilesOptions;\r\n};\r\n\r\nexport const GetPossibleKong = (\r\n isPlayerTurn: boolean,\r\n playerTiles: IRoundTile[],\r\n boardActiveTile: IRoundTile\r\n): IRoundTile[] => {\r\n const mainPlayerAliveTiles = _.filter(\r\n playerTiles,\r\n (t) => t.status === TileStatus.UserActive || t.status === TileStatus.UserJustPicked\r\n );\r\n\r\n let validTileForKongs: IRoundTile[] = [];\r\n\r\n var kongTiles = _.chain(playerTiles)\r\n .groupBy((asd) => `${asd.tile.tileType}-${asd.tile.tileValue}`)\r\n .filter((asd) => asd.length > 2)\r\n .value();\r\n\r\n _.forEach(kongTiles, function (ts) {\r\n //if player has 3 same tiles and not in graveyard, they can kong matching board active tile anytime even if its not their turn\r\n if (ts.length === 3) {\r\n let userActive = _.filter(\r\n ts,\r\n (t) => t.status !== TileStatus.UserGraveyard\r\n );\r\n if (\r\n userActive.length === 3 &&\r\n boardActiveTile &&\r\n userActive[0].tile.tileType === boardActiveTile.tile.tileType &&\r\n userActive[0].tile.tileValue === boardActiveTile.tile.tileValue\r\n )\r\n validTileForKongs.push(boardActiveTile);\r\n }\r\n\r\n if (ts.length === 4 && isPlayerTurn) {\r\n //if its player's turn\r\n //if player has 3 same tiles that's ponged, player can kong only from their active and just picked tile\r\n let pongedTile = _.filter(\r\n ts,\r\n (t) => t.tileSetGroup === TileSetGroup.Pong\r\n );\r\n if (pongedTile.length === 3) {\r\n //check if user active tile\r\n let tileIsAlive = _.filter(\r\n mainPlayerAliveTiles,\r\n (t) =>\r\n t.tile.tileValue === pongedTile[0].tile.tileValue &&\r\n t.tile.tileType === pongedTile[0].tile.tileType\r\n );\r\n\r\n if (tileIsAlive.length > 0) validTileForKongs.push(tileIsAlive[0]);\r\n }\r\n\r\n //if tile is not in graveyard, then player can kong when its his turn\r\n let allTileAlive = _.filter(\r\n ts,\r\n (t) => t.status !== TileStatus.UserGraveyard\r\n );\r\n if (allTileAlive.length === 4) validTileForKongs.push(allTileAlive[0]);\r\n }\r\n });\r\n\r\n return validTileForKongs;\r\n};\r\n","import React, { useContext, useEffect, Fragment } from \"react\";\r\nimport {\r\n Grid,\r\n Button,\r\n Header,\r\n Segment,\r\n Container,\r\n List,\r\n Icon,\r\n} from \"semantic-ui-react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { observer } from \"mobx-react-lite\";\r\nimport { RouteComponentProps } from \"react-router\";\r\nimport { LoadingComponent } from \"../../../app/layout/LoadingComponent\";\r\nimport { RootStoreContext } from \"../../../app/stores/rootStore\";\r\nimport TileListBoard from \"./TileListBoard\";\r\nimport MainPlayerSection from \"./MainPlayerSection\";\r\nimport TileListOtherPlayer from \"./TileListOtherPlayer\";\r\nimport { DragDropContext, DropResult, Droppable } from \"react-beautiful-dnd\";\r\nimport { runInAction, toJS } from \"mobx\";\r\nimport TileListOtherPlayerVertical from \"./TileListOtherPlayerVertical\";\r\nimport ResultModal from \"./ResultModal\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IRoundTile } from \"../../../app/models/tile\";\r\nimport RulesModal from \"./RulesModal\";\r\nimport { IPayPoint } from \"../../../app/models/game\";\r\nimport PlayerAction from \"./PlayerAction\";\r\n// import useSound from \"use-sound\";\r\n// import tileThrowSfx from \"../../../app/common/sounds/tileThrow.mp3\";\r\n\r\ninterface DetailParams {\r\n roundCounter: string;\r\n code: string;\r\n}\r\n\r\n//https://github.com/clauderic/react-sortable-hoc\r\n\r\nconst GameOn: React.FC> = ({ match }) => {\r\n // const [play] = useSound(tileThrowSfx);\r\n const rootStore = useContext(RootStoreContext);\r\n const {\r\n loadingGameInitial,\r\n loadGame,\r\n game,\r\n gameIsOver,\r\n soundOff,\r\n soundOn,\r\n gameSound,\r\n } = rootStore.gameStore;\r\n const {\r\n loadingRoundInitial,\r\n round,\r\n loadRound,\r\n mainPlayer,\r\n leftPlayer,\r\n rightPlayer,\r\n topPlayer,\r\n mainPlayerAliveTiles,\r\n mainPlayerGraveYardTiles,\r\n boardActiveTile,\r\n boardGraveyardTiles,\r\n openRulesModal,\r\n roundEndingCounter,\r\n } = rootStore.roundStore;\r\n const {\r\n throwTile,\r\n orderTiles,\r\n hubLoading,\r\n createHubConnection,\r\n leaveGroup,\r\n } = rootStore.hubStore;\r\n\r\n const getStyle = (isDraggingOver: boolean) => ({\r\n background: isDraggingOver ? \"lightblue\" : \"\",\r\n borderStyle: \"dashed\",\r\n borderColor: \"rgb(211 211 244)\",\r\n display: \"flex\",\r\n overflow: \"none\",\r\n alignItem: \"center\",\r\n justifyContent: \"center\",\r\n height: \"45px\",\r\n });\r\n\r\n useEffect(() => {\r\n createHubConnection(match.params.code);\r\n return () => {\r\n leaveGroup(match.params.code);\r\n };\r\n }, [createHubConnection, leaveGroup, match.params.code]);\r\n\r\n useEffect(() => {\r\n runInAction(() => {\r\n rootStore.commonStore.showNavBar = false;\r\n rootStore.commonStore.showFooter = false;\r\n });\r\n return () => {\r\n runInAction(() => {\r\n rootStore.commonStore.showNavBar = true;\r\n rootStore.commonStore.showFooter = true;\r\n });\r\n };\r\n }, [rootStore.commonStore]);\r\n\r\n useEffect(() => {\r\n if (rootStore.gameStore.game == null) loadGame(match.params.code);\r\n return () => {\r\n runInAction(() => (rootStore.gameStore.game = null));\r\n };\r\n }, [loadGame, match.params.code, rootStore.gameStore]);\r\n\r\n useEffect(() => {\r\n if (rootStore.roundStore.round == null)\r\n loadRound(match.params.roundCounter, match.params.code);\r\n return () => {\r\n runInAction(() => (rootStore.roundStore.round = null));\r\n };\r\n }, [\r\n loadRound,\r\n match.params.roundCounter,\r\n match.params.code,\r\n rootStore.roundStore,\r\n ]);\r\n\r\n if (\r\n loadingGameInitial ||\r\n loadingRoundInitial ||\r\n !game ||\r\n !round ||\r\n hubLoading\r\n )\r\n return ;\r\n\r\n const getActiveTileAnimation = (): string => {\r\n let animationStyle: string = \"\";\r\n if (!gameIsOver) {\r\n switch (boardActiveTile?.thrownBy) {\r\n case leftPlayer?.userName: {\r\n animationStyle = \"fly right\";\r\n break;\r\n }\r\n case rightPlayer?.userName: {\r\n animationStyle = \"fly left\";\r\n break;\r\n }\r\n case topPlayer?.userName: {\r\n animationStyle = \"fly down\";\r\n break;\r\n }\r\n case mainPlayer?.userName: {\r\n animationStyle = \"fly up\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return animationStyle;\r\n };\r\n\r\n const doThrowTile = (tileId: string) => {\r\n if (gameIsOver) {\r\n toast.warn(\"Can't throw because host ended this game\");\r\n return;\r\n }\r\n\r\n if (\r\n mainPlayer!.isMyTurn &&\r\n mainPlayer!.mustThrow &&\r\n !round.isOver &&\r\n !round.isEnding\r\n ) {\r\n runInAction(\"throwingtile\", () => {\r\n rootStore.roundStore.selectedTile = mainPlayerAliveTiles?.find(\r\n (t) => t.id === tileId\r\n )!;\r\n });\r\n // play();\r\n throwTile();\r\n } else {\r\n toast.warn(\"Can't throw\");\r\n }\r\n };\r\n\r\n const reorderTiles = (\r\n activeTiles: IRoundTile[],\r\n startIndex: number,\r\n endIndex: number\r\n ) => {\r\n const result = Array.from(activeTiles);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n for (let i = 0; i < result.length; i++) {\r\n runInAction(() => {\r\n result[i].activeTileCounter = i;\r\n });\r\n }\r\n return result;\r\n };\r\n\r\n const onDragEnd = async (result: DropResult) => {\r\n const { destination, source, draggableId } = result;\r\n\r\n if (!destination) {\r\n return;\r\n }\r\n\r\n if (destination.droppableId === \"board\") doThrowTile(draggableId);\r\n\r\n if (destination.droppableId === \"tile\") {\r\n if (source.index === destination.index) return;\r\n\r\n const beforeOrderingTiles = Array.from(\r\n toJS(mainPlayerAliveTiles!, { recurseEverything: true })\r\n );\r\n const beforeOrderingManualSortValue = toJS(\r\n rootStore.roundStore.isManualSort\r\n );\r\n\r\n const reorderedTiles = reorderTiles(\r\n mainPlayerAliveTiles!,\r\n source.index,\r\n destination.index\r\n );\r\n\r\n runInAction(\"manual Sort\", () => {\r\n rootStore.roundStore.isManualSort = true;\r\n });\r\n\r\n await orderTiles(\r\n reorderedTiles,\r\n beforeOrderingTiles,\r\n beforeOrderingManualSortValue\r\n );\r\n }\r\n };\r\n\r\n //there gotta be more elegant way to do this lol\r\n const getCalculationResult = (): IPayPoint[] => {\r\n //if there is no player with negative points then there gotta be something wrong lol\r\n let bodyResult: IPayPoint[] = [];\r\n\r\n const tiePlayers = game.gamePlayers.slice().filter((p) => p.points === 0);\r\n const gameWinners = Array.from(\r\n toJS(game.gamePlayers.filter((p) => p.points > 0)!, {\r\n recurseEverything: true,\r\n })\r\n );\r\n const gameLosers = Array.from(\r\n toJS(game.gamePlayers.filter((p) => p.points < 0)!, {\r\n recurseEverything: true,\r\n })\r\n );\r\n\r\n if (gameLosers.length === 1) {\r\n //then 1 person pays to all the winners\r\n var sadLoserName = gameLosers[0].displayName;\r\n gameWinners.forEach((w) => {\r\n const res: IPayPoint = {\r\n from: sadLoserName,\r\n to: w.displayName,\r\n point: w.points,\r\n };\r\n bodyResult.push(res);\r\n });\r\n } else if (\r\n gameLosers.length === 3 ||\r\n (gameLosers.length === 2 && tiePlayers.length > 0)\r\n ) {\r\n let proWinnerName = gameWinners[0].displayName;\r\n gameLosers.forEach((l) => {\r\n const res: IPayPoint = {\r\n from: l.displayName,\r\n to: proWinnerName,\r\n point: l.points * -1,\r\n };\r\n bodyResult.push(res);\r\n });\r\n } else if (gameLosers.length === 2) {\r\n //there should be 2 winners and 2 losers here\r\n //calculate with least amount of transaction\r\n const sortedLosersLessToMore = gameLosers\r\n .slice()\r\n .sort((a, b) => b.points - a.points);\r\n\r\n const sortedWinners = gameWinners\r\n .slice()\r\n .sort((a, b) => a.points - b.points);\r\n if (sortedLosersLessToMore[0].points * -1 === sortedWinners[0].points) {\r\n for (let i = 0; i < 2; i++) {\r\n const transfer: IPayPoint = {\r\n from: sortedLosersLessToMore[i].displayName,\r\n to: sortedWinners[i].displayName,\r\n point: sortedWinners[i].points,\r\n };\r\n bodyResult.push(transfer);\r\n }\r\n } else {\r\n //there will be 3 transaction here\r\n const remainder =\r\n sortedWinners[1].points - sortedLosersLessToMore[0].points * -1;\r\n const firstTransaction: IPayPoint = {\r\n from: sortedLosersLessToMore[0].displayName,\r\n to: sortedWinners[1].displayName,\r\n point: sortedLosersLessToMore[0].points * -1,\r\n };\r\n bodyResult.push(firstTransaction);\r\n\r\n const secondTransaction: IPayPoint = {\r\n from: sortedLosersLessToMore[1].displayName,\r\n to: sortedWinners[1].displayName,\r\n point: remainder,\r\n };\r\n bodyResult.push(secondTransaction);\r\n\r\n const lastRemainder = sortedLosersLessToMore[1].points * -1 - remainder;\r\n const thirdTransaction: IPayPoint = {\r\n from: sortedLosersLessToMore[1].displayName,\r\n to: sortedWinners[0].displayName,\r\n point: lastRemainder,\r\n };\r\n bodyResult.push(thirdTransaction);\r\n }\r\n }\r\n return bodyResult;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/* Top Player */}\r\n \r\n \r\n \r\n \r\n \r\n {topPlayer && }\r\n \r\n \r\n \r\n {gameSound ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n \r\n {/* Left Player */}\r\n \r\n {leftPlayer && (\r\n \r\n )}\r\n \r\n\r\n {/* Board */}\r\n \r\n \r\n \r\n \r\n \r\n {gameIsOver && (\r\n \r\n \r\n \r\n \r\n
\r\n \r\n Game Over{\" \"}\r\n
\r\n
\r\n \r\n {getCalculationResult().length > 0 ? (\r\n \r\n {getCalculationResult().map((r, i) => (\r\n \r\n

\r\n {r.from} {\"->\"} {r.to} : {r.point} pts{\" \"}\r\n

\r\n
\r\n ))}\r\n
\r\n ) : (\r\n

\r\n Hmmm... play more maybe? nothing to calculate\r\n

\r\n )}\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n {round?.isEnding && (\r\n \r\n
\r\n Round ending in {roundEndingCounter}\r\n
\r\n
\r\n )}\r\n\r\n {mainPlayer?.mustThrow && !gameIsOver && !round.isOver && (\r\n \r\n {(provided, snapshot) => (\r\n \r\n \r\n \r\n
\r\n {provided.placeholder}\r\n
\r\n )}\r\n \r\n )}\r\n \r\n \r\n\r\n {/* Right Player */}\r\n \r\n {rightPlayer && (\r\n \r\n )}\r\n \r\n \r\n\r\n {/* Main Player */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default observer(GameOn);\r\n","import React from 'react';\r\nimport { FieldRenderProps } from 'react-final-form';\r\nimport { FormFieldProps, Form, Label } from 'semantic-ui-react';\r\n\r\ninterface IProps\r\n extends FieldRenderProps,\r\n FormFieldProps {}\r\n\r\nconst TextAreaInput: React.FC = ({\r\n input,\r\n width,\r\n rows,\r\n placeholder,\r\n meta: { touched, error }\r\n}) => {\r\n return (\r\n \r\n