Welcome to the FPS Shooter Game! This is a first-person shooter game with multiple levels, various pick-up items, and a scoring system. The game is designed to provide an exciting and challenging experience with different states and features.
- End Goal: Complete all the levels (currently two levels implemented).
- Gun Pickup: Available at the start of every level along with various other pick-up items.
- Mag Pickup: Increases the ammo.
- Health Can Pickup: Increases the health.
- Extra Life Pickup: Adds another life.
- Game Over State: Triggered when all lives are depleted.
- Score System: Increments when an enemy is defeated or gold is collected.
-
Main Menu State:
- The first scene in the game where the player can choose to start or quit the game.
-
Level 1:
- Initiated by the
newGame()function call after selecting "New Game" in the main menu. - Features one extra life, three enemies, and gold.
- Includes a locked door that can be unlocked with a key found within the level.
- Initiated by the
-
Floor Complete State:
- Retrieves information from
GlobalScore,GlobalHealth, andGlobalCompletescripts and displays it in the UI. - Displays the time taken to complete the level.
- Retrieves information from
-
Respawn or Level Recycle State:
- Displayed when the player loses a life but has remaining lives.
- Helps the player restart from the beginning of the level, reducing the player's lives.
-
Level 2:
- Increased difficulty with more enemies and a different level map.
- Includes features from Level 1.
- Completion of this level triggers the Victory or Game Over state.
-
Victory State:
- Triggered by the
floorComplete()script when the player successfully reaches the end of Level 2.
- Triggered by the
-
Game Over State:
- Reached when all player lives are depleted.
- Displays a "Game Over" message on the canvas.
- DoorOpenFirst: Animates the doors (locked and unlocked) using Unity animations.
- PlayerCasting: Implements RayCasting for action sequences with enemies.
- RemoveFlash: Removes unnecessary flash panel (debugging process).
- SoldierAI: Defines enemy AI, damage done by the enemy, and other enemy properties.
- EnemyDeath: Defines enemy health and increases the score when an enemy is defeated.
- ExtraLife: Increments lives when an extra life is picked up by the player.
- FullHealthCollect: Increments player health when a food can is collected.
- GoldCollect: Increments score upon collecting gold.
- MainMenuControl: Adds functionality to the buttons in the MainMenuScene.
- FloorTimer: Implements the timer to keep track of the time.
- GlobalComplete: Tracks the number of enemies killed and initiates the
nextFloorvariable for scene navigation. - GlobalHealth, GlobalLife, GlobalScore: Implement health, lives, and scores for the player and render them on the screen.
- RecycleLevel: Resets the score and enemy count when the player dies and helps navigate to the level after player death.
- GlobalAmmo: Tracks the overall ammo collected by the player.
- HandgunFire: Implements raycasting for handgun firing for both player and enemy.
- FloorComplete: Helps navigate from one level to another upon level completion.
- FirstKeyA: Unlocks the locked door and helps the player navigate through it.
- DigitalKonstruct Pack: For food cans.
- Medieval Gold Pack: For gold.
- Futuristic Soldier Pack: For the soldier.
- Survival Pack: For basic enemy prefabs.
- Mega Fantasy Props Pack: For tables and barrels.
- Models: For the key.
These packs are imported from the asset store for the usage of the prefabs.
To play the game, clone the repository from GitHub, open the project in Unity, and start playing!
Enjoy the game and have fun!
Feel free to modify the game and contribute to its development. Pull requests are welcome!