     @parts['tfWing'].origin 5, 10
 
     @definePart 'tbWing', 'droneTopBackWing', 15, -1, -1
+    @parts['tbWing'].origin 5, 10
+
     @definePart 'bfWing', 'droneBottomFrontWing', 30, 15, 1
+    @parts['bfWing'].origin 5, 5
+
     @definePart 'bbWing', 'droneBottomBackWing', 20, 15, -1
-    @definePart 'blades', 'droneRotorBlades', 20, 3, 2
+    @parts['bbWing'].origin 5, 5
+
+    @definePart 'blades', 'droneRotorBlades', 15, 6, 2
     @parts['blades'].origin 'center'
 
     @origin 'center'

    else
      @unflipX()

    @updateBladeRotation rotation, dx
    @updateWingRotation speed, dx

  updateBladeRotation: (rotation, dx) ->

  updateWingRotation: (speed, dx) ->
    m = if dx > 0 then -1 else 1
    # Range -20 .. 0 .. 25
    @rotatePart('tfWing', speed, -20, 25, m)
    @rotatePart('tbWing', speed, -20, 25, m)
    @rotatePart('bfWing', speed, 25, -20, m * -1)
    @rotatePart('bbWing', speed, 25, -20, m * -1)

  rotatePart: (part, speed, min, max, m) ->
    target = @wingRotation(speed, min, max) * m
    target = ((360 + target + 180) % 360)
    current = (@parts[part].rotation + 180) % 360

    if current > target
      @parts[part].rotation -= 1
    else if current < target
      @parts[part].rotation += 1

  wingRotation: (speed, min, max) ->
    if speed < @defaultSpeed
      ((@defaultSpeed - speed) / @defaultSpeed) * -20
    else
      maxSpeed = @defaultSpeed * 2
      ((maxSpeed - @defaultSpeed) / maxSpeed) * 25

Game.levelGenerator.defineAssets(
  'newAwesomeSpriteSheet'
