Combat Mechanics Module
This module handles all combat-related game mechanics including:
1. Enemy movement and behavior
2. Tower attacks and targeting
3. Projectile and particle systems
4. Status effects and special abilities
- Source:
Methods
(inner) createDeathParticles(target, cellSize) → {Array.<Object>}
Creates death effect particles for defeated entities
Implements visual feedback system
Parameters:
Name | Type | Description |
---|---|---|
target |
Object | The defeated entity |
cellSize |
number | Size of grid cell for scaling |
- Source:
Returns:
Array of particle objects
- Type
- Array.<Object>
(inner) findTowersInRange(enemy, towers) → {Array.<Object>}
Finds towers within enemy attack range
Implements targeting system for enemies
Parameters:
Name | Type | Description |
---|---|---|
enemy |
Object | Enemy doing the targeting |
towers |
Array.<Object> | Array of potential tower targets |
- Source:
Returns:
Array of towers in range
- Type
- Array.<Object>
(inner) handleAOEEffect(target, tower, enemies, particles, cellSize)
Handles AOE (Area of Effect) damage and visual effects
Implements area damage system
Parameters:
Name | Type | Description |
---|---|---|
target |
Object | Primary target |
tower |
Object | Tower dealing AOE damage |
enemies |
Array.<Object> | All enemies for AOE calculation |
particles |
Array.<Object> | Particle array for effects |
cellSize |
number | Grid cell size |
- Source:
(inner) handleEnemyAttack(enemy, tower, particles, timestamp, cellSize)
Handles enemy attack execution and effects
Implements enemy combat mechanics
Parameters:
Name | Type | Description |
---|---|---|
enemy |
Object | Attacking enemy |
tower |
Object | Target tower |
particles |
Array.<Object> | Particle array for effects |
timestamp |
number | Current game timestamp |
cellSize |
number | Grid cell size |
- Source:
(inner) handleSlowEffect(target, tower, timestamp, particles, cellSize)
Handles slow effect application and stacking
Implements status effect system
Parameters:
Name | Type | Description |
---|---|---|
target |
Object | Enemy to apply slow to |
tower |
Object | Tower applying the effect |
timestamp |
number | Current game timestamp |
particles |
Array.<Object> | Particle array for effects |
cellSize |
number | Grid cell size |
- Source:
(inner) handleTowerAttack(tower, target, projectiles, particles, timestamp, cellSize)
Handles individual tower attack logic including special effects
Implements tower ability system
Parameters:
Name | Type | Description |
---|---|---|
tower |
Object | Attacking tower |
target |
Object | Target enemy |
projectiles |
Array.<Object> | Projectile array |
particles |
Array.<Object> | Particle array |
timestamp |
number | Current game timestamp |
cellSize |
number | Grid cell size |
- Source:
(inner) processEnemyAttacks(enemies, towers, particles, timestamp, cellSize)
Processes enemy attack behaviors and targeting
Implements enemy combat AI
Parameters:
Name | Type | Description |
---|---|---|
enemies |
Array.<Object> | Array of enemy objects |
towers |
Array.<Object> | Array of tower objects |
particles |
Array.<Object> | Particle effect array |
timestamp |
number | Current game timestamp |
cellSize |
number | Grid cell size |
- Source:
(inner) processTowerAttacks(towers, enemies, projectiles, particles, timestamp, cellSize)
Processes tower attacks and targeting
Implements combat mechanics and special abilities
Parameters:
Name | Type | Description |
---|---|---|
towers |
Array.<Object> | Array of tower objects |
enemies |
Array.<Object> | Array of enemy objects |
projectiles |
Array.<Object> | Array of projectile objects |
particles |
Array.<Object> | Array of particle objects |
timestamp |
number | Current game timestamp |
cellSize |
number | Size of grid cell for scaling |
- Source:
(inner) updateEnemies() → {void}
Updates all enemy states including movement, health, and status effects
Implements core game loop mechanics for enemy behavior
Key features:
- Path following
- Health management
- Status effect processing
- Collision detection
- Source:
Returns:
- Type
- void
(inner) updateParticles(particles, timestamp, deltaTime) → {Array.<Object>}
Updates particle effects with time-based animation
Implements particle system lifecycle management
Parameters:
Name | Type | Description |
---|---|---|
particles |
Array.<Object> | Array of particle objects |
timestamp |
number | Current game timestamp |
deltaTime |
number | Time elapsed since last frame |
- Source:
Returns:
Updated particles array
- Type
- Array.<Object>