@@ -6,7 +6,7 @@ if not Link then
66 Link = aux .LinkProcedure
77end
88-- Link Summon
9- function Link .AddProcedure (c ,f ,min ,max ,specialchk ,desc )
9+ function Link .AddProcedure (c ,f ,min ,max ,specialchk ,desc , spcon )
1010 local e1 = Effect .CreateEffect (c )
1111 e1 :SetType (EFFECT_TYPE_FIELD )
1212 if desc then
@@ -18,7 +18,7 @@ function Link.AddProcedure(c,f,min,max,specialchk,desc)
1818 e1 :SetProperty (EFFECT_FLAG_CANNOT_DISABLE + EFFECT_FLAG_UNCOPYABLE + EFFECT_FLAG_IGNORE_IMMUNE )
1919 e1 :SetRange (LOCATION_EXTRA )
2020 if max == nil then max = c :GetLink () end
21- e1 :SetCondition (Link .Condition (f ,min ,max ,specialchk ))
21+ e1 :SetCondition (Link .Condition (f ,min ,max ,specialchk , spcon ))
2222 e1 :SetTarget (Link .Target (f ,min ,max ,specialchk ))
2323 e1 :SetOperation (Link .Operation (f ,min ,max ,specialchk ))
2424 e1 :SetValue (SUMMON_TYPE_LINK )
@@ -104,11 +104,14 @@ function Link.CheckGoal(tp,sg,lc,minc,f,specialchk,filt)
104104 return # sg >= minc and sg :CheckWithSumEqual (Link .GetLinkCount ,lc :GetLink (),# sg ,# sg )
105105 and (not specialchk or specialchk (sg ,lc ,SUMMON_TYPE_LINK |MATERIAL_LINK ,tp )) and Duel .GetLocationCountFromEx (tp ,tp ,sg ,lc )> 0
106106end
107- function Link .Condition (f ,minc ,maxc ,specialchk )
107+ function Link .Condition (f ,minc ,maxc ,specialchk , spcon )
108108 return function (e ,c ,must ,g ,min ,max )
109109 if c == nil then return true end
110110 if c :IsType (TYPE_PENDULUM ) and c :IsFaceup () then return false end
111111 local tp = c :GetControler ()
112+ if spcon and not spcon (e ,e ,tp ,SUMMON_TYPE_LINK ) then
113+ return false
114+ end
112115 if not g then
113116 g = Duel .GetMatchingGroup (Card .IsFaceup ,tp ,LOCATION_MZONE ,0 ,nil )
114117 end
0 commit comments