Merge branch 'gorex' into 'master'

MIC: Gorex, the Tombshell and some stringbuilder updates

See merge request core-developers/forge!5425
This commit is contained in:
Michael Kamensky
2021-09-25 05:06:02 +00:00
3 changed files with 39 additions and 12 deletions

View File

@@ -2257,6 +2257,23 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
sb.append("(As this Saga enters and after your draw step, add a lore counter. Sacrifice after "); sb.append("(As this Saga enters and after your draw step, add a lore counter. Sacrifice after ");
sb.append(TextUtil.toRoman(getFinalChapterNr())).append(".)").append(linebreak); sb.append(TextUtil.toRoman(getFinalChapterNr())).append(".)").append(linebreak);
} }
// add As an additional cost to Permanent spells
if (state.getFirstAbility() != null && type.isPermanent()) {
SpellAbility first = state.getFirstAbility();
if (first.isSpell()) {
Cost cost = first.getPayCosts();
if (cost != null && !cost.isOnlyManaCost()) {
String additionalDesc = "";
if (state.getFirstAbility().hasParam("AdditionalDesc")) {
additionalDesc = state.getFirstAbility().getParam("AdditionalDesc");
}
sb.append(cost.toString().replace("\n", "")).append(" ").append(additionalDesc);
sb.append(linebreak);
}
}
}
if (monstrous) { if (monstrous) {
sb.append("Monstrous\r\n"); sb.append("Monstrous\r\n");
} }
@@ -2267,6 +2284,9 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
sb.append("Manifested\r\n"); sb.append("Manifested\r\n");
} }
sb.append(keywordsToText(getUnhiddenKeywords(state))); sb.append(keywordsToText(getUnhiddenKeywords(state)));
if ((keywordsToText(getUnhiddenKeywords(state))).length() > 0) {
sb.append(linebreak);
}
// Process replacement effects first so that "enters the battlefield tapped" // Process replacement effects first so that "enters the battlefield tapped"
// and "as ~ enters the battlefield, choose...", etc can be printed // and "as ~ enters the battlefield, choose...", etc can be printed
@@ -2285,18 +2305,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
} }
} }
// add As an additional cost to Permanent spells
if (state.getFirstAbility() != null && type.isPermanent()) {
SpellAbility first = state.getFirstAbility();
if (first.isSpell()) {
Cost cost = first.getPayCosts();
if (cost != null && !cost.isOnlyManaCost()) {
sb.append(cost.toString());
sb.append(linebreak);
}
}
}
if (this.getRules() != null && state.getView().getState().equals(CardStateName.Original)) { if (this.getRules() != null && state.getView().getState().equals(CardStateName.Original)) {
// try to look which what card this card can be meld to // try to look which what card this card can be meld to
// only show this info if this card does not has the meld Effect itself // only show this info if this card does not has the meld Effect itself

View File

@@ -113,6 +113,10 @@ public class CostExile extends CostPartWithList {
return String.format("Exile %s from the same %s", Cost.convertAmountTypeToWords(i, this.getAmount(), desc), origin); return String.format("Exile %s from the same %s", Cost.convertAmountTypeToWords(i, this.getAmount(), desc), origin);
} }
if (this.getAmount().equals("X")) {
return String.format ("Exile any number of %s from your %s", desc, origin);
}
return String.format("Exile %s from your %s", Cost.convertAmountTypeToWords(i, this.getAmount(), desc), origin); return String.format("Exile %s from your %s", Cost.convertAmountTypeToWords(i, this.getAmount(), desc), origin);
} }

View File

@@ -0,0 +1,15 @@
Name:Gorex, the Tombshell
ManaCost:6 B B
Types:Legendary Creature Zombie Turtle
PT:4/4
A:SP$ PermanentCreature | Cost$ 6 B B ExileFromGrave<X/Creature/creature cards> | AdditionalDesc$ This spell costs {2} less to cast for each card exiled this way.
S:Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ Y | EffectZone$ All | Relative$ True | Secondary$ True | Description$ This spell costs {2} less to cast for each card exiled this way.
SVar:X:Count$xPaid
SVar:Y:SVar$X/Times.2
K:Deathtouch
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigChoose | TriggerDescription$ Whenever CARDNAME attacks or dies, choose a card at random exiled with NICKNAME and put that card into its owner's hand.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChoose | Secondary$ True | TriggerDescription$ Whenever CARDNAME attacks or dies, choose a card at random exiled with NICKNAME and put that card into its owner's hand.
SVar:TrigChoose:DB$ ChooseCard | Amount$ 1 | AtRandom$ True | Choices$ Card.ExiledWithSource | ChoiceZone$ Exile | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Exile | Destination$ Hand | Hidden$ True
DeckHas:Ability$Graveyard
Oracle:As an additional cost to cast this spell, you may exile any number of creature cards from your graveyard. This spell costs {2} less to cast for each card exiled this way.\nDeathtouch\nWhenever Gorex, the Tombshell attacks or dies, choose a card at random exiled with Gorex and put that card into its owner's hand.