implemented ranged attacks