def fire(self, rate, target=None): if self.fire_rate > 0: self.fire_rate -= 1 return self.fire_rate = rate shot = Shot(self.screen, self.x, self.y + 40, self, target) player = self.screen.player dx = player.x - self.x dy = player.y - self.y - 15 total = sqrt(dx ** 2 + dy ** 2) shot.xvel = dx / total * 15 shot.yvel = dy / total * 15 shot.range = 100