-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCardType.h
39 lines (35 loc) · 939 Bytes
/
CardType.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef CARDTYPE_H
#define CARDTYPE_H
#include "Lib.h"
#include "PreUseStruct.h"
#include "UseStruct.h"
class Player;
class Card;
enum Type
{
Basic,
Trick,
Equip
};
class CardType
{
protected:
virtual bool legalityCheck(Player *target,PreUseStruct *d)=0;
virtual bool distanceCheck(Player *target,PreUseStruct *d);
virtual bool canBeUsed(Timing t, Event *e, Player *p);
public:
int maxTargets;
string name;
Type type;
bool isDelayedTrick;
CardType(string n,Type t);
virtual ~CardType();
bool legalToUse(Timing t, Event *e, Player *p);
virtual bool use(PreUseStruct *d)=0;
bool isLegalTarget(Player *target, PreUseStruct *d);
bool isLegalTarget(Player *target, Player *user);
virtual bool isMandatoryTarget(Player *target, PreUseStruct *d);
virtual vector<SkillEffect*> getUseSkill(UseStruct *d);
virtual string tagToString(void *tag);
};
#endif // CARDTYPE_H