From c0c27c81fa5ff18267e45ede792846ba8a46dd0b Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 16 Apr 2025 10:10:11 +0400 Subject: [PATCH] refactor: simplified code (related to 6bf8aedce76b81f98404f369aa197ad87def1201) --- .../java/mage/abilities/SpellAbility.java | 7 +++-- .../java/mage/cards/AdventureSpellCard.java | 26 +++++----------- .../main/java/mage/cards/OmenSpellCard.java | 30 ++++++------------- 3 files changed, 21 insertions(+), 42 deletions(-) diff --git a/Mage/src/main/java/mage/abilities/SpellAbility.java b/Mage/src/main/java/mage/abilities/SpellAbility.java index 2c5c03ef220..4ece553bc79 100644 --- a/Mage/src/main/java/mage/abilities/SpellAbility.java +++ b/Mage/src/main/java/mage/abilities/SpellAbility.java @@ -238,9 +238,12 @@ public class SpellAbility extends ActivatedAbilityImpl { @Override public String getRule(boolean all) { if (all) { - return new StringBuilder(super.getRule(all)).append(name).toString(); + // show full rules, e.g. for hand + return super.getRule(true) + this.name; + } else { + // hide spell ability, e.g. for permanent + return super.getRule(false); } - return super.getRule(false); } public String getName() { diff --git a/Mage/src/main/java/mage/cards/AdventureSpellCard.java b/Mage/src/main/java/mage/cards/AdventureSpellCard.java index ed6efa5f1f1..c2c2a45efcb 100644 --- a/Mage/src/main/java/mage/cards/AdventureSpellCard.java +++ b/Mage/src/main/java/mage/cards/AdventureSpellCard.java @@ -1,7 +1,6 @@ package mage.cards; import mage.abilities.Ability; -import mage.abilities.Modes; import mage.abilities.SpellAbility; import mage.abilities.effects.common.ExileAdventureSpellEffect; import mage.constants.CardType; @@ -162,24 +161,13 @@ class AdventureCardSpellAbility extends SpellAbility { @Override public String getRule(boolean all) { - return this.getRule(); - } - - @Override - public String getRule() { - StringBuilder sbRule = new StringBuilder(); - sbRule.append(this.nameFull); - sbRule.append(" "); - sbRule.append(getManaCosts().getText()); - sbRule.append(" — "); - Modes modes = this.getModes(); - if (modes.size() <= 1) { - sbRule.append(modes.getMode().getEffects().getTextStartingUpperCase(modes.getMode())); - } else { - sbRule.append(getModes().getText()); - } - sbRule.append(" (Then exile this card. You may cast the creature later from exile.)"); - return sbRule.toString(); + // TODO: must hide rules in permanent like SpellAbility, but can't due effects text + return this.nameFull + + " " + + getManaCosts().getText() + + " — " + + super.getRule(false) // without cost + + " (Then exile this card. You may cast the creature later from exile.)"; } @Override diff --git a/Mage/src/main/java/mage/cards/OmenSpellCard.java b/Mage/src/main/java/mage/cards/OmenSpellCard.java index 040bba51217..04fcdd5d725 100644 --- a/Mage/src/main/java/mage/cards/OmenSpellCard.java +++ b/Mage/src/main/java/mage/cards/OmenSpellCard.java @@ -1,7 +1,6 @@ package mage.cards; import mage.abilities.Ability; -import mage.abilities.Modes; import mage.abilities.SpellAbility; import mage.abilities.effects.Effect; import mage.abilities.effects.common.ShuffleIntoLibrarySourceEffect; @@ -134,8 +133,8 @@ class OmenCardSpellAbility extends SpellAbility { this.nameFull = ability.nameFull; if (!ability.finalized) { throw new IllegalStateException("Wrong code usage. " - + "Omen (" + cardName + ") " - + "need to call finalizeOmen() at the very end of the card's constructor."); + + "Omen (" + cardName + ") " + + "need to call finalizeOmen() at the very end of the card's constructor."); } this.finalized = true; } @@ -147,24 +146,13 @@ class OmenCardSpellAbility extends SpellAbility { @Override public String getRule(boolean all) { - return this.getRule(); - } - - @Override - public String getRule() { - StringBuilder sbRule = new StringBuilder(); - sbRule.append(this.nameFull); - sbRule.append(" "); - sbRule.append(getManaCosts().getText()); - sbRule.append(" — "); - Modes modes = this.getModes(); - if (modes.size() <= 1) { - sbRule.append(modes.getMode().getEffects().getTextStartingUpperCase(modes.getMode())); - } else { - sbRule.append(getModes().getText()); - } - sbRule.append(" (Then shuffle this card into its owner's library.)"); - return sbRule.toString(); + // TODO: must hide rules in permanent like SpellAbility, but can't due effects text + return this.nameFull + + " " + + getManaCosts().getText() + + " — " + + super.getRule(false) // without cost + + " (Then shuffle this card into its owner's library.)"; } @Override