import ea.*;

public class TrankAngriff extends Gegenstand implements Ticker {

    private int wirkung = 100;

    // Steuerung der Animation
    private int delta = 0;
    private int speed = 2;

    public TrankAngriff( Karte pKarte ) {
        super(pKarte);
        add(new Bild(0,0,"images/trank_lila.gif"));

        // Anmelden, sodass die tick()-Methode alle 100 ms ausgeführt wird
        Manager.standard.anmelden(this, 100);
    }

    @Override
    public void tick() {
        /*aufg*
        // TODO: Wie funktioniert die Animation? Erstelle eine Tabelle für die Variablen
        // delta und speed und notiere ihre Veränderungen bei mehrmaligem Aufruf der tick()-Methode.
        // TODO: Experimentiere mit anderen Werten für delta und speed.
        *aufg*/
        if( delta >= 5*Math.abs(speed) || delta <= -5*Math.abs(speed) )
            speed = -1*speed;
        delta += speed;
        verschieben(0, speed);
    }


    @Override
    public void benutzen( Lunk pLunk ) {
        pLunk.setAttack( pLunk.getAttack() + wirkung );
        zerstoeren();
    }


    @Override
    public void anwenden( Lunk pLunk, Gegner pGegner ) {
        pGegner.setAttack( pGegner.getAttack() + wirkung );
        zerstoeren();
    }

    @Override
    public void einsammeln(Lunk pLunk) {
        benutzen(pLunk);
    }

    @Override
    public void ablegen(Lunk pLunk, Karte pKarteNeu) {
        setKarte(pKarteNeu);
        pKarteNeu.verschiebeZuFeldAnKoordinate(this, pLunk.aktuelleFigur().zentrum().x, pLunk.aktuelleFigur().zentrum().x);
    }

    @Override
    public void zerstoeren() {
        // Abmelden, sodass die tick()-Methode nicht mehr ausgeführt wird.
        Manager.standard.abmelden(this);
        // Gegenstand aus dem Spiel entfernen
        karte.entferneGegenstand(this);
        leeren();
    }
}
