Kill as many as the angry faces as possible, destroying as much white walls while using as few balls.

Controls: Use the mouse to click on the area you want to shoot. The ball cannot be shot if you click behind or below it. Use keys 0-9 to skip to a level. L turns on Lindsay Mode (rocks will fall down).

All art is made by me in paint.net. Some scripts have been altered from the tutorials, as well as from the following sources:

vishmaster 2022, 'How can i change the Cinemachine priority via script??', Unity Forums, viewed 12 June 2023  <https://forum.unity.com/threads/how-can-i-change-the-cinemachine-priority-via-sc...>.

PANTSLORD 2018, 'Getting object hit with raycast', Unity Forums, viewed 9 June 2023, <https://forum.unity.com/threads/getting-object-hit-with-raycast.573982/>.

Eric5h5 2013, 'How to change sprite image from script?' , Unity Forums, viewed 7 June 2023, <https://forum.unity.com/threads/how-to-change-sprite-image-from-script.212307/>.

Features:

My comments are in Italics.

Projectile shooting

When mouse button pressed (1 mark), projectile shoots towards mouse (1 mark).

Projectile aiming constraints Projectile can't move further than a given radius from the "mouth" of the "slingshot" (1 mark). Projectile can't be aimed anywhere but inside the bottom-left quadrant of a circle of that same radius (2 marks). (Note: player can only aim above and right of the ball.)
Projectile movement

Projectile follows a ballistic trajectory, i.e. like a ball thrown through the air (1 mark).

Projectile collisions Projectiles collide with the terrain, obstacles, and the enemies (1 mark).
Projectile damage

Projectiles that directly hit an enemy will kill it (except for Level 6 where the enemies have shields) (1 mark). 

Projectiles that directly hit a block will break it (1 mark). ( Note: white blocks only; doesn't work on level 7 for some reason)

Broken blocks and dead enemies

Objects in the level that have been killed/broken are immediately destroyed (1 mark).

Next turn

The next projectile can be shot once the previous projectile (is shot and) after 5 seconds has elapsed (1 mark).

Ammo

The player should start each level with 5 ammo (1 mark). Each shot should reduce the ammo count by one (1 mark).

On levels with special projectiles the first 2 ammo should be of the special type and the remaining 3 should be normal projectiles (2 marks).

Level completion / game over The level ends in two ways: when the player has run out of ammo (and some of the enemies are still alive) (1 mark), and when all the enemies have been killed (1 mark).
Visual style and feel Game is aesthetically pleasing, and levels play well. 
Trail Projectile has a trail (1 mark).
Lindsay-Mode Pressing L drops a large heavy boulder on the play area containing blocks/enemies and it acts like a projectile (1 mark). Boulder can appear anywhere over the play area at random (1 mark).
Title screen with level select Can be same or separate scenes (note that if using separate scenes, SceneSwitcherKeys script will need to be modified -- see exam lecture). Should have title (1 mark), a suitable background (1 mark), and a way of jumping to all levels through the UI (3 marks).
In-game UI The amount of ammo remaining is visually shown (1 mark). (Note: seen on top of screen, usually to the left)
Start of level text Display a message for 2 seconds: level number and title (1 mark), brief description of that level's mechanics (1 mark). Animated (1 mark).
End of level success text Display a congratulations screen for 3 seconds after a level is completed (1 mark). Shows a final level score (1 mark). Score is correctly calculated as follows (1 mark):
100000 – (10000 * ammo used) +
   (1000 * enemies killed) + (100 * blocks destroyed) 
End of level failure text Display a failure screen for 3 seconds after all ammo is used without killing all enemies (1 mark).
Level 1 – Default
Functionality
Simple level with no modifications.
Level 2 – Bomb

Functionality Projectile explodes upon collision (1 mark), and effects all physics objects within it's explosion radius (1 mark).


Level 3 – Multi-shot

Functionality When spacebar is pressed, projectile splits into three (1 mark) with the two new projectiles having similar trajectories to the original projectile, but one diverging left and one right (1 mark).

Extra projectile functionality Each extra projectile functions just like a the main projectile both visually (1 mark) and in functionality, i.e. projectile still hits objects and can damage enemies (1 mark).
Level 4 – Homing Missiles
4 Functionality Projectiles move on normal (i.e. ballistic) trajectory for one second (1 mark) and then starts homing towards an enemy (1 mark). Homing missiles should increase speed as they move towards the enemy (1 mark).
1 Visual Feedback Homing missile should have a visual representation of the change from ballistic movement to homing movement (1 mark).
Level 5 – Moving Bouncy Barriers

Moving bouncy barriers Moving barriers follow a predetermined path (1 mark) and cause projectiles to bounce of them appropriately (1 mark). (Note: couldn't figure out how to get them to move back and forth; they stop after reaching their destination)

Correctly resetting Barriers only reset when level is reloaded, not after each shot (1 mark). 
Level 6 – Enemy Shields

Shield Enemies have shields that must be hit three times (1 mark) before enemies can be destroyed (1 mark).

Visual feedback

Shield shows a different visual representation (e.g. health bar, coloured shield, etc.) for EACH level of "health" (2 marks).

Level 7 – Laser Bomb

Functionality The laser bomb projectile spins as it moves (1 mark) and shoots lasers in four directions (i.e. in a + pattern) (1 mark).  Lasers can't penetrate blocks (1 mark). 
Level 8 – Cinemachine

Level Introduction Level is larger and camera initially shows the entire level for one second (1 mark) before focusing on the "slingshot" area (1 mark).

During Play After projectile is fired, camera frames the projectile and all the remaining enemies, but not the "slingshot" area (1 mark). Continues to do so until projectiles are destroyed and a new turn begins, and then smoothly transitions back to framing the "slingshot" area (1 mark). (Note: after one ball in thrown, after the next balls are thrown, the camera focuses on the angry faces only, and not the ball as well)
Level 9 – Free Choice (Reverse Gravity)

Playability  

Uniqueness  The angry faces and walls are on the ceiling, and so can the ball after a certain point. 

Functionality
Level 10 – Free Choice (Mirror Level)

Playability  

Uniqueness The ball is on the right side of the screen (including the score), and everything else is on the right. The limits of where you can shoot the ball have been altered accordingly (top left instead of top right side).

Functionality


Leave a comment

Log in with itch.io to leave a comment.