1+ -- ビッグ・ヴォルケーノ
12-- Big Volcano
23local s ,id = GetID ()
34function s .initial_effect (c )
@@ -7,34 +8,35 @@ function s.initial_effect(c)
78 e1 :SetType (EFFECT_TYPE_ACTIVATE )
89 e1 :SetProperty (EFFECT_FLAG_CARD_TARGET )
910 e1 :SetCode (EVENT_FREE_CHAIN )
10- e1 :SetCost (s .cost )
11- e1 :SetTarget (s .target )
12- e1 :SetOperation (s .activate )
11+ e1 :SetCost (s .spcost )
12+ e1 :SetTarget (s .sptg )
13+ e1 :SetOperation (s .spop )
1314 c :RegisterEffect (e1 )
1415end
15- function s .cfilter (c )
16+ function s .spcostfilter (c )
1617 return c :IsRace (RACE_PYRO ) and c :IsAbleToGraveAsCost ()
1718end
18- function s .cost (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
19- if chk == 0 then return Duel .IsExistingMatchingCard (s .cfilter ,tp ,LOCATION_HAND ,0 ,1 ,nil ) end
19+ function s .spcost (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
20+ if chk == 0 then return Duel .IsExistingMatchingCard (s .spcostfilter ,tp ,LOCATION_HAND ,0 ,1 ,nil ) end
2021 Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TOGRAVE )
21- local g = Duel .SelectMatchingCard (tp ,s .cfilter ,tp ,LOCATION_HAND ,0 ,1 ,1 ,nil )
22+ local g = Duel .SelectMatchingCard (tp ,s .spcostfilter ,tp ,LOCATION_HAND ,0 ,1 ,1 ,nil )
2223 Duel .SendtoGrave (g ,REASON_COST )
2324end
24- function s .filter (c ,e ,tp )
25- return c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false ,POS_FACEUP ,1 - tp )
25+ function s .spfilter (c ,e ,tp )
26+ return c :IsRace ( RACE_PYRO ) and c : IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false ,POS_FACEUP ,1 - tp )
2627end
27- function s .target (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
28- if chkc then return chkc :IsLocation (LOCATION_GRAVE ) and chkc :IsControler (1 - tp ) and s .filter (chkc ,e ,tp ) end
29- if chk == 0 then return Duel .GetLocationCount (1 - tp ,LOCATION_MZONE ,tp )> 1
30- and Duel .IsExistingTarget (s .filter ,tp ,0 ,LOCATION_GRAVE ,2 ,nil ,e ,tp ) end
28+ function s .sptg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
29+ if chkc then return chkc :IsLocation (LOCATION_GRAVE ) and chkc :IsControler (1 - tp ) and s .spfilter (chkc ,e ,tp ) end
30+ if chk == 0 then return Duel .GetLocationCount (1 - tp ,LOCATION_MZONE ,tp )> 1 and not Duel . IsPlayerAffectedByEffect ( tp , CARD_BLUEEYES_SPIRIT )
31+ and Duel .IsExistingTarget (s .spfilter ,tp ,0 ,LOCATION_GRAVE ,2 ,nil ,e ,tp ) end
3132 Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_SPSUMMON )
32- local g = Duel .SelectTarget (tp ,s .filter ,tp ,0 ,LOCATION_GRAVE ,2 ,2 ,nil ,e ,tp )
33- Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,g ,1 ,0 ,0 )
33+ local g = Duel .SelectTarget (tp ,s .spfilter ,tp ,0 ,LOCATION_GRAVE ,2 ,2 ,nil ,e ,tp )
34+ Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,g ,2 ,0 ,0 )
3435end
35- function s .activate (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
36+ function s .spop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
37+ if Duel .IsPlayerAffectedByEffect (tp ,CARD_BLUEEYES_SPIRIT ) or Duel .GetLocationCount (1 - tp ,LOCATION_MZONE ,tp )< 2 then return end
3638 local tg = Duel .GetTargetCards (e )
3739 if # tg > 1 then
3840 Duel .SpecialSummon (tg ,0 ,1 - tp ,1 - tp ,false ,false ,POS_FACEUP )
3941 end
40- end
42+ end
0 commit comments