The hose works by generating a new projectile every some time, and simulating the projectile trajectory while checking for a collision. The projectile is checked for collision by making a line trace each time fraction, between the projectile's last position and current.