Stephen Seo
090b8bbd30
Fix crash bug
2022-05-06 11:32:20 +09:00
Stephen Seo
1872c4877e
Fix bug: board not updated on win/lose/draw
2022-05-04 14:55:01 +09:00
Stephen Seo
f4f3ad7a5b
Refactorings, fix bug where board doesn't update
...
Also silence warnings related to unused code since the front-end and
back-end share some code.
2022-05-03 13:18:07 +09:00
Stephen Seo
b2ea79a7f7
Impl conditionally update front-end board
...
When the front-end polls the back-end for the game-state, the back-end includes
a "date_updated" String in the JSON. If the String is the same as in the
front-end, then no updates are needed, but if they are not the same, then the
front-end will update the board. Because the front-end polls the back-end's
board state approximately every second, this should make the front-end more
efficient.
2022-04-30 16:44:48 +09:00
Stephen Seo
b4eaba09c5
Refactorings/Fixes related to emoting
2022-04-29 19:21:59 +09:00
Stephen Seo
105cd880f2
Impl sending/receiving emotes
2022-04-29 18:30:41 +09:00
Stephen Seo
f799bae530
front-end: Minor refactorings fixes
2022-04-29 12:12:01 +09:00
Stephen Seo
b158e7347e
front-end: Minor refactorings
2022-04-29 11:37:15 +09:00
Stephen Seo
e6152331b0
front-end: minor refactoring
2022-04-29 11:23:03 +09:00
Stephen Seo
e77d25996d
front-end: fix repeated disconnects on close
...
When the front-end connects to the back-end, it creates a callback that
sends a disconnect message with the received ID on "pagehide" and
"beforeunload" events. The previous implementation did not "undo" these
callbacks when the game was reset and a new ID was received. This fix
prevents the front-end from resending disconnect messages with
previously received IDs on browser window/tab close.
2022-04-29 11:08:54 +09:00
Stephen Seo
174875b88b
back-end/front-end: Rust clippy fixes/refactorings
2022-04-27 16:51:57 +09:00
Stephen Seo
059d0608b6
Impl match players via phrase
...
Front-end now has option to input phrase on game start.
Fixed back-end accepting empty strings (will treat empty strings as if
no phrase was given).
2022-04-27 12:47:45 +09:00
Stephen Seo
e060d94186
front-end: Minor fix related to reset button
2022-04-25 15:19:25 +09:00
Stephen Seo
b26c9ff6d1
front-end: Impl Reset button
2022-04-25 15:02:18 +09:00
Stephen Seo
2aa4200835
Fix not "disconnecting" (hopefully on mobile too)
...
Sometimes the player would not disconnect from the Network Multiplayer
session on the back-end. Seems to work on PC browsers, not so well with
moblie browsers. This commit hopefully fixes this for mobile browsers.
2022-04-08 12:41:20 +09:00
Stephen Seo
70eb1ca121
Fix not "disconnecting" on refresh (hopefully)
2022-04-08 12:17:15 +09:00
Stephen Seo
ee8187cabb
Fix not "disconnecting" on page close/refresh
...
Hopefully this works this time.
2022-04-08 12:01:15 +09:00
Stephen Seo
284f294c6d
Fix not "disconnecting" on refresh
2022-04-08 11:55:31 +09:00
Stephen Seo
392fc5e7f0
Fix whitespace in edited classes, try fix unload
...
The method to send the disconnect on page close was changed, but it is
still uncertain if it works correctly.
2022-04-08 11:42:18 +09:00
Stephen Seo
74ca3fd696
Add GPL3 Licence headers to sources
2022-04-06 20:49:54 +09:00
Stephen Seo
91c9eab05e
Fix messages being displayed on networked game end
2022-04-06 20:17:27 +09:00
Stephen Seo
59bdcc2a34
Tweak "board to string" and back for better info
2022-04-06 20:09:22 +09:00
Stephen Seo
567cec9500
Minor tweaks (and `cargo fmt` got aggressive)
2022-04-06 19:38:59 +09:00
Stephen Seo
89b9bf860b
Working multiplayer between frontend backend
...
WIP Need to set the URL and host the backend on the website.
2022-04-06 18:43:17 +09:00
Stephen Seo
8c84aae173
605.607 WIP! working get-id and disconnect
...
The frontend "server" and backend server must be served via the same
port/address. This can be done by using nginx as the server, and using
reverse-proxies from nginx to the frontend and backend servers.
2022-04-06 13:39:12 +09:00
Stephen Seo
8712d4cd8b
frontend: WIP! request id in progress
...
Frontend is able to successfully send a Request, but is failing to
get/parse the Response.
2022-04-05 18:16:04 +09:00
Stephen Seo
83a9ab2ea0
frontend: WIP! in progress setting up id request
2022-04-04 18:25:17 +09:00
Stephen Seo
e4d4d6e153
Move enum from yew_components mod to state mod
...
Preparation for symlinking shared code into the backend project.
2022-03-29 14:41:04 +09:00
Stephen Seo
839e9021fa
Refactor: Replace calling JS settimeout with Rust
...
web-sys and js-sys provides ways to use "settimeout" in pure Rust which
is used instead of calling into Javascript to do "settimeout".
2022-03-23 16:56:25 +09:00
Stephen Seo
ebf0cb5bb8
Impl async delay on AI choice
...
This commit is also a stepping-stone towards handling http requests
which will require deferred callbacks on Yew Components. By figuring
out how to delay callbacks in this commit, it should be easier to
figure out how to handle http requests that may require a deferred
callback.
2022-03-15 13:16:09 +09:00
Stephen Seo
414740b7ce
Reorder code to print winning move
...
Previously, the winning move was not printed at the bottom info_text.
2022-03-10 18:16:30 +09:00
Stephen Seo
92f91672fa
Fix infinite loop bug, refactorings/fixes
2022-03-10 17:01:34 +09:00
Stephen Seo
89a12623b4
Incorporate game AI into game
...
Can select from three difficulties, and the AI makes their move when it
is their turn. AI probably still needs some tweaking..
2022-03-10 16:17:16 +09:00
Stephen Seo
e35870b240
Impl placed token indicator, fixes/refactorings
2022-03-10 15:43:03 +09:00
Stephen Seo
7e9718a743
Refactorings and linter fixes
2022-03-09 18:14:01 +09:00
Stephen Seo
76e6d3be52
Impl buttons indicator that won the game
2022-03-09 18:10:13 +09:00
Stephen Seo
b902b1c7b4
Impl use of win/draw check, fixes
...
Also added unit tests for win/draw checks.
2022-03-09 17:29:53 +09:00
Stephen Seo
5e2c5b6d41
Minor refactoring
...
Use "From<>" instead of "Into<>" for MainMenuMessage to GameState.
2022-03-07 13:14:57 +09:00
Stephen Seo
130cc42d86
Impl main menu
...
Only "LocalMultiplayer" can be chosen for the game-mode since neither
AI nor Networked-Multiplayer has been implemented yet.
2022-03-04 16:22:30 +09:00
Stephen Seo
079bf6229f
Impl convenience functions, refactoring
2022-03-03 18:01:46 +09:00
Stephen Seo
462dec9ea1
Remove NodeRef for getter, improve turn indicator
...
All NodeRefs have been removed in favor of "getElementById".
Turn indicator is now much more obvious to see.
2022-03-03 17:36:51 +09:00
Stephen Seo
52b841d98a
Replace slot "ref" with "id"
2022-03-03 14:08:35 +09:00
Stephen Seo
5390e4f9cf
Minor impl: add default messages to info_texts
2022-03-02 19:22:36 +09:00
Stephen Seo
2fb5a18636
Minor refactoring
...
Changed the "Msg" type of "Wrapper" from "String" to "WrapperMsg".
2022-03-02 19:19:50 +09:00
Stephen Seo
3b4d8b3483
Impl additional info text box, drop logic
...
Can place tokens, and not place tokens where there already is a token.
Additional info text box added to the side of the board.
More information to the UI regarding placed tokens.
2022-03-02 17:51:14 +09:00
Stephen Seo
4c8e330c05
Fix comment typo
2022-03-02 16:27:19 +09:00
Stephen Seo
8838dbae69
Cleanup and fixes
...
Remove state::MessageBus in favor of String messages sent to Wrapper
from Slot.
Update Slot state from inside Wrapper::update such that changes should
be immediately visible per Slot (moved code from Wrapper::rendered,
fixing updates not being immediately visble).
2022-03-02 16:25:01 +09:00
Stephen Seo
7e82a6e787
Minor fix to usage of html element for info_text
2022-03-02 15:47:43 +09:00
Stephen Seo
45e2c88745
Reverse info_text vertically
...
info_text's latest messages now appear at the top instead of at the
bottom.
2022-03-02 15:38:24 +09:00
Stephen Seo
15c7dc7654
Reorganize front-end source into modules
2022-03-02 15:18:21 +09:00