mirror of
https://github.com/correl/mage.git
synced 2025-04-14 09:09:38 -09:00
* Fixed that AI used activated abilities for Battlefield as the card was on hand (fix #588).
This commit is contained in:
parent
b3b51f9f1e
commit
54f0fd8fc1
5 changed files with 14 additions and 8 deletions
Mage.Tests/src/test/java/org/mage/test/cards/single
Mage/src/mage
|
@ -13,7 +13,14 @@ public class ArrogantBloodlordTest extends CardTestPlayerBase {
|
|||
// blocked trigger
|
||||
@Test
|
||||
public void testCardBlocked() {
|
||||
// Arrogant Bloodlord
|
||||
// 4/4
|
||||
// Whenever Arrogant Bloodlord blocks or becomes blocked by a creature with power 1 or less,
|
||||
// destroy Arrogant Bloodlord at end of combat.
|
||||
addCard(Zone.BATTLEFIELD, playerA, "Arrogant Bloodlord");
|
||||
// Wall of Air
|
||||
// 1/5
|
||||
// Defender, flying
|
||||
addCard(Zone.BATTLEFIELD, playerB, "Wall of Air");
|
||||
|
||||
attack(1, playerA, "Arrogant Bloodlord");
|
||||
|
@ -26,7 +33,7 @@ public class ArrogantBloodlordTest extends CardTestPlayerBase {
|
|||
assertLife(playerB, 20);
|
||||
assertPermanentCount(playerA, "Arrogant Bloodlord", 0);
|
||||
assertPermanentCount(playerB, "Wall of Air", 1);
|
||||
}
|
||||
}
|
||||
// blocks trigger
|
||||
@Test
|
||||
public void testCardBlocker() {
|
||||
|
|
|
@ -133,7 +133,7 @@ public class AbilitiesImpl<T extends Ability> extends ArrayList<T> implements Ab
|
|||
public Abilities<ActivatedAbility> getPlayableAbilities(Zone zone) {
|
||||
Abilities<ActivatedAbility> zonedAbilities = new AbilitiesImpl<>();
|
||||
for (T ability: this) {
|
||||
if (((ability instanceof SpellAbility) || (ability instanceof PlayLandAbility))
|
||||
if ((ability instanceof ActivatedAbility || (ability instanceof PlayLandAbility))
|
||||
&& ability.getZone().match(zone)) {
|
||||
zonedAbilities.add((ActivatedAbility)ability);
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ import mage.constants.Zone;
|
|||
public abstract class EvasionAbility extends StaticAbility {
|
||||
|
||||
public EvasionAbility() {
|
||||
super(AbilityType.EVASION, Zone.BATTLEFIELD);
|
||||
super(AbilityType.EVASION, Zone.ALL);
|
||||
}
|
||||
|
||||
public EvasionAbility(final EvasionAbility ability) {
|
||||
|
|
|
@ -45,7 +45,6 @@ import mage.abilities.costs.CostsImpl;
|
|||
import mage.abilities.costs.mana.GenericManaCost;
|
||||
import mage.abilities.costs.mana.ManaCost;
|
||||
import mage.abilities.costs.mana.ManaCosts;
|
||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||
import mage.abilities.effects.ContinuousEffectImpl;
|
||||
import mage.abilities.effects.common.continious.SourceEffect;
|
||||
import mage.cards.Card;
|
||||
|
@ -131,7 +130,6 @@ public class MorphAbility extends StaticAbility implements AlternativeSourceCost
|
|||
sb.append(REMINDER_TEXT);
|
||||
ruleText = sb.toString();
|
||||
|
||||
// alternateCosts.add(new AlternativeCost2Impl(ABILITY_KEYWORD, REMINDER_TEXT, new GenericManaCost(3)));
|
||||
Ability ability = new SimpleStaticAbility(Zone.BATTLEFIELD, new BecomesFaceDownCreatureEffect(morphCosts));
|
||||
ability.setRuleVisible(false);
|
||||
card.addAbility(ability);
|
||||
|
|
|
@ -2021,8 +2021,8 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
|
||||
if (hidden) {
|
||||
for (Card card : hand.getUniqueCards(game)) {
|
||||
for (Ability ability : card.getAbilities()) {
|
||||
if (ability instanceof ActivatedAbility) {
|
||||
for (Ability ability : card.getAbilities().getPlayableAbilities(Zone.HAND)) { // gets this activated ability from hand? (Morph?)
|
||||
if (ability instanceof ActivatedAbility) {
|
||||
if (ability instanceof PlayLandAbility) {
|
||||
if (game.getContinuousEffects().preventedByRuleModification(GameEvent.getEvent(GameEvent.EventType.PLAY_LAND, ability.getSourceId(), ability.getSourceId(), playerId), ability, game, true)) {
|
||||
break;
|
||||
|
@ -2033,7 +2033,8 @@ public abstract class PlayerImpl implements Player, Serializable {
|
|||
}
|
||||
}
|
||||
if (ability instanceof AlternativeSourceCosts) {
|
||||
|
||||
// something missing here
|
||||
int test = 6;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue