|
@@ -0,0 +1,45 @@
|
|
|
|
+#include "Rolle.h"
|
|
|
|
+#include "Spieler.h"
|
|
|
|
+
|
|
|
|
+RolleEffect::RolleEffect( Spieler *zSpieler, Richtung r )
|
|
|
|
+ : Effect( zSpieler, (int)( 2.f + ( 2.f / 100.f ) * zSpieler->getAbklingZeitVerringerung() ) )
|
|
|
|
+{
|
|
|
|
+ this->r = r;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+RolleEffect::~RolleEffect()
|
|
|
|
+{}
|
|
|
|
+
|
|
|
|
+bool RolleEffect::istSpielerBeweglich( Richtung r )
|
|
|
|
+{
|
|
|
|
+ return false;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+bool RolleEffect::istSpielerVerwundbar( Richtung r )
|
|
|
|
+{
|
|
|
|
+ return r == MITTE;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void RolleEffect::move( double time )
|
|
|
|
+{
|
|
|
|
+ switch( r )
|
|
|
|
+ {
|
|
|
|
+ case OBEN:
|
|
|
|
+ zSpieler->setY( zSpieler->getY() - ( 75 + zSpieler->getLaufTempo() ) * time );
|
|
|
|
+ break;
|
|
|
|
+ case RECHTS:
|
|
|
|
+ zSpieler->setX( zSpieler->getX() + ( 75 + zSpieler->getLaufTempo() ) * time );
|
|
|
|
+ break;
|
|
|
|
+ case UNTEN:
|
|
|
|
+ zSpieler->setY( zSpieler->getY() + ( 75 + zSpieler->getLaufTempo() ) * time );
|
|
|
|
+ break;
|
|
|
|
+ case LINKS:
|
|
|
|
+ zSpieler->setX( zSpieler->getX() - ( 75 + zSpieler->getLaufTempo() ) * time );
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+bool RolleEffect::istGegenstandErlaubt( GegenstandTyp typ )
|
|
|
|
+{
|
|
|
|
+ return typ != STURM && typ != ENTERHAKEN;
|
|
|
|
+}
|