1+ -- いとをかしひなひめ
2+ -- Grace Princess Hina
3+ -- scripted by YoshiDuels
4+ local s ,id = GetID ()
5+ function s .initial_effect (c )
6+ -- Special Summon
7+ local e1 = Effect .CreateEffect (c )
8+ e1 :SetDescription (aux .Stringid (id ,0 ))
9+ e1 :SetCategory (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+ s .listed_names = {160004013 }
19+ function s .cost (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
20+ if chk == 0 then return Duel .IsExistingMatchingCard (Card .IsAbleToDeckOrExtraAsCost ,tp ,LOCATION_HAND ,0 ,1 ,nil ) end
21+ end
22+ function s .filter (c ,e ,sp )
23+ return ((c :IsRace (RACE_AQUA ) and c :IsAttribute (ATTRIBUTE_LIGHT ) and c :IsType (TYPE_NORMAL ) and c :IsLevel (7 )) or c :IsCode (160004013 )) and c :IsCanBeSpecialSummoned (e ,0 ,sp ,false ,false ,POS_FACEUP_DEFENSE )
24+ end
25+ function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
26+ if chk == 0 then return Duel .GetLocationCount (tp ,LOCATION_MZONE )> 0
27+ and Duel .IsExistingMatchingCard (s .filter ,tp ,LOCATION_GRAVE ,0 ,1 ,nil ,e ,tp ) end
28+ Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,nil ,1 ,tp ,LOCATION_GRAVE )
29+ end
30+ function s .thfilter (c )
31+ return c :IsRitualSpell () and c :IsSSetable ()
32+ end
33+ function s .operation (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
34+ -- Requirement
35+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TODECK )
36+ local td = Duel .SelectMatchingCard (tp ,Card .IsAbleToDeckOrExtraAsCost ,tp ,LOCATION_HAND ,0 ,1 ,1 ,nil )
37+ if Duel .SendtoDeck (td ,nil ,SEQ_DECKBOTTOM ,REASON_COST )< 1 then return end
38+ -- Effect
39+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_SPSUMMON )
40+ local g = Duel .SelectMatchingCard (tp ,s .filter ,tp ,LOCATION_GRAVE ,0 ,1 ,1 ,nil ,e ,tp )
41+ local g2 = Duel .GetMatchingGroup (aux .NecroValleyFilter (s .thfilter ),tp ,LOCATION_GRAVE ,0 ,nil )
42+ if # g > 0 and Duel .SpecialSummon (g ,0 ,tp ,tp ,false ,false ,POS_FACEUP_DEFENSE )> 0 and g :GetFirst ():IsCode (160004013 )
43+ and # g2 > 0 and Duel .SelectYesNo (tp ,aux .Stringid (id ,1 )) then
44+ Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_SET )
45+ local sg = g2 :Select (tp ,1 ,1 ,nil )
46+ Duel .SSet (tp ,sg )
47+ end
48+ end
0 commit comments