# -*- coding: utf-8 -*- class Projectile: def __init__(self, projectile_type, start_x, direction): self.type = projectile_type self.x = start_x self.direction = direction self.speed = 0.2 # Projectiles move faster than player self.isActive = True self.damage = 5 # All projectiles do same damage for now self.range = 12 # Maximum travel distance in tiles self.start_x = start_x def update(self): """Update projectile position and check if it should still exist""" if not self.isActive: return False self.x += self.direction * self.speed # Check if projectile has gone too far if abs(self.x - self.start_x) > self.range: self.isActive = False return False return True def hit_enemy(self, enemy): """Handle hitting an enemy""" enemy.take_damage(self.damage) self.isActive = False # Projectile is destroyed on hit