1+ -- ファイヤー・ウイップ
12-- Fire Whip
23local s ,id = GetID ()
34function s .initial_effect (c )
@@ -6,39 +7,45 @@ function s.initial_effect(c)
67 e1 :SetCategory (CATEGORY_SPECIAL_SUMMON )
78 e1 :SetType (EFFECT_TYPE_ACTIVATE )
89 e1 :SetCode (EVENT_FREE_CHAIN )
10+ e1 :SetCondition (function (e ,tp ) return Duel .IsExistingMatchingCard (s .confilter ,tp ,LOCATION_MZONE ,0 ,1 ,nil ) end )
911 e1 :SetTarget (s .target )
1012 e1 :SetOperation (s .activate )
1113 c :RegisterEffect (e1 )
1214end
13- function s .filter (c ,e ,tp ,tid )
14- return c :IsReason (REASON_DESTROY ) and c :GetTurnID ()== tid
15- and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false )
15+ local LOCATION_HDGRE = LOCATION_HAND |LOCATION_DECK |LOCATION_GRAVE |LOCATION_REMOVED |LOCATION_EXTRA
16+ function s .confilter ()
17+ return c :IsFaceup () and c :IsAttribute (ATTRIBUTE_FIRE ) and c :IsRace (RACE_FIEND )
18+ end
19+ function s .spfilter (c ,e ,tp ,tid )
20+ return c :IsReason (REASON_DESTROY ) and c :GetTurnID ()== tid and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false )
1621end
1722function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
18- local g = Duel .GetMatchingGroup (s .filter ,tp ,0x73 ,0x73 ,nil ,e ,tp ,Duel .GetTurnCount ())
1923 local tid = Duel .GetTurnCount ()
24+ local g = Duel .GetMatchingGroup (s .spfilter ,tp ,LOCATION_HDGRE ,LOCATION_HDGRE ,nil ,e ,tp ,tid )
2025 if chk == 0 then return Duel .GetLocationCount (tp ,LOCATION_MZONE )># g - 1
21- and Duel .IsExistingMatchingCard (s .filter ,tp ,0x73 , 0x73 ,1 ,nil ,e ,tp ,Duel . GetTurnCount () ) end
22- Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,g ,# g ,0 , 0 )
26+ and Duel .IsExistingMatchingCard (s .spfilter ,tp ,LOCATION_HDGRE , LOCATION_HDGRE ,1 ,nil ,e ,tp ,tid ) end
27+ Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,g ,# g ,tp , LOCATION_HDGRE )
2328end
2429function s .activate (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
25- local g = Duel .GetMatchingGroup (s . filter ,tp ,0x73 , 0x73 ,nil ,e ,tp ,Duel .GetTurnCount ())
30+ local g = Duel .GetMatchingGroup (aux . NecroValleyFilter ( s . spfilter ) ,tp ,LOCATION_HDGRE , LOCATION_HDGRE ,nil ,e ,tp ,Duel .GetTurnCount ())
2631 local ft = Duel .GetLocationCount (tp ,LOCATION_MZONE )
2732 if ft > 1 and Duel .IsPlayerAffectedByEffect (tp ,CARD_BLUEEYES_SPIRIT ) then ft = 1 end
2833 if ft <=# g - 1 then return end
2934 if # g > 0 then
30- local tc = g :GetFirst ()
31- for tc in aux .Next (g ) do
35+ for tc in g :Iter () do
3236 Duel .SpecialSummonStep (tc ,0 ,tp ,tp ,false ,false ,POS_FACEUP )
37+ -- Those monsters become FIRE Attribute
3338 local e1 = Effect .CreateEffect (e :GetHandler ())
3439 e1 :SetType (EFFECT_TYPE_SINGLE )
3540 e1 :SetProperty (EFFECT_FLAG_SINGLE_RANGE )
3641 e1 :SetCode (EFFECT_CHANGE_ATTRIBUTE )
3742 e1 :SetRange (LOCATION_MZONE )
3843 e1 :SetValue (ATTRIBUTE_FIRE )
39- e1 :SetReset (RESET_EVENT + RESETS_STANDARD )
44+ e1 :SetReset (RESET_EVENT | RESETS_STANDARD )
4045 tc :RegisterEffect (e1 )
46+ -- Their effects are negated
47+ tc :NegateEffects (e :GetHandler ())
4148 end
4249 Duel .SpecialSummonComplete ()
4350 end
44- end
51+ end
0 commit comments