Skip to content

Latest commit

 

History

457 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚔️ Endless Night

A 2D, Java based game where the player fights off monsters in waves while levelling up attack skills. The goal is to survive all 22 waves.


👾 Monsters

  • Basic Monsters: Standard enemies that chase and damage the player when making contact. In ascending order of strength, they include the: Shadeling, Gloomspawn, Vampire Bats, Shadow Slasher, Obsidian Maw, Withering Wraith, Midnight Abyss, and Chaos Demon.

  • Bosses: Special enemies with extremely powerful attacks and increased health. They appear at the end of the game from waves 20-22, and include

    • The Void Titan, which dashes to player every few seconds.
    • The Eclipse Harbinger, which unleashes instant-kill beams every 4-6 seconds.
    • Anthony's Wrath, which gravitationally sucks players in and deals unbelievable damage!

🌀 Skills

  • Attack Skills: Player automatically attacks using different homing attack skills with unique effects:

    • Luminous Pulse does radial area damage.
    • Light Lance shoots a beam across the map that damages all enemies it touches.
    • Photon Orbs produces mini blue orbs that float to the nearest enemy that comes within close range.
    • Angelic Summons creates angel entities that attack and knock back the nearest monster.
    • Starfall Ritual creates omni-directional projectiles of starlight that damage all enemies they pass through.
  • Levelling: After each wave, the player has the option to level up a skill. Three randomly selected skills will appear on screen to choose to level up. The maximum level a skill can be levelled up to is 3; the player must choose another skill to level up afterwards.

  • Super Skills: When all skills are level 3, the player gains access to levelling skills into Super skills with advanced abiltities relevant to the maxed-out attack skill they are replacing.

    • Solar Flare stuns all enemies across the screen every few seconds.
    • Prismatic Ray shoots beams that split into a rainbow of 5 smaller rays upon hitting the first enemy.
    • Celestial Constellation creates orbs that explode on impact and do slight area damage.
    • Archangel spawns a massive, very powerful angel that remains on the map and attacks monsters.
    • Cosmic Cataclysm shoots meteors toward the player's cursor.
  • Damage Numbers: Floating numbers display how much damage was dealt by each attack on each monster.


🧩 Other Features

  • Health bars for both player and boss enemies.
  • Progress bars for monsters killed and monsters left to be killed before the next wave.
  • Multiple sprite frames to create the illusion of movement (Victor's back hurts!).
  • Sound effects and music various sound effects and music to make the game more interactive.
  • Wall wrapping player can pass through walls to other side of screen to make more interesting survival strategies.
  • Game Countdown 3 second timer before each round starts.
  • Knockback When the player comes in contact with monsters

🎮 Controls

Action Key
Move Up W
Move Down S
Move Left A
Move Right D

🏁 End Conditions

  • Victory: All enemy waves are cleared and bosses are defeated. A win screen celebrates your success.
  • Defeat: Player HP drops to 0 and the game over screen appears.

🛠 Debug Mode

The game includes an optional debug menu with developer tools such as infinite health, max upgrades and wave selection. To enable the menu, set DEBUG_MODE to true in Settings.java and recompile. When enabled, a "DEBUG MENU" button appears on the main menu.


🙏 Acknowledgements

  • Game design, programming, and visuals by Jerry Li and Victor Jiang.
  • Java 17+

About

ICS4U1 Summative

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages