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
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
MyCard
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
Hide 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
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
已通常召唤
=
false
;
private
bool
已发动简易融合
=
false
;
private
bool
已发动二重召唤
=
false
;
private
bool
已特殊召唤电子龙无限
=
false
;
private
bool
已发动火山恐龙
=
false
;
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
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
已发动均衡负载王
=
false
;
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
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
已特殊召唤虎炮
=
false
;
bool
已特殊召唤狗环
=
false
;
bool
已特殊召唤牛犄
=
false
;
int
蛇笞发动次数
=
0
;
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