Skip to main content Link Search Menu Expand Document (external link)

Theme: auto

Grading and Taking it Further

Grading Specifications

To receive a grade of B, you must have the following:

  1. TiledBGComponent correctly loads the CSV file in LoadTileCSV and draws the tiles (with the correct calculated rectangles) in Draw
  2. Link can walk with the WASD keys. Multiple WASD key presses has Link in one of the pressed directions. The correct walking animation plays based on the direction, and the correct standing animation plays when not moving. The camera centers on and follows Link around as he walks
  3. The Collider, Soldier, and Bush are created from the CSV. Link can’t walk through Colliders, and you can at least see the Soldier/Bushes even if they do not do anything.
  4. The A* algorithm is implemented in PathFinder::CalculatePath. (We should be able to minimally confirm that the path is calculated correctly for every soldier.)
  5. Soldiers follow their patrol path and when they reach the end of it, reverse their path and continue forever. Soldiers play the correct animation when they walk. All soldiers are visible in the level (the full Objects.csv file which contains several soldiers).
  6. Link swings his sword in the correct direction on leading edge of the spacebar. EnemyComponent supports hit points and taking damage. Link cannot walk through enemies and can deal damage to them using the Sword collision. Soldiers die in two hits and the bushes in one.
  7. The OnDamage and OnDeath callbacks are implemented in EnemyComponent, and minimally used to trigger the soldier “stun” and the bush clearing the path node.
  8. The Effect class is implemented as specified and used for the bush death, soldier damage, and soldier death as appropriate. Link sword swing and damage sound effect plays as expected. "MusicStart.ogg" plays initially and then after it finishes, "MusicLoop.ogg" plays looping forever.

Keep in mind that for an A, you will also want to check for warnings on your GitHub actions, and make sure you are writing good quality code. We will do a code review and let you know what changes we think you should make, and you will have an opportunity to apply those changes to improve your grade during the regrade period.

For a C, you need to complete at least half (4/8) specs.

Taking it Further!! (Optional)

Here are some ideas on things you could add to this lab. As a reminder, doing this will have no impact on your lab grade. You do not need to implement any of these to get an A. Similarly, you could implement these and not get an A if you have other issues! Adding anything extra is purely “for fun” and for your own personal education and enjoyment.

  • There are quite a few additional images in Assets/HUD that you can use to show a HUD including the current health as well as the number of rupees Link has
  • You could make it so when bushes die, sometimes they randomly spawn a rupee that Link can pick up. There is a basic rupee animation in "Assets/Rupee" and a pickup sound in "Assets/Sounds/Rupee.wav"
  • You could make it so Link takes damage if he runs into the front of an enemy. You could use the HUD to display the hearts as you take damage. Then, make it so sometimes killing an enemy or a bush spawns a heart that you can pick up to regain some health. The images for the heart are in "Assets/Heart" and a pickup sound in "Rupee.wav"
  • Add a secret passage that you can trigger by pushing something and play the "Secret.wav" sound when it happens