Skip to content

Conversation

@HardManDev
Copy link
Owner

@HardManDev HardManDev commented Feb 27, 2023

  1. Task: https://github.com/rolling-scopes-school/tasks/blob/master/tasks/rsclone/rsclone.md
  2. Screenshot:
    image
  3. Deploy: https://hardmandev-rs-clone.netlify.app/

Warning
If you are having problems making requests to the server, please make sure your browser is not blocking third-party cookies

  1. Done 27.02.2023 / deadline 27.02.2023 23:59 UTC
  2. Score: 620 / 620

Features:

Back-end - 100

  • All API endpoints correctly respond to requests (no empty responses, responses are marked with HTTP codes, if the request fails, an error message and error code are included in the response body) (30)
  • REST API approach implemented (10)
  • JWT token authentication and authorization is implemented. (10)
  • Some endpoints are protected against unauthorized access (10)
  • Local Provider logon is implemented (10)
  • Implemented login with local ISP (with username and password) (10)
  • User access token stored in cookies (5)
  • Implemented saving of a player's account (with limits and pagination and sorting options) (5)
  • Implemented getting the leaderboard (via query parameters you can set limits and use pagination and sorting) (5)
  • Validation of input data has been implemented (an incorrect query will return a 400 error, and the attached message will tell you what went wrong) (5)

Front-end for back-end features - 50

  • Login and registration form implemented (10)
  • Implemented user profile (5)
  • Leadership table is available without authorization (10)
  • Leaderboards have pagination (5)
  • Implemented best table for the current player (10)
  • Validated login fields (5)
  • Patches are provided for tables with missing content (5)

Level - 50

  • Level is set and load by map with positions of all entities (Dave, enemies, walls, platforms, loot) (10)
  • At any time player sees only the part of all level (view area with fixed size) (10)
  • Popup with control keys appears when level loaded. It can be closed by mouse click (10)
  • At left top corner there is Dave's ammo count, updating when playing game (10)
  • Below ammo there is Dave's life count and player's score, updating when playing game (10)

Dave’s movement - 50

  • Dave has a sprite picture and player can move Dave left or right by arrow keys with animation (2)
  • Player can force Dave to jump by space key with animation (3)
  • Player can force Dave to move left or right while jumping. Animation also changes (5)
  • Dave can stand on solid surfaces. (5)
  • Dave has to fall if no solid surface underneath (3)
  • Velocity of Dave increases while falling down (2)
  • The whole level scrolls in view area when Dave is moving across level (5)
  • There is a small rectangle area at the center of view area where Dave can move without scroll of whole level (5)
  • There is no scroll of level when Dave move close to level's edges (5)
  • Dave can't move thru solid surfaces when moving left, right, jumping or falling (5)
  • Dave can jump on surfaces (trees, boxes, stairs etc.) (5)
  • Player can force Dave to jump down from surfaces by pressing down arrow and space (5)

Monsters - 100

  • Level has 2 types of monsters: Zombie and Crone (10)
  • Zombie has a sprite picture and always move left or right with animation (10)
  • Crone has a sprite picture and always move left or right with animation (10)
  • Crone moves faster than Zombie (10)
  • All monsters can't move thru solid surfaces (10)
  • When monster beats the wall it changes moving direction (10)
  • If Dave is visible to Zombie (in view area) it changes moving direction to Dave (10)
  • If where is a wall between Dave and Zombie within view area then Zombie starts moving randomly near the wall (10)
  • If Dave is closer to Zombie, then Zombie can attack within small amount of time (5)
  • Crone always throws a knife at a random time (5)
  • All knives move horizontally till they beat the wall or Dave (5)
  • Knives can't move thru walls. If knife meets the wall then it destroys (5)

Shooting and killing monsters - 200

  • By pressing left Alt player can force Dave to shoot left or right (10)
  • By pressing up or down arrows player can force Dave to take aim on the top or bottom. The look of Dave has to be changed. (10)
  • By pressing left Alt together with up or down arrows player can force Dave to shoot up or down (10)
  • When Dave shoots he has shot recoil. But Dave can't recoil further than wall behind (10)
  • Dave can't shoot thru walls (10)
  • The shot distance is limited by view area in any shoot direction (10)
  • Platforms (trees, stairs etc.) are not blocking shots (10)
  • Monsters have it’s own health. Zombie and Crone have health of 2 (5)
  • Dave will hit monster by shot if direction of shot crosses monster (10)
  • If there are several monsters on shot direction then only closest monster has to take damage (10)
  • Dave’s gun has 8 ammo. Each shot reduces ammo by 1 (10)
  • When Dave is standing still and ammo is not full, then after a short time Dave starts to reload weapon till full ammo (10)
  • If player forces Dave to move or shoot while reloading weapon, then Dave stops reloading (10)
  • If there is no ammo, then shots have no effect on monsters (5)
  • Each shot reduces monster health by 1 (5)
  • When monster takes damage it splashes for a little time (10)
  • If monster health is 0, then it dies by exploding to pieces of meat (10)
  • The count of meat pieces is 4, each meat has random deviation of direction (10)
  • Piece of meat can’t move thru walls (10)
  • Piece of meat can land on surfaces (trees, boxes, stairs) (10)
  • Each piece of meat has to disappear after a random time (10)
  • Player get score by each monster killed. Each monster type has its own score. (5)

Death of Dave - 20

  • Dave has 3 lives (4)
  • Dave can be killed by one shot (from Zombie or Crone’s knife) (4)
  • Each death has an animation depending on monster, which killed Dave (4)
  • After death game restarts the whole level, but score remains and the count of lives reduced by 1 (4)
  • After losing all lives “GAME OVER” popup appears (4)

Looting - 30

  • There are silver doors in the level that can be opened when Dave id near and player press up arrow button. Picture of door changes (6)
  • If there is a loot inside then it shows on screen (6)
  • Player can grab the loot by forcing Dave to cross picture of loot (6)
  • There are 3 types of loot in the level with different score (6)
  • Player get score from grabbed loot (6)

Game Over - 10

  • At top right corner of level there is exit door, by pressing up arrow player can force Dave to open door, by pressing the same button again - exit from level with animation (5)
  • when game is over all scores saves to player’s account (5)

Sound effects - 10

  • Played when closing controls popup at the start of the game (1)
  • Played when Dave starts to jump and fall to solid surface (2)
  • Played when Dave shoots (2)
  • Played when Dave reloads weapon (2)
  • Played when Dave try to shot with empty ammo (2)
  • Played when Dave picks up loot (1)

HardManDev and others added 30 commits February 5, 2023 02:49
…rkflows' into feature/create-github-actions-workflows
…orkflows

Create GitHub actions workflows
…iable-definition

Webpack environment variable definition
…er-movement

Сreate level area, player move
@HardManDev HardManDev added client for client code server for server code feature for new functionality github for github workflows labels Feb 27, 2023
@HardManDev HardManDev self-assigned this Feb 27, 2023
@netlify
Copy link

netlify bot commented Feb 27, 2023

Deploy Preview for hardmandev-rs-clone ready!

Name Link
🔨 Latest commit
🔍 Latest deploy log https://app.netlify.com/sites/hardmandev-rs-clone/deploys/6404ba4cea7cbb2904a395b9
😎 Deploy Preview https://deploy-preview-122--hardmandev-rs-clone.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

client for client code feature for new functionality github for github workflows server for server code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants