Added two font awesome icons to the navbar links 'Rooms' and 'Watch'. Icon for player name also added in the layout.js file. This gives a more visual and interactive touch to the action links and personalizes the player name link.
A new package '@fortawesome/fontawesome-free' has been added to Aiursoft.ChessServer's package.json. This inclusion will allow for more extensive use of icons and improve the overall user interface experience.
A link to the Font Awesome CSS library has been added to the layout. This update will make Font Awesome icons available across the application views, improving the user interface design options.
The drag-start logic in the chessboard.js file was changed for simplification. The onMouseoverSquare function was removed and its functionality was moved into the onDragStart function. In addition to that, variable and argument names were also modified to increase readability.
An additional check has been added to the chessboard.js script in the ChessServer application. This check ensures that if the game is over, no further moves are allowed to be made, improving the game flow and overall user experience.
This code change ensures that mouseover triggers on chess pieces only work for the player whose turn it is currently. The function onMouseoverSquare now has a condition that returns nothing if the game's turn does not match the player's color.
A change has been made to the styling of the "Send" button in the chat component to include rounded corners. The update provides a softer aesthetic to the button, improving the visual appearance and user experience.
Moved AcceptedChallenge, ChatMessage, and ChatMessageResponse classes to individual files from Challenge.cs. This change enhances the organization and readability of the code, allowing each class definition to reside in its own dedicated file.
The chat feature in the Chess Server web application is now refactored to use WebSockets, allowing real-time communication between players during a game. The message display logic has been moved to a separate script file, and a ChatController handles incoming WebSocket connections. This update has drastically improved chat interactivity and real-time performance.
Cleaned up HomeController in ChessServer by removing unused namespaces. This improves the readability and maintainability of the code, making it less cluttered and easier to understand.
The challenge creation and accepting logic has been refactored into a separate ChallengesController. This includes the addition of several new views, changes to existing ones, and backend logic improvements. Irrelevant 'Home' controller codes have been removed. Also, better error handling has been added to the 'PlayersController'.
Several test methods in the ChessServer module have been refactored for better readability and maintainability. A new method, CreateChallengeForTest, was introduced to reduce redundancy. The use of unnecessary imports in the InMemoryDatabase class has also been tidied up.
This commit adds enhancements and refactors existing logic in the chess game. The modifications convert single-player games into multiplayer, introducing logic for accepting and managing game challenges, and displaying player information. Changes include retrieving a player's color via a new API, switching to represent watch mode visually, and restructuring the challenge acceptance flow
The test initialization method within BasicTests.cs has been simplified for improved code readability. Additionally, redundant playerId argument has been removed from RedirectToAction calls within HomeController.cs, streamlining redirection methods.
Changed the default initialization of Accepter, GameId, and Game properties in Challenge model. Also modified how the 'autodark.js' and 'player.js' scripts are imported in 'layout.js' to use relative paths for better compatibility.
Introduced capability to accept a challenge, updated challenge viewer model to include challenge id, and updated the In-Memory database to handle adding new games. The corresponding endpoint was updated and the front-end scripts were added to handle challenge acceptance and game redirection. Changes were also made to ensure challenges are only seen when not accepted in the public view.