1+ -- D-プレッシャー
12-- D - Pressure
2- -- fixed by MLD
33local s ,id = GetID ()
44function s .initial_effect (c )
55 local e1 = Effect .CreateEffect (c )
6+ e1 :SetCategory (CATEGORY_SPECIAL_SUMMON )
67 e1 :SetType (EFFECT_TYPE_ACTIVATE )
7- e1 :SetCode (EVENT_FREE_CHAIN )
88 e1 :SetProperty (EFFECT_FLAG_CARD_TARGET )
9- e1 :SetTarget (s .tg )
10- e1 :SetOperation (s .op )
9+ e1 :SetCode (EVENT_FREE_CHAIN )
10+ e1 :SetTarget (s .sptg )
11+ e1 :SetOperation (s .spop )
1112 c :RegisterEffect (e1 )
1213 aux .GlobalCheck (s ,function ()
1314 local ge1 = Effect .CreateEffect (c )
@@ -18,28 +19,28 @@ function s.initial_effect(c)
1819 end )
1920end
2021function s .checkop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
21- local tc = eg :GetFirst ( )
22- while tc do
23- if tc :GetFlagEffect (id )== 0 then
24- tc :RegisterFlagEffect (id ,RESET_EVENT + RESETS_STANDARD + RESET_PHASE + PHASE_END ,0 ,1 )
22+ local g = eg :Filter ( Card . IsSummonPlayer , nil , tp )
23+ for tc in g : Iter () do
24+ if not tc :HasFlagEffect (id ) then
25+ tc :RegisterFlagEffect (id ,RESETS_STANDARD_PHASE_END ,0 ,1 )
2526 end
26- tc = eg :GetNext ()
2727 end
2828end
29- function s .filter (c ,e ,tp )
30- return c :IsFaceup () and c :IsSetCard (SET_DESTINY_HERO ) and c :GetFlagEffect (id )> 0
29+ function s .sumtgfilter (c ,e ,tp )
30+ return c :IsFaceup () and c :IsSetCard (SET_DESTINY_HERO ) and c :HasFlagEffect (id )
3131 and Duel .IsExistingMatchingCard (s .spfilter ,tp ,LOCATION_HAND ,0 ,1 ,nil ,c :GetAttack (),e ,tp )
3232end
3333function s .spfilter (c ,atk ,e ,tp )
34- return c :IsSetCard (SET_DESTINY_HERO ) and c :GetAttack () <= atk and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false )
34+ return c :IsSetCard (SET_DESTINY_HERO ) and c :IsAttackBelow ( atk ) and c :IsCanBeSpecialSummoned (e ,0 ,tp ,false ,false )
3535end
36- function s .tg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
37- if chkc then return chkc :IsLocation (LOCATION_MZONE ) and chkc :IsControler (tp ) and s .filter (chkc ,e ,tp ) end
38- if chk == 0 then return Duel .IsExistingTarget (s .filter ,tp ,LOCATION_MZONE ,0 ,1 ,nil ,e ,tp ) end
36+ function s .sptg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk ,chkc )
37+ if chkc then return chkc :IsLocation (LOCATION_MZONE ) and chkc :IsControler (tp ) and s .sumtgfilter (chkc ,e ,tp ) end
38+ if chk == 0 then return Duel .IsExistingTarget (s .sumtgfilter ,tp ,LOCATION_MZONE ,0 ,1 ,nil ,e ,tp ) end
3939 Duel .Hint (HINT_SELECTMSG ,tp ,HINTMSG_TARGET )
40- Duel .SelectTarget (tp ,s .filter ,tp ,LOCATION_MZONE ,0 ,1 ,1 ,nil ,e ,tp )
40+ Duel .SelectTarget (tp ,s .sumtgfilter ,tp ,LOCATION_MZONE ,0 ,1 ,1 ,nil ,e ,tp )
41+ Duel .SetOperationInfo (0 ,CATEGORY_SPECIAL_SUMMON ,nil ,1 ,tp ,LOCATION_HAND )
4142end
42- function s .op (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
43+ function s .spop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
4344 if Duel .GetLocationCount (tp ,LOCATION_MZONE )<= 0 then return end
4445 local tc = Duel .GetFirstTarget ()
4546 if not tc or not tc :IsRelateToEffect (e ) or tc :IsFacedown () then return end
@@ -48,4 +49,4 @@ function s.op(e,tp,eg,ep,ev,re,r,rp)
4849 if # sg > 0 then
4950 Duel .SpecialSummon (sg ,0 ,tp ,tp ,false ,false ,POS_FACEUP )
5051 end
51- end
52+ end
0 commit comments