mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 03:08:02 +00:00
Keep both variants
This commit is contained in:
@@ -3,7 +3,7 @@ ManaCost:2 G
|
|||||||
Types:Creature Dinosaur
|
Types:Creature Dinosaur
|
||||||
PT:3/3
|
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
|
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: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: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.
|
SVar:ExileGrave:DB$ ChangeZoneAll | ValidTgts$ Player | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | SpellDescription$ Exile target player's graveyard.
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ ALTERNATE
|
|||||||
|
|
||||||
Name:Scan the Clouds
|
Name:Scan the Clouds
|
||||||
ManaCost:1 U
|
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.)
|
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
|
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.)
|
Oracle:Draw two cards, then discard two cards. (Then exile this card. You may cast the creature later from exile.)
|
||||||
@@ -448,12 +448,11 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
|||||||
boolean canChooseZero = true;
|
boolean canChooseZero = true;
|
||||||
Cost cost = ability.getPayCosts();
|
Cost cost = ability.getPayCosts();
|
||||||
|
|
||||||
if (ability.hasParam("XMaxLimit")) {
|
|
||||||
max = Math.min(max, AbilityUtils.calculateAmount(host, ability.getParam("XMaxLimit"), ability));
|
|
||||||
}
|
|
||||||
|
|
||||||
if ("X".equals(announce)) {
|
if ("X".equals(announce)) {
|
||||||
canChooseZero = !ability.hasParam("XCantBe0");
|
canChooseZero = !ability.hasParam("XCantBe0");
|
||||||
|
if (ability.hasParam("XMaxLimit")) {
|
||||||
|
max = Math.min(max, AbilityUtils.calculateAmount(host, ability.getParam("XMaxLimit"), ability));
|
||||||
|
}
|
||||||
if (cost != null) {
|
if (cost != null) {
|
||||||
Integer costX = cost.getMaxForNonManaX(ability, player, false);
|
Integer costX = cost.getMaxForNonManaX(ability, player, false);
|
||||||
if (costX != null) {
|
if (costX != null) {
|
||||||
@@ -466,6 +465,10 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
|||||||
}
|
}
|
||||||
final int min = canChooseZero ? 0 : 1;
|
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 (ability.usesTargeting()) {
|
||||||
// if announce is used as min targets, check what the max possible number would be
|
// if announce is used as min targets, check what the max possible number would be
|
||||||
if (announce.equals(ability.getTargetRestrictions().getMinTargets())) {
|
if (announce.equals(ability.getTargetRestrictions().getMinTargets())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user