BosheitRune.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #include "BosheitRune.h"
  2. #include "Spieler.h"
  3. BosheitRuneEffect::BosheitRuneEffect( ResourceRegistry *zResources, Spieler *zSpieler )
  4. : Effect( zSpieler, 75.f + ( 75.f / 100.f ) * zSpieler->getAbklingZeitVerringerung() )
  5. {
  6. zSpieler->setSchadenBonus( zSpieler->getSchadenBonus() + 7 );
  7. zSpieler->setLebensRaub( zSpieler->getLebensRaub() + 3 );
  8. annimation = zResources->getResource( R_RBOSHEIT_EFFECT, 0 );
  9. effectImage = zResources->zResource( R_RBOSHEIT, 0 )->getImage( 0 );
  10. currentImage = 0;
  11. nextImage = 0.075;
  12. }
  13. BosheitRuneEffect::~BosheitRuneEffect()
  14. {
  15. zSpieler->setSchadenBonus( zSpieler->getSchadenBonus() - 7 );
  16. zSpieler->setLebensRaub( zSpieler->getLebensRaub() - 3 );
  17. annimation->release();
  18. }
  19. bool BosheitRuneEffect::tick( double time, Spiel *zSpiel )
  20. {
  21. nextImage -= time;
  22. if( nextImage <= 0 )
  23. {
  24. nextImage += 0.075;
  25. currentImage++;
  26. }
  27. return Effect::tick( time, zSpiel );
  28. }
  29. void BosheitRuneEffect::renderSpieler( Bild &rObj )
  30. {
  31. if( currentImage >= annimation->getImageCount() )
  32. return;
  33. if( rObj.setDrawOptions( (int)zSpieler->getX(), (int)zSpieler->getY(), (int)zSpieler->getWidth(), (int)zSpieler->getHeight() ) )
  34. {
  35. rObj.alphaBildSkall( 0, 0, (int)zSpieler->getWidth(), (int)zSpieler->getHeight(), *annimation->zImage( currentImage ) );
  36. rObj.releaseDrawOptions();
  37. }
  38. }