1+ -- アウターカオステライム
2+ -- Outer Chaostellime
3+ -- scripted by YoshiDuels
4+ local s ,id = GetID ()
5+ function s .initial_effect (c )
6+ -- Send the top 3 cards of your Deck to the GY and special summon
7+ local e1 = Effect .CreateEffect (c )
8+ e1 :SetDescription (aux .Stringid (id ,0 ))
9+ e1 :SetCategory (CATEGORY_DECKDES |CATEGORY_SPECIAL_SUMMON )
10+ e1 :SetType (EFFECT_TYPE_IGNITION )
11+ e1 :SetRange (LOCATION_MZONE )
12+ e1 :SetCountLimit (1 )
13+ e1 :SetCost (s .cost )
14+ e1 :SetTarget (s .target )
15+ e1 :SetOperation (s .operation )
16+ c :RegisterEffect (e1 )
17+ end
18+ function s .cost (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
19+ if chk == 0 then return Duel .IsExistingMatchingCard (Card .IsAbleToGraveAsCost ,tp ,LOCATION_HAND ,0 ,1 ,nil ) end
20+ end
21+ function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
22+ if chk == 0 then return Duel .IsPlayerCanDiscardDeck (tp ,3 ) end
23+ Duel .SetOperationInfo (0 ,CATEGORY_DECKDES ,nil ,0 ,tp ,3 )
24+ Duel .SetPossibleOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,nil ,0 ,tp ,1 )
25+ end
26+ function s .filter (c )
27+ return c :IsType (TYPE_NORMAL ) and c :IsLocation (LOCATION_GRAVE )
28+ end
29+ function s .spfilter (c ,e ,tp )
30+ return c :IsType (TYPE_NORMAL ) and c :IsRace (RACE_GALAXY ) and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false ,POS_FACEUP )
31+ end
32+ function s .operation (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
33+ -- Requirement
34+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TOGRAVE )
35+ local g = Duel .SelectMatchingCard (tp ,Card .IsAbleToGraveAsCost ,tp ,LOCATION_HAND ,0 ,1 ,1 ,nil )
36+ Duel .SendtoGrave (g ,REASON_COST )
37+ -- Effect
38+ Duel .DiscardDeck (tp ,3 ,REASON_EFFECT )
39+ local og = Duel .GetOperatedGroup ()
40+ local ct = og :FilterCount (s .filter ,nil )
41+ local g2 = Duel .GetMatchingGroup (aux .NecroValleyFilter (s .spfilter ),tp ,LOCATION_GRAVE ,0 ,nil ,e ,tp )
42+ if ct >= 1 and # g2 > 0 and Duel .GetLocationCount (tp ,LOCATION_MZONE )> 0 and Duel .SelectYesNo (tp ,aux .Stringid (id ,1 )) then
43+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_SPSUMMON )
44+ local sg = Duel .SelectMatchingCard (tp ,s .spfilter ,tp ,LOCATION_GRAVE ,0 ,1 ,1 ,nil ,e ,tp )
45+ if # sg > 0 then
46+ Duel .BreakEffect ()
47+ Duel .SpecialSummon (sg ,0 ,tp ,tp ,false ,false ,POS_FACEUP )
48+ end
49+ end
50+ end
0 commit comments