1- -- 人造人間-サイコ・ロード
1+ -- 人造人間-サイコ・ロード (Anime)
2+ -- Jinzo - Lord (Anime)
23local s ,id = GetID ()
34function s .initial_effect (c )
45 c :EnableReviveLimit ()
5- -- special summon
6+ c :AddMustBeSpecialSummoned ()
7+ -- Special Summon this card by sending 1 face-up "Jinzo" you control to the Graveyard
68 local e2 = Effect .CreateEffect (c )
79 e2 :SetType (EFFECT_TYPE_FIELD )
810 e2 :SetCode (EFFECT_SPSUMMON_PROC )
911 e2 :SetProperty (EFFECT_FLAG_UNCOPYABLE )
1012 e2 :SetRange (LOCATION_HAND )
11- e2 :SetCondition (s .spcon )
12- e2 :SetTarget (s .sptg )
13- e2 :SetOperation (s .spop )
13+ e2 :SetCondition (s .hspcon )
14+ e2 :SetTarget (s .hsptg )
15+ e2 :SetOperation (s .hspop )
1416 c :RegisterEffect (e2 )
15- -- cannot trigger
16- local e3 = Effect .CreateEffect (c )
17- e3 :SetType (EFFECT_TYPE_FIELD )
18- e3 :SetCode (EFFECT_CANNOT_TRIGGER )
19- e3 :SetProperty (EFFECT_FLAG_SET_AVAILABLE )
20- e3 :SetRange (LOCATION_MZONE )
21- e3 :SetTargetRange (0xa ,0xa )
22- e3 :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
23- c :RegisterEffect (e3 )
24- -- disable
17+ -- Trap Cards cannot be activated and the effects of all Trap Cards on the field are negated.
18+ local e3a = Effect .CreateEffect (c )
19+ e3a :SetType (EFFECT_TYPE_FIELD )
20+ e3a :SetCode (EFFECT_CANNOT_TRIGGER )
21+ e3a :SetProperty (EFFECT_FLAG_SET_AVAILABLE )
22+ e3a :SetRange (LOCATION_MZONE )
23+ e3a :SetTargetRange (LOCATION_ONFIELD ,LOCATION_ONFIELD )
24+ e3a :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
25+ c :RegisterEffect (e3a )
26+ -- Negate Trap Effects on the field
27+ local e3b = Effect .CreateEffect (c )
28+ e3b :SetType (EFFECT_TYPE_FIELD )
29+ e3b :SetCode (EFFECT_DISABLE )
30+ e3b :SetRange (LOCATION_MZONE )
31+ e3b :SetTargetRange (LOCATION_SZONE ,LOCATION_SZONE )
32+ e3b :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
33+ c :RegisterEffect (e3b )
34+ local e3c = Effect .CreateEffect (c )
35+ e3c :SetType (EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS )
36+ e3c :SetCode (EVENT_CHAIN_SOLVING )
37+ e3c :SetRange (LOCATION_MZONE )
38+ e3c :SetOperation (s .disop )
39+ c :RegisterEffect (e3c )
40+ -- Negate Trap Monsters and their effects
41+ local e3d = Effect .CreateEffect (c )
42+ e3d :SetType (EFFECT_TYPE_FIELD )
43+ e3d :SetCode (EFFECT_DISABLE_TRAPMONSTER )
44+ e3d :SetRange (LOCATION_MZONE )
45+ e3d :SetTargetRange (LOCATION_MZONE ,LOCATION_MZONE )
46+ e3d :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
47+ c :RegisterEffect (e3d )
48+ -- Once per turn: You can destroy as many face-up Traps on the field as possible, and if you do, inflict 300 damage to your opponent for each card destroyed.
2549 local e4 = Effect .CreateEffect (c )
26- e4 :SetType (EFFECT_TYPE_FIELD )
27- e4 :SetCode (EFFECT_DISABLE )
50+ e4 :SetDescription (aux .Stringid (id ,0 ))
51+ e4 :SetCategory (CATEGORY_DESTROY + CATEGORY_DAMAGE )
52+ e4 :SetType (EFFECT_TYPE_IGNITION )
2853 e4 :SetRange (LOCATION_MZONE )
29- e4 :SetTargetRange (LOCATION_SZONE ,LOCATION_SZONE )
30- e4 :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
54+ e4 :SetCountLimit (1 )
55+ e4 :SetTarget (s .destg )
56+ e4 :SetOperation (s .desop )
3157 c :RegisterEffect (e4 )
32- -- disable effect
33- local e5 = Effect .CreateEffect (c )
34- e5 :SetType (EFFECT_TYPE_FIELD + EFFECT_TYPE_CONTINUOUS )
35- e5 :SetCode (EVENT_CHAIN_SOLVING )
36- e5 :SetRange (LOCATION_MZONE )
37- e5 :SetOperation (s .disop )
38- c :RegisterEffect (e5 )
39- -- disable trap monster
40- local e6 = Effect .CreateEffect (c )
41- e6 :SetType (EFFECT_TYPE_FIELD )
42- e6 :SetCode (EFFECT_DISABLE_TRAPMONSTER )
43- e6 :SetRange (LOCATION_MZONE )
44- e6 :SetTargetRange (LOCATION_MZONE ,LOCATION_MZONE )
45- e6 :SetTarget (aux .TargetBoolFunction (Card .IsTrap ))
46- c :RegisterEffect (e6 )
47- -- destroy
48- local e7 = Effect .CreateEffect (c )
49- e7 :SetDescription (aux .Stringid (35803249 ,0 ))
50- e7 :SetCategory (CATEGORY_DESTROY + CATEGORY_DAMAGE )
51- e7 :SetType (EFFECT_TYPE_IGNITION )
52- e7 :SetRange (LOCATION_MZONE )
53- e7 :SetCountLimit (1 )
54- e7 :SetTarget (s .destg )
55- e7 :SetOperation (s .desop )
56- c :RegisterEffect (e7 )
57- end
58- s .listed_names = {77585513 }
59- function s .disop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
60- local tl = Duel .GetChainInfo (ev ,CHAININFO_TRIGGERING_LOCATION )
61- if tl == LOCATION_SZONE and re :IsActiveType (TYPE_TRAP ) then
62- Duel .NegateEffect (ev )
63- end
58+ -- Once per turn: You can look at all cards in your opponent's hand and Spell & Trap Card Zones, and if there are any Trap Cards among them, you can destroy those Trap Cards. Inflict 300 damage to your opponent for each card destroyed by this effect.
59+ local e4 = Effect .CreateEffect (c )
60+ e4 :SetDescription (aux .Stringid (35803249 ,0 ))
61+ e4 :SetCategory (CATEGORY_DESTROY + CATEGORY_DAMAGE )
62+ e4 :SetType (EFFECT_TYPE_IGNITION )
63+ e4 :SetRange (LOCATION_MZONE )
64+ e4 :SetCountLimit (1 )
65+ e4 :SetTarget (s .destg )
66+ e4 :SetOperation (s .desop )
67+ c :RegisterEffect (e4 )
68+ -- Double Snare validity check
69+ aux .DoubleSnareValidity (c ,LOCATION_MZONE )
6470end
65- function s .spfilter (c ,tp )
66- return c :IsFaceup () and c :IsCode (77585513 ) and c :IsAbleToGraveAsCost ()
71+ s .listed_names = {CARD_JINZO }
72+ function s .hspfilter (c )
73+ return c :IsFaceup () and c :IsCode (CARD_JINZO ) and c :IsAbleToGraveAsCost ()
6774end
68- function s .spcon (e ,c )
75+ function s .hspcon (e ,c )
6976 if c == nil then return true end
7077 local tp = c :GetControler ()
71- local ft = Duel .GetLocationCount (tp ,LOCATION_MZONE )
72- local rg = Duel .GetMatchingGroup (s .spfilter ,tp ,LOCATION_MZONE ,0 ,nil )
73- return ft >- 1 and # rg > 0 and aux .SelectUnselectGroup (rg ,e ,tp ,1 ,1 ,nil ,0 )
78+ local rg = Duel .GetMatchingGroup (s .hspfilter ,tp ,LOCATION_MZONE ,0 ,nil )
79+ return # rg > 0 and aux .SelectUnselectGroup (rg ,e ,tp ,1 ,1 ,aux .ChkfMMZ (1 ),0 )
7480end
75- function s .sptg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,c )
81+ function s .hsptg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,c )
7682 local c = e :GetHandler ()
7783 local g = nil
78- local rg = Duel .GetMatchingGroup (s .spfilter ,tp ,LOCATION_MZONE ,0 ,nil )
79- local g = aux .SelectUnselectGroup (rg ,e ,tp ,1 ,1 ,nil ,1 ,tp ,HINTMSG_TOGRAVE ,nil ,nil ,true )
84+ local rg = Duel .GetMatchingGroup (s .hspfilter ,tp ,LOCATION_MZONE ,0 ,nil )
85+ local g = aux .SelectUnselectGroup (rg ,e ,tp ,1 ,1 ,aux . ChkfMMZ ( 1 ) ,1 ,tp ,HINTMSG_TOGRAVE ,nil ,nil ,true )
8086 if # g > 0 then
8187 g :KeepAlive ()
8288 e :SetLabelObject (g )
8389 return true
8490 end
8591 return false
8692end
87- function s .spop (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,c )
93+ function s .hspop (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,c )
8894 local g = e :GetLabelObject ()
8995 if not g then return end
9096 Duel .SendtoGrave (g ,REASON_COST )
9197 g :DeleteGroup ()
9298end
99+ function s .disop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
100+ local tl = Duel .GetChainInfo (ev ,CHAININFO_TRIGGERING_LOCATION )
101+ if tl == LOCATION_SZONE and re :IsTrapEffect () then
102+ Duel .NegateEffect (ev )
103+ end
104+ end
93105function s .destg (e ,tp ,eg ,ep ,ev ,re ,r ,rp ,chk )
94106 if chk == 0 then return Duel .IsExistingMatchingCard (aux .TRUE ,tp ,0 ,LOCATION_SZONE |LOCATION_HAND ,1 ,nil ) end
95107 local sg = Duel .GetMatchingGroup (Card .IsTrap ,tp ,0 ,LOCATION_SZONE |LOCATION_HAND ,nil )
96108 Duel .SetOperationInfo (0 ,CATEGORY_DESTROY ,sg ,# sg ,0 ,0 )
97109 Duel .SetOperationInfo (0 ,CATEGORY_DAMAGE ,nil ,0 ,1 - tp ,# sg * 300 )
98110end
99111function s .desop (e ,tp ,eg ,ep ,ev ,re ,r ,rp )
100- local g1 = Duel .GetFieldGroup (tp ,0 ,LOCATION_HAND )
101- local g2 = Duel .GetMatchingGroup (Card .IsFacedown ,tp ,0 ,LOCATION_SZONE ,nil )
102- g1 :Merge (g2 )
103- Duel .ConfirmCards (tp ,g1 )
112+ local hg = Duel .GetFieldGroup (tp ,0 ,LOCATION_HAND )
113+ local sg = Duel .GetMatchingGroup (Card .IsFacedown ,tp ,0 ,LOCATION_SZONE ,nil )
114+ hg :Merge (sg )
115+ Duel .ConfirmCards (tp ,hg )
104116 Duel .ShuffleHand (1 - tp )
105- local sg = Duel . GetMatchingGroup (Card .IsTrap , tp , 0 , LOCATION_SZONE | LOCATION_HAND ,nil )
106- local ct = Duel .Destroy (sg ,REASON_EFFECT )
117+ local dg = hg : Filter (Card .IsTrap ,nil )
118+ local ct = Duel .Destroy (dg ,REASON_EFFECT )
107119 Duel .Damage (1 - tp ,ct * 300 ,REASON_EFFECT )
108- end
120+ end
0 commit comments