#include "Brand.h" #include "Spieler.h" BrandEffekt::BrandEffekt( ResourceRegistry *zResources, Spieler *zVerursacher, Spieler *zOpfer ) : Effect( zOpfer, B_DURATION ) { this->zVerursacher = zVerursacher; laufTempoDecrease = B_MOVEMENT_DECREASE <= zSpieler->getLaufTempo() ? B_MOVEMENT_DECREASE : zSpieler->getLaufTempo(); zSpieler->setLaufTempo( zSpieler->getLaufTempo() - laufTempoDecrease ); annimation = zResources->getResource( R_BRAND, 0 ); currentImage = 0; nextImage = 0.075; } BrandEffekt::~BrandEffekt() { zSpieler->setLaufTempo( zSpieler->getLaufTempo() + laufTempoDecrease ); annimation->release(); } bool BrandEffekt::tick( double time, Spiel *zSpiel ) { float damage = B_MIN_DPS * (float)time; zSpieler->nimmSchaden( damage, zVerursacher, MITTE, zSpiel ); nextImage -= time; if( nextImage <= 0 ) { nextImage += 0.075; currentImage++; if( currentImage >= annimation->getImageCount() ) currentImage = 0; } return Effect::tick( time, zSpiel ); } void BrandEffekt::renderSpieler( Bild &rObj ) { 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(); } }