Files
wagic/projects/mtg/include/MTGPack.h
wagic.the.homebrew@gmail.com 3965505b15 wololo
- Adding DJardin's port to N900
2010-09-16 13:12:05 +00:00

88 lines
2.1 KiB
C++

#ifndef _MTGPACCK_H_
#define _MTGPACK_H_
class ShopBooster;
class MTGPackEntry{
public:
virtual ~MTGPackEntry() {};
virtual int addCard(WSrcCards * pool,MTGDeck * to) = 0;
int copies;
};
class MTGPackEntryRandom: public MTGPackEntry{
public:
MTGPackEntryRandom() {filter = ""; copies=1;};
MTGPackEntryRandom(string f, int c=1) {filter = f; copies = c;};
int addCard(WSrcCards * pool,MTGDeck * to);
string filter;
};
class MTGPackEntrySpecific: public MTGPackEntry{
public:
int addCard(WSrcCards * pool,MTGDeck * to);
MTGCard * card;
};
class MTGPackEntryNothing: public MTGPackEntry{
public:
int addCard(WSrcCards * pool,MTGDeck * to) {return 0;};
};
class MTGPackSlot{
public:
~MTGPackSlot();
int add(WSrcCards * ocean, MTGDeck * to, int carryover);
void addEntry(MTGPackEntry*item);
int copies;
string pool;
vector<MTGPackEntry*> entries;
};
class MTGPack{
public:
friend class MTGPacks;
friend class ShopBooster;
friend class MTGSetInfo;
bool meetsRequirements(); //Check if pool contains locked cards.
bool isUnlocked();
bool isValid() {return bValid;};
void load(string filename);
int assemblePack(MTGDeck * to);
MTGPack() {bValid = false; unlockStatus = 0; price=Constants::PRICE_BOOSTER;};
MTGPack(string s) {bValid = false; load(s); unlockStatus = 0;};
~MTGPack();
string getName();
string getSort() {return sort;};
int getPrice() {return price;};
static WSrcCards * getPool(string poolstr);
protected:
void countCards();
string name; //Name of the pack.
string type; //"Booster", "Deck", "Whatever"
string pool; //The starting pool.
string sort; //The sorting method.
string check; //Unlock requirements.
string desc; //Big card description.
bool bValid;
int unlockStatus;
int price; //Base price.
int minCards, maxCards;
vector<MTGPackSlot*> slotss;
};
class MTGPacks{
public:
~MTGPacks();
MTGPack * randomPack(int key=0);
void loadAll();
int size() {return (int)packs.size();};
void refreshUnlocked();
static MTGPack * getDefault();
private:
static MTGPack defaultBooster;
vector<MTGPack*> packs;
};
#endif