Module: mechanics

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>