Please update your rules folder
- "Manapool empties at the end of each step" becomes an ability, and was moved into the external rules file. "removemana(*) to remove all, removemana(*{G}) to remove all green, removemana(*{G}{B}{R}) to remove all green black red, removemana({G}{G}{B}{U}) (no "*") to remove a specific value.
- Added a possibility to make abilities non interruptible. With little work, this could be added to the parser if needed. Please use with care, let's discuss what is an acceptable usage of this now functionality, if needed.
This commit is contained in:
@@ -4762,6 +4762,20 @@ public:
|
||||
AAShuffle * clone() const;
|
||||
};
|
||||
|
||||
//Remove Mana From ManaPool
|
||||
class AARemoveMana: public ActivatedAbilityTP
|
||||
{
|
||||
public:
|
||||
ManaCost * mManaDesc;
|
||||
bool mRemoveAll;
|
||||
|
||||
AARemoveMana(int _id, MTGCardInstance * card, Targetable * _target, string ManaDesc, int who = TargetChooser::UNSET);
|
||||
int resolve();
|
||||
const char * getMenuText();
|
||||
AARemoveMana * clone() const;
|
||||
~AARemoveMana();
|
||||
|
||||
};
|
||||
|
||||
//Random Discard
|
||||
class AARandomDiscarder: public ActivatedAbilityTP
|
||||
|
||||
@@ -109,6 +109,7 @@ public:
|
||||
int allowedToAltCast(MTGCardInstance* card, Player* player);
|
||||
int oneShot;
|
||||
int forceDestroy;
|
||||
bool canBeInterrupted;
|
||||
ManaCost* cost;
|
||||
ManaCost* alternative;
|
||||
ManaCost* BuyBack;
|
||||
|
||||
@@ -52,6 +52,7 @@ public:
|
||||
string alternativeName;
|
||||
static ManaCost * parseManaCost(string value, ManaCost * _manacost = NULL, MTGCardInstance * c = NULL);
|
||||
virtual void init();
|
||||
virtual void reinit();
|
||||
void x();
|
||||
int hasX();
|
||||
ManaCost(int _cost[], int nb_elems = 1);
|
||||
@@ -85,6 +86,7 @@ public:
|
||||
void randomDiffHybrids(ManaCost * _cost, int diff[]);
|
||||
int add(ManaCost * _cost);
|
||||
int remove(ManaCost * _cost);
|
||||
int removeAll(int color);
|
||||
int pay (ManaCost * _cost);
|
||||
|
||||
//return 1 if _cost can be paid with current data, 0 otherwise
|
||||
|
||||
@@ -59,6 +59,7 @@ protected:
|
||||
Player * initPlayer(int playerId);
|
||||
MTGDeck * buildDeck(int playerId);
|
||||
int strToGameMode(string s);
|
||||
bool postUpdateInitDone;
|
||||
public:
|
||||
enum
|
||||
{
|
||||
@@ -86,6 +87,8 @@ public:
|
||||
bool canChooseDeck(); //True if the players get to select their decks, false if the decks are automatically generated by the mode
|
||||
void addExtraRules();
|
||||
void initGame();
|
||||
//second part of the initialization, needs to happen after the first update call
|
||||
void postUpdateInit();
|
||||
void cleanup();
|
||||
vector<string> extraRules;
|
||||
RulesState initState;
|
||||
|
||||
Reference in New Issue
Block a user