@@ -9,7 +9,7 @@ function s.initial_effect(c)
9
9
e1 :SetType (EFFECT_TYPE_ACTIVATE )
10
10
e1 :SetCode (EVENT_FREE_CHAIN )
11
11
c :RegisterEffect (e1 )
12
- -- Add counter
12
+ -- Place 1 Spellstone Counter each time a monster effect is activated
13
13
local e2 = Effect .CreateEffect (c )
14
14
e2 :SetType (EFFECT_TYPE_CONTINUOUS + EFFECT_TYPE_FIELD )
15
15
e2 :SetProperty (EFFECT_FLAG_CANNOT_DISABLE )
@@ -24,28 +24,30 @@ function s.initial_effect(c)
24
24
e2 :SetRange (LOCATION_SZONE )
25
25
e2 :SetOperation (s .ctop )
26
26
c :RegisterEffect (e2 )
27
- -- negate
27
+ -- Monsters on the field cannot activate their effects
28
28
local e3 = Effect .CreateEffect (c )
29
29
e3 :SetType (EFFECT_TYPE_FIELD )
30
30
e3 :SetCode (EFFECT_CANNOT_TRIGGER )
31
31
e3 :SetRange (LOCATION_SZONE )
32
32
e3 :SetTargetRange (LOCATION_MZONE ,LOCATION_MZONE )
33
- e3 :SetCondition (s . discon )
33
+ e3 :SetCondition (function ( e ) return e : GetHandler (): GetCounter ( 0x16 ) == 2 end )
34
34
c :RegisterEffect (e3 )
35
+ -- Negate the effects of all monsters on the field
35
36
local e4 = Effect .CreateEffect (c )
36
37
e4 :SetType (EFFECT_TYPE_FIELD )
37
38
e4 :SetCode (EFFECT_DISABLE )
38
39
e4 :SetRange (LOCATION_SZONE )
39
40
e4 :SetTargetRange (LOCATION_MZONE ,LOCATION_MZONE )
40
- e4 :SetCondition (s . discon )
41
- e4 :SetTarget (s . distg )
41
+ e4 :SetCondition (function ( e ) return e : GetHandler (): GetCounter ( 0x16 ) == 2 end )
42
+ e4 :SetTarget (function ( e , c ) return c : IsType ( TYPE_EFFECT ) end )
42
43
c :RegisterEffect (e4 )
43
- -- remove counter
44
+ -- Remove all Spellstone Counters from this card during the End Phase
44
45
local e5 = Effect .CreateEffect (c )
45
46
e5 :SetType (EFFECT_TYPE_FIELD + EFFECT_TYPE_TRIGGER_F )
46
47
e5 :SetCode (EVENT_PHASE + PHASE_END )
47
48
e5 :SetRange (LOCATION_SZONE )
48
- e5 :SetCondition (s .rmcon )
49
+ e5 :SetCountLimit (1 )
50
+ e5 :SetCondition (function (e ) return e :GetHandler ():GetCounter (0x16 )> 0 end )
49
51
e5 :SetOperation (s .rmop )
50
52
c :RegisterEffect (e5 )
51
53
end
@@ -55,15 +57,6 @@ function s.ctop(e,tp,eg,ep,ev,re,r,rp)
55
57
e :GetHandler ():AddCounter (0x16 ,1 )
56
58
end
57
59
end
58
- function s .discon (e )
59
- return e :GetHandler ():GetCounter (0x16 )== 2
60
- end
61
- function s .distg (e ,c )
62
- return c :IsType (TYPE_EFFECT )
63
- end
64
- function s .rmcon (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
65
- return e :GetHandler ():GetCounter (0x16 )> 0
66
- end
67
60
function s .rmop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
68
61
e :GetHandler ():RemoveCounter (tp ,0x16 ,e :GetHandler ():GetCounter (0x16 ),REASON_EFFECT )
69
62
end
0 commit comments