import greenfoot.*;  // (World, Actor, GreenfootImage, and Greenfoot)

/**
 * Diese Klasse definiert eine Krabbe. Krabben leben auf dem Strand. Sie lieben
 * Sandwürmer (sehr lecker, vor allem die grünen).
 * 
 * Version: 5
 * 
 * In dieser Version verhält sich die Krabbe wie zuvor, aber wir haben
 * das Bild animiert.
 */

public class Crab extends Animal
{
    private GreenfootImage image1;
    private GreenfootImage image2;
    private int wormsEaten;
    
    /**
     * Erzeugt eine Krabbe und initialisiert ihre beiden Bilder.
     */
    public Crab()
    {
        image1 = new GreenfootImage("crab.png");
        image2 = new GreenfootImage("crab2.png");
        setImage(image1);
        wormsEaten = 0;
    }
        
    /** 
     *  Tut, was auch immer Krabben gerne tun. Diese Methode wird immer dann aufgerufen,
     *  wenn die Buttons 'Act' oder 'Run' in der Entwicklungsumgebung gedrückt werden.
     */
    public void act()
    {
        checkKeypress();
        move();
        lookForWorm();
        switchImage();
    }
    
    /**
     * Wechselt das Bild der Krabbe zwischen image1 und image2.
     */
    public void switchImage()
    {
        if (getImage() == image1) 
        {
            setImage(image2);
        }
        else
        {
            setImage(image1);
        }
    }
            
    /**
     * Prüft, ob eine Steuertaste auf der Tastatur gedrückt wurde.
     * Wenn ja, reagiert die Methode entsprechend.
     */
    public void checkKeypress()
    {
        
    }
    
    /**
     * Prüft, ob wir auf einen Wurm gestoßen sind.
     * Wenn ja, wird er gefressen. Wenn nein, passiert nichts.
     * Wenn wir acht Würmer gefressen haben, haben wir gewonnen.
     */
    public void lookForWorm()
    {
        if ( canSee(Worm.class) ) 
        {
            eat(Worm.class);
            Greenfoot.playSound("slurp.wav");
            
            wormsEaten = wormsEaten + 1;
            if (wormsEaten == 8) 
            {
                Greenfoot.playSound("fanfare.wav");
                Greenfoot.stop();
            }
        }
    }
}