@@ -596,6 +596,10 @@ private:
|
||||
if(card->playerTarget)
|
||||
intValue = card->playerTarget->curses.size();
|
||||
}
|
||||
else if (s == "oplifetotal")
|
||||
{
|
||||
intValue = target->controller()->opponent()->life;
|
||||
}
|
||||
else if (s == "lifetotal")
|
||||
{
|
||||
intValue = target->controller()->life;
|
||||
@@ -3296,6 +3300,7 @@ public:
|
||||
game->removeObserver(abilities[card]);
|
||||
abilities.erase(card);
|
||||
}
|
||||
resolve();
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -635,15 +635,15 @@ Player * MTGCardInstance::controller()
|
||||
|
||||
int MTGCardInstance::canAttack()
|
||||
{
|
||||
if (basicAbilities[(int)Constants::CANTATTACK])
|
||||
if (has(Constants::CANTATTACK))
|
||||
return 0;
|
||||
if (basicAbilities[(int)Constants::FLYERSONLY] && !basicAbilities[(int)Constants::FLYING])
|
||||
if (has(Constants::FLYERSONLY) && !has(Constants::FLYING))
|
||||
return 0;
|
||||
if (tapped)
|
||||
return 0;
|
||||
if (hasSummoningSickness())
|
||||
return 0;
|
||||
if (basicAbilities[(int)Constants::DEFENSER] && !basicAbilities[(int)Constants::CANATTACK])
|
||||
if (has(Constants::DEFENSER) && !has(Constants::CANATTACK))
|
||||
return 0;
|
||||
if (!isCreature())
|
||||
return 0;
|
||||
|
||||
@@ -760,7 +760,7 @@ int MTGAlternativeCostRule::isReactingToClick(MTGCardInstance * card, ManaCost *
|
||||
ManaCost * cost = card->getManaCost();
|
||||
cost->Dump();
|
||||
#endif
|
||||
if (alternateManaCost->extraCosts)
|
||||
if (alternateManaCost->extraCosts && !playerMana->canAfford(card->getManaCost()))
|
||||
{
|
||||
//offerings handle thier own casting and cost payments.
|
||||
//we add this condiational here because offering can also have a completely different
|
||||
|
||||
Reference in New Issue
Block a user