ig.module(
	'game.entities.paddle-enemy'
)
.requires(
	'game.entities.ball',
	'game.entities.paddle'
)
.defines(function(){
  EntityPaddleEnemy = EntityPaddle.extend({
    move_delay: 35,
    update: function() {
      var ball = ig.game.getEntitiesByType(EntityBall)[0];

      if (this.move_delay > 0) this.move_delay -= 1;

      // TODO: Let the AI use the force feature

      // Check if the ball is moving towards the enemy
      if (ball.vel.x < 0) {
        // Do we need to move the panel enyway?
        if (this.move_delay == 0 && ((ball.pos.y > this.pos.y-5) && (ball.pos.y+ball.size.y < this.pos.y+this.size.y+5))) {
          this.move_delay = 3;
          if (this.vel.y < 0) {
            this.vel.y = -200+((3-this.move_delay)*50)
          }
          if (this.vel.y > 0) {
            this.vel.y = 200-((3-this.move_delay)*50)
          }
        } else if (this.move_delay == 0) {
          // The paddle is too low
          if ((ball.pos.y+ball.size.y/2) < (this.pos.y+30)) {
              this.vel.y = -400;

          // The paddle is too high
          } else {
              this.vel.y = 400;
          }
        }

      // Move to the middle
      } else {
        if (this.pos.y >= 130 && this.pos.y <= 180) {
          this.vel.y = 0;
        }

        if (this.pos.y < 130) {
          this.vel.y = 150;
        } else if (this.pos.y > 180) {
          this.vel.y = -150;
        }
      }
      this.parent();
    }
  });
});

