#include "TempoRune.h"
#include "Spieler.h"


TempoRuneEffect::TempoRuneEffect( ResourceRegistry *zResources, Spieler *zSpieler )
    : Effect( zSpieler, 75.f + ( 75.f / 100.f ) * zSpieler->getAbklingZeitVerringerung() )
{
    zSpieler->setLaufTempo( zSpieler->getLaufTempo() + 7 );
    zSpieler->setGeschossTempo( zSpieler->getGeschossTempo() + 3 );
    annimation = zResources->getResource( R_RTEMPO_EFFECT, 0 );
    currentImage = 0;
    nextImage = 0.075;
}

TempoRuneEffect::~TempoRuneEffect()
{
    zSpieler->setLaufTempo( zSpieler->getLaufTempo() - 7 );
    zSpieler->setGeschossTempo( zSpieler->getGeschossTempo() - 3 );
    annimation->release();
}

bool TempoRuneEffect::tick( double time, Spiel *zSpiel )
{
    nextImage -= time;
    if( nextImage <= 0 )
    {
        nextImage += 0.075;
        currentImage++;
    }
    return Effect::tick( time, zSpiel );
}

void TempoRuneEffect::renderSpieler( Bild &rObj )
{
    if( currentImage >= annimation->getImageCount() )
        return;
    if( rObj.setDrawOptions( (int)zSpieler->getX(), (int)zSpieler->getY(), (int)zSpieler->getWidth(), (int)zSpieler->getHeight() ) )
    {
        rObj.alphaBildSkall( 0, 0, (int)zSpieler->getWidth(), (int)zSpieler->getHeight(), *annimation->zImage( currentImage ) );
        rObj.releaseDrawOptions();
    }
}