Files
wagic/projects/mtg/include/ReplacementEffects.h
wagic.the.homebrew@gmail.com 71cc79b949 Erwan
- Replaced the BasicAbilities Array with a map. This reduces the size of MTGCard from >500 bytes to 392. Should be cool for people who have memory issues
2009-06-25 11:09:51 +00:00

41 lines
967 B
C++

#ifndef _REPLACEMENT_EFFECTS_H_
#define _REPLACEMENT_EFFECTS_H_
#include <list>
using namespace std;
#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;
public:
REDamagePrevention(MTGAbility * _source, TargetChooser *_tcSource = NULL,TargetChooser *_tcTarget = NULL, int _damage = -1, bool _oneShot = true);
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