Fully abstracted out tower, enemy, and projectile