Files
wagic/projects/mtg/include/ReplacementEffects.h
jean.chalard 5a2bae75d5 J :
* Add newlines at end of files. This is for better portability.
* Fix a direct reference to g++ in the makefile
2010-02-02 10:19:43 +00:00

44 lines
1.0 KiB
C++

#ifndef _REPLACEMENT_EFFECTS_H_
#define _REPLACEMENT_EFFECTS_H_
#include <list>
using namespace std;
#include "../include/Damage.h"
#include "WEvent.h"
class TargetChooser;
class MTGAbility;
class ReplacementEffect {
public:
virtual WEvent * replace (WEvent * e) {return e;};
virtual ~ReplacementEffect(){};
};
class REDamagePrevention: public ReplacementEffect {
protected:
MTGAbility * source;
TargetChooser * tcSource;
TargetChooser * tcTarget;
int damage;
bool oneShot;
int typeOfDamage;
public:
REDamagePrevention(MTGAbility * _source, TargetChooser *_tcSource = NULL,TargetChooser *_tcTarget = NULL, int _damage = -1, bool _oneShot = true, int typeOfDamage = DAMAGE_ALL_TYPES);
WEvent * replace (WEvent *e);
~REDamagePrevention();
};
class ReplacementEffects {
protected:
list<ReplacementEffect *>modifiers;
public:
ReplacementEffects();
WEvent * replace(WEvent *e);
int add(ReplacementEffect * re);
int remove (ReplacementEffect * re);
~ReplacementEffects();
};
#endif