Merge branch 'revealhand' into 'master'

RevealHandEffect: fix not revealing to all players

See merge request core-developers/forge!6269
This commit is contained in:
Michael Kamensky
2022-02-20 20:21:22 +00:00
24 changed files with 34 additions and 26 deletions

View File

@@ -449,11 +449,13 @@ public class AiAttackController {
return false; return false;
} }
CardLists.sortByPowerDesc(oppList);
for (Card attacker : oppList) { for (Card attacker : oppList) {
if (!ComputerUtilCombat.canAttackNextTurn(attacker)) { if (!ComputerUtilCombat.canAttackNextTurn(attacker)) {
continue; continue;
} }
if (blockersLeft > 0 && CombatUtil.canBeBlocked(attacker, ai)) { if (blockersLeft > 0 && CombatUtil.canBeBlocked(attacker, ai)) {
// TODO doesn't take trample into account
blockersLeft--; blockersLeft--;
continue; continue;
} }
@@ -461,6 +463,8 @@ public class AiAttackController {
// Test for some special triggers that can change the creature in combat // Test for some special triggers that can change the creature in combat
Card effectiveAttacker = ComputerUtilCombat.applyPotentialAttackCloneTriggers(attacker); Card effectiveAttacker = ComputerUtilCombat.applyPotentialAttackCloneTriggers(attacker);
// TODO commander
totalAttack += ComputerUtilCombat.damageIfUnblocked(effectiveAttacker, ai, null, false); totalAttack += ComputerUtilCombat.damageIfUnblocked(effectiveAttacker, ai, null, false);
totalPoison += ComputerUtilCombat.poisonIfUnblocked(effectiveAttacker, ai); totalPoison += ComputerUtilCombat.poisonIfUnblocked(effectiveAttacker, ai);
} }
@@ -878,7 +882,7 @@ public class AiAttackController {
if (ComputerUtilCombat.canAttackNextTurn(pCard) && pCard.getNetCombatDamage() > 0) { if (ComputerUtilCombat.canAttackNextTurn(pCard) && pCard.getNetCombatDamage() > 0) {
candidateAttackers.add(pCard); candidateAttackers.add(pCard);
candidateUnblockedDamage += ComputerUtilCombat.damageIfUnblocked(pCard, opp, null, false); candidateUnblockedDamage += ComputerUtilCombat.damageIfUnblocked(pCard, opp, null, false);
computerForces += 1; computerForces++;
} }
} }
@@ -897,13 +901,13 @@ public class AiAttackController {
if (pCard.getNetCombatDamage() > 0 && ComputerUtilCombat.canAttackNextTurn(pCard)) { if (pCard.getNetCombatDamage() > 0 && ComputerUtilCombat.canAttackNextTurn(pCard)) {
nextTurnAttackers.add(pCard); nextTurnAttackers.add(pCard);
candidateCounterAttackDamage += pCard.getNetCombatDamage(); candidateCounterAttackDamage += pCard.getNetCombatDamage();
humanForces += 1; // player forces they might use to attack humanForces++; // player forces they might use to attack
} }
// increment player forces that are relevant to an attritional attack - includes walls // increment player forces that are relevant to an attritional attack - includes walls
Card potentialOppBlocker = getCardCanBlockAnAttacker(pCard, candidateAttackers, true); Card potentialOppBlocker = getCardCanBlockAnAttacker(pCard, candidateAttackers, true);
if (potentialOppBlocker != null) { if (potentialOppBlocker != null) {
humanForcesForAttritionalAttack += 1; humanForcesForAttritionalAttack++;
if (predictEvasion) { if (predictEvasion) {
candidateAttackers.remove(potentialOppBlocker); candidateAttackers.remove(potentialOppBlocker);
} }

View File

@@ -181,7 +181,7 @@ public class DeckHints {
String[] typeParts = t.split("\\."); String[] typeParts = t.split("\\.");
op = Predicates.and(CardRulesPredicates.coreType(true, typeParts[0]), CardRulesPredicates.subType(typeParts[1])); op = Predicates.and(CardRulesPredicates.coreType(true, typeParts[0]), CardRulesPredicates.subType(typeParts[1]));
} else { } else {
op = Predicates.or(CardRulesPredicates.coreType(true, t), CardRulesPredicates.subType(t)); op = CardRulesPredicates.joinedType(StringOp.CONTAINS_IC, t);
} }
Iterables.addAll(cards, getMatchingItems(cardList, op, PaperCard.FN_GET_RULES)); Iterables.addAll(cards, getMatchingItems(cardList, op, PaperCard.FN_GET_RULES));
} }

View File

@@ -48,7 +48,11 @@ public class RevealHandEffect extends SpellAbilityEffect {
if (sa.hasParam("RevealType")) { if (sa.hasParam("RevealType")) {
hand = CardLists.filter(hand, CardPredicates.isType(sa.getParam("RevealType"))); hand = CardLists.filter(hand, CardPredicates.isType(sa.getParam("RevealType")));
} }
if (sa.hasParam("Look")) {
sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p); sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p);
} else {
host.getGame().getAction().reveal(hand, p);
}
if (sa.hasParam("RememberRevealed")) { if (sa.hasParam("RememberRevealed")) {
host.addRemembered(hand); host.addRemembered(hand);
} }

View File

@@ -1,7 +1,7 @@
Name:Clairvoyance Name:Clairvoyance
ManaCost:U ManaCost:U
Types:Instant Types:Instant
A:SP$ RevealHand | Cost$ U | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DelTrigSlowtrip | SpellDescription$ Look at target player's hand. Draw a card at the beginning of next turn's upkeep. A:SP$ RevealHand | Cost$ U | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SubAbility$ DelTrigSlowtrip | SpellDescription$ Look at target player's hand. Draw a card at the beginning of next turn's upkeep.
SVar:DelTrigSlowtrip:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | TriggerDescription$ Draw a card. SVar:DelTrigSlowtrip:DB$ DelayedTrigger | Mode$ Phase | Phase$ Upkeep | ValidPlayer$ Player | Execute$ DrawSlowtrip | TriggerDescription$ Draw a card.
SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You SVar:DrawSlowtrip:DB$ Draw | NumCards$ 1 | Defined$ You
AI:RemoveDeck:All AI:RemoveDeck:All

View File

@@ -4,5 +4,5 @@ Types:Creature Human Wizard
PT:0/6 PT:0/6
K:Morph:Reveal<1/Card.Blue/blue> K:Morph:Reveal<1/Card.Blue/blue>
T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigLook | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, look at target opponent's hand. T:Mode$ TurnFaceUp | ValidCard$ Card.Self | Execute$ TrigLook | TriggerZones$ Battlefield | TriggerDescription$ When CARDNAME is turned face up, look at target opponent's hand.
SVar:TrigLook:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent SVar:TrigLook:DB$ RevealHand | ValidTgts$ Opponent | Look$ True | TgtPrompt$ Select target opponent
Oracle:Morph—Reveal a blue card in your hand. (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Dragon's Eye Savants is turned face up, look at target opponent's hand. Oracle:Morph—Reveal a blue card in your hand. (You may cast this card face down as a 2/2 creature for {3}. Turn it face up any time for its morph cost.)\nWhen Dragon's Eye Savants is turned face up, look at target opponent's hand.

View File

@@ -4,7 +4,7 @@ Types:Creature Human Cleric
PT:3/1 PT:3/1
K:Flying K:Flying
T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigLook | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. You may exile a nonland card from it. For as long as that card remains exiled, its owner may play it. A spell cast this way costs {2} more to cast. T:Mode$ ChangesZone | ValidCard$ Card.Self | Destination$ Battlefield | Execute$ TrigLook | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. You may exile a nonland card from it. For as long as that card remains exiled, its owner may play it. A spell cast this way costs {2} more to cast.
SVar:TrigLook:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RememberRevealed$ True | SubAbility$ DBChooseCard SVar:TrigLook:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True | RememberRevealed$ True | SubAbility$ DBChooseCard
SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.nonLand+IsRemembered | ChoiceTitle$ You may exile a nonland card from it | MinAmount$ 0 | Amount$ 1 | SubAbility$ DBChangeZone SVar:DBChooseCard:DB$ ChooseCard | ChoiceZone$ Hand | Choices$ Card.nonLand+IsRemembered | ChoiceTitle$ You may exile a nonland card from it | MinAmount$ 0 | Amount$ 1 | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Hand | Destination$ Exile | Imprint$ True | SubAbility$ DBEffect SVar:DBChangeZone:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Hand | Destination$ Exile | Imprint$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | Duration$ Permanent | StaticAbilities$ MayPlay,CostsMore | RememberObjects$ Imprinted | ForgetOnMoved$ Exile | SubAbility$ DBCleanup SVar:DBEffect:DB$ Effect | Duration$ Permanent | StaticAbilities$ MayPlay,CostsMore | RememberObjects$ Imprinted | ForgetOnMoved$ Exile | SubAbility$ DBCleanup

View File

@@ -1,7 +1,7 @@
Name:Gitaxian Probe Name:Gitaxian Probe
ManaCost:PU ManaCost:PU
Types:Sorcery Types:Sorcery
A:SP$ RevealHand | Cost$ PU | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBDraw | AIPhyrexianPayment$ Never | SpellDescription$ Look at target player's hand. A:SP$ RevealHand | Cost$ PU | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SubAbility$ DBDraw | AIPhyrexianPayment$ Never | SpellDescription$ Look at target player's hand.
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:({U/P} can be paid with either {U} or 2 life.)\nLook at target player's hand.\nDraw a card. Oracle:({U/P} can be paid with either {U} or 2 life.)\nLook at target player's hand.\nDraw a card.

View File

@@ -1,6 +1,6 @@
Name:Glasses of Urza Name:Glasses of Urza
ManaCost:1 ManaCost:1
Types:Artifact Types:Artifact
A:AB$ RevealHand | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | SpellDescription$ Look at target player's hand. A:AB$ RevealHand | Cost$ T | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SpellDescription$ Look at target player's hand.
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:{T}: Look at target player's hand. Oracle:{T}: Look at target player's hand.

View File

@@ -4,5 +4,5 @@ Types:Creature Human Rogue
PT:1/1 PT:1/1
K:Flying K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target player's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target player's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Player | TgtPrompt$ Select target player SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True
Oracle:Flying\nWhen Ingenious Thief enters the battlefield, look at target player's hand. Oracle:Flying\nWhen Ingenious Thief enters the battlefield, look at target player's hand.

View File

@@ -2,5 +2,5 @@ Name:Lay Bare
ManaCost:2 U U ManaCost:2 U U
Types:Instant Types:Instant
A:SP$ Counter | Cost$ 2 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | SubAbility$ DBReveal | SpellDescription$ Counter target spell. Look at its controller's hand. A:SP$ Counter | Cost$ 2 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | SubAbility$ DBReveal | SpellDescription$ Counter target spell. Look at its controller's hand.
SVar:DBReveal:DB$ RevealHand | Defined$ TargetedController SVar:DBReveal:DB$ RevealHand | Defined$ TargetedController | Look$ True
Oracle:Counter target spell. Look at its controller's hand. Oracle:Counter target spell. Look at its controller's hand.

View File

@@ -4,6 +4,6 @@ Types:Creature Horror
PT:6/6 PT:6/6
K:Trample K:Trample
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may look at that player's hand. If you do, you may cast a spell from among those cards without paying its mana cost. T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may look at that player's hand. If you do, you may cast a spell from among those cards without paying its mana cost.
SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget | SubAbility$ TrigPlay SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget | SubAbility$ TrigPlay | Look$ True
SVar:TrigPlay:DB$ Play | Valid$ Card.ControlledBy TriggeredDefendingPlayer | ValidZone$ Hand | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True SVar:TrigPlay:DB$ Play | Valid$ Card.ControlledBy TriggeredDefendingPlayer | ValidZone$ Hand | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True
Oracle:Trample\nWhenever Mindleech Mass deals combat damage to a player, you may look at that player's hand. If you do, you may cast a spell from among those cards without paying its mana cost. Oracle:Trample\nWhenever Mindleech Mass deals combat damage to a player, you may look at that player's hand. If you do, you may cast a spell from among those cards without paying its mana cost.

View File

@@ -1,7 +1,7 @@
Name:Peek Name:Peek
ManaCost:U ManaCost:U
Types:Instant Types:Instant
A:SP$ RevealHand | Cost$ U | ValidTgts$ Player | TgtPrompt$ Select target player | SubAbility$ DBDraw | SpellDescription$ Look at target player's hand. A:SP$ RevealHand | Cost$ U | ValidTgts$ Player | TgtPrompt$ Select target player | Look$ True | SubAbility$ DBDraw | SpellDescription$ Look at target player's hand.
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
AI:RemoveDeck:All AI:RemoveDeck:All
Oracle:Look at target player's hand.\nDraw a card. Oracle:Look at target player's hand.\nDraw a card.

View File

@@ -3,5 +3,5 @@ ManaCost:1 U
Types:Creature Human Types:Creature Human
PT:1/2 PT:1/2
T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ Whenever CARDNAME becomes blocked, you may look at defending player's hand. T:Mode$ AttackerBlocked | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ Whenever CARDNAME becomes blocked, you may look at defending player's hand.
SVar:TrigPeek:DB$ RevealHand | Defined$ TriggeredDefendingPlayer SVar:TrigPeek:DB$ RevealHand | Defined$ TriggeredDefendingPlayer | Look$ True
Oracle:Whenever Port Inspector becomes blocked, you may look at defending player's hand. Oracle:Whenever Port Inspector becomes blocked, you may look at defending player's hand.

View File

@@ -4,6 +4,6 @@ Types:Creature Demon Ninja
PT:6/5 PT:6/5
K:Ninjutsu:4 U B K:Ninjutsu:4 U B
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at that player's hand. You may cast a spell from among those cards without paying its mana cost. T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at that player's hand. You may cast a spell from among those cards without paying its mana cost.
SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget | SubAbility$ TrigPlay SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget | Look$ True | SubAbility$ TrigPlay
SVar:TrigPlay:DB$ Play | Valid$ Card.nonLand+DefenderCtrl | ValidZone$ Hand | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True SVar:TrigPlay:DB$ Play | Valid$ Card.nonLand+DefenderCtrl | ValidZone$ Hand | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True
Oracle:Ninjutsu {4}{U}{B} ({4}{U}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Silent-Blade Oni deals combat damage to a player, look at that player's hand. You may cast a spell from among those cards without paying its mana cost. Oracle:Ninjutsu {4}{U}{B} ({4}{U}{B}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Silent-Blade Oni deals combat damage to a player, look at that player's hand. You may cast a spell from among those cards without paying its mana cost.

View File

@@ -2,7 +2,7 @@ Name:Slayer's Bounty
ManaCost:W ManaCost:W
Types:Legendary Artifact Clue Types:Legendary Artifact Clue
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at the creature cards in target opponent's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at the creature cards in target opponent's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RevealType$ Creature SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True | RevealType$ Creature
T:Mode$ Sacrificed | ValidCard$ Clue.YouCtrl | Execute$ TrigDraft | TriggerZones$ Battlefield | TriggerDescription$ Whenever you CARDNAME or another Clue, draft a card from CARDNAME's spellbook. T:Mode$ Sacrificed | ValidCard$ Clue.YouCtrl | Execute$ TrigDraft | TriggerZones$ Battlefield | TriggerDescription$ Whenever you CARDNAME or another Clue, draft a card from CARDNAME's spellbook.
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Bounty Agent,Outflank,Bound in Gold,Bring to Trial,Glass Casket,Reprobation,Collar the Culprit,Compulsory Rest,Expel,Fairgrounds Warden,Iron Verdict,Luminous Bonds,Raise the Alarm,Seal Away,Summary Judgment | SubAbility$ DBMakeCard SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Bounty Agent,Outflank,Bound in Gold,Bring to Trial,Glass Casket,Reprobation,Collar the Culprit,Compulsory Rest,Expel,Fairgrounds Warden,Iron Verdict,Luminous Bonds,Raise the Alarm,Seal Away,Summary Judgment | SubAbility$ DBMakeCard
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup

View File

@@ -1,7 +1,7 @@
Name:Sorcerous Sight Name:Sorcerous Sight
ManaCost:U ManaCost:U
Types:Sorcery Types:Sorcery
A:SP$ RevealHand | Cost$ U | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | SubAbility$ DBDraw | SpellDescription$ Look at target opponent's hand. A:SP$ RevealHand | Cost$ U | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True | SubAbility$ DBDraw | SpellDescription$ Look at target opponent's hand.
SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card. SVar:DBDraw:DB$ Draw | NumCards$ 1 | SpellDescription$ Draw a card.
AI:RemoveDeck:Random AI:RemoveDeck:Random
Oracle:Look at target opponent's hand.\nDraw a card. Oracle:Look at target opponent's hand.\nDraw a card.

View File

@@ -3,7 +3,7 @@ ManaCost:2
Types:Artifact Types:Artifact
K:ETBReplacement:Other:ChoosePlayer K:ETBReplacement:Other:ChoosePlayer
SVar:ChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent to look at the hand: | SubAbility$ DBLook | SpellDescription$ As CARDNAME enters the battlefield, look at an opponent's hand, then choose any card name. SVar:ChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent | ChoiceTitle$ Choose an opponent to look at the hand: | SubAbility$ DBLook | SpellDescription$ As CARDNAME enters the battlefield, look at an opponent's hand, then choose any card name.
SVar:DBLook:DB$ RevealHand | Defined$ ChosenPlayer | SubAbility$ DBNameCard SVar:DBLook:DB$ RevealHand | Defined$ ChosenPlayer | Look$ True | SubAbility$ DBNameCard
SVar:DBNameCard:DB$ NameCard | Defined$ You | SubAbility$ DBClear SVar:DBNameCard:DB$ NameCard | Defined$ You | SubAbility$ DBClear
SVar:DBClear:DB$ Cleanup | ClearChosenPlayer$ True SVar:DBClear:DB$ Cleanup | ClearChosenPlayer$ True
S:Mode$ CantBeActivated | ValidCard$ Card.NamedCard | ValidSA$ Activated.nonManaAbility | Description$ Activated abilities of sources with the chosen name can't be activated unless they're mana abilities. S:Mode$ CantBeActivated | ValidCard$ Card.NamedCard | ValidSA$ Activated.nonManaAbility | Description$ Activated abilities of sources with the chosen name can't be activated unless they're mana abilities.

View File

@@ -4,5 +4,5 @@ Types:Creature Human Pirate Scout
PT:1/1 PT:1/1
K:Flying K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True
Oracle:Flying\nWhen Talas Explorer enters the battlefield, look at target opponent's hand. Oracle:Flying\nWhen Talas Explorer enters the battlefield, look at target opponent's hand.

View File

@@ -3,5 +3,5 @@ ManaCost:2 U
Types:Creature Human Wizard Types:Creature Human Wizard
PT:2/2 PT:2/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True
Oracle:When Telepathic Spies enters the battlefield, look at target opponent's hand. Oracle:When Telepathic Spies enters the battlefield, look at target opponent's hand.

View File

@@ -6,7 +6,7 @@ SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ u_1_1_bird_flying | Token
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2 SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 2
SVar:DBEffect:DB$ Effect | Triggers$ TrigDamage | SpellDescription$ Whenever one or more creatures you control with flying deal combat damage to a player this turn, look at that player's hand and draw a card. SVar:DBEffect:DB$ Effect | Triggers$ TrigDamage | SpellDescription$ Whenever one or more creatures you control with flying deal combat damage to a player this turn, look at that player's hand and draw a card.
SVar:TrigDamage:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl+withFlying | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPeek | TriggerDescription$ Whenever one or more creatures you control with flying deal combat damage to a player this turn, look at that player's hand and draw a card. SVar:TrigDamage:Mode$ DamageDoneOnce | ValidSource$ Creature.YouCtrl+withFlying | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPeek | TriggerDescription$ Whenever one or more creatures you control with flying deal combat damage to a player this turn, look at that player's hand and draw a card.
SVar:TrigPeek:DB$ RevealHand | Defined$ TriggeredTarget | SubAbility$ DBDraw | SpellDescription$ Look at that player's hand. SVar:TrigPeek:DB$ RevealHand | Defined$ TriggeredTarget | SubAbility$ DBDraw | Look$ True | SpellDescription$ Look at that player's hand.
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SpellDescription$ Draw a card. SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 1 | SpellDescription$ Draw a card.
SVar:DBWish:DB$ ChangeZone | Origin$ Sideboard | Destination$ Library | OptionalDecider$ You | ChangeType$ Card.YouOwn | ChangeNum$ 1 | Optional$ True | Hidden$ True | SpellDescription$ You may put a card you own from outside the game on top of your library. SVar:DBWish:DB$ ChangeZone | Origin$ Sideboard | Destination$ Library | OptionalDecider$ You | ChangeType$ Card.YouOwn | ChangeNum$ 1 | Optional$ True | Hidden$ True | SpellDescription$ You may put a card you own from outside the game on top of your library.
DeckHas:Ability$Token DeckHas:Ability$Token

View File

@@ -4,7 +4,7 @@ Types:Creature Human Ninja
PT:1/2 PT:1/2
K:Ninjutsu:1 U K:Ninjutsu:1 U
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at that player's hand. T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigReveal | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at that player's hand.
SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget SVar:TrigReveal:DB$ RevealHand | Defined$ TriggeredTarget | Look$ True
A:AB$ ChangeZone | Cost$ 1 U | ValidTgts$ Ninja.YouCtrl | TgtPrompt$ Select target Ninja you control | Origin$ Battlefield | Destination$ Hand | PlayerTurn$ True | SpellDescription$ Return target Ninja you control to its owner's hand. Activate only during your turn. A:AB$ ChangeZone | Cost$ 1 U | ValidTgts$ Ninja.YouCtrl | TgtPrompt$ Select target Ninja you control | Origin$ Battlefield | Destination$ Hand | PlayerTurn$ True | SpellDescription$ Return target Ninja you control to its owner's hand. Activate only during your turn.
DeckHints:Type$Ninja DeckHints:Type$Ninja
Oracle:Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Walker of Secret Ways deals combat damage to a player, look at that player's hand.\n{1}{U}: Return target Ninja you control to its owner's hand. Activate only during your turn. Oracle:Ninjutsu {1}{U} ({1}{U}, Return an unblocked attacker you control to hand: Put this card onto the battlefield from your hand tapped and attacking.)\nWhenever Walker of Secret Ways deals combat damage to a player, look at that player's hand.\n{1}{U}: Return target Ninja you control to its owner's hand. Activate only during your turn.

View File

@@ -3,5 +3,5 @@ ManaCost:4 U
Types:Creature Drone Types:Creature Drone
PT:3/3 PT:3/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True
Oracle:When Wanderguard Sentry enters the battlefield, look at target opponent's hand. Oracle:When Wanderguard Sentry enters the battlefield, look at target opponent's hand.

View File

@@ -1,7 +1,7 @@
Name:Word of Command Name:Word of Command
ManaCost:B B ManaCost:B B
Types:Instant Types:Instant
A:SP$ RevealHand | ValidTgts$ Opponent | RememberRevealed$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Look at target opponent's hand and choose a card from it. You control that player until CARDNAME finishes resolving. The player plays that card if able. While doing so, the player can activate mana abilities only if they're from lands that player controls and only if mana they produce is spent to activate other mana abilities of lands the player controls and/or to play that card. If the chosen card is cast as a spell, you control the player while that spell is resolving. A:SP$ RevealHand | ValidTgts$ Opponent | RememberRevealed$ True | Look$ True | SubAbility$ DBChoose | StackDescription$ SpellDescription | SpellDescription$ Look at target opponent's hand and choose a card from it. You control that player until CARDNAME finishes resolving. The player plays that card if able. While doing so, the player can activate mana abilities only if they're from lands that player controls and only if mana they produce is spent to activate other mana abilities of lands the player controls and/or to play that card. If the chosen card is cast as a spell, you control the player while that spell is resolving.
SVar:DBChoose:DB$ ChooseCard | Defined$ You | Choices$ Card.IsRemembered | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | SubAbility$ DBManaLandOnlyEffect SVar:DBChoose:DB$ ChooseCard | Defined$ You | Choices$ Card.IsRemembered | ChoiceZone$ Hand | Amount$ 1 | Mandatory$ True | SubAbility$ DBManaLandOnlyEffect
SVar:DBManaLandOnlyEffect:DB$ Effect | EffectOwner$ TargetedPlayer | StaticAbilities$ DBLimitMana | ImprintOnHost$ True | Duration$ Permanent | SubAbility$ DBPlay SVar:DBManaLandOnlyEffect:DB$ Effect | EffectOwner$ TargetedPlayer | StaticAbilities$ DBLimitMana | ImprintOnHost$ True | Duration$ Permanent | SubAbility$ DBPlay
SVar:DBLimitMana:Mode$ CantBeActivated | ValidSA$ Activated.nonLand,Activated.ManaAbilityCantPaidFor | EffectZone$ Command | Description$ While doing so, the player can activate mana abilities only if they're from lands that player controls and only if mana they produce is spent to activate other mana abilities of lands the player controls and/or to play that card. SVar:DBLimitMana:Mode$ CantBeActivated | ValidSA$ Activated.nonLand,Activated.ManaAbilityCantPaidFor | EffectZone$ Command | Description$ While doing so, the player can activate mana abilities only if they're from lands that player controls and only if mana they produce is spent to activate other mana abilities of lands the player controls and/or to play that card.

View File

@@ -4,5 +4,5 @@ Types:Creature Human Soldier Scout
PT:1/1 PT:1/1
K:Horsemanship K:Horsemanship
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand. T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at target opponent's hand.
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Look$ True
Oracle:Horsemanship (This creature can't be blocked except by creatures with horsemanship.)\nWhen Wu Scout enters the battlefield, look at target opponent's hand. Oracle:Horsemanship (This creature can't be blocked except by creatures with horsemanship.)\nWhen Wu Scout enters the battlefield, look at target opponent's hand.