Name:Gifts Ungiven
ManaCost:3 U
Types:Instant
A:SP$ ChangeZone | Origin$ Library | Destination$ Library | ChangeType$ Card | ChangeNum$ 4 | RememberChanged$ True | Reveal$ True | Shuffle$ False | DifferentNames$ True | SubAbility$ DBChangeZone1 | StackDescription$ {p:You} searches their library for up to four cards with different names and reveals them. | SpellDescription$ Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle.
SVar:DBChangeZone1:DB$ ChangeZone | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | DefinedPlayer$ You | Chooser$ Targeted | SelectPrompt$ Choose two cards for the graveyard | NoLooking$ True | Hidden$ True | Origin$ Library | Destination$ Graveyard | ChangeType$ Card.IsRemembered | ChangeNum$ 2 | Mandatory$ True | SelectPrompt$ Select two cards for the graveyard | Shuffle$ False | SubAbility$ DBChangeZone2 | StackDescription$ {p:Targeted} chooses two of those cards. {p:You} puts the chosen cards into their graveyard
SVar:DBChangeZone2:DB$ ChangeZoneAll | Origin$ Library | Destination$ Hand | ChangeType$ Card.IsRemembered | Shuffle$ True | StackDescription$ and the rest into their hand. Then {p:You} shuffles their library. | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHints:Ability$Graveyard
Oracle:Search your library for up to four cards with different names and reveal them. Target opponent chooses two of those cards. Put the chosen cards into your graveyard and the rest into your hand. Then shuffle.
