mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-12 00:38:44 +00:00
@@ -305,8 +305,8 @@ public class ComputerUtil {
|
||||
final CostPayment pay = new CostPayment(newSA.getPayCosts(), newSA);
|
||||
|
||||
// do this after card got added to stack
|
||||
if (!sa.checkRestrictions(ai)) {
|
||||
GameActionUtil.rollbackAbility(sa, fromZone, zonePosition, pay, source);
|
||||
if (!newSA.checkRestrictions(ai)) {
|
||||
GameActionUtil.rollbackAbility(newSA, fromZone, zonePosition, pay, source);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1280,7 +1280,6 @@ public class ComputerUtil {
|
||||
if (cardState.hasKeyword(Keyword.SOULBOND) && buffedcard.isCreature() && !buffedcard.isPaired()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
} // BuffedBy
|
||||
|
||||
// there's a good chance AI will attack weak target
|
||||
|
||||
@@ -122,7 +122,6 @@ public class CountersPutAllEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("RememberCards")) { // remembers whether counters actually placed or not
|
||||
host.addRemembered(table.columnKeySet());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -90,7 +90,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
||||
}
|
||||
// skip the StringBuilder if no targets are chosen ("up to" scenario)
|
||||
if (sa.usesTargeting()) {
|
||||
final List<Card> targetCards = SpellAbilityEffect.getTargetCards(sa);
|
||||
final List<Card> targetCards = getTargetCards(sa);
|
||||
if (targetCards.size() == 0) {
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
@@ -132,7 +132,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
||||
}
|
||||
// if use targeting we show all targets and corresponding counters
|
||||
} else if (sa.usesTargeting()) {
|
||||
final List<Card> targetCards = SpellAbilityEffect.getTargetCards(sa);
|
||||
final List<Card> targetCards = getTargetCards(sa);
|
||||
for (int i = 0; i < targetCards.size(); i++) {
|
||||
Card targetCard = targetCards.get(i);
|
||||
stringBuilder.append(targetCard);
|
||||
@@ -151,7 +151,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
||||
String what = sa.getParamOrDefault("ChoicesDesc", sa.getParam("Choices"));
|
||||
stringBuilder.append(Lang.nounWithNumeralExceptOne(n, what));
|
||||
} else {
|
||||
final List<Card> targetCards = SpellAbilityEffect.getTargetCards(sa);
|
||||
final List<Card> targetCards = getTargetCards(sa);
|
||||
final Iterator<Card> it = targetCards.iterator();
|
||||
while (it.hasNext()) {
|
||||
final Card targetCard = it.next();
|
||||
|
||||
@@ -2469,7 +2469,7 @@ public class CardFactoryUtil {
|
||||
String repeffstr = "Event$ Destroy | ActiveZones$ Battlefield | ValidCard$ Card.EnchantedBy | Secondary$ True"
|
||||
+ " | Description$ Umbra armor (" + inst.getReminderText() + ")";
|
||||
|
||||
String abprevDamage = "DB$ DealDamage | Defined$ ReplacedCard | Remove$ All ";
|
||||
String abprevDamage = "DB$ DealDamage | Defined$ ReplacedCard | Remove$ All";
|
||||
String abdestroy = "DB$ Destroy | Defined$ Self";
|
||||
|
||||
SpellAbility sa = AbilityFactory.getAbility(abprevDamage, card);
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:8
|
||||
Types:Creature Eldrazi Leech
|
||||
PT:6/4
|
||||
K:Emerge:6 B
|
||||
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigDrain | TriggerDescription$ When you cast CARDNAME, target opponent loses 3 life and you gain 3 life.
|
||||
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigDrain | TriggerDescription$ When you cast this spell, target opponent loses 3 life and you gain 3 life.
|
||||
SVar:TrigDrain:DB$ LoseLife | ValidTgts$ Opponent | LifeAmount$ 3 | SubAbility$ DBGainLife
|
||||
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 3
|
||||
Oracle:Emerge {6}{B} (You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's mana value.)\nWhen you cast this spell, target opponent loses 3 life and you gain 3 life.
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Creature Manticore
|
||||
PT:5/5
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
SVar:TrigChange:DB$ GainControl | TgtPrompt$ Choose target creature you don't control | ValidTgts$ Creature.OppCtrl | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
SVar:TrigChange:DB$ GainControl | TgtPrompt$ Choose target creature an opponent controls | ValidTgts$ Creature.OppCtrl | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ Gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
SVar:PlayMain1:OPPONENTCREATURES
|
||||
Oracle:Flying\nWhen Conquering Manticore enters the battlefield, gain control of target creature an opponent controls until end of turn. Untap that creature. It gains haste until end of turn.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Creature Zombie Warrior
|
||||
PT:3/1
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, each player sacrifices a creature.
|
||||
SVar:TrigSac:DB$ Sacrifice | Defined$ Player | SacValid$ Creature
|
||||
SVar:NeedsToPlay:Creature.YouDontCtrl
|
||||
SVar:NeedsToPlay:Creature.OppCtrl
|
||||
Oracle:When Fleshbag Marauder enters the battlefield, each player sacrifices a creature.
|
||||
|
||||
@@ -2,9 +2,9 @@ Name:Gilraen, Dúnedain Protector
|
||||
ManaCost:2 W
|
||||
Types:Legendary Creature Human Noble
|
||||
PT:2/3
|
||||
A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.Other+YouCtrl | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select another target creature you control | SubAbility$ DBReturn | SpellDescription$ Exile another target creature you control. You may return that card to the battlefield under its owner's control. If you don't, at the beginning of the next end step, return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it.
|
||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Targeted | Origin$ All | Optional$ True | RememberChanged$ True | Destination$ Battlefield | SubAbility$ DBDelayedTrigger
|
||||
SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Targeted | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ EQ0 | Mode$ Phase | Phase$ End Of Turn | Execute$ TrigReturn | SubAbility$ DBCleanup | SpellDescription$ If you don't, at the beginning of the next end step, return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it.
|
||||
A:AB$ ChangeZone | Cost$ 2 T | ValidTgts$ Creature.Other+YouCtrl | RememberChanged$ True | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select another target creature you control | SubAbility$ DBReturn | SpellDescription$ Exile another target creature you control. You may return that card to the battlefield under its owner's control. If you don't, at the beginning of the next end step, return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it.
|
||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Optional$ True | ForgetChanged$ True | Destination$ Battlefield | SubAbility$ DBDelayedTrigger
|
||||
SVar:DBDelayedTrigger:DB$ DelayedTrigger | RememberObjects$ Remembered | ConditionDefined$ Remembered | ConditionPresent$ Card | Mode$ Phase | Phase$ End Of Turn | Execute$ TrigReturn | SubAbility$ DBCleanup | SpellDescription$ If you don't, at the beginning of the next end step, return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRemembered | Origin$ Exile | Destination$ Battlefield | AnimateSubAbility$ DBConditionEffect
|
||||
SVar:DBConditionEffect:DB$ Effect | RememberObjects$ RememberedLKI | ReplacementEffects$ ETBCounters
|
||||
SVar:ETBCounters:Event$ Moved | ReplacementResult$ Updated | Destination$ Battlefield | ValidCard$ Card.IsRemembered | ReplaceWith$ AddExtraCounter | Description$ return that card to the battlefield under its owner's control with a vigilance counter and a lifelink counter on it.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Sorcery
|
||||
A:SP$ ChangeZoneAll | Defined$ Player.Opponent | Origin$ Graveyard | Destination$ Exile | ChangeType$ Card | RememberChanged$ True | SubAbility$ DBEffect | SpellDescription$ Exile all card from all opponents' graveyards. You may cast those cards this turn, and you may spend it as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. Exile CARDNAME.
|
||||
SVar:DBEffect:DB$ Effect | Duration$ Permanent | StaticAbilities$ STPlay | RememberObjects$ Remembered | ForgetOnMoved$ Exile | SubAbility$ DelTrig
|
||||
SVar:STPlay:Mode$ Continuous | MayPlay$ True | MayPlayIgnoreType$ True | EffectZone$ Command | Affected$ Card.nonLand+IsRemembered | AffectedZone$ Exile | Description$ You may cast those cards this turn, and you may spend mana as though it were mana of any type to cast those spells.
|
||||
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | RememberObjects$ RememberedLKI | TriggerDescription$ At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. | SubAbility$ ExileSelf
|
||||
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | RememberObjects$ RememberedLKI | IsPresent$ Card.IsTriggerRemembered | PresentZone$ Exile | TriggerDescription$ At the beginning of the next end step, if any of those cards remain exiled, return them to their owner's graveyards. | SubAbility$ ExileSelf
|
||||
SVar:TrigReturn:DB$ ChangeZone | Defined$ DelayTriggerRememberedLKI | Origin$ Exile | Destination$ Graveyard
|
||||
SVar:ExileSelf:DB$ ChangeZone | Defined$ Self | Origin$ Stack | Destination$ Exile
|
||||
Oracle:Exile all cards from all opponents' graveyards. You may cast spells from among those cards this turn, and you may spend mana as though it were mana of any type to cast those spells. At the beginning of the next end step, if any of those cards remain exiled, return them to their owners' graveyards.\nExile Mnemonic Betrayal.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
Name:Arcbound Condor
|
||||
ManaCost:2 B B
|
||||
Types:Artifact Creature Bird
|
||||
PT:0/0
|
||||
K:Flying
|
||||
K:Modular:3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Artifact.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another artifact enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn.
|
||||
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls. | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True
|
||||
DeckHas:Ability$Counters
|
||||
DeckNeeds:Type$Artifact
|
||||
Oracle:Flying\nModular 3 (This creature enters the battlefield with three +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.)\nWhenever another artifact enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn.
|
||||
Name:Arcbound Condor
|
||||
ManaCost:2 B B
|
||||
Types:Artifact Creature Bird
|
||||
PT:0/0
|
||||
K:Flying
|
||||
K:Modular:3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Artifact.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another artifact enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn.
|
||||
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls. | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True
|
||||
DeckHas:Ability$Counters
|
||||
DeckNeeds:Type$Artifact
|
||||
Oracle:Flying\nModular 3 (This creature enters the battlefield with three +1/+1 counters on it. When it dies, you may put its +1/+1 counters on target artifact creature.)\nWhenever another artifact enters the battlefield under your control, target creature an opponent controls gets -1/-1 until end of turn.
|
||||
@@ -13,4 +13,4 @@ Types:Land
|
||||
K:ETBReplacement:Other:DBTap
|
||||
SVar:DBTap:DB$ Tap | ETB$ True | Defined$ Self | UnlessCost$ PayLife<3> | UnlessPayer$ You | StackDescription$ enters the battlefield tapped. | SpellDescription$ As CARDNAME enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
|
||||
Oracle:As Fell Mire enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.\n{T}: Add {G}.
|
||||
Oracle:As Fell Mire enters the battlefield, you may pay 3 life. If you don't, it enters the battlefield tapped.\n{T}: Add {B}.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
Name:Legion Leadership
|
||||
ManaCost:1 BW
|
||||
ManaCost:1 RW
|
||||
Types:Instant
|
||||
A:SP$ Pump | ValidTgts$ Creature | NumAtt$ Double | KW$ First Strike | StackDescription$ REP target creature_{c:Targeted} | SpellDescription$ Until end of turn, double target creature's power and it gains first strike.
|
||||
Oracle:Until end of turn, double target creature’s power and it gains first strike.
|
||||
|
||||
Reference in New Issue
Block a user