Welcome to Night City....
Cyberpunk 207 is a turned-base tabletop card game. In the game, five players will take on different identities, divided into three camps (police, criminals, and corpo) to advance towards their respective goals. Here are their winning objectives:
Police Chief: Death of Criminal and Corpo.
Police: Help Police Chief to achieve his goals
Corpo: Death of other characters
Criminal: Death of Police Chief and Police
Run the GameLauncher class located in the directory
Each character has 3 life points, the police chief has 4 life points, and the character dies when life goes to zero. Police die if the police chief dies. Before the game starts, every player is assigned their camps and draws 4 cards from the deck in hands for future use. The police chief must immediately show his/her identity with the other players remaining hidden until they die. Then the game plays clockwise. At the beginning of each player’s turn, they draw 2 cards from the deck. Each player can attack other players using different cards to decrease enemies' life, and players can also use the corresponding cards for defence. Each player can only attack one adjacent player without a weapon card or mount card equipped. Equipping a weapon card or mount card can increase or decrease the player's distance from other players (+1 distance means the player's attack range increases by one on each side). Different skill cards also have different distances for use. The game design will be based on the background of the world of Cyberpunk 2077 and expand somewhat, aiming to let people know more about the cyber world.
- LoginPage - 1st page for login and register
- RulePage - 2nd page displaying rules
- GamePage - 3rd page where the primary game is displayed (you can see information on yourself and other players to play the game)
- Updated Clean Architecture structure in project, restructured the program into 7 unique use cases and created individual controllers, presenters and interfaces for each of them
- Connected use case with front end UI following clean architecture rules
- Updated GitHub usage with commenting and review for new pull requests
- Updated readme file for the project
- Updated testing for entity, use cases and UI
- Updated documentation for all codes and corrected naming conventions for all classes
- Corrected bugs and errors that effected functionality of the program
- Factory design pattern used in the implementation of cards
- Observer design pattern used in updating game board information for the game
- Singleton design pattern used in view models in all use cases of the project
- We follow clean architecture model for all use cases in our project
- All seven use cases interacts with UI through their individual presenter and controllers, boundaries are also implemented to prevent dependency across layers
- Response and request models are implemented to contain information of the game
- Login system also used serialization to interact with local database that stores login information
- Test coverage includes most card entity to ensure their individual functionality
- Also tested all seven use cases to ensure their normal functionality within the game