#pragma once

#include "Gegenstand.h"

class Spieler;
class Spiel;
class Team;

class Effect
{
protected:
    Spieler *zSpieler;
    float timeLeft;
    int ref;

public:
    Effect( Spieler *zSpieler, float maxTime );
    virtual ~Effect();
    virtual bool tick( double time, Spiel *zSpiel );
    virtual bool istSpielerBeweglich( Richtung r );
    virtual bool istSpielerVerwundbar( Richtung r );
    virtual bool istSpielerSichtbar( Team *zTeam );
    virtual void move( double time );
    virtual bool istGegenstandErlaubt( GegenstandTyp typ );
    virtual void renderSpieler( Bild &rObj );
    virtual Resource *getCurrentResource();
    Effect *getThis();
    Effect *release();
};