fext tixes

This commit is contained in:
Evan Kranzler 2017-10-07 18:37:09 -04:00
parent 77f15413e6
commit f16b5881e8
61 changed files with 223 additions and 224 deletions

View file

@ -59,7 +59,7 @@ public class IsStepCondition implements Condition {
public String toString() {
StringBuilder sb = new StringBuilder("during ");
if (onlyDuringYourSteps) {
sb.append("your ");
sb.append("your ").append(phaseStep.getStepText());
} else if (phaseStep == PhaseStep.UPKEEP) {
sb.append("any upkeep step");
} else {

View file

@ -63,7 +63,9 @@ public class AddConditionalManaOfAnyColorEffect extends ManaEffect {
staticText = "Add "
+ (amount instanceof StaticValue ? (CardUtil.numberToText(((StaticValue) amount).toString())) : "")
+ " mana "
+ (oneChoice ? "of any one color" : "in any combination of colors")
+ (oneChoice ? "of any"
+ (amount instanceof StaticValue && (((StaticValue) amount).toString()).equals("1") ? "" : " one")
+ " color" : "in any combination of colors")
+ " to your mana pool. " + manaBuilder.getRule();
}

View file

@ -277,14 +277,14 @@ public class CreateTokenCopyTargetEffect extends OneShotEffect {
if (tapped && !attacking) {
sb.append("tapped ");
}
sb.append("token");
sb.append("token that's a copy of target creature");
} else {
sb.append(number);
sb.append(" ");
if (tapped && !attacking) {
sb.append("tapped ");
}
sb.append("tokens");
sb.append("tokens that are copies of target creature");
}
if (attacking) {
sb.append(" that are");

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common;
import mage.constants.Duration;
@ -45,23 +44,23 @@ public class PreventDamageToTargetEffect extends PreventionEffectImpl {
public PreventDamageToTargetEffect(Duration duration) {
this(duration, false);
}
public PreventDamageToTargetEffect(Duration duration, boolean onlyCombat) {
this(duration, Integer.MAX_VALUE, onlyCombat);
}
public PreventDamageToTargetEffect(Duration duration, int amount) {
this(duration, amount, false);
}
public PreventDamageToTargetEffect(Duration duration, int amount, boolean onlyCombat) {
super(duration, amount, onlyCombat);
}
public PreventDamageToTargetEffect(Duration duration, boolean onlyCombat, boolean consumable, DynamicValue amountToPreventDynamic) {
super(duration, 0, onlyCombat, consumable, amountToPreventDynamic);
}
public PreventDamageToTargetEffect(final PreventDamageToTargetEffect effect) {
super(effect);
}
@ -83,9 +82,9 @@ public class PreventDamageToTargetEffect extends PreventionEffectImpl {
}
StringBuilder sb = new StringBuilder();
if (amountToPrevent == Integer.MAX_VALUE) {
sb.append("Prevent all damage that would be dealt to target ");
sb.append("prevent all damage that would be dealt to target ");
} else {
sb.append("Prevent the next ").append(amountToPrevent).append(" damage that would be dealt to target ");
sb.append("prevent the next ").append(amountToPrevent).append(" damage that would be dealt to target ");
}
sb.append(mode.getTargets().get(0).getTargetName());
if (!duration.toString().isEmpty()) {

View file

@ -75,7 +75,7 @@ public class PutTopCardOfLibraryIntoGraveTargetEffect extends OneShotEffect {
}
private String setText() {
StringBuilder sb = new StringBuilder("Target player puts the top ");
StringBuilder sb = new StringBuilder("target player puts the top ");
if (numberCards.toString().equals("1")) {
sb.append(" card");
} else {

View file

@ -80,6 +80,6 @@ public class TapAllTargetPlayerControlsEffect extends OneShotEffect {
if (staticText != null && !staticText.isEmpty()) {
return staticText;
}
return "tap all " + filter.getMessage() + " target " + mode.getTargets().get(0).getMessage() + " controls";
return "tap all " + filter.toString() + " target " + mode.getTargets().get(0).getMessage() + " controls";
}
}

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common.combat;
import mage.abilities.Ability;
@ -38,12 +37,11 @@ import mage.game.permanent.Permanent;
/**
* @author LevelX2
*/
public class BlocksIfAbleAttachedEffect extends RequirementEffect {
public BlocksIfAbleAttachedEffect(Duration duration, AttachmentType attachmentType) {
super(duration);
this.staticText = attachmentType.verb() + " creature blocks each turn if able";
this.staticText = attachmentType.verb() + " creature blocks each combat if able";
}
public BlocksIfAbleAttachedEffect(final BlocksIfAbleAttachedEffect effect) {

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common.combat;
import mage.abilities.Ability;
@ -39,7 +38,6 @@ import mage.game.permanent.Permanent;
*
* @author LevelX2
*/
public class BlocksIfAbleSourceEffect extends RequirementEffect {
public BlocksIfAbleSourceEffect(Duration duration) {
@ -78,7 +76,7 @@ public class BlocksIfAbleSourceEffect extends RequirementEffect {
@Override
public String getText(Mode mode) {
return "{this} blocks each turn if able.";
return "{this} blocks each combat if able.";
}
}
}

View file

@ -25,7 +25,6 @@
* authors and should not be interpreted as representing official policies, either expressed
* or implied, of BetaSteward_at_googlemail.com.
*/
package mage.abilities.effects.common.combat;
import java.util.UUID;
@ -35,35 +34,32 @@ import mage.constants.Duration;
import mage.game.Game;
import mage.game.permanent.Permanent;
/**
* !! This effect does only support one target.
*
*
* http://tappedout.net/mtg-questions/must-be-blocked-if-able-effect-makes-other-attacking-creatures-essentially-unblockable/
*
* When you Declare Blockers, you choose an arrangement for your blockers,
* then check to see if there are any restrictions or requirements.
* When you Declare Blockers, you choose an arrangement for your blockers, then
* check to see if there are any restrictions or requirements.
*
* If any restrictions are violated, the block is illegal. (For example,
* trying to block with Sightless Ghoul)
* If any requirements are violated, the least possible number of requirements
* must be violated, otherwise the block is illegal. (For example, your opponent
* control two creatures that he has cast Deadly Allure on, but you control only
* one creature. Blocking either one will violate a requirement, "This creature
* must be blocked this turn if able", but it will also violate the least
* possible number of requirements, thus it is legal.)
* If the block is illegal, the game state backs up and you declare blockers
* again. (Note that while you can, in some cases, circumvent requirements
* such as "This creature must be blocked" or "This creature must block
* any attacking creature" you can never circumvent restrictions: "This creature
* can't block" or "Only one creature may block this turn.")
* Because you declare ALL your blockers at once, THEN check for
* restrictions/requirements, you may block Deadly Allure'd creatures
* with only one creature, if you choose.
* This still works with Lure: This card sets up a requirement that ALL
* creatures must block it if able. Any block that violates more than
* the minimum number of requirements is still illegal.
* If any restrictions are violated, the block is illegal. (For example, trying
* to block with Sightless Ghoul) If any requirements are violated, the least
* possible number of requirements must be violated, otherwise the block is
* illegal. (For example, your opponent control two creatures that he has cast
* Deadly Allure on, but you control only one creature. Blocking either one will
* violate a requirement, "This creature must be blocked this turn if able", but
* it will also violate the least possible number of requirements, thus it is
* legal.) If the block is illegal, the game state backs up and you declare
* blockers again. (Note that while you can, in some cases, circumvent
* requirements such as "This creature must be blocked" or "This creature must
* block any attacking creature" you can never circumvent restrictions: "This
* creature can't block" or "Only one creature may block this turn.") Because
* you declare ALL your blockers at once, THEN check for
* restrictions/requirements, you may block Deadly Allure'd creatures with only
* one creature, if you choose. This still works with Lure: This card sets up a
* requirement that ALL creatures must block it if able. Any block that violates
* more than the minimum number of requirements is still illegal.
*
* @author LevelX2
*/
@ -75,7 +71,7 @@ public class MustBeBlockedByAtLeastOneTargetEffect extends RequirementEffect {
public MustBeBlockedByAtLeastOneTargetEffect(Duration duration) {
super(duration);
staticText = "Target creature must be blocked this turn if able";
staticText = "target creature must be blocked this turn if able";
}
public MustBeBlockedByAtLeastOneTargetEffect(final MustBeBlockedByAtLeastOneTargetEffect effect) {

View file

@ -129,7 +129,7 @@ public abstract class SearchTargetGraveyardHandLibraryForCardNameAndExileEffect
@Override
public String getText(Mode mode) {
StringBuilder sb = new StringBuilder();
sb.append("Search ").append(this.searchWhatText);
sb.append("search ").append(this.searchWhatText);
sb.append(" graveyard, hand, and library for ");
sb.append(this.searchForText);
sb.append(" and exile them. Then that player shuffles his or her library");

View file

@ -1,4 +1,3 @@
package mage.abilities.keyword;
import mage.abilities.TriggeredAbilityImpl;
@ -11,12 +10,9 @@ import mage.game.events.GameEvent;
import mage.game.permanent.Permanent;
import mage.target.targetpointer.FixedTarget;
/**
* @author Plopman
*/
public class FlankingAbility extends TriggeredAbilityImpl {
public FlankingAbility() {
@ -37,9 +33,8 @@ public class FlankingAbility extends TriggeredAbilityImpl {
if (event.getTargetId().equals(this.getSourceId())) {
Permanent permanent = game.getPermanent(event.getSourceId());
if (permanent != null) {
boolean hasFlankingAbility =
permanent.getAbilities().stream().anyMatch(ability -> ability instanceof FlankingAbility);
boolean hasFlankingAbility
= permanent.getAbilities().stream().anyMatch(ability -> ability instanceof FlankingAbility);
if (!hasFlankingAbility) {
for (Effect effect : this.getEffects()) {
@ -54,7 +49,7 @@ public class FlankingAbility extends TriggeredAbilityImpl {
@Override
public String getRule() {
return "Flanking";
return "flanking";
}
@Override
@ -62,5 +57,4 @@ public class FlankingAbility extends TriggeredAbilityImpl {
return new FlankingAbility(this);
}
}

View file

@ -138,7 +138,11 @@ public class MorphAbility extends StaticAbility implements AlternativeSourceCost
break;
}
}
sb.append(morphCosts.getText()).append(' ');
sb.append(morphCosts.getText());
if (!(morphCosts.get(morphCosts.size() - 1) instanceof ManaCosts)) {
sb.append('.');
}
sb.append(' ');
if (megamorph) {
sb.append(REMINDER_TEXT_MEGA);
} else {

View file

@ -46,7 +46,7 @@ public class RampageAbility extends BecomesBlockedTriggeredAbility {
public RampageAbility(int amount) {
super(null, false);
rule = "rampage " + amount + "(Whenever this creature becomes blocked, it gets +"
rule = "rampage " + amount + " (Whenever this creature becomes blocked, it gets +"
+ amount + "/+" + amount + " until end of turn for each creature blocking it beyond the first.)";
RampageValue rv = new RampageValue(amount);
this.addEffect(new BoostSourceEffect(rv, rv, Duration.EndOfTurn, true));

View file

@ -12,10 +12,12 @@ import mage.game.permanent.Permanent;
/**
* "Shadow" keyword
*
* @author Loki
*/
public class ShadowAbility extends EvasionAbility implements MageSingleton {
private static final ShadowAbility instance = new ShadowAbility();
private static final ShadowAbility instance = new ShadowAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
@ -31,7 +33,7 @@ public class ShadowAbility extends EvasionAbility implements MageSingleton {
@Override
public String getRule() {
return "Shadow <i>(This creature can block or be blocked by only creatures with shadow.)</i>";
return "shadow <i>(This creature can block or be blocked by only creatures with shadow.)</i>";
}
@Override

View file

@ -59,7 +59,7 @@ public final class StaticFilters {
public static final FilterCreaturePermanent FILTER_PERMANENT_A_CREATURE = new FilterCreaturePermanent("a creature");
public static final FilterCreaturePermanent FILTER_PERMANENT_CREATURES = new FilterCreaturePermanent("creatures");
public static final FilterCreaturePermanent FILTER_PERMANENT_CREATURE_GOBLINS = new FilterCreaturePermanent(SubType.GOBLIN, "Goblin creatures");
public static final FilterCreaturePermanent FILTER_PERMANENT_CREATURE_SLIVERS = new FilterCreaturePermanent(SubType.SLIVER, "Sliver creatures");
public static final FilterCreaturePermanent FILTER_PERMANENT_CREATURE_SLIVERS = new FilterCreaturePermanent(SubType.SLIVER, "all Sliver creatures");
public static final FilterPlaneswalkerPermanent FILTER_PERMANENT_PLANESWALKER = new FilterPlaneswalkerPermanent();
public static final FilterPermanent FILTER_PERMANENT_NON_LAND = new FilterNonlandPermanent();