diff --git a/BotWrapper/bot.conf b/BotWrapper/bot.conf
index 7c276289..f04ec2c1 100644
--- a/BotWrapper/bot.conf
+++ b/BotWrapper/bot.conf
@@ -14,9 +14,19 @@ Random=AI_LV2
一些比较弱的卡组。
SUPPORT_MASTER_RULE_2020
-!随机-普通
+!随机-一般
Random=AI_LV3
-一些环境里可以看到的卡组。
+一些不是很弱的卡组。
+SUPPORT_MASTER_RULE_2020
+
+!随机-普通
+Random=AI_LV4
+一些可以(或者曾经可以)在竞技环境里看到的卡组。
+SUPPORT_MASTER_RULE_2020
+
+!随机-狂野
+Random=AI_WILD
+普通的人机的卡组会符合其使用的卡池对应的环境的禁限卡表,但狂野模式的人机的卡组一般不符合任何禁限卡表。
SUPPORT_MASTER_RULE_2020
!随机-报社
@@ -67,17 +77,17 @@ AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!琪露诺-饼蛙
Name=琪露诺 Deck='Toadally Awesome' Dialog=cirno.zh-CN
大师规则三的全盛饼蛙卡组。
-SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!复制植物-青眼
Name=复制植物 Deck=Blue-Eyes Dialog=copy.zh-CN
青眼卡组。
-AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!复制植物-十二兽
Name=复制植物 Deck=Zoodiac Dialog=copy.zh-CN
大师规则三的十四兽卡组。
-SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!尼亚-妖仙兽
Name=尼亚 Deck=Yosenju Dialog=near.zh-CN
@@ -92,12 +102,27 @@ AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2
!尼亚-淘气仙星
Name=尼亚 Deck=Trickstar Dialog=near.zh-CN
旧式淘气仙星卡组。
-AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!尼亚-幻变骚灵
Name=尼亚 Deck=Altergeist Dialog=near.zh-CN
幻变骚灵卡组。
-AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+
+!尼亚-拉比林斯迷宫
+Name=尼亚 Deck=Labrynth Dialog=near.zh-CN
+拉比林斯迷宫卡组。
+AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+
+!尼亚-于贝尔
+Name=尼亚 Deck=Yubel Dialog=near.zh-CN
+于贝尔卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
+
+!尼亚-王家的神殿
+Name=尼亚 Deck=Apophis Dialog=near.zh-CN
+王家的神殿卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
!复制梁龙-闪刀姬
Name=复制梁龙 Deck=SkyStriker Dialog=anothercopy.zh-CN
@@ -107,13 +132,23 @@ AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!复制梁龙-自奏圣乐
Name=复制梁龙 Deck=Orcust Dialog=anothercopy.zh-CN
旧式自奏圣乐卡组。
-AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!复制梁龙-转生炎兽
Name=复制梁龙 Deck=Salamangreat Dialog=anothercopy.zh-CN
转生炎兽卡组。
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+!复制梁龙-雷火沸动
+Name=复制梁龙 Deck=Ryzeal Dialog=anothercopy.zh-CN
+初代雷火沸动卡组。
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+
+!复制梁龙-码丽丝
+Name=复制梁龙 Deck=Maliss Dialog=anothercopy.zh-CN
+MD全盛码丽丝卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
+
!VI-1911-凭依装着
Name=VI-1911 Deck=FamiliarPossessed Dialog=VI-1911.zh-CN
凭依装着卡组。
@@ -147,7 +182,7 @@ AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!试作型机器人1732
Name=试作型机器人1732 Deck=ST1732 Dialog=zh-CN
由三盒ST17和三盒SD32组成的卡组。
-AI_LV2 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV1 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!奇異果
Name=奇異果 Deck=LightswornShaddoldinosour Dialog=kiwi.zh-TW
@@ -162,7 +197,7 @@ AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!MAX龍果
Name=MAX龍果 Deck=BlueEyesMaxDragon Dialog=kiwi.zh-TW
青眼混沌极龙卡组。
-AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!幻煌果
Name=幻煌果 Deck=Phantasm Dialog=kiwi.zh-TW
@@ -182,29 +217,59 @@ AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2
!我太帅了-真红眼龙骑士
Name=我太帅了 Deck=Dragun Dialog=smart.zh-CN
超魔导真红眼龙骑士卡组。
-AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!我太帅了-水百凤凰勇者
Name=我太帅了 Deck=Brave Dialog=smart.zh-CN
水机百头龙凤凰人勇者卡组。
-AI_LV3 SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_MASTER_RULE_2020
-!玻璃女巫
+!玻璃女巫-魔女术
Name=玻璃女巫 Deck=Witchcraft Dialog=verre.zh-CN
魔女术卡组。
-AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
+
+!玻璃女巫-救祓少女
+Name=玻璃女巫 Deck=Exosister Dialog=verre.zh-CN
+救祓少女卡组。
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+
+!艾克莉西娅-相剑
+Name=艾克莉西娅 Deck=Swordsoul Dialog=ecclesia.zh-CN
+相剑卡组。
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
+
+!艾克莉西娅-教导
+Name=艾克莉西娅 Deck=Dogmatika Dialog=ecclesia.zh-CN
+教导卡组。
+AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!神数不神-刹帝利
Name=神数不神 Deck=Kashtira Dialog=Zefra.zh-CN
俱舍怒威族卡组。
-AI_LV3 SUPPORT_MASTER_RULE_2020
+AI_LV4 SUPPORT_MASTER_RULE_2020
-![狂野模式]神数不神-雷龙
+![狂野]神数不神-雷龙
Name=神数不神 Deck=ThunderDragon Dialog=Zefra.zh-CN
-深渊混沌雷龙卡组。(普通模式的人机的卡组会符合其使用的卡池对应的环境的禁限卡表,但在狂野模式中,人机的卡组不符合任何禁限卡表。)
-SUPPORT_MASTER_RULE_2020
+深渊混沌雷龙卡组。
+AI_WILD SUPPORT_MASTER_RULE_2020
!神数不神-珠泪哀歌
Name=神数不神 Deck=Tearlaments Dialog=Zefra.zh-CN
旧式地天使珠泪哀歌族卡组。
-AI_LV3 SUPPORT_MASTER_RULE_2020
+AI_LV4 AI_WILD SUPPORT_MASTER_RULE_2020
+
+!神数不神-神数
+Name=神数不神 Deck=Zefra Dialog=Zefra.zh-CN
+神数卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
+
+!今晚有宵夜吗-超重武者
+Name=今晚有宵夜吗 Deck=SuperheavySamurai Dialog=superheavysamurai.zh-CN
+超重武者卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
+
+!今晚有宵夜吗-码丽丝
+Name=今晚有宵夜吗 Deck=MalissOCG Dialog=Xiaoye.zh-CN
+码丽丝卡组。
+AI_LV4 SUPPORT_MASTER_RULE_2020
\ No newline at end of file
diff --git a/Decks/AI_Albaz.ydk b/Decks/AI_Albaz.ydk
new file mode 100644
index 00000000..19a1b0bf
--- /dev/null
+++ b/Decks/AI_Albaz.ydk
@@ -0,0 +1,64 @@
+#created by ...
+#main
+32731036
+25451383
+60242223
+62962630
+62962630
+62962630
+68468459
+68468459
+45484331
+45883110
+95515789
+19096726
+14558127
+14558127
+14558127
+23434538
+23434538
+23434538
+36577931
+1984618
+1984618
+6498706
+6498706
+34995106
+44362883
+75500286
+81439173
+24224830
+24224830
+29948294
+36637374
+65681983
+82738008
+18973184
+10045474
+10045474
+10045474
+19271881
+32756828
+17751597
+#extra
+11321089
+38811586
+44146295
+44146295
+92892239
+70534340
+3410461
+24915933
+72272462
+1906812
+41373230
+51409648
+87746184
+87746184
+53971455
+!side
+56787189
+55273561
+68468460
+72554664
+95515790
\ No newline at end of file
diff --git a/Decks/AI_Apophis.ydk b/Decks/AI_Apophis.ydk
new file mode 100644
index 00000000..f45ad0a8
--- /dev/null
+++ b/Decks/AI_Apophis.ydk
@@ -0,0 +1,59 @@
+#created by ...
+#main
+62514770
+60411677
+60411677
+63198739
+63198739
+97522863
+97522863
+97522863
+49238328
+49238328
+73628505
+29095457
+56506740
+56506740
+56506740
+69299029
+69299029
+69299029
+6325660
+6325660
+6325660
+10045474
+10045474
+10045474
+40366667
+40366667
+58053438
+58053438
+58053438
+97045737
+97045737
+97045737
+85888377
+85888377
+95561146
+95561146
+95561146
+59576447
+78114463
+78114463
+#extra
+97800311
+97800311
+97800311
+96633955
+96633955
+84815190
+84815190
+26096328
+38354018
+46772449
+29301450
+1528054
+1528054
+98978921
+98978921
+!side
diff --git a/Decks/AI_Dogmatika.ydk b/Decks/AI_Dogmatika.ydk
index 91e18312..c66e48b2 100644
--- a/Decks/AI_Dogmatika.ydk
+++ b/Decks/AI_Dogmatika.ydk
@@ -1,59 +1,59 @@
-#created by AlphaKretin
+#created by ...
#main
+51522296
+51522296
+62849088
+69680031
69680031
95679145
-3717252
+72270339
60303688
60303688
60303688
-86120751
-86120751
-86120751
14558127
14558127
14558127
+23434538
+23434538
+23434538
+10158145
+10158145
+10158145
1984618
1984618
1984618
-25311006
-25311006
-25311006
-73628505
-74063034
-74063034
-24224830
+31002402
+60921537
+16240772
24224830
24224830
-48130397
-48130397
-48130397
-47679935
-47679935
-47679935
+65681983
+80845034
+80845034
+80845034
+35569555
+35569555
+35569555
10045474
10045474
10045474
82956214
82956214
82956214
-21011044
-41420027
-41420027
-41420027
#extra
-75286621
-20366274
-41209827
-69946549
+24915933
41373230
-97300502
-50907446
-94977269
+11765832
+11765832
+80532587
80532587
80532587
-13529466
+53971455
+53971455
74586817
-98506199
+79606837
+93039339
2220237
+24842059
60303245
-!side
+!side
\ No newline at end of file
diff --git a/Decks/AI_Dragma.ydk b/Decks/AI_Dragma.ydk
new file mode 100644
index 00000000..91e18312
--- /dev/null
+++ b/Decks/AI_Dragma.ydk
@@ -0,0 +1,59 @@
+#created by AlphaKretin
+#main
+69680031
+95679145
+3717252
+60303688
+60303688
+60303688
+86120751
+86120751
+86120751
+14558127
+14558127
+14558127
+1984618
+1984618
+1984618
+25311006
+25311006
+25311006
+73628505
+74063034
+74063034
+24224830
+24224830
+24224830
+48130397
+48130397
+48130397
+47679935
+47679935
+47679935
+10045474
+10045474
+10045474
+82956214
+82956214
+82956214
+21011044
+41420027
+41420027
+41420027
+#extra
+75286621
+20366274
+41209827
+69946549
+41373230
+97300502
+50907446
+94977269
+80532587
+80532587
+13529466
+74586817
+98506199
+2220237
+60303245
+!side
diff --git a/Decks/AI_Exosister.ydk b/Decks/AI_Exosister.ydk
new file mode 100644
index 00000000..1e5c0fac
--- /dev/null
+++ b/Decks/AI_Exosister.ydk
@@ -0,0 +1,60 @@
+#created by ...
+#main
+37343995
+37343995
+37343995
+16889337
+16889337
+16889337
+16474916
+16474916
+16474916
+67972302
+67972302
+67972302
+79858629
+79858629
+43863925
+43863925
+43863925
+5352328
+5352328
+14558127
+14558127
+14558127
+23434538
+23434538
+23434538
+84211599
+84211599
+4408198
+24224830
+24224830
+77913594
+77913594
+77913594
+197042
+197042
+10045474
+10045474
+77891946
+77891946
+77891946
+#extra
+90448279
+59242457
+59242457
+9272381
+42741437
+42741437
+42741437
+78135071
+78135071
+41524885
+41524885
+46772449
+5530780
+58858807
+8728498
+!side
+74689476
diff --git a/Decks/AI_Labrynth.ydk b/Decks/AI_Labrynth.ydk
new file mode 100644
index 00000000..d5bcea37
--- /dev/null
+++ b/Decks/AI_Labrynth.ydk
@@ -0,0 +1,59 @@
+#created by ...
+#main
+81497285
+81497285
+2347656
+41165831
+73602965
+73602965
+75730490
+1225009
+1225009
+1225009
+37629703
+37629703
+37629703
+14558127
+14558127
+14558127
+23434538
+23434538
+23434538
+74018812
+74018812
+74018812
+2511
+2511
+2511
+49238328
+49238328
+5380979
+5380979
+6351147
+6351147
+10045474
+10045474
+10045474
+30748475
+53417695
+83326048
+92714517
+92714517
+92714517
+#extra
+22850702
+22850702
+93039339
+93039339
+29479265
+93084621
+93084621
+24269961
+24269961
+24269961
+67680512
+67680512
+29301450
+71607202
+94259633
+!side
diff --git a/Decks/AI_Maliss.ydk b/Decks/AI_Maliss.ydk
new file mode 100644
index 00000000..6c185722
--- /dev/null
+++ b/Decks/AI_Maliss.ydk
@@ -0,0 +1,58 @@
+#created by MDPro3
+#main
+68337209
+24224830
+20726052
+23434538
+30118811
+30118811
+75500286
+20938824
+10045474
+24224830
+96676583
+14558127
+27204311
+32061192
+20938824
+40366667
+40366667
+10045474
+68337209
+30118811
+94722358
+40366667
+34267821
+96676583
+3723262
+14558127
+23434538
+32061192
+10045474
+93453053
+69272449
+20938824
+69272449
+65681983
+69272449
+14558127
+32061192
+73628505
+68337209
+96676583
+#extra
+39138610
+5043010
+86066372
+4280258
+21848500
+46947713
+95454996
+68059897
+29301450
+59859086
+52698008
+98978921
+30342076
+24842059
+60303245
\ No newline at end of file
diff --git a/Decks/AI_MalissOCG.ydk b/Decks/AI_MalissOCG.ydk
new file mode 100644
index 00000000..a28077bf
--- /dev/null
+++ b/Decks/AI_MalissOCG.ydk
@@ -0,0 +1,59 @@
+#created by ...
+#main
+91800273
+91800273
+42141493
+42141493
+42141493
+3723262
+96676583
+96676583
+30118811
+30118811
+69272449
+69272449
+69272449
+32061192
+32061192
+32061192
+20938824
+20938824
+20938824
+14558128
+14558128
+14558128
+23434538
+23434538
+75500286
+24224830
+24224830
+93453053
+68337209
+68337209
+68337209
+10045474
+10045474
+10045474
+20726052
+40366667
+40366667
+40366667
+57111661
+94722358
+#extra
+64211118
+39138610
+9940036
+9940036
+92422871
+92422871
+92422871
+21848500
+68059897
+95454996
+46947713
+59859086
+9763474
+52698008
+30342076
+!side
diff --git a/Decks/AI_Ryzeal.ydk b/Decks/AI_Ryzeal.ydk
new file mode 100644
index 00000000..a7f68416
--- /dev/null
+++ b/Decks/AI_Ryzeal.ydk
@@ -0,0 +1,74 @@
+#created by ...
+#main
+8633261
+8633261
+8633261
+35844557
+35844557
+35844557
+72238166
+34022970
+34022970
+34022970
+42141493
+42141493
+84192580
+87126721
+14558127
+14558127
+14558127
+59438930
+59438930
+23434538
+23434538
+94145021
+97268402
+97268402
+97268402
+7477101
+7477101
+7477101
+25311006
+35261759
+35261759
+85106525
+24224830
+24224830
+60394026
+65681983
+6798031
+10045474
+10045474
+10045474
+#extra
+9940036
+34909328
+34909328
+2061963
+7511613
+7511613
+45852939
+45852939
+6983839
+90590303
+46772449
+16643334
+21044178
+66011101
+8728498
+!side
+20292186
+34267821
+34267821
+34267821
+67173574
+18144507
+19613556
+35269904
+15693423
+83326048
+83326048
+83326048
+41420027
+41420027
+41420027
diff --git a/Decks/AI_SuperheavySamurai.ydk b/Decks/AI_SuperheavySamurai.ydk
new file mode 100644
index 00000000..3e9a7841
--- /dev/null
+++ b/Decks/AI_SuperheavySamurai.ydk
@@ -0,0 +1,59 @@
+#created by ...
+#main
+83334932
+83334932
+83334932
+82112494
+82112494
+82112494
+19510093
+19510093
+34496660
+34496660
+34496660
+90361010
+90361010
+90361010
+78391364
+78391364
+56727340
+56727340
+14624296
+95500396
+10604644
+23434538
+23434538
+23434538
+14558127
+14558127
+14558127
+49036338
+38814750
+38814750
+97268402
+97268402
+73642296
+73642296
+59438930
+59438930
+59438930
+94145021
+94145021
+94145021
+#extra
+64193046
+84815190
+30983281
+44508094
+27548199
+76471944
+74586817
+28912357
+38342335
+27381364
+22423493
+65741786
+33918636
+33918636
+33918636
+!side
diff --git a/Decks/AI_Swordsoul.ydk b/Decks/AI_Swordsoul.ydk
index d5374fb8..2adb8e2a 100644
--- a/Decks/AI_Swordsoul.ydk
+++ b/Decks/AI_Swordsoul.ydk
@@ -1,9 +1,8 @@
-#created by wobbaone
+#created by ...
#main
+27204311
87052196
87052196
-87052196
-23431858
23431858
93490856
93490856
@@ -20,39 +19,40 @@
14558127
14558127
14558127
-98159737
+23434538
+23434538
+23434538
+97268402
+97268402
+97268402
98159737
35261759
35261759
-35261759
56465981
56465981
56465981
-65124425
-65124425
-65124425
93850690
-25789292
-25789292
-25789292
+24224830
+24224830
+65681983
10045474
10045474
10045474
14821890
14821890
#extra
-40139997
-96633955
+42632209
+60465049
96633955
84815190
-19048328
+47710198
9464441
5041348
69248256
69248256
83755611
43202238
-73580471
+78917791
32519092
32519092
32519092
diff --git a/Decks/AI_Yubel.ydk b/Decks/AI_Yubel.ydk
new file mode 100644
index 00000000..fa7d36ee
--- /dev/null
+++ b/Decks/AI_Yubel.ydk
@@ -0,0 +1,58 @@
+#created by MDPro3
+#main
+4779091
+90829280
+90829280
+90829280
+78371393
+78371393
+78371393
+41165831
+60764609
+28803166
+14558127
+14558127
+14558127
+23434538
+23434538
+81034083
+81034083
+81034083
+97651498
+27439792
+24215921
+24215921
+62318994
+62318994
+62318994
+73628505
+65261141
+93729896
+93729896
+93729896
+80312545
+80312545
+80312545
+98567237
+24224830
+24224830
+65681983
+99989863
+80801743
+10045474
+#extra
+82135803
+80453041
+93860227
+26096328
+56910167
+70636044
+79559912
+24269961
+67680512
+12067160
+29301450
+29479265
+71818935
+2463794
+60303245
\ No newline at end of file
diff --git a/Decks/AI_Zefra.ydk b/Decks/AI_Zefra.ydk
new file mode 100644
index 00000000..a8c7aff6
--- /dev/null
+++ b/Decks/AI_Zefra.ydk
@@ -0,0 +1,79 @@
+#created by ...
+#main
+49036338
+29432356
+29432356
+29432356
+3611830
+76794549
+5560911
+96227613
+96227613
+27354732
+58990362
+58990362
+58990362
+20773176
+22617205
+69610326
+14785765
+95401059
+31314549
+96223501
+52159691
+21495657
+21495657
+57777714
+92559258
+92559258
+92559258
+38814750
+38814750
+38814750
+72291078
+23434538
+23434538
+23434538
+94693857
+9742784
+19580308
+11609969
+61488417
+2295440
+23581825
+38943357
+38943357
+38943357
+41620959
+41620959
+41620959
+73628505
+74580251
+74580251
+74580251
+81439173
+24224830
+24224830
+46372010
+32354768
+32354768
+32354768
+35561352
+57831349
+#extra
+27548199
+74586817
+80696379
+33158448
+65536818
+79606837
+88581108
+96157835
+73347079
+74997493
+44097050
+24094258
+50588353
+36429703
+41999284
+!side
diff --git a/ExecutorBase/ExecutorBase.csproj b/ExecutorBase/ExecutorBase.csproj
index 4f405212..dbb6c04b 100644
--- a/ExecutorBase/ExecutorBase.csproj
+++ b/ExecutorBase/ExecutorBase.csproj
@@ -10,7 +10,7 @@
ExecutorBase
ExecutorBase
v4.0
- 6
+ 7
512
true
@@ -72,6 +72,7 @@
+
diff --git a/ExecutorBase/Game/AI/AIUtil.cs b/ExecutorBase/Game/AI/AIUtil.cs
index 3b7943e6..1a00d2ce 100644
--- a/ExecutorBase/Game/AI/AIUtil.cs
+++ b/ExecutorBase/Game/AI/AIUtil.cs
@@ -442,5 +442,94 @@ public IList CheckSelectCount(IList _selected, IList> GetXyzMaterials(IList param_pre_materials, int level, int material_count, bool material_count_above = false, Func material_func = null)
+ {
+ List> result = new List>();
+ List pre_materials = param_pre_materials?
+ .Where(card => card != null && !(card.IsFacedown() && card.Location == CardLocation.MonsterZone) && card.Level == level)
+ .ToList();
+ if (pre_materials == null || pre_materials.Count < material_count) return result;
+ Func filter = material_func ?? (card => true);
+ for (int i = 1; i < Math.Pow(2, pre_materials.Count); i++)
+ {
+ List temp_materials = new List();
+ string binaryString = Convert.ToString(i, 2).PadLeft(pre_materials.Count, '0');
+ char[] reversedBinaryChars = binaryString.Reverse().ToArray();
+ for (int j = 0; j < pre_materials.Count; j++)
+ {
+ if (reversedBinaryChars[j] == '1' && filter(pre_materials[j]))
+ {
+ temp_materials.Add(pre_materials[j]);
+ }
+ }
+ if (material_count_above ? temp_materials.Count >= material_count : temp_materials.Count == material_count)
+ {
+ result.Add(temp_materials);
+ }
+ }
+ return result;
+ }
+
+ public List> GetSynchroMaterials(IList param_pre_materials, int level, int tuner_count, int n_tuner_count, bool tuner_count_above = false, bool n_tuner_count_above = true, Func tuner_func = null, Func n_tuner_func = null)
+ {
+ List> allByLevel = new List>();
+ List pre_materials = param_pre_materials?
+ .Where(card => card != null && !(card.IsFacedown() && card.Location == CardLocation.MonsterZone) && card.Level > 0)
+ .ToList();
+ if (pre_materials == null || pre_materials.Count < tuner_count + n_tuner_count) return allByLevel;
+
+ Func tunerFilter = tuner_func ?? (card => true);
+ Func nonTunerFilter = n_tuner_func ?? (card => true);
+
+ pre_materials.Sort(CardContainer.CompareCardLevel);
+ Stack