Commit 4f813b20 authored by Huangnan's avatar Huangnan

update 1

parent 71f768eb
Pipeline #35597 canceled with stage
in 9 seconds
#created by ...
#main
10221062
10221071
10221081
11451711
11451712
11451713
11451714
11451715
11451716
11451717
11451718
11451719
11600022
11600209
12400132
12400133
12400134
12400136
12400137
12400138
12400139
12400140
12400141
12400142
12866805
12866880
13700516
15200020
16400495
16400510
16400511
16401135
16401136
16401140
16401141
16401160
16401161
16401165
16401166
18030401
18030402
18030403
18030404
18030405
#extra
10221025
11451835
11601400
11601401
11601402
11601403
11601404
11601405
11601406
11601407
11601408
12400135
12400143
12866780
13700041
!side
13700049
15200010
15200035
15200040
15200045
15200050
15200055
16400375
16400530
16400531
16400565
16400566
16400735
16400740
16401145
#created by ...
#main
18700200
18700820
18700860
18700866
18700882
18700906
18700912
18700915
18700918
18700921
18700924
18700927
18700931
18700940
18700943
18700947
18700952
18700955
18700958
21170000
21170001
21170002
21170003
21170004
21170005
21170006
21170007
21170008
21170009
21185865
21185869
21185875
21185877
21185880
21185886
21185888
21185891
21185892
21185893
22600250
22600251
22600260
22600261
22600262
#extra
16401146
16401150
16401151
16401155
16401156
17472950
18030406
18700165
18700214
18700781
18700798
18700909
18700929
18700933
18700935
!side
18700949
21170010
21170015
21170020
21170025
21170030
21170035
21170040
21170045
21185860
21185862
21185868
21185870
21185884
21185895
#created by ...
#main
22600263
22600264
22600265
22600266
22600267
22600268
22600269
22600270
22600271
23100152
23100153
23100156
23100158
23100159
23100160
28100070
28100090
31750001
31750005
31750009
31750017
31750021
31750061
31750065
31750073
31750077
31750081
31750089
31750097
31750101
31750105
31750121
31750125
31750129
31750141
31799985
31799990
31799995
36700300
36700302
36700304
36700306
36700308
36700310
#extra
23100154
23100155
23100157
23100161
23100162
24001278
28100075
28100080
28100085
31710087
31710100
31750029
31750041
31750045
31750049
!side
31750117
36700312
36700313
36700315
36700317
36700318
36700320
36700321
36700322
36700324
36700326
36700327
36700328
36700329
36700330
#created by ...
#main
36700331
36700332
36700333
36700335
36700336
36700340
36700341
36700349
37200036
47370207
52301000
52301005
52301010
52301015
52301020
52301025
52301030
52301035
52301040
52301045
52301050
52301055
52301060
52301065
52301070
52302000
52302005
52302010
52302015
52302020
52302025
52303000
52303001
52303002
52303003
52303004
52303005
52303011
52303012
52303013
52303014
52303015
52303016
52303017
#extra
36700338
36700342
36700344
36700346
36700348
36700350
36700352
36700356
36700357
52302030
52302035
52302040
52302045
52302050
52302055
!side
52303006
52303007
52303008
52303009
52303010
52303018
52309015
60157001
60158001
60158002
60158003
60158101
60158102
60158103
60158104
#created by ...
#main
60158201
60158209
60158210
60158211
60158212
60158213
60158214
60158215
60158216
60159953
60159954
60159955
60159957
61200000
61200001
61200002
61200003
61200004
61200005
61200006
61200007
61200009
61200010
61200012
61200102
61200103
61200104
61200110
61200202
61200205
61200207
61200305
61200306
61200310
70011111
70011112
70011113
70011114
70011115
70011119
70011121
70011122
70011124
70011125
#extra
60159956
61200011
61200100
61200101
61200105
61200106
61200201
61200203
61200401
70011116
70011117
70011118
70011120
70011123
70011126
!side
70011127
70011128
70011129
70011130
75011003
75011008
75011019
75011022
75011040
75011043
75011044
75011046
75011048
75011050
75011052
#created by ...
#main
75027001
75027002
75027004
75027006
75027008
75027010
75027018
75027019
75027020
75027023
75027025
75027027
79100690
79100700
79100710
89478001
89478004
89478007
89478021
89478031
89478071
89478081
89478091
89478111
89478131
89478151
89478161
89478171
89478211
89478241
89478251
89478261
93050000
93050001
93050002
93050003
93050004
93050005
93050006
93050007
93050008
93050010
95020001
95020002
#extra
75027012
75027014
75027016
81902059
81902109
81902115
81902118
81902119
81902120
81902121
81902123
81902130
81902131
81902602
81902612
!side
89478011
89478041
89478051
89478061
89478101
89478106
89478121
89478141
89478181
89478191
89478201
93050009
95020003
95020004
95020005
#created by ...
#main
95020006
95020007
95020008
95020009
95020010
95020011
95020012
95020013
95020014
96071047
96071051
96071054
96071058
96071061
96071064
96071066
96071069
96071072
96071075
96071078
96071081
96071084
96071171
96071172
96071173
96071176
96071179
96071180
96071182
96071184
96071186
96071196
96071198
96071204
96071211
99603001
99603002
99603003
99603004
99603005
99603006
99603007
99603008
99603009
#extra
96071187
96071189
96071192
96071194
96071199
96071201
96071203
96071206
96071208
96071210
96071212
96071214
99603017
99603080
99603081
!side
99603010
99603011
99603012
99603013
99603014
99603015
99603016
99603018
99603019
99603020
99603021
99603022
99603023
99603024
99603025
#created by ...
#main
5012619
5012682
5012683
5012685
10221043
10221091
10221101
11600052
11600053
11600054
11600055
11600056
11600058
11600061
11600066
11600074
11600076
11600080
11600091
11600092
11600093
11600094
11600095
11600096
12400136
12400140
12835116
12835117
12835119
16104403
16110018
16300080
16348099
16349061
16349063
16400225
16400230
16400235
16400240
16400245
16400250
16400255
16400260
16400265
#extra
5012612
5012627
5012636
5012684
10220075
10221035
10221045
11600051
11600062
11600063
11600064
11600065
11600067
11600068
11600070
!side
11600073
11600075
16300005
16310045
16310050
16310055
16310056
16348160
16349310
16369101
16369102
16369103
16400270
16400275
16400280
#created by ...
#main
16400285
16400290
16400295
16400300
16400305
16400395
16400490
16401195
16401200
16401205
16401210
16401215
16401220
16401225
16401230
18030501
18030502
18030503
18030504
18030511
18030601
18030609
18700785
18700968
18700971
18700974
18700977
18700980
18700983
18700986
18701004
18701013
18701016
20000450
20000451
20000452
20000453
20000454
20000455
20000456
20000457
20000458
20000459
20000460
#extra
16400340
16401170
16401175
16401180
16401185
16401190
16401235
16401240
18030505
18030506
18030507
18030508
18030509
18030510
18030602
!side
18030603
18030604
18030605
18030606
18030607
18030608
18700965
18700989
18700992
18700995
18700998
18701001
18701006
18701019
20000461
#created by ...
#main
20000462
20000463
20000464
20000465
22134500
22134505
22134510
22134515
23410101
23410102
23410103
23410105
23410107
23410108
30700036
31750081
31750101
31750133
31750157
31750173
31750177
33201555
33201556
33201557
33401001
33401002
33401003
33401004
33401005
33401052
33401054
33401055
33401057
33401058
33401302
33401303
33401402
33401403
33401404
33401405
33401406
33401407
33401408
33401409
#extra
23410104
23410106
23410109
30700058
31750153
31750165
33201550
33401006
33401007
33401008
33401009
33401010
33401035
33401401
33401410
!side
33401411
37000031
37200001
37200004
37200008
37200010
37200013
37200016
37200019
37200022
37200025
37200027
37200030
37200033
37200036
#created by ...
#main
37200101
37900726
47370212
47370213
47370217
47370601
47370602
47370603
47370604
47370609
47370610
47370611
47370612
47370613
47370614
52301030
52301035
52301040
52301045
52301050
52301055
52301060
52301065
52301075
52310001
52310002
52310003
52310004
52310005
52310006
52310007
52310009
52310010
52310011
52310012
52310013
52310014
52310015
52310016
52320001
52320002
52320003
52320004
52320005
#extra
47370214
47370215
47370216
47370605
47370606
47370607
47370608
52301080
52301085
52310008
52320008
52700740
72001025
72001030
75027012
!side
52320006
52320007
52320009
52320010
52320011
52320012
52700739
52700745
52700746
52798055
60010271
60010277
72001000
72001005
72001010
#created by ...
#main
72001015
72001020
72001035
72001040
72001045
72001050
75027001
75027002
75027004
75027006
75027008
75027010
75027018
75027019
75027020
75027023
75027025
75027027
75027029
75027031
75027036
75030001
75030002
75030003
75030008
75030009
75030010
75030011
75030020
75030023
75030024
75030028
75030031
75030033
75030035
75030040
75030042
75030047
75030049
75030052
75030054
75030055
79100750
79100760
#extra
75027014
75027016
75027033
75030004
75030005
75030012
75030022
75030025
75030026
75030029
75030030
75030037
75030043
75030050
79100620
!side
79100770
79100780
79100790
79100800
79100810
79100820
79101000
79101010
79101020
81901013
81902043
81902081
81902115
81902130
81902602
#created by ...
#main
81903002
82000738
82000742
82000745
82000750
82000752
82000754
82000756
82000758
82000760
82000762
82000766
82000768
82000770
82000772
82000774
82000777
82000779
82000781
82000783
82000785
82000888
88800128
88800131
88800134
88800137
88800143
88800146
88800149
88800152
88800155
88800158
90104000
90104001
90104002
90104003
90104004
90104008
90104009
92600200
92600205
92600210
92600215
92600220
#extra
81903000
81907116
81907118
82000740
82000765
90104005
90104006
90104007
99601005
99601006
99601007
99601008
99601009
99601010
99601014
!side
92600225
92600230
92600235
92600240
92600245
92600250
93050040
98639502
99601000
99601001
99601002
99601003
99601004
99601011
99601012
#created by ...
#main
99603026
99603027
99603028
99603029
99603030
99603031
99603032
99603033
99603034
99603035
99603036
99603037
99603038
99603039
99603040
99603041
99603042
99603043
99603044
99603045
99603046
99603047
99603048
99603049
99603050
99603051
99603052
99603053
99603054
99603055
99603056
99603057
99603058
99603059
99603060
99601013
99603001
99603002
99603003
99603004
99603005
99603006
99603007
99603008
99603009
99603010
99603011
99603012
99603013
99603014
99603015
99603016
99603018
99603019
99603061
99603062
99603063
......@@ -44,8 +28,26 @@
99603067
99603068
99603069
99603070
99603071
99603072
99603073
99603074
99603075
99603076
99603077
99603078
99603079
99603097
99603098
99603099
#extra
99601015
99601016
99603017
99603080
99603081
99603082
99603083
99603084
......@@ -56,24 +58,11 @@
99603089
99603090
99603091
!side
99603092
99603093
99603094
99603095
99603096
!side
99603070
99603071
99603072
99603073
99603074
99603075
99603076
99603077
99603078
99603079
99603097
99603098
99603099
99603100
No preview for this file type
......@@ -126,12 +126,13 @@
05012732 1 --息吹风暴
05012738 1 --无信妄妖拉尔戈
05012804 0 --雾雨的魔法使
05013115 1 --无界空宇
05013115 0 --无界空宇
05013300 0 --宇智波斑
05013411 0 --翻车鱼
05012277 0 --王权守护者
05013110 0 --小动物小冲撞!
05012812 1 --VEGA
05013355 0 --蓝染惣右介
#093
09300004 0 --对折相叠
......@@ -181,9 +182,8 @@
10200212 0 --机板佣兵
10200855 0 --天地侵略者·贝尔弗特
10200866 1 --机甲天使
10220015 2 --SAO 神圣剑 希兹克利夫
10220021 1 --SAO 锻造师 莉兹贝特
10220045 0 --骸骨猎杀者
10220045 1 --骸骨猎杀者
10220062 1 --SAO S级食材 杂烩兔肉
10220071 1 --SAO 吟游歌姬 尤娜
10222013 1 --GGO 徘徊于内心的恐惧
......@@ -254,6 +254,7 @@
11451902 1 --迷托邦夜守 迷昔
11451906 1 --迷托邦的昨日再演
11451921 0 --龙宫城的尖兵 巡海夜叉
11451835 1 --异绛胧烈刃·核磁频谱
#116
11600011 0 --蒙德 丽莎
11600024 1 --荧
......@@ -307,6 +308,14 @@
11601402 0 --HY.16 虚无星神·IX
11601404 0 --HY.19 欢愉星神·阿哈
11601407 0 --HY.22 同谐星神·希佩
11600052 0 --璃月 行秋
11600065 0 --璃月 闲云
11600080 0 --璃月-契约之都
11600092 0 --一切开始的契约
11600095 0 --赌之契约
11600096 0 --商之契约
11600066 1 --璃月 凝光
12400143 0 --葬空死团:“裂空骑神” 阿凡伽达·审判
#118
11800003 1 --『创造物』 绚烂
11800014 1 --『神秘守门人』丝碧涅
......@@ -417,7 +426,6 @@
13700047 1 --绝对公正之蜻蜓队长
13700514 0 --玛丽小姐
13700516 0 --地底的安乐椅侦探
13700047 0 --绝对公正之蜻蜓队长
#141
14140010 1 --祝祭初学
14140011 0 --呜喵呜喵·啪啪啪
......@@ -596,6 +604,7 @@
16104437 1 --
16104438 1 --
16104414 0 --天界律 乌拉诺斯
16101141 0 --元素的大魔术师 帕拉塞尔苏斯
#162
16200001 0 --单推人宣言
16200008 0 --单推单推单推人
......@@ -663,6 +672,7 @@
16400130 1 --Knightmare-红莲
16400131 1 --Knightmare-兰斯洛特
16400370 1 --光之战士 布鲁 跃水
16401235 0 --Servant-高文
# 光之战士系列
16400310 1 --光之战士 欧布 原生
16400272 1 --光之战士 杰克
......@@ -740,7 +750,7 @@
17242205 0 --基金会 编号2950
17243001 1 --赤月之龙
17243003 1 --贪暴之蜥
17243005 1 --孤寂之灵
17243005 0 --孤寂之灵
17243006 1 --愤火之龙
17243009 0 --孤注一掷的勇者
17243013 0 --核动巨鲨
......@@ -808,6 +818,7 @@
18017506 1 --小蓝
18017507 1 --大蓝
18017509 1 --镜子小蓝
18030608 1 --剑舞姬百合零式
#185
18500001 1 --炸弹猫
18586008 1 --绫濑亚梦·潮汐
......@@ -842,6 +853,9 @@
18700556 0 --封藏此刻
18700195 0 --升阶魔法-超时空巡征追猎
18700165 1 --祈星魔女 夏璃
18701019 0 --奇物-124 拜亚蜂蜜酒
18700624 0 --海中少女·姬丝缇可
18701016 1 --奇物-70 “苍星”超频扩展精灵
#190
19023163 0 --渊海·禁域
#192
......@@ -907,7 +921,6 @@
21185888 0 --惊喜小蝙蝠
21190039 2 --璐璐过年要暴富!
21185665 0 --HP 自闭宅
21185868 0 --超熊力霸王
21185893 0 --光蚀天蛾
21185895 0 --驯龟仙子
#215
......@@ -1035,6 +1048,7 @@
23410019 0 --奈何桥头
23410013 0 --孟婆
23410104 0 --蓄力·振刀
23410109 0 --迅烈如火
#240
24001266 1 --超古代战士 特利迦 石像
#241
......@@ -1486,6 +1500,8 @@
33720333 0 --不完美的莱特
33720372 0 --茧 永恒之站
33720905 1 --「■」篝
33700948 0 --Maize ~自我牺牲的树精~
33703042 1 --虚拟占卜师 狼半仙
#339
33910501 0 --蜃流使 安菲特
#351
......@@ -1565,7 +1581,7 @@
36700016 2 --泰迦光饰·钥匙
36700018 1 --泰迦火花
36700013 1 --太阳之子-泰罗
36700034 1 --极星光波手里剑
36700034 0 --极星光波手里剑
36700031 1 --泰迦光饰·钥匙·形态切换
36700239 1 --乱炖龙仔-究极龙 新星
36700242 1 --乱炖龙仔-无牙龙 黑爆裂
......@@ -1577,8 +1593,11 @@
36700342 1 --路鸣泽 火之晨曦
36700328 1 --与魔鬼的契约
36700346 1 --恺撒·加图索
36700340 0 --罪与罚
36700352 0 --路明非·七宗罪
36700322 0 --黑刃猎刀·狄克推多
#372
37200036 0 --幽境::种
37200001 0 --秘幽境::回升灵
#375
37564012 0 --元灵毁灭者·Aya Ayane
37564041 0 --阎-少女之梦·虚无的世界
......@@ -1620,6 +1639,8 @@
37900108 1 --Seto
37900109 0 --Shintaro
37900998 0 --「人神一体」·结城友奈
37900724 0 --五彩斑斓的未来
37900722 0 --五彩斑斓的世界
#391
39101001 0 --天才的宿命 白羊物语
39101031 0 --于历史中寻求稳定之结果 摩羯物语
......@@ -1680,6 +1701,11 @@
47390035 1 --绽放E.G.O::燃气捕鲸叉 亚哈
47390036 0 --魔王希斯克利夫
47390254 1 --Dieci协会南部4科 鸿璐
47370605 0 --溟誓之空
47370610 0 --溟誓宣神
47370608 0 --溟誓之亡
47370601 0 --溟誓空主 薇涅丝特拉
47370614 1 --溟誓束痕
#475
47500000 0 --大神机 伊奥丁
47530003 0 --吉姆夜巡者II
......@@ -1730,6 +1756,7 @@
50224605 1 --化学元素-氚
50224805 1 --化学元素-碳14
50223125 0 --恶之数码兽 恶魔兽
50218136 0 --风之数码兽LV9 力神比多兽
#504
50424210 1 --圆桌骑士-亚瑟王-阿尔托莉雅·潘德拉贡
50424225 1 --英灵宝具-遗世独立的理想乡-Avalon
......@@ -1791,6 +1818,15 @@
52303016 1 --命定的决斗者 阿露艾露玛
52302020 0 --惊雷之季
52302040 0 --惊雷 祚鸣
52310007 0 --赛菲莉亚 海龟兔
52310008 0 --赛菲莉亚之王
52320002 0 --生命虹吸 负重
52320006 0 --生命虹吸 精神流失
52302050 0 --轰蓄的惊雷
52310004 1 --赛菲莉亚 翼耳兔
52310011 1 --赛菲莉亚的服装店
52320003 1 --生命虹吸 潜伏钩刺
52320012 1 --生命虹吸
#527
52700103 1 --百群骑士 血腥独角仙
52700106 1 --百群骑士 格拉法
......@@ -1809,6 +1845,11 @@
52700712 1 --忍·妖 玉雪
52700715 0 --忍·兽 鹿雷
52700697 1 --鬼行大道而世人惮之 忍·鬼 猩猩童子
52700694 1 --樱花烂漫 忍·鬼 猩猩童子
52700679 1 --彼岸归还
52700721 1 --余兴之鬼 忍·鬼 仙贝
52700738 1 --忍·龙 缠
52700667 2 --忍·妖 伊佐佐王
#537
53705018 0 --超极幻海袭 丰之黄金
53707016 0 --清响 抄染扉
......@@ -1973,6 +2014,7 @@
60040033 1 --埃亚隆的主宰·贝尔弗特
60010259 0 --地煞符
60001176 0 --难寻难觅难忘挚爱
60010277 2 --永夜抄 月见草
#601
60150515 0 --幻想的第三乐章·孤寂
60150608 1 --千夜 娱乐屋
......@@ -2164,6 +2206,7 @@
65074000 0 --缘天尊
65080043 0 --失落之妖精 艾尔兰缇娅
65080044 0 --幻想之大妖精 艾尔希萝娅
65020050 0 --暮色居城 嘲弄
#657
65710050 0 --镜中幻想 白棋皇后
65710110 0 --无趣至疾 阿拉丁
......@@ -2250,6 +2293,8 @@
75010013 1 --勇敢的炭小侍
75010015 1 --胆小的炭小侍
75010017 1 --庆祝之铠
75030002 1 --苍炎之圣击 奈菲尼
75030028 2 --苍晓交辉
#756
75600029 1 --星灵守护 白羊座
75640052 0 --旅人 伊蕾娜
......@@ -2280,6 +2325,7 @@
75646611 1 --科学的原点 PAIN
75646618 1 --幻海深渊 伊瑟琳
75646854 0 --柴郡猫 雷电芽衣
75646137 0 --幻海的祈灵者
#777
77707704 0 --大罪之器 克洛克沃克人偶
77707705 0 --Vessel of Sin 祸世之剪
......@@ -2290,6 +2336,7 @@
79100280 3 --律法塔魂的愚者 米莫
79100290 0 --律法塔魂的主教 金轨
79100320 0 --律法塔魂的星之记忆 莫米儿
79100260 0 --律法塔魂的贤王 法墨特
79100490 0 --复乐园的希望
79100510 0 --铸造方尖碑
79100520 0 --爆裂星云
......@@ -2297,7 +2344,7 @@
79100240 0 --绯红编年史的高塔魂灵
79100710 1 --悖论扭曲空间
79100700 1 --落樱谛
79100400 1 --HS.1
79100820 0 --迷途罪械 行刑者 N.N.Z.J
#792
79250007 1 --异想体 小喙
79250011 1 --异想体 波迪
......@@ -2345,7 +2392,7 @@
81902119 1 --TC.118 玩弄人心的管狐 菅牧典
81902120 1 --TC.119 妖怪之山满天星 饭纲丸龙
81902121 1 --TC.120 虹光闪耀的市场 天弓千亦
81902130 0 --TC.129 悲催的廉价士兵 冷仙
81902130 1 --TC.129 悲催的廉价士兵 冷仙
81902131 1 --TC.130 连接山与海的月之公主 绵月丰姬
81903100 1 --未确认幻想少女
81905005 1 --八云友·侍 丁礼田舞&尔子田里乃
......@@ -2363,6 +2410,8 @@
81907121 1 --地心灵殿 禁闭的觉之瞳
81907125 1 --地心灵殿空无 古明地恋
81907126 2 --地心灵殿的姊妹出游
81907110 0 --地心灵殿 古明地姐妹
81902030 0 --TC.29 化而离众未成之人 易者
#820
82000040 1 --屋屋特制法属·特利
82000050 1 --屋屋特制法属·炼制储备
......@@ -2379,6 +2428,10 @@
82000708 0 --隐藏众-皮卡
82000720 0 --冲厥征伐
82000734 0 --卡丘世界·惊喜对对碰
82000777 0 --卡丘世界·屋屋
82000888 0 --特质法属·屋屋
82000785 0 --探查队·外出表演录
82000765 0 --日珥战姬艾卡
#822
82200000 1 --春日的桃雪知遇
82200002 0 --秋日的久别重遇
......@@ -2406,6 +2459,10 @@
#888
88887007 1 --数理与恶性 莫里亚蒂
88887008 1 --数理与常识 福尔摩斯
#901
90104001 1 --海滨兔游
90104001 1 --闲居兔待
90104009 1 --蛊惑谋兔
#913
91300026 1 --猎兽魔女:罗塞特
91300027 0 --猎兽魔女:阿米莉亚
......@@ -2438,6 +2495,11 @@
92600120 0 --舞台闪耀 加奈
92600115 0 --舞台闪耀 露比
92600145 0 --舞台闪耀 新B小町
92600225 0 --神选之仪
92600210 1 --神选士·盖亚
92600240 1 --神选之罪
92600200 2 --神选士·苍穹
92600250 2 --神选士·珀塞冬
#929
92900001 1 --Virtual UP-北世卿泠
92900005 0 --Virtual UP-雪奈酱
......@@ -2498,6 +2560,14 @@
98670712 1 --能力者闪避
98670713 0 --能力者根据地
98670715 1 --能力者的灵石
98609002 0 --优柔·濑名歌铃
#996
99601002 0 --青之空我 青龙形态
99601003 0 --绿之空我 天马形态
99601004 0 --紫之空我 泰坦形态
99601006 1 --青金空我 升华青龙
99601007 1 --绿金空我 升华天马
99601008 0 --紫金空我 升华泰坦
#OCG
#forbidden
......
--璃月 归终
local s,id=GetID()
function s.initial_effect(c)
--Synchro summon
aux.AddSynchroProcedure(c,nil,aux.NonTuner(nil),1)
c:EnableReviveLimit()
--remove
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_REMOVE)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetCountLimit(1,id)
e3:SetCondition(s.rmcon)
e3:SetTarget(s.rmtg)
e3:SetOperation(s.rmop)
c:RegisterEffect(e3)
--tohand
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1,id+10000)
e2:SetCondition(s.atkcon1)
e2:SetTarget(s.thtg)
e2:SetOperation(s.thop)
c:RegisterEffect(e2)
local e4=e2:Clone()
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetHintTiming(TIMING_DAMAGE_STEP,TIMING_DAMAGE_STEP+TIMING_END_PHASE)
e4:SetCondition(s.atkcon2)
c:RegisterEffect(e4)
end
function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) and Duel.GetFieldGroupCount(tp,LOCATION_MZONE,0)<=1
end
function s.rmtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,1,nil) and e:GetHandler():IsAbleToRemove() end
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,e:GetHandler(),1,0,0)
end
function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsAbleToRemove,tp,0,LOCATION_MZONE,nil)
if Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_EFFECT)~=0 then
Duel.Remove(g,POS_FACEUP,REASON_EFFECT)
end
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetCode(EFFECT_CANNOT_SPECIAL_SUMMON)
e1:SetReset(RESET_PHASE+PHASE_END)
e1:SetTargetRange(1,0)
Duel.RegisterEffect(e1,tp)
end
function s.atkcon1(e,tp,eg,ep,ev,re,r,rp)
return not Duel.IsPlayerAffectedByEffect(tp,11600080)
end
function s.atkcon2(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsPlayerAffectedByEffect(tp,11600080)
end
function s.thfilter(c)
return c:IsSetCard(0xa540) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function s.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(s.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end
function s.thop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,s.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if #g>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
end
end
\ No newline at end of file
--贸易的契约
local s,id=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--control
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_CONTROL+CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1)
e1:SetTarget(s.cttg)
e1:SetOperation(s.ctop)
c:RegisterEffect(e1)
--
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetCode(EVENT_TO_HAND)
e4:SetRange(LOCATION_SZONE)
e4:SetProperty(EFFECT_FLAG_DELAY)
e4:SetCondition(s.thcon1)
e4:SetTarget(s.thtg1)
e4:SetOperation(s.thop1)
c:RegisterEffect(e4)
--
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e5:SetCode(EVENT_TO_HAND)
e5:SetRange(LOCATION_SZONE)
e5:SetProperty(EFFECT_FLAG_DELAY)
e5:SetCondition(s.thcon2)
e5:SetTarget(s.thtg2)
e5:SetOperation(s.thop2)
c:RegisterEffect(e5)
end
function s.ctfilter(c)
local tp=c:GetControler()
return c:IsAbleToChangeControler() and Duel.GetMZoneCount(tp,c,tp,LOCATION_REASON_CONTROL)>0
end
function s.cttg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(s.ctfilter,tp,0,LOCATION_MZONE,1,nil)
and Duel.IsExistingTarget(s.ctfilter,tp,LOCATION_MZONE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g1=Duel.SelectTarget(tp,s.ctfilter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_CONTROL)
local g2=Duel.SelectTarget(tp,s.ctfilter,tp,LOCATION_MZONE,0,1,1,nil)
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g1,2,0,0)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,e:GetHandler(),1,0,0)
end
function s.ctop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS)
local a=g:GetFirst()
local b=g:GetNext()
if a:IsRelateToEffect(e) and b:IsRelateToEffect(e) then
Duel.SwapControl(a,b)
end
end
function s.cfilter1(c,tp)
return c:GetOwner()==tp and c:IsPreviousLocation(LOCATION_DECK)
end
function s.ckilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.limfilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.thcon1(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return eg:IsExists(s.cfilter1,1,nil,tp) and Duel.GetFlagEffect(tp,id)<ct and Duel.GetMatchingGroupCount(s.limfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)>2
end
function s.thtg1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.ckilter2(c,tp)
return c:GetOwner()==1-tp
end
function s.thop1(e,tp,eg,ep,ev,re,r,rp)
if eg:GetCount()>0 and Duel.SendtoHand(eg,1-tp,REASON_EFFECT)~=0 then
local hg=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND,nil)
local hg2=Duel.GetMatchingGroup(nil,tp,LOCATION_HAND,0,nil)
Duel.ConfirmCards(tp,hg)
local s1=hg:IsExists(s.ckilter2,1,nil,tp)
local s2=hg2:GetCount()>0
if not (s1 or s2) then return end
if s1 and (not s2 or Duel.SelectOption(tp,aux.Stringid(id,2),aux.Stringid(id,3))==0) then
local tg=hg:FilterSelect(tp,s.ckilter2,1,1,nil,tp)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,tp,REASON_EFFECT)
end
else
local tg=hg2:FilterSelect(tp,aux.TRUE,1,1,nil)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,1-tp,REASON_EFFECT)
local hg3=Duel.GetMatchingGroup(nil,tp,0,LOCATION_HAND,nil)
local tg2=hg3:FilterSelect(tp,s.ckilter2,1,1,nil,1-tp)
Duel.SendtoHand(tg2,tp,REASON_EFFECT)
end
end
end
end
function s.thcon2(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return eg:IsExists(s.cfilter1,1,nil,1-tp) and Duel.GetFlagEffect(1-tp,id)<ct and Duel.GetMatchingGroupCount(s.limfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)>2
end
function s.thtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.RegisterFlagEffect(1-tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.thop2(e,tp,eg,ep,ev,re,r,rp)
if eg:GetCount()>0 and Duel.SendtoHand(eg,tp,REASON_EFFECT)~=0 then
local hg=Duel.GetMatchingGroup(nil,1-tp,0,LOCATION_HAND,nil)
local hg2=Duel.GetMatchingGroup(nil,1-tp,LOCATION_HAND,0,nil)
Duel.ConfirmCards(1-tp,hg)
local s1=hg:IsExists(s.ckilter2,1,nil,1-tp)
local s2=hg2:GetCount()>0
if not (s1 or s2) then return end
if s1 and (not s2 or Duel.SelectOption(1-tp,aux.Stringid(id,2),aux.Stringid(id,3))==0) then
local tg=hg:FilterSelect(1-tp,s.ckilter2,1,1,nil,1-tp)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,1-tp,REASON_EFFECT)
end
else
local tg=hg2:FilterSelect(1-tp,aux.TRUE,1,1,nil)
if tg:GetCount()>0 then
Duel.SendtoHand(tg,1-1-tp,REASON_EFFECT)
local hg3=Duel.GetMatchingGroup(nil,1-tp,0,LOCATION_HAND,nil)
local tg2=hg3:FilterSelect(1-tp,s.ckilter2,1,1,nil,tp)
Duel.SendtoHand(tg2,1-tp,REASON_EFFECT)
end
end
end
end
--共生的契约
local s,id=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--spsummon
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_SPECIAL_SUMMON)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetRange(LOCATION_SZONE)
e4:SetCountLimit(1)
e4:SetTarget(s.target2)
e4:SetOperation(s.operation)
c:RegisterEffect(e4)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,1))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(s.spcon)
e2:SetTarget(s.sptg1)
e2:SetOperation(s.spop1)
c:RegisterEffect(e2)
local e3=e2:Clone()
e3:SetCode(EVENT_SUMMON_SUCCESS)
c:RegisterEffect(e3)
end
function s.filter(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function s.target2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_GRAVE,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
if g:GetCount()>0 and Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)~=0 and Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(s.filter,tp,0,LOCATION_GRAVE,1,nil,e,tp) then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_SPSUMMON)
local g2=Duel.SelectMatchingCard(1-tp,s.filter,1-tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SpecialSummon(g2,0,1-tp,1-tp,false,false,POS_FACEUP)
end
end
function s.ckilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.cfilter(c,tp)
return c:IsFaceup() and c:GetSummonPlayer()==1-tp
end
function s.limfilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return eg:IsExists(s.cfilter,1,nil,tp) and Duel.GetFlagEffect(tp,id)<ct and Duel.GetMatchingGroupCount(s.limfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)>2
end
function s.spfilter1(c,e,sp)
return c:IsSetCard(0xa540) and c:IsCanBeSpecialSummoned(e,0,sp,false,false)
end
function s.scfilter(c)
return c:IsSetCard(0xa540) and c:IsSynchroSummonable(nil)
end
function s.sptg1(e,tp,eg,ep,ev,re,r,rp,chk)
local s1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_HAND,0,1,nil,e,tp)
local s2=Duel.IsExistingMatchingCard(s.scfilter,tp,LOCATION_EXTRA,0,1,nil)
if chk==0 then return s1 or s2 end
if s1 then
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end
if s2 then
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.spop1(e,tp,eg,ep,ev,re,r,rp)
local s1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.spfilter1,tp,LOCATION_HAND,0,1,nil,e,tp)
local s2=Duel.IsExistingMatchingCard(s.scfilter,tp,LOCATION_EXTRA,0,1,nil)
if not (s1 or s2) then return end
if s1 and (not s2 or Duel.SelectOption(tp,aux.Stringid(id,1),aux.Stringid(id,2))==0) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.spfilter1,tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
else
local g=Duel.GetMatchingGroup(s.scfilter,tp,LOCATION_EXTRA,0,nil)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local sg=g:Select(tp,1,1,nil)
Duel.SynchroSummon(tp,sg:GetFirst(),nil)
end
end
end
\ No newline at end of file
--同死的契约
local s,id=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--effect gain
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_BOTH_BATTLE_DAMAGE)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
e2:SetRange(LOCATION_SZONE)
e2:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE)
e2:SetLabelObject(e1)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_TOGRAVE)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetRange(LOCATION_SZONE)
e3:SetCode(EVENT_CUSTOM+id)
e3:SetProperty(EFFECT_FLAG_BOTH_SIDE+EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e3:SetCondition(s.descon)
e3:SetTarget(s.destg)
e3:SetOperation(s.desop)
c:RegisterEffect(e3)
if not s.global_check then
s.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_DESTROYED)
ge1:SetCondition(s.regcon)
ge1:SetOperation(s.regop)
Duel.RegisterEffect(ge1,0)
end
end
function s.spcfilter(c,tp)
return c:IsReason(REASON_BATTLE+REASON_EFFECT)
and c:IsPreviousControler(tp) and c:IsPreviousLocation(LOCATION_ONFIELD)
end
function s.regcon(e,tp,eg,ep,ev,re,r,rp)
local v=0
if eg:IsExists(s.spcfilter,1,nil,0) then v=v+1 end
if eg:IsExists(s.spcfilter,1,nil,1) then v=v+2 end
if v==0 then return false end
e:SetLabel(({0,1,PLAYER_ALL})[v])
return true
end
function s.regop(e,tp,eg,ep,ev,re,r,rp)
Duel.RaiseEvent(eg,EVENT_CUSTOM+id,re,r,rp,ep,e:GetLabel())
end
function s.ckilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.descon(e,tp,eg,ep,ev,re,r,rp)
return ev==tp or ev==PLAYER_ALL
end
function s.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
if chkc then return chkc:IsOnField() and chkc:IsControler(1-tp) end
if chk==0 then return Duel.IsExistingTarget(nil,tp,0,LOCATION_ONFIELD,1,nil) and Duel.GetFlagEffect(tp,id)<ct and Duel.GetFlagEffect(tp,id+10000)==0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectTarget(tp,nil,tp,0,LOCATION_ONFIELD,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,g,1,0,0)
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1,0)
Duel.RegisterFlagEffect(tp,id+10000,RESET_CHAIN,0,1,0)
end
function s.desop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) then
Duel.SendtoGrave(tc,REASON_EFFECT)
end
end
function s.descon2(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return ev==tp or ev==PLAYER_ALL and Duel.GetFlagEffect(tp,id)<ct
end
\ No newline at end of file
--平等的契约
local s,id=GetID()
function s.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCondition(s.spcon)
e1:SetTarget(s.sptg)
e1:SetOperation(s.spop)
c:RegisterEffect(e1)
--change attack
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_ATTACK_ANNOUNCE)
e2:SetRange(LOCATION_GRAVE)
e2:SetCondition(s.atkcon)
e2:SetCost(aux.bfgcost)
e2:SetTarget(s.atktg)
e2:SetOperation(s.atkop)
c:RegisterEffect(e2)
end
function s.limfilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(s.limfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)>2
end
function s.filter(tc,tp)
if tc:IsFacedown() or not tc:IsCanBeSynchroMaterial() then return false end
return Duel.IsExistingMatchingCard(s.filter2,tp,LOCATION_MZONE,0,1,nil,tc,tp)
end
function s.filter2(c,mc,tp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SYNCHRO_MATERIAL)
mc:RegisterEffect(e1,true)
local mg=Group.FromCards(c,mc)
local res=Duel.IsExistingMatchingCard(s.synfilter,tp,LOCATION_EXTRA,0,1,nil,mg)
e1:Reset()
return res and c:IsFaceup() and c:IsLevelAbove(1)
end
function s.synfilter(c,mg)
return c:IsSynchroSummonable(nil,mg)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and chkc:IsControler(1-tp) and s.filter(chkc,tp) end
if chk==0 then return Duel.IsExistingTarget(s.filter,tp,0,LOCATION_MZONE,1,nil,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,s.filter,tp,0,LOCATION_MZONE,1,1,nil,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_EXTRA)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsFaceup() and tc:IsRelateToEffect(e) and not tc:IsImmuneToEffect(e) and Duel.IsExistingMatchingCard(s.filter2,tp,LOCATION_MZONE,0,1,nil,tc,tp) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
local mc=Duel.SelectMatchingCard(tp,s.filter2,tp,LOCATION_MZONE,0,1,1,nil,tc,tp)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SYNCHRO_MATERIAL)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
local mg=Group.FromCards(mc,tc)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.synfilter,tp,LOCATION_EXTRA,0,1,1,nil,mg)
local sc=g:GetFirst()
if sc then
Duel.SynchroSummon(tp,sc,nil,mg)
end
end
end
function s.atkcon(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetAttackTarget()
return tc and tc:IsFaceup() and tc:IsControler(tp) and tc:IsType(TYPE_SYNCHRO)
end
function s.atktg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetCard(Duel.GetAttackTarget())
end
function s.filter3(c,e,tp,tc)
local rlv=c:GetLevel()-tc:GetLevel()
return rlv>0 and c:IsType(TYPE_SYNCHRO)
and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,tc,c)>0
and Duel.IsExistingMatchingCard(s.filter4,tp,LOCATION_GRAVE,0,1,nil,tp,rlv)
end
function s.filter4(c,tp,lv)
local rlv=lv-c:GetLevel()
return rlv==0 and c:IsType(TYPE_TUNER) and c:IsAbleToRemove()
end
function s.atkop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetAttackTarget()
if Duel.NegateAttack() and tc:IsRelateToEffect(e)
and tc:IsAbleToRemove() and not tc:IsImmuneToEffect(e)
and aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL)
and Duel.IsExistingMatchingCard(s.filter3,tp,LOCATION_EXTRA,0,1,nil,e,tp,tc)
and Duel.SelectYesNo(tp,aux.Stringid(id,0)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,s.filter3,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc)
local lv=g1:GetFirst():GetLevel()-tc:GetLevel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g2=Duel.SelectMatchingCard(tp,s.filter4,tp,LOCATION_GRAVE,0,1,1,nil,tp,lv)
g2:AddCard(tc)
Duel.Remove(g2,POS_FACEUP,REASON_EFFECT)
g1:GetFirst():SetMaterial(nil)
Duel.SpecialSummon(g1,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)
g1:GetFirst():CompleteProcedure()
end
end
--战争的契约
local s,id=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DRAW+CATEGORY_DISABLE)
e2:SetType(EFFECT_TYPE_QUICK_F)
e2:SetCode(EVENT_CHAINING)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_BOTH_SIDE+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e2:SetCondition(s.negcon)
e2:SetTarget(s.negtg)
e2:SetOperation(s.negop)
c:RegisterEffect(e2)
--
local e5=Effect.CreateEffect(c)
e5:SetCategory(CATEGORY_DRAW+CATEGORY_DISABLE)
e5:SetType(EFFECT_TYPE_QUICK_F)
e5:SetCode(EVENT_CHAINING)
e5:SetRange(LOCATION_SZONE)
e5:SetProperty(EFFECT_FLAG_BOTH_SIDE+EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e5:SetCondition(s.negcon2)
e5:SetTarget(s.negtg2)
e5:SetOperation(s.negop)
c:RegisterEffect(e5)
--draw
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_BATTLE_DESTROYED)
e3:SetRange(LOCATION_SZONE)
e3:SetTarget(s.drtg)
e3:SetOperation(s.drop)
c:RegisterEffect(e3)
--special summon
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_RELEASE)
e4:SetType(EFFECT_TYPE_QUICK_O)
e4:SetCode(EVENT_FREE_CHAIN)
e4:SetCountLimit(1)
e4:SetRange(LOCATION_SZONE)
e4:SetCondition(s.spcon)
e4:SetCost(s.spcost)
e4:SetTarget(s.sptg)
e4:SetOperation(s.spop)
c:RegisterEffect(e4)
end
function s.ckilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.negcon(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsChainNegatable(ev) then return false end
if not re:IsActiveType(TYPE_MONSTER) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
local fx = function(c)return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_MONSTER) end
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
local ex,g,gc,dp,dv=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
return Duel.GetFlagEffect(tp,id)<ct and rp==tp and
re:IsHasCategory(CATEGORY_SPECIAL_SUMMON) and ((ex and (bit.band(dv,LOCATION_DECK)==LOCATION_DECK or re:IsHasCategory(CATEGORY_GRAVE_SPSUMMON)))
or (ex and (dv&LOCATION_GRAVE==LOCATION_GRAVE or g4 and g4:IsExists(fx,1,nil))))
end
function s.negtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,PLAYER_ALL,1)
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.negop(e,tp,eg,ep,ev,re,r,rp)
Duel.NegateEffect(ev)
Duel.Draw(tp,1,REASON_EFFECT)
Duel.Draw(1-tp,1,REASON_EFFECT)
end
function s.negcon2(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsChainNegatable(ev) then return false end
if not re:IsActiveType(TYPE_MONSTER) and not re:IsHasType(EFFECT_TYPE_ACTIVATE) then return false end
local fx = function(c)return c:IsLocation(LOCATION_GRAVE) and c:IsType(TYPE_MONSTER) end
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
local ex,g,gc,dp,dv=Duel.GetOperationInfo(ev,CATEGORY_SPECIAL_SUMMON)
return Duel.GetFlagEffect(1-tp,id)<ct and rp==1-tp and
re:IsHasCategory(CATEGORY_SPECIAL_SUMMON) and ((ex and (bit.band(dv,LOCATION_DECK)==LOCATION_DECK or re:IsHasCategory(CATEGORY_GRAVE_SPSUMMON)))
or (ex and (dv&LOCATION_GRAVE==LOCATION_GRAVE or g4 and g4:IsExists(fx,1,nil))))
end
function s.negtg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_DISABLE,eg,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,PLAYER_ALL,1)
Duel.RegisterFlagEffect(1-tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.drtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local s1=eg:Filter(Card.IsPreviousControler,nil,tp):GetCount()
local s2=eg:Filter(Card.IsPreviousControler,nil,1-tp):GetCount()
if s1>0 then
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,s1)
end
if s2>0 then
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,s2)
end
end
function s.drop(e,tp,eg,ep,ev,re,r,rp)
local s1=eg:Filter(Card.IsPreviousControler,nil,tp):GetCount()
local s2=eg:Filter(Card.IsPreviousControler,nil,1-tp):GetCount()
if s1>0 then
Duel.Draw(tp,s1,REASON_EFFECT)
end
if s2>0 then
Duel.Draw(1-tp,s2,REASON_EFFECT)
end
end
function s.limfilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetMatchingGroupCount(s.limfilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)>2
end
function s.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
e:SetLabel(100)
if chk==0 then return true end
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
if e:GetLabel()~=100 then return false end
e:SetLabel(0)
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
return Duel.CheckReleaseGroup(REASON_COST,tp,nil,1,nil) and Duel.IsPlayerCanRelease(1-tp) and g:IsExists(Card.IsReleasableByEffect,1,nil)
end
local rg=Duel.SelectReleaseGroup(REASON_COST,tp,nil,1,1,nil)
Duel.Release(rg,REASON_COST)
Duel.SetOperationInfo(0,CATEGORY_RELEASE,nil,1,1-tp,LOCATION_MZONE)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if not Duel.IsPlayerCanRelease(1-tp) then return end
local g=Duel.GetFieldGroup(tp,0,LOCATION_MZONE)
local cg=g:Filter(Card.IsReleasableByEffect,nil)
if cg:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,1-tp,HINTMSG_RELEASE)
local sg=cg:FilterSelect(1-tp,aux.TRUE,1,1,nil)
Duel.Release(sg,REASON_RULE)
end
end
--调养的契约
local s,id=GetID()
function s.initial_effect(c)
c:SetUniqueOnField(1,0,id)
--Activate
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_ACTIVATE)
e0:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e0)
--
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(id,1))
e1:SetCategory(CATEGORY_DRAW+CATEGORY_TODECK)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetRange(LOCATION_SZONE)
e1:SetCountLimit(1,id)
e1:SetCondition(s.rmcon)
e1:SetTarget(s.target)
e1:SetOperation(s.operation)
c:RegisterEffect(e1)
--spsummon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(id,2))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_FREE_CHAIN)
e2:SetRange(LOCATION_SZONE)
e2:SetCondition(s.spcon)
e2:SetTarget(s.sptg)
e2:SetOperation(s.spop)
c:RegisterEffect(e2)
--
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_RECOVER)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_DESTROYED)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e3:SetRange(LOCATION_SZONE)
e3:SetCondition(s.condition)
e3:SetTarget(s.retg)
e3:SetOperation(s.reop)
c:RegisterEffect(e3)
end
function s.rmcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetFlagEffect(tp,id)==0
end
function s.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,nil) and Duel.IsPlayerCanDraw(1-tp,1) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,1)
end
function s.operation(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_GRAVE,0,1,5,nil)
if g:GetCount()>0 then
local ss=Duel.SendtoDeck(g,nil,2,REASON_EFFECT)
Duel.Draw(1-tp,ss,REASON_EFFECT)
end
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,2)
end
function s.ckilter(c)
return c:IsFaceup() and c:IsSetCard(0xc540)
end
function s.spcon(e,tp,eg,ep,ev,re,r,rp)
local ct=Duel.GetMatchingGroupCount(s.ckilter,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,nil)
return Duel.GetFlagEffect(tp,id)<ct and ct>2
end
function s.filter(c,e,tp)
return c:IsSetCard(0x3540) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and c:GetLevel()>0 and Duel.IsExistingMatchingCard(nil,tp,LOCATION_HAND,0,c:GetLevel(),nil)
end
function s.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(s.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
local g=Duel.GetMatchingGroup(s.filter,tp,LOCATION_DECK,0,nil,e,tp)
local lvt={}
local tc=g:GetFirst()
while tc do
local tlv=tc:GetLevel()
lvt[tlv]=tlv
tc=g:GetNext()
end
local pc=1
for i=1,12 do
if lvt[i] then lvt[i]=nil lvt[pc]=i pc=pc+1 end
end
lvt[pc]=nil
Duel.Hint(HINT_SELECTMSG,tp,aux.Stringid(id,3))
local lv=Duel.AnnounceNumber(tp,table.unpack(lvt))
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,nil,tp,LOCATION_HAND,0,lv,lv,nil)
Duel.SendtoGrave(g,REASON_COST)
e:SetLabel(lv)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
Duel.RegisterFlagEffect(tp,id,RESET_PHASE+PHASE_END,0,1,0)
end
function s.sfilter(c,lv,e,tp)
return c:IsSetCard(0x3540) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
and c:IsLevel(lv)
end
function s.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
local lv=e:GetLabel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,s.sfilter,tp,LOCATION_DECK,0,1,1,nil,lv,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP)
end
end
function s.cfilter(c,tp)
return c:IsReason(REASON_BATTLE+REASON_EFFECT) and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousControler(tp) and c:GetAttack()>0
end
function s.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(s.cfilter,1,nil,tp)
end
function s.retg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return eg:IsExists(s.cfilter,1,nil,tp) end
local rg=eg:Filter(s.cfilter,nil,tp)
local rec=rg:GetSum(Card.GetAttack)
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,rec)
end
function s.reop(e,tp,eg,ep,ev,re,r,rp)
local rg=eg:Filter(s.cfilter,nil,tp)
local rec=rg:GetSum(Card.GetAttack)
Duel.Recover(tp,rec,REASON_EFFECT)
end
......@@ -132,6 +132,24 @@ function s.spop(e,tp,eg,ep,ev,re,r,rp)
local e11=e10:Clone()
e11:SetCode(EFFECT_NO_EFFECT_DAMAGE)
Duel.RegisterEffect(e11,tp)
--双方场上的卡不能回到卡组
local e12=Effect.CreateEffect(c)
e12:SetType(EFFECT_TYPE_FIELD)
e12:SetCode(EFFECT_CANNOT_TO_DECK)
e12:SetReset(RESET_PHASE+PHASE_END)
e12:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_PLAYER_TARGET)
e12:SetTargetRange(1,1)
e12:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_ONFIELD))
Duel.RegisterEffect(e12,tp)
--双方场上的卡不能回到手卡
local e13=Effect.CreateEffect(c)
e13:SetType(EFFECT_TYPE_FIELD)
e13:SetCode(EFFECT_CANNOT_TO_HAND)
e13:SetReset(RESET_PHASE+PHASE_END)
e13:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_PLAYER_TARGET)
e13:SetTargetRange(1,1)
e13:SetTarget(aux.TargetBoolFunction(Card.IsLocation,LOCATION_ONFIELD))
Duel.RegisterEffect(e13,tp)
end
function s.disable(e,c)
return c~=e:GetHandler()
......
--奇术尊者 伽夜
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
--e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_ACTIVATING)
ge2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
ge2:SetOperation(cm.chkop)
Duel.RegisterEffect(ge2,0)
end
if not cm.NecroceanCheck then
cm.NecroceanCheck=true
local ne1=Effect.CreateEffect(c)
ne1:SetType(EFFECT_TYPE_SINGLE)
ne1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
ne1:SetCondition(cm.syncon)
ne1:SetCode(EFFECT_HAND_SYNCHRO)
ne1:SetTargetRange(0,1)
local ne2=Effect.CreateEffect(c)
ne2:SetType(EFFECT_TYPE_SINGLE)
ne2:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
ne2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
ne2:SetCondition(cm.syncon)
ne2:SetTarget(cm.syntg)
ne2:SetValue(1)
ne2:SetOperation(cm.synop)
local ne3=Effect.CreateEffect(c)
ne3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
ne3:SetTargetRange(LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE)
ne3:SetTarget(cm.eftg)
ne3:SetLabelObject(ne1)
Duel.RegisterEffect(ne3,tp)
local ne4=ne3:Clone()
ne4:SetLabelObject(ne2)
Duel.RegisterEffect(ne4,tp)
end
end
function cm.eftg(e,c)
return Duel.GetFlagEffect(0,m+53752000)+Duel.GetFlagEffect(1,m+53752000)>0
end
function cm.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function cm.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,99,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
--local tp=e:GetHandlerPlayer()
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.chkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+10000000)==0 then
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+m,e,r,rp,ep,ev)
Duel.RegisterFlagEffect(tp,m+10000000,RESET_CHAIN,0,1)
end
end
function cm.filter(c,tp)
local ocheck=false
if c:GetOriginalCode()==53752002 or (c:GetOriginalCode()>=53752008 and c:GetOriginalCode()<=53752013) then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if c:IsSynchroSummonable(nil) then ocheck=true end
end
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
return c:IsSynchroSummonable(nil,mg) or ocheck==true
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
local g=Duel.GetDecktopGroup(tp,num)
--Debug.Message(Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp))
--Debug.Message(g:GetCount()>=num)
--Debug.Message(Duel.GetMZoneCount(tp)>0)
local gc=false
if Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp) then gc=true end
if Duel.GetFlagEffect(tp,m+53752000)~=0 then Duel.ResetFlagEffect(tp,m+53752000) end
return gc and g:GetCount()>=num and g:IsExists(Card.IsAbleToHand,1,nil) and Duel.GetMZoneCount(tp)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
if Duel.GetMZoneCount(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ConfirmDecktop(tp,num)
local g=Duel.GetDecktopGroup(tp,num):Filter(Card.IsSetCard,nil,0xc620)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
if sg:GetFirst():IsAbleToHand() then
if Duel.SendtoHand(sg,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
local ssg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_EXTRA,0,nil,tp)
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
local spc=ssg:Select(tp,1,1,nil):GetFirst()
if Duel.GetMZoneCount(tp,c)>0 then
local b1=false
local b2=false
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if spc:GetOriginalCode()==53752002 or (spc:GetOriginalCode()>=53752008 and spc:GetOriginalCode()<=53752013) and spc:IsSynchroSummonable(nil) then b1=true end
Duel.ResetFlagEffect(tp,m+53752000)
if spc:IsSynchroSummonable(nil,mg) then b2=true end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(60002404,1)},
{b2,aux.Stringid(60002404,2)})
if op==1 then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
Duel.SynchroSummon(tp,spc,nil)
Duel.ResetFlagEffect(tp,m+53752000)
elseif op==2 then
Duel.SynchroSummon(tp,spc,nil,mg)
end
end
end
else
Duel.SendtoGrave(sg,REASON_RULE)
end
Duel.ShuffleDeck(tp)
else
Duel.ShuffleDeck(tp)
end
end
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
Duel.SendtoHand(e:GetHandler(),tp,REASON_EFFECT)
end
\ No newline at end of file
--奇术尊者 米兰
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
--e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_ACTIVATING)
ge2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
ge2:SetOperation(cm.chkop)
Duel.RegisterEffect(ge2,0)
end
if not cm.NecroceanCheck then
cm.NecroceanCheck=true
local ne1=Effect.CreateEffect(c)
ne1:SetType(EFFECT_TYPE_SINGLE)
ne1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
ne1:SetCondition(cm.syncon)
ne1:SetCode(EFFECT_HAND_SYNCHRO)
ne1:SetTargetRange(0,1)
local ne2=Effect.CreateEffect(c)
ne2:SetType(EFFECT_TYPE_SINGLE)
ne2:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
ne2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
ne2:SetCondition(cm.syncon)
ne2:SetTarget(cm.syntg)
ne2:SetValue(1)
ne2:SetOperation(cm.synop)
local ne3=Effect.CreateEffect(c)
ne3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
ne3:SetTargetRange(LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE)
ne3:SetTarget(cm.eftg)
ne3:SetLabelObject(ne1)
Duel.RegisterEffect(ne3,tp)
local ne4=ne3:Clone()
ne4:SetLabelObject(ne2)
Duel.RegisterEffect(ne4,tp)
end
end
function cm.eftg(e,c)
return Duel.GetFlagEffect(0,m+53752000)+Duel.GetFlagEffect(1,m+53752000)>0
end
function cm.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function cm.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,99,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
--local tp=e:GetHandlerPlayer()
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.chkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+10000000)==0 then
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+m,e,r,rp,ep,ev)
Duel.RegisterFlagEffect(tp,m+10000000,RESET_CHAIN,0,1)
end
end
function cm.filter(c,tp)
local ocheck=false
if c:GetOriginalCode()==53752002 or (c:GetOriginalCode()>=53752008 and c:GetOriginalCode()<=53752013) then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if c:IsSynchroSummonable(nil) then ocheck=true end
end
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
return c:IsSynchroSummonable(nil,mg) or ocheck==true
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
local g=Duel.GetDecktopGroup(tp,num)
--Debug.Message(Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp))
--Debug.Message(g:GetCount()>=num)
--Debug.Message(Duel.GetMZoneCount(tp)>0)
local gc=false
if Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp) then gc=true end
if Duel.GetFlagEffect(tp,m+53752000)~=0 then Duel.ResetFlagEffect(tp,m+53752000) end
return gc and g:GetCount()>=num and g:IsExists(Card.IsAbleToHand,1,nil) and Duel.GetMZoneCount(tp)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
if Duel.GetMZoneCount(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ConfirmDecktop(tp,num)
local g=Duel.GetDecktopGroup(tp,num):Filter(Card.IsSetCard,nil,0xc620)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
if sg:GetFirst():IsAbleToHand() then
if Duel.SendtoHand(sg,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
local ssg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_EXTRA,0,nil,tp)
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
local spc=ssg:Select(tp,1,1,nil):GetFirst()
if Duel.GetMZoneCount(tp,c)>0 then
local b1=false
local b2=false
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if spc:GetOriginalCode()==53752002 or (spc:GetOriginalCode()>=53752008 and spc:GetOriginalCode()<=53752013) and spc:IsSynchroSummonable(nil) then b1=true end
Duel.ResetFlagEffect(tp,m+53752000)
if spc:IsSynchroSummonable(nil,mg) then b2=true end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(60002404,1)},
{b2,aux.Stringid(60002404,2)})
if op==1 then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
Duel.SynchroSummon(tp,spc,nil)
Duel.ResetFlagEffect(tp,m+53752000)
elseif op==2 then
Duel.SynchroSummon(tp,spc,nil,mg)
end
end
end
else
Duel.SendtoGrave(sg,REASON_RULE)
end
Duel.ShuffleDeck(tp)
else
Duel.ShuffleDeck(tp)
end
end
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
Duel.SendtoHand(e:GetHandler(),tp,REASON_EFFECT)
end
\ No newline at end of file
--奇术尊者 优树
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
--e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_ACTIVATING)
ge2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
ge2:SetOperation(cm.chkop)
Duel.RegisterEffect(ge2,0)
end
if not cm.NecroceanCheck then
cm.NecroceanCheck=true
local ne1=Effect.CreateEffect(c)
ne1:SetType(EFFECT_TYPE_SINGLE)
ne1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
ne1:SetCondition(cm.syncon)
ne1:SetCode(EFFECT_HAND_SYNCHRO)
ne1:SetTargetRange(0,1)
local ne2=Effect.CreateEffect(c)
ne2:SetType(EFFECT_TYPE_SINGLE)
ne2:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
ne2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
ne2:SetCondition(cm.syncon)
ne2:SetTarget(cm.syntg)
ne2:SetValue(1)
ne2:SetOperation(cm.synop)
local ne3=Effect.CreateEffect(c)
ne3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
ne3:SetTargetRange(LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE)
ne3:SetTarget(cm.eftg)
ne3:SetLabelObject(ne1)
Duel.RegisterEffect(ne3,tp)
local ne4=ne3:Clone()
ne4:SetLabelObject(ne2)
Duel.RegisterEffect(ne4,tp)
end
end
function cm.eftg(e,c)
return Duel.GetFlagEffect(0,m+53752000)+Duel.GetFlagEffect(1,m+53752000)>0
end
function cm.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function cm.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,99,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
--local tp=e:GetHandlerPlayer()
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.chkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+10000000)==0 then
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+m,e,r,rp,ep,ev)
Duel.RegisterFlagEffect(tp,m+10000000,RESET_CHAIN,0,1)
end
end
function cm.filter(c,tp)
local ocheck=false
if c:GetOriginalCode()==53752002 or (c:GetOriginalCode()>=53752008 and c:GetOriginalCode()<=53752013) then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if c:IsSynchroSummonable(nil) then ocheck=true end
end
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
return c:IsSynchroSummonable(nil,mg) or ocheck==true
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
local g=Duel.GetDecktopGroup(tp,num)
--Debug.Message(Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp))
--Debug.Message(g:GetCount()>=num)
--Debug.Message(Duel.GetMZoneCount(tp)>0)
local gc=false
if Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp) then gc=true end
if Duel.GetFlagEffect(tp,m+53752000)~=0 then Duel.ResetFlagEffect(tp,m+53752000) end
return gc and g:GetCount()>=num and g:IsExists(Card.IsAbleToHand,1,nil) and Duel.GetMZoneCount(tp)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
if Duel.GetMZoneCount(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ConfirmDecktop(tp,num)
local g=Duel.GetDecktopGroup(tp,num):Filter(Card.IsSetCard,nil,0xc620)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
if sg:GetFirst():IsAbleToHand() then
if Duel.SendtoHand(sg,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
local ssg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_EXTRA,0,nil,tp)
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
local spc=ssg:Select(tp,1,1,nil):GetFirst()
if Duel.GetMZoneCount(tp,c)>0 then
local b1=false
local b2=false
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if spc:GetOriginalCode()==53752002 or (spc:GetOriginalCode()>=53752008 and spc:GetOriginalCode()<=53752013) and spc:IsSynchroSummonable(nil) then b1=true end
Duel.ResetFlagEffect(tp,m+53752000)
if spc:IsSynchroSummonable(nil,mg) then b2=true end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(60002404,1)},
{b2,aux.Stringid(60002404,2)})
if op==1 then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
Duel.SynchroSummon(tp,spc,nil)
Duel.ResetFlagEffect(tp,m+53752000)
elseif op==2 then
Duel.SynchroSummon(tp,spc,nil,mg)
end
end
end
else
Duel.SendtoGrave(sg,REASON_RULE)
end
Duel.ShuffleDeck(tp)
else
Duel.ShuffleDeck(tp)
end
end
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
Duel.SendtoHand(e:GetHandler(),tp,REASON_EFFECT)
end
\ No newline at end of file
--奇术尊者 达尔
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
--e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_ACTIVATING)
ge2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
ge2:SetOperation(cm.chkop)
Duel.RegisterEffect(ge2,0)
end
if not cm.NecroceanCheck then
cm.NecroceanCheck=true
local ne1=Effect.CreateEffect(c)
ne1:SetType(EFFECT_TYPE_SINGLE)
ne1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
ne1:SetCondition(cm.syncon)
ne1:SetCode(EFFECT_HAND_SYNCHRO)
ne1:SetTargetRange(0,1)
local ne2=Effect.CreateEffect(c)
ne2:SetType(EFFECT_TYPE_SINGLE)
ne2:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
ne2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
ne2:SetCondition(cm.syncon)
ne2:SetTarget(cm.syntg)
ne2:SetValue(1)
ne2:SetOperation(cm.synop)
local ne3=Effect.CreateEffect(c)
ne3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
ne3:SetTargetRange(LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE)
ne3:SetTarget(cm.eftg)
ne3:SetLabelObject(ne1)
Duel.RegisterEffect(ne3,tp)
local ne4=ne3:Clone()
ne4:SetLabelObject(ne2)
Duel.RegisterEffect(ne4,tp)
end
end
function cm.eftg(e,c)
return Duel.GetFlagEffect(0,m+53752000)+Duel.GetFlagEffect(1,m+53752000)>0
end
function cm.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function cm.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,99,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
--local tp=e:GetHandlerPlayer()
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.chkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+10000000)==0 then
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+m,e,r,rp,ep,ev)
Duel.RegisterFlagEffect(tp,m+10000000,RESET_CHAIN,0,1)
end
end
function cm.filter(c,tp)
local ocheck=false
if c:GetOriginalCode()==53752002 or (c:GetOriginalCode()>=53752008 and c:GetOriginalCode()<=53752013) then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if c:IsSynchroSummonable(nil) then ocheck=true end
end
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
return c:IsSynchroSummonable(nil,mg) or ocheck==true
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
local g=Duel.GetDecktopGroup(tp,num)
--Debug.Message(Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp))
--Debug.Message(g:GetCount()>=num)
--Debug.Message(Duel.GetMZoneCount(tp)>0)
local gc=false
if Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp) then gc=true end
if Duel.GetFlagEffect(tp,m+53752000)~=0 then Duel.ResetFlagEffect(tp,m+53752000) end
return gc and g:GetCount()>=num and g:IsExists(Card.IsAbleToHand,1,nil) and Duel.GetMZoneCount(tp)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
if Duel.GetMZoneCount(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ConfirmDecktop(tp,num)
local g=Duel.GetDecktopGroup(tp,num):Filter(Card.IsSetCard,nil,0xc620)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
if sg:GetFirst():IsAbleToHand() then
if Duel.SendtoHand(sg,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
local ssg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_EXTRA,0,nil,tp)
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
local spc=ssg:Select(tp,1,1,nil):GetFirst()
if Duel.GetMZoneCount(tp,c)>0 then
local b1=false
local b2=false
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if spc:GetOriginalCode()==53752002 or (spc:GetOriginalCode()>=53752008 and spc:GetOriginalCode()<=53752013) and spc:IsSynchroSummonable(nil) then b1=true end
Duel.ResetFlagEffect(tp,m+53752000)
if spc:IsSynchroSummonable(nil,mg) then b2=true end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(60002404,1)},
{b2,aux.Stringid(60002404,2)})
if op==1 then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
Duel.SynchroSummon(tp,spc,nil)
Duel.ResetFlagEffect(tp,m+53752000)
elseif op==2 then
Duel.SynchroSummon(tp,spc,nil,mg)
end
end
end
else
Duel.SendtoGrave(sg,REASON_RULE)
end
Duel.ShuffleDeck(tp)
else
Duel.ShuffleDeck(tp)
end
end
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
Duel.SendtoHand(e:GetHandler(),tp,REASON_EFFECT)
end
\ No newline at end of file
--奇术尊者 莱文
local cm,m,o=GetID()
function cm.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CUSTOM+m)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(cm.spcon)
--e1:SetTarget(cm.sptg)
e1:SetOperation(cm.spop)
c:RegisterEffect(e1)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAINING)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
local ge2=Effect.CreateEffect(c)
ge2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge2:SetCode(EVENT_CHAIN_ACTIVATING)
ge2:SetCountLimit(1,EFFECT_COUNT_CODE_CHAIN)
ge2:SetOperation(cm.chkop)
Duel.RegisterEffect(ge2,0)
end
if not cm.NecroceanCheck then
cm.NecroceanCheck=true
local ne1=Effect.CreateEffect(c)
ne1:SetType(EFFECT_TYPE_SINGLE)
ne1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_SPSUM_PARAM)
ne1:SetCondition(cm.syncon)
ne1:SetCode(EFFECT_HAND_SYNCHRO)
ne1:SetTargetRange(0,1)
local ne2=Effect.CreateEffect(c)
ne2:SetType(EFFECT_TYPE_SINGLE)
ne2:SetCode(EFFECT_SYNCHRO_MATERIAL_CUSTOM)
ne2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
ne2:SetCondition(cm.syncon)
ne2:SetTarget(cm.syntg)
ne2:SetValue(1)
ne2:SetOperation(cm.synop)
local ne3=Effect.CreateEffect(c)
ne3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_GRANT)
ne3:SetTargetRange(LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE,LOCATION_ONFIELD+LOCATION_HAND+LOCATION_GRAVE)
ne3:SetTarget(cm.eftg)
ne3:SetLabelObject(ne1)
Duel.RegisterEffect(ne3,tp)
local ne4=ne3:Clone()
ne4:SetLabelObject(ne2)
Duel.RegisterEffect(ne4,tp)
end
end
function cm.eftg(e,c)
return Duel.GetFlagEffect(0,m+53752000)+Duel.GetFlagEffect(1,m+53752000)>0
end
function cm.synfilter(c,syncard,tuner,f)
return c:IsFaceupEx() and c:IsCanBeSynchroMaterial(syncard,tuner) and (f==nil or f(c,syncard))
end
function cm.syncheck(c,g,mg,tp,lv,syncard,minc,maxc)
g:AddCard(c)
local ct=g:GetCount()
local res=cm.syngoal(g,tp,lv,syncard,minc,ct)
or (ct<maxc and mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc))
g:RemoveCard(c)
return res
end
function cm.syngoal(g,tp,lv,syncard,minc,ct)
return ct>=minc
and g:CheckWithSumEqual(Card.GetSynchroLevel,lv,ct,ct,syncard)
and Duel.GetLocationCountFromEx(tp,tp,g,syncard)>0
and g:FilterCount(Card.IsLocation,nil,LOCATION_HAND)<=1
and aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL)
end
function cm.syncon(e)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO)
end
function cm.syntg(e,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local tp=syncard:GetControler()
local lv=syncard:GetLevel()
if lv<=c:GetLevel() then return false end
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
return mg:IsExists(cm.syncheck,1,g,g,mg,tp,lv,syncard,minc,maxc)
end
function cm.synop(e,tp,eg,ep,ev,re,r,rp,syncard,f,min,max)
local minc=min+1
local maxc=max+1
local c=e:GetHandler()
local lv=syncard:GetLevel()
local g=Group.FromCards(c)
local mg=Duel.GetSynchroMaterial(tp):Filter(cm.synfilter,c,syncard,c,f)
local exg=Duel.GetMatchingGroup(cm.synfilter,tp,LOCATION_HAND,0,c,syncard,c,f)
mg:Merge(exg)
for i=1,maxc do
local cg=mg:Filter(cm.syncheck,g,g,mg,tp,lv,syncard,minc,maxc)
if cg:GetCount()==0 then break end
local minct=1
if cm.syngoal(g,tp,lv,syncard,minc,i) then
minct=0
end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local sg=cg:Select(tp,minct,99,nil)
if sg:GetCount()==0 then break end
g:Merge(sg)
end
Duel.SetSynchroMaterial(g)
end
function cm.checkop(e,tp,eg,ep,ev,re,r,rp)
--local tp=e:GetHandlerPlayer()
Duel.RegisterFlagEffect(0,m,RESET_CHAIN,0,1)
end
function cm.chkop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetFlagEffect(tp,m+10000000)==0 then
Duel.RaiseEvent(e:GetHandler(),EVENT_CUSTOM+m,e,r,rp,ep,ev)
Duel.RegisterFlagEffect(tp,m+10000000,RESET_CHAIN,0,1)
end
end
function cm.filter(c,tp)
local ocheck=false
if c:GetOriginalCode()==53752002 or (c:GetOriginalCode()>=53752008 and c:GetOriginalCode()<=53752013) then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if c:IsSynchroSummonable(nil) then ocheck=true end
end
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
return c:IsSynchroSummonable(nil,mg) or ocheck==true
end
function cm.spcon(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
local g=Duel.GetDecktopGroup(tp,num)
--Debug.Message(Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp))
--Debug.Message(g:GetCount()>=num)
--Debug.Message(Duel.GetMZoneCount(tp)>0)
local gc=false
if Duel.IsExistingMatchingCard(cm.filter,tp,LOCATION_EXTRA,0,1,nil,tp) then gc=true end
if Duel.GetFlagEffect(tp,m+53752000)~=0 then Duel.ResetFlagEffect(tp,m+53752000) end
return gc and g:GetCount()>=num and g:IsExists(Card.IsAbleToHand,1,nil) and Duel.GetMZoneCount(tp)>0
end
function cm.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
--local tp=e:GetHandlerPlayer()
local num=Duel.GetFlagEffect(0,m)
if Duel.GetMZoneCount(tp)>0 and Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)~=0 then
Duel.ConfirmDecktop(tp,num)
local g=Duel.GetDecktopGroup(tp,num):Filter(Card.IsSetCard,nil,0xc620)
if g:GetCount()>0 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
if sg:GetFirst():IsAbleToHand() then
if Duel.SendtoHand(sg,nil,REASON_EFFECT)~=0 then
Duel.ConfirmCards(1-tp,sg)
Duel.ShuffleHand(tp)
local ssg=Duel.GetMatchingGroup(cm.filter,tp,LOCATION_EXTRA,0,nil,tp)
local mg=Duel.GetMatchingGroup(Card.IsType,tp,LOCATION_HAND+LOCATION_MZONE,0,nil,TYPE_MONSTER)
local spc=ssg:Select(tp,1,1,nil):GetFirst()
if Duel.GetMZoneCount(tp,c)>0 then
local b1=false
local b2=false
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
if spc:GetOriginalCode()==53752002 or (spc:GetOriginalCode()>=53752008 and spc:GetOriginalCode()<=53752013) and spc:IsSynchroSummonable(nil) then b1=true end
Duel.ResetFlagEffect(tp,m+53752000)
if spc:IsSynchroSummonable(nil,mg) then b2=true end
local op=aux.SelectFromOptions(tp,
{b1,aux.Stringid(60002404,1)},
{b2,aux.Stringid(60002404,2)})
if op==1 then
Duel.RegisterFlagEffect(tp,m+53752000,0,0,1)
Duel.SynchroSummon(tp,spc,nil)
Duel.ResetFlagEffect(tp,m+53752000)
elseif op==2 then
Duel.SynchroSummon(tp,spc,nil,mg)
end
end
end
else
Duel.SendtoGrave(sg,REASON_RULE)
end
Duel.ShuffleDeck(tp)
else
Duel.ShuffleDeck(tp)
end
end
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local tp=e:GetHandlerPlayer()
Duel.SendtoHand(e:GetHandler(),tp,REASON_EFFECT)
end
\ No newline at end of file
--奇术尊者 罗森克鲁兹之心
local cm,m,o=GetID()
function cm.initial_effect(c)
c:EnableReviveLimit()
local e0=Effect.CreateEffect(c)
e0:SetDescription(1164)
e0:SetType(EFFECT_TYPE_FIELD)
e0:SetCode(EFFECT_SPSUMMON_PROC)
e0:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e0:SetRange(LOCATION_EXTRA)
e0:SetCondition(cm.SynMixCondition(aux.Tuner(Card.IsSetCard,0xc620),nil,nil,aux.NonTuner(nil),1,99,gc))
e0:SetTarget(cm.SynMixTarget(aux.Tuner(Card.IsSetCard,0xc620),nil,nil,aux.NonTuner(nil),1,99,gc))
e0:SetOperation(cm.SynMixOperation(aux.Tuner(Card.IsSetCard,0xc620),nil,nil,aux.NonTuner(nil),1,99,gc))
e0:SetValue(SUMMON_TYPE_SYNCHRO)
c:RegisterEffect(e0)
--level
local e33=Effect.CreateEffect(c)
e33:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e33:SetCode(EVENT_SPSUMMON_SUCCESS)
e33:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e33:SetCountLimit(1)
e33:SetCondition(cm.lvcon)
e33:SetOperation(cm.lvop)
c:RegisterEffect(e33)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_CHAIN_END)
e1:SetRange(LOCATION_MZONE)
e1:SetLabelObject(e33)
e1:SetOperation(cm.bkop)
c:RegisterEffect(e1)
end
function cm.SynMixCondition(f1,f2,f3,f4,minc,maxc,gc)
return function(e,c,smat,mg1,min,max)
if c==nil then return true end
if c:IsType(TYPE_PENDULUM) and c:IsFaceup() then return false end
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local tp=c:GetControler()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=Auxiliary.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
return mg:IsExists(cm.SynMixFilter1,1,nil,f1,f2,f3,f4,minc,maxc,c,mg,smat,gc,mgchk)
end
end
function cm.SynMixTarget(f1,f2,f3,f4,minc,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,chk,c,smat,mg1,min,max)
local minc=minc
local maxc=maxc
if min then
if min>minc then minc=min end
if max<maxc then maxc=max end
if minc>maxc then return false end
end
local g=Group.CreateGroup()
local mg
local mgchk=false
if mg1 then
mg=mg1
mgchk=true
else
mg=aux.GetSynMaterials(tp,c)
end
if smat~=nil then mg:AddCard(smat) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local c1=mg:FilterSelect(tp,cm.SynMixFilter1,1,1,nil,f1,f2,f3,f4,minc,maxc,c,mg,smat,gc,mgchk):GetFirst()
g:AddCard(c1)
if f2 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local c2=mg:FilterSelect(tp,cm.SynMixFilter2,1,1,c1,f2,f3,f4,minc,maxc,c,mg,smat,c1,gc,mgchk):GetFirst()
g:AddCard(c2)
if f3 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local c3=mg:FilterSelect(tp,cm.SynMixFilter3,1,1,Group.FromCards(c1,c2),f3,f4,minc,maxc,c,mg,smat,c1,c2,gc,mgchk):GetFirst()
g:AddCard(c3)
end
end
local g4=Group.CreateGroup()
local i=0
--while i==0 do
local mg2=mg:Clone()
mg2=mg2:Filter(f4,g,c)
local cg=mg2:Filter(cm.SynMixCheckRecursive,g4,tp,g4,mg2,i,minc,maxc,c,g,smat,gc,mgchk)
--if cg:GetCount()==0 then break end
local minct=1
if g4:GetCount()~=0 then minct=0 end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SMATERIAL)
local tg=cg:Select(tp,minct,99,nil)
--if tg:GetCount()==0 then break end
g4:Merge(tg)
--end
g:Merge(g4)
if g:GetCount()>0 then
g:KeepAlive()
e:SetLabelObject(g)
return true
else return false end
end
end
function cm.SynMixOperation(f1,f2,f3,f4,minct,maxc,gc)
return function(e,tp,eg,ep,ev,re,r,rp,c,smat,mg,min,max)
local g=e:GetLabelObject()
c:SetMaterial(g)
Duel.SendtoGrave(g,REASON_MATERIAL+REASON_SYNCHRO)
g:DeleteGroup()
c:RegisterFlagEffect(m,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD,0,1)
end
end
function cm.SynMixFilter1(c,f1,f2,f3,f4,minc,maxc,syncard,mg,smat,gc,mgchk)
return (not f1 or f1(c,syncard)) and mg:IsExists(cm.SynMixFilter2,1,c,f2,f3,f4,minc,maxc,syncard,mg,smat,c,gc,mgchk)
end
function cm.SynMixFilter2(c,f2,f3,f4,minc,maxc,syncard,mg,smat,c1,gc,mgchk)
if f2 then
return f2(c,syncard,c1) and mg:IsExists(cm.SynMixFilter3,1,Group.FromCards(c1,c),f3,f4,minc,maxc,syncard,mg,smat,c1,c,gc,mgchk)
else
return mg:IsExists(cm.SynMixFilter4,1,c1,f4,minc,maxc,syncard,mg,smat,c1,nil,nil,gc,mgchk)
end
end
function cm.SynMixFilter3(c,f3,f4,minc,maxc,syncard,mg,smat,c1,c2,gc,mgchk)
if f3 then
return f3(c,syncard,c1,c2) and mg:IsExists(cm.SynMixFilter4,1,Group.FromCards(c1,c2,c),f4,minc,maxc,syncard,mg,smat,c1,c2,c,gc,mgchk)
else
return mg:IsExists(cm.SynMixFilter4,1,Group.FromCards(c1,c2),f4,minc,maxc,syncard,mg,smat,c1,c2,nil,gc,mgchk)
end
end
function cm.SynMixFilter4(c,f4,minc,maxc,syncard,mg1,smat,c1,c2,c3,gc,mgchk)
if f4 and not f4(c,syncard,c1,c2,c3) then return false end
local sg=Group.FromCards(c1,c)
sg:AddCard(c1)
if c2 then sg:AddCard(c2) end
if c3 then sg:AddCard(c3) end
local mg=mg1:Clone()
if f4 then
mg=mg:Filter(f4,sg,syncard)
else
mg:Sub(sg)
end
return cm.SynMixCheck(mg,sg,minc-1,maxc-1,syncard,smat,gc,mgchk)
end
function cm.SynMixCheck(mg,sg1,minc,maxc,syncard,smat,gc,mgchk)
local tp=syncard:GetControler()
local sg=Group.CreateGroup()
if minc==0 and cm.SynMixCheckGoal(tp,sg1,0,0,syncard,sg,smat,gc,mgchk) then return true end
if maxc==0 then return false end
return mg:IsExists(cm.SynMixCheckRecursive,1,nil,tp,sg,mg,0,minc,maxc,syncard,sg1,smat,gc,mgchk)
end
function cm.SynMixCheckRecursive(c,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk)
sg:AddCard(c)
ct=ct+1
local res=cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
or (ct<maxc and mg:IsExists(cm.SynMixCheckRecursive,1,sg,tp,sg,mg,ct,minc,maxc,syncard,sg1,smat,gc,mgchk))
sg:RemoveCard(c)
ct=ct-1
return res
end
function cm.SynMixCheckGoal(tp,sg,minc,ct,syncard,sg1,smat,gc,mgchk)
if ct<minc then return false end
local g=sg:Clone()
g:Merge(sg1)
if Duel.GetLocationCountFromEx(tp,tp,g,syncard)<=0 then return false end
if gc and not gc(g) then return false end
if smat and not g:IsContains(smat) then return false end
if not aux.MustMaterialCheck(g,tp,EFFECT_MUST_BE_SMATERIAL) then return false end
local hg=g:Filter(Card.IsLocation,nil,LOCATION_HAND)
local hct=hg:GetCount()
if hct>0 and not mgchk then
local found=false
for c in aux.Next(g) do
local he,hf,hmin,hmax=c:GetHandSynchro()
if he then
found=true
if hf and hg:IsExists(aux.SynLimitFilter,1,c,hf,he,syncard) then return false end
if (hmin and hct<hmin) or (hmax and hct>hmax) then return false end
end
end
if not found then return false end
end
for c in aux.Next(g) do
local le,lf,lloc,lmin,lmax=c:GetTunerLimit()
if le then
local lct=g:GetCount()-1
if lloc then
local llct=g:FilterCount(Card.IsLocation,c,lloc)
if llct~=lct then return false end
end
if lf and g:IsExists(aux.SynLimitFilter,1,c,lf,le,syncard) then return false end
if (lmin and lct<lmin) or (lmax and lct>lmax) then return false end
end
end
return true
end
function cm.rmfil(c,lv)
return c:IsType(TYPE_SYNCHRO) and c:IsLevelBelow(lv-1) and c:IsAbleToRemove()
end
function cm.lvcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsSummonType(SUMMON_TYPE_SYNCHRO) --and e:GetHandler():GetFlagEffect(m)~=0
end
function cm.ttlv(c)
return c:GetOriginalLevel()
end
function cm.lvop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local g=c:GetMaterial()
local xlv=g:GetSum(cm.ttlv)
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CHANGE_LEVEL)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
e1:SetValue(xlv)
c:RegisterEffect(e1)
if Duel.IsExistingMatchingCard(cm.rmfil,tp,LOCATION_EXTRA,0,1,nil,xlv) and Duel.SelectYesNo(tp,aux.Stringid(m,0)) then
local rg=Duel.GetMatchingGroup(cm.rmfil,tp,LOCATION_EXTRA,0,nil,xlv):Select(tp,1,1,nil)
if rg and Duel.Remove(rg,POS_FACEUP,REASON_EFFECT) then
local rmvg=Duel.GetOperatedGroup()
e:SetLabelObject(rmvg)
rmvg:KeepAlive()
local code=rmvg:GetFirst():GetCode()
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e1:SetReset(RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_DISABLE)
e1:SetCode(EFFECT_CHANGE_CODE)
e1:SetValue(code)
c:RegisterEffect(e1)
c:CopyEffect(code,RESET_EVENT+RESETS_STANDARD-RESET_TOFIELD+RESET_DISABLE)
end
end
end
function cm.mgfilter(c,tp,sync)
return c:IsControler(tp) and not c:IsFacedown()
and bit.band(c:GetReason(),0x80008)==0x80008 and c:GetReasonCard()==sync
and c:IsAbleToHand()
end
function cm.bkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tp=e:GetHandlerPlayer()
local bg=e:GetLabelObject():GetLabelObject()
Duel.SendtoDeck(c,nil,2,REASON_EFFECT)
local a=#Duel.GetOperatedGroup()
Duel.SendtoDeck(bg,nil,2,REASON_EFFECT)
local b=#Duel.GetOperatedGroup()
local mg=e:GetHandler():GetMaterial()
if a~=0 and b~=0 and #mg~=0 and mg:FilterCount(aux.NecroValleyFilter(cm.mgfilter),nil,tp,e:GetHandler())==#mg and Duel.SelectYesNo(tp,aux.Stringid(m,1)) then
Duel.BreakEffect()
local mc=mg:Select(tp,1,1,nil)
Duel.SendtoHand(mc,nil,REASON_EFFECT)
end
end
\ No newline at end of file
--奇术士 凯恩斯之瞳
local cm,m,o=GetID()
function cm.initial_effect(c)
--search
local e11=Effect.CreateEffect(c)
e11:SetDescription(aux.Stringid(m,1))
e11:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND+CATEGORY_TODECK)
e11:SetType(EFFECT_TYPE_QUICK_O)
e11:SetCode(EVENT_FREE_CHAIN)
e11:SetRange(LOCATION_HAND)
e11:SetCountLimit(1,m)
e11:SetCondition(cm.thcon1)
e11:SetTarget(cm.thtg)
e11:SetOperation(cm.thop)
c:RegisterEffect(e11)
local e2=e11:Clone()
e2:SetDescription(aux.Stringid(m,2))
e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetCode(EVENT_CHAINING)
e2:SetCountLimit(1,m+10000000)
e2:SetCondition(cm.thcon2)
c:RegisterEffect(e2)
local e3=e11:Clone()
e3:SetDescription(aux.Stringid(m,3))
e3:SetCondition(cm.thcon3)
e3:SetCountLimit(1,m+20000000)
c:RegisterEffect(e3)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_BE_MATERIAL)
e1:SetCondition(cm.con)
e1:SetOperation(cm.op)
c:RegisterEffect(e1)
end
function cm.thcon1(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsMainPhase()
end
function cm.thcon2(e,tp,eg,ep,ev,re,r,rp)
return rp==1-tp
end
function cm.thcon3(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetCurrentChain()>=3
end
function cm.con(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsLocation(LOCATION_GRAVE) and r==REASON_SYNCHRO
end
function cm.op(e,tp,eg,ep,ev,re,r,rp)
if Duel.SelectYesNo(tp,aux.Stringid(m,0)) and Duel.IsPlayerCanDraw(tp,1) then Duel.Draw(tp,1,REASON_EFFECT) end
end
function cm.thfilter(c)
return c:IsSetCard(0xc620) and c:IsType(TYPE_MONSTER) and c:IsAbleToHand()
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(cm.thfilter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_TODECK,nil,1,tp,LOCATION_HAND)
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,cm.thfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 and Duel.SendtoHand(g,nil,REASON_EFFECT)>0 then
Duel.ConfirmCards(1-tp,g)
Duel.ShuffleDeck(tp)
Duel.ShuffleHand(tp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TODECK)
local sg=Duel.SelectMatchingCard(tp,Card.IsAbleToDeck,tp,LOCATION_HAND,0,1,1,nil)
if sg:GetCount()>0 then
Duel.BreakEffect()
Duel.SendtoDeck(sg,nil,SEQ_DECKTOP,REASON_EFFECT)
end
end
end
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment