refactor: simplified code (related to 6bf8aedce7)

This commit is contained in:
Oleg Agafonov 2025-04-16 10:10:11 +04:00
parent 5bee368b81
commit c0c27c81fa
3 changed files with 21 additions and 42 deletions

View file

@ -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() {

View file

@ -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(" <i>(Then exile this card. You may cast the creature later from exile.)</i>");
return sbRule.toString();
// TODO: must hide rules in permanent like SpellAbility, but can't due effects text
return this.nameFull
+ " "
+ getManaCosts().getText()
+ " &mdash; "
+ super.getRule(false) // without cost
+ " <i>(Then exile this card. You may cast the creature later from exile.)</i>";
}
@Override

View file

@ -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(" &mdash; ");
Modes modes = this.getModes();
if (modes.size() <= 1) {
sbRule.append(modes.getMode().getEffects().getTextStartingUpperCase(modes.getMode()));
} else {
sbRule.append(getModes().getText());
}
sbRule.append(" <i>(Then shuffle this card into its owner's library.)<i>");
return sbRule.toString();
// TODO: must hide rules in permanent like SpellAbility, but can't due effects text
return this.nameFull
+ " "
+ getManaCosts().getText()
+ " &mdash; "
+ super.getRule(false) // without cost
+ " <i>(Then shuffle this card into its owner's library.)</i>";
}
@Override