mirror of
https://github.com/correl/mage.git
synced 2024-12-24 03:00:14 +00:00
Failing test and fix for additional costs not displayed in tooltips
This commit is contained in:
parent
f77284d424
commit
3d1bb8e1ab
2 changed files with 49 additions and 5 deletions
|
@ -0,0 +1,34 @@
|
|||
package org.mage.test.cards.rules;
|
||||
|
||||
import mage.Constants;
|
||||
import mage.cards.Card;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.mage.test.serverside.base.CardTestPlayerBase;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author magenoxx_at_googlemail.com
|
||||
*/
|
||||
public class AdditionalCostRuleTest extends CardTestPlayerBase {
|
||||
|
||||
@Test
|
||||
public void testAdditionalCostDisplayed() {
|
||||
addCard(Constants.Zone.GRAVEYARD, playerA, "Silvergill Adept");
|
||||
|
||||
setStopAt(1, Constants.PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
Card firewildBorderpost = playerA.getGraveyard().getCards(currentGame).iterator().next();
|
||||
boolean found = false;
|
||||
for (String rule : firewildBorderpost.getRules()) {
|
||||
if (rule.startsWith("As an additional cost to cast")) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Assert.assertTrue("Couldn't find rule text for additional cost on a card: " + firewildBorderpost.getName(), found);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -31,6 +31,7 @@ package mage.abilities;
|
|||
import mage.Constants.Zone;
|
||||
import mage.abilities.common.ZoneChangeTriggeredAbility;
|
||||
import mage.abilities.costs.AlternativeCost;
|
||||
import mage.abilities.costs.Cost;
|
||||
import mage.abilities.keyword.KickerAbility;
|
||||
import mage.abilities.keyword.ProtectionAbility;
|
||||
import mage.abilities.mana.ManaAbility;
|
||||
|
@ -73,12 +74,21 @@ public class AbilitiesImpl<T extends Ability> extends ArrayList<T> implements Ab
|
|||
for (T ability:this) {
|
||||
if (!(ability instanceof SpellAbility || ability instanceof PlayLandAbility))
|
||||
rules.add(ability.getRule());
|
||||
if (ability instanceof SpellAbility && ability.getAlternativeCosts().size() > 0) {
|
||||
StringBuilder sbRule = new StringBuilder();
|
||||
for (AlternativeCost cost: ability.getAlternativeCosts()) {
|
||||
sbRule.append(cost.getName()).append(".\n");
|
||||
if (ability instanceof SpellAbility) {
|
||||
if (ability.getAlternativeCosts().size() > 0) {
|
||||
StringBuilder sbRule = new StringBuilder();
|
||||
for (AlternativeCost cost: ability.getAlternativeCosts()) {
|
||||
sbRule.append(cost.getName()).append(".\n");
|
||||
}
|
||||
rules.add(sbRule.toString());
|
||||
}
|
||||
if (ability.getCosts().size() > 0) {
|
||||
StringBuilder sbRule = new StringBuilder();
|
||||
for (Cost cost: ability.getCosts()) {
|
||||
sbRule.append(cost.getText()).append(".\n");
|
||||
}
|
||||
rules.add(sbRule.toString());
|
||||
}
|
||||
rules.add(sbRule.toString());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue