Currently Implemented Features:
- Object pooling system for performance optimization. Includes interactable objects, bullets, throwable weapons, etc.
- Basic shooting system:
- Current bullet count, magazine capacity, reserve ammunition
- Reloading, reload time
- Fire rate, reload time
- Single shot, burst fire, multi-shot per trigger pull
- Bullet spread, shooting range
- Different weapons feature: different camera distances, holding poses
- Weapon switching and holstering. Three slots: thigh, back, hip. All with animations
- Bullet trajectory and hit effects, weapon range infrared display
- Two aiming modes: precision shooting, auto-lock
- Configure data and prefab model types to generate items with different appearances and stats, with automatic model matching. E.g., weapons, ammo crates, etc.
- Item interaction:
- Pick up, drop
- Pick up dropped items and retain data rather than respawning
- Interaction range detection: detects the nearest interactable item and highlights it
- Enemies:
- Basic functionality implemented in Enemy.cs, such as taking damage, hit effects, etc.
- Move toward targets, properly handle corners, patrol
- Animation events for actions like attacking toward the player, throwing, moving while attacking, switching weapon models, etc.
- Secondary weapon to enable effects like hiding the primary weapon during throw animations
- Random enemy appearance: random textures, random erosion effects; random weapon assignment
- Animator Controller Overrides to support different animations for different special abilities
- IK for different enemy weapon holding poses and animation coordination
- Melee enemies:
- Inherit from Enemy
- Chase the player
- Various special abilities designed, such as dodging, shield carrying, axe throwing, etc.
- Currently has two attack types: index 1 is one of 5 random slashes, index 0 is a lunging attack that performs secondary tracking on the player
- Ranged enemies:
- Inherit from Enemy
- Different weapons, implemented the same way as the player
- Grenade throwing
- Knockback system
- Boss:
- Unique models to convey the Boss's special nature
- Two types: flamethrower and hammer-wielding, with corresponding special abilities: flame jet and lightning hammer
- Two melee attack modules
- Boss can leap-attack the player
- Can sprint quickly to close distance as needed
- Cover system. Cover points are generated at four positions around cover objects. Ranged enemies can seek cover within range, with a series of logic to make their behavior appear intelligent.
- Simple health system
- Configurable friendly fire (includes player and enemy factions)
- Detection for different attack types
- Shield system for shield-wielding enemies
- Headshot damage
- Ragdoll system