Keep both variants

This commit is contained in:
tool4EvEr
2023-10-13 18:14:30 +02:00
committed by tool4ever
parent ef2677ae21
commit aba2c3fad8
3 changed files with 9 additions and 6 deletions

View File

@@ -3,7 +3,7 @@ ManaCost:2 G
Types:Creature Dinosaur
PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPay | TriggerDescription$ When CARDNAME enters the battlefield, you may pay {G} up to three times. When you pay this cost one or more times, ABILITY
SVar:TrigPay:AB$ ImmediateTrigger | Cost$ Mana<G\NumTimes> | Announce$ NumTimes | XMaxLimit$ 3 | ConditionCheckSVar$ NumTimes | ConditionSVarCompare$ GE1 | RememberSVarAmount$ NumTimes | Execute$ TrigCharm | TriggerDescription$ When you pay this cost one or more times, ABILITY
SVar:TrigPay:AB$ ImmediateTrigger | Cost$ Mana<G\NumTimes> | Announce$ NumTimes | AnnounceLimit$ 3 | ConditionCheckSVar$ NumTimes | ConditionSVarCompare$ GE1 | RememberSVarAmount$ NumTimes | Execute$ TrigCharm | TriggerDescription$ When you pay this cost one or more times, ABILITY
SVar:TrigCharm:DB$ Charm | MinCharmNum$ 0 | CharmNum$ X | Choices$ DestroyAE,ExileGrave,GainLife
SVar:DestroyAE:DB$ Destroy | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SpellDescription$ Destroy target artifact or enchantment.
SVar:ExileGrave:DB$ ChangeZoneAll | ValidTgts$ Player | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | SpellDescription$ Exile target player's graveyard.

View File

@@ -13,7 +13,7 @@ ALTERNATE
Name:Scan the Clouds
ManaCost:1 U
Types:Instant Adventure
Types:Instant Adventure
A:SP$ Draw | NumCards$ 2 | SubAbility$ DBDiscard | SpellDescription$ Draw two cards, then discard two cards. (Then exile this card. You may cast the creature later from exile.)
SVar:DBDiscard:DB$ Discard | Defined$ You | NumCards$ 2 | Mode$ TgtChoose
Oracle:Draw two cards, then discard two cards. (Then exile this card. You may cast the creature later from exile.)

View File

@@ -448,12 +448,11 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
boolean canChooseZero = true;
Cost cost = ability.getPayCosts();
if (ability.hasParam("XMaxLimit")) {
max = Math.min(max, AbilityUtils.calculateAmount(host, ability.getParam("XMaxLimit"), ability));
}
if ("X".equals(announce)) {
canChooseZero = !ability.hasParam("XCantBe0");
if (ability.hasParam("XMaxLimit")) {
max = Math.min(max, AbilityUtils.calculateAmount(host, ability.getParam("XMaxLimit"), ability));
}
if (cost != null) {
Integer costX = cost.getMaxForNonManaX(ability, player, false);
if (costX != null) {
@@ -466,6 +465,10 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
}
final int min = canChooseZero ? 0 : 1;
if (ability.hasParam("AnnounceMax")) {
max = Math.min(max, AbilityUtils.calculateAmount(host, ability.getParam("AnnounceMax"), ability));
}
if (ability.usesTargeting()) {
// if announce is used as min targets, check what the max possible number would be
if (announce.equals(ability.getTargetRestrictions().getMinTargets())) {