The typing game is coming along nicely.
The above image shows the boss battle which happens after the player goes through the 4 areas. It has its own health bar, music and death animation. The words are also harder than all the others in the game to make it a challenge for the player.
The way he works, is that once the last enemy of area 4 gets killed, a BeginBossBattle event gets called. The boss begins to move towards the player at a slow pace. If the boss reaches the player before getting killed then it instantly kills the player.
One of my favourite systems in the game is the scoring system. Every enemy killed by the player grants them an additional 10 to their score. Also every enemy kill increases the player's multiplier which affects the enemy kill score. Although if the player presses the wrong letter on a word, their multiplier goes back down to 1. There is a max of 10 on the multiplier.
At the end of the game, if the player wins or loses they are presented the game over screen which shows them their score and stats. The final score is affected by their game score, words per minute, health and if they killed the boss or not.
goScore.text = "Score: +" + Game.game.score + "\nWPM: " + Game.game.CalculateWPM() + " +" + (Game.game.CalculateWPM() * 10) + "\nHealth: " + Player.player.health + " +" + (Player.player.health * 10) + ((Player.player.health > 0)?("\nKilled Boss: +1500") :("")) + "\n\n<b>Final Score: " + Game.game.CalculateFinalScore() + "</b>";
Displaying this text requires quite a long line of code as seen above.
Another thing that I implemented was a muzzle flash. Every time the player enters a letter correctly, the muzzle flash enables then disables quickly, to simulate shooting. Like on the previous assignment, I used Emission on the material to make the flash look like a light source, as well as actually having one on top of that. Doing this just provides more visual feedback to the player so that they know the letter they typed was correct instantly.