mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
[AFR] various text fixes
This commit is contained in:
parent
d2f2578cc4
commit
3299641ad4
30 changed files with 78 additions and 66 deletions
|
@ -20,7 +20,7 @@ import mage.target.common.TargetCreaturePermanent;
|
||||||
*/
|
*/
|
||||||
public final class AirCultElemental extends CardImpl {
|
public final class AirCultElemental extends CardImpl {
|
||||||
|
|
||||||
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other creature");
|
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("other target creature");
|
||||||
|
|
||||||
static {
|
static {
|
||||||
filter.add(AnotherPredicate.instance);
|
filter.add(AnotherPredicate.instance);
|
||||||
|
|
|
@ -52,7 +52,7 @@ public final class BardClass extends CardImpl {
|
||||||
|
|
||||||
// Legendary spells you cast cost {R}{G} less to cast. This effect reduces only the amount of colored mana you pay.
|
// Legendary spells you cast cost {R}{G} less to cast. This effect reduces only the amount of colored mana you pay.
|
||||||
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
||||||
new SpellsCostReductionControllerEffect(filter, new ManaCostsImpl<>("{W}{B}")), 2
|
new SpellsCostReductionControllerEffect(filter, new ManaCostsImpl<>("{R}{G}")), 2
|
||||||
)));
|
)));
|
||||||
|
|
||||||
// {3}{R}{G}: Level 3
|
// {3}{R}{G}: Level 3
|
||||||
|
|
|
@ -33,7 +33,7 @@ public final class ContactOtherPlane extends CardImpl {
|
||||||
// 20 | Scry 3, then draw three cards.
|
// 20 | Scry 3, then draw three cards.
|
||||||
effect.addTableEntry(
|
effect.addTableEntry(
|
||||||
20, 20, new ScryEffect(3, false),
|
20, 20, new ScryEffect(3, false),
|
||||||
new DrawCardSourceControllerEffect(2).concatBy(", then")
|
new DrawCardSourceControllerEffect(3).concatBy(", then")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class DawnbringerCleric extends CardImpl {
|
||||||
|
|
||||||
// When Dawnbringer Cleric enters the battlefield, choose one —
|
// When Dawnbringer Cleric enters the battlefield, choose one —
|
||||||
// • Cure Wounds — You gain 2 life.
|
// • Cure Wounds — You gain 2 life.
|
||||||
Ability ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(1));
|
Ability ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(2));
|
||||||
ability.getModes().getMode().withFlavorWord("Cure Wounds");
|
ability.getModes().getMode().withFlavorWord("Cure Wounds");
|
||||||
|
|
||||||
// • Dispel Magic — Destroy target enchantment.
|
// • Dispel Magic — Destroy target enchantment.
|
||||||
|
|
|
@ -3,18 +3,19 @@ package mage.cards.d;
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||||
import mage.abilities.common.SimpleStaticAbility;
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.CompletedDungeonCondition;
|
import mage.abilities.condition.common.MorbidCondition;
|
||||||
import mage.abilities.costs.mana.GenericManaCost;
|
import mage.abilities.costs.mana.GenericManaCost;
|
||||||
import mage.abilities.effects.common.CreateTokenEffect;
|
import mage.abilities.effects.common.CreateTokenEffect;
|
||||||
import mage.abilities.effects.common.DoIfCostPaid;
|
import mage.abilities.effects.common.DoIfCostPaid;
|
||||||
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
import mage.abilities.effects.common.continuous.BoostControlledEffect;
|
||||||
|
import mage.abilities.hint.common.MorbidHint;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
import mage.cards.CardSetInfo;
|
import mage.cards.CardSetInfo;
|
||||||
import mage.constants.*;
|
import mage.constants.*;
|
||||||
import mage.filter.common.FilterCreaturePermanent;
|
import mage.filter.common.FilterCreaturePermanent;
|
||||||
import mage.filter.predicate.Predicates;
|
import mage.filter.predicate.Predicates;
|
||||||
import mage.game.permanent.token.SkeletonToken;
|
import mage.game.permanent.token.SkeletonToken;
|
||||||
import mage.watchers.common.CompletedDungeonWatcher;
|
import mage.watchers.common.MorbidWatcher;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -51,8 +52,8 @@ public final class DeathPriestOfMyrkul extends CardImpl {
|
||||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||||
Zone.BATTLEFIELD,
|
Zone.BATTLEFIELD,
|
||||||
new DoIfCostPaid(new CreateTokenEffect(new SkeletonToken()), new GenericManaCost(1)),
|
new DoIfCostPaid(new CreateTokenEffect(new SkeletonToken()), new GenericManaCost(1)),
|
||||||
TargetController.YOU, CompletedDungeonCondition.instance, false
|
TargetController.YOU, MorbidCondition.instance, false
|
||||||
).addHint(CompletedDungeonCondition.getHint()), new CompletedDungeonWatcher());
|
).addHint(MorbidHint.instance), new MorbidWatcher());
|
||||||
}
|
}
|
||||||
|
|
||||||
private DeathPriestOfMyrkul(final DeathPriestOfMyrkul card) {
|
private DeathPriestOfMyrkul(final DeathPriestOfMyrkul card) {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public final class FighterClass extends CardImpl {
|
||||||
|
|
||||||
// When Fighter Class enters the battlefield, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.
|
// When Fighter Class enters the battlefield, search your library for an Equipment card, reveal it, put it into your hand, then shuffle.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(
|
||||||
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter))
|
new SearchLibraryPutInHandEffect(new TargetCardInLibrary(filter), true)
|
||||||
));
|
));
|
||||||
|
|
||||||
// {1}{R}{W}: Level 2
|
// {1}{R}{W}: Level 2
|
||||||
|
@ -58,7 +58,7 @@ public final class FighterClass extends CardImpl {
|
||||||
// Equip abilities you activate cost {2} less to activate.
|
// Equip abilities you activate cost {2} less to activate.
|
||||||
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
||||||
new AbilitiesCostReductionControllerEffect(EquipAbility.class, "Equip")
|
new AbilitiesCostReductionControllerEffect(EquipAbility.class, "Equip")
|
||||||
.setText("\"equip abilities you activate cost {2} less to activate\""),
|
.setText("equip abilities you activate cost {2} less to activate"),
|
||||||
2
|
2
|
||||||
)));
|
)));
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ public final class FindThePath extends CardImpl {
|
||||||
new SimpleManaAbility(
|
new SimpleManaAbility(
|
||||||
Zone.BATTLEFIELD, new Mana(ManaType.GREEN, 2), new TapSourceCost()
|
Zone.BATTLEFIELD, new Mana(ManaType.GREEN, 2), new TapSourceCost()
|
||||||
), AttachmentType.AURA
|
), AttachmentType.AURA
|
||||||
)));
|
).setText("enchanted land has \"{T}: Add {G}{G}.\"")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private FindThePath(final FindThePath card) {
|
private FindThePath(final FindThePath card) {
|
||||||
|
|
|
@ -33,7 +33,9 @@ public final class GoblinMorningstar extends CardImpl {
|
||||||
|
|
||||||
// Equipped creature gets +1/+0 and has trample.
|
// Equipped creature gets +1/+0 and has trample.
|
||||||
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 0));
|
Ability ability = new SimpleStaticAbility(new BoostEquippedEffect(1, 0));
|
||||||
ability.addEffect(new GainAbilityAttachedEffect(TrampleAbility.getInstance(), AttachmentType.EQUIPMENT));
|
ability.addEffect(new GainAbilityAttachedEffect(
|
||||||
|
TrampleAbility.getInstance(), AttachmentType.EQUIPMENT
|
||||||
|
).setText("and has trample"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
|
|
||||||
// Equip {1}{R}
|
// Equip {1}{R}
|
||||||
|
|
|
@ -36,7 +36,7 @@ public final class GreenDragon extends CardImpl {
|
||||||
// Poison Breath — When Green Dragon enters the battlefield, until end of turn, whenever a creature an opponent controls is dealt damage, destroy it.
|
// Poison Breath — When Green Dragon enters the battlefield, until end of turn, whenever a creature an opponent controls is dealt damage, destroy it.
|
||||||
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
this.addAbility(new EntersBattlefieldTriggeredAbility(new CreateDelayedTriggeredAbilityEffect(
|
||||||
new GreenDragonDelayedTriggeredAbility(), false
|
new GreenDragonDelayedTriggeredAbility(), false
|
||||||
)));
|
)).withFlavorWord("Poison Breath"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private GreenDragon(final GreenDragon card) {
|
private GreenDragon(final GreenDragon card) {
|
||||||
|
|
|
@ -1,12 +1,9 @@
|
||||||
package mage.cards.g;
|
package mage.cards.g;
|
||||||
|
|
||||||
import mage.MageInt;
|
import mage.MageInt;
|
||||||
import mage.abilities.Ability;
|
|
||||||
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
import mage.abilities.common.DealsCombatDamageToAPlayerTriggeredAbility;
|
||||||
import mage.abilities.common.EntersBattlefieldTriggeredAbility;
|
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.DestroyTargetEffect;
|
|
||||||
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
|
import mage.abilities.effects.common.combat.CantBeBlockedSourceEffect;
|
||||||
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
import mage.abilities.effects.common.counter.AddCountersSourceEffect;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
@ -15,7 +12,6 @@ import mage.constants.CardType;
|
||||||
import mage.constants.Duration;
|
import mage.constants.Duration;
|
||||||
import mage.constants.SubType;
|
import mage.constants.SubType;
|
||||||
import mage.counters.CounterType;
|
import mage.counters.CounterType;
|
||||||
import mage.target.common.TargetCreaturePermanent;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@ -34,7 +30,9 @@ public final class GuildThief extends CardImpl {
|
||||||
|
|
||||||
// Whenever Guild Thief deals combat damage to a player, put a +1/+1 counter on it.
|
// Whenever Guild Thief deals combat damage to a player, put a +1/+1 counter on it.
|
||||||
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
this.addAbility(new DealsCombatDamageToAPlayerTriggeredAbility(
|
||||||
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1)), false
|
new AddCountersSourceEffect(CounterType.P1P1.createInstance(1))
|
||||||
|
.setText("put a +1/+1 counter on it"),
|
||||||
|
false
|
||||||
));
|
));
|
||||||
|
|
||||||
// Cunning Action — {3}{U}: Guild Thief can't be blocked this turn.
|
// Cunning Action — {3}{U}: Guild Thief can't be blocked this turn.
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class IronGolem extends CardImpl {
|
||||||
|
|
||||||
// Iron Golem attacks or blocks each combat if able.
|
// Iron Golem attacks or blocks each combat if able.
|
||||||
Ability ability = new SimpleStaticAbility(new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield).setText("{this} attacks"));
|
Ability ability = new SimpleStaticAbility(new AttacksIfAbleSourceEffect(Duration.WhileOnBattlefield).setText("{this} attacks"));
|
||||||
ability.addEffect(new BlocksIfAbleSourceEffect(Duration.WhileOnBattlefield).setText("or blocks each combat if able"));
|
ability.addEffect(new BlocksIfAbleSourceEffect(Duration.WhileOnBattlefield).setText("blocks each combat if able").concatBy("or"));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ public final class LightfootRogue extends CardImpl {
|
||||||
20, 20,
|
20, 20,
|
||||||
new BoostSourceEffect(
|
new BoostSourceEffect(
|
||||||
3, 0, Duration.EndOfTurn
|
3, 0, Duration.EndOfTurn
|
||||||
).setText("it gets +1/+0"),
|
).setText("it gets +3/+0"),
|
||||||
new GainAbilitySourceEffect(
|
new GainAbilitySourceEffect(
|
||||||
FirstStrikeAbility.getInstance(), Duration.EndOfTurn
|
FirstStrikeAbility.getInstance(), Duration.EndOfTurn
|
||||||
).setText("and gains first strike"),
|
).setText("and gains first strike"),
|
||||||
|
|
|
@ -39,7 +39,7 @@ public final class LoathsomeTroll extends CardImpl {
|
||||||
));
|
));
|
||||||
|
|
||||||
// 10-19 | Return Loathsome Troll to your hand.
|
// 10-19 | Return Loathsome Troll to your hand.
|
||||||
effect.addTableEntry(10, 19, new ReturnToHandSourceEffect().setText("retun {this} to your hand"));
|
effect.addTableEntry(10, 19, new ReturnToHandSourceEffect().setText("return {this} to your hand"));
|
||||||
|
|
||||||
// 20 | Return Loathsome Troll to the battlefield tapped.
|
// 20 | Return Loathsome Troll to the battlefield tapped.
|
||||||
effect.addTableEntry(20, 20, new ReturnSourceFromGraveyardToBattlefieldEffect(true)
|
effect.addTableEntry(20, 20, new ReturnSourceFromGraveyardToBattlefieldEffect(true)
|
||||||
|
|
|
@ -58,7 +58,7 @@ enum MercadianAtlasCondition implements Condition {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "{this} is attacking";
|
return "you didn't play a land this turn";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ public final class OswaldFiddlebender extends CardImpl {
|
||||||
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(
|
ability.addCost(new SacrificeTargetCost(new TargetControlledPermanent(
|
||||||
StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN
|
StaticFilters.FILTER_CONTROLLED_PERMANENT_ARTIFACT_AN
|
||||||
)));
|
)));
|
||||||
this.addAbility(ability);
|
this.addAbility(ability.withFlavorWord("Magical Tinkering"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private OswaldFiddlebender(final OswaldFiddlebender card) {
|
private OswaldFiddlebender(final OswaldFiddlebender card) {
|
||||||
|
|
|
@ -58,7 +58,7 @@ class PowerOfPersuasionEffect extends OneShotEffect {
|
||||||
|
|
||||||
PowerOfPersuasionEffect() {
|
PowerOfPersuasionEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "its owner puts it on the top of bottom of their library";
|
staticText = "its owner puts it on the top or bottom of their library";
|
||||||
}
|
}
|
||||||
|
|
||||||
private PowerOfPersuasionEffect(final PowerOfPersuasionEffect effect) {
|
private PowerOfPersuasionEffect(final PowerOfPersuasionEffect effect) {
|
||||||
|
|
|
@ -31,7 +31,7 @@ public final class PurpleWorm extends CardImpl {
|
||||||
|
|
||||||
// This spell costs {2} less to cast if a creature died this turn.
|
// This spell costs {2} less to cast if a creature died this turn.
|
||||||
Ability ability = new SimpleStaticAbility(
|
Ability ability = new SimpleStaticAbility(
|
||||||
Zone.ALL, new SpellCostReductionSourceEffect(1, MorbidCondition.instance)
|
Zone.ALL, new SpellCostReductionSourceEffect(2, MorbidCondition.instance)
|
||||||
);
|
);
|
||||||
ability.setRuleAtTheTop(true);
|
ability.setRuleAtTheTop(true);
|
||||||
this.addAbility(ability.addHint(MorbidHint.instance), new MorbidWatcher());
|
this.addAbility(ability.addHint(MorbidHint.instance), new MorbidWatcher());
|
||||||
|
|
|
@ -40,9 +40,9 @@ public final class ShessraDeathsWhisper extends CardImpl {
|
||||||
|
|
||||||
// Whispers of the Grave — At the beginning of your end step, if a creature died this turn, you may pay 2 life. If you do, draw a card.
|
// Whispers of the Grave — At the beginning of your end step, if a creature died this turn, you may pay 2 life. If you do, draw a card.
|
||||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
||||||
Zone.BATTLEFIELD, new DoIfCostPaid(new DrawCardSourceControllerEffect(2),
|
Zone.BATTLEFIELD, new DoIfCostPaid(new DrawCardSourceControllerEffect(1),
|
||||||
new PayLifeCost(2)), TargetController.YOU, MorbidCondition.instance, false
|
new PayLifeCost(2)), TargetController.YOU, MorbidCondition.instance, false
|
||||||
).addHint(MorbidHint.instance), new MorbidWatcher());
|
).addHint(MorbidHint.instance).withFlavorWord("Whispers of the Grave"), new MorbidWatcher());
|
||||||
}
|
}
|
||||||
|
|
||||||
private ShessraDeathsWhisper(final ShessraDeathsWhisper card) {
|
private ShessraDeathsWhisper(final ShessraDeathsWhisper card) {
|
||||||
|
|
|
@ -44,7 +44,7 @@ public final class SpikedPitTrap extends CardImpl {
|
||||||
));
|
));
|
||||||
|
|
||||||
// 10-20 | Spike Pit Trap deals 5 damage to that creature. Create a Treasure token.
|
// 10-20 | Spike Pit Trap deals 5 damage to that creature. Create a Treasure token.
|
||||||
effect.addTableEntry(1, 9, new DamageTargetEffect(
|
effect.addTableEntry(10, 20, new DamageTargetEffect(
|
||||||
5, true, "that creature."
|
5, true, "that creature."
|
||||||
), new CreateTokenEffect(new TreasureToken()));
|
), new CreateTokenEffect(new TreasureToken()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -65,7 +65,7 @@ class TreasureChestEffect extends OneShotEffect {
|
||||||
|
|
||||||
TreasureChestEffect() {
|
TreasureChestEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "search your library for a card. If it's an artifact card you may " +
|
staticText = "search your library for a card. If it's an artifact card, you may " +
|
||||||
"put it onto the battlefield. Otherwise, put that card into your hand. Then shuffle";
|
"put it onto the battlefield. Otherwise, put that card into your hand. Then shuffle";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,12 +3,14 @@ package mage.cards.w;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.common.BecomesClassLevelTriggeredAbility;
|
import mage.abilities.common.BecomesClassLevelTriggeredAbility;
|
||||||
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
import mage.abilities.common.BeginningOfEndStepTriggeredAbility;
|
||||||
|
import mage.abilities.common.SimpleStaticAbility;
|
||||||
import mage.abilities.condition.common.MorbidCondition;
|
import mage.abilities.condition.common.MorbidCondition;
|
||||||
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
import mage.abilities.decorator.ConditionalInterveningIfTriggeredAbility;
|
||||||
import mage.abilities.dynamicvalue.common.StaticValue;
|
import mage.abilities.dynamicvalue.common.StaticValue;
|
||||||
import mage.abilities.effects.OneShotEffect;
|
import mage.abilities.effects.OneShotEffect;
|
||||||
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
import mage.abilities.effects.common.LookLibraryAndPickControllerEffect;
|
||||||
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
import mage.abilities.effects.common.LoseLifeOpponentsEffect;
|
||||||
|
import mage.abilities.effects.common.continuous.GainClassAbilitySourceEffect;
|
||||||
import mage.abilities.hint.common.MorbidHint;
|
import mage.abilities.hint.common.MorbidHint;
|
||||||
import mage.abilities.keyword.ClassLevelAbility;
|
import mage.abilities.keyword.ClassLevelAbility;
|
||||||
import mage.abilities.keyword.ClassReminderAbility;
|
import mage.abilities.keyword.ClassReminderAbility;
|
||||||
|
@ -39,7 +41,7 @@ public final class WarlockClass extends CardImpl {
|
||||||
// At the beginning of your end step, if a creature died this turn, each opponent loses 1 life.
|
// At the beginning of your end step, if a creature died this turn, each opponent loses 1 life.
|
||||||
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
this.addAbility(new ConditionalInterveningIfTriggeredAbility(
|
||||||
new BeginningOfEndStepTriggeredAbility(
|
new BeginningOfEndStepTriggeredAbility(
|
||||||
new LoseLifeOpponentsEffect(2), TargetController.YOU, false
|
new LoseLifeOpponentsEffect(1), TargetController.YOU, false
|
||||||
), MorbidCondition.instance, "At the beginning of your end step, " +
|
), MorbidCondition.instance, "At the beginning of your end step, " +
|
||||||
"if a creature died this turn, each opponent loses 1 life."
|
"if a creature died this turn, each opponent loses 1 life."
|
||||||
).addHint(MorbidHint.instance), new MorbidWatcher());
|
).addHint(MorbidHint.instance), new MorbidWatcher());
|
||||||
|
@ -49,7 +51,7 @@ public final class WarlockClass extends CardImpl {
|
||||||
|
|
||||||
// When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard.
|
// When this Class becomes level 2, look at the top three cards of your library. Put one of them into your hand and the rest into your graveyard.
|
||||||
this.addAbility(new BecomesClassLevelTriggeredAbility(new LookLibraryAndPickControllerEffect(
|
this.addAbility(new BecomesClassLevelTriggeredAbility(new LookLibraryAndPickControllerEffect(
|
||||||
StaticValue.get(1), false, StaticValue.get(1), StaticFilters.FILTER_CARD,
|
StaticValue.get(3), false, StaticValue.get(1), StaticFilters.FILTER_CARD,
|
||||||
Zone.GRAVEYARD, false, false, false, Zone.HAND, false
|
Zone.GRAVEYARD, false, false, false, Zone.HAND, false
|
||||||
), 2));
|
), 2));
|
||||||
|
|
||||||
|
@ -57,9 +59,11 @@ public final class WarlockClass extends CardImpl {
|
||||||
this.addAbility(new ClassLevelAbility(3, "{6}{B}"));
|
this.addAbility(new ClassLevelAbility(3, "{6}{B}"));
|
||||||
|
|
||||||
// At the beginning of your end step, each opponent loses life equal to the life they lost this turn.
|
// At the beginning of your end step, each opponent loses life equal to the life they lost this turn.
|
||||||
this.addAbility(new BeginningOfEndStepTriggeredAbility(
|
this.addAbility(new SimpleStaticAbility(new GainClassAbilitySourceEffect(
|
||||||
new WarlockClassEffect(), TargetController.YOU, false
|
new BeginningOfEndStepTriggeredAbility(
|
||||||
));
|
new WarlockClassEffect(), TargetController.YOU, false
|
||||||
|
), 3
|
||||||
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
private WarlockClass(final WarlockClass card) {
|
private WarlockClass(final WarlockClass card) {
|
||||||
|
@ -76,7 +80,7 @@ class WarlockClassEffect extends OneShotEffect {
|
||||||
|
|
||||||
WarlockClassEffect() {
|
WarlockClassEffect() {
|
||||||
super(Outcome.Benefit);
|
super(Outcome.Benefit);
|
||||||
staticText = "At the beginning of your end step, each opponent loses life equal to the life they lost this turn.";
|
staticText = "each opponent loses life equal to the life they lost this turn.";
|
||||||
}
|
}
|
||||||
|
|
||||||
private WarlockClassEffect(final WarlockClassEffect effect) {
|
private WarlockClassEffect(final WarlockClassEffect effect) {
|
||||||
|
|
|
@ -25,7 +25,7 @@ public final class WildShape extends CardImpl {
|
||||||
|
|
||||||
// Choose one. Until end of turn, target creature you control has that base power and toughness, becomes that creature type, and gains that ability.
|
// Choose one. Until end of turn, target creature you control has that base power and toughness, becomes that creature type, and gains that ability.
|
||||||
this.getSpellAbility().getModes().setChooseText(
|
this.getSpellAbility().getModes().setChooseText(
|
||||||
". Until end of turn, target creature you control has that base power and toughness, " +
|
"Choose one. Until end of turn, target creature you control has that base power and toughness, " +
|
||||||
"becomes that creature type, and gains that ability."
|
"becomes that creature type, and gains that ability."
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ public final class YouFindTheVillainsLair extends CardImpl {
|
||||||
// • Learn Their Secrets — Draw two cards, then discard two cards.
|
// • Learn Their Secrets — Draw two cards, then discard two cards.
|
||||||
this.getSpellAbility().addMode(new Mode(
|
this.getSpellAbility().addMode(new Mode(
|
||||||
new DrawDiscardControllerEffect(2, 2)
|
new DrawDiscardControllerEffect(2, 2)
|
||||||
).withFlavorWord("Learn Their Secrts"));
|
).withFlavorWord("Learn Their Secrets"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private YouFindTheVillainsLair(final YouFindTheVillainsLair card) {
|
private YouFindTheVillainsLair(final YouFindTheVillainsLair card) {
|
||||||
|
|
|
@ -56,7 +56,7 @@ public class VerifyCardDataTest {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
private static final Logger logger = Logger.getLogger(VerifyCardDataTest.class);
|
||||||
|
|
||||||
private static final String FULL_ABILITIES_CHECK_SET_CODE = "MH2"; // check all abilities and output cards with wrong abilities texts;
|
private static final String FULL_ABILITIES_CHECK_SET_CODE = "AFR"; // check all abilities and output cards with wrong abilities texts;
|
||||||
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
private static final boolean AUTO_FIX_SAMPLE_DECKS = false; // debug only: auto-fix sample decks by test_checkSampleDecks test run
|
||||||
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
private static final boolean ONLY_TEXT = false; // use when checking text locally, suppresses unnecessary checks and output messages
|
||||||
|
|
||||||
|
|
|
@ -118,24 +118,25 @@ public class BeginningOfEndStepTriggeredAbility extends TriggeredAbilityImpl {
|
||||||
}
|
}
|
||||||
|
|
||||||
private String generateConditionString() {
|
private String generateConditionString() {
|
||||||
if (interveningIfClauseCondition != null) {
|
if (interveningIfClauseCondition == null) {
|
||||||
if (interveningIfClauseCondition.toString().startsWith("if")) {
|
switch (getZone()) {
|
||||||
|
case GRAVEYARD:
|
||||||
//Fixes punctuation on multiple sentence if-then construction
|
return "if {this} is in your graveyard, ";
|
||||||
// see -- Colfenor's Urn
|
|
||||||
if (interveningIfClauseCondition.toString().endsWith(".")) {
|
|
||||||
return interveningIfClauseCondition.toString() + " ";
|
|
||||||
}
|
|
||||||
|
|
||||||
return interveningIfClauseCondition.toString() + ", ";
|
|
||||||
} else {
|
|
||||||
return "if {this} is " + interveningIfClauseCondition.toString() + ", ";
|
|
||||||
}
|
}
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
switch (getZone()) {
|
String clauseText = interveningIfClauseCondition.toString();
|
||||||
case GRAVEYARD:
|
if (clauseText.startsWith("if")) {
|
||||||
return "if {this} is in your graveyard, ";
|
//Fixes punctuation on multiple sentence if-then construction
|
||||||
|
// see -- Colfenor's Urn
|
||||||
|
if (clauseText.endsWith(".")) {
|
||||||
|
return clauseText + " ";
|
||||||
|
}
|
||||||
|
return clauseText + ", ";
|
||||||
}
|
}
|
||||||
return "";
|
System.out.println("==================");
|
||||||
|
System.out.println(clauseText);
|
||||||
|
System.out.println("==================");
|
||||||
|
return "if " + clauseText + ", ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,6 @@ import mage.game.Game;
|
||||||
import mage.game.events.GameEvent;
|
import mage.game.events.GameEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
public class CastOnlyIfConditionIsTrueEffect extends ContinuousRuleModifyingEffectImpl {
|
public class CastOnlyIfConditionIsTrueEffect extends ContinuousRuleModifyingEffectImpl {
|
||||||
|
@ -52,7 +51,7 @@ public class CastOnlyIfConditionIsTrueEffect extends ContinuousRuleModifyingEffe
|
||||||
private String setText() {
|
private String setText() {
|
||||||
StringBuilder sb = new StringBuilder("cast this spell only ");
|
StringBuilder sb = new StringBuilder("cast this spell only ");
|
||||||
if (condition != null) {
|
if (condition != null) {
|
||||||
sb.append(' ').append(condition.toString());
|
sb.append(condition);
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public enum EquippedSourceCondition implements Condition {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "equipped";
|
return "{this} is equipped";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,10 +182,13 @@ public class BecomesCreatureTargetEffect extends ContinuousEffectImpl {
|
||||||
sb.append(token.getDescription());
|
sb.append(token.getDescription());
|
||||||
sb.append(' ').append(duration.toString());
|
sb.append(' ').append(duration.toString());
|
||||||
if (addStillALandText) {
|
if (addStillALandText) {
|
||||||
|
if (!sb.toString().endsWith("\" ")) {
|
||||||
|
sb.append(". ");
|
||||||
|
}
|
||||||
if (target.getMaxNumberOfTargets() > 1) {
|
if (target.getMaxNumberOfTargets() > 1) {
|
||||||
sb.append(". They're still lands");
|
sb.append("They're still lands");
|
||||||
} else {
|
} else {
|
||||||
sb.append(". It's still a land");
|
sb.append("It's still a land");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sb.toString().replace(" .", ".");
|
return sb.toString().replace(" .", ".");
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class SearchLibraryGraveyardPutInHandEffect extends OneShotEffect {
|
||||||
this.filter = filter;
|
this.filter = filter;
|
||||||
this.forceToSearchBoth = forceToSearchBoth;
|
this.forceToSearchBoth = forceToSearchBoth;
|
||||||
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
|
staticText = (youMay ? "you may " : "") + "search your library and" + (forceToSearchBoth ? "" : "/or") + " graveyard for a card named " + filter.getMessage()
|
||||||
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle");
|
+ ", reveal it, and put it into your hand. " + (forceToSearchBoth ? "Then shuffle" : "If you search your library this way, shuffle it");
|
||||||
}
|
}
|
||||||
|
|
||||||
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {
|
public SearchLibraryGraveyardPutInHandEffect(final SearchLibraryGraveyardPutInHandEffect effect) {
|
||||||
|
|
|
@ -28,7 +28,7 @@ public class EquipAbility extends ActivatedAbilityImpl {
|
||||||
public EquipAbility(Outcome outcome, Cost cost, Target target) {
|
public EquipAbility(Outcome outcome, Cost cost, Target target) {
|
||||||
super(Zone.BATTLEFIELD, new EquipEffect(outcome), cost);
|
super(Zone.BATTLEFIELD, new EquipEffect(outcome), cost);
|
||||||
this.addTarget(target);
|
this.addTarget(target);
|
||||||
this.timing = TimingRule.SORCERY;
|
this.timing = TimingRule.SORCERY;
|
||||||
}
|
}
|
||||||
|
|
||||||
public EquipAbility(final EquipAbility ability) {
|
public EquipAbility(final EquipAbility ability) {
|
||||||
|
@ -50,19 +50,23 @@ public class EquipAbility extends ActivatedAbilityImpl {
|
||||||
String targetText = getTargets().get(0) != null ? getTargets().get(0).getFilter().getMessage() : "creature";
|
String targetText = getTargets().get(0) != null ? getTargets().get(0).getFilter().getMessage() : "creature";
|
||||||
String reminderText = " <i>(" + manaCosts.getText() + ": Attach to target " + targetText + ". Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)</i>";
|
String reminderText = " <i>(" + manaCosts.getText() + ": Attach to target " + targetText + ". Equip only as a sorcery. This card enters the battlefield unattached and stays on the battlefield if the creature leaves.)</i>";
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder("Equip ");
|
StringBuilder sb = new StringBuilder("Equip");
|
||||||
if (!targetText.equals("creature you control")) {
|
if (!targetText.equals("creature you control")) {
|
||||||
sb.append(targetText);
|
sb.append(' ').append(targetText);
|
||||||
|
}
|
||||||
|
String costText = costs.getText();
|
||||||
|
if (costText != null && !costText.isEmpty()) {
|
||||||
|
sb.append("—").append(costText).append('.');
|
||||||
|
} else {
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
}
|
}
|
||||||
sb.append(costs.getText());
|
|
||||||
sb.append(manaCosts.getText());
|
sb.append(manaCosts.getText());
|
||||||
if (costReduceText != null && !costReduceText.isEmpty()) {
|
if (costReduceText != null && !costReduceText.isEmpty()) {
|
||||||
sb.append(' ');
|
sb.append(". ");
|
||||||
sb.append(costReduceText);
|
sb.append(costReduceText);
|
||||||
}
|
}
|
||||||
if (maxActivationsPerTurn == 1) {
|
if (maxActivationsPerTurn == 1) {
|
||||||
sb.append(" Activate only once each turn.");
|
sb.append(". Activate only once each turn.");
|
||||||
}
|
}
|
||||||
sb.append(reminderText);
|
sb.append(reminderText);
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
Loading…
Reference in a new issue