Hideaway without Remembering

This commit is contained in:
tool4EvEr
2023-01-30 17:24:08 +01:00
parent c871db942a
commit fba50006b5
19 changed files with 58 additions and 29 deletions

View File

@@ -89,11 +89,11 @@ public class PlayAi extends SpellAbilityAi {
}
}
if (source != null && source.hasKeyword(Keyword.HIDEAWAY) && source.hasRemembered()) {
if (source != null && source.hasKeyword(Keyword.HIDEAWAY) && source.hasExiledCard()) {
// AI is not very good at playing non-permanent spells this way, at least yet
// (might be possible to enable it for Sorceries in Main1/Main2 if target is available,
// but definitely not for most Instants)
Card rem = (Card) source.getFirstRemembered();
Card rem = source.getExiledCards().getFirst();
CardTypeView t = rem.getState(CardStateName.Original).getType();
return t.isPermanent() && !t.isLand();

View File

@@ -332,6 +332,8 @@ public class GameCopier {
final Card newCard = createCardCopy(newGame, owner, c);
cardMap.put(c, newCard);
// TODO ExiledWith
Player zoneOwner = owner;
// everything the CreatureEvaluator checks must be set here
if (zone == ZoneType.Battlefield) {

View File

@@ -355,6 +355,8 @@ public class AbilityUtils {
}
cards.addAll(CardLists.getValidCards(candidates, validDefined, hostCard.getController(), hostCard, sa));
return cards;
} else if (defined.startsWith("ExiledWith")) {
cards.addAll(hostCard.getExiledCards());
} else {
CardCollection list = getPaidCards(sa, defined);
if (list != null) {

View File

@@ -1373,6 +1373,7 @@ public class CardFactoryUtil {
String hideawayDig = "DB$ Dig | Defined$ You | DigNum$ " + n + " | DestinationZone$ Exile | ExileFaceDown$ True | RememberChanged$ True | RestRandomOrder$ True";
String hideawayEffect = "DB$ Effect | StaticAbilities$ STHideawayEffectLookAtCard | ForgetOnMoved$ Exile | RememberObjects$ Remembered | Duration$ Permanent";
String cleanupStr = "DB$ Cleanup | ClearRemembered$ True";
String lookAtCard = "Mode$ Continuous | Affected$ Card.IsRemembered | MayLookAt$ EffectSourceController | EffectZone$ Command | AffectedZone$ Exile | Description$ Any player who has controlled the permanent that exiled this card may look at this card in the exile zone.";
@@ -1381,18 +1382,15 @@ public class CardFactoryUtil {
AbilitySub effectSA = (AbilitySub) AbilityFactory.getAbility(hideawayEffect, card);
effectSA.setSVar("STHideawayEffectLookAtCard", lookAtCard);
AbilitySub cleanSA = (AbilitySub) AbilityFactory.getAbility(cleanupStr, card);
digSA.setSubAbility(effectSA);
effectSA.setSubAbility(cleanSA);
hideawayTrigger.setOverridingAbility(digSA);
triggers.add(hideawayTrigger);
// when the card with hideaway leaves the battlefield, forget all exiled cards
final Trigger changeZoneTrigger = TriggerHandler.parseTrigger("Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | TriggerZones$ Battlefield | Static$ True", card, intrinsic);
String cleanupStr = "DB$ Cleanup | ClearRemembered$ True";
changeZoneTrigger.setOverridingAbility(AbilityFactory.getAbility(cleanupStr, card));
triggers.add(changeZoneTrigger);
for (final Trigger trigger : triggers) {
inst.addTrigger(trigger);
}

View File

@@ -372,14 +372,14 @@ public class CardProperty {
}
}
if (!card.getExiledWith().equals(host)) {
if (!card.getExiledWith().equalsWithTimestamp(host)) {
return false;
}
} else if (property.equals("ExiledWithEffectSource")) {
if (card.getExiledWith() == null) {
return false;
}
if (!card.getExiledWith().equals(source.getEffectSource())) {
if (!card.getExiledWith().equalsWithTimestamp(source.getEffectSource())) {
return false;
}
} else if (property.equals("EncodedWithSource")) {

View File

@@ -313,6 +313,7 @@ public final class CardUtil {
newCopy.setExiledBy(in.getExiledBy());
newCopy.setExiledWith(getLKICopy(in.getExiledWith(), cachedMap));
newCopy.addExiledCards(in.getExiledCards());
if (in.getGame().getCombat() != null && in.isPermanent()) {
newCopy.setCombatLKI(in.getGame().getCombat().saveLKI(newCopy));

View File

@@ -4,7 +4,6 @@ Types:Enchantment
K:Hideaway:5
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigMill | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, you may mill three cards. Then if there are twenty or more cards in your graveyard, you may play the exiled card without paying its mana cost.
SVar:TrigMill:DB$ Mill | NumCards$ 3 | Optional$ True | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | ConditionPresent$ Card.IsRemembered | ConditionZone$ Exile | ConditionCheckSVar$ X | ConditionSVarCompare$ GE20 | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:X:Count$ValidGraveyard Card.YouOwn
SVar:DBPlay:DB$ Play | ConditionPresent$ Card.YouOwn | ConditionZone$ Graveyard | ConditionCompare$ GE20 | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
DeckHas:Ability$Mill
Oracle:Hideaway 5 (When this enchantment enters the battlefield, look at the top five cards of your library, exile one face down, then put the rest on the bottom in a random order.)\nAt the beginning of your upkeep, you may mill three cards. Then if there are twenty or more cards in your graveyard, you may play the exiled card without paying its mana cost.

View File

@@ -4,7 +4,6 @@ Types:Enchantment
K:Hideaway:5
T:Mode$ Phase | Phase$ BeginCombat | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of combat on your turn, put a +1/+1 counter on target creature you control. Then if you control a creature with power 7 or greater, you may play the exiled card without paying its mana cost.
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | ConditionPresent$ Card.IsRemembered | ConditionZone$ Exile | ConditionCheckSVar$ X | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:X:Count$Valid Creature.YouCtrl+powerGE7
SVar:DBPlay:DB$ Play | ConditionPresent$ Creature.YouCtrl+powerGE7 | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
DeckHas:Ability$Counters
Oracle:Hideaway 5 (When this enchantment enters the battlefield, look at the top five cards of your library, exile one face down, then put the rest on the bottom in a random order.)\nAt the beginning of combat on your turn, put a +1/+1 counter on target creature you control. Then if you control a creature with power 7 or greater, you may play the exiled card without paying its mana cost.

View File

@@ -4,7 +4,6 @@ Types:Land
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ B | SpellDescription$ Add {B}.
A:AB$ Play | Cost$ B T | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ Hands | ConditionSVarCompare$ EQ0 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if each player has no cards in hand.
SVar:Hands:Count$NumInAllHands
A:AB$ Play | Cost$ B T | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionZone$ Hand | ConditionPresent$ Card | ConditionCompare$ EQ0 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if each player has no cards in hand.
AI:RemoveDeck:Random
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nHowltooth Hollow enters the battlefield tapped.\n{T}: Add {B}.\n{B}, {T}: You may play the exiled card without paying its mana cost if each player has no cards in hand.

View File

@@ -4,6 +4,6 @@ Types:Land
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G}.
A:AB$ Play | Cost$ G T | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.
A:AB$ Play | Cost$ G T | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE10 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.
SVar:X:Count$SumPower_Creature.YouCtrl
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nMosswort Bridge enters the battlefield tapped.\n{T}: Add {G}.\n{G}, {T}: You may play the exiled card without paying its mana cost if creatures you control have total power 10 or greater.

View File

@@ -4,8 +4,7 @@ Types:Enchantment
K:Hideaway:5
T:Mode$ AttackersDeclared | ValidAttackers$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you attack with one or more creatures, create that many 1/1 green and white Citizen creature tokens. Then if you control ten or more creatures, you may play the exiled card without paying its mana cost.
SVar:TrigToken:DB$ Token | TokenScript$ gw_1_1_citizen | TokenAmount$ X | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | ConditionPresent$ Card.IsRemembered | ConditionZone$ Exile | ConditionCheckSVar$ Y | ConditionSVarCompare$ GE10 | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:DBPlay:DB$ Play | ConditionPresent$ Creature.YouCtrl | ConditionCompare$ GE10 | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:X:TriggerObjectsAttackers$Valid Creature.YouCtrl
SVar:Y:Count$Valid Creature.YouCtrl
DeckHas:Ability$Token & Type$Citizen
Oracle:Hideaway 5 (When this enchantment enters the battlefield, look at the top five cards of your library, exile one face down, then put the rest on the bottom in a random order.)\nWhenever you attack with one or more creatures, create that many 1/1 green and white Citizen creature tokens. Then if you control ten or more creatures, you may play the exiled card without paying its mana cost.

View File

@@ -4,7 +4,7 @@ Types:Land
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ U | SpellDescription$ Add {U}.
A:AB$ Play | Cost$ U T | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE20 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it.
A:AB$ Play | Cost$ U T | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ LE20 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it.
SVar:X:PlayerCountPlayers$LowestValidLibrary Card.YouOwn
AI:RemoveDeck:Random
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nShelldock Isle enters the battlefield tapped.\n{T}: Add {U}.\n{U}, {T}: You may play the exiled card without paying its mana cost if a library has twenty or fewer cards in it.

View File

@@ -4,8 +4,8 @@ Types:Artifact Vehicle
PT:5/5
K:Hideaway:4
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPlay | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may cast the exiled card without paying its mana cost. If you do, return CARDNAME to its owner's hand.
SVar:TrigPlay:DB$ Play | ValidSA$ Spell | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ImprintPlayed$ True | SubAbility$ DBReturn
SVar:TrigPlay:DB$ Play | ValidSA$ Spell | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ImprintPlayed$ True | SubAbility$ DBReturn
SVar:DBReturn:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Hand | ConditionDefined$ Imprinted | ConditionPresent$ Card | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True | ConditionDefined$ Imprinted | ConditionPresent$ Card
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True
K:Crew:2
Oracle:Hideaway 4 (When this artifact enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom in a random order.)\nWhenever Smuggler's Buggy deals combat damage to a player, you may cast the exiled card without paying its mana cost. If you do, return Smuggler's Buggy to its owner's hand.\nCrew 2

View File

@@ -4,6 +4,6 @@ Types:Land
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ R | SpellDescription$ Add {R}.
A:AB$ Play | Cost$ R T | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE7 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn.
A:AB$ Play | Cost$ R T | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE7 | ForgetRemembered$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn.
SVar:X:Count$MaxOppDamageThisTurn
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nSpinerock Knoll enters the battlefield tapped.\n{T}: Add {R}.\n{R}, {T}: You may play the exiled card without paying its mana cost if an opponent was dealt 7 or more damage this turn.

View File

@@ -0,0 +1,31 @@
Name:Prowl, Stoic Strategist
ManaCost:3 W
Types:Legendary Artifact Creature Robot
PT:3/3
K:More Than Meets the Eye:2 W
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigExile | TriggerDescription$ Whenever NICKNAME attacks, exile up to one other target tapped creature or Vehicle. For as long as that card remains exiled, its owner may play it.
SVar:TrigExile:DB$ ChangeZone | ValidTgts$ Creature.Other+tapped,Vehicle.Other+tapped | TgtPrompt$ Select up to one other target tapped creature or Vehicle | TargetMin$ 0 | TargetMax$ 1 | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Targeted | StaticAbilities$ Play | ExileOnMoved$ Exile | EffectOwner$ TargetedOwner | Duration$ Permanent
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ For as long as that card remains exiled, its owner may play it.
T:Mode$ SpellCast | ValidCard$ Card.ExiledWithSource | ValidActivatingPlayer$ Player | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever a player plays a card exiled with NICKNAME, you draw a card and convert NICKNAME.
T:Mode$ LandPlayed | ValidCard$ Card.ExiledWithSource | TriggerZones$ Battlefield | Execute$ TrigDraw | Secondary$ True | TriggerDescription$ Whenever a player plays a card exiled with NICKNAME, you draw a card and convert NICKNAME.
SVar:TrigDraw:DB$ Draw | SubAbility$ DBConvert
SVar:DBConvert:DB$ SetState | Mode$ Convert | SubAbility$ DBForget
SVar:DBForget:DB$ Pump | ForgetObjects$ TriggeredCard
AlternateMode:Convert
Oracle:More Than Meets the Eye {1}{R}{G} (You may cast this card converted for {1}{R}{G}.)\nOther nontoken artifact creatures and Vehicles you control have modular 1. (They enter the battlefield with an additional +1/+1 counter on them. When they die, you may put their +1/+1 counters on target artifact creature.)\nWhenever you put one or more +1/+1 counters on Blaster, convert it.
ALTERNATE
Name:Blaster, Morale Booster
ManaCost:no cost
Colors:red,green
Types:Legendary Artifact
K:Modular:3
A:AB$ MoveCounter | Cost$ X T | Source$ Self | ValidTgts$ Artifact.Other | TgtPrompt$ Select another target artifact to get counters | CounterType$ P1P1 | CounterNum$ X | SorcerySpeed$ True | SubAbility$ DBPump | SpellDescription$ Move X +1/+1 counters from NICKNAME onto another target artifact. Activate only as a sorcery.
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ Haste | SubAbility$ DBConvert | SpellDescription$ That artifact gains haste until end of turn.
SVar:DBConvert:DB$ SetState | Mode$ Convert | ConditionPresent$ Card.Self+counters_EQ0_P1P1 | StackDescription$ If NICKNAME has no +1/+1 counters on it, convert it.
SVar:X:Count$xPaid
DeckHas:Ability$Counters
Oracle:Modular 3\n{X}, {T}: Move X +1/+1 counters from Blaster onto another target artifact. That artifact gains haste until end of turn. If Blaster has no +1/+1 counters on it, convert it. Activate only as a sorcery.

View File

@@ -5,5 +5,5 @@ PT:2/1
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBReturn | TriggerDescription$ When CARDNAME leaves the battlefield, put the exiled card into its owner's hand.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Hand
SVar:DBReturn:DB$ ChangeZone | Defined$ ExiledWith | Origin$ Exile | Destination$ Hand
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nWatcher for Tomorrow enters the battlefield tapped.\nWhen Watcher for Tomorrow leaves the battlefield, put the exiled card into its owner's hand.

View File

@@ -4,7 +4,7 @@ Types:Enchantment
K:Hideaway:5
T:Mode$ SpellCast | ValidCard$ Card.MultiColor | ValidActivatingPlayer$ You | Execute$ TrigToken | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a multicolored spell, create a Treasure token. Then, you may pay {W}{U}{B}{R}{G}. If you do, you may play the exiled card without paying its mana cost.
SVar:TrigToken:DB$ Token | TokenScript$ c_a_treasure_sac | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | UnlessCost$ W U B R G | UnlessSwitched$ True | UnlessPayer$ You | ConditionPresent$ Card.IsRemembered | ConditionZone$ Exile | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:DBPlay:DB$ Play | UnlessCost$ W U B R G | UnlessSwitched$ True | UnlessPayer$ You | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
AI:RemoveDeck:Random
SVar:BuffedBy:Card.MultiColor
DeckHas:Ability$Token|Sacrifice & Type$Treasure|Artifact

View File

@@ -4,6 +4,6 @@ Types:Land
K:Hideaway:4
K:CARDNAME enters the battlefield tapped.
A:AB$ Mana | Cost$ T | Produced$ W | SpellDescription$ Add {W}.
A:AB$ Play | Cost$ W T | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | ForgetRemembered$ True | PlayerTurn$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if you attacked with three or more creatures this turn.
A:AB$ Play | Cost$ W T | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True | ConditionCheckSVar$ X | ConditionSVarCompare$ GE3 | ForgetRemembered$ True | PlayerTurn$ True | AILogic$ CheckCondition | SpellDescription$ You may play the exiled card without paying its mana cost if you attacked with three or more creatures this turn.
SVar:X:Count$AttackersDeclared
Oracle:Hideaway 4 (When this permanent enters the battlefield, look at the top four cards of your library, exile one face down, then put the rest on the bottom of your library.)\nWindbrisk Heights enters the battlefield tapped.\n{T}: Add {W}.\n{W}, {T}: You may play the exiled card without paying its mana cost if you attacked with three or more creatures this turn.

View File

@@ -4,6 +4,5 @@ Types:Enchantment
K:Hideaway:5
T:Mode$ Drawn | ValidCard$ Card.YouOwn | FirstCardInDrawStep$ True | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you draw your first card during each of your draw steps, draw a card. Then if you have nine or more cards in hand, you may play the exiled card without paying its mana cost.
SVar:TrigDraw:DB$ Draw | SubAbility$ DBPlay
SVar:DBPlay:DB$ Play | ConditionPresent$ Card.IsRemembered | ConditionZone$ Exile | ConditionCheckSVar$ X | ConditionSVarCompare$ GE9 | Defined$ Remembered | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
SVar:X:Count$InYourHand
SVar:DBPlay:DB$ Play | ConditionPresent$ Card | ConditionZone$ Hand | ConditionCompare$ GE9 | Defined$ ExiledWith | Amount$ All | Controller$ You | WithoutManaCost$ True | Optional$ True
Oracle:Hideaway 5 (When this enchantment enters the battlefield, look at the top five cards of your library, exile one face down, then put the rest on the bottom in a random order.)\nWhenever you draw your first card during each of your draw steps, draw a card. Then if you have nine or more cards in hand, you may play the exiled card without paying its mana cost.