def setUp(self): Projectile.setup_class_attrs(image_id='shot1.png', damage=100) self.projectile = Projectile( pos=(100, 500), func=linear(angle=0, speed=200), groups=[] )
class ProjectileTest(unittest.TestCase): def setUp(self): Projectile.setup_class_attrs(image_id='shot1.png', damage=100) self.projectile = Projectile( pos=(100, 500), func=linear(angle=0, speed=200), groups=[] ) def test_pos(self): self.assertEqual(self.projectile.pos, (100, 500), 'start') def test_linear(self): self.projectile.update(500) self.assertEqual(self.projectile.pos, (200, 500), 'right')
def fire(self): projectiles = [] if self.firing and self.current_cool_down == 0 and self.parent.reactor.current_power >= self.power_use\ and not self.parent.reactor.overheating: self.current_cool_down = self.cool_down self.parent.reactor.current_power -= self.power_use self.firing = False for projectile in range(self.projectiles): projectile = Projectile( size=self.projectile_size, pos=self.pos + pygame.Vector2( uniform(-self.projectile_grouping, self.projectile_grouping), uniform(-self.projectile_grouping, self.projectile_grouping)), health=0, speed=self.speed, damage=self.damage, color=self.projectile_color, parent=self.parent, direction=pygame.Vector2( 1, 0).rotate(-self.parent.angle + uniform(-self.spread, self.spread)), effects=copy(self.effects)) projectiles.append(projectile) return projectiles
def __init__(self, id): self.id = id self.sprite = SpriteSheet(res.weapon) self.sprite.init(12, 12, 0.06) self.sprite.set_frame_loop(5, 5, False) self.slot = None # WeaponSlot this weapon is in self.position = sf.Vector2(0, 0) self.firing = False # Whether or not it's firing this turn self.powered = False # Is the weapon powered or unpowered self.was_powered = False # Was the weapon powered last turn? (Used for weapon slide out/in animation) self.target = None # Target room self.charge = 0 self.required_charge = 1 self.required_power = 1 # Power consumption self.projectile_type = None self.num_shots = 2 self.projectiles = [Projectile(), Projectile()]
def get_projectile_trajectory(self): projectile = Projectile(self.projectile, self.angle, self.initial_speed) return projectile.get_coordinates()