Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
W
windbot
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
HiiragiGuardians
windbot
Commits
f8f793ac
Commit
f8f793ac
authored
Nov 04, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
change CardId enum to class
parent
138d2a2c
Changes
23
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
1944 additions
and
1925 deletions
+1944
-1925
Game/AI/Decks/BlackwingExecutor.cs
Game/AI/Decks/BlackwingExecutor.cs
+65
-65
Game/AI/Decks/BurnExecutor.cs
Game/AI/Decks/BurnExecutor.cs
+49
-49
Game/AI/Decks/CyberDragonExecutor.cs
Game/AI/Decks/CyberDragonExecutor.cs
+83
-83
Game/AI/Decks/DoEveryThingExecutor.cs
Game/AI/Decks/DoEveryThingExecutor.cs
+3
-3
Game/AI/Decks/DragunityExecutor.cs
Game/AI/Decks/DragunityExecutor.cs
+141
-141
Game/AI/Decks/EvilswarmExecutor.cs
Game/AI/Decks/EvilswarmExecutor.cs
+13
-13
Game/AI/Decks/FrogExecutor.cs
Game/AI/Decks/FrogExecutor.cs
+78
-78
Game/AI/Decks/GravekeeperExecutor.cs
Game/AI/Decks/GravekeeperExecutor.cs
+59
-59
Game/AI/Decks/GraydleExecutor.cs
Game/AI/Decks/GraydleExecutor.cs
+11
-11
Game/AI/Decks/HorusExecutor.cs
Game/AI/Decks/HorusExecutor.cs
+51
-51
Game/AI/Decks/LightswornExecutor.cs
Game/AI/Decks/LightswornExecutor.cs
+84
-85
Game/AI/Decks/MokeyMokeyExecutor.cs
Game/AI/Decks/MokeyMokeyExecutor.cs
+3
-3
Game/AI/Decks/MokeyMokeyKingExecutor.cs
Game/AI/Decks/MokeyMokeyKingExecutor.cs
+3
-3
Game/AI/Decks/NekrozExecutor.cs
Game/AI/Decks/NekrozExecutor.cs
+115
-115
Game/AI/Decks/OldSchoolExecutor.cs
Game/AI/Decks/OldSchoolExecutor.cs
+42
-22
Game/AI/Decks/QliphortExecutor.cs
Game/AI/Decks/QliphortExecutor.cs
+100
-100
Game/AI/Decks/RainbowExecutor.cs
Game/AI/Decks/RainbowExecutor.cs
+148
-148
Game/AI/Decks/Rank5Executor.cs
Game/AI/Decks/Rank5Executor.cs
+86
-86
Game/AI/Decks/ST1732Executor.cs
Game/AI/Decks/ST1732Executor.cs
+174
-174
Game/AI/Decks/ToadallyAwesomeExecutor.cs
Game/AI/Decks/ToadallyAwesomeExecutor.cs
+196
-196
Game/AI/Decks/YosenjuExecutor.cs
Game/AI/Decks/YosenjuExecutor.cs
+154
-154
Game/AI/Decks/ZexalWeaponsExecutor.cs
Game/AI/Decks/ZexalWeaponsExecutor.cs
+105
-105
Game/AI/Decks/ZoodiacExecutor.cs
Game/AI/Decks/ZoodiacExecutor.cs
+181
-181
No files found.
Game/AI/Decks/BlackwingExecutor.cs
View file @
f8f793ac
...
@@ -10,28 +10,28 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,28 +10,28 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Blackwing"
,
"AI_Blackwing"
,
"NotFinished"
)]
[
Deck
(
"Blackwing"
,
"AI_Blackwing"
,
"NotFinished"
)]
public
class
BlackwingExecutor
:
DefaultExecutor
public
class
BlackwingExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
KrisTheCrackOfDawn
=
81105204
,
public
static
int
KrisTheCrackOfDawn
=
81105204
;
SiroccoTheDawn
=
75498415
,
public
static
int
SiroccoTheDawn
=
75498415
;
ShuraTheBlueFlame
=
58820853
,
public
static
int
ShuraTheBlueFlame
=
58820853
;
BoraTheSpear
=
49003716
,
public
static
int
BoraTheSpear
=
49003716
;
KalutTheMoonShadow
=
85215458
,
public
static
int
KalutTheMoonShadow
=
85215458
;
GaleTheWhirlwind
=
2009101
,
public
static
int
GaleTheWhirlwind
=
2009101
;
BlizzardTheFarNorth
=
22835145
,
public
static
int
BlizzardTheFarNorth
=
22835145
;
MistralTheSilverShield
=
46710683
,
public
static
int
MistralTheSilverShield
=
46710683
;
Raigeki
=
12580477
,
public
static
int
Raigeki
=
12580477
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BlackWhirlwind
=
91351370
,
public
static
int
BlackWhirlwind
=
91351370
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
DeltaCrowAntiReverse
=
59839761
,
public
static
int
DeltaCrowAntiReverse
=
59839761
;
DimensionalPrison
=
70342110
,
public
static
int
DimensionalPrison
=
70342110
;
SilverwindTheAscendant
=
33236860
,
public
static
int
SilverwindTheAscendant
=
33236860
;
BlackWingedDragon
=
9012916
,
public
static
int
BlackWingedDragon
=
9012916
;
ArmorMaster
=
69031175
,
public
static
int
ArmorMaster
=
69031175
;
ArmedWing
=
76913983
,
public
static
int
ArmedWing
=
76913983
;
GramTheShiningStar
=
17377751
public
static
int
GramTheShiningStar
=
17377751
;
}
}
public
BlackwingExecutor
(
GameAI
ai
,
Duel
duel
)
public
BlackwingExecutor
(
GameAI
ai
,
Duel
duel
)
...
@@ -39,45 +39,45 @@ namespace WindBot.Game.AI.Decks
...
@@ -39,45 +39,45 @@ namespace WindBot.Game.AI.Decks
{
{
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BlackWhirlwind
,
BlackWhirlwindEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BlackWhirlwind
,
BlackWhirlwindEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
KrisTheCrackOfDawn
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
KrisTheCrackOfDawn
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
KrisTheCrackOfDawn
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
KrisTheCrackOfDawn
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SiroccoTheDawn
,
SiroccoTheDawnSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SiroccoTheDawn
,
SiroccoTheDawnSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ShuraTheBlueFlame
,
ShuraTheBlueFlameSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ShuraTheBlueFlame
,
ShuraTheBlueFlameSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
ShuraTheBlueFlame
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
ShuraTheBlueFlame
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
BoraTheSpear
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
BoraTheSpear
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
BoraTheSpear
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
BoraTheSpear
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
KalutTheMoonShadow
,
KalutTheMoonShadowSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
KalutTheMoonShadow
,
KalutTheMoonShadowSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GaleTheWhirlwind
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GaleTheWhirlwind
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
GaleTheWhirlwind
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
GaleTheWhirlwind
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
BlizzardTheFarNorth
,
BlizzardTheFarNorthSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
BlizzardTheFarNorth
,
BlizzardTheFarNorthSummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
MistralTheSilverShield
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
MistralTheSilverShield
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SilverwindTheAscendant
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SilverwindTheAscendant
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ArmorMaster
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ArmorMaster
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GramTheShiningStar
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GramTheShiningStar
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ArmedWing
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ArmedWing
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
BlackWingedDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
BlackWingedDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalPrison
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalPrison
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DeltaCrowAntiReverse
,
DeltaCrowAntiReverseEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DeltaCrowAntiReverse
,
DeltaCrowAntiReverseEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BlizzardTheFarNorth
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BlizzardTheFarNorth
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ShuraTheBlueFlame
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShuraTheBlueFlame
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BoraTheSpear
,
BoraTheSpearEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BoraTheSpear
,
BoraTheSpearEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
KalutTheMoonShadow
,
AttackUpEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
KalutTheMoonShadow
,
AttackUpEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SiroccoTheDawn
,
AttackUpEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SiroccoTheDawn
,
AttackUpEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GaleTheWhirlwind
,
GaleTheWhirlwindEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GaleTheWhirlwind
,
GaleTheWhirlwindEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SilverwindTheAscendant
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SilverwindTheAscendant
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BlackWingedDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BlackWingedDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ArmorMaster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ArmorMaster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ArmedWing
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ArmedWing
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GramTheShiningStar
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GramTheShiningStar
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -91,7 +91,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -91,7 +91,7 @@ namespace WindBot.Game.AI.Decks
private
bool
ShuraTheBlueFlameSummon
()
private
bool
ShuraTheBlueFlameSummon
()
{
{
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
SiroccoTheDawn
)
&&
Bot
.
GetMonsters
().
GetHighestAttackMonster
().
Attack
<
3800
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
SiroccoTheDawn
)
&&
Bot
.
GetMonsters
().
GetHighestAttackMonster
().
Attack
<
3800
)
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -101,7 +101,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -101,7 +101,7 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
Location
==
CardLocation
.
Hand
&&
Bot
.
HasInSpellZone
(
Card
.
Id
))
if
(
Card
.
Location
==
CardLocation
.
Hand
&&
Bot
.
HasInSpellZone
(
Card
.
Id
))
return
false
;
return
false
;
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
Card
.
Id
,
0
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
Card
.
Id
,
0
))
AI
.
SelectCard
(
(
int
)
CardId
.
GaleTheWhirlwind
);
AI
.
SelectCard
(
CardId
.
GaleTheWhirlwind
);
return
true
;
return
true
;
}
}
...
@@ -118,7 +118,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -118,7 +118,7 @@ namespace WindBot.Game.AI.Decks
{
{
List
<
ClientCard
>
monster
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monster
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
card
in
monster
)
foreach
(
ClientCard
card
in
monster
)
if
(
card
!=
null
&&
card
.
Id
==
(
int
)
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
(
int
)
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
(
int
)
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
(
int
)
CardId
.
BoraTheSpear
||
card
.
Id
==
(
int
)
CardId
.
SiroccoTheDawn
||
card
.
Id
==
(
int
)
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
(
int
)
CardId
.
BlizzardTheFarNorth
)
if
(
card
!=
null
&&
card
.
Id
==
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
CardId
.
BoraTheSpear
||
card
.
Id
==
CardId
.
SiroccoTheDawn
||
card
.
Id
==
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
CardId
.
BlizzardTheFarNorth
)
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -126,7 +126,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -126,7 +126,7 @@ namespace WindBot.Game.AI.Decks
private
bool
KalutTheMoonShadowSummon
()
private
bool
KalutTheMoonShadowSummon
()
{
{
foreach
(
ClientCard
card
in
Bot
.
Hand
)
foreach
(
ClientCard
card
in
Bot
.
Hand
)
if
(
card
!=
null
&&
card
.
Id
==
(
int
)
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
(
int
)
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
(
int
)
CardId
.
BoraTheSpear
||
card
.
Id
==
(
int
)
CardId
.
SiroccoTheDawn
||
card
.
Id
==
(
int
)
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
(
int
)
CardId
.
BlizzardTheFarNorth
)
if
(
card
!=
null
&&
card
.
Id
==
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
CardId
.
BoraTheSpear
||
card
.
Id
==
CardId
.
SiroccoTheDawn
||
card
.
Id
==
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
CardId
.
BlizzardTheFarNorth
)
return
false
;
return
false
;
return
true
;
return
true
;
}
}
...
@@ -134,7 +134,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -134,7 +134,7 @@ namespace WindBot.Game.AI.Decks
private
bool
BlizzardTheFarNorthSummon
()
private
bool
BlizzardTheFarNorthSummon
()
{
{
foreach
(
ClientCard
card
in
Bot
.
Graveyard
)
foreach
(
ClientCard
card
in
Bot
.
Graveyard
)
if
(
card
!=
null
&&
card
.
Id
==
(
int
)
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
(
int
)
CardId
.
BoraTheSpear
||
card
.
Id
==
(
int
)
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
(
int
)
CardId
.
KrisTheCrackOfDawn
)
if
(
card
!=
null
&&
card
.
Id
==
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
CardId
.
BoraTheSpear
||
card
.
Id
==
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
CardId
.
KrisTheCrackOfDawn
)
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -145,7 +145,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -145,7 +145,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
monster
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monster
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
card
in
monster
)
foreach
(
ClientCard
card
in
monster
)
if
(
card
!=
null
&&
card
.
Id
==
(
int
)
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
(
int
)
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
(
int
)
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
(
int
)
CardId
.
BoraTheSpear
||
card
.
Id
==
(
int
)
CardId
.
SiroccoTheDawn
||
card
.
Id
==
(
int
)
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
(
int
)
CardId
.
BlizzardTheFarNorth
)
if
(
card
!=
null
&&
card
.
Id
==
CardId
.
KrisTheCrackOfDawn
||
card
.
Id
==
CardId
.
KalutTheMoonShadow
||
card
.
Id
==
CardId
.
GaleTheWhirlwind
||
card
.
Id
==
CardId
.
BoraTheSpear
||
card
.
Id
==
CardId
.
SiroccoTheDawn
||
card
.
Id
==
CardId
.
ShuraTheBlueFlame
||
card
.
Id
==
CardId
.
BlizzardTheFarNorth
)
Count
++;
Count
++;
if
(
Count
==
3
)
if
(
Count
==
3
)
...
...
Game/AI/Decks/BurnExecutor.cs
View file @
f8f793ac
...
@@ -9,30 +9,30 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,30 +9,30 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Burn"
,
"AI_Burn"
,
"Easy"
)]
[
Deck
(
"Burn"
,
"AI_Burn"
,
"Easy"
)]
public
class
BurnExecutor
:
DefaultExecutor
public
class
BurnExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
LavaGolem
=
102380
,
public
static
int
LavaGolem
=
102380
;
ReflectBounder
=
2851070
,
public
static
int
ReflectBounder
=
2851070
;
FencingFireFerret
=
97396380
,
public
static
int
FencingFireFerret
=
97396380
;
BlastSphere
=
26302522
,
public
static
int
BlastSphere
=
26302522
;
Marshmallon
=
31305911
,
public
static
int
Marshmallon
=
31305911
;
SpiritReaper
=
23205979
,
public
static
int
SpiritReaper
=
23205979
;
NaturiaBeans
=
44789585
,
public
static
int
NaturiaBeans
=
44789585
;
ThunderShort
=
20264508
,
public
static
int
ThunderShort
=
20264508
;
Ookazi
=
19523799
,
public
static
int
Ookazi
=
19523799
;
GoblinThief
=
45311864
,
public
static
int
GoblinThief
=
45311864
;
TremendousFire
=
46918794
,
public
static
int
TremendousFire
=
46918794
;
SwordsOfRevealingLight
=
72302403
,
public
static
int
SwordsOfRevealingLight
=
72302403
;
SupremacyBerry
=
98380593
,
public
static
int
SupremacyBerry
=
98380593
;
ChainEnergy
=
79323590
,
public
static
int
ChainEnergy
=
79323590
;
DarkRoomofNightmare
=
85562745
,
public
static
int
DarkRoomofNightmare
=
85562745
;
PoisonOfTheOldMan
=
8842266
,
public
static
int
PoisonOfTheOldMan
=
8842266
;
OjamaTrio
=
29843091
,
public
static
int
OjamaTrio
=
29843091
;
Ceasefire
=
36468556
,
public
static
int
Ceasefire
=
36468556
;
MagicCylinder
=
62279055
,
public
static
int
MagicCylinder
=
62279055
;
MinorGoblinOfficial
=
1918087
,
public
static
int
MinorGoblinOfficial
=
1918087
;
ChainBurst
=
48276469
,
public
static
int
ChainBurst
=
48276469
;
SkullInvitation
=
98139712
public
static
int
SkullInvitation
=
98139712
;
}
}
public
BurnExecutor
(
GameAI
ai
,
Duel
duel
)
public
BurnExecutor
(
GameAI
ai
,
Duel
duel
)
...
@@ -42,39 +42,39 @@ namespace WindBot.Game.AI.Decks
...
@@ -42,39 +42,39 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
// Activate Spells
// Activate Spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkRoomofNightmare
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkRoomofNightmare
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ookazi
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Ookazi
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GoblinThief
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GoblinThief
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TremendousFire
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TremendousFire
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SwordsOfRevealingLight
,
SwordsOfRevealingLight
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SwordsOfRevealingLight
,
SwordsOfRevealingLight
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SupremacyBerry
,
SupremacyBerry
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SupremacyBerry
,
SupremacyBerry
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PoisonOfTheOldMan
,
PoisonOfTheOldMan
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PoisonOfTheOldMan
,
PoisonOfTheOldMan
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ThunderShort
,
ThunderShort
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ThunderShort
,
ThunderShort
);
// Hello, my name is Lava Golem
// Hello, my name is Lava Golem
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
LavaGolem
,
LavaGolem
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
LavaGolem
,
LavaGolem
);
// Set an invincible monster
// Set an invincible monster
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Marshmallon
,
SetInvincibleMonster
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Marshmallon
,
SetInvincibleMonster
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
SpiritReaper
,
SetInvincibleMonster
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
SpiritReaper
,
SetInvincibleMonster
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
BlastSphere
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
BlastSphere
);
// Set other monsters
// Set other monsters
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
FencingFireFerret
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
FencingFireFerret
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ReflectBounder
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ReflectBounder
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
NaturiaBeans
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
NaturiaBeans
);
// We're a coward
// We're a coward
AddExecutor
(
ExecutorType
.
Repos
,
ReposEverything
);
AddExecutor
(
ExecutorType
.
Repos
,
ReposEverything
);
// Chain traps
// Chain traps
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MagicCylinder
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MagicCylinder
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ceasefire
,
Ceasefire
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Ceasefire
,
Ceasefire
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
OjamaTrio
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
OjamaTrio
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MinorGoblinOfficial
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MinorGoblinOfficial
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ChainBurst
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ChainBurst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SkullInvitation
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SkullInvitation
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ChainEnergy
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ChainEnergy
);
}
}
public
override
bool
OnSelectHand
()
public
override
bool
OnSelectHand
()
...
@@ -84,7 +84,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -84,7 +84,7 @@ namespace WindBot.Game.AI.Decks
private
bool
SwordsOfRevealingLight
()
private
bool
SwordsOfRevealingLight
()
{
{
int
count
=
Bot
.
SpellZone
.
GetCardCount
(
(
int
)
CardId
.
SwordsOfRevealingLight
);
int
count
=
Bot
.
SpellZone
.
GetCardCount
(
CardId
.
SwordsOfRevealingLight
);
return
count
==
0
;
return
count
==
0
;
}
}
...
@@ -108,7 +108,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -108,7 +108,7 @@ namespace WindBot.Game.AI.Decks
{
{
foreach
(
ClientCard
card
in
Bot
.
GetMonsters
())
foreach
(
ClientCard
card
in
Bot
.
GetMonsters
())
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
Marshmallon
||
card
.
Id
==
(
int
)
CardId
.
SpiritReaper
)
if
(
card
.
Id
==
CardId
.
Marshmallon
||
card
.
Id
==
CardId
.
SpiritReaper
)
{
{
return
false
;
return
false
;
}
}
...
@@ -134,9 +134,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -134,9 +134,9 @@ namespace WindBot.Game.AI.Decks
private
bool
ReposEverything
()
private
bool
ReposEverything
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
ReflectBounder
)
if
(
Card
.
Id
==
CardId
.
ReflectBounder
)
return
Card
.
IsDefense
();
return
Card
.
IsDefense
();
if
(
Card
.
Id
==
(
int
)
CardId
.
FencingFireFerret
)
if
(
Card
.
Id
==
CardId
.
FencingFireFerret
)
return
DefaultMonsterRepos
();
return
DefaultMonsterRepos
();
if
(
Card
.
IsAttack
())
if
(
Card
.
IsAttack
())
return
true
;
return
true
;
...
...
Game/AI/Decks/CyberDragonExecutor.cs
View file @
f8f793ac
...
@@ -12,114 +12,114 @@ namespace WindBot.Game.AI.Decks
...
@@ -12,114 +12,114 @@ namespace WindBot.Game.AI.Decks
{
{
bool
PowerBondUsed
=
false
;
bool
PowerBondUsed
=
false
;
public
enum
CardId
public
class
CardId
{
{
CyberLaserDragon
=
4162088
,
public
static
int
CyberLaserDragon
=
4162088
;
CyberBarrierDragon
=
68774379
,
public
static
int
CyberBarrierDragon
=
68774379
;
CyberDragon
=
70095154
,
public
static
int
CyberDragon
=
70095154
;
CyberDragonDrei
=
59281922
,
public
static
int
CyberDragonDrei
=
59281922
;
CyberPhoenix
=
3370104
,
public
static
int
CyberPhoenix
=
3370104
;
ArmoredCybern
=
67159705
,
public
static
int
ArmoredCybern
=
67159705
;
ProtoCyberDragon
=
26439287
,
public
static
int
ProtoCyberDragon
=
26439287
;
CyberKirin
=
76986005
,
public
static
int
CyberKirin
=
76986005
;
CyberDragonCore
=
23893227
,
public
static
int
CyberDragonCore
=
23893227
;
CyberValley
=
3657444
,
public
static
int
CyberValley
=
3657444
;
Raigeki
=
12580477
,
public
static
int
Raigeki
=
12580477
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
DifferentDimensionCapsule
=
11961740
,
public
static
int
DifferentDimensionCapsule
=
11961740
;
Polymerization
=
24094653
,
public
static
int
Polymerization
=
24094653
;
PowerBond
=
37630732
,
public
static
int
PowerBond
=
37630732
;
EvolutionBurst
=
52875873
,
public
static
int
EvolutionBurst
=
52875873
;
PhotonGeneratorUnit
=
66607691
,
public
static
int
PhotonGeneratorUnit
=
66607691
;
DeFusion
=
95286165
,
public
static
int
DeFusion
=
95286165
;
BottomlessTrapHole
=
29401950
,
public
static
int
BottomlessTrapHole
=
29401950
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
AttackReflectorUnit
=
91989718
,
public
static
int
AttackReflectorUnit
=
91989718
;
CyberneticHiddenTechnology
=
92773018
,
public
static
int
CyberneticHiddenTechnology
=
92773018
;
CallOfTheHaunted
=
97077563
,
public
static
int
CallOfTheHaunted
=
97077563
;
SevenToolsOfTheBandit
=
3819470
,
public
static
int
SevenToolsOfTheBandit
=
3819470
;
CyberTwinDragon
=
74157028
,
public
static
int
CyberTwinDragon
=
74157028
;
CyberEndDragon
=
1546123
,
public
static
int
CyberEndDragon
=
1546123
;
CyberDragonNova
=
58069384
public
static
int
CyberDragonNova
=
58069384
;
}
}
public
CyberDragonExecutor
(
GameAI
ai
,
Duel
duel
)
public
CyberDragonExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DeFusion
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DeFusion
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DifferentDimensionCapsule
,
Capsule
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DifferentDimensionCapsule
,
Capsule
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Polymerization
,
PolymerizationEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Polymerization
,
PolymerizationEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PowerBond
,
PowerBondEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PowerBond
,
PowerBondEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvolutionBurst
,
EvolutionBurstEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvolutionBurst
,
EvolutionBurstEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PhotonGeneratorUnit
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PhotonGeneratorUnit
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DeFusion
,
DeFusionEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DeFusion
,
DeFusionEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AttackReflectorUnit
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AttackReflectorUnit
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SevenToolsOfTheBandit
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SevenToolsOfTheBandit
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CallOfTheHaunted
,
DefaultCallOfTheHaunted
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CallOfTheHaunted
,
DefaultCallOfTheHaunted
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
CyberDragonDrei
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
CyberDragonDrei
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
CyberPhoenix
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
CyberPhoenix
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
CyberValley
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
CyberValley
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
CyberDragonCore
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
CyberDragonCore
,
NoCyberDragonSpsummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
ArmoredCybern
,
ArmoredCybernSet
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
ArmoredCybern
,
ArmoredCybernSet
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
ProtoCyberDragon
,
ProtoCyberDragonSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
ProtoCyberDragon
,
ProtoCyberDragonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
CyberKirin
,
CyberKirinSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
CyberKirin
,
CyberKirinSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberEndDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberEndDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberTwinDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberTwinDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberBarrierDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberBarrierDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberLaserDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberLaserDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberBarrierDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberBarrierDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberLaserDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberLaserDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberDragonDrei
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberDragonDrei
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberPhoenix
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberPhoenix
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberKirin
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberKirin
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ArmoredCybern
,
ArmoredCybernEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ArmoredCybern
,
ArmoredCybernEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberValley
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberValley
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
private
bool
CyberDragonInHand
()
{
return
Bot
.
HasInHand
(
(
int
)
CardId
.
CyberDragon
);
}
private
bool
CyberDragonInHand
()
{
return
Bot
.
HasInHand
(
CardId
.
CyberDragon
);
}
private
bool
CyberDragonInGraveyard
()
{
return
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
CyberDragon
);
}
private
bool
CyberDragonInGraveyard
()
{
return
Bot
.
HasInGraveyard
(
CardId
.
CyberDragon
);
}
private
bool
CyberDragonInMonsterZone
()
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
CyberDragon
);
}
private
bool
CyberDragonInMonsterZone
()
{
return
Bot
.
HasInMonstersZone
(
CardId
.
CyberDragon
);
}
private
bool
CyberDragonIsBanished
()
{
return
Bot
.
HasInBanished
(
(
int
)
CardId
.
CyberDragon
);
}
private
bool
CyberDragonIsBanished
()
{
return
Bot
.
HasInBanished
(
CardId
.
CyberDragon
);
}
private
bool
Capsule
()
private
bool
Capsule
()
{
{
List
<
int
>
SelectedCard
=
new
List
<
int
>();
List
<
int
>
SelectedCard
=
new
List
<
int
>();
SelectedCard
.
Add
(
(
int
)
CardId
.
PowerBond
);
SelectedCard
.
Add
(
CardId
.
PowerBond
);
SelectedCard
.
Add
(
(
int
)
CardId
.
DarkHole
);
SelectedCard
.
Add
(
CardId
.
DarkHole
);
SelectedCard
.
Add
(
(
int
)
CardId
.
Raigeki
);
SelectedCard
.
Add
(
CardId
.
Raigeki
);
AI
.
SelectCard
(
SelectedCard
);
AI
.
SelectCard
(
SelectedCard
);
return
true
;
return
true
;
}
}
private
bool
PolymerizationEffect
()
private
bool
PolymerizationEffect
()
{
{
if
(
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
ProtoCyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
CyberDragon
)
>=
3
)
if
(
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
ProtoCyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
CyberDragon
)
>=
3
)
AI
.
SelectCard
(
(
int
)
CardId
.
CyberEndDragon
);
AI
.
SelectCard
(
CardId
.
CyberEndDragon
);
else
else
AI
.
SelectCard
(
(
int
)
CardId
.
CyberTwinDragon
);
AI
.
SelectCard
(
CardId
.
CyberTwinDragon
);
return
true
;
return
true
;
}
}
private
bool
PowerBondEffect
()
private
bool
PowerBondEffect
()
{
{
PowerBondUsed
=
true
;
PowerBondUsed
=
true
;
if
(
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
ProtoCyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
CyberDragonCore
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
(
int
)
CardId
.
CyberDragonCore
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
(
int
)
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragonDrei
)
>=
3
)
if
(
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
ProtoCyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
CyberDragonCore
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
CardId
.
CyberDragonCore
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
CardId
.
CyberDragonDrei
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragonDrei
)
>=
3
)
AI
.
SelectCard
(
(
int
)
CardId
.
CyberEndDragon
);
AI
.
SelectCard
(
CardId
.
CyberEndDragon
);
else
else
AI
.
SelectCard
(
(
int
)
CardId
.
CyberTwinDragon
);
AI
.
SelectCard
(
CardId
.
CyberTwinDragon
);
return
true
;
return
true
;
}
}
...
@@ -142,16 +142,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -142,16 +142,16 @@ namespace WindBot.Game.AI.Decks
private
bool
ArmoredCybernSet
()
private
bool
ArmoredCybernSet
()
{
{
if
(
CyberDragonInHand
()
&&
(
Bot
.
GetMonsterCount
()
==
0
&&
Enemy
.
GetMonsterCount
()
!=
0
)
||
(
Bot
.
HasInHand
(
(
int
)
CardId
.
CyberDragonDrei
)
||
Bot
.
HasInHand
((
int
)
CardId
.
CyberPhoenix
))
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1800
,
true
))
if
(
CyberDragonInHand
()
&&
(
Bot
.
GetMonsterCount
()
==
0
&&
Enemy
.
GetMonsterCount
()
!=
0
)
||
(
Bot
.
HasInHand
(
CardId
.
CyberDragonDrei
)
||
Bot
.
HasInHand
(
CardId
.
CyberPhoenix
))
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1800
,
true
))
return
false
;
return
false
;
return
true
;
return
true
;
}
}
private
bool
ProtoCyberDragonSummon
()
private
bool
ProtoCyberDragonSummon
()
{
{
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragonCore
)
>=
1
&&
Bot
.
HasInHand
((
int
)
CardId
.
Polymerization
)
||
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
(
int
)
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
(
int
)
CardId
.
CyberDragonCore
)
>=
1
&&
Bot
.
HasInHand
((
int
)
CardId
.
PowerBond
))
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragonCore
)
>=
1
&&
Bot
.
HasInHand
(
CardId
.
Polymerization
)
||
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
MonsterZone
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
CardId
.
CyberDragon
)
+
Bot
.
GetCountCardInZone
(
Bot
.
Graveyard
,
CardId
.
CyberDragonCore
)
>=
1
&&
Bot
.
HasInHand
(
CardId
.
PowerBond
))
return
true
;
return
true
;
if
(
CyberDragonInHand
()
&&
(
Bot
.
GetMonsterCount
()
==
0
&&
Enemy
.
GetMonsterCount
()
!=
0
)
||
(
Bot
.
HasInHand
(
(
int
)
CardId
.
CyberDragonDrei
)
||
Bot
.
HasInHand
((
int
)
CardId
.
CyberPhoenix
))
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1800
,
true
))
if
(
CyberDragonInHand
()
&&
(
Bot
.
GetMonsterCount
()
==
0
&&
Enemy
.
GetMonsterCount
()
!=
0
)
||
(
Bot
.
HasInHand
(
CardId
.
CyberDragonDrei
)
||
Bot
.
HasInHand
(
CardId
.
CyberPhoenix
))
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1800
,
true
))
return
false
;
return
false
;
return
true
;
return
true
;
}
}
...
@@ -168,7 +168,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -168,7 +168,7 @@ namespace WindBot.Game.AI.Decks
else
if
(
Card
.
Location
==
CardLocation
.
SpellZone
)
else
if
(
Card
.
Location
==
CardLocation
.
SpellZone
)
{
{
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
Bot
.
GetMonsters
().
GetHighestAttackMonster
().
Attack
,
true
))
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
Bot
.
GetMonsters
().
GetHighestAttackMonster
().
Attack
,
true
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
ArmoredCybern
,
2
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
ArmoredCybern
,
2
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
...
Game/AI/Decks/DoEveryThingExecutor.cs
View file @
f8f793ac
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Test"
,
"AI_Test"
,
"Test"
)]
[
Deck
(
"Test"
,
"AI_Test"
,
"Test"
)]
public
class
DoEverythingExecutor
:
DefaultExecutor
public
class
DoEverythingExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
LeoWizard
=
4392470
,
public
static
int
LeoWizard
=
4392470
;
Bunilla
=
69380702
public
static
int
Bunilla
=
69380702
;
}
}
public
DoEverythingExecutor
(
GameAI
ai
,
Duel
duel
)
public
DoEverythingExecutor
(
GameAI
ai
,
Duel
duel
)
...
...
Game/AI/Decks/DragunityExecutor.cs
View file @
f8f793ac
...
@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Dragunity"
,
"AI_Dragunity"
)]
[
Deck
(
"Dragunity"
,
"AI_Dragunity"
)]
public
class
DragunityExecutor
:
DefaultExecutor
public
class
DragunityExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
StardustDragonAssaultMode
=
61257789
,
public
static
int
StardustDragonAssaultMode
=
61257789
;
DragunityArmaMysletainn
=
876330
,
public
static
int
DragunityArmaMysletainn
=
876330
;
AssaultBeast
=
3431737
,
public
static
int
AssaultBeast
=
3431737
;
DragunityDux
=
28183605
,
public
static
int
DragunityDux
=
28183605
;
DragunityPhalanx
=
59755122
,
public
static
int
DragunityPhalanx
=
59755122
;
AssaultTeleport
=
29863101
,
public
static
int
AssaultTeleport
=
29863101
;
CardsOfConsonance
=
39701395
,
public
static
int
CardsOfConsonance
=
39701395
;
UpstartGoblin
=
70368879
,
public
static
int
UpstartGoblin
=
70368879
;
DragonsMirror
=
71490127
,
public
static
int
DragonsMirror
=
71490127
;
Terraforming
=
73628505
,
public
static
int
Terraforming
=
73628505
;
FoolishBurial
=
81439173
,
public
static
int
FoolishBurial
=
81439173
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
FireFormationTenki
=
57103969
,
public
static
int
FireFormationTenki
=
57103969
;
DragunitySpearOfDestiny
=
60004971
,
public
static
int
DragunitySpearOfDestiny
=
60004971
;
DragonRavine
=
62265044
,
public
static
int
DragonRavine
=
62265044
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
StarlightRoad
=
58120309
,
public
static
int
StarlightRoad
=
58120309
;
DimensionalPrison
=
70342110
,
public
static
int
DimensionalPrison
=
70342110
;
AssaultModeActivate
=
80280737
,
public
static
int
AssaultModeActivate
=
80280737
;
FiveHeadedDragon
=
99267150
,
public
static
int
FiveHeadedDragon
=
99267150
;
CrystalWingSynchroDragon
=
50954680
,
public
static
int
CrystalWingSynchroDragon
=
50954680
;
ScrapDragon
=
76774528
,
public
static
int
ScrapDragon
=
76774528
;
StardustDragon
=
44508094
,
public
static
int
StardustDragon
=
44508094
;
DragunityKnightGaeDearg
=
34116027
,
public
static
int
DragunityKnightGaeDearg
=
34116027
;
DragunityKnightVajrayana
=
21249921
public
static
int
DragunityKnightVajrayana
=
21249921
;
}
}
public
DragunityExecutor
(
GameAI
ai
,
Duel
duel
)
public
DragunityExecutor
(
GameAI
ai
,
Duel
duel
)
...
@@ -46,60 +46,60 @@ namespace WindBot.Game.AI.Decks
...
@@ -46,60 +46,60 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
// Execute spells
// Execute spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AssaultTeleport
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AssaultTeleport
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
UpstartGoblin
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
UpstartGoblin
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragonRavine
,
DragonRavineField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragonRavine
,
DragonRavineField
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Terraforming
,
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Terraforming
,
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterReborn
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
MonsterReborn
);
// Execute monsters
// Execute monsters
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ScrapDragon
,
ScrapDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ScrapDragon
,
ScrapDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragunityPhalanx
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragunityPhalanx
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragunityKnightVajrayana
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragunityKnightVajrayana
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainnEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainnEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragunityDux
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragunityDux
);
// Summon
// Summon
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragonsMirror
,
DragonsMirror
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragonsMirror
,
DragonsMirror
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ScrapDragon
,
ScrapDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ScrapDragon
,
ScrapDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
StardustDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
StardustDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DragunityKnightVajrayana
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DragunityKnightVajrayana
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DragunityKnightGaeDearg
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DragunityKnightGaeDearg
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DragunityPhalanx
,
DragunityPhalanxSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DragunityPhalanx
,
DragunityPhalanxSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainn
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainn
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainnTribute
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DragunityArmaMysletainn
,
DragunityArmaMysletainnTribute
);
// Use draw effects if we can't do anything else
// Use draw effects if we can't do anything else
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardsOfConsonance
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CardsOfConsonance
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragonRavine
,
DragonRavineEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragonRavine
,
DragonRavineEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FireFormationTenki
,
FireFormationTenki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FireFormationTenki
,
FireFormationTenki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragunitySpearOfDestiny
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragunitySpearOfDestiny
);
// Summon
// Summon
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DragunityDux
,
DragunityDux
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DragunityDux
,
DragunityDux
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
DragunityPhalanx
,
DragunityPhalanxSet
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
DragunityPhalanx
,
DragunityPhalanxSet
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
AssaultBeast
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
AssaultBeast
);
// Draw assault mode if we don't have one
// Draw assault mode if we don't have one
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AssaultBeast
,
AssaultBeast
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AssaultBeast
,
AssaultBeast
);
// Set useless cards
// Set useless cards
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DragonsMirror
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DragonsMirror
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
Terraforming
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
Terraforming
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
AssaultTeleport
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
AssaultTeleport
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CardsOfConsonance
,
SetUselessCards
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CardsOfConsonance
,
SetUselessCards
);
// Chain traps and monsters
// Chain traps and monsters
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragonAssaultMode
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StardustDragonAssaultMode
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalPrison
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalPrison
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AssaultModeActivate
,
AssaultModeActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AssaultModeActivate
,
AssaultModeActivate
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -117,61 +117,61 @@ namespace WindBot.Game.AI.Decks
...
@@ -117,61 +117,61 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
int
tributeId
=
-
1
;
int
tributeId
=
-
1
;
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunityPhalanx
))
if
(
Bot
.
HasInHand
(
CardId
.
DragunityPhalanx
))
tributeId
=
(
int
)
CardId
.
DragunityPhalanx
;
tributeId
=
CardId
.
DragunityPhalanx
;
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
FireFormationTenki
))
else
if
(
Bot
.
HasInHand
(
CardId
.
FireFormationTenki
))
tributeId
=
(
int
)
CardId
.
FireFormationTenki
;
tributeId
=
CardId
.
FireFormationTenki
;
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Terraforming
))
else
if
(
Bot
.
HasInHand
(
CardId
.
Terraforming
))
tributeId
=
(
int
)
CardId
.
Terraforming
;
tributeId
=
CardId
.
Terraforming
;
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
DragonRavine
))
else
if
(
Bot
.
HasInHand
(
CardId
.
DragonRavine
))
tributeId
=
(
int
)
CardId
.
DragonRavine
;
tributeId
=
CardId
.
DragonRavine
;
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
AssaultTeleport
))
else
if
(
Bot
.
HasInHand
(
CardId
.
AssaultTeleport
))
tributeId
=
(
int
)
CardId
.
AssaultTeleport
;
tributeId
=
CardId
.
AssaultTeleport
;
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
AssaultBeast
))
else
if
(
Bot
.
HasInHand
(
CardId
.
AssaultBeast
))
tributeId
=
(
int
)
CardId
.
AssaultBeast
;
tributeId
=
CardId
.
AssaultBeast
;
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
DragunityArmaMysletainn
))
else
if
(
Bot
.
HasInHand
((
int
)
CardId
.
DragunityArmaMysletainn
))
tributeId
=
(
int
)
CardId
.
DragunityArmaMysletainn
;
tributeId
=
CardId
.
DragunityArmaMysletainn
;
else
else
{
{
int
count
=
0
;
int
count
=
0
;
foreach
(
ClientCard
card
in
Bot
.
Hand
)
foreach
(
ClientCard
card
in
Bot
.
Hand
)
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
DragunityDux
)
if
(
card
.
Id
==
CardId
.
DragunityDux
)
++
count
;
++
count
;
}
}
if
(
count
>=
2
)
if
(
count
>=
2
)
tributeId
=
(
int
)
CardId
.
DragunityDux
;
tributeId
=
CardId
.
DragunityDux
;
}
}
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
StardustDragonAssaultMode
))
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
CardId
.
StardustDragonAssaultMode
))
tributeId
=
(
int
)
CardId
.
StardustDragonAssaultMode
;
tributeId
=
CardId
.
StardustDragonAssaultMode
;
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunitySpearOfDestiny
))
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
CardId
.
DragunitySpearOfDestiny
))
tributeId
=
(
int
)
CardId
.
StardustDragonAssaultMode
;
tributeId
=
CardId
.
StardustDragonAssaultMode
;
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
DragonsMirror
)
if
(
tributeId
==
-
1
&&
Bot
.
HasInHand
(
CardId
.
DragonsMirror
)
&&
Bot
.
GetMonsterCount
()
==
0
)
&&
Bot
.
GetMonsterCount
()
==
0
)
tributeId
=
(
int
)
CardId
.
StardustDragonAssaultMode
;
tributeId
=
CardId
.
StardustDragonAssaultMode
;
if
(
tributeId
==
-
1
)
if
(
tributeId
==
-
1
)
return
false
;
return
false
;
int
needId
=
-
1
;
int
needId
=
-
1
;
if
(!
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
DragunityPhalanx
)
&&
if
(!
Bot
.
HasInMonstersZone
(
CardId
.
DragunityPhalanx
)
&&
!
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DragunityPhalanx
))
!
Bot
.
HasInGraveyard
(
CardId
.
DragunityPhalanx
))
needId
=
(
int
)
CardId
.
DragunityPhalanx
;
needId
=
CardId
.
DragunityPhalanx
;
else
if
(
Bot
.
GetMonsterCount
()
==
0
)
else
if
(
Bot
.
GetMonsterCount
()
==
0
)
needId
=
(
int
)
CardId
.
DragunityDux
;
needId
=
CardId
.
DragunityDux
;
else
else
{
{
/*bool hasRealMonster = false;
/*bool hasRealMonster = false;
foreach (ClientCard card in Bot.GetMonsters())
foreach (ClientCard card in Bot.GetMonsters())
{
{
if (card.Id !=
(int)
CardId.AssaultBeast)
if (card.Id != CardId.AssaultBeast)
{
{
hasRealMonster = true;
hasRealMonster = true;
break;
break;
}
}
}
}
if (!hasRealMonster || AI.Utils.GetProblematicCard() != null)*/
if (!hasRealMonster || AI.Utils.GetProblematicCard() != null)*/
needId
=
(
int
)
CardId
.
DragunityDux
;
needId
=
CardId
.
DragunityDux
;
}
}
if
(
needId
==
-
1
)
if
(
needId
==
-
1
)
...
@@ -179,8 +179,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -179,8 +179,8 @@ namespace WindBot.Game.AI.Decks
int
option
;
int
option
;
if
(
tributeId
==
(
int
)
CardId
.
DragunityPhalanx
)
if
(
tributeId
==
CardId
.
DragunityPhalanx
)
needId
=
(
int
)
CardId
.
DragunityDux
;
needId
=
CardId
.
DragunityDux
;
int
remaining
=
3
;
int
remaining
=
3
;
foreach
(
ClientCard
card
in
Bot
.
Hand
)
foreach
(
ClientCard
card
in
Bot
.
Hand
)
...
@@ -195,12 +195,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -195,12 +195,12 @@ namespace WindBot.Game.AI.Decks
if
(
remaining
<=
0
)
if
(
remaining
<=
0
)
return
false
;
return
false
;
if
(
needId
==
(
int
)
CardId
.
DragunityPhalanx
)
if
(
needId
==
CardId
.
DragunityPhalanx
)
option
=
2
;
option
=
2
;
else
else
option
=
1
;
option
=
1
;
if
(
ActivateDescription
!=
(
int
)
CardId
.
DragonRavine
*
16
+
option
)
if
(
ActivateDescription
!=
CardId
.
DragonRavine
*
16
+
option
)
return
false
;
return
false
;
AI
.
SelectCard
(
tributeId
);
AI
.
SelectCard
(
tributeId
);
...
@@ -211,7 +211,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -211,7 +211,7 @@ namespace WindBot.Game.AI.Decks
private
bool
Terraforming
()
private
bool
Terraforming
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
DragonRavine
))
if
(
Bot
.
HasInHand
(
CardId
.
DragonRavine
))
return
false
;
return
false
;
if
(
Bot
.
SpellZone
[
5
]
!=
null
)
if
(
Bot
.
SpellZone
[
5
]
!=
null
)
return
false
;
return
false
;
...
@@ -222,13 +222,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -222,13 +222,13 @@ namespace WindBot.Game.AI.Decks
{
{
ClientField
field
=
Bot
;
ClientField
field
=
Bot
;
if
(
field
.
HasInSpellZone
(
(
int
)
CardId
.
FireFormationTenki
))
if
(
field
.
HasInSpellZone
(
CardId
.
FireFormationTenki
))
return
false
;
return
false
;
if
(
field
.
HasInSpellZone
(
(
int
)
CardId
.
AssaultTeleport
))
if
(
field
.
HasInSpellZone
(
CardId
.
AssaultTeleport
))
return
false
;
return
false
;
if
(
field
.
HasInSpellZone
(
(
int
)
CardId
.
CardsOfConsonance
))
if
(
field
.
HasInSpellZone
(
CardId
.
CardsOfConsonance
))
return
false
;
return
false
;
if
(
field
.
HasInSpellZone
(
(
int
)
CardId
.
DragonsMirror
))
if
(
field
.
HasInSpellZone
(
CardId
.
DragonsMirror
))
return
false
;
return
false
;
return
Bot
.
GetSpellCountWithoutField
()
<
4
;
return
Bot
.
GetSpellCountWithoutField
()
<
4
;
...
@@ -243,17 +243,17 @@ namespace WindBot.Game.AI.Decks
...
@@ -243,17 +243,17 @@ namespace WindBot.Game.AI.Decks
private
bool
FoolishBurial
()
private
bool
FoolishBurial
()
{
{
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DragunityPhalanx
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
DragunityPhalanx
))
return
false
;
return
false
;
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunityPhalanx
))
if
(
Bot
.
HasInHand
(
CardId
.
DragunityPhalanx
))
return
false
;
return
false
;
int
remaining
=
3
;
int
remaining
=
3
;
foreach
(
ClientCard
card
in
Bot
.
Banished
)
foreach
(
ClientCard
card
in
Bot
.
Banished
)
if
(
card
.
Id
==
(
int
)
CardId
.
DragunityPhalanx
)
if
(
card
.
Id
==
CardId
.
DragunityPhalanx
)
remaining
--;
remaining
--;
if
(
remaining
>
0
)
if
(
remaining
>
0
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DragunityPhalanx
);
AI
.
SelectCard
(
CardId
.
DragunityPhalanx
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -335,7 +335,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -335,7 +335,7 @@ namespace WindBot.Game.AI.Decks
if
(
tributes
.
Count
<
5
)
if
(
tributes
.
Count
<
5
)
return
false
;
return
false
;
AI
.
SelectCard
(
(
int
)
CardId
.
FiveHeadedDragon
);
AI
.
SelectCard
(
CardId
.
FiveHeadedDragon
);
AI
.
SelectNextCard
(
tributes
);
AI
.
SelectNextCard
(
tributes
);
return
true
;
return
true
;
}
}
...
@@ -355,20 +355,20 @@ namespace WindBot.Game.AI.Decks
...
@@ -355,20 +355,20 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
int
tributeId
=
-
1
;
int
tributeId
=
-
1
;
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
FireFormationTenki
))
if
(
Bot
.
HasInSpellZone
(
CardId
.
FireFormationTenki
))
tributeId
=
(
int
)
CardId
.
FireFormationTenki
;
tributeId
=
CardId
.
FireFormationTenki
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
Terraforming
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
Terraforming
))
tributeId
=
(
int
)
CardId
.
Terraforming
;
tributeId
=
CardId
.
Terraforming
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
DragonsMirror
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
DragonsMirror
))
tributeId
=
(
int
)
CardId
.
DragonsMirror
;
tributeId
=
CardId
.
DragonsMirror
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
CardsOfConsonance
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
CardsOfConsonance
))
tributeId
=
(
int
)
CardId
.
CardsOfConsonance
;
tributeId
=
CardId
.
CardsOfConsonance
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
AssaultTeleport
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
AssaultTeleport
))
tributeId
=
(
int
)
CardId
.
AssaultTeleport
;
tributeId
=
CardId
.
AssaultTeleport
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
AssaultModeActivate
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
AssaultModeActivate
))
tributeId
=
(
int
)
CardId
.
AssaultModeActivate
;
tributeId
=
CardId
.
AssaultModeActivate
;
else
if
(
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
DragonRavine
))
else
if
(
Bot
.
HasInSpellZone
(
CardId
.
DragonRavine
))
tributeId
=
(
int
)
CardId
.
DragonRavine
;
tributeId
=
CardId
.
DragonRavine
;
List
<
ClientCard
>
monsters
=
Enemy
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Enemy
.
GetMonsters
();
monsters
.
Sort
(
AIFunctions
.
CompareCardAttack
);
monsters
.
Sort
(
AIFunctions
.
CompareCardAttack
);
...
@@ -399,9 +399,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -399,9 +399,9 @@ namespace WindBot.Game.AI.Decks
private
bool
CrystalWingSynchroDragonSummon
()
private
bool
CrystalWingSynchroDragonSummon
()
{
{
return
!
Bot
.
HasInHand
(
(
int
)
CardId
.
AssaultModeActivate
)
return
!
Bot
.
HasInHand
(
CardId
.
AssaultModeActivate
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
AssaultBeast
)
&&
!
Bot
.
HasInHand
(
CardId
.
AssaultBeast
)
&&
!
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
AssaultModeActivate
);
&&
!
Bot
.
HasInSpellZone
(
CardId
.
AssaultModeActivate
);
}
}
private
bool
CrystalWingSynchroDragonEffect
()
private
bool
CrystalWingSynchroDragonEffect
()
...
@@ -411,19 +411,19 @@ namespace WindBot.Game.AI.Decks
...
@@ -411,19 +411,19 @@ namespace WindBot.Game.AI.Decks
private
bool
DragunityPhalanxSummon
()
private
bool
DragunityPhalanxSummon
()
{
{
return
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunityArmaMysletainn
);
return
Bot
.
HasInHand
(
CardId
.
DragunityArmaMysletainn
);
}
}
private
bool
DragunityArmaMysletainn
()
private
bool
DragunityArmaMysletainn
()
{
{
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
DragunityPhalanx
))
if
(
Bot
.
HasInMonstersZone
(
CardId
.
DragunityPhalanx
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DragunityPhalanx
);
AI
.
SelectCard
(
CardId
.
DragunityPhalanx
);
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
DragunityDux
))
if
(
Bot
.
HasInMonstersZone
(
CardId
.
DragunityDux
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DragunityDux
);
AI
.
SelectCard
(
CardId
.
DragunityDux
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -431,35 +431,35 @@ namespace WindBot.Game.AI.Decks
...
@@ -431,35 +431,35 @@ namespace WindBot.Game.AI.Decks
private
bool
DragunityArmaMysletainnEffect
()
private
bool
DragunityArmaMysletainnEffect
()
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DragunityPhalanx
);
AI
.
SelectCard
(
CardId
.
DragunityPhalanx
);
return
true
;
return
true
;
}
}
private
bool
DragunityArmaMysletainnTribute
()
private
bool
DragunityArmaMysletainnTribute
()
{
{
if
((
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
AssaultBeast
)
if
((
Bot
.
HasInMonstersZone
(
CardId
.
AssaultBeast
)
&&
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DragunityPhalanx
))
&&
Bot
.
HasInGraveyard
(
CardId
.
DragunityPhalanx
))
||
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
DragunityPhalanx
)
||
Bot
.
HasInMonstersZone
(
CardId
.
DragunityPhalanx
)
||
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunitySpearOfDestiny
))
||
Bot
.
HasInHand
(
CardId
.
DragunitySpearOfDestiny
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
private
bool
DragunityDux
()
private
bool
DragunityDux
()
{
{
return
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DragunityPhalanx
)
||
return
Bot
.
HasInGraveyard
(
CardId
.
DragunityPhalanx
)
||
(
Bot
.
GetMonsterCount
()
==
0
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunityArmaMysletainn
)
||
(
Bot
.
GetMonsterCount
()
==
0
&&
Bot
.
HasInHand
(
CardId
.
DragunityArmaMysletainn
)
||
Bot
.
HasInHand
(
(
int
)
CardId
.
DragunitySpearOfDestiny
));
Bot
.
HasInHand
(
CardId
.
DragunitySpearOfDestiny
));
}
}
private
bool
DragunityPhalanxSet
()
private
bool
DragunityPhalanxSet
()
{
{
return
Bot
.
GetMonsterCount
()
==
0
||
!
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DragunityPhalanx
);
return
Bot
.
GetMonsterCount
()
==
0
||
!
Bot
.
HasInGraveyard
(
CardId
.
DragunityPhalanx
);
}
}
private
bool
AssaultBeast
()
private
bool
AssaultBeast
()
{
{
if
(!
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
AssaultModeActivate
))
if
(!
Bot
.
HasInSpellZone
(
CardId
.
AssaultModeActivate
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
StardustDragon
&&
monster
.
Attacked
)
if
(
monster
.
Id
==
CardId
.
StardustDragon
&&
monster
.
Attacked
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
return
true
;
return
true
;
...
...
Game/AI/Decks/EvilswarmExecutor.cs
View file @
f8f793ac
...
@@ -10,25 +10,25 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,25 +10,25 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Evilswarm"
,
"AI_Evilswarm"
,
"NotFinished"
)]
[
Deck
(
"Evilswarm"
,
"AI_Evilswarm"
,
"NotFinished"
)]
public
class
EvilswarmExecutor
:
DefaultExecutor
public
class
EvilswarmExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
CosmicCyclone
=
8267140
,
public
static
int
CosmicCyclone
=
8267140
;
InfestationPandemic
=
27541267
,
public
static
int
InfestationPandemic
=
27541267
;
SolemnJudgment
=
41420027
,
public
static
int
SolemnJudgment
=
41420027
;
SolemnWarning
=
84749824
,
public
static
int
SolemnWarning
=
84749824
;
SolemnStrike
=
40605147
public
static
int
SolemnStrike
=
40605147
;
}
}
public
EvilswarmExecutor
(
GameAI
ai
,
Duel
duel
)
public
EvilswarmExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
InfestationPandemic
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
InfestationPandemic
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Summon
);
AddExecutor
(
ExecutorType
.
Summon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
...
...
Game/AI/Decks/FrogExecutor.cs
View file @
f8f793ac
...
@@ -9,27 +9,27 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,27 +9,27 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Frog"
,
"AI_Frog"
,
"Easy"
)]
[
Deck
(
"Frog"
,
"AI_Frog"
,
"Easy"
)]
public
class
FrogExecutor
:
DefaultExecutor
public
class
FrogExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
CryomancerOfTheIceBarrier
=
23950192
,
public
static
int
CryomancerOfTheIceBarrier
=
23950192
;
DewdarkOfTheIceBarrier
=
90311614
,
public
static
int
DewdarkOfTheIceBarrier
=
90311614
;
SubmarineFrog
=
63948258
,
public
static
int
SubmarineFrog
=
63948258
;
SwapFrog
=
9126351
,
public
static
int
SwapFrog
=
9126351
;
FlipFlopFrog
=
81278754
,
public
static
int
FlipFlopFrog
=
81278754
;
Unifrog
=
56052205
,
public
static
int
Unifrog
=
56052205
;
Ronintoadin
=
1357146
,
public
static
int
Ronintoadin
=
1357146
;
DupeFrog
=
46239604
,
public
static
int
DupeFrog
=
46239604
;
Tradetoad
=
23408872
,
public
static
int
Tradetoad
=
23408872
;
TreebornFrog
=
12538374
,
public
static
int
TreebornFrog
=
12538374
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
Raigeki
=
12580477
,
public
static
int
Raigeki
=
12580477
;
Terraforming
=
73628505
,
public
static
int
Terraforming
=
73628505
;
PotOfDuality
=
98645731
,
public
static
int
PotOfDuality
=
98645731
;
Solidarity
=
86780027
,
public
static
int
Solidarity
=
86780027
;
Wetlands
=
2084239
,
public
static
int
Wetlands
=
2084239
;
FroggyForcefield
=
34351849
,
public
static
int
FroggyForcefield
=
34351849
;
GravityBind
=
85742772
,
public
static
int
GravityBind
=
85742772
;
TheHugeRevolutionIsOver
=
99188141
public
static
int
TheHugeRevolutionIsOver
=
99188141
;
}
}
public
FrogExecutor
(
GameAI
ai
,
Duel
duel
)
public
FrogExecutor
(
GameAI
ai
,
Duel
duel
)
...
@@ -37,48 +37,48 @@ namespace WindBot.Game.AI.Decks
...
@@ -37,48 +37,48 @@ namespace WindBot.Game.AI.Decks
{
{
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Solidarity
,
Solidarity
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Solidarity
,
Solidarity
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Terraforming
,
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Terraforming
,
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Wetlands
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Wetlands
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDuality
,
PotOfDuality
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PotOfDuality
,
PotOfDuality
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SwapFrog
,
SwapFrogSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SwapFrog
,
SwapFrogActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DupeFrog
,
DupeFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DupeFrog
,
DupeFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FlipFlopFrog
,
FlipFlopFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FlipFlopFrog
,
FlipFlopFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ronintoadin
,
Ronintoadin
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Ronintoadin
,
Ronintoadin
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TreebornFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TreebornFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Unifrog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Unifrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
CryomancerOfTheIceBarrier
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DewdarkOfTheIceBarrier
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SubmarineFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SubmarineFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SwapFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SwapFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Unifrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Unifrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Ronintoadin
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Ronintoadin
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DupeFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DupeFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Tradetoad
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Tradetoad
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
TreebornFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
TreebornFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
FlipFlopFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
FlipFlopFrog
,
SummonFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
FlipFlopFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
FlipFlopFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Tradetoad
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Tradetoad
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Ronintoadin
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Ronintoadin
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
TreebornFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
TreebornFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Unifrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Unifrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
SwapFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
SwapFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
SubmarineFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
SubmarineFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
DewdarkOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
CryomancerOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Repos
,
FrogMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
FrogMonsterRepos
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FroggyForcefield
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FroggyForcefield
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TheHugeRevolutionIsOver
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TheHugeRevolutionIsOver
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravityBind
,
GravityBind
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravityBind
,
GravityBind
);
}
}
private
int
m_swapFrogSummoned
;
private
int
m_swapFrogSummoned
;
...
@@ -86,9 +86,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -86,9 +86,9 @@ namespace WindBot.Game.AI.Decks
public
override
bool
OnPreBattleBetween
(
ClientCard
attacker
,
ClientCard
defender
)
public
override
bool
OnPreBattleBetween
(
ClientCard
attacker
,
ClientCard
defender
)
{
{
if
(
attacker
.
Id
==
(
int
)
CardId
.
Unifrog
||
attacker
.
Id
==
(
int
)
CardId
.
DewdarkOfTheIceBarrier
)
if
(
attacker
.
Id
==
CardId
.
Unifrog
||
attacker
.
Id
==
CardId
.
DewdarkOfTheIceBarrier
)
return
true
;
return
true
;
if
(
defender
.
IsMonsterInvincible
()
&&
!
defender
.
IsMonsterDangerous
()
&&
attacker
.
Id
==
(
int
)
CardId
.
SubmarineFrog
)
if
(
defender
.
IsMonsterInvincible
()
&&
!
defender
.
IsMonsterDangerous
()
&&
attacker
.
Id
==
CardId
.
SubmarineFrog
)
return
true
;
return
true
;
return
base
.
OnPreBattleBetween
(
attacker
,
defender
);
return
base
.
OnPreBattleBetween
(
attacker
,
defender
);
}
}
...
@@ -99,7 +99,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -99,7 +99,7 @@ namespace WindBot.Game.AI.Decks
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
atk
,
true
))
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
atk
,
true
))
return
false
;
return
false
;
AI
.
SelectCard
(
(
int
)
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
m_swapFrogSummoned
=
Duel
.
Turn
;
m_swapFrogSummoned
=
Duel
.
Turn
;
return
true
;
return
true
;
}
}
...
@@ -110,10 +110,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -110,10 +110,10 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
m_swapFrogSummoned
=
-
1
;
m_swapFrogSummoned
=
-
1
;
if
(
Bot
.
GetRemainingCount
(
(
int
)
CardId
.
Ronintoadin
,
2
)
==
0
)
if
(
Bot
.
GetRemainingCount
(
CardId
.
Ronintoadin
,
2
)
==
0
)
return
false
;
return
false
;
AI
.
SelectCard
(
(
int
)
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
return
true
;
return
true
;
}
}
...
@@ -156,7 +156,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -156,7 +156,7 @@ namespace WindBot.Game.AI.Decks
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
atk
,
true
))
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
atk
,
true
))
return
false
;
return
false
;
if
(
Card
.
Id
==
(
int
)
CardId
.
SwapFrog
)
if
(
Card
.
Id
==
CardId
.
SwapFrog
)
m_swapFrogSummoned
=
Duel
.
Turn
;
m_swapFrogSummoned
=
Duel
.
Turn
;
return
true
;
return
true
;
}
}
...
@@ -167,18 +167,18 @@ namespace WindBot.Game.AI.Decks
...
@@ -167,18 +167,18 @@ namespace WindBot.Game.AI.Decks
if
(
AI
.
Utils
.
IsOneEnemyBetter
())
if
(
AI
.
Utils
.
IsOneEnemyBetter
())
{
{
cards
.
Add
(
(
int
)
CardId
.
FlipFlopFrog
);
cards
.
Add
(
CardId
.
FlipFlopFrog
);
}
}
if
(
Bot
.
SpellZone
[
5
]
==
null
)
if
(
Bot
.
SpellZone
[
5
]
==
null
)
{
{
cards
.
Add
(
(
int
)
CardId
.
Terraforming
);
cards
.
Add
(
CardId
.
Terraforming
);
cards
.
Add
(
(
int
)
CardId
.
Wetlands
);
cards
.
Add
(
CardId
.
Wetlands
);
}
}
cards
.
Add
(
(
int
)
CardId
.
DarkHole
);
cards
.
Add
(
CardId
.
DarkHole
);
cards
.
Add
(
(
int
)
CardId
.
SwapFrog
);
cards
.
Add
(
CardId
.
SwapFrog
);
cards
.
Add
(
(
int
)
CardId
.
GravityBind
);
cards
.
Add
(
CardId
.
GravityBind
);
if
(
cards
.
Count
>
0
)
if
(
cards
.
Count
>
0
)
{
{
...
@@ -191,7 +191,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -191,7 +191,7 @@ namespace WindBot.Game.AI.Decks
private
bool
Terraforming
()
private
bool
Terraforming
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Wetlands
))
if
(
Bot
.
HasInHand
(
CardId
.
Wetlands
))
return
false
;
return
false
;
if
(
Bot
.
SpellZone
[
5
]
!=
null
)
if
(
Bot
.
SpellZone
[
5
]
!=
null
)
return
false
;
return
false
;
...
@@ -209,7 +209,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -209,7 +209,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
List
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
foreach
(
ClientCard
spell
in
spells
)
{
{
if
(
spell
.
Id
==
(
int
)
CardId
.
GravityBind
&&
!
spell
.
IsFacedown
())
if
(
spell
.
Id
==
CardId
.
GravityBind
&&
!
spell
.
IsFacedown
())
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
@@ -217,9 +217,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -217,9 +217,9 @@ namespace WindBot.Game.AI.Decks
private
bool
FrogMonsterRepos
()
private
bool
FrogMonsterRepos
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
Unifrog
)
if
(
Card
.
Id
==
CardId
.
Unifrog
)
return
Card
.
IsDefense
();
return
Card
.
IsDefense
();
if
(
Card
.
Id
==
(
int
)
CardId
.
DewdarkOfTheIceBarrier
)
if
(
Card
.
Id
==
CardId
.
DewdarkOfTheIceBarrier
)
return
Card
.
IsDefense
();
return
Card
.
IsDefense
();
bool
enemyBetter
=
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
Card
.
Attack
+
(
Card
.
IsFacedown
()
?
GetSpellBonus
()
:
0
),
true
);
bool
enemyBetter
=
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
Card
.
Attack
+
(
Card
.
IsFacedown
()
?
GetSpellBonus
()
:
0
),
true
);
...
@@ -231,10 +231,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -231,10 +231,10 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
IsDefense
()
&&
!
enemyBetter
)
if
(
Card
.
IsDefense
()
&&
!
enemyBetter
)
result
=
true
;
result
=
true
;
if
(!
result
&&
Card
.
Id
==
(
int
)
CardId
.
FlipFlopFrog
&&
Enemy
.
GetMonsterCount
()
>
0
&&
Card
.
IsFacedown
())
if
(!
result
&&
Card
.
Id
==
CardId
.
FlipFlopFrog
&&
Enemy
.
GetMonsterCount
()
>
0
&&
Card
.
IsFacedown
())
result
=
true
;
result
=
true
;
if
(
Card
.
Id
==
(
int
)
CardId
.
FlipFlopFrog
&&
Card
.
IsFacedown
()
&&
result
)
if
(
Card
.
Id
==
CardId
.
FlipFlopFrog
&&
Card
.
IsFacedown
()
&&
result
)
m_flipFlopFrogSummoned
=
Duel
.
Turn
;
m_flipFlopFrogSummoned
=
Duel
.
Turn
;
return
result
;
return
result
;
...
@@ -251,7 +251,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -251,7 +251,7 @@ namespace WindBot.Game.AI.Decks
{
{
foreach
(
ClientCard
card
in
Bot
.
GetSpells
())
foreach
(
ClientCard
card
in
Bot
.
GetSpells
())
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
Solidarity
)
if
(
card
.
Id
==
CardId
.
Solidarity
)
atk
+=
800
;
atk
+=
800
;
}
}
}
}
...
...
Game/AI/Decks/GravekeeperExecutor.cs
View file @
f8f793ac
...
@@ -10,32 +10,32 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,32 +10,32 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Gravekeeper"
,
"AI_Gravekeeper"
,
"NotFinished"
)]
[
Deck
(
"Gravekeeper"
,
"AI_Gravekeeper"
,
"NotFinished"
)]
public
class
GravekeeperExecutor
:
DefaultExecutor
public
class
GravekeeperExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
GravekeepersOracle
=
25524823
,
public
static
int
GravekeepersOracle
=
25524823
;
MaleficStardustDragon
=
36521459
,
public
static
int
MaleficStardustDragon
=
36521459
;
GravekeepersVisionary
=
3825890
,
public
static
int
GravekeepersVisionary
=
3825890
;
GravekeepersChief
=
62473983
,
public
static
int
GravekeepersChief
=
62473983
;
ThunderKingRaiOh
=
71564252
,
public
static
int
ThunderKingRaiOh
=
71564252
;
GravekeepersCommandant
=
17393207
,
public
static
int
GravekeepersCommandant
=
17393207
;
GravekeepersAssailant
=
25262697
,
public
static
int
GravekeepersAssailant
=
25262697
;
GravekeepersDescendant
=
30213599
,
public
static
int
GravekeepersDescendant
=
30213599
;
GravekeepersSpy
=
24317029
,
public
static
int
GravekeepersSpy
=
24317029
;
GravekeepersRecruiter
=
93023479
,
public
static
int
GravekeepersRecruiter
=
93023479
;
AllureOfDarkness
=
1475311
,
public
static
int
AllureOfDarkness
=
1475311
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
RoyalTribute
=
72405967
,
public
static
int
RoyalTribute
=
72405967
;
GravekeepersStele
=
99523325
,
public
static
int
GravekeepersStele
=
99523325
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BookofMoon
=
14087893
,
public
static
int
BookofMoon
=
14087893
;
HiddenTemplesOfNecrovalley
=
70000776
,
public
static
int
HiddenTemplesOfNecrovalley
=
70000776
;
Necrovalley
=
47355498
,
public
static
int
Necrovalley
=
47355498
;
BottomlessTrapHole
=
29401950
,
public
static
int
BottomlessTrapHole
=
29401950
;
RiteOfSpirit
=
30450531
,
public
static
int
RiteOfSpirit
=
30450531
;
TorrentialTribute
=
53582587
,
public
static
int
TorrentialTribute
=
53582587
;
DimensionalPrison
=
70342110
,
public
static
int
DimensionalPrison
=
70342110
;
SolemnWarning
=
84749824
,
public
static
int
SolemnWarning
=
84749824
;
ImperialTombsOfNecrovalley
=
90434657
public
static
int
ImperialTombsOfNecrovalley
=
90434657
;
}
}
public
GravekeeperExecutor
(
GameAI
ai
,
Duel
duel
)
public
GravekeeperExecutor
(
GameAI
ai
,
Duel
duel
)
...
@@ -43,41 +43,41 @@ namespace WindBot.Game.AI.Decks
...
@@ -43,41 +43,41 @@ namespace WindBot.Game.AI.Decks
{
{
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AllureOfDarkness
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AllureOfDarkness
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RoyalTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RoyalTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersStele
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersStele
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookofMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BookofMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HiddenTemplesOfNecrovalley
,
HiddenTemplesOfNecrovalleyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HiddenTemplesOfNecrovalley
,
HiddenTemplesOfNecrovalleyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Necrovalley
,
NecrovalleyActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Necrovalley
,
NecrovalleyActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalPrison
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalPrison
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RiteOfSpirit
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RiteOfSpirit
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ImperialTombsOfNecrovalley
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ImperialTombsOfNecrovalley
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersOracle
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersOracle
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
MaleficStardustDragon
,
MaleficStardustDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
MaleficStardustDragon
,
MaleficStardustDragonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersVisionary
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersVisionary
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersChief
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersChief
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ThunderKingRaiOh
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ThunderKingRaiOh
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersCommandant
,
GravekeepersCommandantSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersCommandant
,
GravekeepersCommandantSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersAssailant
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersAssailant
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GravekeepersDescendant
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GravekeepersDescendant
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
GravekeepersSpy
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
GravekeepersSpy
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
GravekeepersRecruiter
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
GravekeepersRecruiter
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersOracle
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersOracle
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersVisionary
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersVisionary
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersChief
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersChief
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersCommandant
,
GravekeepersCommandantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersCommandant
,
GravekeepersCommandantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersAssailant
,
GravekeepersAssailantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersAssailant
,
GravekeepersAssailantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersDescendant
,
GravekeepersDescendantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersDescendant
,
GravekeepersDescendantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersSpy
,
SearchForDescendant
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersSpy
,
SearchForDescendant
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GravekeepersRecruiter
,
SearchForDescendant
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GravekeepersRecruiter
,
SearchForDescendant
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -105,7 +105,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -105,7 +105,7 @@ namespace WindBot.Game.AI.Decks
private
bool
GravekeepersCommandantEffect
()
private
bool
GravekeepersCommandantEffect
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Necrovalley
)
&&
!
Bot
.
HasInSpellZone
((
int
)
CardId
.
Necrovalley
))
if
(!
Bot
.
HasInHand
(
CardId
.
Necrovalley
)
&&
!
Bot
.
HasInSpellZone
(
CardId
.
Necrovalley
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -140,7 +140,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -140,7 +140,7 @@ namespace WindBot.Game.AI.Decks
private
bool
SearchForDescendant
()
private
bool
SearchForDescendant
()
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
GravekeepersDescendant
);
AI
.
SelectCard
(
CardId
.
GravekeepersDescendant
);
return
true
;
return
true
;
}
}
}
}
...
...
Game/AI/Decks/GraydleExecutor.cs
View file @
f8f793ac
...
@@ -10,23 +10,23 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,23 +10,23 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Graydle"
,
"AI_Graydle"
,
"NotFinished"
)]
[
Deck
(
"Graydle"
,
"AI_Graydle"
,
"NotFinished"
)]
public
class
GraydleExecutor
:
DefaultExecutor
public
class
GraydleExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
CosmicCyclone
=
8267140
,
public
static
int
CosmicCyclone
=
8267140
;
SolemnJudgment
=
41420027
,
public
static
int
SolemnJudgment
=
41420027
;
SolemnWarning
=
84749824
,
public
static
int
SolemnWarning
=
84749824
;
SolemnStrike
=
40605147
public
static
int
SolemnStrike
=
40605147
;
}
}
public
GraydleExecutor
(
GameAI
ai
,
Duel
duel
)
public
GraydleExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
MonsterSet
);
AddExecutor
(
ExecutorType
.
MonsterSet
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
...
...
Game/AI/Decks/HorusExecutor.cs
View file @
f8f793ac
...
@@ -9,81 +9,81 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,81 +9,81 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Horus"
,
"AI_Horus"
,
"Easy"
)]
[
Deck
(
"Horus"
,
"AI_Horus"
,
"Easy"
)]
public
class
HorusExecutor
:
DefaultExecutor
public
class
HorusExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
AlexandriteDragon
=
43096270
,
public
static
int
AlexandriteDragon
=
43096270
;
LusterDragon
=
11091375
,
public
static
int
LusterDragon
=
11091375
;
WhiteNightDragon
=
79473793
,
public
static
int
WhiteNightDragon
=
79473793
;
HorusTheBlackFlameDragonLv8
=
48229808
,
public
static
int
HorusTheBlackFlameDragonLv8
=
48229808
;
HorusTheBlackFlameDragonLv6
=
11224103
,
public
static
int
HorusTheBlackFlameDragonLv6
=
11224103
;
CyberDragon
=
70095154
,
public
static
int
CyberDragon
=
70095154
;
AxeDragonute
=
84914462
,
public
static
int
AxeDragonute
=
84914462
;
DodgerDragon
=
47013502
,
public
static
int
DodgerDragon
=
47013502
;
GolemDragon
=
9666558
,
public
static
int
GolemDragon
=
9666558
;
Raigeki
=
12580477
,
public
static
int
Raigeki
=
12580477
;
HammerShot
=
26412047
,
public
static
int
HammerShot
=
26412047
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
Fissure
=
66788016
,
public
static
int
Fissure
=
66788016
;
StampingDestruction
=
81385346
,
public
static
int
StampingDestruction
=
81385346
;
FoolishBurial
=
81439173
,
public
static
int
FoolishBurial
=
81439173
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BellowOfTheSilverDragon
=
80600103
,
public
static
int
BellowOfTheSilverDragon
=
80600103
;
Mountain
=
50913601
,
public
static
int
Mountain
=
50913601
;
DragonsRebirth
=
20638610
,
public
static
int
DragonsRebirth
=
20638610
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
DimensionalPrison
=
70342110
public
static
int
DimensionalPrison
=
70342110
;
}
}
public
HorusExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
public
HorusExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HorusTheBlackFlameDragonLv6
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HorusTheBlackFlameDragonLv6
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StampingDestruction
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StampingDestruction
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Mountain
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Mountain
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HammerShot
,
DefaultHammerShot
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HammerShot
,
DefaultHammerShot
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Fissure
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Fissure
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BellowOfTheSilverDragon
,
BellowOfTheSilverDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BellowOfTheSilverDragon
,
BellowOfTheSilverDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterReborn
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
MonsterReborn
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
WhiteNightDragon
,
WhiteNightDragon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
WhiteNightDragon
,
WhiteNightDragon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
HorusTheBlackFlameDragonLv6
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
HorusTheBlackFlameDragonLv6
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
AlexandriteDragon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
AlexandriteDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
AxeDragonute
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
AxeDragonute
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
DodgerDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
DodgerDragon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
GolemDragon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
GolemDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
LusterDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
LusterDragon
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HorusTheBlackFlameDragonLv8
,
HorusTheBlackFlameDragonLv8
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HorusTheBlackFlameDragonLv8
,
HorusTheBlackFlameDragonLv8
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalPrison
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalPrison
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DragonsRebirth
,
DragonsRebirth
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DragonsRebirth
,
DragonsRebirth
);
}
}
private
bool
FoolishBurial
()
private
bool
FoolishBurial
()
{
{
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
WhiteNightDragon
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
WhiteNightDragon
))
return
false
;
return
false
;
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
WhiteNightDragon
))
if
(
Bot
.
HasInHand
(
CardId
.
WhiteNightDragon
))
return
false
;
return
false
;
int
remaining
=
2
;
int
remaining
=
2
;
foreach
(
ClientCard
card
in
Bot
.
Banished
)
foreach
(
ClientCard
card
in
Bot
.
Banished
)
if
(
card
.
Id
==
(
int
)
CardId
.
WhiteNightDragon
)
if
(
card
.
Id
==
CardId
.
WhiteNightDragon
)
remaining
--;
remaining
--;
if
(
remaining
>
0
)
if
(
remaining
>
0
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
WhiteNightDragon
);
AI
.
SelectCard
(
CardId
.
WhiteNightDragon
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -197,7 +197,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -197,7 +197,7 @@ namespace WindBot.Game.AI.Decks
ClientCard
monster
=
cards
[
i
];
ClientCard
monster
=
cards
[
i
];
if
(
monster
.
Attack
<
2300
)
if
(
monster
.
Attack
<
2300
)
return
false
;
return
false
;
if
(
monster
.
Race
==
(
int
)
CardRace
.
Dragon
&&
monster
.
Id
!=
(
int
)
CardId
.
HorusTheBlackFlameDragonLv8
)
if
(
monster
.
Race
==
(
int
)
CardRace
.
Dragon
&&
monster
.
Id
!=
CardId
.
HorusTheBlackFlameDragonLv8
)
{
{
summonCard
=
monster
;
summonCard
=
monster
;
break
;
break
;
...
...
Game/AI/Decks/LightswornExecutor.cs
View file @
f8f793ac
...
@@ -10,44 +10,43 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,44 +10,43 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Lightsworn"
,
"AI_Lightsworn"
,
"NotFinished"
)]
[
Deck
(
"Lightsworn"
,
"AI_Lightsworn"
,
"NotFinished"
)]
public
class
LightswornExecutor
:
DefaultExecutor
public
class
LightswornExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
JudgmentDragon
=
57774843
,
public
static
int
JudgmentDragon
=
57774843
;
Wulf
=
58996430
,
public
static
int
Wulf
=
58996430
;
Garoth
=
59019082
,
public
static
int
Garoth
=
59019082
;
Raiden
=
77558536
,
public
static
int
Raiden
=
77558536
;
Lyla
=
22624373
,
public
static
int
Lyla
=
22624373
;
Felis
=
73176465
,
public
static
int
Felis
=
73176465
;
Lumina
=
95503687
,
public
static
int
Lumina
=
95503687
;
Minerva
=
40164421
,
public
static
int
Minerva
=
40164421
;
Ryko
=
21502796
,
public
static
int
Ryko
=
21502796
;
PerformageTrickClown
=
67696066
,
public
static
int
PerformageTrickClown
=
67696066
;
Goblindbergh
=
25259669
,
public
static
int
Goblindbergh
=
25259669
;
ThousandBlades
=
1833916
,
public
static
int
ThousandBlades
=
1833916
;
Honest
=
37742478
,
public
static
int
Honest
=
37742478
;
GlowUpBulb
=
67441435
,
public
static
int
GlowUpBulb
=
67441435
;
SolarRecharge
=
691925
,
public
static
int
SolarRecharge
=
691925
;
GalaxyCyclone
=
5133471
,
public
static
int
GalaxyCyclone
=
5133471
;
HarpiesFeatherDuster
=
18144506
,
public
static
int
HarpiesFeatherDuster
=
18144506
;
ReinforcementOfTheArmy
=
32807846
,
public
static
int
ReinforcementOfTheArmy
=
32807846
;
MetalfoesFusion
=
73594093
,
public
static
int
MetalfoesFusion
=
73594093
;
ChargeOfTheLightBrigade
=
94886282
,
public
static
int
ChargeOfTheLightBrigade
=
94886282
;
Michael
=
4779823
,
public
static
int
Michael
=
4779823
;
MinervaTheExalted
=
30100551
,
public
static
int
MinervaTheExalted
=
30100551
;
TrishulaDragonOfTheIceBarrier
=
52687916
,
public
static
int
TrishulaDragonOfTheIceBarrier
=
52687916
;
ScarlightRedDragonArchfiend
=
80666118
,
public
static
int
ScarlightRedDragonArchfiend
=
80666118
;
PSYFramelordOmega
=
74586817
,
public
static
int
PSYFramelordOmega
=
74586817
;
PSYFramelordZeta
=
37192109
,
public
static
int
PSYFramelordZeta
=
37192109
;
NumberS39UtopiatheLightning
=
56832966
,
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
Number39Utopia
=
84013237
,
public
static
int
Number39Utopia
=
84013237
;
CastelTheSkyblasterMusketeer
=
82633039
,
public
static
int
CastelTheSkyblasterMusketeer
=
82633039
;
EvilswarmExcitonKnight
=
46772449
,
public
static
int
EvilswarmExcitonKnight
=
46772449
;
DanteTravelerOfTheBurningAbyss
=
83531441
,
public
static
int
DanteTravelerOfTheBurningAbyss
=
83531441
;
DecodeTalker
=
1861629
,
public
static
int
DecodeTalker
=
1861629
;
MissusRadiant
=
3987233
public
static
int
MissusRadiant
=
3987233
;
}
}
bool
ClownUsed
=
false
;
bool
ClownUsed
=
false
;
...
@@ -55,36 +54,36 @@ namespace WindBot.Game.AI.Decks
...
@@ -55,36 +54,36 @@ namespace WindBot.Game.AI.Decks
public
LightswornExecutor
(
GameAI
ai
,
Duel
duel
)
public
LightswornExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GalaxyCyclone
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GalaxyCyclone
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MetalfoesFusion
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MetalfoesFusion
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GlowUpBulb
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GlowUpBulb
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
JudgmentDragon
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
JudgmentDragon
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
JudgmentDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
JudgmentDragon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ChargeOfTheLightBrigade
,
ChargeOfTheLightBrigadeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ChargeOfTheLightBrigade
,
ChargeOfTheLightBrigadeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolarRecharge
,
SolarRechargeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolarRecharge
,
SolarRechargeEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Goblindbergh
,
GoblindberghSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Goblindbergh
,
GoblindberghSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Goblindbergh
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Goblindbergh
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PerformageTrickClown
,
PerformageTrickClownEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PerformageTrickClown
,
PerformageTrickClownEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ThousandBlades
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ThousandBlades
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Honest
,
HonestEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Honest
,
HonestEffect
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -101,11 +100,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -101,11 +100,11 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Light
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
Honest
))
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Light
&&
Bot
.
HasInHand
(
CardId
.
Honest
))
attacker
.
RealPower
=
attacker
.
RealPower
+
defender
.
Attack
;
attacker
.
RealPower
=
attacker
.
RealPower
+
defender
.
Attack
;
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
if
(
attacker
.
Id
==
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
attacker
.
RealPower
=
5000
;
}
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
...
@@ -125,7 +124,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -125,7 +124,7 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
result
=
new
List
<
ClientCard
>();
IList
<
ClientCard
>
result
=
new
List
<
ClientCard
>();
foreach
(
ClientCard
card
in
cards
)
foreach
(
ClientCard
card
in
cards
)
{
{
if
(!
result
.
Contains
(
card
)
&&
(!
ClownUsed
||
card
.
Id
!=
(
int
)
CardId
.
PerformageTrickClown
))
if
(!
result
.
Contains
(
card
)
&&
(!
ClownUsed
||
card
.
Id
!=
CardId
.
PerformageTrickClown
))
result
.
Add
(
card
);
result
.
Add
(
card
);
if
(
result
.
Count
>=
2
)
if
(
result
.
Count
>=
2
)
break
;
break
;
...
@@ -148,24 +147,24 @@ namespace WindBot.Game.AI.Decks
...
@@ -148,24 +147,24 @@ namespace WindBot.Game.AI.Decks
private
bool
ReinforcementOfTheArmyEffect
()
private
bool
ReinforcementOfTheArmyEffect
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Goblindbergh
))
if
(!
Bot
.
HasInHand
(
CardId
.
Goblindbergh
))
AI
.
SelectCard
(
(
int
)
CardId
.
Goblindbergh
);
AI
.
SelectCard
(
CardId
.
Goblindbergh
);
else
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Raiden
))
else
if
(!
Bot
.
HasInHand
(
CardId
.
Raiden
))
AI
.
SelectCard
(
(
int
)
CardId
.
Raiden
);
AI
.
SelectCard
(
CardId
.
Raiden
);
return
true
;
return
true
;
}
}
private
bool
ChargeOfTheLightBrigadeEffect
()
private
bool
ChargeOfTheLightBrigadeEffect
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Lumina
))
if
(!
Bot
.
HasInHand
(
CardId
.
Lumina
))
AI
.
SelectCard
(
(
int
)
CardId
.
Lumina
);
AI
.
SelectCard
(
CardId
.
Lumina
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Raiden
,
CardId
.
Raiden
,
(
int
)
CardId
.
Lumina
,
CardId
.
Lumina
,
(
int
)
CardId
.
Minerva
,
CardId
.
Minerva
,
(
int
)
CardId
.
Lyla
CardId
.
Lyla
});
});
return
true
;
return
true
;
}
}
...
@@ -174,11 +173,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -174,11 +173,11 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Wulf
,
CardId
.
Wulf
,
(
int
)
CardId
.
Felis
,
CardId
.
Felis
,
(
int
)
CardId
.
Minerva
,
CardId
.
Minerva
,
(
int
)
CardId
.
Lyla
,
CardId
.
Lyla
,
(
int
)
CardId
.
Raiden
CardId
.
Raiden
});
});
return
true
;
return
true
;
}
}
...
@@ -197,11 +196,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -197,11 +196,11 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Felis
,
CardId
.
Felis
,
(
int
)
CardId
.
Wulf
,
CardId
.
Wulf
,
(
int
)
CardId
.
Raiden
,
CardId
.
Raiden
,
(
int
)
CardId
.
PerformageTrickClown
,
CardId
.
PerformageTrickClown
,
(
int
)
CardId
.
ThousandBlades
CardId
.
ThousandBlades
});
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/MokeyMokeyExecutor.cs
View file @
f8f793ac
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"MokeyMokey"
,
"AI_MokeyMokey"
,
"Easy"
)]
[
Deck
(
"MokeyMokey"
,
"AI_MokeyMokey"
,
"Easy"
)]
public
class
MokeyMokeyExecutor
:
DefaultExecutor
public
class
MokeyMokeyExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
LeoWizard
=
4392470
,
public
static
int
LeoWizard
=
4392470
;
Bunilla
=
69380702
public
static
int
Bunilla
=
69380702
;
}
}
private
int
RockCount
=
0
;
private
int
RockCount
=
0
;
...
...
Game/AI/Decks/MokeyMokeyKingExecutor.cs
View file @
f8f793ac
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,10 +9,10 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"MokeyMokeyKing"
,
"AI_MokeyMokeyKing"
,
"Easy"
)]
[
Deck
(
"MokeyMokeyKing"
,
"AI_MokeyMokeyKing"
,
"Easy"
)]
public
class
MokeyMokeyKingExecutor
:
DefaultExecutor
public
class
MokeyMokeyKingExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
LeoWizard
=
4392470
,
public
static
int
LeoWizard
=
4392470
;
Bunilla
=
69380702
public
static
int
Bunilla
=
69380702
;
}
}
private
int
RockCount
=
0
;
private
int
RockCount
=
0
;
...
...
Game/AI/Decks/NekrozExecutor.cs
View file @
f8f793ac
...
@@ -10,33 +10,33 @@ namespace WindBot.Game.AI.Decks
...
@@ -10,33 +10,33 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Nekroz"
,
"AI_Nekroz"
,
"NotFinished"
)]
[
Deck
(
"Nekroz"
,
"AI_Nekroz"
,
"NotFinished"
)]
public
class
NekrozExecutor
:
DefaultExecutor
public
class
NekrozExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
DancePrincess
=
52738610
,
public
static
int
DancePrincess
=
52738610
;
ThousandHands
=
23401839
,
public
static
int
ThousandHands
=
23401839
;
TenThousandHands
=
95492061
,
public
static
int
TenThousandHands
=
95492061
;
Shurit
=
90307777
,
public
static
int
Shurit
=
90307777
;
MaxxC
=
23434538
,
public
static
int
MaxxC
=
23434538
;
DecisiveArmor
=
88240999
,
public
static
int
DecisiveArmor
=
88240999
;
Trishula
=
52068432
,
public
static
int
Trishula
=
52068432
;
Valkyrus
=
25857246
,
public
static
int
Valkyrus
=
25857246
;
Gungnir
=
74122412
,
public
static
int
Gungnir
=
74122412
;
Brionac
=
26674724
,
public
static
int
Brionac
=
26674724
;
Unicore
=
89463537
,
public
static
int
Unicore
=
89463537
;
Clausolas
=
99185129
,
public
static
int
Clausolas
=
99185129
;
PhantomOfChaos
=
30312361
,
public
static
int
PhantomOfChaos
=
30312361
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
ReinforcementOfTheArmy
=
32807846
,
public
static
int
ReinforcementOfTheArmy
=
32807846
;
TradeIn
=
38120068
,
public
static
int
TradeIn
=
38120068
;
PreparationOfRites
=
96729612
,
public
static
int
PreparationOfRites
=
96729612
;
Mirror
=
14735698
,
public
static
int
Mirror
=
14735698
;
Kaleidoscope
=
51124303
,
public
static
int
Kaleidoscope
=
51124303
;
Cycle
=
97211663
,
public
static
int
Cycle
=
97211663
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
RoyalDecree
=
51452091
,
public
static
int
RoyalDecree
=
51452091
;
EvilswarmExcitonKnight
=
46772449
,
public
static
int
EvilswarmExcitonKnight
=
46772449
;
HeraldOfTheArcLight
=
79606837
public
static
int
HeraldOfTheArcLight
=
79606837
;
}
}
List
<
int
>
NekrozRituelCard
=
new
List
<
int
>();
List
<
int
>
NekrozRituelCard
=
new
List
<
int
>();
...
@@ -45,79 +45,79 @@ namespace WindBot.Game.AI.Decks
...
@@ -45,79 +45,79 @@ namespace WindBot.Game.AI.Decks
public
NekrozExecutor
(
GameAI
ai
,
Duel
duel
)
public
NekrozExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Clausolas
);
NekrozRituelCard
.
Add
(
CardId
.
Clausolas
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Unicore
);
NekrozRituelCard
.
Add
(
CardId
.
Unicore
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
DecisiveArmor
);
NekrozRituelCard
.
Add
(
CardId
.
DecisiveArmor
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Brionac
);
NekrozRituelCard
.
Add
(
CardId
.
Brionac
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Trishula
);
NekrozRituelCard
.
Add
(
CardId
.
Trishula
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Gungnir
);
NekrozRituelCard
.
Add
(
CardId
.
Gungnir
);
NekrozRituelCard
.
Add
(
(
int
)
CardId
.
Valkyrus
);
NekrozRituelCard
.
Add
(
CardId
.
Valkyrus
);
NekrozSpellCard
.
Add
(
(
int
)
CardId
.
Mirror
);
NekrozSpellCard
.
Add
(
CardId
.
Mirror
);
NekrozSpellCard
.
Add
(
(
int
)
CardId
.
Kaleidoscope
);
NekrozSpellCard
.
Add
(
CardId
.
Kaleidoscope
);
NekrozSpellCard
.
Add
(
(
int
)
CardId
.
Cycle
);
NekrozSpellCard
.
Add
(
CardId
.
Cycle
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmyEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TradeIn
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TradeIn
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PreparationOfRites
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PreparationOfRites
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Mirror
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Mirror
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Kaleidoscope
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Kaleidoscope
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Cycle
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Cycle
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RoyalDecree
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RoyalDecree
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
DancePrincess
,
DancePrincessSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
DancePrincess
,
DancePrincessSummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Shurit
,
ShuritSet
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Shurit
,
ShuritSet
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ThousandHands
,
ThousandHandsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ThousandHands
,
ThousandHandsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
TenThousandHands
,
TenThousandHandsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
TenThousandHands
,
TenThousandHandsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PhantomOfChaos
,
PhantomOfChaosSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
PhantomOfChaos
,
PhantomOfChaosSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Unicore
,
UnicoreEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Unicore
,
UnicoreEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DecisiveArmor
,
DecisiveArmorEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DecisiveArmor
,
DecisiveArmorEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Valkyrus
,
ValkyrusEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Valkyrus
,
ValkyrusEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Gungnir
,
GungnirEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Gungnir
,
GungnirEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Brionac
,
BrionacEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Brionac
,
BrionacEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Clausolas
,
ClausolasEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Clausolas
,
ClausolasEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Trishula
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Trishula
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PhantomOfChaos
,
PhantomOfChaosEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PhantomOfChaos
,
PhantomOfChaosEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MaxxC
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MaxxC
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ThousandHands
,
ThousandHandsEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ThousandHands
,
ThousandHandsEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TenThousandHands
,
BrionacEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TenThousandHands
,
BrionacEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HeraldOfTheArcLight
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HeraldOfTheArcLight
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Shurit
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Shurit
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Trishula
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Trishula
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DecisiveArmor
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DecisiveArmor
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Valkyrus
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Valkyrus
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Gungnir
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Gungnir
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Brionac
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Brionac
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Unicore
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Unicore
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Clausolas
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Clausolas
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
}
}
private
bool
ThousandHandsSummon
()
private
bool
ThousandHandsSummon
()
{
{
if
(!
Bot
.
HasInHand
(
NekrozRituelCard
)
||
Bot
.
HasInHand
(
(
int
)
CardId
.
Shurit
)
||
!
Bot
.
HasInHand
(
NekrozSpellCard
))
if
(!
Bot
.
HasInHand
(
NekrozRituelCard
)
||
Bot
.
HasInHand
(
CardId
.
Shurit
)
||
!
Bot
.
HasInHand
(
NekrozSpellCard
))
return
true
;
return
true
;
foreach
(
ClientCard
Card
in
Bot
.
Hand
)
foreach
(
ClientCard
Card
in
Bot
.
Hand
)
if
(
Card
!=
null
&&
Card
.
Id
==
(
int
)
CardId
.
Kaleidoscope
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Unicore
))
if
(
Card
!=
null
&&
Card
.
Id
==
CardId
.
Kaleidoscope
&&
!
Bot
.
HasInHand
(
CardId
.
Unicore
))
return
true
;
return
true
;
else
if
(
Card
.
Id
==
(
int
)
CardId
.
Trishula
||
Card
.
Id
==
(
int
)
CardId
.
DecisiveArmor
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Mirror
)
||
!
Bot
.
HasInHand
((
int
)
CardId
.
Shurit
))
else
if
(
Card
.
Id
==
CardId
.
Trishula
||
Card
.
Id
==
CardId
.
DecisiveArmor
&&
!
Bot
.
HasInHand
(
CardId
.
Mirror
)
||
!
Bot
.
HasInHand
(
CardId
.
Shurit
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
private
bool
ReinforcementOfTheArmyEffect
()
private
bool
ReinforcementOfTheArmyEffect
()
{
{
if
(!
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Shurit
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Shurit
))
if
(!
Bot
.
HasInGraveyard
(
CardId
.
Shurit
)
&&
!
Bot
.
HasInHand
(
CardId
.
Shurit
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Shurit
);
AI
.
SelectCard
(
CardId
.
Shurit
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -125,34 +125,34 @@ namespace WindBot.Game.AI.Decks
...
@@ -125,34 +125,34 @@ namespace WindBot.Game.AI.Decks
private
bool
TenThousandHandsSummon
()
private
bool
TenThousandHandsSummon
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
ThousandHands
)
||
!
Bot
.
HasInHand
((
int
)
CardId
.
Shurit
))
if
(!
Bot
.
HasInHand
(
CardId
.
ThousandHands
)
||
!
Bot
.
HasInHand
(
CardId
.
Shurit
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
private
bool
DancePrincessSummon
()
private
bool
DancePrincessSummon
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
ThousandHands
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
TenThousandHands
))
if
(!
Bot
.
HasInHand
(
CardId
.
ThousandHands
)
&&
!
Bot
.
HasInHand
(
CardId
.
TenThousandHands
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
private
bool
PhantomOfChaosSummon
()
private
bool
PhantomOfChaosSummon
()
{
{
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Shurit
)
&&
Bot
.
HasInHand
(
NekrozSpellCard
)
&&
Bot
.
HasInHand
(
NekrozRituelCard
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
Shurit
)
&&
Bot
.
HasInHand
(
NekrozSpellCard
)
&&
Bot
.
HasInHand
(
NekrozRituelCard
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
private
bool
PhantomOfChaosEffect
()
private
bool
PhantomOfChaosEffect
()
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Shurit
);
AI
.
SelectCard
(
CardId
.
Shurit
);
return
true
;
return
true
;
}
}
private
bool
ShuritSet
()
private
bool
ShuritSet
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
ThousandHands
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
TenThousandHands
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
DancePrincess
))
if
(!
Bot
.
HasInHand
(
CardId
.
ThousandHands
)
&&
!
Bot
.
HasInHand
(
CardId
.
TenThousandHands
)
&&
!
Bot
.
HasInHand
(
CardId
.
DancePrincess
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -161,7 +161,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -161,7 +161,7 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
3300
,
true
))
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
3300
,
true
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DecisiveArmor
);
AI
.
SelectCard
(
CardId
.
DecisiveArmor
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -186,34 +186,34 @@ namespace WindBot.Game.AI.Decks
...
@@ -186,34 +186,34 @@ namespace WindBot.Game.AI.Decks
private
bool
BrionacEffect
()
private
bool
BrionacEffect
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Shurit
))
if
(!
Bot
.
HasInHand
(
CardId
.
Shurit
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Shurit
);
AI
.
SelectCard
(
CardId
.
Shurit
);
return
true
;
return
true
;
}
}
else
if
(!
Bot
.
HasInHand
(
NekrozSpellCard
))
else
if
(!
Bot
.
HasInHand
(
NekrozSpellCard
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Mirror
);
AI
.
SelectCard
(
CardId
.
Mirror
);
return
true
;
return
true
;
}
}
else
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
3300
,
true
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
Trishula
))
else
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
3300
,
true
)
&&
!
Bot
.
HasInHand
(
CardId
.
Trishula
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Trishula
);
AI
.
SelectCard
(
CardId
.
Trishula
);
return
true
;
return
true
;
}
}
else
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
DecisiveArmor
))
else
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
!
Bot
.
HasInHand
(
CardId
.
DecisiveArmor
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DecisiveArmor
);
AI
.
SelectCard
(
CardId
.
DecisiveArmor
);
return
true
;
return
true
;
}
}
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Unicore
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Kaleidoscope
))
else
if
(
Bot
.
HasInHand
(
CardId
.
Unicore
)
&&
!
Bot
.
HasInHand
(
CardId
.
Kaleidoscope
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Kaleidoscope
);
AI
.
SelectCard
(
CardId
.
Kaleidoscope
);
return
true
;
return
true
;
}
}
else
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Unicore
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
Kaleidoscope
))
else
if
(!
Bot
.
HasInHand
(
CardId
.
Unicore
)
&&
Bot
.
HasInHand
(
CardId
.
Kaleidoscope
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Unicore
);
AI
.
SelectCard
(
CardId
.
Unicore
);
return
true
;
return
true
;
}
}
return
true
;
return
true
;
...
@@ -221,19 +221,19 @@ namespace WindBot.Game.AI.Decks
...
@@ -221,19 +221,19 @@ namespace WindBot.Game.AI.Decks
private
bool
ThousandHandsEffect
()
private
bool
ThousandHandsEffect
()
{
{
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
3300
,
true
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
Trishula
))
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
3300
,
true
)
&&
!
Bot
.
HasInHand
(
CardId
.
Trishula
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Trishula
);
AI
.
SelectCard
(
CardId
.
Trishula
);
return
true
;
return
true
;
}
}
else
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
DecisiveArmor
))
else
if
(
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
!
Bot
.
HasInHand
(
CardId
.
DecisiveArmor
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DecisiveArmor
);
AI
.
SelectCard
(
CardId
.
DecisiveArmor
);
return
true
;
return
true
;
}
}
else
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
Unicore
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
Kaleidoscope
))
else
if
(!
Bot
.
HasInHand
(
CardId
.
Unicore
)
&&
Bot
.
HasInHand
(
CardId
.
Kaleidoscope
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Unicore
);
AI
.
SelectCard
(
CardId
.
Unicore
);
return
true
;
return
true
;
}
}
return
true
;
return
true
;
...
@@ -241,9 +241,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -241,9 +241,9 @@ namespace WindBot.Game.AI.Decks
private
bool
UnicoreEffect
()
private
bool
UnicoreEffect
()
{
{
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Shurit
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
Shurit
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Shurit
);
AI
.
SelectCard
(
CardId
.
Shurit
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -253,7 +253,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -253,7 +253,7 @@ namespace WindBot.Game.AI.Decks
{
{
if
(!
Bot
.
HasInHand
(
NekrozSpellCard
))
if
(!
Bot
.
HasInHand
(
NekrozSpellCard
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Mirror
);
AI
.
SelectCard
(
CardId
.
Mirror
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -261,7 +261,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -261,7 +261,7 @@ namespace WindBot.Game.AI.Decks
private
bool
IsTheLastPossibility
()
private
bool
IsTheLastPossibility
()
{
{
if
(!
Bot
.
HasInHand
(
(
int
)
CardId
.
DecisiveArmor
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Trishula
))
if
(!
Bot
.
HasInHand
(
CardId
.
DecisiveArmor
)
&&
!
Bot
.
HasInHand
(
CardId
.
Trishula
))
return
true
;
return
true
;
return
false
;
return
false
;
}
}
...
@@ -277,42 +277,42 @@ namespace WindBot.Game.AI.Decks
...
@@ -277,42 +277,42 @@ namespace WindBot.Game.AI.Decks
foreach
(
int
Id
in
NekrozCard
)
foreach
(
int
Id
in
NekrozCard
)
{
{
if
(
Id
==
(
int
)
CardId
.
Trishula
&&
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
DecisiveArmor
))
if
(
Id
==
CardId
.
Trishula
&&
AI
.
Utils
.
IsAllEnemyBetterThanValue
(
2700
,
true
)
&&
Bot
.
HasInHand
(
CardId
.
DecisiveArmor
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Trishula
);
AI
.
SelectCard
(
CardId
.
Trishula
);
return
true
;
return
true
;
}
}
else
if
(
Id
==
(
int
)
CardId
.
DecisiveArmor
)
else
if
(
Id
==
CardId
.
DecisiveArmor
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DecisiveArmor
);
AI
.
SelectCard
(
CardId
.
DecisiveArmor
);
return
true
;
return
true
;
}
}
else
if
(
Id
==
(
int
)
CardId
.
Unicore
&&
Bot
.
HasInHand
((
int
)
CardId
.
Kaleidoscope
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Shurit
))
else
if
(
Id
==
CardId
.
Unicore
&&
Bot
.
HasInHand
(
CardId
.
Kaleidoscope
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Shurit
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Unicore
);
AI
.
SelectCard
(
CardId
.
Unicore
);
return
true
;
return
true
;
}
}
else
if
(
Id
==
(
int
)
CardId
.
Valkyrus
)
else
if
(
Id
==
CardId
.
Valkyrus
)
{
{
if
(
IsTheLastPossibility
())
if
(
IsTheLastPossibility
())
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Valkyrus
);
AI
.
SelectCard
(
CardId
.
Valkyrus
);
return
true
;
return
true
;
}
}
}
}
else
if
(
Id
==
(
int
)
CardId
.
Gungnir
)
else
if
(
Id
==
CardId
.
Gungnir
)
{
{
if
(
IsTheLastPossibility
())
if
(
IsTheLastPossibility
())
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Gungnir
);
AI
.
SelectCard
(
CardId
.
Gungnir
);
return
true
;
return
true
;
}
}
}
}
else
if
(
Id
==
(
int
)
CardId
.
Clausolas
)
else
if
(
Id
==
CardId
.
Clausolas
)
{
{
if
(
IsTheLastPossibility
())
if
(
IsTheLastPossibility
())
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Clausolas
);
AI
.
SelectCard
(
CardId
.
Clausolas
);
return
true
;
return
true
;
}
}
}
}
...
...
Game/AI/Decks/OldSchoolExecutor.cs
View file @
f8f793ac
...
@@ -9,44 +9,64 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,44 +9,64 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"OldSchool"
,
"AI_OldSchool"
,
"Easy"
)]
[
Deck
(
"OldSchool"
,
"AI_OldSchool"
,
"Easy"
)]
public
class
OldSchoolExecutor
:
DefaultExecutor
public
class
OldSchoolExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
Raigeki
=
12580477
public
static
int
AncientGearGolem
=
83104731
;
public
static
int
Frostosaurus
=
6631034
;
public
static
int
AlexandriteDragon
=
43096270
;
public
static
int
GeneWarpedWarwolf
=
69247929
;
public
static
int
GearGolemTheMovingFortress
=
30190809
;
public
static
int
EvilswarmHeliotrope
=
77542832
;
public
static
int
LusterDragon
=
11091375
;
public
static
int
InsectKnight
=
35052053
;
public
static
int
ArchfiendSoldier
=
49881766
;
public
static
int
HeavyStorm
=
19613556
;
public
static
int
DarkHole
=
53129443
;
public
static
int
Raigeki
=
12580477
;
public
static
int
HammerShot
=
26412047
;
public
static
int
Fissure
=
66788016
;
public
static
int
SwordsOfRevealingLight
=
72302403
;
public
static
int
DoubleSummon
=
43422537
;
public
static
int
MirrorForce
=
44095762
;
public
static
int
DimensionalPrison
=
70342110
;
}
}
public
OldSchoolExecutor
(
GameAI
ai
,
Duel
duel
)
public
OldSchoolExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
19613556
,
DefaultHeavyStorm
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HeavyStorm
,
DefaultHeavyStorm
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
53129443
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
26412047
,
DefaultHammerShot
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HammerShot
,
DefaultHammerShot
);
AddExecutor
(
ExecutorType
.
Activate
,
66788016
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Fissure
);
AddExecutor
(
ExecutorType
.
Activate
,
72302403
,
SwordsOfRevealingLight
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SwordsOfRevealingLight
,
SwordsOfRevealingLight
);
AddExecutor
(
ExecutorType
.
Activate
,
43422537
,
DoubleSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DoubleSummon
,
DoubleSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
83104731
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
AncientGearGolem
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
6631034
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Frostosaurus
,
DefaultTributeSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
43096270
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
AlexandriteDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
69247929
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
GeneWarpedWarwolf
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
30190809
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
GearGolemTheMovingFortress
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
77542832
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
EvilswarmHeliotrope
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
11091375
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
LusterDragon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
35052053
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
InsectKnight
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
49881766
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
ArchfiendSoldier
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Activate
,
44095762
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
70342110
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalPrison
,
DefaultTrap
);
}
}
private
int
_lastDoubleSummon
;
private
int
_lastDoubleSummon
;
public
override
bool
OnPreBattleBetween
(
ClientCard
attacker
,
ClientCard
defender
)
public
override
bool
OnPreBattleBetween
(
ClientCard
attacker
,
ClientCard
defender
)
{
{
if
(
defender
.
IsMonsterInvincible
()
&&
!
defender
.
IsMonsterDangerous
()
&&
attacker
.
Id
==
83104731
)
if
(
defender
.
IsMonsterInvincible
()
&&
!
defender
.
IsMonsterDangerous
()
&&
attacker
.
Id
==
CardId
.
AncientGearGolem
)
return
true
;
return
true
;
return
base
.
OnPreBattleBetween
(
attacker
,
defender
);
return
base
.
OnPreBattleBetween
(
attacker
,
defender
);
}
}
...
...
Game/AI/Decks/QliphortExecutor.cs
View file @
f8f793ac
...
@@ -9,113 +9,113 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,113 +9,113 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Qliphort"
,
"AI_Qliphort"
)]
[
Deck
(
"Qliphort"
,
"AI_Qliphort"
)]
public
class
QliphortExecutor
:
DefaultExecutor
public
class
QliphortExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
Scout
=
65518099
,
public
static
int
Scout
=
65518099
;
Stealth
=
13073850
,
public
static
int
Stealth
=
13073850
;
Shell
=
90885155
,
public
static
int
Shell
=
90885155
;
Helix
=
37991342
,
public
static
int
Helix
=
37991342
;
Carrier
=
91907707
,
public
static
int
Carrier
=
91907707
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
CardOfDemise
=
59750328
,
public
static
int
CardOfDemise
=
59750328
;
SummonersArt
=
79816536
,
public
static
int
SummonersArt
=
79816536
;
PotOfDuality
=
98645731
,
public
static
int
PotOfDuality
=
98645731
;
Saqlifice
=
17639150
,
public
static
int
Saqlifice
=
17639150
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
TorrentialTribute
=
53582587
,
public
static
int
TorrentialTribute
=
53582587
;
DimensionalBarrier
=
83326048
,
public
static
int
DimensionalBarrier
=
83326048
;
CompulsoryEvacuationDevice
=
94192409
,
public
static
int
CompulsoryEvacuationDevice
=
94192409
;
VanitysEmptiness
=
5851097
,
public
static
int
VanitysEmptiness
=
5851097
;
SkillDrain
=
82732705
,
public
static
int
SkillDrain
=
82732705
;
SolemnStrike
=
40605147
,
public
static
int
SolemnStrike
=
40605147
;
TheHugeRevolutionIsOver
=
99188141
public
static
int
TheHugeRevolutionIsOver
=
99188141
;
}
}
bool
CardOfDemiseUsed
=
false
;
bool
CardOfDemiseUsed
=
false
;
List
<
int
>
LowScaleCards
=
new
List
<
int
>
List
<
int
>
LowScaleCards
=
new
List
<
int
>
{
{
(
int
)
CardId
.
Stealth
,
CardId
.
Stealth
,
(
int
)
CardId
.
Carrier
CardId
.
Carrier
};
};
List
<
int
>
HighScaleCards
=
new
List
<
int
>
List
<
int
>
HighScaleCards
=
new
List
<
int
>
{
{
(
int
)
CardId
.
Scout
,
CardId
.
Scout
,
(
int
)
CardId
.
Shell
,
CardId
.
Shell
,
(
int
)
CardId
.
Helix
CardId
.
Helix
};
};
public
QliphortExecutor
(
GameAI
ai
,
Duel
duel
)
public
QliphortExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SummonersArt
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SummonersArt
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Scout
,
ScoutActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Scout
,
ScoutActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Scout
,
ScoutEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Scout
,
ScoutEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Stealth
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Stealth
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Shell
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Shell
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Helix
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Helix
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Carrier
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Carrier
,
ScaleActivate
);
AddExecutor
(
ExecutorType
.
Summon
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Saqlifice
,
SaqlificeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Saqlifice
,
SaqlificeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Stealth
,
StealthEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Stealth
,
StealthEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Helix
,
HelixEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Helix
,
HelixEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Carrier
,
CarrierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Carrier
,
CarrierEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SkillDrain
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SkillDrain
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DimensionalBarrier
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DimensionalBarrier
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TorrentialTribute
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TorrentialTribute
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CompulsoryEvacuationDevice
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TheHugeRevolutionIsOver
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TheHugeRevolutionIsOver
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
Saqlifice
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
Saqlifice
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SkillDrain
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SkillDrain
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DimensionalBarrier
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DimensionalBarrier
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TorrentialTribute
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TorrentialTribute
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CompulsoryEvacuationDevice
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TheHugeRevolutionIsOver
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TheHugeRevolutionIsOver
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DarkHole
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SummonersArt
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SummonersArt
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
PotOfDuality
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDuality
,
PotOfDualityEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PotOfDuality
,
PotOfDualityEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CardOfDemise
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CardOfDemise
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardOfDemise
,
CardOfDemiseEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CardOfDemise
,
CardOfDemiseEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
Saqlifice
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
Saqlifice
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SkillDrain
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SkillDrain
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DimensionalBarrier
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DimensionalBarrier
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TorrentialTribute
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TorrentialTribute
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CompulsoryEvacuationDevice
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TheHugeRevolutionIsOver
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TheHugeRevolutionIsOver
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DarkHole
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SummonersArt
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SummonersArt
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
PotOfDuality
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TheHugeRevolutionIsOver
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TheHugeRevolutionIsOver
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SkillDrain
,
SkillDrainEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SkillDrain
,
SkillDrainEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
VanitysEmptiness
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
VanitysEmptiness
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CompulsoryEvacuationDevice
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalBarrier
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalBarrier
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -147,7 +147,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -147,7 +147,7 @@ namespace WindBot.Game.AI.Decks
private
bool
NormalSummon
()
private
bool
NormalSummon
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
Scout
)
if
(
Card
.
Id
==
CardId
.
Scout
)
return
false
;
return
false
;
if
(
Card
.
Level
<
8
)
if
(
Card
.
Level
<
8
)
AI
.
SelectOption
(
1
);
AI
.
SelectOption
(
1
);
...
@@ -163,16 +163,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -163,16 +163,16 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Scout
,
CardId
.
Scout
,
(
int
)
CardId
.
SkillDrain
,
CardId
.
SkillDrain
,
(
int
)
CardId
.
VanitysEmptiness
,
CardId
.
VanitysEmptiness
,
(
int
)
CardId
.
DimensionalBarrier
,
CardId
.
DimensionalBarrier
,
(
int
)
CardId
.
Stealth
,
CardId
.
Stealth
,
(
int
)
CardId
.
Shell
,
CardId
.
Shell
,
(
int
)
CardId
.
Helix
,
CardId
.
Helix
,
(
int
)
CardId
.
Carrier
,
CardId
.
Carrier
,
(
int
)
CardId
.
SolemnStrike
,
CardId
.
SolemnStrike
,
(
int
)
CardId
.
CardOfDemise
CardId
.
CardOfDemise
});
});
return
!
ShouldPendulum
();
return
!
ShouldPendulum
();
}
}
...
@@ -214,7 +214,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -214,7 +214,7 @@ namespace WindBot.Game.AI.Decks
ClientCard
l
=
AI
.
Utils
.
GetPZone
(
0
,
0
);
ClientCard
l
=
AI
.
Utils
.
GetPZone
(
0
,
0
);
ClientCard
r
=
AI
.
Utils
.
GetPZone
(
0
,
1
);
ClientCard
r
=
AI
.
Utils
.
GetPZone
(
0
,
1
);
if
(
l
==
null
&&
r
==
null
)
if
(
l
==
null
&&
r
==
null
)
AI
.
SelectCard
(
(
int
)
CardId
.
Scout
);
AI
.
SelectCard
(
CardId
.
Scout
);
}
}
return
true
;
return
true
;
}
}
...
@@ -301,9 +301,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -301,9 +301,9 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Saqlifice
,
CardId
.
Saqlifice
,
(
int
)
CardId
.
Shell
,
CardId
.
Shell
,
(
int
)
CardId
.
Helix
CardId
.
Helix
});
});
}
}
else
else
...
...
Game/AI/Decks/RainbowExecutor.cs
View file @
f8f793ac
...
@@ -9,47 +9,47 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,47 +9,47 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Rainbow"
,
"AI_Rainbow"
)]
[
Deck
(
"Rainbow"
,
"AI_Rainbow"
)]
class
RainbowExecutor
:
DefaultExecutor
class
RainbowExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
MysteryShellDragon
=
18108166
,
public
static
int
MysteryShellDragon
=
18108166
;
PhantomGryphon
=
74852097
,
public
static
int
PhantomGryphon
=
74852097
;
MasterPendulumTheDracoslayer
=
75195825
,
public
static
int
MasterPendulumTheDracoslayer
=
75195825
;
AngelTrumpeter
=
87979586
,
public
static
int
AngelTrumpeter
=
87979586
;
MetalfoesGoldriver
=
33256280
,
public
static
int
MetalfoesGoldriver
=
33256280
;
Kabazauls
=
51934376
,
public
static
int
Kabazauls
=
51934376
;
RescueRabbit
=
85138716
,
public
static
int
RescueRabbit
=
85138716
;
UnexpectedDai
=
911883
,
public
static
int
UnexpectedDai
=
911883
;
HarpiesFeatherDuster
=
18144506
,
public
static
int
HarpiesFeatherDuster
=
18144506
;
PotOfDesires
=
35261759
,
public
static
int
PotOfDesires
=
35261759
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
SmashingGround
=
97169186
,
public
static
int
SmashingGround
=
97169186
;
QuakingMirrorForce
=
40838625
,
public
static
int
QuakingMirrorForce
=
40838625
;
DrowningMirrorForce
=
47475363
,
public
static
int
DrowningMirrorForce
=
47475363
;
BlazingMirrorForce
=
75249652
,
public
static
int
BlazingMirrorForce
=
75249652
;
StormingMirrorForce
=
5650082
,
public
static
int
StormingMirrorForce
=
5650082
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
DarkMirrorForce
=
20522190
,
public
static
int
DarkMirrorForce
=
20522190
;
BottomlessTrapHole
=
29401950
,
public
static
int
BottomlessTrapHole
=
29401950
;
TraptrixTrapHoleNightmare
=
29616929
,
public
static
int
TraptrixTrapHoleNightmare
=
29616929
;
StarlightRoad
=
58120309
,
public
static
int
StarlightRoad
=
58120309
;
ScarlightRedDragonArchfiend
=
80666118
,
public
static
int
ScarlightRedDragonArchfiend
=
80666118
;
IgnisterProminenceTheBlastingDracoslayer
=
18239909
,
public
static
int
IgnisterProminenceTheBlastingDracoslayer
=
18239909
;
StardustDragon
=
44508094
,
public
static
int
StardustDragon
=
44508094
;
NumberS39UtopiatheLightning
=
56832966
,
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
Number37HopeWovenDragonSpiderShark
=
37279508
,
public
static
int
Number37HopeWovenDragonSpiderShark
=
37279508
;
Number39Utopia
=
84013237
,
public
static
int
Number39Utopia
=
84013237
;
EvolzarLaggia
=
74294676
,
public
static
int
EvolzarLaggia
=
74294676
;
Number59CrookedCook
=
82697249
,
public
static
int
Number59CrookedCook
=
82697249
;
CastelTheSkyblasterMusketeer
=
82633039
,
public
static
int
CastelTheSkyblasterMusketeer
=
82633039
;
StarliegePaladynamo
=
61344030
,
public
static
int
StarliegePaladynamo
=
61344030
;
LightningChidori
=
22653490
,
public
static
int
LightningChidori
=
22653490
;
EvilswarmExcitonKnight
=
46772449
,
public
static
int
EvilswarmExcitonKnight
=
46772449
;
GagagaCowboy
=
12014404
,
public
static
int
GagagaCowboy
=
12014404
;
EvilswarmNightmare
=
359563
,
public
static
int
EvilswarmNightmare
=
359563
;
TraptrixRafflesia
=
6511113
public
static
int
TraptrixRafflesia
=
6511113
;
}
}
private
bool
NormalSummoned
=
false
;
private
bool
NormalSummoned
=
false
;
...
@@ -57,83 +57,83 @@ namespace WindBot.Game.AI.Decks
...
@@ -57,83 +57,83 @@ namespace WindBot.Game.AI.Decks
public
RainbowExecutor
(
GameAI
ai
,
Duel
duel
)
public
RainbowExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
UnexpectedDai
,
UnexpectedDaiEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
UnexpectedDai
,
UnexpectedDaiEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
RescueRabbit
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
RescueRabbit
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RescueRabbit
,
RescueRabbitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RescueRabbit
,
RescueRabbitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDesires
,
DefaultPotOfDesires
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PotOfDesires
,
DefaultPotOfDesires
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
AngelTrumpeter
,
AngelTrumpeterSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
AngelTrumpeter
,
AngelTrumpeterSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Kabazauls
,
KabazaulsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Kabazauls
,
KabazaulsSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MasterPendulumTheDracoslayer
,
MasterPendulumTheDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
MasterPendulumTheDracoslayer
,
MasterPendulumTheDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MysteryShellDragon
,
MysteryShellDragonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
MysteryShellDragon
,
MysteryShellDragonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PhantomGryphon
,
PhantomGryphonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
PhantomGryphon
,
PhantomGryphonSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MetalfoesGoldriver
,
MetalfoesGoldriverSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
MetalfoesGoldriver
,
MetalfoesGoldriverSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvolzarLaggia
,
EvolzarLaggiaSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvolzarLaggia
,
EvolzarLaggiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvolzarLaggia
,
EvolzarLaggiaEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvolzarLaggia
,
EvolzarLaggiaEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmNightmare
,
EvilswarmNightmareSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvilswarmNightmare
,
EvilswarmNightmareSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmNightmare
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvilswarmNightmare
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarliegePaladynamo
,
StarliegePaladynamoEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
LightningChidori
,
LightningChidoriSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
LightningChidori
,
LightningChidoriSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
LightningChidori
,
LightningChidoriEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
LightningChidori
,
LightningChidoriEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number37HopeWovenDragonSpiderShark
,
Number37HopeWovenDragonSpiderSharkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number37HopeWovenDragonSpiderShark
,
Number37HopeWovenDragonSpiderSharkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Number37HopeWovenDragonSpiderShark
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Number37HopeWovenDragonSpiderShark
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TraptrixRafflesia
,
TraptrixRafflesiaSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
TraptrixRafflesia
,
TraptrixRafflesiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TraptrixRafflesia
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TraptrixRafflesia
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SmashingGround
,
DefaultSmashingGround
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SmashingGround
,
DefaultSmashingGround
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CastelTheSkyblasterMusketeer
,
DefaultCastelTheSkyblasterMusketeerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
IgnisterProminenceTheBlastingDracoslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ScarlightRedDragonArchfiend
,
DefaultScarlightRedDragonArchfiendEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
StardustDragon
,
DefaultStardustDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
StardustDragon
,
DefaultStardustDragonSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number59CrookedCook
,
Number59CrookedCookSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number59CrookedCook
,
Number59CrookedCookSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Number59CrookedCook
,
Number59CrookedCookEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Number59CrookedCook
,
Number59CrookedCookEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
QuakingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DrowningMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BlazingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
BlazingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StormingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StormingMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DarkMirrorForce
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BottomlessTrapHole
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
BottomlessTrapHole
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TraptrixTrapHoleNightmare
,
TrapSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TraptrixTrapHoleNightmare
,
TrapSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BlazingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BlazingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StormingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StormingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TraptrixTrapHoleNightmare
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TraptrixTrapHoleNightmare
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -155,11 +155,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -155,11 +155,11 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
if
(
attacker
.
Id
==
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
attacker
.
RealPower
=
5000
;
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Number37HopeWovenDragonSpiderShark
,
true
,
true
))
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Number37HopeWovenDragonSpiderShark
,
true
,
true
))
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
}
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
...
@@ -167,34 +167,34 @@ namespace WindBot.Game.AI.Decks
...
@@ -167,34 +167,34 @@ namespace WindBot.Game.AI.Decks
private
bool
UnexpectedDaiEffect
()
private
bool
UnexpectedDaiEffect
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
RescueRabbit
)
||
NormalSummoned
)
if
(
Bot
.
HasInHand
(
CardId
.
RescueRabbit
)
||
NormalSummoned
)
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
MysteryShellDragon
,
CardId
.
MysteryShellDragon
,
(
int
)
CardId
.
PhantomGryphon
CardId
.
PhantomGryphon
});
});
else
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
else
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
MysteryShellDragon
))
if
(
Bot
.
HasInHand
(
CardId
.
MysteryShellDragon
))
AI
.
SelectCard
(
(
int
)
CardId
.
MysteryShellDragon
);
AI
.
SelectCard
(
CardId
.
MysteryShellDragon
);
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Kabazauls
))
else
if
(
Bot
.
HasInHand
(
CardId
.
Kabazauls
))
AI
.
SelectCard
(
(
int
)
CardId
.
Kabazauls
);
AI
.
SelectCard
(
CardId
.
Kabazauls
);
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
AngelTrumpeter
))
else
if
(
Bot
.
HasInHand
(
CardId
.
AngelTrumpeter
))
AI
.
SelectCard
(
(
int
)
CardId
.
AngelTrumpeter
);
AI
.
SelectCard
(
CardId
.
AngelTrumpeter
);
}
}
else
else
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Kabazauls
))
if
(
Bot
.
HasInHand
(
CardId
.
Kabazauls
))
AI
.
SelectCard
(
(
int
)
CardId
.
Kabazauls
);
AI
.
SelectCard
(
CardId
.
Kabazauls
);
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
MasterPendulumTheDracoslayer
))
else
if
(
Bot
.
HasInHand
(
CardId
.
MasterPendulumTheDracoslayer
))
AI
.
SelectCard
(
(
int
)
CardId
.
MasterPendulumTheDracoslayer
);
AI
.
SelectCard
(
CardId
.
MasterPendulumTheDracoslayer
);
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
PhantomGryphon
))
else
if
(
Bot
.
HasInHand
(
CardId
.
PhantomGryphon
))
AI
.
SelectCard
(
(
int
)
CardId
.
PhantomGryphon
);
AI
.
SelectCard
(
CardId
.
PhantomGryphon
);
else
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
AngelTrumpeter
))
else
if
(
Bot
.
HasInHand
(
CardId
.
AngelTrumpeter
))
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
MetalfoesGoldriver
,
CardId
.
MetalfoesGoldriver
,
(
int
)
CardId
.
MasterPendulumTheDracoslayer
CardId
.
MasterPendulumTheDracoslayer
});
});
}
}
return
true
;
return
true
;
...
@@ -205,44 +205,44 @@ namespace WindBot.Game.AI.Decks
...
@@ -205,44 +205,44 @@ namespace WindBot.Game.AI.Decks
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Kabazauls
,
CardId
.
Kabazauls
,
(
int
)
CardId
.
MysteryShellDragon
CardId
.
MysteryShellDragon
});
});
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
MasterPendulumTheDracoslayer
,
CardId
.
MasterPendulumTheDracoslayer
,
(
int
)
CardId
.
PhantomGryphon
,
CardId
.
PhantomGryphon
,
(
int
)
CardId
.
Kabazauls
,
CardId
.
Kabazauls
,
(
int
)
CardId
.
MetalfoesGoldriver
,
CardId
.
MetalfoesGoldriver
,
(
int
)
CardId
.
AngelTrumpeter
CardId
.
AngelTrumpeter
});
});
return
true
;
return
true
;
}
}
private
bool
MysteryShellDragonSummon
()
private
bool
MysteryShellDragonSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
MysteryShellDragon
);
return
Bot
.
HasInMonstersZone
(
CardId
.
MysteryShellDragon
);
}
}
private
bool
PhantomGryphonSummon
()
private
bool
PhantomGryphonSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
PhantomGryphon
);
return
Bot
.
HasInMonstersZone
(
CardId
.
PhantomGryphon
);
}
}
private
bool
MasterPendulumTheDracoslayerSummon
()
private
bool
MasterPendulumTheDracoslayerSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
MasterPendulumTheDracoslayer
);
return
Bot
.
HasInMonstersZone
(
CardId
.
MasterPendulumTheDracoslayer
);
}
}
private
bool
AngelTrumpeterSummon
()
private
bool
AngelTrumpeterSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
AngelTrumpeter
);
return
Bot
.
HasInMonstersZone
(
CardId
.
AngelTrumpeter
);
}
}
private
bool
MetalfoesGoldriverSummon
()
private
bool
MetalfoesGoldriverSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
MetalfoesGoldriver
);
return
Bot
.
HasInMonstersZone
(
CardId
.
MetalfoesGoldriver
);
}
}
private
bool
KabazaulsSummon
()
private
bool
KabazaulsSummon
()
{
{
return
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Kabazauls
);
return
Bot
.
HasInMonstersZone
(
CardId
.
Kabazauls
);
}
}
private
bool
NormalSummon
()
private
bool
NormalSummon
()
{
{
...
@@ -266,7 +266,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -266,7 +266,7 @@ namespace WindBot.Game.AI.Decks
private
bool
IgnisterProminenceTheBlastingDracoslayerEffect
()
private
bool
IgnisterProminenceTheBlastingDracoslayerEffect
()
{
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
IgnisterProminenceTheBlastingDracoslayer
,
1
))
return
true
;
return
true
;
ClientCard
target1
=
null
;
ClientCard
target1
=
null
;
ClientCard
target2
=
AI
.
Utils
.
GetProblematicEnemyCard
();
ClientCard
target2
=
AI
.
Utils
.
GetProblematicEnemyCard
();
...
@@ -365,7 +365,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -365,7 +365,7 @@ namespace WindBot.Game.AI.Decks
private
bool
TraptrixRafflesiaSummon
()
private
bool
TraptrixRafflesiaSummon
()
{
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
()
&&
(
Bot
.
GetRemainingCount
(
(
int
)
CardId
.
BottomlessTrapHole
,
1
)
+
Bot
.
GetRemainingCount
((
int
)
CardId
.
TraptrixTrapHoleNightmare
,
1
))
>
0
)
if
(
AI
.
Utils
.
IsTurn1OrMain2
()
&&
(
Bot
.
GetRemainingCount
(
CardId
.
BottomlessTrapHole
,
1
)
+
Bot
.
GetRemainingCount
(
CardId
.
TraptrixTrapHoleNightmare
,
1
))
>
0
)
{
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
...
@@ -417,7 +417,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -417,7 +417,7 @@ namespace WindBot.Game.AI.Decks
private
bool
TrapSet
()
private
bool
TrapSet
()
{
{
return
!
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Number59CrookedCook
,
true
,
true
);
return
!
Bot
.
HasInMonstersZone
(
CardId
.
Number59CrookedCook
,
true
,
true
);
}
}
}
}
}
}
Game/AI/Decks/Rank5Executor.cs
View file @
f8f793ac
...
@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,34 +9,34 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Rank V"
,
"AI_Rank5"
)]
[
Deck
(
"Rank V"
,
"AI_Rank5"
)]
public
class
Rank5Executor
:
DefaultExecutor
public
class
Rank5Executor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
MistArchfiend
=
28601770
,
public
static
int
MistArchfiend
=
28601770
;
CyberDragon
=
70095154
,
public
static
int
CyberDragon
=
70095154
;
ZWEagleClaw
=
29353756
,
public
static
int
ZWEagleClaw
=
29353756
;
SolarWindJammer
=
33911264
,
public
static
int
SolarWindJammer
=
33911264
;
QuickdrawSynchron
=
20932152
,
public
static
int
QuickdrawSynchron
=
20932152
;
WindUpSoldier
=
12299841
,
public
static
int
WindUpSoldier
=
12299841
;
StarDrawing
=
24610207
,
public
static
int
StarDrawing
=
24610207
;
ChronomalyGoldenJet
=
88552992
,
public
static
int
ChronomalyGoldenJet
=
88552992
;
InstantFusion
=
1845204
,
public
static
int
InstantFusion
=
1845204
;
DoubleSummon
=
43422537
,
public
static
int
DoubleSummon
=
43422537
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BookOfMoon
=
14087893
,
public
static
int
BookOfMoon
=
14087893
;
XyzUnit
=
13032689
,
public
static
int
XyzUnit
=
13032689
;
XyzReborn
=
26708437
,
public
static
int
XyzReborn
=
26708437
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
TorrentialTribute
=
53582587
,
public
static
int
TorrentialTribute
=
53582587
;
XyzVeil
=
96457619
,
public
static
int
XyzVeil
=
96457619
;
PanzerDragon
=
72959823
,
public
static
int
PanzerDragon
=
72959823
;
GaiaDragonTheThunderCharger
=
91949988
,
public
static
int
GaiaDragonTheThunderCharger
=
91949988
;
CyberDragonInfinity
=
10443957
,
public
static
int
CyberDragonInfinity
=
10443957
;
TirasKeeperOfGenesis
=
31386180
,
public
static
int
TirasKeeperOfGenesis
=
31386180
;
Number61Volcasaurus
=
29669359
,
public
static
int
Number61Volcasaurus
=
29669359
;
SharkFortress
=
50449881
,
public
static
int
SharkFortress
=
50449881
;
CyberDragonNova
=
58069384
public
static
int
CyberDragonNova
=
58069384
;
}
}
private
bool
NormalSummoned
=
false
;
private
bool
NormalSummoned
=
false
;
...
@@ -49,49 +49,49 @@ namespace WindBot.Game.AI.Decks
...
@@ -49,49 +49,49 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
// Quick spells
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
// Cyber Dragon Infinity first
// Cyber Dragon Infinity first
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragonNova
,
CyberDragonNovaSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragonNova
,
CyberDragonNovaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberDragonNova
,
CyberDragonNovaEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberDragonNova
,
CyberDragonNovaEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragonInfinity
,
CyberDragonInfinitySummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragonInfinity
,
CyberDragonInfinitySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CyberDragonInfinity
,
CyberDragonInfinityEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CyberDragonInfinity
,
CyberDragonInfinityEffect
);
// Level 5 monsters without side effects
// Level 5 monsters without side effects
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SolarWindJammer
,
SolarWindJammerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SolarWindJammer
,
SolarWindJammerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ZWEagleClaw
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ZWEagleClaw
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ChronomalyGoldenJet
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ChronomalyGoldenJet
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ChronomalyGoldenJet
,
ChronomalyGoldenJetEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ChronomalyGoldenJet
,
ChronomalyGoldenJetEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
StarDrawing
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
StarDrawing
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
WindUpSoldier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
WindUpSoldier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
WindUpSoldier
,
WindUpSoldierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
WindUpSoldier
,
WindUpSoldierEffect
);
// XYZ Monsters: Summon
// XYZ Monsters: Summon
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number61Volcasaurus
,
Number61VolcasaurusSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number61Volcasaurus
,
Number61VolcasaurusSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Number61Volcasaurus
,
Number61VolcasaurusEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Number61Volcasaurus
,
Number61VolcasaurusEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TirasKeeperOfGenesis
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
TirasKeeperOfGenesis
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TirasKeeperOfGenesis
,
TirasKeeperOfGenesisEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TirasKeeperOfGenesis
,
TirasKeeperOfGenesisEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SharkFortress
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GaiaDragonTheThunderCharger
,
GaiaDragonTheThunderChargerSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GaiaDragonTheThunderCharger
,
GaiaDragonTheThunderChargerSummon
);
// Level 5 monsters with side effects
// Level 5 monsters with side effects
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
QuickdrawSynchron
,
QuickdrawSynchronSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
QuickdrawSynchron
,
QuickdrawSynchronSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
MistArchfiend
,
MistArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
MistArchfiend
,
MistArchfiendSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InstantFusion
,
InstantFusionEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
InstantFusion
,
InstantFusionEffect
);
// Useful spells
// Useful spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DoubleSummon
,
DoubleSummonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DoubleSummon
,
DoubleSummonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzUnit
,
XyzUnitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
XyzUnit
,
XyzUnitEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzReborn
,
XyzRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
XyzReborn
,
XyzRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PanzerDragon
,
PanzerDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PanzerDragon
,
PanzerDragonEffect
);
// Reposition
// Reposition
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
...
@@ -99,9 +99,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -99,9 +99,9 @@ namespace WindBot.Game.AI.Decks
// Set and activate traps
// Set and activate traps
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzVeil
,
XyzVeilEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
XyzVeil
,
XyzVeilEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultTrap
);
}
}
public
override
bool
OnSelectHand
()
public
override
bool
OnSelectHand
()
...
@@ -136,14 +136,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -136,14 +136,14 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
QuickdrawSynchron
,
CardId
.
QuickdrawSynchron
,
(
int
)
CardId
.
ZWEagleClaw
,
CardId
.
ZWEagleClaw
,
(
int
)
CardId
.
SolarWindJammer
,
CardId
.
SolarWindJammer
,
(
int
)
CardId
.
CyberDragon
,
CardId
.
CyberDragon
,
(
int
)
CardId
.
MistArchfiend
,
CardId
.
MistArchfiend
,
(
int
)
CardId
.
WindUpSoldier
,
CardId
.
WindUpSoldier
,
(
int
)
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
(
int
)
CardId
.
ChronomalyGoldenJet
CardId
.
ChronomalyGoldenJet
});
});
return
true
;
return
true
;
}
}
...
@@ -173,13 +173,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -173,13 +173,13 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
foreach
(
ClientCard
card
in
hand
)
foreach
(
ClientCard
card
in
hand
)
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
InstantFusion
&&
!
InstantFusionUsed
)
if
(
card
.
Id
==
CardId
.
InstantFusion
&&
!
InstantFusionUsed
)
++
lv5Count
;
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
QuickdrawSynchron
&&
Bot
.
Hand
.
ContainsMonsterWithLevel
(
4
))
if
(
card
.
Id
==
CardId
.
QuickdrawSynchron
&&
Bot
.
Hand
.
ContainsMonsterWithLevel
(
4
))
++
lv5Count
;
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
MistArchfiend
&&
!
NormalSummoned
)
if
(
card
.
Id
==
CardId
.
MistArchfiend
&&
!
NormalSummoned
)
++
lv5Count
;
++
lv5Count
;
if
(
card
.
Id
==
(
int
)
CardId
.
DoubleSummon
&&
DoubleSummonEffect
())
if
(
card
.
Id
==
CardId
.
DoubleSummon
&&
DoubleSummonEffect
())
++
lv5Count
;
++
lv5Count
;
}
}
if
(
lv5Count
>=
2
)
if
(
lv5Count
>=
2
)
...
@@ -204,10 +204,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -204,10 +204,10 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
IList
<
ClientCard
>
hand
=
Bot
.
Hand
;
foreach
(
ClientCard
card
in
hand
)
foreach
(
ClientCard
card
in
hand
)
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
MistArchfiend
||
if
(
card
.
Id
==
CardId
.
MistArchfiend
||
card
.
Id
==
(
int
)
CardId
.
WindUpSoldier
||
card
.
Id
==
CardId
.
WindUpSoldier
||
card
.
Id
==
(
int
)
CardId
.
StarDrawing
||
card
.
Id
==
CardId
.
StarDrawing
||
card
.
Id
==
(
int
)
CardId
.
ChronomalyGoldenJet
)
card
.
Id
==
CardId
.
ChronomalyGoldenJet
)
{
{
NormalSummoned
=
false
;
NormalSummoned
=
false
;
DoubleSummonUsed
=
true
;
DoubleSummonUsed
=
true
;
...
@@ -224,7 +224,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -224,7 +224,7 @@ namespace WindBot.Game.AI.Decks
private
bool
CyberDragonNovaEffect
()
private
bool
CyberDragonNovaEffect
()
{
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
CyberDragonNova
,
0
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
CyberDragonNova
,
0
))
{
{
return
true
;
return
true
;
}
}
...
@@ -279,7 +279,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -279,7 +279,7 @@ namespace WindBot.Game.AI.Decks
ClientCard
target
=
AI
.
Utils
.
GetProblematicEnemyMonster
(
2000
);
ClientCard
target
=
AI
.
Utils
.
GetProblematicEnemyMonster
(
2000
);
if
(
target
!=
null
)
if
(
target
!=
null
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
CyberDragon
);
AI
.
SelectCard
(
CardId
.
CyberDragon
);
AI
.
SelectNextCard
(
target
);
AI
.
SelectNextCard
(
target
);
Number61VolcasaurusUsed
=
true
;
Number61VolcasaurusUsed
=
true
;
return
true
;
return
true
;
...
@@ -299,9 +299,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -299,9 +299,9 @@ namespace WindBot.Game.AI.Decks
private
bool
GaiaDragonTheThunderChargerSummon
()
private
bool
GaiaDragonTheThunderChargerSummon
()
{
{
if
(
Number61VolcasaurusUsed
&&
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Number61Volcasaurus
))
if
(
Number61VolcasaurusUsed
&&
Bot
.
HasInMonstersZone
(
CardId
.
Number61Volcasaurus
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Number61Volcasaurus
);
AI
.
SelectCard
(
CardId
.
Number61Volcasaurus
);
return
true
;
return
true
;
}
}
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
@@ -327,11 +327,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -327,11 +327,11 @@ namespace WindBot.Game.AI.Decks
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
CyberDragonInfinity
,
CardId
.
CyberDragonInfinity
,
(
int
)
CardId
.
CyberDragonNova
,
CardId
.
CyberDragonNova
,
(
int
)
CardId
.
TirasKeeperOfGenesis
,
CardId
.
TirasKeeperOfGenesis
,
(
int
)
CardId
.
SharkFortress
,
CardId
.
SharkFortress
,
(
int
)
CardId
.
Number61Volcasaurus
CardId
.
Number61Volcasaurus
});
});
return
true
;
return
true
;
}
}
...
@@ -358,7 +358,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -358,7 +358,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
List
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
foreach
(
ClientCard
spell
in
spells
)
{
{
if
(
spell
.
Id
==
(
int
)
CardId
.
XyzVeil
&&
!
spell
.
IsFacedown
())
if
(
spell
.
Id
==
CardId
.
XyzVeil
&&
!
spell
.
IsFacedown
())
return
false
;
return
false
;
}
}
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
...
@@ -378,8 +378,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -378,8 +378,8 @@ namespace WindBot.Game.AI.Decks
if
(
monster
.
HasType
(
CardType
.
Monster
)
&&
if
(
monster
.
HasType
(
CardType
.
Monster
)
&&
!
monster
.
HasType
(
CardType
.
Xyz
)
&&
!
monster
.
HasType
(
CardType
.
Xyz
)
&&
(
monster
.
Level
==
5
(
monster
.
Level
==
5
||
monster
.
Id
==
(
int
)
CardId
.
StarDrawing
||
monster
.
Id
==
CardId
.
StarDrawing
||
(
monster
.
Id
==
(
int
)
CardId
.
WindUpSoldier
)
&&
!
monster
.
Equals
(
Card
)))
||
(
monster
.
Id
==
CardId
.
WindUpSoldier
)
&&
!
monster
.
Equals
(
Card
)))
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
...
Game/AI/Decks/ST1732Executor.cs
View file @
f8f793ac
...
@@ -9,46 +9,46 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,46 +9,46 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"ST1732"
,
"AI_ST1732"
,
"Normal"
)]
[
Deck
(
"ST1732"
,
"AI_ST1732"
,
"Normal"
)]
public
class
ST1732Executor
:
DefaultExecutor
public
class
ST1732Executor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
Digitron
=
32295838
,
public
static
int
Digitron
=
32295838
;
Bitron
=
36211150
,
public
static
int
Bitron
=
36211150
;
DualAssembloom
=
7445307
,
public
static
int
DualAssembloom
=
7445307
;
BootStagguard
=
70950698
,
public
static
int
BootStagguard
=
70950698
;
Linkslayer
=
35595518
,
public
static
int
Linkslayer
=
35595518
;
RAMClouder
=
9190563
,
public
static
int
RAMClouder
=
9190563
;
ROMCloudia
=
44956694
,
public
static
int
ROMCloudia
=
44956694
;
BalancerLord
=
8567955
,
public
static
int
BalancerLord
=
8567955
;
Backlinker
=
71172240
,
public
static
int
Backlinker
=
71172240
;
Kleinant
=
45778242
,
public
static
int
Kleinant
=
45778242
;
Draconnet
=
62706865
,
public
static
int
Draconnet
=
62706865
;
DotScaper
=
18789533
,
public
static
int
DotScaper
=
18789533
;
MindControl
=
37520316
,
public
static
int
MindControl
=
37520316
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
CosmicCyclone
=
8267140
,
public
static
int
CosmicCyclone
=
8267140
;
BookOfMoon
=
14087893
,
public
static
int
BookOfMoon
=
14087893
;
CynetBackdoor
=
43839002
,
public
static
int
CynetBackdoor
=
43839002
;
MoonMirrorShield
=
19508728
,
public
static
int
MoonMirrorShield
=
19508728
;
CynetUniverse
=
61583217
,
public
static
int
CynetUniverse
=
61583217
;
BottomlessTrapHole
=
29401950
,
public
static
int
BottomlessTrapHole
=
29401950
;
MirrorForce
=
44095762
,
public
static
int
MirrorForce
=
44095762
;
TorrentialTribute
=
53582587
,
public
static
int
TorrentialTribute
=
53582587
;
RecodedAlive
=
70238111
,
public
static
int
RecodedAlive
=
70238111
;
DimensionalBarrier
=
83326048
,
public
static
int
DimensionalBarrier
=
83326048
;
CompulsoryEvacuationDevice
=
94192409
,
public
static
int
CompulsoryEvacuationDevice
=
94192409
;
SolemnStrike
=
40605147
,
public
static
int
SolemnStrike
=
40605147
;
DecodeTalker
=
1861629
,
public
static
int
DecodeTalker
=
1861629
;
EncodeTalker
=
6622715
,
public
static
int
EncodeTalker
=
6622715
;
TriGateWizard
=
32617464
,
public
static
int
TriGateWizard
=
32617464
;
Honeybot
=
34472920
,
public
static
int
Honeybot
=
34472920
;
BinarySorceress
=
79016563
,
public
static
int
BinarySorceress
=
79016563
;
LinkSpider
=
98978921
,
public
static
int
LinkSpider
=
98978921
;
StagToken
=
70950699
public
static
int
StagToken
=
70950699
;
}
}
bool
BalancerLordUsed
=
false
;
bool
BalancerLordUsed
=
false
;
...
@@ -56,89 +56,89 @@ namespace WindBot.Game.AI.Decks
...
@@ -56,89 +56,89 @@ namespace WindBot.Game.AI.Decks
public
ST1732Executor
(
GameAI
ai
,
Duel
duel
)
public
ST1732Executor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CynetUniverse
,
CynetUniverseEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CynetUniverse
,
CynetUniverseEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Linkslayer
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Linkslayer
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Linkslayer
,
LinkslayerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Linkslayer
,
LinkslayerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
LinkSpider
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MindControl
,
MindControlEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MindControl
,
MindControlEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Backlinker
,
BacklinkerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Backlinker
,
BacklinkerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BootStagguard
,
BootStagguardEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BootStagguard
,
BootStagguardEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MoonMirrorShield
,
MoonMirrorShieldEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MoonMirrorShield
,
MoonMirrorShieldEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CynetBackdoor
,
CynetBackdoorEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CynetBackdoor
,
CynetBackdoorEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RecodedAlive
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RecodedAlive
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
BalancerLord
,
BalancerLordSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
BalancerLord
,
BalancerLordSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROMCloudia
,
ROMCloudiaSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ROMCloudia
,
ROMCloudiaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ROMCloudia
,
ROMCloudiaEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ROMCloudia
,
ROMCloudiaEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Draconnet
,
DraconnetSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Draconnet
,
DraconnetSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Draconnet
,
DraconnetEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Draconnet
,
DraconnetEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Kleinant
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Kleinant
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Kleinant
,
KleinantEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Kleinant
,
KleinantEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
RAMClouder
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
RAMClouder
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
RAMClouder
,
RAMClouderEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
RAMClouder
,
RAMClouderEffect
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
DotScaper
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
DotScaper
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DotScaper
,
DotScaperEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DotScaper
,
DotScaperEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
BalancerLord
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
BalancerLord
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
ROMCloudia
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
ROMCloudia
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Draconnet
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Draconnet
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
Backlinker
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Digitron
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
Digitron
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
(
int
)
CardId
.
Bitron
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
Bitron
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BalancerLord
,
BalancerLordEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BalancerLord
,
BalancerLordEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DecodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DecodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DecodeTalker
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DecodeTalker
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
TriGateWizard
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
TriGateWizard
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TriGateWizard
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TriGateWizard
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EncodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EncodeTalker
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EncodeTalker
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EncodeTalker
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Honeybot
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Honeybot
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
BinarySorceress
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
BinarySorceress
,
LinkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BinarySorceress
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BinarySorceress
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CynetBackdoor
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CynetBackdoor
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
RecodedAlive
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
RecodedAlive
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CompulsoryEvacuationDevice
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DimensionalBarrier
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DimensionalBarrier
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TorrentialTribute
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MirrorForce
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MirrorForce
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
BottomlessTrapHole
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
BookOfMoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
BookOfMoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CosmicCyclone
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MysticalSpaceTyphoon
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CompulsoryEvacuationDevice
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CompulsoryEvacuationDevice
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DimensionalBarrier
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DimensionalBarrier
,
DefaultDimensionalBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BottomlessTrapHole
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -176,10 +176,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -176,10 +176,10 @@ namespace WindBot.Game.AI.Decks
if
(
targets
.
Count
>
0
)
if
(
targets
.
Count
>
0
)
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
(
int
)
CardId
.
Bitron
,
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
CardId
.
Digitron
,
(
int
)
CardId
.
RecodedAlive
CardId
.
RecodedAlive
});
});
AI
.
SelectNextCard
(
targets
);
AI
.
SelectNextCard
(
targets
);
return
true
;
return
true
;
...
@@ -213,19 +213,19 @@ namespace WindBot.Game.AI.Decks
...
@@ -213,19 +213,19 @@ namespace WindBot.Game.AI.Decks
private
bool
MonsterRebornEffect
()
private
bool
MonsterRebornEffect
()
{
{
List
<
int
>
targets
=
new
List
<
int
>
{
List
<
int
>
targets
=
new
List
<
int
>
{
(
int
)
CardId
.
DecodeTalker
,
CardId
.
DecodeTalker
,
(
int
)
CardId
.
EncodeTalker
,
CardId
.
EncodeTalker
,
(
int
)
CardId
.
TriGateWizard
,
CardId
.
TriGateWizard
,
(
int
)
CardId
.
BinarySorceress
,
CardId
.
BinarySorceress
,
(
int
)
CardId
.
Honeybot
,
CardId
.
Honeybot
,
(
int
)
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
(
int
)
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
(
int
)
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
(
int
)
CardId
.
RAMClouder
,
CardId
.
RAMClouder
,
(
int
)
CardId
.
Backlinker
,
CardId
.
Backlinker
,
(
int
)
CardId
.
Kleinant
CardId
.
Kleinant
};
};
if
(!
Bot
.
HasInGraveyard
(
targets
))
if
(!
Bot
.
HasInGraveyard
(
targets
))
{
{
...
@@ -292,7 +292,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -292,7 +292,7 @@ namespace WindBot.Game.AI.Decks
monsters
=
Bot
.
GetMonsters
();
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
BalancerLord
)
if
(
monster
.
Id
==
CardId
.
BalancerLord
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
selected
=
true
;
selected
=
true
;
...
@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
CardId
.
Kleinant
,
(
int
)
CardId
.
Draconnet
,
CardId
.
Draconnet
,
(
int
)
CardId
.
Backlinker
CardId
.
Backlinker
});
});
return
true
;
return
true
;
}
}
...
@@ -337,12 +337,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -337,12 +337,12 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
Location
==
CardLocation
.
Removed
)
if
(
Card
.
Location
==
CardLocation
.
Removed
)
return
true
;
return
true
;
bool
hastarget
=
Bot
.
HasInHand
(
new
List
<
int
>
{
bool
hastarget
=
Bot
.
HasInHand
(
new
List
<
int
>
{
(
int
)
CardId
.
Draconnet
,
CardId
.
Draconnet
,
(
int
)
CardId
.
Kleinant
,
CardId
.
Kleinant
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
(
int
)
CardId
.
RAMClouder
,
CardId
.
RAMClouder
,
(
int
)
CardId
.
DotScaper
CardId
.
DotScaper
});
});
if
(
hastarget
&&
!
BalancerLordUsed
)
if
(
hastarget
&&
!
BalancerLordUsed
)
{
{
...
@@ -355,12 +355,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -355,12 +355,12 @@ namespace WindBot.Game.AI.Decks
private
bool
ROMCloudiaSummon
()
private
bool
ROMCloudiaSummon
()
{
{
return
Bot
.
HasInGraveyard
(
new
List
<
int
>
{
return
Bot
.
HasInGraveyard
(
new
List
<
int
>
{
(
int
)
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
CardId
.
Kleinant
,
(
int
)
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
(
int
)
CardId
.
Draconnet
,
CardId
.
Draconnet
,
(
int
)
CardId
.
RAMClouder
CardId
.
RAMClouder
});
});
}
}
...
@@ -369,22 +369,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -369,22 +369,22 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
CardId
.
Kleinant
,
(
int
)
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
(
int
)
CardId
.
Draconnet
,
CardId
.
Draconnet
,
(
int
)
CardId
.
RAMClouder
CardId
.
RAMClouder
});
});
return
true
;
return
true
;
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
Kleinant
,
CardId
.
Kleinant
,
(
int
)
CardId
.
RAMClouder
,
CardId
.
RAMClouder
,
(
int
)
CardId
.
DotScaper
CardId
.
DotScaper
});
});
return
true
;
return
true
;
}
}
...
@@ -392,23 +392,23 @@ namespace WindBot.Game.AI.Decks
...
@@ -392,23 +392,23 @@ namespace WindBot.Game.AI.Decks
private
bool
DraconnetSummon
()
private
bool
DraconnetSummon
()
{
{
return
Bot
.
GetRemainingCount
(
(
int
)
CardId
.
Digitron
,
1
)
>
0
return
Bot
.
GetRemainingCount
(
CardId
.
Digitron
,
1
)
>
0
||
Bot
.
GetRemainingCount
(
(
int
)
CardId
.
Bitron
,
1
)
>
0
;
||
Bot
.
GetRemainingCount
(
CardId
.
Bitron
,
1
)
>
0
;
}
}
private
bool
DraconnetEffect
()
private
bool
DraconnetEffect
()
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Bitron
);
AI
.
SelectCard
(
CardId
.
Bitron
);
return
true
;
return
true
;
}
}
private
bool
KleinantEffect
()
private
bool
KleinantEffect
()
{
{
IList
<
int
>
targets
=
new
[]
{
IList
<
int
>
targets
=
new
[]
{
(
int
)
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
(
int
)
CardId
.
Bitron
,
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
CardId
.
DotScaper
};
};
foreach
(
ClientCard
monster
in
Bot
.
Hand
)
foreach
(
ClientCard
monster
in
Bot
.
Hand
)
{
{
...
@@ -419,10 +419,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -419,10 +419,10 @@ namespace WindBot.Game.AI.Decks
}
}
}
}
IList
<
int
>
targets2
=
new
[]
{
IList
<
int
>
targets2
=
new
[]
{
(
int
)
CardId
.
StagToken
,
CardId
.
StagToken
,
(
int
)
CardId
.
Bitron
,
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
CardId
.
DotScaper
};
};
foreach
(
ClientCard
monster
in
Bot
.
GetMonsters
())
foreach
(
ClientCard
monster
in
Bot
.
GetMonsters
())
{
{
...
@@ -438,26 +438,26 @@ namespace WindBot.Game.AI.Decks
...
@@ -438,26 +438,26 @@ namespace WindBot.Game.AI.Decks
private
bool
RAMClouderEffect
()
private
bool
RAMClouderEffect
()
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
new
[]{
(
int
)
CardId
.
StagToken
,
CardId
.
StagToken
,
(
int
)
CardId
.
Bitron
,
CardId
.
Bitron
,
(
int
)
CardId
.
Digitron
,
CardId
.
Digitron
,
(
int
)
CardId
.
DotScaper
,
CardId
.
DotScaper
,
(
int
)
CardId
.
Draconnet
,
CardId
.
Draconnet
,
(
int
)
CardId
.
Backlinker
,
CardId
.
Backlinker
,
(
int
)
CardId
.
RAMClouder
CardId
.
RAMClouder
});
});
AI
.
SelectNextCard
(
new
[]{
AI
.
SelectNextCard
(
new
[]{
(
int
)
CardId
.
DecodeTalker
,
CardId
.
DecodeTalker
,
(
int
)
CardId
.
EncodeTalker
,
CardId
.
EncodeTalker
,
(
int
)
CardId
.
TriGateWizard
,
CardId
.
TriGateWizard
,
(
int
)
CardId
.
BinarySorceress
,
CardId
.
BinarySorceress
,
(
int
)
CardId
.
Honeybot
,
CardId
.
Honeybot
,
(
int
)
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
(
int
)
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
(
int
)
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
(
int
)
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
(
int
)
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
(
int
)
CardId
.
RAMClouder
CardId
.
RAMClouder
});
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ToadallyAwesomeExecutor.cs
View file @
f8f793ac
...
@@ -9,101 +9,101 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,101 +9,101 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Toadally Awesome"
,
"AI_ToadallyAwesome"
,
"OutDated"
)]
[
Deck
(
"Toadally Awesome"
,
"AI_ToadallyAwesome"
,
"OutDated"
)]
public
class
ToadallyAwesomeExecutor
:
DefaultExecutor
public
class
ToadallyAwesomeExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
CryomancerOfTheIceBarrier
=
23950192
,
public
static
int
CryomancerOfTheIceBarrier
=
23950192
;
DewdarkOfTheIceBarrier
=
90311614
,
public
static
int
DewdarkOfTheIceBarrier
=
90311614
;
SwapFrog
=
9126351
,
public
static
int
SwapFrog
=
9126351
;
PriorOfTheIceBarrier
=
50088247
,
public
static
int
PriorOfTheIceBarrier
=
50088247
;
Ronintoadin
=
1357146
,
public
static
int
Ronintoadin
=
1357146
;
DupeFrog
=
46239604
,
public
static
int
DupeFrog
=
46239604
;
GraydleSlimeJr
=
80250319
,
public
static
int
GraydleSlimeJr
=
80250319
;
GalaxyCyclone
=
5133471
,
public
static
int
GalaxyCyclone
=
5133471
;
HarpiesFeatherDuster
=
18144506
,
public
static
int
HarpiesFeatherDuster
=
18144506
;
Surface
=
33057951
,
public
static
int
Surface
=
33057951
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
CardDestruction
=
72892473
,
public
static
int
CardDestruction
=
72892473
;
FoolishBurial
=
81439173
,
public
static
int
FoolishBurial
=
81439173
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
MedallionOfTheIceBarrier
=
84206435
,
public
static
int
MedallionOfTheIceBarrier
=
84206435
;
Salvage
=
96947648
,
public
static
int
Salvage
=
96947648
;
AquariumStage
=
29047353
,
public
static
int
AquariumStage
=
29047353
;
HeraldOfTheArcLight
=
79606837
,
public
static
int
HeraldOfTheArcLight
=
79606837
;
ToadallyAwesome
=
90809975
,
public
static
int
ToadallyAwesome
=
90809975
;
SkyCavalryCentaurea
=
36776089
,
public
static
int
SkyCavalryCentaurea
=
36776089
;
DaigustoPhoenix
=
2766877
,
public
static
int
DaigustoPhoenix
=
2766877
;
CatShark
=
84224627
,
public
static
int
CatShark
=
84224627
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BookOfMoon
=
14087893
,
public
static
int
BookOfMoon
=
14087893
;
CallOfTheHaunted
=
97077563
,
public
static
int
CallOfTheHaunted
=
97077563
;
TorrentialTribute
=
53582587
,
public
static
int
TorrentialTribute
=
53582587
;
NumberS39UtopiatheLightning
=
56832966
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
}
}
public
ToadallyAwesomeExecutor
(
GameAI
ai
,
Duel
duel
)
public
ToadallyAwesomeExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GalaxyCyclone
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GalaxyCyclone
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AquariumStage
,
AquariumStageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AquariumStage
,
AquariumStageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MedallionOfTheIceBarrier
,
MedallionOfTheIceBarrierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MedallionOfTheIceBarrier
,
MedallionOfTheIceBarrierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurialEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FoolishBurial
,
FoolishBurialEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SwapFrog
,
SwapFrogSpsummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SwapFrog
,
SwapFrogEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SwapFrog
,
SwapFrogEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GraydleSlimeJr
,
GraydleSlimeJrEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ronintoadin
,
RonintoadinEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Ronintoadin
,
RonintoadinEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PriorOfTheIceBarrier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Surface
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Surface
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Salvage
,
SalvageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Salvage
,
SalvageEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SwapFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SwapFrog
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DewdarkOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
CryomancerOfTheIceBarrier
,
IceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardDestruction
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CardDestruction
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
GraydleSlimeJr
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
GraydleSlimeJr
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
PriorOfTheIceBarrier
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Ronintoadin
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Ronintoadin
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
DupeFrog
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
DupeFrog
,
NormalSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
PriorOfTheIceBarrierSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
PriorOfTheIceBarrier
,
PriorOfTheIceBarrierSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CatShark
,
CatSharkSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CatShark
,
CatSharkSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CatShark
,
CatSharkEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CatShark
,
CatSharkEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SkyCavalryCentaurea
,
SkyCavalryCentaureaSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SkyCavalryCentaurea
,
SkyCavalryCentaureaSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SkyCavalryCentaurea
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SkyCavalryCentaurea
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DaigustoPhoenix
,
DaigustoPhoenixSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DaigustoPhoenix
,
DaigustoPhoenixSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DaigustoPhoenix
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DaigustoPhoenix
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ToadallyAwesome
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ToadallyAwesome
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ToadallyAwesome
,
ToadallyAwesomeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ToadallyAwesome
,
ToadallyAwesomeEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
HeraldOfTheArcLight
,
HeraldOfTheArcLightSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
HeraldOfTheArcLight
,
HeraldOfTheArcLightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HeraldOfTheArcLight
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HeraldOfTheArcLight
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
GraydleSlimeJr
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
GraydleSlimeJr
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
DupeFrog
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
(
int
)
CardId
.
Ronintoadin
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
Ronintoadin
);
AddExecutor
(
ExecutorType
.
Repos
,
Repos
);
AddExecutor
(
ExecutorType
.
Repos
,
Repos
);
// cards got by Toadall yAwesome
// cards got by Toadall yAwesome
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BookOfMoon
,
DefaultBookOfMoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CallOfTheHaunted
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CallOfTheHaunted
,
SurfaceEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TorrentialTribute
,
DefaultTorrentialTribute
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherSpellEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherSpellEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherTrapEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherTrapEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherMonsterEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
OtherMonsterEffect
);
...
@@ -121,9 +121,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -121,9 +121,9 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
if
(
attacker
.
Id
==
(
int
)
CardId
.
SkyCavalryCentaurea
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
())
if
(
attacker
.
Id
==
CardId
.
SkyCavalryCentaurea
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
())
attacker
.
RealPower
=
Duel
.
LifePoints
[
0
]
+
attacker
.
Attack
;
attacker
.
RealPower
=
Duel
.
LifePoints
[
0
]
+
attacker
.
Attack
;
}
}
return
attacker
.
RealPower
>=
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>=
defender
.
GetDefensePower
();
...
@@ -133,22 +133,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -133,22 +133,22 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
Bot
.
HasInHand
(
new
List
<
int
>
if
(
Bot
.
HasInHand
(
new
List
<
int
>
{
{
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
})
||
Bot
.
HasInMonstersZone
(
new
List
<
int
>
})
||
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
{
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
}))
}))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
PriorOfTheIceBarrier
);
AI
.
SelectCard
(
CardId
.
PriorOfTheIceBarrier
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
});
});
}
}
return
true
;
return
true
;
...
@@ -158,14 +158,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -158,14 +158,14 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
ToadallyAwesome
,
CardId
.
ToadallyAwesome
,
(
int
)
CardId
.
HeraldOfTheArcLight
,
CardId
.
HeraldOfTheArcLight
,
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
});
});
return
true
;
return
true
;
}
}
...
@@ -183,22 +183,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -183,22 +183,22 @@ namespace WindBot.Game.AI.Decks
private
bool
FoolishBurialEffect
()
private
bool
FoolishBurialEffect
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
if
(
Bot
.
HasInHand
(
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
(
(
int
)
CardId
.
GraydleSlimeJr
);
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
else
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
))
AI
.
SelectCard
(
(
int
)
CardId
.
DupeFrog
);
AI
.
SelectCard
(
CardId
.
DupeFrog
);
else
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
(
int
)
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
SwapFrog
CardId
.
SwapFrog
});
});
return
true
;
return
true
;
}
}
...
@@ -207,31 +207,31 @@ namespace WindBot.Game.AI.Decks
...
@@ -207,31 +207,31 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
});
});
return
true
;
return
true
;
}
}
private
bool
SwapFrogSpsummon
()
private
bool
SwapFrogSpsummon
()
{
{
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
GraydleSlimeJr
)>=
2
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
if
(
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
GraydleSlimeJr
)>=
2
&&
!
Bot
.
HasInGraveyard
(
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
(
(
int
)
CardId
.
GraydleSlimeJr
);
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
else
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
))
AI
.
SelectCard
(
(
int
)
CardId
.
DupeFrog
);
AI
.
SelectCard
(
CardId
.
DupeFrog
);
else
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
(
int
)
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
SwapFrog
CardId
.
SwapFrog
});
});
return
true
;
return
true
;
}
}
...
@@ -244,13 +244,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -244,13 +244,13 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
DupeFrog
))
if
(
Bot
.
HasInHand
(
CardId
.
DupeFrog
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
SwapFrog
CardId
.
SwapFrog
});
});
return
true
;
return
true
;
}
}
...
@@ -260,22 +260,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -260,22 +260,22 @@ namespace WindBot.Game.AI.Decks
private
bool
GraydleSlimeJrSummon
()
private
bool
GraydleSlimeJrSummon
()
{
{
return
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
GraydleSlimeJr
);
return
Bot
.
HasInGraveyard
(
CardId
.
GraydleSlimeJr
);
}
}
private
bool
GraydleSlimeJrEffect
()
private
bool
GraydleSlimeJrEffect
()
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
GraydleSlimeJr
);
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
});
});
return
true
;
return
true
;
}
}
...
@@ -301,12 +301,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -301,12 +301,12 @@ namespace WindBot.Game.AI.Decks
private
bool
IceBarrierSummon
()
private
bool
IceBarrierSummon
()
{
{
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
PriorOfTheIceBarrier
)
>
0
;
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
PriorOfTheIceBarrier
)
>
0
;
}
}
private
bool
PriorOfTheIceBarrierSummon
()
private
bool
PriorOfTheIceBarrierSummon
()
{
{
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
PriorOfTheIceBarrier
)
>=
2
;
return
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
PriorOfTheIceBarrier
)
>=
2
;
}
}
private
bool
ToadallyAwesomeEffect
()
private
bool
ToadallyAwesomeEffect
()
...
@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -316,11 +316,11 @@ namespace WindBot.Game.AI.Decks
// negate effect, select a cost for it
// negate effect, select a cost for it
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
int
>
suitableCost
=
new
List
<
int
>
{
List
<
int
>
suitableCost
=
new
List
<
int
>
{
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
};
};
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
...
@@ -330,29 +330,29 @@ namespace WindBot.Game.AI.Decks
...
@@ -330,29 +330,29 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
}
}
bool
haveAquariumStage
=
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
AquariumStage
,
true
);
bool
haveAquariumStage
=
Bot
.
HasInSpellZone
(
CardId
.
AquariumStage
,
true
);
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
&&
!
haveAquariumStage
)
if
(
monster
.
Id
==
CardId
.
DupeFrog
&&
!
haveAquariumStage
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
return
true
;
return
true
;
}
}
}
}
monsters
=
(
List
<
ClientCard
>)
Bot
.
Hand
;
monsters
=
(
List
<
ClientCard
>)
Bot
.
Hand
;
bool
HaveTwoGraydleSlimeJrInHand
=
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
(
int
)
CardId
.
GraydleSlimeJr
)
>=
2
;
bool
HaveTwoGraydleSlimeJrInHand
=
Bot
.
GetCountCardInZone
(
Bot
.
Hand
,
CardId
.
GraydleSlimeJr
)
>=
2
;
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
GraydleSlimeJr
&&
HaveTwoGraydleSlimeJrInHand
)
if
(
monster
.
Id
==
CardId
.
GraydleSlimeJr
&&
HaveTwoGraydleSlimeJrInHand
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
return
true
;
return
true
;
}
}
}
}
bool
NeedDupeFrogInGrave
=
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
SwapFrog
);
bool
NeedDupeFrogInGrave
=
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
SwapFrog
);
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
&&
NeedDupeFrogInGrave
)
if
(
monster
.
Id
==
CardId
.
DupeFrog
&&
NeedDupeFrogInGrave
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
return
true
;
return
true
;
...
@@ -360,7 +360,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -360,7 +360,7 @@ namespace WindBot.Game.AI.Decks
}
}
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
Ronintoadin
||
monster
.
Id
==
(
int
)
CardId
.
DupeFrog
)
if
(
monster
.
Id
==
CardId
.
Ronintoadin
||
monster
.
Id
==
CardId
.
DupeFrog
)
{
{
AI
.
SelectCard
(
monster
);
AI
.
SelectCard
(
monster
);
return
true
;
return
true
;
...
@@ -375,17 +375,17 @@ namespace WindBot.Game.AI.Decks
...
@@ -375,17 +375,17 @@ namespace WindBot.Game.AI.Decks
}
}
else
if
(
Card
.
Location
==
CardLocation
.
Grave
)
else
if
(
Card
.
Location
==
CardLocation
.
Grave
)
{
{
if
(!
Bot
.
HasInExtra
(
(
int
)
CardId
.
ToadallyAwesome
))
if
(!
Bot
.
HasInExtra
(
CardId
.
ToadallyAwesome
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
ToadallyAwesome
);
AI
.
SelectCard
(
CardId
.
ToadallyAwesome
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
});
});
}
}
return
true
;
return
true
;
...
@@ -397,24 +397,24 @@ namespace WindBot.Game.AI.Decks
...
@@ -397,24 +397,24 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
});
});
}
}
else
else
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
});
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
}
}
...
@@ -425,14 +425,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -425,14 +425,14 @@ namespace WindBot.Game.AI.Decks
private
bool
CatSharkSummon
()
private
bool
CatSharkSummon
()
{
{
bool
should
=
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
ToadallyAwesome
)
bool
should
=
Bot
.
HasInMonstersZone
(
CardId
.
ToadallyAwesome
)
&&
((
AI
.
Utils
.
IsOneEnemyBetter
(
true
)
&&
((
AI
.
Utils
.
IsOneEnemyBetter
(
true
)
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
{
(
int
)
CardId
.
CatShark
,
CardId
.
CatShark
,
(
int
)
CardId
.
SkyCavalryCentaurea
CardId
.
SkyCavalryCentaurea
},
true
,
true
))
},
true
,
true
))
||
!
Bot
.
HasInExtra
(
(
int
)
CardId
.
ToadallyAwesome
));
||
!
Bot
.
HasInExtra
(
CardId
.
ToadallyAwesome
));
if
(
should
)
if
(
should
)
{
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
...
@@ -446,7 +446,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -446,7 +446,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
ToadallyAwesome
&&
monster
.
Attack
<=
2200
)
if
(
monster
.
Id
==
CardId
.
ToadallyAwesome
&&
monster
.
Attack
<=
2200
)
{
{
SelectXYZDetach
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
AI
.
SelectNextCard
(
monster
);
...
@@ -455,7 +455,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -455,7 +455,7 @@ namespace WindBot.Game.AI.Decks
}
}
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
SkyCavalryCentaurea
&&
monster
.
Attack
<=
2000
)
if
(
monster
.
Id
==
CardId
.
SkyCavalryCentaurea
&&
monster
.
Attack
<=
2000
)
{
{
SelectXYZDetach
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
AI
.
SelectNextCard
(
monster
);
...
@@ -464,7 +464,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -464,7 +464,7 @@ namespace WindBot.Game.AI.Decks
}
}
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
Id
==
(
int
)
CardId
.
DaigustoPhoenix
&&
monster
.
Attack
<=
1500
)
if
(
monster
.
Id
==
CardId
.
DaigustoPhoenix
&&
monster
.
Attack
<=
1500
)
{
{
SelectXYZDetach
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
AI
.
SelectNextCard
(
monster
);
AI
.
SelectNextCard
(
monster
);
...
@@ -490,7 +490,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -490,7 +490,7 @@ namespace WindBot.Game.AI.Decks
&&
num
<
4
&&
num
<
4
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
&&
!
Bot
.
HasInMonstersZone
(
new
List
<
int
>
{
{
(
int
)
CardId
.
SkyCavalryCentaurea
CardId
.
SkyCavalryCentaurea
},
true
,
true
);
},
true
,
true
);
}
}
...
@@ -568,22 +568,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -568,22 +568,22 @@ namespace WindBot.Game.AI.Decks
private
void
SelectXYZDetach
(
List
<
int
>
Overlays
)
private
void
SelectXYZDetach
(
List
<
int
>
Overlays
)
{
{
if
(
Overlays
.
Contains
(
(
int
)
CardId
.
GraydleSlimeJr
)
&&
Bot
.
HasInHand
((
int
)
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
GraydleSlimeJr
))
if
(
Overlays
.
Contains
(
CardId
.
GraydleSlimeJr
)
&&
Bot
.
HasInHand
(
CardId
.
GraydleSlimeJr
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
GraydleSlimeJr
))
AI
.
SelectCard
(
(
int
)
CardId
.
GraydleSlimeJr
);
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
else
if
(
Overlays
.
Contains
(
(
int
)
CardId
.
DupeFrog
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
))
else
if
(
Overlays
.
Contains
(
CardId
.
DupeFrog
)
&&
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
))
AI
.
SelectCard
(
(
int
)
CardId
.
DupeFrog
);
AI
.
SelectCard
(
CardId
.
DupeFrog
);
else
if
(
Overlays
.
Contains
(
(
int
)
CardId
.
Ronintoadin
)
&&
Bot
.
HasInGraveyard
((
int
)
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
((
int
)
CardId
.
Ronintoadin
))
else
if
(
Overlays
.
Contains
(
CardId
.
Ronintoadin
)
&&
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
(
int
)
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
(
int
)
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
(
int
)
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
(
int
)
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
(
int
)
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
(
int
)
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
(
int
)
CardId
.
SwapFrog
CardId
.
SwapFrog
});
});
}
}
}
}
...
...
Game/AI/Decks/YosenjuExecutor.cs
View file @
f8f793ac
...
@@ -9,42 +9,42 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,42 +9,42 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Yosenju"
,
"AI_Yosenju"
)]
[
Deck
(
"Yosenju"
,
"AI_Yosenju"
)]
public
class
YosenjuExecutor
:
DefaultExecutor
public
class
YosenjuExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
YosenjuKama1
=
65247798
,
public
static
int
YosenjuKama1
=
65247798
;
YosenjuKama2
=
92246806
,
public
static
int
YosenjuKama2
=
92246806
;
YosenjuKama3
=
28630501
,
public
static
int
YosenjuKama3
=
28630501
;
YosenjuTsujik
=
25244515
,
public
static
int
YosenjuTsujik
=
25244515
;
HarpiesFeatherDuster
=
18144507
,
public
static
int
HarpiesFeatherDuster
=
18144507
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
CardOfDemise
=
59750328
,
public
static
int
CardOfDemise
=
59750328
;
PotOfDuality
=
98645731
,
public
static
int
PotOfDuality
=
98645731
;
CosmicCyclone
=
8267140
,
public
static
int
CosmicCyclone
=
8267140
;
QuakingMirrorForce
=
40838625
,
public
static
int
QuakingMirrorForce
=
40838625
;
DrowningMirrorForce
=
47475363
,
public
static
int
DrowningMirrorForce
=
47475363
;
StarlightRoad
=
58120309
,
public
static
int
StarlightRoad
=
58120309
;
VanitysEmptiness
=
5851097
,
public
static
int
VanitysEmptiness
=
5851097
;
MacroCosmos
=
30241314
,
public
static
int
MacroCosmos
=
30241314
;
SolemnStrike
=
40605147
,
public
static
int
SolemnStrike
=
40605147
;
SolemnWarning
=
84749824
,
public
static
int
SolemnWarning
=
84749824
;
SolemnJudgment
=
41420027
,
public
static
int
SolemnJudgment
=
41420027
;
MagicDrain
=
59344077
,
public
static
int
MagicDrain
=
59344077
;
StardustDragon
=
44508094
,
public
static
int
StardustDragon
=
44508094
;
NumberS39UtopiatheLightning
=
56832966
,
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
NumberS39UtopiaOne
=
86532744
,
public
static
int
NumberS39UtopiaOne
=
86532744
;
DarkRebellionXyzDragon
=
16195942
,
public
static
int
DarkRebellionXyzDragon
=
16195942
;
Number39Utopia
=
84013237
,
public
static
int
Number39Utopia
=
84013237
;
Number103Ragnazero
=
94380860
,
public
static
int
Number103Ragnazero
=
94380860
;
BrotherhoodOfTheFireFistTigerKing
=
96381979
,
public
static
int
BrotherhoodOfTheFireFistTigerKing
=
96381979
;
Number106GiantHand
=
63746411
,
public
static
int
Number106GiantHand
=
63746411
;
CastelTheSkyblasterMusketeer
=
82633039
,
public
static
int
CastelTheSkyblasterMusketeer
=
82633039
;
DiamondDireWolf
=
95169481
,
public
static
int
DiamondDireWolf
=
95169481
;
LightningChidori
=
22653490
,
public
static
int
LightningChidori
=
22653490
;
EvilswarmExcitonKnight
=
46772449
,
public
static
int
EvilswarmExcitonKnight
=
46772449
;
AbyssDweller
=
21044178
,
public
static
int
AbyssDweller
=
21044178
;
GagagaCowboy
=
12014404
public
static
int
GagagaCowboy
=
12014404
;
}
}
bool
CardOfDemiseUsed
=
false
;
bool
CardOfDemiseUsed
=
false
;
...
@@ -53,95 +53,95 @@ namespace WindBot.Game.AI.Decks
...
@@ -53,95 +53,95 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
// do the end phase effect of Card Of Demise before Yosenjus return to hand
// do the end phase effect of Card Of Demise before Yosenjus return to hand
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardOfDemise
,
CardOfDemiseEPEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CardOfDemise
,
CardOfDemiseEPEffect
);
// burn if enemy's LP is below 800
// burn if enemy's LP is below 800
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GagagaCowboy
,
GagagaCowboySummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GagagaCowboy
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CosmicCyclone
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
PotOfDuality
,
PotOfDualityEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
PotOfDuality
,
PotOfDualityEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama1
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama1
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama2
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama2
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama3
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama3
,
HaveAnotherYosenjuWithSameNameInHand
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama1
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama1
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama2
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama2
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuKama3
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuKama3
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
YosenjuTsujik
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
YosenjuTsujik
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama1
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
YosenjuKama1
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama2
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
YosenjuKama2
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuKama3
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
YosenjuKama3
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
YosenjuTsujik
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
YosenjuTsujik
,
YosenjuEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnJudgment
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnWarning
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MacroCosmos
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MagicDrain
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DrowningMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
QuakingMirrorForce
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
TrapSetUnique
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnJudgment
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnWarning
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MacroCosmos
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MagicDrain
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DrowningMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
QuakingMirrorForce
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
HarpiesFeatherDuster
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DarkHole
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
PotOfDuality
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CosmicCyclone
,
TrapSetWhenZoneFree
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CardOfDemise
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CardOfDemise
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
CardOfDemise
,
CardOfDemiseEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CardOfDemise
,
CardOfDemiseEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnJudgment
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnJudgment
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnStrike
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnStrike
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
SolemnWarning
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SolemnWarning
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MacroCosmos
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MacroCosmos
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
VanitysEmptiness
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
VanitysEmptiness
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
MagicDrain
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MagicDrain
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DrowningMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DrowningMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
QuakingMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
QuakingMirrorForce
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
StarlightRoad
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
HarpiesFeatherDuster
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
DarkHole
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
DarkHole
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
PotOfDuality
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
PotOfDuality
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
CosmicCyclone
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
CosmicCyclone
,
CardOfDemiseAcivated
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EvilswarmExcitonKnight
,
DefaultEvilswarmExcitonKnightEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkRebellionXyzDragon
,
DarkRebellionXyzDragonEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StardustDragon
,
DefaultStardustDragonEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarlightRoad
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MagicDrain
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MagicDrain
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnJudgment
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MacroCosmos
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MacroCosmos
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
VanitysEmptiness
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
VanitysEmptiness
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DrowningMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
QuakingMirrorForce
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
}
}
...
@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -163,7 +163,7 @@ namespace WindBot.Game.AI.Decks
if
(
Card
==
null
)
if
(
Card
==
null
)
return
true
;
return
true
;
// Logger.DebugWriteLine(Card.Name);
// Logger.DebugWriteLine(Card.Name);
if
(
Card
.
Id
==
(
int
)
CardId
.
YosenjuKama2
)
if
(
Card
.
Id
==
CardId
.
YosenjuKama2
)
return
Card
.
ShouldDirectAttack
;
return
Card
.
ShouldDirectAttack
;
else
else
return
true
;
return
true
;
...
@@ -176,11 +176,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -176,11 +176,11 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Wind
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
YosenjuTsujik
))
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Wind
&&
Bot
.
HasInHand
(
CardId
.
YosenjuTsujik
))
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
attacker
.
RealPower
=
attacker
.
RealPower
+
1000
;
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
if
(
attacker
.
Id
==
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
attacker
.
RealPower
=
5000
;
}
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
...
@@ -192,37 +192,37 @@ namespace WindBot.Game.AI.Decks
...
@@ -192,37 +192,37 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
StarlightRoad
,
CardId
.
StarlightRoad
,
(
int
)
CardId
.
MagicDrain
,
CardId
.
MagicDrain
,
(
int
)
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
(
int
)
CardId
.
VanitysEmptiness
,
CardId
.
VanitysEmptiness
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
CardId
.
HarpiesFeatherDuster
,
(
int
)
CardId
.
DrowningMirrorForce
,
CardId
.
DrowningMirrorForce
,
(
int
)
CardId
.
QuakingMirrorForce
,
CardId
.
QuakingMirrorForce
,
(
int
)
CardId
.
SolemnStrike
,
CardId
.
SolemnStrike
,
(
int
)
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
(
int
)
CardId
.
MacroCosmos
,
CardId
.
MacroCosmos
,
(
int
)
CardId
.
CardOfDemise
CardId
.
CardOfDemise
});
});
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
YosenjuKama3
,
CardId
.
YosenjuKama3
,
(
int
)
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama1
,
(
int
)
CardId
.
YosenjuKama2
,
CardId
.
YosenjuKama2
,
(
int
)
CardId
.
StarlightRoad
,
CardId
.
StarlightRoad
,
(
int
)
CardId
.
MagicDrain
,
CardId
.
MagicDrain
,
(
int
)
CardId
.
VanitysEmptiness
,
CardId
.
VanitysEmptiness
,
(
int
)
CardId
.
HarpiesFeatherDuster
,
CardId
.
HarpiesFeatherDuster
,
(
int
)
CardId
.
DrowningMirrorForce
,
CardId
.
DrowningMirrorForce
,
(
int
)
CardId
.
QuakingMirrorForce
,
CardId
.
QuakingMirrorForce
,
(
int
)
CardId
.
SolemnStrike
,
CardId
.
SolemnStrike
,
(
int
)
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
(
int
)
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
(
int
)
CardId
.
MacroCosmos
,
CardId
.
MacroCosmos
,
(
int
)
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
});
});
}
}
return
true
;
return
true
;
...
@@ -275,9 +275,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -275,9 +275,9 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama1
,
(
int
)
CardId
.
YosenjuKama2
,
CardId
.
YosenjuKama2
,
(
int
)
CardId
.
YosenjuKama3
CardId
.
YosenjuKama3
});
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ZexalWeaponsExecutor.cs
View file @
f8f793ac
...
@@ -9,116 +9,116 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,116 +9,116 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Zexal Weapons"
,
"AI_ZexalWeapons"
)]
[
Deck
(
"Zexal Weapons"
,
"AI_ZexalWeapons"
)]
class
ZexalWeaponsExecutor
:
DefaultExecutor
class
ZexalWeaponsExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
CyberDragon
=
70095155
,
public
static
int
CyberDragon
=
70095155
;
ZwTornadoBringer
=
81471108
,
public
static
int
ZwTornadoBringer
=
81471108
;
ZwLightningBlade
=
45082499
,
public
static
int
ZwLightningBlade
=
45082499
;
ZwAsuraStrike
=
40941889
,
public
static
int
ZwAsuraStrike
=
40941889
;
SolarWindJammer
=
33911264
,
public
static
int
SolarWindJammer
=
33911264
;
PhotonTrasher
=
65367484
,
public
static
int
PhotonTrasher
=
65367484
;
StarDrawing
=
24610207
,
public
static
int
StarDrawing
=
24610207
;
SacredCrane
=
30914564
,
public
static
int
SacredCrane
=
30914564
;
Goblindbergh
=
25259669
,
public
static
int
Goblindbergh
=
25259669
;
Honest
=
37742478
,
public
static
int
Honest
=
37742478
;
Kagetokage
=
94656263
,
public
static
int
Kagetokage
=
94656263
;
HeroicChallengerExtraSword
=
34143852
,
public
static
int
HeroicChallengerExtraSword
=
34143852
;
TinGoldfish
=
18063928
,
public
static
int
TinGoldfish
=
18063928
;
SummonerMonk
=
423585
,
public
static
int
SummonerMonk
=
423585
;
InstantFusion
=
1845204
,
public
static
int
InstantFusion
=
1845204
;
Raigeki
=
12580477
,
public
static
int
Raigeki
=
12580477
;
ReinforcementOfTheArmy
=
32807846
,
public
static
int
ReinforcementOfTheArmy
=
32807846
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
MysticalSpaceTyphoon
=
5318639
,
public
static
int
MysticalSpaceTyphoon
=
5318639
;
BreakthroughSkill
=
78474168
,
public
static
int
BreakthroughSkill
=
78474168
;
SolemnWarning
=
84749824
,
public
static
int
SolemnWarning
=
84749824
;
SolemnStrike
=
40605147
,
public
static
int
SolemnStrike
=
40605147
;
XyzChangeTactics
=
11705261
,
public
static
int
XyzChangeTactics
=
11705261
;
FlameSwordsman
=
45231177
,
public
static
int
FlameSwordsman
=
45231177
;
DarkfireDragon
=
17881964
,
public
static
int
DarkfireDragon
=
17881964
;
GaiaDragonTheThunderCharger
=
91949988
,
public
static
int
GaiaDragonTheThunderCharger
=
91949988
;
ZwLionArms
=
60992364
,
public
static
int
ZwLionArms
=
60992364
;
AdreusKeeperOfArmageddon
=
94119480
,
public
static
int
AdreusKeeperOfArmageddon
=
94119480
;
Number61Volcasaurus
=
29669359
,
public
static
int
Number61Volcasaurus
=
29669359
;
GemKnightPearl
=
71594310
,
public
static
int
GemKnightPearl
=
71594310
;
Number39Utopia
=
84013237
,
public
static
int
Number39Utopia
=
84013237
;
NumberS39UtopiaOne
=
86532744
,
public
static
int
NumberS39UtopiaOne
=
86532744
;
NumberS39UtopiatheLightning
=
56832966
,
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
MaestrokeTheSymphonyDjinn
=
25341652
,
public
static
int
MaestrokeTheSymphonyDjinn
=
25341652
;
GagagaCowboy
=
12014404
public
static
int
GagagaCowboy
=
12014404
;
}
}
public
ZexalWeaponsExecutor
(
GameAI
ai
,
Duel
duel
)
public
ZexalWeaponsExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
// Quick spells
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
// Spell cards
// Spell cards
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Raigeki
,
DefaultRaigeki
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmy
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ReinforcementOfTheArmy
,
ReinforcementOfTheArmy
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
XyzChangeTactics
,
XyzChangeTactics
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
XyzChangeTactics
,
XyzChangeTactics
);
// XYZ summons
// XYZ summons
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number39Utopia
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number61Volcasaurus
,
Number61Volcasaurus
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number61Volcasaurus
,
Number61Volcasaurus
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
ZwLionArms
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
ZwLionArms
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
AdreusKeeperOfArmageddon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
AdreusKeeperOfArmageddon
);
// XYZ effects
// XYZ effects
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Number39Utopia
,
Number39Utopia
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Number39Utopia
,
Number39Utopia
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiaOne
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
,
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiatheLightning
,
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZwLionArms
,
ZwLionArms
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZwLionArms
,
ZwLionArms
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AdreusKeeperOfArmageddon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AdreusKeeperOfArmageddon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Number61Volcasaurus
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Number61Volcasaurus
);
// Weapons
// Weapons
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZwTornadoBringer
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZwTornadoBringer
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZwLightningBlade
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZwLightningBlade
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZwAsuraStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZwAsuraStrike
);
// Special summons
// Special summons
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PhotonTrasher
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
PhotonTrasher
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CyberDragon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
SolarWindJammer
,
SolarWindJammer
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
SolarWindJammer
,
SolarWindJammer
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InstantFusion
,
InstantFusion
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
InstantFusion
,
InstantFusion
);
// Normal summons
// Normal summons
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Goblindbergh
,
GoblindberghFirst
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Goblindbergh
,
GoblindberghFirst
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
TinGoldfish
,
GoblindberghFirst
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
TinGoldfish
,
GoblindberghFirst
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
StarDrawing
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
StarDrawing
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SacredCrane
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SacredCrane
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
HeroicChallengerExtraSword
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
HeroicChallengerExtraSword
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Goblindbergh
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Goblindbergh
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
TinGoldfish
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
TinGoldfish
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
SummonerMonk
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SummonerMonk
);
// Summons: Effects
// Summons: Effects
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Goblindbergh
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Goblindbergh
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
TinGoldfish
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TinGoldfish
,
GoblindberghEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Kagetokage
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Kagetokage
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SummonerMonk
,
SummonerMonkEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SummonerMonk
,
SummonerMonkEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Honest
,
Honest
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Honest
,
Honest
);
// Reposition
// Reposition
AddExecutor
(
ExecutorType
.
Repos
,
MonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
MonsterRepos
);
// Spummon GaiaDragonTheThunderCharger if Volcasaurus or ZwLionArms had been used
// Spummon GaiaDragonTheThunderCharger if Volcasaurus or ZwLionArms had been used
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GaiaDragonTheThunderCharger
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GaiaDragonTheThunderCharger
);
// Set and activate traps
// Set and activate traps
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BreakthroughSkill
,
DefaultBreakthroughSkill
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
BreakthroughSkill
,
DefaultBreakthroughSkill
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnWarning
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SolemnStrike
,
DefaultSolemnStrike
);
}
}
public
override
bool
OnSelectHand
()
public
override
bool
OnSelectHand
()
...
@@ -133,11 +133,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -133,11 +133,11 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Light
&&
Bot
.
HasInHand
(
(
int
)
CardId
.
Honest
))
if
(
attacker
.
Attribute
==
(
int
)
CardAttribute
.
Light
&&
Bot
.
HasInHand
(
CardId
.
Honest
))
attacker
.
RealPower
=
attacker
.
RealPower
+
defender
.
Attack
;
attacker
.
RealPower
=
attacker
.
RealPower
+
defender
.
Attack
;
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
if
(
attacker
.
Id
==
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
attacker
.
RealPower
=
5000
;
}
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
...
@@ -157,9 +157,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -157,9 +157,9 @@ namespace WindBot.Game.AI.Decks
private
bool
ZwLionArms
()
private
bool
ZwLionArms
()
{
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
ZwLionArms
,
0
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
ZwLionArms
,
0
))
return
true
;
return
true
;
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
ZwLionArms
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
ZwLionArms
,
1
))
return
!
Card
.
IsDisabled
();
return
!
Card
.
IsDisabled
();
return
false
;
return
false
;
}
}
...
@@ -168,11 +168,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -168,11 +168,11 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Goblindbergh
,
CardId
.
Goblindbergh
,
(
int
)
CardId
.
TinGoldfish
,
CardId
.
TinGoldfish
,
(
int
)
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
(
int
)
CardId
.
Kagetokage
,
CardId
.
Kagetokage
,
(
int
)
CardId
.
SacredCrane
CardId
.
SacredCrane
});
});
return
true
;
return
true
;
}
}
...
@@ -193,12 +193,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -193,12 +193,12 @@ namespace WindBot.Game.AI.Decks
}
}
if
(
count5
==
1
)
if
(
count5
==
1
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
FlameSwordsman
);
AI
.
SelectCard
(
CardId
.
FlameSwordsman
);
return
true
;
return
true
;
}
}
else
if
(
count4
==
1
)
else
if
(
count4
==
1
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
DarkfireDragon
);
AI
.
SelectCard
(
CardId
.
DarkfireDragon
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -234,33 +234,33 @@ namespace WindBot.Game.AI.Decks
...
@@ -234,33 +234,33 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
SacredCrane
,
CardId
.
SacredCrane
,
(
int
)
CardId
.
HeroicChallengerExtraSword
,
CardId
.
HeroicChallengerExtraSword
,
(
int
)
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
(
int
)
CardId
.
SummonerMonk
CardId
.
SummonerMonk
});
});
return
true
;
return
true
;
}
}
private
bool
SummonerMonkEffect
()
private
bool
SummonerMonkEffect
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
InstantFusion
)
||
if
(
Bot
.
HasInHand
(
CardId
.
InstantFusion
)
||
Bot
.
HasInHand
(
(
int
)
CardId
.
MysticalSpaceTyphoon
))
Bot
.
HasInHand
(
CardId
.
MysticalSpaceTyphoon
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
InstantFusion
,
CardId
.
InstantFusion
,
(
int
)
CardId
.
MysticalSpaceTyphoon
CardId
.
MysticalSpaceTyphoon
});
});
return
true
;
return
true
;
}
}
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
Goblindbergh
,
CardId
.
Goblindbergh
,
(
int
)
CardId
.
TinGoldfish
,
CardId
.
TinGoldfish
,
(
int
)
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
(
int
)
CardId
.
Kagetokage
,
CardId
.
Kagetokage
,
(
int
)
CardId
.
SacredCrane
CardId
.
SacredCrane
});
});
return
false
;
return
false
;
}
}
...
@@ -268,8 +268,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -268,8 +268,8 @@ namespace WindBot.Game.AI.Decks
private
bool
SolarWindJammer
()
private
bool
SolarWindJammer
()
{
{
if
(!
Bot
.
HasInHand
(
new
List
<
int
>
{
if
(!
Bot
.
HasInHand
(
new
List
<
int
>
{
(
int
)
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
(
int
)
CardId
.
InstantFusion
CardId
.
InstantFusion
}))
}))
return
false
;
return
false
;
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
...
@@ -278,7 +278,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -278,7 +278,7 @@ namespace WindBot.Game.AI.Decks
private
bool
MonsterRepos
()
private
bool
MonsterRepos
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
)
if
(
Card
.
Id
==
CardId
.
NumberS39UtopiatheLightning
)
return
false
;
return
false
;
return
base
.
DefaultMonsterRepos
();
return
base
.
DefaultMonsterRepos
();
}
}
...
...
Game/AI/Decks/ZoodiacExecutor.cs
View file @
f8f793ac
...
@@ -9,39 +9,39 @@ namespace WindBot.Game.AI.Decks
...
@@ -9,39 +9,39 @@ namespace WindBot.Game.AI.Decks
[
Deck
(
"Zoodiac"
,
"AI_Zoodiac"
,
"OutDated"
)]
[
Deck
(
"Zoodiac"
,
"AI_Zoodiac"
,
"OutDated"
)]
class
ZoodiacExecutor
:
DefaultExecutor
class
ZoodiacExecutor
:
DefaultExecutor
{
{
public
enum
CardId
public
class
CardId
{
{
JizukirutheStarDestroyingKaiju
=
63941210
,
public
static
int
JizukirutheStarDestroyingKaiju
=
63941210
;
GadarlatheMysteryDustKaiju
=
36956512
,
public
static
int
GadarlatheMysteryDustKaiju
=
36956512
;
GamecieltheSeaTurtleKaiju
=
55063751
,
public
static
int
GamecieltheSeaTurtleKaiju
=
55063751
;
RadiantheMultidimensionalKaiju
=
28674152
,
public
static
int
RadiantheMultidimensionalKaiju
=
28674152
;
KumongoustheStickyStringKaiju
=
29726552
,
public
static
int
KumongoustheStickyStringKaiju
=
29726552
;
PhotonThrasher
=
65367484
,
public
static
int
PhotonThrasher
=
65367484
;
Thoroughblade
=
77150143
,
public
static
int
Thoroughblade
=
77150143
;
Whiptail
=
31755044
,
public
static
int
Whiptail
=
31755044
;
Ratpier
=
78872731
,
public
static
int
Ratpier
=
78872731
;
AleisterTheInvoker
=
86120751
,
public
static
int
AleisterTheInvoker
=
86120751
;
HarpiesFeatherDuster
=
18144506
,
public
static
int
HarpiesFeatherDuster
=
18144506
;
DarkHole
=
53129443
,
public
static
int
DarkHole
=
53129443
;
Terraforming
=
73628505
,
public
static
int
Terraforming
=
73628505
;
Invocation
=
74063034
,
public
static
int
Invocation
=
74063034
;
MonsterReborn
=
83764718
,
public
static
int
MonsterReborn
=
83764718
;
InterruptedKaijuSlumber
=
99330325
,
public
static
int
InterruptedKaijuSlumber
=
99330325
;
ZoodiacBarrage
=
46060017
,
public
static
int
ZoodiacBarrage
=
46060017
;
FireFormationTenki
=
57103969
,
public
static
int
FireFormationTenki
=
57103969
;
MagicalMeltdown
=
47679935
,
public
static
int
MagicalMeltdown
=
47679935
;
ZoodiacCombo
=
73881652
,
public
static
int
ZoodiacCombo
=
73881652
;
InvokedMechaba
=
75286621
,
public
static
int
InvokedMechaba
=
75286621
;
InvokedMagellanica
=
48791583
,
public
static
int
InvokedMagellanica
=
48791583
;
NumberS39UtopiatheLightning
=
56832966
,
public
static
int
NumberS39UtopiatheLightning
=
56832966
;
Number39Utopia
=
84013237
,
public
static
int
Number39Utopia
=
84013237
;
DaigustoEmeral
=
581014
,
public
static
int
DaigustoEmeral
=
581014
;
Tigermortar
=
11510448
,
public
static
int
Tigermortar
=
11510448
;
Chakanine
=
41375811
,
public
static
int
Chakanine
=
41375811
;
Drident
=
48905153
,
public
static
int
Drident
=
48905153
;
Broadbull
=
85115440
public
static
int
Broadbull
=
85115440
;
}
}
bool
TigermortarSpsummoned
=
false
;
bool
TigermortarSpsummoned
=
false
;
...
@@ -53,65 +53,65 @@ namespace WindBot.Game.AI.Decks
...
@@ -53,65 +53,65 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
// Quick spells
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InterruptedKaijuSlumber
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
InterruptedKaijuSlumber
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DarkHole
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GamecieltheSeaTurtleKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GamecieltheSeaTurtleKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
KumongoustheStickyStringKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
KumongoustheStickyStringKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
GadarlatheMysteryDustKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GadarlatheMysteryDustKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
RadiantheMultidimensionalKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
RadiantheMultidimensionalKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
JizukirutheStarDestroyingKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
JizukirutheStarDestroyingKaiju
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Terraforming
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MagicalMeltdown
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MagicalMeltdown
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FireFormationTenki
,
FireFormationTenkiEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FireFormationTenki
,
FireFormationTenkiEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZoodiacBarrage
,
ZoodiacBarrageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZoodiacBarrage
,
ZoodiacBarrageEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
DaigustoEmeral
,
DaigustoEmeralEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DaigustoEmeral
,
DaigustoEmeralEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PhotonThrasher
,
PhotonThrasherSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
PhotonThrasher
,
PhotonThrasherSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Number39Utopia
,
DefaultNumberS39UtopiaTheLightningSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
NumberS39UtopiatheLightning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
InvokedMechaba
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
InvokedMechaba
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
RatpierMaterialEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
RatpierMaterialEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Drident
,
DridentEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Drident
,
DridentEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Broadbull
,
BroadbullEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Broadbull
,
BroadbullEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Tigermortar
,
TigermortarEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Tigermortar
,
TigermortarEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Chakanine
,
ChakanineEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Chakanine
,
ChakanineEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Chakanine
,
ChakanineSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Chakanine
,
ChakanineSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Tigermortar
,
TigermortarSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Tigermortar
,
TigermortarSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Broadbull
,
BroadbullSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Broadbull
,
BroadbullSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Drident
,
DridentSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Drident
,
DridentSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Ratpier
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Ratpier
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Ratpier
,
RatpierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Ratpier
,
RatpierEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Thoroughblade
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Thoroughblade
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Thoroughblade
,
RatpierEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Thoroughblade
,
RatpierEffect
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
AleisterTheInvoker
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
AleisterTheInvoker
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
AleisterTheInvoker
,
AleisterTheInvokerEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AleisterTheInvoker
,
AleisterTheInvokerEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
DaigustoEmeral
,
DaigustoEmeralSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
DaigustoEmeral
,
DaigustoEmeralSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
Broadbull
,
BroadbullXYZSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
Broadbull
,
BroadbullXYZSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
MonsterRebornEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
PhotonThrasher
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
PhotonThrasher
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
Whiptail
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
Whiptail
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Invocation
,
InvocationEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Invocation
,
InvocationEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Whiptail
,
WhiptailEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Whiptail
,
WhiptailEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
ZoodiacCombo
,
ZoodiacComboEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ZoodiacCombo
,
ZoodiacComboEffect
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
ZoodiacCombo
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
ZoodiacCombo
);
AddExecutor
(
ExecutorType
.
Repos
,
MonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
MonsterRepos
);
}
}
...
@@ -138,11 +138,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -138,11 +138,11 @@ namespace WindBot.Game.AI.Decks
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
if
(
defender
.
IsMonsterDangerous
()
||
defender
.
IsDefense
())
return
false
;
return
false
;
}
}
if
(!(
defender
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
))
if
(!(
defender
.
Id
==
CardId
.
NumberS39UtopiatheLightning
))
{
{
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand(
(int)
CardId.AleisterTheInvoker))
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand(CardId.AleisterTheInvoker))
// attacker.RealPower = attacker.RealPower + 1000;
// attacker.RealPower = attacker.RealPower + 1000;
if
(
attacker
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
(
int
)
CardId
.
Number39Utopia
))
if
(
attacker
.
Id
==
CardId
.
NumberS39UtopiatheLightning
&&
!
attacker
.
IsDisabled
()
&&
attacker
.
HasXyzMaterial
(
2
,
CardId
.
Number39Utopia
))
attacker
.
RealPower
=
5000
;
attacker
.
RealPower
=
5000
;
}
}
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
...
@@ -150,9 +150,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -150,9 +150,9 @@ namespace WindBot.Game.AI.Decks
private
bool
PhotonThrasherSummon
()
private
bool
PhotonThrasherSummon
()
{
{
return
Bot
.
HasInHand
(
(
int
)
CardId
.
AleisterTheInvoker
)
return
Bot
.
HasInHand
(
CardId
.
AleisterTheInvoker
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
Ratpier
)
&&
!
Bot
.
HasInHand
(
CardId
.
Ratpier
)
&&
!
Bot
.
HasInHand
(
(
int
)
CardId
.
Thoroughblade
);
&&
!
Bot
.
HasInHand
(
CardId
.
Thoroughblade
);
}
}
private
bool
AleisterTheInvokerEffect
()
private
bool
AleisterTheInvokerEffect
()
...
@@ -194,7 +194,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -194,7 +194,7 @@ namespace WindBot.Game.AI.Decks
}
}
if
(
mat
!=
null
)
if
(
mat
!=
null
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
InvokedMechaba
);
AI
.
SelectCard
(
CardId
.
InvokedMechaba
);
SelectAleisterInGrave
();
SelectAleisterInGrave
();
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
...
@@ -218,7 +218,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -218,7 +218,7 @@ namespace WindBot.Game.AI.Decks
}
}
if
(
mat
!=
null
)
if
(
mat
!=
null
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
InvokedMagellanica
);
AI
.
SelectCard
(
CardId
.
InvokedMagellanica
);
SelectAleisterInGrave
();
SelectAleisterInGrave
();
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectThirdCard
(
mat
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
...
@@ -233,7 +233,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -233,7 +233,7 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
materials1
=
Enemy
.
Graveyard
;
IList
<
ClientCard
>
materials1
=
Enemy
.
Graveyard
;
foreach
(
ClientCard
card
in
materials1
)
foreach
(
ClientCard
card
in
materials1
)
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
AleisterTheInvoker
)
if
(
card
.
Id
==
CardId
.
AleisterTheInvoker
)
{
{
AI
.
SelectNextCard
(
card
);
AI
.
SelectNextCard
(
card
);
return
;
return
;
...
@@ -241,28 +241,28 @@ namespace WindBot.Game.AI.Decks
...
@@ -241,28 +241,28 @@ namespace WindBot.Game.AI.Decks
}
}
foreach
(
ClientCard
card
in
materials0
)
foreach
(
ClientCard
card
in
materials0
)
{
{
if
(
card
.
Id
==
(
int
)
CardId
.
AleisterTheInvoker
)
if
(
card
.
Id
==
CardId
.
AleisterTheInvoker
)
{
{
AI
.
SelectNextCard
(
card
);
AI
.
SelectNextCard
(
card
);
return
;
return
;
}
}
}
}
AI
.
SelectNextCard
(
(
int
)
CardId
.
AleisterTheInvoker
);
AI
.
SelectNextCard
(
CardId
.
AleisterTheInvoker
);
}
}
private
bool
ChakanineSummon
()
private
bool
ChakanineSummon
()
{
{
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Ratpier
)
&&
!
ChakanineSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Ratpier
)
&&
!
ChakanineSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Ratpier
);
AI
.
SelectCard
(
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
ChakanineSpsummoned
=
true
;
ChakanineSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Broadbull
)
&&
!
ChakanineSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Broadbull
)
&&
!
ChakanineSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Broadbull
);
AI
.
SelectCard
(
CardId
.
Broadbull
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
ChakanineSpsummoned
=
true
;
ChakanineSpsummoned
=
true
;
...
@@ -273,21 +273,21 @@ namespace WindBot.Game.AI.Decks
...
@@ -273,21 +273,21 @@ namespace WindBot.Game.AI.Decks
private
bool
ChakanineEffect
()
private
bool
ChakanineEffect
()
{
{
if
(
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Whiptail
)
||
Bot
.
HasInGraveyard
((
int
)
CardId
.
Thoroughblade
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
Whiptail
)
||
Bot
.
HasInGraveyard
(
CardId
.
Thoroughblade
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Broadbull
,
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
CardId
.
Whiptail
});
});
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
CardId
.
Thoroughblade
});
});
return
true
;
return
true
;
}
}
...
@@ -296,38 +296,38 @@ namespace WindBot.Game.AI.Decks
...
@@ -296,38 +296,38 @@ namespace WindBot.Game.AI.Decks
private
bool
TigermortarSummon
()
private
bool
TigermortarSummon
()
{
{
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Chakanine
)
&&
!
TigermortarSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Chakanine
)
&&
!
TigermortarSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Chakanine
);
AI
.
SelectCard
(
CardId
.
Chakanine
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
TigermortarSpsummoned
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Ratpier
)
&&
!
TigermortarSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Ratpier
)
&&
!
TigermortarSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Ratpier
);
AI
.
SelectCard
(
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
TigermortarSpsummoned
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Thoroughblade
)
&&
!
TigermortarSpsummoned
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Thoroughblade
)
&&
!
TigermortarSpsummoned
&&
Bot
.
HasInGraveyard
(
new
List
<
int
>
&&
Bot
.
HasInGraveyard
(
new
List
<
int
>
{
{
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
Ratpier
CardId
.
Ratpier
}))
}))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Thoroughblade
);
AI
.
SelectCard
(
CardId
.
Thoroughblade
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
TigermortarSpsummoned
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Whiptail
)
&&
!
TigermortarSpsummoned
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Whiptail
)
&&
!
TigermortarSpsummoned
&&
Bot
.
HasInGraveyard
(
(
int
)
CardId
.
Ratpier
))
&&
Bot
.
HasInGraveyard
(
CardId
.
Ratpier
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Whiptail
);
AI
.
SelectCard
(
CardId
.
Whiptail
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
TigermortarSpsummoned
=
true
;
TigermortarSpsummoned
=
true
;
return
true
;
return
true
;
...
@@ -337,48 +337,48 @@ namespace WindBot.Game.AI.Decks
...
@@ -337,48 +337,48 @@ namespace WindBot.Game.AI.Decks
private
bool
TigermortarEffect
()
private
bool
TigermortarEffect
()
{
{
//if (Card.HasXyzMaterial(
(int)CardId.Ratpier) || !Bot.HasInGraveyard((int)
CardId.Ratpier))
//if (Card.HasXyzMaterial(
CardId.Ratpier) || !Bot.HasInGraveyard(
CardId.Ratpier))
// return false;
// return false;
AI
.
SelectCard
(
(
int
)
CardId
.
Chakanine
);
AI
.
SelectCard
(
CardId
.
Chakanine
);
AI
.
SelectNextCard
(
(
int
)
CardId
.
Tigermortar
);
AI
.
SelectNextCard
(
CardId
.
Tigermortar
);
AI
.
SelectThirdCard
(
new
[]
AI
.
SelectThirdCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
CardId
.
Thoroughblade
});
});
return
true
;
return
true
;
}
}
private
bool
BroadbullSummon
()
private
bool
BroadbullSummon
()
{
{
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Tigermortar
)
&&
!
BroadbullSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Tigermortar
)
&&
!
BroadbullSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Tigermortar
);
AI
.
SelectCard
(
CardId
.
Tigermortar
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
BroadbullSpsummoned
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Chakanine
)
&&
!
BroadbullSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Chakanine
)
&&
!
BroadbullSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Chakanine
);
AI
.
SelectCard
(
CardId
.
Chakanine
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
BroadbullSpsummoned
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Ratpier
)
&&
!
BroadbullSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Ratpier
)
&&
!
BroadbullSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Ratpier
);
AI
.
SelectCard
(
CardId
.
Ratpier
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
BroadbullSpsummoned
=
true
;
BroadbullSpsummoned
=
true
;
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInMonstersZone
(
(
int
)
CardId
.
Thoroughblade
)
&&
!
BroadbullSpsummoned
)
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Thoroughblade
)
&&
!
BroadbullSpsummoned
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Thoroughblade
);
AI
.
SelectCard
(
CardId
.
Thoroughblade
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
BroadbullSpsummoned
=
true
;
BroadbullSpsummoned
=
true
;
...
@@ -391,16 +391,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -391,16 +391,16 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
CardId
.
Chakanine
,
(
int
)
CardId
.
Drident
,
CardId
.
Drident
,
(
int
)
CardId
.
AleisterTheInvoker
,
CardId
.
AleisterTheInvoker
,
(
int
)
CardId
.
PhotonThrasher
CardId
.
PhotonThrasher
});
});
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
Whiptail
)
&&
!
Bot
.
HasInHand
((
int
)
CardId
.
Ratpier
))
if
(
Bot
.
HasInHand
(
CardId
.
Whiptail
)
&&
!
Bot
.
HasInHand
(
CardId
.
Ratpier
))
AI
.
SelectNextCard
(
(
int
)
CardId
.
Ratpier
);
AI
.
SelectNextCard
(
CardId
.
Ratpier
);
else
else
AI
.
SelectNextCard
(
(
int
)
CardId
.
Whiptail
);
AI
.
SelectNextCard
(
CardId
.
Whiptail
);
return
true
;
return
true
;
}
}
...
@@ -410,10 +410,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -410,10 +410,10 @@ namespace WindBot.Game.AI.Decks
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
PhotonThrasher
,
CardId
.
PhotonThrasher
,
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
AleisterTheInvoker
CardId
.
AleisterTheInvoker
});
});
return
true
;
return
true
;
}
}
...
@@ -422,17 +422,17 @@ namespace WindBot.Game.AI.Decks
...
@@ -422,17 +422,17 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Broadbull
,
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
CardId
.
Thoroughblade
});
});
return
true
;
return
true
;
}
}
private
bool
RatpierMaterialEffect
()
private
bool
RatpierMaterialEffect
()
{
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
(
int
)
CardId
.
Ratpier
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
(
CardId
.
Ratpier
,
1
))
{
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
...
@@ -450,7 +450,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -450,7 +450,7 @@ namespace WindBot.Game.AI.Decks
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
List
<
ClientCard
>
monsters
=
Bot
.
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
foreach
(
ClientCard
monster
in
monsters
)
{
{
if
(
monster
.
IsFaceup
()
&&
monster
.
Id
==
(
int
)
CardId
.
Drident
&&
!
monster
.
HasXyzMaterial
())
if
(
monster
.
IsFaceup
()
&&
monster
.
Id
==
CardId
.
Drident
&&
!
monster
.
HasXyzMaterial
())
{
{
target
=
monster
;
target
=
monster
;
break
;
break
;
...
@@ -460,7 +460,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -460,7 +460,7 @@ namespace WindBot.Game.AI.Decks
{
{
foreach (ClientCard monster in monsters)
foreach (ClientCard monster in monsters)
{
{
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id !=
(int)
CardId.DaigustoEmeral && !monster.HasXyzMaterial())
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != CardId.DaigustoEmeral && !monster.HasXyzMaterial())
{
{
target = monster;
target = monster;
break;
break;
...
@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -471,7 +471,7 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Drident
CardId
.
Drident
});
});
}
}
WhiptailEffectCount
++;
WhiptailEffectCount
++;
...
@@ -482,9 +482,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -482,9 +482,9 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
ZoodiacCombo
,
CardId
.
ZoodiacCombo
,
(
int
)
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
(
int
)
CardId
.
ZoodiacBarrage
CardId
.
ZoodiacBarrage
});
});
return
true
;
return
true
;
}
}
...
@@ -498,12 +498,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -498,12 +498,12 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Broadbull
,
CardId
.
Broadbull
,
(
int
)
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
CardId
.
Chakanine
,
(
int
)
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
CardId
.
Whiptail
});
});
AI
.
SelectNextCard
(
target
);
AI
.
SelectNextCard
(
target
);
return
true
;
return
true
;
...
@@ -518,29 +518,29 @@ namespace WindBot.Game.AI.Decks
...
@@ -518,29 +518,29 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
AleisterTheInvoker
,
CardId
.
AleisterTheInvoker
,
(
int
)
CardId
.
Whiptail
CardId
.
Whiptail
});
});
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
DaigustoEmeral
CardId
.
DaigustoEmeral
});
});
return
true
;
return
true
;
}
}
private
bool
FireFormationTenkiEffect
()
private
bool
FireFormationTenkiEffect
()
{
{
if
(
Bot
.
HasInHand
(
(
int
)
CardId
.
ZoodiacBarrage
)
if
(
Bot
.
HasInHand
(
CardId
.
ZoodiacBarrage
)
||
Bot
.
HasInSpellZone
(
(
int
)
CardId
.
ZoodiacBarrage
)
||
Bot
.
HasInSpellZone
(
CardId
.
ZoodiacBarrage
)
||
Bot
.
HasInHand
(
(
int
)
CardId
.
Ratpier
))
||
Bot
.
HasInHand
(
CardId
.
Ratpier
))
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Whiptail
);
AI
.
SelectCard
(
CardId
.
Whiptail
);
}
}
else
else
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Ratpier
);
AI
.
SelectCard
(
CardId
.
Ratpier
);
}
}
AI
.
SelectYesNo
(
true
);
AI
.
SelectYesNo
(
true
);
return
true
;
return
true
;
...
@@ -551,20 +551,20 @@ namespace WindBot.Game.AI.Decks
...
@@ -551,20 +551,20 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
IList
<
ClientCard
>
spells
=
Bot
.
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
foreach
(
ClientCard
spell
in
spells
)
{
{
if
(
spell
.
Id
==
(
int
)
CardId
.
ZoodiacBarrage
&&
!
Card
.
Equals
(
spell
))
if
(
spell
.
Id
==
CardId
.
ZoodiacBarrage
&&
!
Card
.
Equals
(
spell
))
return
false
;
return
false
;
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
FireFormationTenki
,
CardId
.
FireFormationTenki
,
(
int
)
CardId
.
MagicalMeltdown
,
CardId
.
MagicalMeltdown
,
(
int
)
CardId
.
ZoodiacBarrage
CardId
.
ZoodiacBarrage
});
});
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
Thoroughblade
CardId
.
Thoroughblade
});
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
...
@@ -576,12 +576,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -576,12 +576,12 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
if
(
Card
.
Location
!=
CardLocation
.
Grave
)
if
(
Card
.
Location
!=
CardLocation
.
Grave
)
{
{
AI
.
SelectCard
(
(
int
)
CardId
.
Drident
);
AI
.
SelectCard
(
CardId
.
Drident
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
{
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Thoroughblade
CardId
.
Thoroughblade
});
});
}
}
return
true
;
return
true
;
...
@@ -591,21 +591,21 @@ namespace WindBot.Game.AI.Decks
...
@@ -591,21 +591,21 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
{
(
int
)
CardId
.
Ratpier
,
CardId
.
Ratpier
,
(
int
)
CardId
.
Whiptail
,
CardId
.
Whiptail
,
(
int
)
CardId
.
InvokedMechaba
,
CardId
.
InvokedMechaba
,
(
int
)
CardId
.
JizukirutheStarDestroyingKaiju
,
CardId
.
JizukirutheStarDestroyingKaiju
,
(
int
)
CardId
.
InvokedMagellanica
,
CardId
.
InvokedMagellanica
,
(
int
)
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
(
int
)
CardId
.
Chakanine
,
CardId
.
Chakanine
,
(
int
)
CardId
.
Broadbull
CardId
.
Broadbull
});
});
return
true
;
return
true
;
}
}
private
bool
MonsterRepos
()
private
bool
MonsterRepos
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
)
if
(
Card
.
Id
==
CardId
.
NumberS39UtopiatheLightning
)
return
false
;
return
false
;
return
base
.
DefaultMonsterRepos
();
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