From a1de8cc85a8c7ca2313affba9d034a59790b9d82 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 30 Jun 2021 16:30:39 +0400 Subject: [PATCH] Refactor: fixed flavor word for ability (related to comments from 6dafb3ad8116249936bd4f6375e48fd97233d53a); --- Mage.Sets/src/mage/cards/b/BalefulBeholder.java | 2 +- Mage.Sets/src/mage/cards/d/DawnbringerCleric.java | 2 +- Mage.Sets/src/mage/cards/i/InspiringBard.java | 2 +- Mage.Sets/src/mage/cards/p/PlunderingBarbarian.java | 2 +- Mage.Sets/src/mage/cards/y/YouFindTheVillainsLair.java | 2 +- Mage.Sets/src/mage/cards/y/YouSeeAGuardApproach.java | 2 +- Mage.Sets/src/mage/cards/y/YouSeeAPairOfGoblins.java | 2 +- Mage/src/main/java/mage/abilities/Ability.java | 2 +- Mage/src/main/java/mage/abilities/AbilityImpl.java | 6 +++++- Mage/src/main/java/mage/abilities/Mode.java | 2 +- 10 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Mage.Sets/src/mage/cards/b/BalefulBeholder.java b/Mage.Sets/src/mage/cards/b/BalefulBeholder.java index ce6ec7866c3..99de6d32fa4 100644 --- a/Mage.Sets/src/mage/cards/b/BalefulBeholder.java +++ b/Mage.Sets/src/mage/cards/b/BalefulBeholder.java @@ -31,7 +31,7 @@ public final class BalefulBeholder extends CardImpl { // When Baleful Beholder enters the battlefield, choose one — // • Antimagic Cone — Each opponent sacrifices an enchantment. Ability ability = new EntersBattlefieldTriggeredAbility(new SacrificeOpponentsEffect(StaticFilters.FILTER_ENCHANTMENT_PERMANENT)); - ability.withFlavorWord("Antimagic Cone"); + ability.getModes().getMode().withFlavorWord("Antimagic Cone"); // • Fear Ray — Creatures you control gain menace until end of turn. ability.addMode(new Mode(new GainAbilityControlledEffect( diff --git a/Mage.Sets/src/mage/cards/d/DawnbringerCleric.java b/Mage.Sets/src/mage/cards/d/DawnbringerCleric.java index 847dd3a70d6..3999e94d0d0 100644 --- a/Mage.Sets/src/mage/cards/d/DawnbringerCleric.java +++ b/Mage.Sets/src/mage/cards/d/DawnbringerCleric.java @@ -32,7 +32,7 @@ public final class DawnbringerCleric extends CardImpl { // When Dawnbringer Cleric enters the battlefield, choose one — // • Cure Wounds — You gain 2 life. Ability ability = new EntersBattlefieldTriggeredAbility(new GainLifeEffect(1)); - ability.withFlavorWord("Cure Wounds"); + ability.getModes().getMode().withFlavorWord("Cure Wounds"); // • Dispel Magic — Destroy target enchantment. Mode mode = new Mode(new DestroyTargetEffect()); diff --git a/Mage.Sets/src/mage/cards/i/InspiringBard.java b/Mage.Sets/src/mage/cards/i/InspiringBard.java index 3d793f0a467..556e742a03e 100644 --- a/Mage.Sets/src/mage/cards/i/InspiringBard.java +++ b/Mage.Sets/src/mage/cards/i/InspiringBard.java @@ -31,7 +31,7 @@ public final class InspiringBard extends CardImpl { // • Bardic Inspiration — Target creature gets +2/+2 until end of turn. Ability ability = new EntersBattlefieldTriggeredAbility(new BoostTargetEffect(2, 2)); ability.addTarget(new TargetCreaturePermanent()); - ability.withFlavorWord("Bardic Inspiration"); + ability.getModes().getMode().withFlavorWord("Bardic Inspiration"); // • Song of Rest — You gain 3 life. ability.addMode(new Mode( diff --git a/Mage.Sets/src/mage/cards/p/PlunderingBarbarian.java b/Mage.Sets/src/mage/cards/p/PlunderingBarbarian.java index b1ec7211a89..969596487a4 100644 --- a/Mage.Sets/src/mage/cards/p/PlunderingBarbarian.java +++ b/Mage.Sets/src/mage/cards/p/PlunderingBarbarian.java @@ -32,7 +32,7 @@ public final class PlunderingBarbarian extends CardImpl { // • Smash the Chest — Destroy target artifact. Ability ability = new EntersBattlefieldTriggeredAbility(new DestroyTargetEffect()); ability.addTarget(new TargetArtifactPermanent()); - ability.withFlavorWord("Smash the Chest"); + ability.getModes().getMode().withFlavorWord("Smash the Chest"); // • Pry It Open — Creature a Treasure token. ability.addMode(new Mode( diff --git a/Mage.Sets/src/mage/cards/y/YouFindTheVillainsLair.java b/Mage.Sets/src/mage/cards/y/YouFindTheVillainsLair.java index b195e500666..35ab91ef3b8 100644 --- a/Mage.Sets/src/mage/cards/y/YouFindTheVillainsLair.java +++ b/Mage.Sets/src/mage/cards/y/YouFindTheVillainsLair.java @@ -22,7 +22,7 @@ public final class YouFindTheVillainsLair extends CardImpl { // • Foil Their Scheme — Counter target spell. this.getSpellAbility().addEffect(new CounterTargetEffect()); this.getSpellAbility().addTarget(new TargetSpell()); - this.getSpellAbility().withFlavorWord("Foil Their Scheme"); + this.getSpellAbility().getModes().getMode().withFlavorWord("Foil Their Scheme"); // • Learn Their Secrets — Draw two cards, then discard two cards. this.getSpellAbility().addMode(new Mode( diff --git a/Mage.Sets/src/mage/cards/y/YouSeeAGuardApproach.java b/Mage.Sets/src/mage/cards/y/YouSeeAGuardApproach.java index 389060c782c..51a8a698f14 100644 --- a/Mage.Sets/src/mage/cards/y/YouSeeAGuardApproach.java +++ b/Mage.Sets/src/mage/cards/y/YouSeeAGuardApproach.java @@ -25,7 +25,7 @@ public final class YouSeeAGuardApproach extends CardImpl { // • Distract the Guard — Tap target creature. this.getSpellAbility().addEffect(new TapTargetEffect()); this.getSpellAbility().addTarget(new TargetCreaturePermanent()); - this.getSpellAbility().withFlavorWord("Distract the Guard"); + this.getSpellAbility().getModes().getMode().withFlavorWord("Distract the Guard"); // • Hide — Target creature you control gains hexproof until end of turn. Mode mode = new Mode(new GainAbilityTargetEffect(HexproofAbility.getInstance(), Duration.EndOfTurn)); diff --git a/Mage.Sets/src/mage/cards/y/YouSeeAPairOfGoblins.java b/Mage.Sets/src/mage/cards/y/YouSeeAPairOfGoblins.java index 2bec28a4150..b29928beb2e 100644 --- a/Mage.Sets/src/mage/cards/y/YouSeeAPairOfGoblins.java +++ b/Mage.Sets/src/mage/cards/y/YouSeeAPairOfGoblins.java @@ -22,7 +22,7 @@ public final class YouSeeAPairOfGoblins extends CardImpl { // Choose one — // • Charge Them — Creatures you control get +2/+0 until end of turn. this.getSpellAbility().addEffect(new BoostControlledEffect(2, 0, Duration.EndOfTurn)); - this.getSpellAbility().withFlavorWord("Charge Them"); + this.getSpellAbility().getModes().getMode().withFlavorWord("Charge Them"); // • Befriend Them — Create two 1/1 red Goblin creature tokens. this.getSpellAbility().addMode(new Mode( diff --git a/Mage/src/main/java/mage/abilities/Ability.java b/Mage/src/main/java/mage/abilities/Ability.java index 0bbedb5ddcd..a4b936fee98 100644 --- a/Mage/src/main/java/mage/abilities/Ability.java +++ b/Mage/src/main/java/mage/abilities/Ability.java @@ -467,7 +467,7 @@ public interface Ability extends Controllable, Serializable { Ability setAbilityWord(AbilityWord abilityWord); /** - * Set Flavor word for current mode + * Set flavor word for whole ability (if you need flavor word for choices then call it from mode) * * @param flavorWord * @return diff --git a/Mage/src/main/java/mage/abilities/AbilityImpl.java b/Mage/src/main/java/mage/abilities/AbilityImpl.java index 8adcf667e85..efd10a55f83 100644 --- a/Mage/src/main/java/mage/abilities/AbilityImpl.java +++ b/Mage/src/main/java/mage/abilities/AbilityImpl.java @@ -60,6 +60,7 @@ public abstract class AbilityImpl implements Ability { protected Zone zone; protected String name; protected AbilityWord abilityWord; + protected String flavorWord; protected boolean usesStack = true; protected boolean ruleAtTheTop = false; protected boolean ruleVisible = true; @@ -117,6 +118,7 @@ public abstract class AbilityImpl implements Ability { this.ruleAdditionalCostsVisible = ability.ruleAdditionalCostsVisible; this.worksFaceDown = ability.worksFaceDown; this.abilityWord = ability.abilityWord; + this.flavorWord = ability.flavorWord; this.sourceObjectZoneChangeCounter = ability.sourceObjectZoneChangeCounter; this.canFizzle = ability.canFizzle; this.targetAdjuster = ability.targetAdjuster; @@ -803,6 +805,8 @@ public abstract class AbilityImpl implements Ability { String prefix; if (abilityWord != null) { prefix = abilityWord.formatWord(); + } else if (flavorWord != null) { + prefix = "" + flavorWord + " — "; } else { prefix = null; } @@ -1070,7 +1074,7 @@ public abstract class AbilityImpl implements Ability { @Override public Ability withFlavorWord(String flavorWord) { - this.getModes().getMode().withFlavorWord(flavorWord); + this.flavorWord = flavorWord; return this; } diff --git a/Mage/src/main/java/mage/abilities/Mode.java b/Mage/src/main/java/mage/abilities/Mode.java index f69dbc5f003..fd821ec118e 100644 --- a/Mage/src/main/java/mage/abilities/Mode.java +++ b/Mage/src/main/java/mage/abilities/Mode.java @@ -78,7 +78,7 @@ public class Mode implements Serializable { } /** - * Set Flavor word to the mode (same as ability/ancher words, but uses for lore/info and represents a possible choices) + * Set Flavor word for choice in the mode (same as ability/ancher words, but uses for lore/info and represents a possible choices) * * @param flavorWord * @return