1+ -- ウィスニャーリング・フェアリー
2+ -- Whispurring Fairy
3+ -- Scripted by YoshiDuels
4+ local s ,id = GetID ()
5+ function s .initial_effect (c )
6+ -- Fusion Procedure
7+ c :EnableReviveLimit ()
8+ Fusion .AddProcMixN (c ,true ,true ,160001018 ,1 ,s .ffilter ,1 )
9+ Fusion .AddContactProc (c ,s .contactfil ,s .contactop ,nil ,nil ,SUMMON_TYPE_FUSION ,nil ,false )
10+ -- Place 1 Spell/Trap on the bottom of the Deck
11+ local e1 = Effect .CreateEffect (c )
12+ e1 :SetDescription (aux .Stringid (id ,0 ))
13+ e1 :SetCategory (CATEGORY_TODECK + CATEGORY_SPECIAL_SUMMON )
14+ e1 :SetType (EFFECT_TYPE_IGNITION )
15+ e1 :SetRange (LOCATION_MZONE )
16+ e1 :SetCountLimit (1 )
17+ e1 :SetCondition (s .condition )
18+ e1 :SetTarget (s .target )
19+ e1 :SetOperation (s .operation )
20+ c :RegisterEffect (e1 )
21+ end
22+ s .named_material = {160001018 }
23+ s .listed_names = {CARD_STRAYNGE_CAT }
24+ function s .ffilter (c ,fc ,sumtype ,tp )
25+ return c :IsAttribute (ATTRIBUTE_EARTH ,fc ,sumtype ,tp ) and c :IsLevelBelow (4 )
26+ end
27+ function s .contactfil (tp )
28+ return Duel .GetMatchingGroup (aux .FaceupFilter (Card .IsAbleToDeckOrExtraAsCost ),tp ,LOCATION_ONFIELD ,0 ,nil )
29+ end
30+ function s .contactop (g ,tp )
31+ Duel .SendtoDeck (g ,nil ,SEQ_DECKSHUFFLE ,REASON_COST + REASON_MATERIAL )
32+ end
33+ function s .condition (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
34+ local c = e :GetHandler ()
35+ return c :IsStatus (STATUS_SPSUMMON_TURN ) and c :IsSummonType (SUMMON_TYPE_FUSION )
36+ end
37+ function s .filter (c )
38+ return c :IsSpellTrap () and c :IsAbleToDeck ()
39+ end
40+ function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
41+ if chk == 0 then return Duel .IsExistingMatchingCard (s .filter ,tp ,0 ,LOCATION_ONFIELD ,1 ,nil ) end
42+ Duel .SetOperationInfo (0 ,CATEGORY_TODECK ,nil ,1 ,0 ,0 )
43+ end
44+ function s .spfilter (c ,e ,tp )
45+ return c :IsCode (CARD_STRAYNGE_CAT ) and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false )
46+ end
47+ function s .operation (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
48+ -- Effect
49+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TODECK )
50+ local g = Duel .SelectMatchingCard (tp ,s .filter ,tp ,0 ,LOCATION_ONFIELD ,1 ,1 ,nil )
51+ if # g > 0 then
52+ Duel .HintSelection (g )
53+ local sg = Duel .GetMatchingGroup (s .spfilter ,tp ,LOCATION_GRAVE ,0 ,nil ,e ,tp )
54+ if Duel .SendtoDeck (g ,nil ,SEQ_DECKBOTTOM ,REASON_EFFECT )> 0 and # sg > 0 and Duel .GetLocationCount (tp ,LOCATION_MZONE )> 0 and Duel .SelectYesNo (tp ,aux .Stringid (id ,1 )) then
55+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_SPSUMMON )
56+ local ssg = sg :Select (tp ,1 ,1 ,nil )
57+ if # ssg > 0 then
58+ Duel .SpecialSummon (ssg ,0 ,tp ,tp ,false ,false ,POS_FACEUP )
59+ end
60+ end
61+ end
62+ end
0 commit comments