mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
@@ -11,6 +11,8 @@ import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.CardLists;
|
||||
import forge.game.card.CardPredicates;
|
||||
import forge.game.card.CardZoneTable;
|
||||
import forge.game.event.GameEventCombatChanged;
|
||||
import forge.game.player.Player;
|
||||
@@ -22,6 +24,8 @@ import forge.util.Localizer;
|
||||
import forge.util.MyRandom;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
public class DigUntilEffect extends SpellAbilityEffect {
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -214,6 +218,23 @@ public class DigUntilEffect extends SpellAbilityEffect {
|
||||
if (sa.hasParam("GainControl")) {
|
||||
c.setController(sa.getActivatingPlayer(), game.getNextTimestamp());
|
||||
}
|
||||
if (sa.hasParam("AttachedTo")) {
|
||||
CardCollection list = AbilityUtils.getDefinedCards(c, sa.getParam("AttachedTo"), sa);
|
||||
if (list.isEmpty()) {
|
||||
list = CardLists.getValidCards(lastStateBattlefield, sa.getParam("AttachedTo"), c.getController(), c, sa);
|
||||
}
|
||||
if (!list.isEmpty()) {
|
||||
list = CardLists.filter(list, CardPredicates.canBeAttached(c, sa));
|
||||
}
|
||||
if (!list.isEmpty()) {
|
||||
Map<String, Object> params = Maps.newHashMap();
|
||||
params.put("Attach", c);
|
||||
Card attachedTo = p.getController().chooseSingleEntityForEffect(list, sa, Localizer.getInstance().getMessage("lblSelectACardAttachSourceTo", c.toString()), params);
|
||||
c.attachToEntity(game.getCardState(attachedTo), sa, true);
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (sa.hasParam("Tapped")) {
|
||||
c.setTapped(true);
|
||||
}
|
||||
|
||||
11
forge-gui/res/cardsfolder/upcoming/mordor_on_the_march.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/mordor_on_the_march.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Mordor on the March
|
||||
ManaCost:3 B R
|
||||
Types:Sorcery
|
||||
K:Storm
|
||||
A:SP$ ChangeZone | ChangeType$ Creature.YouCtrl | Hidden$ True | ChangeNum$ 1 | RememberChanged$ True | Origin$ Graveyard | Destination$ Exile | ChangeNum$ 1 | SubAbility$ DBCopy | SpellDescription$ Exile a creature card from your graveyard. Create a token that's a copy of it. It gains haste until end of turn. Exile it at the beginning of the next end step.
|
||||
SVar:DBCopy:DB$ CopyPermanent | Defined$ Remembered | PumpKeywords$ Haste | PumpDuration$ EOT | AtEOT$ Exile | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:PlayMain1:TRUE
|
||||
DeckHas:Ability$Token
|
||||
DeckHints:Ability$Graveyard|Mill
|
||||
Oracle:Exile a creature card from your graveyard. Create a token that's a copy of it. It gains haste until end of turn. Exile it at the beginning of the next end step.\nStorm (When you cast this spell, copy it for each spell cast before it this turn.)
|
||||
10
forge-gui/res/cardsfolder/upcoming/nazgul_battle_mace.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/nazgul_battle_mace.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Nazgul Battle-Mace
|
||||
ManaCost:5
|
||||
Types:Artifact Equipment
|
||||
K:Equip:3
|
||||
S:Mode$ Continuous | AddTrigger$ SacrificeStatic | Affected$ Creature.EquippedBy | AddKeyword$ Menace & Deathtouch & Annihilator:1 | Description$ Equipped creature has menace, deathtouch, annihilator 1, and "Whenever an opponent sacrifices a nontoken permanent, put that card onto the battlefield under your control unless that player pays 3 life." (Whenever a creature with annihilator 1 attacks, defending player sacrifices a permanent.)
|
||||
SVar:SacrificeStatic:Mode$ Sacrificed | ValidCard$ Permanent.nonToken+OppCtrl | Execute$ TrigReturn | TriggerZones$ Battlefield | TriggerDescription$ Whenever an opponent sacrifices a nontoken permanent, put that card onto the battlefield under your control unless that player pays 3 life.
|
||||
SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | Defined$ TriggeredCard | UnlessCost$ PayLife<3> | UnlessPayer$ TriggeredCardController
|
||||
SVar:PlayMain1:TRUE
|
||||
DeckHas:Ability$Sacrifice
|
||||
Oracle:Equipped creature has menace, deathtouch, annihilator 1, and "Whenever an opponent sacrifices a nontoken permanent, put that card onto the battlefield under your control unless that player pays 3 life." (Whenever a creature with annihilator 1 attacks, defending player sacrifices a permanent.)\nEquip {3}
|
||||
12
forge-gui/res/cardsfolder/upcoming/olorins_searing_light.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/olorins_searing_light.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
Name:Olorin's Searing Light
|
||||
ManaCost:2 R W
|
||||
Types:Instant
|
||||
A:SP$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ DBChooseCard | SubAbility$ DBExile | SpellDescription$ Each opponent exiles a creature with the greatest power among creatures that player controls.\nSpell mastery — If there are two or more instant and/or sorcery cards in your graveyard, CARDNAME deals damage to each opponent equal to the power of the creature they exiled.
|
||||
SVar:DBChooseCard:DB$ ChooseCard | Defined$ Player.IsRemembered | Choices$ Creature.greatestPowerControlledByRemembered | ChoiceTitle$ Choose a creature you control with the greatest power | Mandatory$ True | RememberChosen$ True
|
||||
SVar:DBExile:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Battlefield | Destination$ Exile | SubAbility$ RepeatBis | StackDescription$ Each opponent exiles a creature with the greatest power among creatures that player controls.
|
||||
SVar:RepeatBis:DB$ RepeatEach | RepeatPlayers$ Player.Opponent | DamageMap$ True | RepeatSubAbility$ DBDamage | ConditionZone$ Graveyard | ConditionPresent$ Instant.YouOwn,Sorcery.YouOwn | ConditionCompare$ GE2 | SubAbility$ DBCleanup
|
||||
SVar:DBDamage:DB$ DealDamage | Defined$ Player.IsRemembered | NumDmg$ X
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:RememberedLKI$FilterControlledByRemembered_CardPower
|
||||
DeckHints:Ability$Graveyard|Mill
|
||||
Oracle:Each opponent exiles a creature with the greatest power among creatures that player controls.\nSpell mastery — If there are two or more instant and/or sorcery cards in your graveyard, Olorin's Searing Light deals damage to each opponent equal to the power of the creature they exiled.
|
||||
@@ -0,0 +1,7 @@
|
||||
Name:Rally the Galadhrim
|
||||
ManaCost:2 G U
|
||||
Types:Sorcery
|
||||
A:SP$ CopyPermanent | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SpellDescription$ Create a token that's a copy of target creature you control.
|
||||
K:Conspire
|
||||
DeckHas:Ability$Token
|
||||
Oracle:Create a token that's a copy of target creature you control.\nConspire (As you cast this spell, you may tap two untapped creatures you control that share a color with it. When you do, copy it and you may choose a new target for the copy.)
|
||||
@@ -0,0 +1,11 @@
|
||||
Name:Rammas Echor, Ancient Shield
|
||||
ManaCost:3 W
|
||||
Types:Legendary Artifact
|
||||
T:Mode$ SpellCast | ValidCard$ Card.YouCtrl | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDaw | ActivatorThisTurnCast$ EQ2 | TriggerDescription$ Whenever you cast your second spell each turn, draw a card, then create a 0/3 white Wall creature token with defender.
|
||||
SVar:TrigDaw:DB$ Draw | SubAbility$ DBToken
|
||||
SVar:DBToken:DB$ Token | TokenScript$ w_0_3_wall_defender
|
||||
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | Execute$ TrigPump | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of combat on your turn, creatures you control with defender gain exalted until end of turn. (Whenever a creature you control attacks alone, it gets +1/+1 until end of turn for each instance of exalted among permanents you control.)
|
||||
SVar:TrigPump:DB$ PumpAll | ValidCards$ Creature.withDefender+YouCtrl | KW$ Exalted
|
||||
DeckHas:Ability$Token & Type$Wall
|
||||
DeckHints:Keyword$Defender & Type$Wall
|
||||
Oracle:Whenever you cast your second spell each turn, draw a card, then create a 0/3 white Wall creature token with defender.\nAt the beginning of combat on your turn, creatures you control with defender gain exalted until end of turn. (Whenever a creature you control attacks alone, it gets +1/+1 until end of turn for each instance of exalted among permanents you control.)
|
||||
9
forge-gui/res/cardsfolder/upcoming/rohirrim_chargers.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/rohirrim_chargers.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
Name:Rohirrim Chargers
|
||||
ManaCost:2 R W
|
||||
Types:Creature Human Knight
|
||||
PT:4/4
|
||||
S:Mode$ OptionalAttackCost | ValidCard$ Card.Self | Cost$ Exert<1/CARDNAME> | Description$ You may exert CARDNAME as it attacks. (It won't untap during your next untap step.)
|
||||
T:Mode$ Exerted | ValidCard$ Creature.YouCtrl | Execute$ TrigDig | TriggerZones$ Battlefield | TriggerDescription$ Whenever you exert a creature, reveal cards from the top of your library until you reveal an Equipment card. Put that card onto the battlefield attached to that creature, then put the rest on the bottom of your library in a random order.
|
||||
SVar:TrigDig:DB$ DigUntil | Defined$ You | Valid$ Equipment | FoundDestination$ Battlefield | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | AttachedTo$ TriggeredCard
|
||||
DeckHints:Type$Equipment
|
||||
Oracle:You may exert Rohirrim Chargers as it attacks. (It won't untap during your next untap step.)\nWhenever you exert a creature, reveal cards from the top of your library until you reveal an Equipment card. Put that card onto the battlefield attached to that creature, then put the rest on the bottom of your library in a random order.
|
||||
8
forge-gui/res/cardsfolder/upcoming/sorcerous_squall.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/sorcerous_squall.txt
Normal file
@@ -0,0 +1,8 @@
|
||||
Name:Sorcerous Squall
|
||||
ManaCost:6 U U U
|
||||
Types:Sorcery
|
||||
K:Delve
|
||||
A:SP$ Mill | NumCards$ 9 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent to mill | SubAbility$ FishyCast | SpellDescription$ Target opponent mills nine cards, then you may cast an instant or sorcery spell from that player's graveyard without paying its mana cost. If that spell would be put into a graveyard, exile it instead.
|
||||
SVar:FishyCast:DB$ Play | ValidZone$ Graveyard | Valid$ Instant.TargetedPlayerCtrl,Sorcery.TargetedPlayerCtrl | Controller$ You | WithoutManaCost$ True | ValidSA$ Spell | Optional$ True | Amount$ 1 | ReplaceGraveyard$ Exile
|
||||
DeckHints:Ability$Mill|Graveyard
|
||||
Oracle:Delve (Each card you exile from your graveyard while casting this spell pays for {1}.)\nTarget opponent mills nine cards, then you may cast an instant or sorcery spell from that player's graveyard without paying its mana cost. If that spell would be put into a graveyard, exile it instead.
|
||||
@@ -0,0 +1,15 @@
|
||||
Name:Witch-king, Sky Scourge
|
||||
ManaCost:5 B R
|
||||
Types:Legendary Creature Wraith Noble
|
||||
PT:5/5
|
||||
K:Flying
|
||||
K:Undying
|
||||
T:Mode$ AttackersDeclared | ValidAttackers$ Wraith | AttackingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever you attack with one or more Wraiths, exile the top X cards of your library, where X is their total power. You may play those cards this turn.
|
||||
SVar:TrigExile:DB$ Dig | Defined$ You | DigNum$ X | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | StaticAbilities$ STPlay | ForgetOnMoved$ Exile | RememberObjects$ RememberedCard | SubAbility$ DBCleanup
|
||||
SVar:STPlay:Mode$ Continuous | EffectZone$ Command | Affected$ Card.IsRemembered | MayPlay$ True | AffectedZone$ Exile | Description$ you may play those cards this turn
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:TriggerObjectsAttackers$CardPower
|
||||
DeckHas:Ability$Counters
|
||||
DeckHints:Type$Wraith
|
||||
Oracle:Flying\nWhenever you attack with one or more Wraiths, exile the top X cards of your library, where X is their total power. You may play those cards this turn.\nUndying (When this creature dies, if it had no +1/+1 counters on it, return it to the battlefield under its owner's control with a +1/+1 counter on it.)
|
||||
Reference in New Issue
Block a user