My enemy is supposed to wait before each shot but for some reason it doesn't, here is the code for my enemy, shooting is in the shoot method.
  import greenfoot.*;  // (World, Actor, GreenfootImage, and Greenfoot)  
import java.util.List;
public class Key extends Actor  
{  
private int wait = 0;
private int shootWait = 0;    
private final int waitTime = 35;
private final int shootWaitTime = 40;  
private boolean touchingPlayer = false;  
private boolean canShoot = false;
   /** 
     * Create a new key. 
     */  
public void act()  
{   
    checkShootingStatus();
    checkTouchingStatus();
    hitPlayer(); 
    die();
    if (getWorld() == null)return;
    movementAi();
    shoot();
    
}
  public void die()
    {
        menu menuWorld = (menu) getWorld();  
        Bar scoreBar = menuWorld.getScoreBarValue(); 
        
        if (getHealth() <= 0)
        {
        scoreBar.add(50);
        getWorld().removeObject(this);
    } 
        
       
        
        
        
        }
          
    
   private void checkTouchingStatus()    
     {    
    if (wait > 0) wait--;    
    if (wait == 0) touchingPlayer = false;  
}  
private void checkShootingStatus()    
     {    
    if (wait > 0) shootWait--;    
    if (wait == 0) canShoot = false;  
}      
//movement    
    
  public void movementAi()   
  {  
        
    move(2);  
    if(Greenfoot.getRandomNumber(100) < 10)  
    {  
        turn(Greenfoot.getRandomNumber(90));     
      
    }  
    if (getX() <= 5 || getX() >= getWorld().getWidth() - 5)  
    {  
        turn(180);  
      
    }  
    if (getY() <= 5 || getY() >= getWorld().getHeight() - 5)  
    {  
       turn(180);  
      
    }  
}  
//move to player
 
    
   
    
  
//Enemy health  
    private int health = 3;//or any other starting value;    
        
    public void setHealth(int points) {    
        health += points;    
    }    
    public int getHealth() {    
        return health;    
    }    
      
         public void hitPlayer() {    
    key2 key2 = (key2) getOneObjectAtOffset(0, 0, key2.class);    
    if (key2 != null && !touchingPlayer) {    
         touchingPlayer = true;    
            wait += waitTime;    
        menu menuWorld = (menu) getWorld(); //Do this every time to call method!!!  
          Bar healthBar = menuWorld.getHealthBarValue();  
          healthBar.subtract(1);//decrements the health of your player  
         
          
          
        
      
  
}  
}
//shoot
    public void shoot()
    {
    List key2 = getObjectsInRange(200, key2.class);  
    if (! key2.isEmpty() && !canShoot)
    {
        canShoot = false;    
            shootWait += shootWaitTime;  
     
           
        menu menuWorld = (menu) getWorld();
           key2 player = menuWorld.getPlayerPos();
            enemyBullet enemyBullet = new enemyBullet();
            getWorld().addObject(enemyBullet, getX(), getY());
            enemyBullet.turnTowards(player.getX(), player.getY());
      
   }
        
        
        
        
        
            
          
            
}  
}
 
  
       
          
         
   


