mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Fix Conflagrate (#5348)
This commit is contained in:
@@ -46,7 +46,7 @@ public abstract class ManifestBaseEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : getDefaultMessage() + " ";
|
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : getDefaultMessage() + " ";
|
||||||
|
|
||||||
tgtCards = new CardCollection(activator.getController().chooseCardsForEffect(choices, sa, title, amount, amount, false, null));
|
tgtCards = new CardCollection(p.getController().chooseCardsForEffect(choices, sa, title, amount, amount, false, null));
|
||||||
} else if ("TopOfLibrary".equals(sa.getParamOrDefault("Defined", "TopOfLibrary"))) {
|
} else if ("TopOfLibrary".equals(sa.getParamOrDefault("Defined", "TopOfLibrary"))) {
|
||||||
tgtCards = p.getTopXCardsFromLibrary(amount);
|
tgtCards = p.getTopXCardsFromLibrary(amount);
|
||||||
fromLibrary = true;
|
fromLibrary = true;
|
||||||
|
|||||||
@@ -739,8 +739,7 @@ public class CardFactoryUtil {
|
|||||||
" | ValidBlocker$ Creature | Secondary$ True " +
|
" | ValidBlocker$ Creature | Secondary$ True " +
|
||||||
" | TriggerDescription$ Afflict " + n + " (" + inst.getReminderText() + ")";
|
" | TriggerDescription$ Afflict " + n + " (" + inst.getReminderText() + ")";
|
||||||
|
|
||||||
final String abStringAfflict = "DB$ LoseLife | Defined$ TriggeredDefendingPlayer" +
|
final String abStringAfflict = "DB$ LoseLife | Defined$ TriggeredDefendingPlayer | LifeAmount$ " + n;
|
||||||
" | LifeAmount$ " + n;
|
|
||||||
|
|
||||||
final Trigger afflictTrigger = TriggerHandler.parseTrigger(trigStr, card, intrinsic, null);
|
final Trigger afflictTrigger = TriggerHandler.parseTrigger(trigStr, card, intrinsic, null);
|
||||||
afflictTrigger.setOverridingAbility(AbilityFactory.getAbility(abStringAfflict, card));
|
afflictTrigger.setOverridingAbility(AbilityFactory.getAbility(abStringAfflict, card));
|
||||||
@@ -754,7 +753,7 @@ public class CardFactoryUtil {
|
|||||||
sb.append("Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self ");
|
sb.append("Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self ");
|
||||||
sb.append("| Secondary$ True | TriggerDescription$ ").append(name);
|
sb.append("| Secondary$ True | TriggerDescription$ ").append(name);
|
||||||
sb.append(" (").append(inst.getReminderText()).append(")");
|
sb.append(" (").append(inst.getReminderText()).append(")");
|
||||||
final String effect = "DB$ Token | TokenAmount$ " + k[1] + " | TokenScript$ wb_1_1_spirit_flying";
|
final String effect = "DB$ Token | TokenAmount$ " + k[1] + " | TokenScript$ wb_1_1_spirit_flying";
|
||||||
|
|
||||||
final Trigger trigger = TriggerHandler.parseTrigger(sb.toString(), card, intrinsic);
|
final Trigger trigger = TriggerHandler.parseTrigger(sb.toString(), card, intrinsic);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
Name:Aether Tide
|
Name:Aether Tide
|
||||||
ManaCost:X U
|
ManaCost:X U
|
||||||
Types:Sorcery
|
Types:Sorcery
|
||||||
A:SP$ ChangeZone | Cost$ X U Discard<X/Creature/creature(s)> | CostDesc$ As an additional cost to cast this spell, discard X creature cards. | TargetMin$ X | TargetMax$ X | Origin$ Battlefield | Destination$ Hand | ValidTgts$ Creature | TgtPrompt$ Select X target creatures | SpellDescription$ Return X target creatures to their owners' hands.
|
S:Mode$ RaiseCost | ValidCard$ Card.Self | Activator$ You | Type$ Spell | Cost$ Discard<X/Creature/creature(s)> | EffectZone$ All | Description$ As an additional cost to cast this spell, discard X creature cards.
|
||||||
|
A:SP$ ChangeZone | Cost$ X U | TargetMin$ X | TargetMax$ X | Origin$ Battlefield | Destination$ Hand | ValidTgts$ Creature | TgtPrompt$ Select X target creatures | SpellDescription$ Return X target creatures to their owners' hands.
|
||||||
SVar:X:Count$xPaid
|
SVar:X:Count$xPaid
|
||||||
AI:RemoveDeck:All
|
AI:RemoveDeck:All
|
||||||
Oracle:As an additional cost to cast this spell, discard X creature cards.\nReturn X target creatures to their owners' hands.
|
Oracle:As an additional cost to cast this spell, discard X creature cards.\nReturn X target creatures to their owners' hands.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ Name:The Toymaker's Trap
|
|||||||
ManaCost:2 B
|
ManaCost:2 B
|
||||||
Types:Enchantment
|
Types:Enchantment
|
||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChooseNumber | TriggerDescription$ At the beginning of your upkeep, secretly choose a number between 1 and 5 that hasn't been chosen. If you do, an opponent guesses which number you chose, then you reveal the number you chose. If they guessed wrong, they lose life equal to the number they guessed and you draw a card. If they guessed right, sacrifice CARDNAME.
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigChooseNumber | TriggerDescription$ At the beginning of your upkeep, secretly choose a number between 1 and 5 that hasn't been chosen. If you do, an opponent guesses which number you chose, then you reveal the number you chose. If they guessed wrong, they lose life equal to the number they guessed and you draw a card. If they guessed right, sacrifice CARDNAME.
|
||||||
SVar:TrigChooseNumber:DB$ ChooseNumber | Secretly$ True | Min$ 1 | Max$ 5 | RemoveChoices$ Remembered | Guesser$ Opponent | GuessWrong$ DBLoseLife | GuessCorrect$ DBSac | RememberChosen$ True | SubAbility$ DBCleanup
|
SVar:TrigChooseNumber:DB$ ChooseNumber | Secretly$ True | Min$ 1 | Max$ 5 | RemoveChoices$ Remembered | Guesser$ Opponent | GuessWrong$ DBLoseLife | GuessCorrect$ DBSac | RememberChosen$ True
|
||||||
SVar:DBLoseLife:DB$ LoseLife | Defined$ RememberedPlayer | LifeAmount$ Count$ChosenNumber | SubAbility$ DBDraw
|
SVar:DBLoseLife:DB$ LoseLife | Defined$ RememberedPlayer | LifeAmount$ Count$ChosenNumber | SubAbility$ DBDraw
|
||||||
SVar:DBDraw:DB$ Draw
|
SVar:DBDraw:DB$ Draw
|
||||||
SVar:DBSac:DB$ Sacrifice
|
SVar:DBSac:DB$ Sacrifice
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ K:Flying
|
|||||||
K:First Strike
|
K:First Strike
|
||||||
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy up to one target nonbasic land. Its controller may search their library for a basic land card, put it onto the battlefield tapped, then shuffle.
|
T:Mode$ ChangesZone | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDestroy | TriggerDescription$ When CARDNAME enters the battlefield, destroy up to one target nonbasic land. Its controller may search their library for a basic land card, put it onto the battlefield tapped, then shuffle.
|
||||||
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Land.nonBasic | TgtPrompt$ Select up to one target nonbasic land | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBSearch | AILogic$ GhostQuarter
|
SVar:TrigDestroy:DB$ Destroy | ValidTgts$ Land.nonBasic | TgtPrompt$ Select up to one target nonbasic land | TargetMin$ 0 | TargetMax$ 1 | SubAbility$ DBSearch | AILogic$ GhostQuarter
|
||||||
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | DefinedPlayer$ TargetedController | ChangeType$ Land.Basic | ChangeNum$ 1
|
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | DefinedPlayer$ TargetedController | ChangeType$ Land.Basic | ChangeNum$ 1 | Tapped$ True
|
||||||
Oracle:Flying, first strike\nWhen White Orchid Phantom enters the battlefield, destroy up to one target nonbasic land. Its controller may search their library for a basic land card, put it onto the battlefield tapped, then shuffle.
|
Oracle:Flying, first strike\nWhen White Orchid Phantom enters the battlefield, destroy up to one target nonbasic land. Its controller may search their library for a basic land card, put it onto the battlefield tapped, then shuffle.
|
||||||
|
|||||||
@@ -262,8 +262,7 @@ public class HumanPlaySpellAbility {
|
|||||||
if (cost.hasXInAnyCostPart()) {
|
if (cost.hasXInAnyCostPart()) {
|
||||||
final String sVar = ability.getSVar("X"); //only prompt for new X value if card doesn't determine it another way
|
final String sVar = ability.getSVar("X"); //only prompt for new X value if card doesn't determine it another way
|
||||||
// check if X != 0 is even allowed or the X shard got removed
|
// check if X != 0 is even allowed or the X shard got removed
|
||||||
boolean replacedXshard = ability.isSpell() && ability.getHostCard().getManaCost().countX() > 0 &&
|
boolean replacedXshard = ability.isSpell() && ability.getHostCard().getManaCost().countX() > 0 && !cost.hasXInAnyCostPart();
|
||||||
(cost.hasNoManaCost() || cost.getCostMana().getAmountOfX() == 0);
|
|
||||||
if (("Count$xPaid".equals(sVar) && !replacedXshard) || sVar.isEmpty()) {
|
if (("Count$xPaid".equals(sVar) && !replacedXshard) || sVar.isEmpty()) {
|
||||||
final Integer value = controller.announceRequirements(ability, "X");
|
final Integer value = controller.announceRequirements(ability, "X");
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user