1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #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();
- }
- }
|