Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
W
windbot
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alstroemeria-silentlove
windbot
Commits
c32eb21c
Commit
c32eb21c
authored
Oct 29, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
translate to English
parent
e37b72b1
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1183 additions
and
1196 deletions
+1183
-1196
Game/AI/Decks/RainbowExecutor.cs
Game/AI/Decks/RainbowExecutor.cs
+194
-197
Game/AI/Decks/Rank5Executor.cs
Game/AI/Decks/Rank5Executor.cs
+142
-151
Game/AI/Decks/ST1732Executor.cs
Game/AI/Decks/ST1732Executor.cs
+201
-200
Game/AI/Decks/ToadallyAwesomeExecutor.cs
Game/AI/Decks/ToadallyAwesomeExecutor.cs
+235
-231
Game/AI/Decks/YosenjuExecutor.cs
Game/AI/Decks/YosenjuExecutor.cs
+183
-191
Game/AI/Decks/ZoodiacExecutor.cs
Game/AI/Decks/ZoodiacExecutor.cs
+228
-226
No files found.
Game/AI/Decks/RainbowExecutor.cs
View file @
c32eb21c
...
...
@@ -11,142 +11,140 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
幻壳龙
=
18108166
,
幻之狮鹫
=
74852097
,
龙剑士卓辉星灵摆
=
75195825
,
曼陀罗天使号手
=
87979586
,
炼装勇士金驰
=
33256280
,
打喷嚏的河马龙
=
51934376
,
救援兔
=
85138716
,
粗人预料
=
911883
,
鹰身女妖的羽毛扫
=
18144506
,
强欲而贪欲之壶
=
35261759
,
死者苏生
=
83764718
,
地碎
=
97169186
,
沙尘防护罩尘埃之力
=
40838625
,
波纹防护罩波浪之力
=
47475363
,
业炎防护罩火焰之力
=
75249652
,
神风防护罩大气之力
=
5650082
,
神圣防护罩反射镜力
=
44095762
,
邪恶防护罩暗黑之力
=
20522190
,
奈落的落穴
=
29401950
,
虫惑的落穴
=
29616929
,
星光大道
=
58120309
,
红莲魔龙右红痕
=
80666118
,
爆龙剑士点火星日珥
=
18239909
,
星尘龙
=
44508094
,
闪光
No39
希望皇霍普电光皇
=
56832966
,
N
o37
希望织龙蜘蛛鲨
=
37279508
,
N
o39
希望皇霍普
=
84013237
,
进化帝半鸟龙
=
74294676
,
N
o59
背反之料理人
=
82697249
,
鸟铳士卡斯泰尔
=
82633039
,
辉光子帕拉迪奥斯
=
61344030
,
电光千鸟
=
22653490
,
励辉士入魔蝇王
=
46772449
,
我我我枪手
=
12014404
,
入魔梦魇骑士
=
359563
,
芙莉西亚之虫惑魔
=
6511113
}
private
bool
已通常召唤
=
false
;
MysteryShellDragon
=
18108166
,
PhantomGryphon
=
74852097
,
MasterPendulumTheDracoslayer
=
75195825
,
AngelTrumpeter
=
87979586
,
MetalfoesGoldriver
=
33256280
,
Kabazauls
=
51934376
,
RescueRabbit
=
85138716
,
UnexpectedDai
=
911883
,
HarpiesFeatherDuster
=
18144506
,
PotOfDesires
=
35261759
,
MonsterReborn
=
83764718
,
SmashingGround
=
97169186
,
QuakingMirrorForce
=
40838625
,
DrowningMirrorForce
=
47475363
,
BlazingMirrorForce
=
75249652
,
StormingMirrorForce
=
5650082
,
MirrorForce
=
44095762
,
DarkMirrorForce
=
20522190
,
BottomlessTrapHole
=
29401950
,
TraptrixTrapHoleNightmare
=
29616929
,
StarlightRoad
=
58120309
,
ScarlightRedDragonArchfiend
=
80666118
,
IgnisterProminenceTheBlastingDracoslayer
=
18239909
,
StardustDragon
=
44508094
,
NumberS39UtopiatheLightning
=
56832966
,
N
umber37HopeWovenDragonSpiderShark
=
37279508
,
N
umber39Utopia
=
84013237
,
EvolzarLaggia
=
74294676
,
N
umber59CrookedCook
=
82697249
,
CastelTheSkyblasterMusketeer
=
82633039
,
StarliegePaladynamo
=
61344030
,
LightningChidori
=
22653490
,
EvilswarmExcitonKnight
=
46772449
,
GagagaCowboy
=
12014404
,
EvilswarmNightmare
=
359563
,
TraptrixRafflesia
=
6511113
}
private
bool
NormalSummoned
=
false
;
public
RainbowExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
粗人预料
,
粗人预料效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
救援兔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
救援兔
,
救援兔效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而贪欲之壶
,
DefaultPotOfDesires
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
曼陀罗天使号手
,
曼陀罗天使号手通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
打喷嚏的河马龙
,
打喷嚏的河马龙通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
龙剑士卓辉星灵摆
,
龙剑士卓辉星灵摆通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
幻壳龙
,
幻壳龙通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
幻之狮鹫
,
幻之狮鹫通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
炼装勇士金驰
,
炼装勇士金驰通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
通常召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
我我我枪手
,
我我我枪手特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
励辉士入魔蝇王
,
励辉士入魔蝇王特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
励辉士入魔蝇王
,
励辉士入魔蝇王效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
进化帝半鸟龙
,
进化帝半鸟龙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
进化帝半鸟龙
,
进化帝半鸟龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
入魔梦魇骑士
,
入魔梦魇骑士特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
入魔梦魇骑士
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
辉光子帕拉迪奥斯
,
辉光子帕拉迪奥斯特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
辉光子帕拉迪奥斯
,
辉光子帕拉迪奥斯效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
o37
希望织龙蜘蛛鲨
,
No37
希望织龙蜘蛛鲨特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
o37
希望织龙蜘蛛鲨
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
,
芙莉西亚之虫惑魔特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
地碎
,
DefaultSmashingGround
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
红莲魔龙右红痕
,
红莲魔龙右红痕特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
红莲魔龙右红痕
,
红莲魔龙右红痕效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
o39
希望皇霍普
,
电光皇特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
星尘龙
,
星尘龙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星尘龙
,
星尘龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
o59
背反之料理人
,
No59
背反之料理人特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
o59
背反之料理人
,
No59
背反之料理人效果
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
业炎防护罩火焰之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神风防护罩大气之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
邪恶防护罩暗黑之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
奈落的落穴
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虫惑的落穴
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
业炎防护罩火焰之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神风防护罩大气之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
邪恶防护罩暗黑之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
奈落的落穴
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虫惑的落穴
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
UnexpectedDai
,
UnexpectedDaiEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
RescueRabbit
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RescueRabbit
,
RescueRabbitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDesires
,
DefaultPotOfDesires
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
AngelTrumpeter
,
AngelTrumpeterSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Kabazauls
,
KabazaulsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MasterPendulumTheDracoslayer
,
MasterPendulumTheDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MysteryShellDragon
,
MysteryShellDragonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PhantomGryphon
,
PhantomGryphonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MetalfoesGoldriver
,
MetalfoesGoldriverSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
EvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
EvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvolzarLaggia
,
EvolzarLaggiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvolzarLaggia
,
EvolzarLaggiaEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmNightmare
,
EvilswarmNightmareSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmNightmare
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
LightningChidori
,
LightningChidoriSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
LightningChidori
,
LightningChidoriEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
umber37HopeWovenDragonSpiderShark
,
Number37HopeWovenDragonSpiderSharkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
umber37HopeWovenDragonSpiderShark
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TraptrixRafflesia
,
TraptrixRafflesiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TraptrixRafflesia
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SmashingGround
,
DefaultSmashingGround
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
CastelTheSkyblasterMusketeerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
CastelTheSkyblasterMusketeerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
ScarlightRedDragonArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
ScarlightRedDragonArchfiendEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
umber39Utopia
,
NumberS39UtopiatheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
StardustDragon
,
StardustDragonSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragon
,
StardustDragonEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
umber59CrookedCook
,
Number59CrookedCookSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
umber59CrookedCook
,
Number59CrookedCookEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BlazingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StormingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BottomlessTrapHole
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TraptrixTrapHoleNightmare
,
TrapSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BlazingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StormingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TraptrixTrapHoleNightmare
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
public
override
void
OnNewTurn
()
{
// 回合开始时重置状况
已通常召唤
=
false
;
NormalSummoned
=
false
;
}
public
override
bool
OnSelectHand
()
{
// 随机先后攻
return
Program
.
Rand
.
Next
(
2
)
>
0
;
}
...
...
@@ -157,101 +155,101 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
))
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
{
if
(
attacker
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
No39
希望皇霍普
))
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
N
o37
希望织龙蜘蛛鲨
,
true
,
true
))
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
N
umber37HopeWovenDragonSpiderShark
,
true
,
true
))
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
}
private
bool
粗人预料效果
()
private
bool
UnexpectedDaiEffect
()
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
救援兔
)
||
已通常召唤
)
if
(
Bot
.
HasInHand
((
int
)
CardId
.
RescueRabbit
)
||
NormalSummoned
)
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
幻壳龙
,
(
int
)
CardId
.
幻之狮鹫
(
int
)
CardId
.
MysteryShellDragon
,
(
int
)
CardId
.
PhantomGryphon
});
else
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
幻壳龙
))
AI
.
SelectCard
((
int
)
CardId
.
幻壳龙
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
打喷嚏的河马龙
))
AI
.
SelectCard
((
int
)
CardId
.
打喷嚏的河马龙
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
曼陀罗天使号手
))
AI
.
SelectCard
((
int
)
CardId
.
曼陀罗天使号手
);
if
(
Bot
.
HasInHand
((
int
)
CardId
.
MysteryShellDragon
))
AI
.
SelectCard
((
int
)
CardId
.
MysteryShellDragon
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
Kabazauls
))
AI
.
SelectCard
((
int
)
CardId
.
Kabazauls
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
AngelTrumpeter
))
AI
.
SelectCard
((
int
)
CardId
.
AngelTrumpeter
);
}
else
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
打喷嚏的河马龙
))
AI
.
SelectCard
((
int
)
CardId
.
打喷嚏的河马龙
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
龙剑士卓辉星灵摆
))
AI
.
SelectCard
((
int
)
CardId
.
龙剑士卓辉星灵摆
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
幻之狮鹫
))
AI
.
SelectCard
((
int
)
CardId
.
幻之狮鹫
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
曼陀罗天使号手
))
if
(
Bot
.
HasInHand
((
int
)
CardId
.
Kabazauls
))
AI
.
SelectCard
((
int
)
CardId
.
Kabazauls
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
MasterPendulumTheDracoslayer
))
AI
.
SelectCard
((
int
)
CardId
.
MasterPendulumTheDracoslayer
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
PhantomGryphon
))
AI
.
SelectCard
((
int
)
CardId
.
PhantomGryphon
);
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
AngelTrumpeter
))
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
炼装勇士金驰
,
(
int
)
CardId
.
龙剑士卓辉星灵摆
(
int
)
CardId
.
MetalfoesGoldriver
,
(
int
)
CardId
.
MasterPendulumTheDracoslayer
});
}
return
true
;
}
private
bool
救援兔效果
()
private
bool
RescueRabbitEffect
()
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
打喷嚏的河马龙
,
(
int
)
CardId
.
幻壳龙
(
int
)
CardId
.
Kabazauls
,
(
int
)
CardId
.
MysteryShellDragon
});
else
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
龙剑士卓辉星灵摆
,
(
int
)
CardId
.
幻之狮鹫
,
(
int
)
CardId
.
打喷嚏的河马龙
,
(
int
)
CardId
.
炼装勇士金驰
,
(
int
)
CardId
.
曼陀罗天使号手
(
int
)
CardId
.
MasterPendulumTheDracoslayer
,
(
int
)
CardId
.
PhantomGryphon
,
(
int
)
CardId
.
Kabazauls
,
(
int
)
CardId
.
MetalfoesGoldriver
,
(
int
)
CardId
.
AngelTrumpeter
});
return
true
;
}
private
bool
幻壳龙通常召唤
()
private
bool
MysteryShellDragonSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
幻壳龙
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
MysteryShellDragon
);
}
private
bool
幻之狮鹫通常召唤
()
private
bool
PhantomGryphonSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
幻之狮鹫
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
PhantomGryphon
);
}
private
bool
龙剑士卓辉星灵摆通常召唤
()
private
bool
MasterPendulumTheDracoslayerSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
龙剑士卓辉星灵摆
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
MasterPendulumTheDracoslayer
);
}
private
bool
曼陀罗天使号手通常召唤
()
private
bool
AngelTrumpeterSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
曼陀罗天使号手
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
AngelTrumpeter
);
}
private
bool
炼装勇士金驰通常召唤
()
private
bool
MetalfoesGoldriverSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
炼装勇士金驰
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
MetalfoesGoldriver
);
}
private
bool
打喷嚏的河马龙通常召唤
()
private
bool
KabazaulsSummon
()
{
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
打喷嚏的河马龙
);
return
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Kabazauls
);
}
private
bool
通常召唤
()
private
bool
NormalSummon
()
{
return
true
;
}
private
bool
我我我枪手特殊召唤
()
private
bool
GagagaCowboySummon
()
{
if
(
Duel
.
LifePoints
[
1
]
<=
800
)
{
...
...
@@ -261,14 +259,14 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
励辉士入魔蝇王特殊召唤
()
private
bool
EvilswarmExcitonKnightSummon
()
{
int
selfCount
=
Bot
.
GetMonsterCount
()
+
Bot
.
GetSpellCount
()
+
Bot
.
GetHandCount
();
int
oppoCount
=
Enemy
.
GetMonsterCount
()
+
Enemy
.
GetSpellCount
()
+
Enemy
.
GetHandCount
();
return
(
selfCount
-
1
<
oppoCount
)
&&
励辉士入魔蝇王效果
();
return
(
selfCount
-
1
<
oppoCount
)
&&
EvilswarmExcitonKnightEffect
();
}
private
bool
励辉士入魔蝇王效果
()
private
bool
EvilswarmExcitonKnightEffect
()
{
int
selfCount
=
Bot
.
GetMonsterCount
()
+
Bot
.
GetSpellCount
();
int
oppoCount
=
Enemy
.
GetMonsterCount
()
+
Enemy
.
GetSpellCount
();
...
...
@@ -290,14 +288,14 @@ namespace WindBot.Game.AI.Decks
return
(
selfCount
<
oppoCount
)
||
(
selfAttack
<
oppoAttack
);
}
private
bool
红莲魔龙右红痕特殊召唤
()
private
bool
ScarlightRedDragonArchfiendSummon
()
{
int
selfBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Bot
,
true
);
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Enemy
,
false
);
return
(
selfBestAttack
<=
oppoBestAttack
&&
oppoBestAttack
<=
3000
)
||
红莲魔龙右红痕效果
();
return
(
selfBestAttack
<=
oppoBestAttack
&&
oppoBestAttack
<=
3000
)
||
ScarlightRedDragonArchfiendEffect
();
}
private
bool
红莲魔龙右红痕效果
()
private
bool
ScarlightRedDragonArchfiendEffect
()
{
int
selfCount
=
0
;
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
...
@@ -319,27 +317,27 @@ namespace WindBot.Game.AI.Decks
return
(
oppoCount
>
0
&&
selfCount
<=
oppoCount
)
||
oppoCount
>
2
;
}
private
bool
鸟铳士卡斯泰尔特殊召唤
()
private
bool
CastelTheSkyblasterMusketeerSummon
()
{
return
AI
.
Utils
.
GetProblematicCard
()
!=
null
;
}
private
bool
鸟铳士卡斯泰尔效果
()
private
bool
CastelTheSkyblasterMusketeerEffect
()
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
鸟铳士卡斯泰尔
,
0
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
0
))
return
false
;
AI
.
SelectNextCard
(
AI
.
Utils
.
GetProblematicCard
());
return
true
;
}
private
bool
爆龙剑士点火星日珥特殊召唤
()
private
bool
IgnisterProminenceTheBlastingDracoslayerSummon
()
{
return
AI
.
Utils
.
GetProblematicCard
()
!=
null
;
}
private
bool
爆龙剑士点火星日珥效果
()
private
bool
IgnisterProminenceTheBlastingDracoslayerEffect
()
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
爆龙剑士点火星日珥
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
1
))
return
true
;
ClientCard
target1
=
null
;
ClientCard
target2
=
AI
.
Utils
.
GetProblematicCard
();
...
...
@@ -363,7 +361,6 @@ namespace WindBot.Game.AI.Decks
}
if
(
target2
==
null
&&
target1
!=
null
)
{
// 对面有P卡,随便吹另一张
foreach
(
ClientCard
spell
in
spells
)
{
if
(!
spell
.
Equals
(
target1
))
...
...
@@ -388,12 +385,12 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
N
o37
希望织龙蜘蛛鲨特殊召唤
()
private
bool
N
umber37HopeWovenDragonSpiderSharkSummon
()
{
return
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
1700
,
false
)
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
3600
,
true
);
}
private
bool
电光千鸟特殊召唤
()
private
bool
LightningChidoriSummon
()
{
List
<
ClientCard
>
monsters
=
Enemy
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
...
...
@@ -415,29 +412,29 @@ namespace WindBot.Game.AI.Decks
return
AI
.
Utils
.
GetProblematicCard
()
!=
null
;
}
private
bool
电光千鸟效果
()
private
bool
LightningChidoriEffect
()
{
ClientCard
problematicCard
=
AI
.
Utils
.
GetProblematicCard
();
AI
.
SelectNextCard
(
problematicCard
);
return
true
;
}
private
bool
星尘龙特殊召唤
()
private
bool
StardustDragonSummon
()
{
return
(
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
)
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2400
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
();
}
private
bool
星尘龙效果
()
private
bool
StardustDragonEffect
()
{
return
(
Card
.
Location
==
CardLocation
.
Grave
)
||
DefaultTrap
();
}
private
bool
进化帝半鸟龙特殊召唤
()
private
bool
EvolzarLaggiaSummon
()
{
return
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
1700
,
false
)
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2400
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
();
}
private
bool
入魔梦魇骑士特殊召唤
()
private
bool
EvilswarmNightmareSummon
()
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
...
...
@@ -447,9 +444,9 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
芙莉西亚之虫惑魔特殊召唤
()
private
bool
TraptrixRafflesiaSummon
()
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
()
&&
(
Bot
.
GetRemainingCount
((
int
)
CardId
.
奈落的落穴
,
1
)
+
Bot
.
GetRemainingCount
((
int
)
CardId
.
虫惑的落穴
,
1
))
>
0
)
if
(
AI
.
Utils
.
IsTurn1OrMain2
()
&&
(
Bot
.
GetRemainingCount
((
int
)
CardId
.
BottomlessTrapHole
,
1
)
+
Bot
.
GetRemainingCount
((
int
)
CardId
.
TraptrixTrapHoleNightmare
,
1
))
>
0
)
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
...
...
@@ -457,13 +454,13 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
N
o59
背反之料理人特殊召唤
()
private
bool
N
umber59CrookedCookSummon
()
{
return
((
Bot
.
GetMonsterCount
()
+
Bot
.
GetSpellCount
()
-
2
)
<=
1
)
&&
((
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
)
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2300
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
());
}
private
bool
N
o59
背反之料理人效果
()
private
bool
N
umber59CrookedCookEffect
()
{
if
(
Duel
.
Player
==
0
)
{
...
...
@@ -481,17 +478,17 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
进化帝半鸟龙效果
()
private
bool
EvolzarLaggiaEffect
()
{
return
DefaultTrap
();
}
private
bool
辉光子帕拉迪奥斯特殊召唤
()
private
bool
StarliegePaladynamoSummon
()
{
return
辉光子帕拉迪奥斯效果
();
return
StarliegePaladynamoEffect
();
}
private
bool
辉光子帕拉迪奥斯效果
()
private
bool
StarliegePaladynamoEffect
()
{
ClientCard
result
=
AI
.
Utils
.
GetOneEnemyBetterThanValue
(
2000
,
true
);
if
(
result
!=
null
)
...
...
@@ -502,14 +499,14 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
电光皇特殊召唤
()
private
bool
NumberS39UtopiatheLightningSummon
()
{
return
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
);
}
private
bool
陷阱卡覆盖
()
private
bool
TrapSet
()
{
return
!
Bot
.
HasInMonstersZone
((
int
)
CardId
.
N
o59
背反之料理人
,
true
,
true
);
return
!
Bot
.
HasInMonstersZone
((
int
)
CardId
.
N
umber59CrookedCook
,
true
,
true
);
}
}
}
Game/AI/Decks/Rank5Executor.cs
View file @
c32eb21c
...
...
@@ -11,86 +11,87 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
迷雾恶魔
=
28601770
,
电子龙
=
70095154
,
异热同心武器荒鹫激神爪
=
29353756
,
太阳风帆船
=
33911264
,
速攻同调士
=
20932152
,
发条士兵
=
12299841
,
画星宝宝
=
24610207
,
先史遗产黄金航天飞机
=
88552992
,
简易融合
=
1845204
,
二重召唤
=
43422537
,
旋风
=
5318639
,
月之书
=
14087893
,
超量组件
=
13032689
,
超量苏生
=
26708437
,
神圣防护罩反射镜力
=
44095762
,
激流葬
=
53582587
,
超量遮护罩
=
96457619
,
重装机甲装甲车龙
=
72959823
,
迅雷之骑士盖亚龙骑士
=
91949988
,
电子龙无限
=
10443957
,
始祖守护者提拉斯
=
31386180
,
No61
火山恐龙
=
29669359
,
鲨鱼要塞
=
50449881
,
电子龙新星
=
58069384
}
private
bool
已通常召唤
=
false
;
private
bool
已发动简易融合
=
false
;
private
bool
已发动二重召唤
=
false
;
private
bool
已特殊召唤电子龙无限
=
false
;
private
bool
已发动火山恐龙
=
false
;
MistArchfiend
=
28601770
,
CyberDragon
=
70095154
,
ZWEagleClaw
=
29353756
,
SolarWindJammer
=
33911264
,
QuickdrawSynchron
=
20932152
,
WindUpSoldier
=
12299841
,
StarDrawing
=
24610207
,
ChronomalyGoldenJet
=
88552992
,
InstantFusion
=
1845204
,
DoubleSummon
=
43422537
,
MysticalSpaceTyphoon
=
5318639
,
BookOfMoon
=
14087893
,
XyzUnit
=
13032689
,
XyzReborn
=
26708437
,
MirrorForce
=
44095762
,
TorrentialTribute
=
53582587
,
XyzVeil
=
96457619
,
PanzerDragon
=
72959823
,
GaiaDragonTheThunderCharger
=
91949988
,
CyberDragonInfinity
=
10443957
,
TirasKeeperOfGenesis
=
31386180
,
Number61Volcasaurus
=
29669359
,
SharkFortress
=
50449881
,
CyberDragonNova
=
58069384
}
private
bool
NormalSummoned
=
false
;
private
bool
InstantFusionUsed
=
false
;
private
bool
DoubleSummonUsed
=
false
;
private
bool
CyberDragonInfinitySummoned
=
false
;
private
bool
Number61VolcasaurusUsed
=
false
;
public
Rank5Executor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
月之书
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
旋风
,
DefaultMysticalSpaceTyphoon
);
//
优先出的超量怪兽
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电子龙新星
,
电子龙新星特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电子龙新星
,
电子龙新星效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电子龙无限
,
电子龙无限特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电子龙无限
,
电子龙无限效果
);
//
无副作用的5星怪兽
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电子龙
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
太阳风帆船
,
太阳风帆船特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
异热同心武器荒鹫激神爪
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
先史遗产黄金航天飞机
,
通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
先史遗产黄金航天飞机
,
先史遗产黄金航天飞机效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
画星宝宝
,
通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
发条士兵
,
通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
发条士兵
,
发条士兵效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
//
Cyber Dragon Infinity first
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragonNova
,
CyberDragonNovaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberDragonNova
,
CyberDragonNovaEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragonInfinity
,
CyberDragonInfinitySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberDragonInfinity
,
CyberDragonInfinityEffect
);
//
Level 5 monsters without side effects
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SolarWindJammer
,
SolarWindJammerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ZWEagleClaw
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ChronomalyGoldenJet
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ChronomalyGoldenJet
,
ChronomalyGoldenJetEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
StarDrawing
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
WindUpSoldier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
WindUpSoldier
,
WindUpSoldierEffect
);
// XYZ Monsters: Summon
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
o61
火山恐龙
,
No61
火山恐龙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
o61
火山恐龙
,
No61
火山恐龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
始祖守护者提拉斯
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
始祖守护者提拉斯
,
始祖守护者提拉斯效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
鲨鱼要塞
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鲨鱼要塞
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
umber61Volcasaurus
,
Number61VolcasaurusSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
N
umber61Volcasaurus
,
Number61VolcasaurusEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TirasKeeperOfGenesis
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TirasKeeperOfGenesis
,
TirasKeeperOfGenesisEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
迅雷之骑士盖亚龙骑士
,
迅雷之骑士盖亚龙骑士特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GaiaDragonTheThunderCharger
,
GaiaDragonTheThunderChargerSummon
);
//
有副作用的5星怪兽
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
速攻同调士
,
速攻同调士特殊召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
迷雾恶魔
,
迷雾恶魔通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
简易融合
,
简易融合效果
);
//
Level 5 monsters with side effects
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
QuickdrawSynchron
,
QuickdrawSynchronSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MistArchfiend
,
MistArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InstantFusion
,
InstantFusionEffect
);
// Useful spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
二重召唤
,
二重召唤效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
超量组件
,
超量组件效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DoubleSummon
,
DoubleSummonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzUnit
,
XyzUnitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
超量苏生
,
超量苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzReborn
,
XyzRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
重装机甲装甲车龙
,
重装机甲装甲车龙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PanzerDragon
,
PanzerDragonEffect
);
// Reposition
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
...
...
@@ -98,9 +99,9 @@ namespace WindBot.Game.AI.Decks
// Set and activate traps
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
超量遮护罩
,
超量遮护罩效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
激流葬
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzVeil
,
XyzVeilEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultTrap
);
}
public
override
bool
OnSelectHand
()
...
...
@@ -110,130 +111,120 @@ namespace WindBot.Game.AI.Decks
public
override
void
OnNewTurn
()
{
// 回合开始时重置状况
已通常召唤
=
false
;
已发动简易融合
=
false
;
已发动二重召唤
=
false
;
已特殊召唤电子龙无限
=
false
;
已发动火山恐龙
=
false
;
NormalSummoned
=
false
;
InstantFusionUsed
=
false
;
DoubleSummonUsed
=
false
;
CyberDragonInfinitySummoned
=
false
;
Number61VolcasaurusUsed
=
false
;
}
private
bool
特殊召唤不重复的超量怪兽
()
private
bool
NormalSummon
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
if
(
monster
.
Id
==
Card
.
Id
)
return
false
;
return
true
;
}
private
bool
通常召唤
()
{
已通常召唤
=
true
;
NormalSummoned
=
true
;
return
true
;
}
private
bool
太阳风帆船特殊召唤
()
private
bool
SolarWindJammerSummon
()
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
速攻同调士特殊召唤
()
private
bool
QuickdrawSynchronSummon
()
{
if
(!
需要出
5
星
())
if
(!
NeedLV5
())
return
false
;
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
速攻同调士
,
(
int
)
CardId
.
异热同心武器荒鹫激神爪
,
(
int
)
CardId
.
太阳风帆船
,
(
int
)
CardId
.
电子龙
,
(
int
)
CardId
.
迷雾恶魔
,
(
int
)
CardId
.
发条士兵
,
(
int
)
CardId
.
画星宝宝
,
(
int
)
CardId
.
先史遗产黄金航天飞机
(
int
)
CardId
.
QuickdrawSynchron
,
(
int
)
CardId
.
ZWEagleClaw
,
(
int
)
CardId
.
SolarWindJammer
,
(
int
)
CardId
.
CyberDragon
,
(
int
)
CardId
.
MistArchfiend
,
(
int
)
CardId
.
WindUpSoldier
,
(
int
)
CardId
.
StarDrawing
,
(
int
)
CardId
.
ChronomalyGoldenJet
});
return
true
;
}
private
bool
迷雾恶魔通常召唤
()
private
bool
MistArchfiendSummon
()
{
if
(!
需要出
5
星
())
if
(!
NeedLV5
())
return
false
;
AI
.
SelectOption
(
1
);
已通常召唤
=
true
;
NormalSummoned
=
true
;
return
true
;
}
private
bool
简易融合效果
()
private
bool
InstantFusionEffect
()
{
if
(!
需要出
5
星
())
if
(!
NeedLV5
())
return
false
;
已发动简易融合
=
true
;
InstantFusionUsed
=
true
;
return
true
;
}
private
bool
需要出
5
星
()
private
bool
NeedLV5
()
{
if
(
场上有
5
星怪兽
())
if
(
HaveLV5OnField
())
return
true
;
int
其他的
5
星资源数量
=
0
;
int
lv5Count
=
0
;
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
foreach
(
ClientCard
card
in
hand
)
{
if
(
card
.
Id
==
(
int
)
CardId
.
简易融合
&&
!
已发动简易融合
)
++
其他的
5
星资源数量
;
if
(
card
.
Id
==
(
int
)
CardId
.
速攻同调士
&&
Bot
.
Hand
.
ContainsMonsterWithLevel
(
4
))
++
其他的
5
星资源数量
;
if
(
card
.
Id
==
(
int
)
CardId
.
迷雾恶魔
&&
!
已通常召唤
)
++
其他的
5
星资源数量
;
if
(
card
.
Id
==
(
int
)
CardId
.
二重召唤
&&
二重召唤效果
())
++
其他的
5
星资源数量
;
if
(
card
.
Id
==
(
int
)
CardId
.
InstantFusion
&&
!
InstantFusionUsed
)
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
QuickdrawSynchron
&&
Bot
.
Hand
.
ContainsMonsterWithLevel
(
4
))
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
MistArchfiend
&&
!
NormalSummoned
)
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
DoubleSummon
&&
DoubleSummonEffect
())
++
lv5Count
;
}
if
(
其他的
5
星资源数量
>=
2
)
if
(
lv5Count
>=
2
)
return
true
;
return
false
;
}
private
bool
发条士兵效果
()
private
bool
WindUpSoldierEffect
()
{
return
场上有
5
星怪兽
();
return
HaveLV5OnField
();
}
private
bool
先史遗产黄金航天飞机效果
()
private
bool
ChronomalyGoldenJetEffect
()
{
return
Card
.
Level
==
4
;
}
private
bool
二重召唤效果
()
private
bool
DoubleSummonEffect
()
{
if
(!
已通常召唤
||
已发动二重召唤
)
if
(!
NormalSummoned
||
DoubleSummonUsed
)
return
false
;
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
foreach
(
ClientCard
card
in
hand
)
{
if
(
card
.
Id
==
(
int
)
CardId
.
迷雾恶魔
||
card
.
Id
==
(
int
)
CardId
.
发条士兵
||
card
.
Id
==
(
int
)
CardId
.
画星宝宝
||
card
.
Id
==
(
int
)
CardId
.
先史遗产黄金航天飞机
)
if
(
card
.
Id
==
(
int
)
CardId
.
MistArchfiend
||
card
.
Id
==
(
int
)
CardId
.
WindUpSoldier
||
card
.
Id
==
(
int
)
CardId
.
StarDrawing
||
card
.
Id
==
(
int
)
CardId
.
ChronomalyGoldenJet
)
{
已通常召唤
=
false
;
已发动二重召唤
=
true
;
NormalSummoned
=
false
;
DoubleSummonUsed
=
true
;
return
true
;
}
}
return
false
;
}
private
bool
电子龙新星特殊召唤
()
private
bool
CyberDragonNovaSummon
()
{
return
!
已特殊召唤电子龙无限
;
return
!
CyberDragonInfinitySummoned
;
}
private
bool
电子龙新星效果
()
private
bool
CyberDragonNovaEffect
()
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
电子龙新星
,
0
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
CyberDragonNova
,
0
))
{
return
true
;
}
...
...
@@ -248,13 +239,13 @@ namespace WindBot.Game.AI.Decks
}
}
private
bool
电子龙无限特殊召唤
()
private
bool
CyberDragonInfinitySummon
()
{
已特殊召唤电子龙无限
=
true
;
CyberDragonInfinitySummoned
=
true
;
return
true
;
}
private
bool
电子龙无限效果
()
private
bool
CyberDragonInfinityEffect
()
{
if
(
CurrentChain
.
Count
>
0
)
{
...
...
@@ -278,27 +269,27 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
N
o61
火山恐龙特殊召唤
()
private
bool
N
umber61VolcasaurusSummon
()
{
return
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2000
,
false
);
}
private
bool
N
o61
火山恐龙效果
()
private
bool
N
umber61VolcasaurusEffect
()
{
ClientCard
target
=
Enemy
.
MonsterZone
.
GetFloodgate
();
if
(
target
==
null
)
target
=
AI
.
Utils
.
GetOneEnemyBetterThanValue
(
2000
,
false
);
if
(
target
!=
null
)
{
AI
.
SelectCard
((
int
)
CardId
.
电子龙
);
AI
.
SelectCard
((
int
)
CardId
.
CyberDragon
);
AI
.
SelectNextCard
(
target
);
已发动火山恐龙
=
true
;
Number61VolcasaurusUsed
=
true
;
return
true
;
}
return
false
;
}
private
bool
始祖守护者提拉斯效果
()
private
bool
TirasKeeperOfGenesisEffect
()
{
ClientCard
target
=
AI
.
Utils
.
GetProblematicCard
();
if
(
target
!=
null
)
...
...
@@ -308,11 +299,11 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
迅雷之骑士盖亚龙骑士特殊召唤
()
private
bool
GaiaDragonTheThunderChargerSummon
()
{
if
(
已发动火山恐龙
&&
Bot
.
HasInMonstersZone
((
int
)
CardId
.
No61
火山恐龙
))
if
(
Number61VolcasaurusUsed
&&
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Number61Volcasaurus
))
{
AI
.
SelectCard
((
int
)
CardId
.
N
o61
火山恐龙
);
AI
.
SelectCard
((
int
)
CardId
.
N
umber61Volcasaurus
);
return
true
;
}
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
...
@@ -327,7 +318,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
超量苏生效果
()
private
bool
XyzRebornEffect
()
{
foreach
(
ClientCard
card
in
Bot
.
SpellZone
)
{
...
...
@@ -338,22 +329,22 @@ namespace WindBot.Game.AI.Decks
}
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
电子龙无限
,
(
int
)
CardId
.
电子龙新星
,
(
int
)
CardId
.
始祖守护者提拉斯
,
(
int
)
CardId
.
鲨鱼要塞
,
(
int
)
CardId
.
N
o61
火山恐龙
(
int
)
CardId
.
CyberDragonInfinity
,
(
int
)
CardId
.
CyberDragonNova
,
(
int
)
CardId
.
TirasKeeperOfGenesis
,
(
int
)
CardId
.
SharkFortress
,
(
int
)
CardId
.
N
umber61Volcasaurus
});
return
true
;
}
private
bool
超量组件效果
()
private
bool
XyzUnitEffect
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
return
monsters
.
Exists
(
p
=>
p
.
HasType
(
CardType
.
Xyz
));
}
private
bool
重装机甲装甲车龙效果
()
private
bool
PanzerDragonEffect
()
{
ClientCard
target
=
AI
.
Utils
.
GetProblematicCard
();
if
(
target
!=
null
)
...
...
@@ -384,12 +375,12 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
超量遮护罩效果
()
private
bool
XyzVeilEffect
()
{
List
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
{
if
(
spell
.
Id
==
(
int
)
CardId
.
超量遮护罩
&&
!
spell
.
IsFacedown
())
if
(
spell
.
Id
==
(
int
)
CardId
.
XyzVeil
&&
!
spell
.
IsFacedown
())
return
false
;
}
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
...
@@ -401,7 +392,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
场上有
5
星怪兽
()
private
bool
HaveLV5OnField
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
...
...
@@ -409,8 +400,8 @@ namespace WindBot.Game.AI.Decks
if
(
monster
.
HasType
(
CardType
.
Monster
)
&&
!
monster
.
HasType
(
CardType
.
Xyz
)
&&
(
monster
.
Level
==
5
||
monster
.
Id
==
(
int
)
CardId
.
画星宝宝
||
(
monster
.
Id
==
(
int
)
CardId
.
发条士兵
)
&&
!
monster
.
Equals
(
Card
)))
||
monster
.
Id
==
(
int
)
CardId
.
StarDrawing
||
(
monster
.
Id
==
(
int
)
CardId
.
WindUpSoldier
)
&&
!
monster
.
Equals
(
Card
)))
return
true
;
}
return
false
;
...
...
Game/AI/Decks/ST1732Executor.cs
View file @
c32eb21c
...
...
@@ -11,174 +11,175 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
数字机灵
=
32295838
,
比特机灵
=
36211150
,
双汇编亚龙
=
7445307
,
引导交错鹿
=
70950698
,
猞猁连接杀手
=
35595518
,
RAM
云雄羊
=
9190563
,
ROM
云雌羊
=
44956694
,
均衡负载王
=
8567955
,
反向连接兽
=
71172240
,
克莱因客户端蚁
=
45778242
,
网络小龙
=
62706865
,
点阵图跳离士
=
18789533
,
精神操作
=
37520316
,
黑洞
=
53129443
,
死者苏生
=
83764718
,
旋风
=
5318639
,
宇宙旋风
=
8267140
,
月之书
=
14087893
,
电脑网后门
=
43839002
,
月镜盾
=
19508728
,
电脑网宇宙
=
61583217
,
奈落的落穴
=
29401950
,
神圣防护罩反射镜力
=
44095762
,
激流葬
=
53582587
,
重编码存活
=
70238111
,
次元障壁
=
83326048
,
强制脱出装置
=
94192409
,
神之通告
=
40605147
,
解码语者
=
1861629
,
编码语者
=
6622715
,
三栅极男巫
=
32617464
,
蜜罐机器人
=
34472920
,
二进制女巫
=
79016563
,
连接蜘蛛
=
98978921
,
引导鹿衍生物
=
70950699
}
bool
已发动均衡负载王
=
false
;
Digitron
=
32295838
,
Bitron
=
36211150
,
DualAssembloom
=
7445307
,
BootStagguard
=
70950698
,
Linkslayer
=
35595518
,
RAMClouder
=
9190563
,
ROMCloudia
=
44956694
,
BalancerLord
=
8567955
,
Backlinker
=
71172240
,
Kleinant
=
45778242
,
Draconnet
=
62706865
,
DotScaper
=
18789533
,
MindControl
=
37520316
,
DarkHole
=
53129443
,
MonsterReborn
=
83764718
,
MysticalSpaceTyphoon
=
5318639
,
CosmicCyclone
=
8267140
,
BookOfMoon
=
14087893
,
CynetBackdoor
=
43839002
,
MoonMirrorShield
=
19508728
,
CynetUniverse
=
61583217
,
BottomlessTrapHole
=
29401950
,
MirrorForce
=
44095762
,
TorrentialTribute
=
53582587
,
RecodedAlive
=
70238111
,
DimensionalBarrier
=
83326048
,
CompulsoryEvacuationDevice
=
94192409
,
SolemnStrike
=
40605147
,
DecodeTalker
=
1861629
,
EncodeTalker
=
6622715
,
TriGateWizard
=
32617464
,
Honeybot
=
34472920
,
BinarySorceress
=
79016563
,
LinkSpider
=
98978921
,
StagToken
=
70950699
}
bool
BalancerLordUsed
=
false
;
public
ST1732Executor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
旋风
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
月之书
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电脑网宇宙
,
电脑网宇宙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CynetUniverse
,
CynetUniverseEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
猞猁连接杀手
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
猞猁连接杀手
,
猞猁连接杀手效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Linkslayer
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Linkslayer
,
LinkslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
连接蜘蛛
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
连接蜘蛛
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
精神操作
,
精神操作效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
反向连接兽
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
反向连接兽
,
反向连接兽效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MindControl
,
MindControlEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Backlinker
,
BacklinkerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
引导交错鹿
,
引导交错鹿效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BootStagguard
,
BootStagguardEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
死者苏生
,
死者苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
月镜盾
,
月镜盾效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MoonMirrorShield
,
MoonMirrorShieldEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电脑网后门
,
电脑网后门效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
重编码存活
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CynetBackdoor
,
CynetBackdoorEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RecodedAlive
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
均衡负载王
,
均衡负载王通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
BalancerLord
,
BalancerLordSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROM
云雌羊
,
ROM
云雌羊通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ROM
云雌羊
,
ROM
云雌羊效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROM
Cloudia
,
ROMCloudiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ROM
Cloudia
,
ROMCloudiaEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
网络小龙
,
网络小龙通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
网络小龙
,
网络小龙效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Draconnet
,
DraconnetSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Draconnet
,
DraconnetEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
克莱因客户端蚁
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
克莱因客户端蚁
,
克莱因客户端蚁效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Kleinant
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Kleinant
,
KleinantEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
RAM
云雄羊
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RAM
云雄羊
,
RAM
云雄羊效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
RAM
Clouder
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RAM
Clouder
,
RAMClouderEffect
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
点阵图跳离士
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
点阵图跳离士
,
点阵图跳离士效果
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
DotScaper
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DotScaper
,
DotScaperEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
均衡负载王
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROM
云雌羊
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
网络小龙
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
反向连接兽
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
数字机灵
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
比特机灵
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
BalancerLord
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROM
Cloudia
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Draconnet
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Digitron
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Bitron
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
均衡负载王
,
均衡负载王效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BalancerLord
,
BalancerLordEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
解码语者
,
连接召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
解码语者
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DecodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DecodeTalker
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
三栅极男巫
,
连接召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
三栅极男巫
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TriGateWizard
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TriGateWizard
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
编码语者
,
连接召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
编码语者
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EncodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EncodeTalker
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
蜜罐机器人
,
连接召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
二进制女巫
,
连接召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
二进制女巫
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Honeybot
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
BinarySorceress
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BinarySorceress
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
电脑网后门
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
重编码存活
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CynetBackdoor
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
RecodedAlive
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之通告
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
强制脱出装置
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
次元障壁
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
激流葬
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
奈落的落穴
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
月之书
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
宇宙旋风
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
旋风
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DimensionalBarrier
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BookOfMoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强制脱出装置
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
次元障壁
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
激流葬
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
奈落的落穴
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalBarrier
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
public
override
bool
OnSelectHand
()
{
//
抢后攻
//
go second
return
false
;
}
public
override
void
OnNewTurn
()
{
//
回合开始时重置状况
已发动均衡负载王
=
false
;
//
reset
BalancerLordUsed
=
false
;
}
public
override
int
OnSelectOption
(
IList
<
int
>
options
)
{
//
月镜盾回卡组底
//
put Moon Mirror Shield to the bottom of deck
return
options
.
Count
==
2
?
1
:
0
;
}
public
override
bool
OnSelectYesNo
(
int
desc
)
{
if
(
desc
==
210
)
//
是否要继续选择?
if
(
desc
==
210
)
//
Continue selecting? (Link Summoning)
return
false
;
if
(
desc
==
31
)
//
是否直接攻击?
if
(
desc
==
31
)
//
Direct Attack?
return
true
;
return
base
.
OnSelectYesNo
(
desc
);
}
private
bool
猞猁连接杀手效果
()
private
bool
LinkslayerEffect
()
{
IList
<
ClientCard
>
targets
=
Enemy
.
GetSpells
();
if
(
targets
.
Count
>
0
)
{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
双汇编亚龙
,
(
int
)
CardId
.
比特机灵
,
(
int
)
CardId
.
数字机灵
,
(
int
)
CardId
.
重编码存活
(
int
)
CardId
.
DualAssembloom
,
(
int
)
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
(
int
)
CardId
.
RecodedAlive
});
AI
.
SelectNextCard
(
targets
);
return
true
;
...
...
@@ -186,7 +187,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
精神操作效果
()
private
bool
MindControlEffect
()
{
ClientCard
target
=
AI
.
Utils
.
GetAnyEnemyMonster
();
if
(
target
!=
null
)
...
...
@@ -197,34 +198,34 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
反向连接兽效果
()
private
bool
BacklinkerEffect
()
{
return
(
Bot
.
MonsterZone
[
5
]
==
null
)
&&
(
Bot
.
MonsterZone
[
6
]
==
null
);
}
private
bool
引导交错鹿效果
()
private
bool
BootStagguardEffect
()
{
if
(
Card
.
Location
!=
CardLocation
.
Hand
)
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
死者苏生效果
()
private
bool
MonsterRebornEffect
()
{
List
<
int
>
targets
=
new
List
<
int
>
{
(
int
)
CardId
.
解码语者
,
(
int
)
CardId
.
编码语者
,
(
int
)
CardId
.
三栅极男巫
,
(
int
)
CardId
.
二进制女巫
,
(
int
)
CardId
.
蜜罐机器人
,
(
int
)
CardId
.
双汇编亚龙
,
(
int
)
CardId
.
引导交错鹿
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
ROM
云雌羊
,
(
int
)
CardId
.
猞猁连接杀手
,
(
int
)
CardId
.
RAM
云雄羊
,
(
int
)
CardId
.
反向连接兽
,
(
int
)
CardId
.
克莱因客户端蚁
(
int
)
CardId
.
DecodeTalker
,
(
int
)
CardId
.
EncodeTalker
,
(
int
)
CardId
.
TriGateWizard
,
(
int
)
CardId
.
BinarySorceress
,
(
int
)
CardId
.
Honeybot
,
(
int
)
CardId
.
DualAssembloom
,
(
int
)
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROM
Cloudia
,
(
int
)
CardId
.
Linkslayer
,
(
int
)
CardId
.
RAM
Clouder
,
(
int
)
CardId
.
Backlinker
,
(
int
)
CardId
.
Kleinant
};
if
(!
Bot
.
HasInGraveyard
(
targets
))
{
...
...
@@ -234,7 +235,7 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
月镜盾效果
()
private
bool
MoonMirrorShieldEffect
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
...
...
@@ -245,7 +246,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
电脑网宇宙效果
()
private
bool
CynetUniverseEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
Hand
)
return
DefaultField
();
...
...
@@ -261,7 +262,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
电脑网后门效果
()
private
bool
CynetBackdoorEffect
()
{
if
(!(
Duel
.
Player
==
0
&&
Duel
.
Phase
==
DuelPhase
.
Main2
)
&&
!(
Duel
.
Player
==
1
&&
(
Duel
.
Phase
==
DuelPhase
.
BattleStart
||
Duel
.
Phase
==
DuelPhase
.
End
)))
...
...
@@ -291,7 +292,7 @@ namespace WindBot.Game.AI.Decks
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
均衡负载王
)
if
(
monster
.
Id
==
(
int
)
CardId
.
BalancerLord
)
{
AI
.
SelectCard
(
monster
);
selected
=
true
;
...
...
@@ -315,99 +316,99 @@ namespace WindBot.Game.AI.Decks
{
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
ROM
云雌羊
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
克莱因客户端蚁
,
(
int
)
CardId
.
网络小龙
,
(
int
)
CardId
.
反向连接兽
(
int
)
CardId
.
ROM
Cloudia
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
(
int
)
CardId
.
Draconnet
,
(
int
)
CardId
.
Backlinker
});
return
true
;
}
return
false
;
}
private
bool
均衡负载王通常召唤
()
private
bool
BalancerLordSummon
()
{
return
!
已发动均衡负载王
;
return
!
BalancerLordUsed
;
}
private
bool
均衡负载王效果
()
private
bool
BalancerLordEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
Removed
)
return
true
;
bool
hastarget
=
Bot
.
HasInHand
(
new
List
<
int
>
{
(
int
)
CardId
.
网络小龙
,
(
int
)
CardId
.
克莱因客户端蚁
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
ROM
云雌羊
,
(
int
)
CardId
.
RAM
云雄羊
,
(
int
)
CardId
.
点阵图跳离士
(
int
)
CardId
.
Draconnet
,
(
int
)
CardId
.
Kleinant
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROM
Cloudia
,
(
int
)
CardId
.
RAM
Clouder
,
(
int
)
CardId
.
DotScaper
});
if
(
hastarget
&&
!
已发动均衡负载王
)
if
(
hastarget
&&
!
BalancerLordUsed
)
{
已发动均衡负载王
=
true
;
BalancerLordUsed
=
true
;
return
true
;
}
return
false
;
}
private
bool
ROM
云雌羊通常召唤
()
private
bool
ROM
CloudiaSummon
()
{
return
Bot
.
HasInGraveyard
(
new
List
<
int
>
{
(
int
)
CardId
.
引导交错鹿
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
克莱因客户端蚁
,
(
int
)
CardId
.
猞猁连接杀手
,
(
int
)
CardId
.
网络小龙
,
(
int
)
CardId
.
RAM
云雄羊
(
int
)
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
(
int
)
CardId
.
Linkslayer
,
(
int
)
CardId
.
Draconnet
,
(
int
)
CardId
.
RAM
Clouder
});
}
private
bool
ROM
云雌羊效果
()
private
bool
ROM
CloudiaEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
引导交错鹿
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
克莱因客户端蚁
,
(
int
)
CardId
.
猞猁连接杀手
,
(
int
)
CardId
.
网络小龙
,
(
int
)
CardId
.
RAM
云雄羊
(
int
)
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
(
int
)
CardId
.
Linkslayer
,
(
int
)
CardId
.
Draconnet
,
(
int
)
CardId
.
RAM
Clouder
});
return
true
;
}
else
{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
克莱因客户端蚁
,
(
int
)
CardId
.
RAM
云雄羊
,
(
int
)
CardId
.
点阵图跳离士
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
(
int
)
CardId
.
RAM
Clouder
,
(
int
)
CardId
.
DotScaper
});
return
true
;
}
}
private
bool
网络小龙通常召唤
()
private
bool
DraconnetSummon
()
{
return
Bot
.
GetRemainingCount
((
int
)
CardId
.
数字机灵
,
1
)
>
0
||
Bot
.
GetRemainingCount
((
int
)
CardId
.
比特机灵
,
1
)
>
0
;
return
Bot
.
GetRemainingCount
((
int
)
CardId
.
Digitron
,
1
)
>
0
||
Bot
.
GetRemainingCount
((
int
)
CardId
.
Bitron
,
1
)
>
0
;
}
private
bool
网络小龙效果
()
private
bool
DraconnetEffect
()
{
AI
.
SelectCard
((
int
)
CardId
.
比特机灵
);
AI
.
SelectCard
((
int
)
CardId
.
Bitron
);
return
true
;
}
private
bool
克莱因客户端蚁效果
()
private
bool
KleinantEffect
()
{
IList
<
int
>
targets
=
new
[]
{
(
int
)
CardId
.
双汇编亚龙
,
(
int
)
CardId
.
比特机灵
,
(
int
)
CardId
.
数字机灵
,
(
int
)
CardId
.
点阵图跳离士
(
int
)
CardId
.
DualAssembloom
,
(
int
)
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
};
foreach
(
ClientCard
monster
in
Bot
.
Hand
)
{
...
...
@@ -418,10 +419,10 @@ namespace WindBot.Game.AI.Decks
}
}
IList
<
int
>
targets2
=
new
[]
{
(
int
)
CardId
.
引导鹿衍生物
,
(
int
)
CardId
.
比特机灵
,
(
int
)
CardId
.
数字机灵
,
(
int
)
CardId
.
点阵图跳离士
(
int
)
CardId
.
StagToken
,
(
int
)
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
};
foreach
(
ClientCard
monster
in
Bot
.
GetMonsters
())
{
...
...
@@ -434,40 +435,40 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
RAM
云雄羊效果
()
private
bool
RAM
ClouderEffect
()
{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
引导鹿衍生物
,
(
int
)
CardId
.
比特机灵
,
(
int
)
CardId
.
数字机灵
,
(
int
)
CardId
.
点阵图跳离士
,
(
int
)
CardId
.
网络小龙
,
(
int
)
CardId
.
反向连接兽
,
(
int
)
CardId
.
RAM
云雄羊
(
int
)
CardId
.
StagToken
,
(
int
)
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
,
(
int
)
CardId
.
Draconnet
,
(
int
)
CardId
.
Backlinker
,
(
int
)
CardId
.
RAM
Clouder
});
AI
.
SelectNextCard
(
new
[]{
(
int
)
CardId
.
解码语者
,
(
int
)
CardId
.
编码语者
,
(
int
)
CardId
.
三栅极男巫
,
(
int
)
CardId
.
二进制女巫
,
(
int
)
CardId
.
蜜罐机器人
,
(
int
)
CardId
.
双汇编亚龙
,
(
int
)
CardId
.
引导交错鹿
,
(
int
)
CardId
.
均衡负载王
,
(
int
)
CardId
.
ROM
云雌羊
,
(
int
)
CardId
.
猞猁连接杀手
,
(
int
)
CardId
.
RAM
云雄羊
(
int
)
CardId
.
DecodeTalker
,
(
int
)
CardId
.
EncodeTalker
,
(
int
)
CardId
.
TriGateWizard
,
(
int
)
CardId
.
BinarySorceress
,
(
int
)
CardId
.
Honeybot
,
(
int
)
CardId
.
DualAssembloom
,
(
int
)
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROM
Cloudia
,
(
int
)
CardId
.
Linkslayer
,
(
int
)
CardId
.
RAM
Clouder
});
return
true
;
}
private
bool
点阵图跳离士效果
()
private
bool
DotScaperEffect
()
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
连接召唤
()
private
bool
LinkSummon
()
{
return
(
AI
.
Utils
.
IsTurn1OrMain2
()
||
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
))
&&
AI
.
Utils
.
GetBestAttack
(
Bot
,
true
)
<
Card
.
Attack
;
...
...
Game/AI/Decks/ToadallyAwesomeExecutor.cs
View file @
c32eb21c
...
...
@@ -11,99 +11,102 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
冰结界的术者
=
23950192
,
冰结界的水影
=
90311614
,
鬼青蛙
=
9126351
,
冰结界的传道师
=
50088247
,
粹蛙
=
1357146
,
魔知青蛙
=
46239604
,
小灰篮史莱姆
=
80250319
,
银河旋风
=
5133471
,
鹰身女妖的羽毛扫
=
18144506
,
浮上
=
33057951
,
黑洞
=
53129443
,
手札抹杀
=
72892473
,
愚蠢的埋葬
=
81439173
,
死者苏生
=
83764718
,
冰结界的纹章
=
84206435
,
海上打捞
=
96947648
,
水舞台
=
29047353
,
虹光之宣告者
=
79606837
,
饼蛙
=
90809975
,
神骑矢车菊圣人马
=
36776089
,
大薰风凤凰
=
2766877
,
猫鲨
=
84224627
,
旋风
=
5318639
,
月之书
=
14087893
,
活死人的呼声
=
97077563
,
激流葬
=
53582587
,
闪光
No39
希望皇霍普电光皇
=
56832966
CryomancerOfTheIceBarrier
=
23950192
,
DewdarkOfTheIceBarrier
=
90311614
,
SwapFrog
=
9126351
,
PriorOfTheIceBarrier
=
50088247
,
Ronintoadin
=
1357146
,
DupeFrog
=
46239604
,
GraydleSlimeJr
=
80250319
,
GalaxyCyclone
=
5133471
,
HarpiesFeatherDuster
=
18144506
,
Surface
=
33057951
,
DarkHole
=
53129443
,
CardDestruction
=
72892473
,
FoolishBurial
=
81439173
,
MonsterReborn
=
83764718
,
MedallionOfTheIceBarrier
=
84206435
,
Salvage
=
96947648
,
AquariumStage
=
29047353
,
HeraldOfTheArcLight
=
79606837
,
ToadallyAwesome
=
90809975
,
SkyCavalryCentaurea
=
36776089
,
DaigustoPhoenix
=
2766877
,
CatShark
=
84224627
,
MysticalSpaceTyphoon
=
5318639
,
BookOfMoon
=
14087893
,
CallOfTheHaunted
=
97077563
,
TorrentialTribute
=
53582587
,
NumberS39UtopiatheLightning
=
56832966
}
public
ToadallyAwesomeExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
银河旋风
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
水舞台
,
水舞台效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
冰结界的纹章
,
冰结界的纹章效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
愚蠢的埋葬
,
愚蠢的埋葬效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
冰结界的传道师
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
小灰篮史莱姆
,
小灰篮史莱姆优先通常召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
鬼青蛙
,
鬼青蛙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鬼青蛙
,
鬼青蛙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
小灰篮史莱姆
,
小灰篮史莱姆效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
粹蛙
,
粹蛙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
冰结界的传道师
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
魔知青蛙
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
浮上
,
死者苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
死者苏生
,
死者苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
海上打捞
,
海上打捞效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
鬼青蛙
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
冰结界的水影
,
冰结界下级通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
冰结界的术者
,
冰结界下级通常召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
手札抹杀
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
小灰篮史莱姆
,
低攻怪兽通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
冰结界的传道师
,
低攻怪兽通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
粹蛙
,
低攻怪兽通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
魔知青蛙
,
低攻怪兽通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
冰结界的传道师
,
冰结界的传道师通常召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
猫鲨
,
猫鲨特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
猫鲨
,
猫鲨效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
神骑矢车菊圣人马
,
神骑矢车菊圣人马特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神骑矢车菊圣人马
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
大薰风凤凰
,
大薰风凤凰特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
大薰风凤凰
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
饼蛙
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
饼蛙
,
饼蛙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
虹光之宣告者
,
虹光之宣告者特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虹光之宣告者
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
小灰篮史莱姆
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
魔知青蛙
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
粹蛙
);
AddExecutor
(
ExecutorType
.
Repos
,
改变攻守表示
);
// 饼蛙抢来的卡的发动
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
旋风
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
月之书
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
活死人的呼声
,
死者苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
激流葬
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
其他魔法发动
);
AddExecutor
(
ExecutorType
.
Activate
,
其他陷阱发动
);
AddExecutor
(
ExecutorType
.
Activate
,
其他怪兽发动
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GalaxyCyclone
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AquariumStage
,
AquariumStageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MedallionOfTheIceBarrier
,
MedallionOfTheIceBarrierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurialEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogSpsummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ronintoadin
,
RonintoadinEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Surface
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Salvage
,
SalvageEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SwapFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardDestruction
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GraydleSlimeJr
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Ronintoadin
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DupeFrog
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
PriorOfTheIceBarrierSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CatShark
,
CatSharkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CatShark
,
CatSharkEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SkyCavalryCentaurea
,
SkyCavalryCentaureaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SkyCavalryCentaurea
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DaigustoPhoenix
,
DaigustoPhoenixSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DaigustoPhoenix
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ToadallyAwesome
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ToadallyAwesome
,
ToadallyAwesomeEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
HeraldOfTheArcLight
,
HeraldOfTheArcLightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HeraldOfTheArcLight
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
GraydleSlimeJr
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Ronintoadin
);
AddExecutor
(
ExecutorType
.
Repos
,
Repos
);
// cards got by Toadall yAwesome
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CallOfTheHaunted
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherSpellEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherTrapEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherMonsterEffect
);
}
public
override
bool
OnSelectHand
()
...
...
@@ -118,136 +121,136 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
))
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
{
if
(
attacker
.
Id
==
(
int
)
CardId
.
神骑矢车菊圣人马
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
())
if
(
attacker
.
Id
==
(
int
)
CardId
.
SkyCavalryCentaurea
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
())
attacker
.
RealPower
=
Duel
.
LifePoints
[
0
]
+
attacker
.
Attack
;
}
return
attacker
.
RealPower
>=
defender
.
GetDefensePower
();
}
private
bool
冰结界的纹章效果
()
private
bool
MedallionOfTheIceBarrierEffect
()
{
if
(
Bot
.
HasInHand
(
new
List
<
int
>
{
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
})
||
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
}))
{
AI
.
SelectCard
((
int
)
CardId
.
冰结界的传道师
);
AI
.
SelectCard
((
int
)
CardId
.
PriorOfTheIceBarrier
);
}
else
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
});
}
return
true
;
}
private
bool
死者苏生效果
()
private
bool
SurfaceEffect
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
饼蛙
,
(
int
)
CardId
.
虹光之宣告者
,
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
小灰篮史莱姆
(
int
)
CardId
.
ToadallyAwesome
,
(
int
)
CardId
.
HeraldOfTheArcLight
,
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
});
return
true
;
}
private
bool
水舞台效果
()
private
bool
AquariumStageEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
Grave
)
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
死者苏生效果
();
return
SurfaceEffect
();
}
return
true
;
}
private
bool
愚蠢的埋葬效果
()
private
bool
FoolishBurialEffect
()
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
小灰篮史莱姆
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
小灰篮史莱姆
))
AI
.
SelectCard
((
int
)
CardId
.
小灰篮史莱姆
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
))
AI
.
SelectCard
((
int
)
CardId
.
魔知青蛙
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
))
AI
.
SelectCard
((
int
)
CardId
.
粹蛙
);
if
(
Bot
.
HasInHand
((
int
)
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
((
int
)
CardId
.
GraydleSlimeJr
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
AI
.
SelectCard
((
int
)
CardId
.
DupeFrog
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
AI
.
SelectCard
((
int
)
CardId
.
Ronintoadin
);
else
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
鬼青蛙
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
SwapFrog
});
return
true
;
}
private
bool
海上打捞效果
()
private
bool
SalvageEffect
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
小灰篮史莱姆
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
});
return
true
;
}
private
bool
鬼青蛙特殊召唤
()
private
bool
SwapFrogSpsummon
()
{
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
小灰篮史莱姆
)>=
2
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
小灰篮史莱姆
))
AI
.
SelectCard
((
int
)
CardId
.
小灰篮史莱姆
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
))
AI
.
SelectCard
((
int
)
CardId
.
魔知青蛙
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
))
AI
.
SelectCard
((
int
)
CardId
.
粹蛙
);
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
GraydleSlimeJr
)>=
2
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
((
int
)
CardId
.
GraydleSlimeJr
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
AI
.
SelectCard
((
int
)
CardId
.
DupeFrog
);
else
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
AI
.
SelectCard
((
int
)
CardId
.
Ronintoadin
);
else
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
鬼青蛙
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
SwapFrog
});
return
true
;
}
private
bool
鬼青蛙效果
()
private
bool
SwapFrogEffect
()
{
if
(
ActivateDescription
==
-
1
)
{
return
愚蠢的埋葬效果
();
return
FoolishBurialEffect
();
}
else
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
魔知青蛙
))
if
(
Bot
.
HasInHand
((
int
)
CardId
.
DupeFrog
))
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
鬼青蛙
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
SwapFrog
});
return
true
;
}
...
...
@@ -255,35 +258,35 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
小灰篮史莱姆优先通常召唤
()
private
bool
GraydleSlimeJrSummon
()
{
return
Bot
.
HasInGraveyard
((
int
)
CardId
.
小灰篮史莱姆
);
return
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
);
}
private
bool
小灰篮史莱姆效果
()
private
bool
GraydleSlimeJrEffect
()
{
AI
.
SelectCard
((
int
)
CardId
.
小灰篮史莱姆
);
AI
.
SelectCard
((
int
)
CardId
.
GraydleSlimeJr
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
小灰篮史莱姆
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
});
return
true
;
}
private
bool
粹蛙效果
()
private
bool
RonintoadinEffect
()
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
低攻怪兽通常召唤
()
private
bool
NormalSummon
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
...
...
@@ -296,59 +299,60 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
冰结界下级通常召唤
()
private
bool
IceBarrierSummon
()
{
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
冰结界的传道师
)
>
0
;
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
PriorOfTheIceBarrier
)
>
0
;
}
private
bool
冰结界的传道师通常召唤
()
private
bool
PriorOfTheIceBarrierSummon
()
{
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
冰结界的传道师
)
>=
2
;
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
PriorOfTheIceBarrier
)
>=
2
;
}
private
bool
饼蛙效果
()
private
bool
ToadallyAwesomeEffect
()
{
if
(
CurrentChain
.
Count
>
0
)
{
// negate effect, select a cost for it
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
int
>
合适的
COST
=
new
List
<
int
>
{
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
List
<
int
>
suitableCost
=
new
List
<
int
>
{
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
};
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
合适的
COST
.
Contains
(
monster
.
Id
))
if
(
suitableCost
.
Contains
(
monster
.
Id
))
{
AI
.
SelectCard
(
monster
);
return
true
;
}
}
bool
有水舞台
=
Bot
.
HasInSpellZone
((
int
)
CardId
.
水舞台
,
true
);
bool
haveAquariumStage
=
Bot
.
HasInSpellZone
((
int
)
CardId
.
AquariumStage
,
true
);
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
魔知青蛙
&&
!
有水舞台
)
if
(
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
&&
!
haveAquariumStage
)
{
AI
.
SelectCard
(
monster
);
return
true
;
}
}
monsters
=
(
List
<
ClientCard
>)
Bot
.
Hand
;
bool
手里有
2
个史莱姆
=
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
小灰篮史莱姆
)
>=
2
;
bool
HaveTwoGraydleSlimeJrInHand
=
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
GraydleSlimeJr
)
>=
2
;
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
小灰篮史莱姆
&&
手里有
2
个史莱姆
)
if
(
monster
.
Id
==
(
int
)
CardId
.
GraydleSlimeJr
&&
HaveTwoGraydleSlimeJrInHand
)
{
AI
.
SelectCard
(
monster
);
return
true
;
}
}
bool
需要丢魔知
=
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
鬼青蛙
);
bool
NeedDupeFrogInGrave
=
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
SwapFrog
);
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
魔知青蛙
&&
需要丢魔知
)
if
(
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
&&
NeedDupeFrogInGrave
)
{
AI
.
SelectCard
(
monster
);
return
true
;
...
...
@@ -356,7 +360,7 @@ namespace WindBot.Game.AI.Decks
}
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
粹蛙
||
monster
.
Id
==
(
int
)
CardId
.
魔知青蛙
)
if
(
monster
.
Id
==
(
int
)
CardId
.
Ronintoadin
||
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
)
{
AI
.
SelectCard
(
monster
);
return
true
;
...
...
@@ -371,46 +375,46 @@ namespace WindBot.Game.AI.Decks
}
else
if
(
Card
.
Location
==
CardLocation
.
Grave
)
{
if
(!
Bot
.
HasInExtra
((
int
)
CardId
.
饼蛙
))
if
(!
Bot
.
HasInExtra
((
int
)
CardId
.
ToadallyAwesome
))
{
AI
.
SelectCard
((
int
)
CardId
.
饼蛙
);
AI
.
SelectCard
((
int
)
CardId
.
ToadallyAwesome
);
}
else
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
小灰篮史莱姆
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
});
}
return
true
;
}
else
if
(
Duel
.
Phase
==
DuelPhase
.
Standby
)
{
选择取除超量素材
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
if
(
Duel
.
Player
==
0
)
{
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
小灰篮史莱姆
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
GraydleSlimeJr
});
}
else
{
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
鬼青蛙
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
SwapFrog
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
}
...
...
@@ -419,16 +423,16 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
猫鲨特殊召唤
()
private
bool
CatSharkSummon
()
{
bool
should
=
Bot
.
HasInMonstersZone
((
int
)
CardId
.
饼蛙
)
bool
should
=
Bot
.
HasInMonstersZone
((
int
)
CardId
.
ToadallyAwesome
)
&&
((
AI
.
Utils
.
IsEnemyBetter
(
true
,
false
)
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
(
int
)
CardId
.
猫鲨
,
(
int
)
CardId
.
神骑矢车菊圣人马
(
int
)
CardId
.
CatShark
,
(
int
)
CardId
.
SkyCavalryCentaurea
},
true
,
true
))
||
!
Bot
.
HasInExtra
((
int
)
CardId
.
饼蛙
));
||
!
Bot
.
HasInExtra
((
int
)
CardId
.
ToadallyAwesome
));
if
(
should
)
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
...
...
@@ -437,32 +441,32 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
猫鲨效果
()
private
bool
CatSharkEffect
()
{
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
饼蛙
&&
monster
.
Attack
<=
2200
)
if
(
monster
.
Id
==
(
int
)
CardId
.
ToadallyAwesome
&&
monster
.
Attack
<=
2200
)
{
选择取除超量素材
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
return
true
;
}
}
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
神骑矢车菊圣人马
&&
monster
.
Attack
<=
2000
)
if
(
monster
.
Id
==
(
int
)
CardId
.
SkyCavalryCentaurea
&&
monster
.
Attack
<=
2000
)
{
选择取除超量素材
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
return
true
;
}
}
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
Id
==
(
int
)
CardId
.
大薰风凤凰
&&
monster
.
Attack
<=
1500
)
if
(
monster
.
Id
==
(
int
)
CardId
.
DaigustoPhoenix
&&
monster
.
Attack
<=
1500
)
{
选择取除超量素材
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
return
true
;
}
...
...
@@ -470,7 +474,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
神骑矢车菊圣人马特殊召唤
()
private
bool
SkyCavalryCentaureaSummon
()
{
int
num
=
0
;
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
...
@@ -486,11 +490,11 @@ namespace WindBot.Game.AI.Decks
&&
num
<
4
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
(
int
)
CardId
.
神骑矢车菊圣人马
(
int
)
CardId
.
SkyCavalryCentaurea
},
true
,
true
);
}
private
bool
大薰风凤凰特殊召唤
()
private
bool
DaigustoPhoenixSummon
()
{
if
(
Duel
.
Turn
!=
1
)
{
...
...
@@ -515,13 +519,13 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
虹光之宣告者特殊召唤
()
private
bool
HeraldOfTheArcLightSummon
()
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
改变攻守表示
()
private
bool
Repos
()
{
bool
enemyBetter
=
AI
.
Utils
.
IsEnemyBetter
(
true
,
true
);
...
...
@@ -532,7 +536,7 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
其他魔法发动
()
private
bool
OtherSpellEffect
()
{
foreach
(
CardExecutor
exec
in
Executors
)
{
...
...
@@ -542,7 +546,7 @@ namespace WindBot.Game.AI.Decks
return
Card
.
IsSpell
();
}
private
bool
其他陷阱发动
()
private
bool
OtherTrapEffect
()
{
foreach
(
CardExecutor
exec
in
Executors
)
{
...
...
@@ -552,7 +556,7 @@ namespace WindBot.Game.AI.Decks
return
Card
.
IsTrap
()
&&
DefaultTrap
();
}
private
bool
其他怪兽发动
()
private
bool
OtherMonsterEffect
()
{
foreach
(
CardExecutor
exec
in
Executors
)
{
...
...
@@ -562,24 +566,24 @@ namespace WindBot.Game.AI.Decks
return
Card
.
IsMonster
();
}
private
void
选择取除超量素材
(
List
<
int
>
Overlays
)
private
void
SelectXYZDetach
(
List
<
int
>
Overlays
)
{
if
(
Overlays
.
Contains
((
int
)
CardId
.
小灰篮史莱姆
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
小灰篮史莱姆
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
小灰篮史莱姆
))
AI
.
SelectCard
((
int
)
CardId
.
小灰篮史莱姆
);
else
if
(
Overlays
.
Contains
((
int
)
CardId
.
魔知青蛙
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
))
AI
.
SelectCard
((
int
)
CardId
.
魔知青蛙
);
else
if
(
Overlays
.
Contains
((
int
)
CardId
.
粹蛙
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
魔知青蛙
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
粹蛙
))
AI
.
SelectCard
((
int
)
CardId
.
粹蛙
);
if
(
Overlays
.
Contains
((
int
)
CardId
.
GraydleSlimeJr
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
((
int
)
CardId
.
GraydleSlimeJr
);
else
if
(
Overlays
.
Contains
((
int
)
CardId
.
DupeFrog
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
AI
.
SelectCard
((
int
)
CardId
.
DupeFrog
);
else
if
(
Overlays
.
Contains
((
int
)
CardId
.
Ronintoadin
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
AI
.
SelectCard
((
int
)
CardId
.
Ronintoadin
);
else
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
小灰篮史莱姆
,
(
int
)
CardId
.
粹蛙
,
(
int
)
CardId
.
魔知青蛙
,
(
int
)
CardId
.
冰结界的术者
,
(
int
)
CardId
.
冰结界的水影
,
(
int
)
CardId
.
冰结界的传道师
,
(
int
)
CardId
.
鬼青蛙
(
int
)
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
SwapFrog
});
}
}
...
...
Game/AI/Decks/YosenjuExecutor.cs
View file @
c32eb21c
...
...
@@ -11,166 +11,159 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
妖仙兽镰壹太刀
=
65247798
,
妖仙兽镰贰太刀
=
92246806
,
妖仙兽镰叁太刀
=
28630501
,
妖仙兽辻斩风
=
25244515
,
鹰身女妖的羽毛扫
=
18144507
,
黑洞
=
53129443
,
削命的宝札
=
59750328
,
强欲而谦虚之壶
=
98645731
,
宇宙旋风
=
8267140
,
沙尘防护罩尘埃之力
=
40838625
,
波纹防护罩波浪之力
=
47475363
,
星光大道
=
58120309
,
虚无空间
=
5851097
,
大宇宙
=
30241314
,
神之通告
=
40605147
,
神之警告
=
84749824
,
神之宣告
=
41420027
,
魔力抽取
=
59344077
,
星尘龙
=
44508094
,
闪光
No39
希望皇霍普电光皇
=
56832966
,
闪光
No39
希望皇霍普一
=
86532744
,
暗叛逆超量龙
=
16195942
,
No39
希望皇霍普
=
84013237
,
No103
神葬零娘暮零
=
94380860
,
魁炎星王宋虎
=
96381979
,
No106
巨岩掌巨手
=
63746411
,
鸟铳士卡斯泰尔
=
82633039
,
恐牙狼钻石恐狼
=
95169481
,
电光千鸟
=
22653490
,
励辉士入魔蝇王
=
46772449
,
深渊的潜伏者
=
21044178
,
我我我枪手
=
12014404
YosenjuKama1
=
65247798
,
YosenjuKama2
=
92246806
,
YosenjuKama3
=
28630501
,
YosenjuTsujik
=
25244515
,
HarpiesFeatherDuster
=
18144507
,
DarkHole
=
53129443
,
CardOfDemise
=
59750328
,
PotOfDuality
=
98645731
,
CosmicCyclone
=
8267140
,
QuakingMirrorForce
=
40838625
,
DrowningMirrorForce
=
47475363
,
StarlightRoad
=
58120309
,
VanitysEmptiness
=
5851097
,
MacroCosmos
=
30241314
,
SolemnStrike
=
40605147
,
SolemnWarning
=
84749824
,
SolemnJudgment
=
41420027
,
MagicDrain
=
59344077
,
StardustDragon
=
44508094
,
NumberS39UtopiatheLightning
=
56832966
,
NumberS39UtopiaOne
=
86532744
,
DarkRebellionXyzDragon
=
16195942
,
Number39Utopia
=
84013237
,
Number103Ragnazero
=
94380860
,
BrotherhoodOfTheFireFistTigerKing
=
96381979
,
Number106GiantHand
=
63746411
,
CastelTheSkyblasterMusketeer
=
82633039
,
DiamondDireWolf
=
95169481
,
LightningChidori
=
22653490
,
EvilswarmExcitonKnight
=
46772449
,
AbyssDweller
=
21044178
,
GagagaCowboy
=
12014404
}
bool
已发动削命
=
false
;
bool
CardOfDemiseUsed
=
false
;
public
YosenjuExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
// 结束阶段优先丢卡
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
削命的宝札
,
削命的宝札结束阶段
);
// 能烧就烧
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
我我我枪手
,
我我我枪手特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
// 清场
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
// 开壶
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而谦虚之壶
,
强欲而谦虚之壶
);
// 通招
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰壹太刀
,
优先出重复的妖仙兽
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰贰太刀
,
优先出重复的妖仙兽
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰叁太刀
,
优先出重复的妖仙兽
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰壹太刀
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰贰太刀
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽镰叁太刀
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
妖仙兽辻斩风
);
// 妖仙兽效果无脑发动
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
妖仙兽镰壹太刀
,
妖仙兽效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
妖仙兽镰贰太刀
,
妖仙兽效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
妖仙兽镰叁太刀
,
妖仙兽效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
妖仙兽辻斩风
,
妖仙兽效果
);
// 盖坑
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之宣告
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之通告
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之警告
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
大宇宙
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虚无空间
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
魔力抽取
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
,
优先盖不重复的坑
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之宣告
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之通告
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之警告
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
大宇宙
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虚无空间
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
魔力抽取
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
黑洞
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
强欲而谦虚之壶
,
魔陷区有空余格子
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
宇宙旋风
,
魔陷区有空余格子
);
// 开完削命继续盖坑
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
削命的宝札
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
削命的宝札
,
削命的宝札
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之宣告
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之通告
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神之警告
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
大宇宙
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虚无空间
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
魔力抽取
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
黑洞
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
强欲而谦虚之壶
,
已发动过削命
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
宇宙旋风
,
已发动过削命
);
// 常用额外
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
励辉士入魔蝇王
,
励辉士入魔蝇王特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
励辉士入魔蝇王
,
励辉士入魔蝇王效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
暗叛逆超量龙
,
暗叛逆超量龙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
暗叛逆超量龙
,
暗叛逆超量龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
No39
希望皇霍普
,
电光皇特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普一
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星尘龙
,
星尘龙效果
);
// 坑人
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
魔力抽取
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
大宇宙
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虚无空间
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
DefaultUniqueTrap
);
// do the end phase effect of Card Of Demise before Yosenjus return to hand
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardOfDemise
,
CardOfDemiseEPEffect
);
// burn if enemy's LP is below 800
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDuality
,
PotOfDualityEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama1
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama2
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama3
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama1
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama2
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama3
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuTsujik
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama1
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama2
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama3
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuTsujik
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CardOfDemise
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardOfDemise
,
CardOfDemiseEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
EvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
EvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
,
NumberS39UtopiatheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragon
,
StardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MagicDrain
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MacroCosmos
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
VanitysEmptiness
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
public
override
bool
OnSelectHand
()
{
//
抢先攻
//
go first
return
true
;
}
public
override
void
OnNewTurn
()
{
// 回合开始时重置状况
已发动削命
=
false
;
CardOfDemiseUsed
=
false
;
}
public
override
bool
OnSelectYesNo
(
int
desc
)
{
//
镰贰太刀能不直击就不直击
//
Yosenju Kama 2 shouldn't attack directly at most times
if
(
Card
==
null
)
return
true
;
Logger
.
DebugWriteLine
(
Card
.
Name
);
if
(
Card
.
Id
==
(
int
)
CardId
.
妖仙兽镰贰太刀
)
//
Logger.DebugWriteLine(Card.Name);
if
(
Card
.
Id
==
(
int
)
CardId
.
YosenjuKama2
)
return
Card
.
ShouldDirectAttack
;
else
return
true
;
...
...
@@ -183,69 +176,69 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
))
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
{
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Wind
&&
Bot
.
HasInHand
((
int
)
CardId
.
妖仙兽辻斩风
))
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Wind
&&
Bot
.
HasInHand
((
int
)
CardId
.
YosenjuTsujik
))
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
if
(
attacker
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
No39
希望皇霍普
))
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
}
private
bool
强欲而谦虚之壶
()
private
bool
PotOfDualityEffect
()
{
if
(
已发动削命
)
if
(
CardOfDemiseUsed
)
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
星光大道
,
(
int
)
CardId
.
魔力抽取
,
(
int
)
CardId
.
神之宣告
,
(
int
)
CardId
.
虚无空间
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
(
int
)
CardId
.
神之通告
,
(
int
)
CardId
.
神之警告
,
(
int
)
CardId
.
大宇宙
,
(
int
)
CardId
.
削命的宝札
(
int
)
CardId
.
StarlightRoad
,
(
int
)
CardId
.
MagicDrain
,
(
int
)
CardId
.
SolemnJudgment
,
(
int
)
CardId
.
VanitysEmptiness
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
(
int
)
CardId
.
DrowningMirrorForce
,
(
int
)
CardId
.
QuakingMirrorForce
,
(
int
)
CardId
.
SolemnStrike
,
(
int
)
CardId
.
SolemnWarning
,
(
int
)
CardId
.
MacroCosmos
,
(
int
)
CardId
.
CardOfDemise
});
}
else
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
妖仙兽镰叁太刀
,
(
int
)
CardId
.
妖仙兽镰壹太刀
,
(
int
)
CardId
.
妖仙兽镰贰太刀
,
(
int
)
CardId
.
星光大道
,
(
int
)
CardId
.
魔力抽取
,
(
int
)
CardId
.
虚无空间
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
(
int
)
CardId
.
神之通告
,
(
int
)
CardId
.
神之宣告
,
(
int
)
CardId
.
神之警告
,
(
int
)
CardId
.
大宇宙
,
(
int
)
CardId
.
削命的宝札
,
(
int
)
CardId
.
YosenjuKama3
,
(
int
)
CardId
.
YosenjuKama1
,
(
int
)
CardId
.
YosenjuKama2
,
(
int
)
CardId
.
StarlightRoad
,
(
int
)
CardId
.
MagicDrain
,
(
int
)
CardId
.
VanitysEmptiness
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
(
int
)
CardId
.
DrowningMirrorForce
,
(
int
)
CardId
.
QuakingMirrorForce
,
(
int
)
CardId
.
SolemnStrike
,
(
int
)
CardId
.
SolemnJudgment
,
(
int
)
CardId
.
SolemnWarning
,
(
int
)
CardId
.
MacroCosmos
,
(
int
)
CardId
.
CardOfDemise
,
});
}
return
true
;
}
private
bool
削命的宝札
()
private
bool
CardOfDemiseEffect
()
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
已发动削命
=
true
;
CardOfDemiseUsed
=
true
;
return
true
;
}
return
false
;
}
private
bool
优先出重复的妖仙兽
()
private
bool
HaveAnotherYosenjuWithSameNameInHand
()
{
foreach
(
ClientCard
card
in
Bot
.
Hand
)
{
...
...
@@ -255,48 +248,47 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
优先盖不重复的坑
()
private
bool
TrapSetUnique
()
{
foreach
(
ClientCard
card
in
Bot
.
SpellZone
)
{
if
(
card
!=
null
&&
card
.
Id
==
Card
.
Id
)
return
false
;
}
return
魔陷区有空余格子
();
return
TrapSetWhenZoneFree
();
}
private
bool
魔陷区有空余格子
()
private
bool
TrapSetWhenZoneFree
()
{
return
Bot
.
GetSpellCountWithoutField
()
<
4
;
}
private
bool
已发动过削命
()
private
bool
CardOfDemiseAcivated
()
{
return
已发动削命
;
return
CardOfDemiseUsed
;
}
private
bool
妖仙兽效果
()
private
bool
YosenjuEffect
()
{
//
妖仙兽结束阶段不优先回手
//
Don't activate the return to hand effect first
if
(
Duel
.
Phase
==
DuelPhase
.
End
)
return
false
;
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
妖仙兽镰壹太刀
,
(
int
)
CardId
.
妖仙兽镰贰太刀
,
(
int
)
CardId
.
妖仙兽镰叁太刀
(
int
)
CardId
.
YosenjuKama1
,
(
int
)
CardId
.
YosenjuKama2
,
(
int
)
CardId
.
YosenjuKama3
});
return
true
;
}
private
bool
削命的宝札结束阶段
()
private
bool
CardOfDemiseEPEffect
()
{
// 削命宝札结束阶段在妖仙回手前丢手卡
Logger
.
DebugWriteLine
(
"削命的宝札"
+
(
Duel
.
Phase
==
DuelPhase
.
End
));
// do the end phase effect of Card Of Demise before Yosenjus return to hand
return
Duel
.
Phase
==
DuelPhase
.
End
;
}
private
bool
我我我枪手特殊召唤
()
private
bool
GagagaCowboySummon
()
{
if
(
Duel
.
LifePoints
[
1
]
<=
800
||
(
Bot
.
GetMonsterCount
()>=
4
&&
Duel
.
LifePoints
[
1
]
<=
1600
))
{
...
...
@@ -306,28 +298,28 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
励辉士入魔蝇王特殊召唤
()
private
bool
EvilswarmExcitonKnightSummon
()
{
int
selfCount
=
Bot
.
GetMonsterCount
()
+
Bot
.
GetSpellCount
()
+
Bot
.
GetHandCount
();
int
oppoCount
=
Enemy
.
GetMonsterCount
()
+
Enemy
.
GetSpellCount
()
+
Enemy
.
GetHandCount
();
return
(
selfCount
-
1
<
oppoCount
)
&&
励辉士入魔蝇王效果
();
return
(
selfCount
-
1
<
oppoCount
)
&&
EvilswarmExcitonKnightEffect
();
}
private
bool
励辉士入魔蝇王效果
()
private
bool
EvilswarmExcitonKnightEffect
()
{
int
selfCount
=
Bot
.
GetMonsterCount
()
+
Bot
.
GetSpellCount
();
int
oppoCount
=
Enemy
.
GetMonsterCount
()
+
Enemy
.
GetSpellCount
();
return
selfCount
<
oppoCount
;
}
private
bool
暗叛逆超量龙特殊召唤
()
private
bool
DarkRebellionXyzDragonSummon
()
{
int
selfBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Bot
,
true
);
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Enemy
,
true
);
return
selfBestAttack
<=
oppoBestAttack
;
}
private
bool
暗叛逆超量龙效果
()
private
bool
DarkRebellionXyzDragonEffect
()
{
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Enemy
,
true
);
ClientCard
target
=
AI
.
Utils
.
GetOneEnemyBetterThanValue
(
oppoBestAttack
,
true
);
...
...
@@ -338,14 +330,14 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
电光皇特殊召唤
()
private
bool
NumberS39UtopiatheLightningSummon
()
{
int
selfBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Bot
,
true
);
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Enemy
,
false
);
return
selfBestAttack
<=
oppoBestAttack
;
}
private
bool
星尘龙效果
()
private
bool
StardustDragonEffect
()
{
return
LastChainPlayer
==
1
;
}
...
...
Game/AI/Decks/ZoodiacExecutor.cs
View file @
c32eb21c
...
...
@@ -11,122 +11,124 @@ namespace WindBot.Game.AI.Decks
{
public
enum
CardId
{
坏星坏兽席兹奇埃鲁
=
63941210
,
怪粉坏兽加达拉
=
36956512
,
海龟坏兽加美西耶勒
=
55063751
,
多次元坏兽拉迪安
=
28674152
,
黏丝坏兽库莫古斯
=
29726552
,
光子斩击者
=
65367484
,
十二兽马剑
=
77150143
,
十二兽蛇笞
=
31755044
,
召唤师阿莱斯特
=
86120751
,
十二兽鼠骑
=
78872731
,
鹰身女妖的羽毛扫
=
18144506
,
黑洞
=
53129443
,
星球改造
=
73628505
,
召唤魔术
=
74063034
,
死者苏生
=
83764718
,
遭受妨碍的坏兽安眠
=
99330325
,
十二兽的会局
=
46060017
,
炎舞天玑
=
57103969
,
暴走魔法阵
=
47679935
,
十二兽的方合
=
73881652
,
召唤兽梅尔卡巴
=
75286621
,
召唤兽墨瓦腊泥加
=
48791583
,
闪光
No39
希望皇霍普电光皇
=
56832966
,
No39
希望皇霍普
=
84013237
,
大薰风骑士翠玉
=
581014
,
十二兽虎炮
=
11510448
,
十二兽狗环
=
41375811
,
十二兽龙枪
=
48905153
,
十二兽牛犄
=
85115440
}
bool
已特殊召唤虎炮
=
false
;
bool
已特殊召唤狗环
=
false
;
bool
已特殊召唤牛犄
=
false
;
int
蛇笞发动次数
=
0
;
JizukirutheStarDestroyingKaiju
=
63941210
,
GadarlatheMysteryDustKaiju
=
36956512
,
GamecieltheSeaTurtleKaiju
=
55063751
,
RadiantheMultidimensionalKaiju
=
28674152
,
KumongoustheStickyStringKaiju
=
29726552
,
PhotonThrasher
=
65367484
,
Thoroughblade
=
77150143
,
Whiptail
=
31755044
,
Ratpier
=
78872731
,
AleisterTheInvoker
=
86120751
,
HarpiesFeatherDuster
=
18144506
,
DarkHole
=
53129443
,
Terraforming
=
73628505
,
Invocation
=
74063034
,
MonsterReborn
=
83764718
,
InterruptedKaijuSlumber
=
99330325
,
ZoodiacBarrage
=
46060017
,
FireFormationTenki
=
57103969
,
MagicalMeltdown
=
47679935
,
ZoodiacCombo
=
73881652
,
InvokedMechaba
=
75286621
,
InvokedMagellanica
=
48791583
,
NumberS39UtopiatheLightning
=
56832966
,
Number39Utopia
=
84013237
,
DaigustoEmeral
=
581014
,
Tigermortar
=
11510448
,
Chakanine
=
41375811
,
Drident
=
48905153
,
Broadbull
=
85115440
}
bool
TigermortarSpsummoned
=
false
;
bool
ChakanineSpsummoned
=
false
;
bool
BroadbullSpsummoned
=
false
;
int
WhiptailEffectCount
=
0
;
public
ZoodiacExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
遭受妨碍的坏兽安眠
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InterruptedKaijuSlumber
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GamecieltheSeaTurtleKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
KumongoustheStickyStringKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GadarlatheMysteryDustKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
RadiantheMultidimensionalKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
JizukirutheStarDestroyingKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星球改造
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
暴走魔法阵
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
炎舞天玑
,
炎舞天玑效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽的会局
,
十二兽的会局效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
大薰风骑士翠玉
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MagicalMeltdown
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FireFormationTenki
,
FireFormationTenkiEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZoodiacBarrage
,
ZoodiacBarrageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DaigustoEmeral
,
DaigustoEmeralEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
光子斩击者
,
光子斩击者特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PhotonThrasher
,
PhotonThrasherSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
o39
希望皇霍普
,
电光皇特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
N
umber39Utopia
,
NumberS39UtopiatheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
召唤兽梅尔卡巴
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InvokedMechaba
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
十二兽鼠骑素材效果
);
AddExecutor
(
ExecutorType
.
Activate
,
RatpierMaterialEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽龙枪
,
十二兽龙枪效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽牛犄
,
十二兽牛犄效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽虎炮
,
十二兽虎炮效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽狗环
,
十二兽狗环效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Drident
,
DridentEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Broadbull
,
BroadbullEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Tigermortar
,
TigermortarEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Chakanine
,
ChakanineEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
十二兽狗环
,
十二兽狗环特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
十二兽虎炮
,
十二兽虎炮特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
十二兽牛犄
,
十二兽牛犄特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
十二兽龙枪
,
十二兽龙枪特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Chakanine
,
ChakanineSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Tigermortar
,
TigermortarSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Broadbull
,
BroadbullSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Drident
,
DridentSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
十二兽鼠骑
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽鼠骑
,
十二兽鼠骑效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
十二兽马剑
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽马剑
,
十二兽鼠骑效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
召唤师阿莱斯特
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
召唤师阿莱斯特
,
召唤师阿莱斯特效果
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Ratpier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ratpier
,
Ratpier
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Thoroughblade
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Thoroughblade
,
Ratpier
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
AleisterTheInvoker
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AleisterTheInvoker
,
AleisterTheInvokerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
大薰风骑士翠玉
,
大薰风骑士翠玉特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DaigustoEmeral
,
DaigustoEmeralSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
十二兽牛犄
,
十二兽牛犄超量召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Broadbull
,
BroadbullXYZSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
死者苏生
,
死者苏生效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
光子斩击者
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
十二兽蛇笞
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PhotonThrasher
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Whiptail
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
召唤魔术
,
召唤魔术效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Invocation
,
InvocationEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽蛇笞
,
十二兽蛇笞效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Whiptail
,
WhiptailEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
十二兽的方合
,
十二兽的方合效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZoodiacCombo
,
ZoodiacComboEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
十二兽的方合
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
ZoodiacCombo
);
AddExecutor
(
ExecutorType
.
Repos
,
MonsterRepos
);
}
public
override
bool
OnSelectHand
()
{
//
抢先攻
//
go first
return
true
;
}
public
override
void
OnNewTurn
()
{
//
回合开始时重置状况
已特殊召唤虎炮
=
false
;
已特殊召唤狗环
=
false
;
已特殊召唤牛犄
=
false
;
蛇笞发动次数
=
0
;
//
reset
TigermortarSpsummoned
=
false
;
ChakanineSpsummoned
=
false
;
BroadbullSpsummoned
=
false
;
WhiptailEffectCount
=
0
;
}
public
override
bool
OnPreBattleBetween
(
ClientCard
attacker
,
ClientCard
defender
)
...
...
@@ -136,32 +138,32 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
))
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
{
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand((int)CardId.
召唤师阿莱斯特
))
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand((int)CardId.
AleisterTheInvoker
))
// attacker.RealPower = attacker.RealPower + 1000;
if
(
attacker
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
No39
希望皇霍普
))
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
}
private
bool
电光皇特殊召唤
()
private
bool
NumberS39UtopiatheLightningSummon
()
{
int
selfBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Bot
,
true
);
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Enemy
,
false
);
return
selfBestAttack
<
oppoBestAttack
;
}
private
bool
光子斩击者特殊召唤
()
private
bool
PhotonThrasherSummon
()
{
return
Bot
.
HasInHand
((
int
)
CardId
.
召唤师阿莱斯特
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
十二兽鼠骑
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
十二兽马剑
);
return
Bot
.
HasInHand
((
int
)
CardId
.
AleisterTheInvoker
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Ratpier
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Thoroughblade
);
}
private
bool
召唤师阿莱斯特效果
()
private
bool
AleisterTheInvokerEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
Hand
)
{
...
...
@@ -175,7 +177,7 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
召唤魔术效果
()
private
bool
InvocationEffect
()
{
if
(
Card
.
Location
==
CardLocation
.
Grave
)
return
true
;
...
...
@@ -200,8 +202,8 @@ namespace WindBot.Game.AI.Decks
}
if
(
mat
!=
null
)
{
AI
.
SelectCard
((
int
)
CardId
.
召唤兽梅尔卡巴
);
选择墓地里的召唤师
();
AI
.
SelectCard
((
int
)
CardId
.
InvokedMechaba
);
SelectAleisterInGrave
();
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
...
...
@@ -224,8 +226,8 @@ namespace WindBot.Game.AI.Decks
}
if
(
mat
!=
null
)
{
AI
.
SelectCard
((
int
)
CardId
.
召唤兽墨瓦腊泥加
);
选择墓地里的召唤师
();
AI
.
SelectCard
((
int
)
CardId
.
InvokedMagellanica
);
SelectAleisterInGrave
();
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
...
...
@@ -233,13 +235,13 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
void
选择墓地里的召唤师
()
private
void
SelectAleisterInGrave
()
{
IList
<
ClientCard
>
materials0
=
Bot
.
Graveyard
;
IList
<
ClientCard
>
materials1
=
Enemy
.
Graveyard
;
foreach
(
ClientCard
card
in
materials1
)
{
if
(
card
.
Id
==
(
int
)
CardId
.
召唤师阿莱斯特
)
if
(
card
.
Id
==
(
int
)
CardId
.
AleisterTheInvoker
)
{
AI
.
SelectNextCard
(
card
);
return
;
...
...
@@ -247,198 +249,198 @@ namespace WindBot.Game.AI.Decks
}
foreach
(
ClientCard
card
in
materials0
)
{
if
(
card
.
Id
==
(
int
)
CardId
.
召唤师阿莱斯特
)
if
(
card
.
Id
==
(
int
)
CardId
.
AleisterTheInvoker
)
{
AI
.
SelectNextCard
(
card
);
return
;
}
}
AI
.
SelectNextCard
((
int
)
CardId
.
召唤师阿莱斯特
);
AI
.
SelectNextCard
((
int
)
CardId
.
AleisterTheInvoker
);
}
private
bool
十二兽狗环特殊召唤
()
private
bool
ChakanineSummon
()
{
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽鼠骑
)
&&
!
已特殊召唤狗环
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Ratpier
)
&&
!
ChakanineSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽鼠骑
);
AI
.
SelectCard
((
int
)
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤狗环
=
true
;
ChakanineSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽牛犄
)
&&
!
已特殊召唤狗环
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Broadbull
)
&&
!
ChakanineSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽牛犄
);
AI
.
SelectCard
((
int
)
CardId
.
Broadbull
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤狗环
=
true
;
ChakanineSpsummoned
=
true
;
return
true
;
}
return
false
;
}
private
bool
十二兽狗环效果
()
private
bool
ChakanineEffect
()
{
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
十二兽蛇笞
)
||
Bot
.
HasInGraveyard
((
int
)
CardId
.
十二兽马剑
))
if
(
Bot
.
HasInGraveyard
((
int
)
CardId
.
Whiptail
)
||
Bot
.
HasInGraveyard
((
int
)
CardId
.
Thoroughblade
))
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽牛犄
,
(
int
)
CardId
.
十二兽虎炮
,
(
int
)
CardId
.
十二兽狗环
,
(
int
)
CardId
.
十二兽马剑
,
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽蛇笞
(
int
)
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
,
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
});
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
十二兽马剑
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
});
return
true
;
}
return
false
;
}
private
bool
十二兽虎炮特殊召唤
()
private
bool
TigermortarSummon
()
{
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽狗环
)
&&
!
已特殊召唤虎炮
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Chakanine
)
&&
!
TigermortarSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽狗环
);
AI
.
SelectCard
((
int
)
CardId
.
Chakanine
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤虎炮
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽鼠骑
)
&&
!
已特殊召唤虎炮
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Ratpier
)
&&
!
TigermortarSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽鼠骑
);
AI
.
SelectCard
((
int
)
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤虎炮
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽马剑
)
&&
!
已特殊召唤虎炮
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Thoroughblade
)
&&
!
TigermortarSpsummoned
&&
Bot
.
HasInGraveyard
(
new
List
<
int
>
{
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
十二兽鼠骑
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
Ratpier
}))
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽马剑
);
AI
.
SelectCard
((
int
)
CardId
.
Thoroughblade
);
AI
.
SelectYesNo
(
true
);
已特殊召唤虎炮
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽蛇笞
)
&&
!
已特殊召唤虎炮
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
十二兽鼠骑
))
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Whiptail
)
&&
!
TigermortarSpsummoned
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ratpier
))
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽蛇笞
);
AI
.
SelectCard
((
int
)
CardId
.
Whiptail
);
AI
.
SelectYesNo
(
true
);
已特殊召唤虎炮
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
}
return
false
;
}
private
bool
十二兽虎炮效果
()
private
bool
TigermortarEffect
()
{
//if (Card.HasXyzMaterial((int)CardId.
十二兽鼠骑) || !Bot.HasInGraveyard((int)CardId.十二兽鼠骑
))
//if (Card.HasXyzMaterial((int)CardId.
Ratpier) || !Bot.HasInGraveyard((int)CardId.Ratpier
))
// return false;
AI
.
SelectCard
((
int
)
CardId
.
十二兽狗环
);
AI
.
SelectNextCard
((
int
)
CardId
.
十二兽虎炮
);
AI
.
SelectCard
((
int
)
CardId
.
Chakanine
);
AI
.
SelectNextCard
((
int
)
CardId
.
Tigermortar
);
AI
.
SelectThirdCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
十二兽马剑
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
});
return
true
;
}
private
bool
十二兽牛犄特殊召唤
()
private
bool
BroadbullSummon
()
{
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽虎炮
)
&&
!
已特殊召唤牛犄
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Tigermortar
)
&&
!
BroadbullSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽虎炮
);
AI
.
SelectCard
((
int
)
CardId
.
Tigermortar
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤牛犄
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽狗环
)
&&
!
已特殊召唤牛犄
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Chakanine
)
&&
!
BroadbullSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽狗环
);
AI
.
SelectCard
((
int
)
CardId
.
Chakanine
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤牛犄
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽鼠骑
)
&&
!
已特殊召唤牛犄
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Ratpier
)
&&
!
BroadbullSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽鼠骑
);
AI
.
SelectCard
((
int
)
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤牛犄
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
}
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
十二兽马剑
)
&&
!
已特殊召唤牛犄
)
if
(
Bot
.
HasInMonstersZone
((
int
)
CardId
.
Thoroughblade
)
&&
!
BroadbullSpsummoned
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽马剑
);
AI
.
SelectCard
((
int
)
CardId
.
Thoroughblade
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
已特殊召唤牛犄
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
}
return
false
;
}
private
bool
十二兽牛犄效果
()
private
bool
BroadbullEffect
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽虎炮
,
(
int
)
CardId
.
十二兽狗环
,
(
int
)
CardId
.
十二兽龙枪
,
(
int
)
CardId
.
召唤师阿莱斯特
,
(
int
)
CardId
.
光子斩击者
(
int
)
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
(
int
)
CardId
.
Drident
,
(
int
)
CardId
.
AleisterTheInvoker
,
(
int
)
CardId
.
PhotonThrasher
});
if
(
Bot
.
HasInHand
((
int
)
CardId
.
十二兽蛇笞
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
十二兽鼠骑
))
AI
.
SelectNextCard
((
int
)
CardId
.
十二兽鼠骑
);
if
(
Bot
.
HasInHand
((
int
)
CardId
.
Whiptail
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Ratpier
))
AI
.
SelectNextCard
((
int
)
CardId
.
Ratpier
);
else
AI
.
SelectNextCard
((
int
)
CardId
.
十二兽蛇笞
);
AI
.
SelectNextCard
((
int
)
CardId
.
Whiptail
);
return
true
;
}
private
bool
十二兽牛犄超量召唤
()
private
bool
BroadbullXYZSummon
()
{
AI
.
SelectYesNo
(
false
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
光子斩击者
,
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
召唤师阿莱斯特
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
PhotonThrasher
,
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
AleisterTheInvoker
});
return
true
;
}
private
bool
十二兽龙枪特殊召唤
()
private
bool
DridentSummon
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽牛犄
,
(
int
)
CardId
.
十二兽虎炮
,
(
int
)
CardId
.
十二兽狗环
,
(
int
)
CardId
.
十二兽马剑
(
int
)
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
});
return
true
;
}
private
bool
十二兽鼠骑素材效果
()
private
bool
RatpierMaterialEffect
()
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
十二兽鼠骑
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
Ratpier
,
1
))
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
...
...
@@ -446,17 +448,17 @@ namespace WindBot.Game.AI.Decks
return
false
;
}
private
bool
十二兽蛇笞效果
()
private
bool
WhiptailEffect
()
{
if
(
Duel
.
Phase
==
DuelPhase
.
Main1
||
Duel
.
Phase
==
DuelPhase
.
Main2
)
return
false
;
if
(
Card
.
IsDisabled
()
||
蛇笞发动次数
>=
3
)
if
(
Card
.
IsDisabled
()
||
WhiptailEffectCount
>=
3
)
return
false
;
ClientCard
target
=
null
;
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
IsFaceup
()
&&
monster
.
Id
==
(
int
)
CardId
.
十二兽龙枪
&&
!
monster
.
HasXyzMaterial
())
if
(
monster
.
IsFaceup
()
&&
monster
.
Id
==
(
int
)
CardId
.
Drident
&&
!
monster
.
HasXyzMaterial
())
{
target
=
monster
;
break
;
...
...
@@ -466,7 +468,7 @@ namespace WindBot.Game.AI.Decks
{
foreach (ClientCard monster in monsters)
{
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != (int)CardId.
大薰风骑士翠玉
&& !monster.HasXyzMaterial())
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != (int)CardId.
DaigustoEmeral
&& !monster.HasXyzMaterial())
{
target = monster;
break;
...
...
@@ -477,25 +479,25 @@ namespace WindBot.Game.AI.Decks
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽龙枪
(
int
)
CardId
.
Drident
});
}
蛇笞发动次数
++;
WhiptailEffectCount
++;
return
true
;
}
private
bool
十二兽鼠骑效果
()
private
bool
Ratpier
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽的方合
,
(
int
)
CardId
.
十二兽马剑
,
(
int
)
CardId
.
十二兽的会局
(
int
)
CardId
.
ZoodiacCombo
,
(
int
)
CardId
.
Thoroughblade
,
(
int
)
CardId
.
ZoodiacBarrage
});
return
true
;
}
private
bool
十二兽龙枪效果
()
private
bool
DridentEffect
()
{
if
(
LastChainPlayer
==
0
)
return
false
;
...
...
@@ -543,114 +545,114 @@ namespace WindBot.Game.AI.Decks
return
false
;
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽牛犄
,
(
int
)
CardId
.
十二兽虎炮
,
(
int
)
CardId
.
十二兽狗环
,
(
int
)
CardId
.
十二兽马剑
,
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽蛇笞
(
int
)
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
,
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
});
AI
.
SelectNextCard
(
target
);
return
true
;
}
private
bool
大薰风骑士翠玉特殊召唤
()
private
bool
DaigustoEmeralSummon
()
{
return
Bot
.
GetGraveyardMonsters
().
Count
>=
3
;
}
private
bool
大薰风骑士翠玉效果
()
private
bool
DaigustoEmeralEffect
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
召唤师阿莱斯特
,
(
int
)
CardId
.
十二兽蛇笞
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
AleisterTheInvoker
,
(
int
)
CardId
.
Whiptail
});
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
大薰风骑士翠玉
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
DaigustoEmeral
});
return
true
;
}
private
bool
炎舞天玑效果
()
private
bool
FireFormationTenkiEffect
()
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
十二兽的会局
)
||
Bot
.
HasInSpellZone
((
int
)
CardId
.
十二兽的会局
)
||
Bot
.
HasInHand
((
int
)
CardId
.
十二兽鼠骑
))
if
(
Bot
.
HasInHand
((
int
)
CardId
.
ZoodiacBarrage
)
||
Bot
.
HasInSpellZone
((
int
)
CardId
.
ZoodiacBarrage
)
||
Bot
.
HasInHand
((
int
)
CardId
.
Ratpier
))
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽蛇笞
);
AI
.
SelectCard
((
int
)
CardId
.
Whiptail
);
}
else
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽鼠骑
);
AI
.
SelectCard
((
int
)
CardId
.
Ratpier
);
}
AI
.
SelectYesNo
(
true
);
return
true
;
}
private
bool
十二兽的会局效果
()
private
bool
ZoodiacBarrageEffect
()
{
IList
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
{
if
(
spell
.
Id
==
(
int
)
CardId
.
十二兽的会局
&&
!
Card
.
Equals
(
spell
))
if
(
spell
.
Id
==
(
int
)
CardId
.
ZoodiacBarrage
&&
!
Card
.
Equals
(
spell
))
return
false
;
}
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
炎舞天玑
,
(
int
)
CardId
.
暴走魔法阵
,
(
int
)
CardId
.
十二兽的会局
(
int
)
CardId
.
FireFormationTenki
,
(
int
)
CardId
.
MagicalMeltdown
,
(
int
)
CardId
.
ZoodiacBarrage
});
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
十二兽马剑
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
十二兽的方合效果
()
private
bool
ZoodiacComboEffect
()
{
if
(
CurrentChain
.
Count
>
0
)
return
false
;
if
(
Card
.
Location
!=
CardLocation
.
Grave
)
{
AI
.
SelectCard
((
int
)
CardId
.
十二兽龙枪
);
AI
.
SelectCard
((
int
)
CardId
.
Drident
);
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽马剑
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Thoroughblade
});
}
return
true
;
}
private
bool
死者苏生效果
()
private
bool
MonsterRebornEffect
()
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
十二兽鼠骑
,
(
int
)
CardId
.
十二兽蛇笞
,
(
int
)
CardId
.
召唤兽梅尔卡巴
,
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
(
int
)
CardId
.
召唤兽墨瓦腊泥加
,
(
int
)
CardId
.
十二兽虎炮
,
(
int
)
CardId
.
十二兽狗环
,
(
int
)
CardId
.
十二兽牛犄
(
int
)
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
(
int
)
CardId
.
InvokedMechaba
,
(
int
)
CardId
.
JizukirutheStarDestroyingKaiju
,
(
int
)
CardId
.
InvokedMagellanica
,
(
int
)
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
(
int
)
CardId
.
Broadbull
});
return
true
;
}
private
bool
MonsterRepos
()
{
if
(
Card
.
Id
==
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
)
if
(
Card
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
)
return
false
;
return
base
.
DefaultMonsterRepos
();
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment