class Tank extends Boxish {

    PImage img = loadImage("tank/tank_1a.png");
  
  Bullet tankBullet = null;
  int movecounter ;


    float  SPEED;

  Tank(int id) {
    super(random(width),TANK_STARTY+(id * TANK_HEIGHT/4),TANK_WIDTH,TANK_HEIGHT);
    changeSpeed();
  } 

void changeSpeed(){
 SPEED = random(-TANK_SPEEDMAX,TANK_SPEEDMAX); 
}

  void move() {
    movecounter++;
    if(movecounter >= TANK_TIMETOMOVE) {
      movecounter = 0;

      if(random(100) <= TANK_CHANCETOSWITCHDIR) {
        changeSpeed();;
      }

      x += SPEED;    
    }

    if(x < 0){
      x = 0;
      SPEED=abs(SPEED);
    }
    if(x + TANK_WIDTH > width){
        x = width - TANK_WIDTH;
        SPEED=-abs(SPEED);      
    }
    
    
    
    //FIRE!!!
    if(tankBullet == null && gamestate != POSTLUDE && gamestate != PRELUDE){
      if(f != null && (f.numberOfFallsByPlayer >= 2 || f.hasDroppedOnce )){
      
          fxLasers();
            tankBullet = new Bullet(this);           
      }
    }


    
  }

  void doBullet(){
   if(tankBullet != null){
     tankBullet.move();
     if(tankBullet.checkHit(f) || tankBullet.y + tankBullet.h < 0){
       tankBullet = null;
     } else {
     tankBullet.draw();
     }
  }
 
  }




  void draw(){
      image(img,x-TANK_OFFSET_X,y-TANK_OFFSET_Y);

    if(DEBUG==1){
    strokeWeight(1);
    stroke(255,0,0);
    noFill();
      rect(x,y,w,h);
    }
  }
  
  void doParticles(){
    for(int c = 0; c < 10; c++){
       particlesToAdd.add(new Particle(this)); 
    }
}
  

}