Merge branch 'Card-Forge:master' into master

This commit is contained in:
Fulgur14
2024-05-30 08:31:13 +02:00
committed by GitHub
13 changed files with 28 additions and 30 deletions

View File

@@ -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

View File

@@ -122,7 +122,6 @@ public class CountersPutAllEffect extends SpellAbilityEffect {
if (sa.hasParam("RememberCards")) { // remembers whether counters actually placed or not
host.addRemembered(table.columnKeySet());
}
}
}

View File

@@ -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();

View File

@@ -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);

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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}.

View File

@@ -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 creatures power and it gains first strike.

View File

@@ -1,7 +1,7 @@
Name:Titans' Vanguard
ManaCost:1 R G
ManaCost:3 R G
Types:Creature Eldrazi
PT:2/2
PT:5/5
K:Devoid
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigPutCounters | TriggerDescription$ When you cast this spell and whenever CARDNAME attacks, put a +1/+1 counter on each colorless creature you control.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPutCounters | TriggerZones$ Battlefield | Secondary$ True | TriggerDescription$ When you cast this spell and whenever CARDNAME attacks, put a +1/+1 counter on each colorless creature you control.