# Functions
CheckCollisionPath checks if the path collides with the tower.
NewEnemy creates a new entity of Enemy.
NewEnemySwarm returns a new EnemySwarm.
NewGameRule returns a new GameRule.
NewMap creates a new entity of Map.
NewTower creates a new entity of Tower.
NewUpgrade returns a new upgrade.
NewWave returns a new Wave.
# Structs
Enemy is an entity moving on the Path and trying to achieve its end to deal damage to the Player.
EnemyState is a struct.
EnemySwarm contains the rules for calling the next enemy.
Map is a struct that represents a map.
PlayerMapState is a state of the player during the game.
PlayerState is a struct that represents a state of the player.
Projectile is an entity generated by towers that flies to the enemy and deals the damage to it.
Strength stores effects that are useful to the enemy.
Tower is a struct that represents a tower.
TowerState is a struct that represents the state of a tower.
Upgrade is an entity stores useful effects for towers.
Wave is a set of the enemies.
Weakness stores effects that are detrimental to the enemy.