unattach animated equipment
another bug found is when the equipment becomes a creature, its ability is granted to itself...
This commit is contained in:
@@ -73,6 +73,8 @@ public:
|
|||||||
|
|
||||||
class MTGPutInPlayRule: public PermanentAbility
|
class MTGPutInPlayRule: public PermanentAbility
|
||||||
{
|
{
|
||||||
|
protected:
|
||||||
|
string defaultPlayName;
|
||||||
public:
|
public:
|
||||||
int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
|
int isReactingToClick(MTGCardInstance * card, ManaCost * mana = NULL);
|
||||||
int reactToClick(MTGCardInstance * card);
|
int reactToClick(MTGCardInstance * card);
|
||||||
@@ -80,8 +82,8 @@ public:
|
|||||||
MTGPutInPlayRule(GameObserver* observer, int _id);
|
MTGPutInPlayRule(GameObserver* observer, int _id);
|
||||||
const string getMenuText()
|
const string getMenuText()
|
||||||
{
|
{
|
||||||
if(game && game->gameType() == GAME_TYPE_MOMIR)
|
if(defaultPlayName.size())
|
||||||
return "Play Land";
|
return defaultPlayName.c_str();
|
||||||
return "Cast Card Normally";
|
return "Cast Card Normally";
|
||||||
}
|
}
|
||||||
virtual MTGPutInPlayRule * clone() const;
|
virtual MTGPutInPlayRule * clone() const;
|
||||||
|
|||||||
@@ -773,7 +773,7 @@ void GameObserver::gameStateBasedEffects()
|
|||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
//Unattach Equipments that dont have valid targets//
|
//Unattach Equipments that dont have valid targets//
|
||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
if (!card->isCreature() && card->hasType(Subtypes::TYPE_EQUIPMENT))
|
if (card->hasType(Subtypes::TYPE_EQUIPMENT))
|
||||||
{
|
{
|
||||||
if(isInPlay(card))
|
if(isInPlay(card))
|
||||||
{
|
{
|
||||||
@@ -785,7 +785,7 @@ void GameObserver::gameStateBasedEffects()
|
|||||||
{
|
{
|
||||||
if(card->target)//unattach equipments from cards that has protection from quality ex. protection from artifacts
|
if(card->target)//unattach equipments from cards that has protection from quality ex. protection from artifacts
|
||||||
{
|
{
|
||||||
if((card->target)->protectedAgainst(card))
|
if((card->target)->protectedAgainst(card)||card->isCreature())
|
||||||
((AEquip*)a)->unequip();
|
((AEquip*)a)->unequip();
|
||||||
}
|
}
|
||||||
if(card->controller())
|
if(card->controller())
|
||||||
|
|||||||
@@ -296,11 +296,13 @@ MTGPutInPlayRule::MTGPutInPlayRule(GameObserver* observer, int _id) :
|
|||||||
PermanentAbility(observer, _id)
|
PermanentAbility(observer, _id)
|
||||||
{
|
{
|
||||||
aType = MTGAbility::PUT_INTO_PLAY;
|
aType = MTGAbility::PUT_INTO_PLAY;
|
||||||
|
defaultPlayName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
int MTGPutInPlayRule::isReactingToClick(MTGCardInstance * card, ManaCost *)
|
int MTGPutInPlayRule::isReactingToClick(MTGCardInstance * card, ManaCost *)
|
||||||
{
|
{
|
||||||
int cardsinhand = game->players[0]->game->hand->nb_cards;
|
int cardsinhand = game->players[0]->game->hand->nb_cards;
|
||||||
|
defaultPlayName = card->isLand()?"Play Land":"Cast Card Normally";
|
||||||
Player * player = game->currentlyActing();
|
Player * player = game->currentlyActing();
|
||||||
if (!player->game->hand->hasCard(card) && !player->game->graveyard->hasCard(card) && !player->game->exile->hasCard(card))
|
if (!player->game->hand->hasCard(card) && !player->game->graveyard->hasCard(card) && !player->game->exile->hasCard(card))
|
||||||
return 0;
|
return 0;
|
||||||
@@ -753,6 +755,8 @@ int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost *
|
|||||||
if(!allowedToAltCast(card,player))
|
if(!allowedToAltCast(card,player))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
||||||
|
alternativeName = "Pay Alternative Cost";
|
||||||
|
|
||||||
if(card->has(Constants::CANPLAYFROMGRAVEYARD))
|
if(card->has(Constants::CANPLAYFROMGRAVEYARD))
|
||||||
alternativeName = "Alternate Cast From Graveyard";
|
alternativeName = "Alternate Cast From Graveyard";
|
||||||
@@ -763,6 +767,8 @@ int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost *
|
|||||||
|
|
||||||
if (card->isLand())
|
if (card->isLand())
|
||||||
{
|
{
|
||||||
|
alternativeName = "Play Land";
|
||||||
|
|
||||||
if (game->currentActionPlayer->game->playRestrictions->canPutIntoZone(card, game->currentActionPlayer->game->inPlay) == PlayRestriction::CANT_PLAY)
|
if (game->currentActionPlayer->game->playRestrictions->canPutIntoZone(card, game->currentActionPlayer->game->inPlay) == PlayRestriction::CANT_PLAY)
|
||||||
return 0;
|
return 0;
|
||||||
if (card->StackIsEmptyandSorcerySpeed())
|
if (card->StackIsEmptyandSorcerySpeed())
|
||||||
|
|||||||
Reference in New Issue
Block a user