Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
W
windbot
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
alstroemeria-silentlove
windbot
Commits
494fe10b
Commit
494fe10b
authored
Sep 01, 2018
by
mercury233
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://github.com/IceYGO/windbot
parents
43086945
98971329
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
631 additions
and
1025 deletions
+631
-1025
Game/AI/AIFunctions.cs
Game/AI/AIFunctions.cs
+2
-1
Game/AI/Decks/AltergeistExecutor.cs
Game/AI/Decks/AltergeistExecutor.cs
+68
-64
Game/AI/Decks/BlueEyesExecutor.cs
Game/AI/Decks/BlueEyesExecutor.cs
+47
-66
Game/AI/Decks/BlueEyesMaxDragonExecutor.cs
Game/AI/Decks/BlueEyesMaxDragonExecutor.cs
+9
-13
Game/AI/Decks/DarkMagicianExecutor.cs
Game/AI/Decks/DarkMagicianExecutor.cs
+47
-131
Game/AI/Decks/DragunityExecutor.cs
Game/AI/Decks/DragunityExecutor.cs
+2
-3
Game/AI/Decks/GrenMajuThunderBoarderExecutor.cs
Game/AI/Decks/GrenMajuThunderBoarderExecutor.cs
+12
-19
Game/AI/Decks/LightswornExecutor.cs
Game/AI/Decks/LightswornExecutor.cs
+19
-25
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
+43
-94
Game/AI/Decks/PhantasmExecutor.cs
Game/AI/Decks/PhantasmExecutor.cs
+51
-61
Game/AI/Decks/QliphortExecutor.cs
Game/AI/Decks/QliphortExecutor.cs
+13
-19
Game/AI/Decks/RainbowExecutor.cs
Game/AI/Decks/RainbowExecutor.cs
+14
-21
Game/AI/Decks/Rank5Executor.cs
Game/AI/Decks/Rank5Executor.cs
+17
-19
Game/AI/Decks/ST1732Executor.cs
Game/AI/Decks/ST1732Executor.cs
+30
-31
Game/AI/Decks/SkyStrikerExecutor.cs
Game/AI/Decks/SkyStrikerExecutor.cs
+9
-21
Game/AI/Decks/ToadallyAwesomeExecutor.cs
Game/AI/Decks/ToadallyAwesomeExecutor.cs
+79
-90
Game/AI/Decks/TrickstarExecutor.cs
Game/AI/Decks/TrickstarExecutor.cs
+30
-230
Game/AI/Decks/YosenjuExecutor.cs
Game/AI/Decks/YosenjuExecutor.cs
+6
-13
Game/AI/Decks/ZexalWeaponsExecutor.cs
Game/AI/Decks/ZexalWeaponsExecutor.cs
+15
-18
Game/AI/Decks/ZoodiacExecutor.cs
Game/AI/Decks/ZoodiacExecutor.cs
+56
-72
Game/AI/DefaultExecutor.cs
Game/AI/DefaultExecutor.cs
+10
-14
Game/ClientField.cs
Game/ClientField.cs
+1
-0
Game/GameAI.cs
Game/GameAI.cs
+26
-0
Game/GameBehavior.cs
Game/GameBehavior.cs
+25
-0
No files found.
Game/AI/AIFunctions.cs
View file @
494fe10b
...
@@ -74,7 +74,8 @@ namespace WindBot.Game.AI
...
@@ -74,7 +74,8 @@ namespace WindBot.Game.AI
public
bool
IsAllEnemyBetterThanValue
(
int
value
,
bool
onlyATK
)
public
bool
IsAllEnemyBetterThanValue
(
int
value
,
bool
onlyATK
)
{
{
return
Enemy
.
MonsterZone
.
GetMonsters
()
List
<
ClientCard
>
monsters
=
Enemy
.
MonsterZone
.
GetMonsters
();
return
monsters
.
Count
>
0
&&
monsters
.
All
(
card
=>
card
.
GetDefensePower
()
>
value
&&
(!
onlyATK
||
card
.
IsAttack
()));
.
All
(
card
=>
card
.
GetDefensePower
()
>
value
&&
(!
onlyATK
||
card
.
IsAttack
()));
}
}
...
...
Game/AI/Decks/AltergeistExecutor.cs
View file @
494fe10b
This diff is collapsed.
Click to expand it.
Game/AI/Decks/BlueEyesExecutor.cs
View file @
494fe10b
...
@@ -177,41 +177,38 @@ namespace WindBot.Game.AI.Decks
...
@@ -177,41 +177,38 @@ namespace WindBot.Game.AI.Decks
private
bool
DragonShrineEffect
()
private
bool
DragonShrineEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
DragonSpiritOfWhite
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
WhiteDragon
,
CardId
.
WhiteDragon
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfLegend
CardId
.
WhiteStoneOfLegend
);
});
if
(!
Bot
.
HasInHand
(
CardId
.
WhiteDragon
))
if
(!
Bot
.
HasInHand
(
CardId
.
WhiteDragon
))
{
{
AI
.
SelectNextCard
(
CardId
.
WhiteStoneOfLegend
);
AI
.
SelectNextCard
(
CardId
.
WhiteStoneOfLegend
);
}
}
else
else
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
WhiteStoneOfLegend
CardId
.
WhiteStoneOfLegend
}
);
);
}
}
return
true
;
return
true
;
}
}
private
bool
MelodyOfAwakeningDragonEffect
()
private
bool
MelodyOfAwakeningDragonEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfLegend
,
CardId
.
GalaxyCyclone
,
CardId
.
GalaxyCyclone
,
CardId
.
EffectVeiler
,
CardId
.
EffectVeiler
,
CardId
.
TradeIn
,
CardId
.
TradeIn
,
CardId
.
SageWithEyesOfBlue
CardId
.
SageWithEyesOfBlue
);
});
return
true
;
return
true
;
}
}
...
@@ -251,11 +248,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -251,11 +248,7 @@ namespace WindBot.Game.AI.Decks
}
}
else
if
(!
Bot
.
HasInHand
(
CardId
.
WhiteDragon
)
||
!
Bot
.
HasInHand
(
CardId
.
AlternativeWhiteDragon
))
else
if
(!
Bot
.
HasInHand
(
CardId
.
WhiteDragon
)
||
!
Bot
.
HasInHand
(
CardId
.
AlternativeWhiteDragon
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
WhiteDragon
,
CardId
.
AlternativeWhiteDragon
);
{
CardId
.
WhiteDragon
,
CardId
.
AlternativeWhiteDragon
});
return
true
;
return
true
;
}
}
else
else
...
@@ -348,12 +341,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -348,12 +341,11 @@ namespace WindBot.Game.AI.Decks
{
{
return
false
;
return
false
;
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
EffectVeiler
,
CardId
.
EffectVeiler
,
CardId
.
WhiteStoneOfLegend
CardId
.
WhiteStoneOfLegend
);
});
return
true
;
return
true
;
}
}
...
@@ -381,11 +373,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -381,11 +373,7 @@ namespace WindBot.Game.AI.Decks
{
{
return
false
;
return
false
;
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfAncients
);
{
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfAncients
});
if
(
Enemy
.
GetSpellCount
()
>
0
)
if
(
Enemy
.
GetSpellCount
()
>
0
)
{
{
AI
.
SelectNextCard
(
CardId
.
DragonSpiritOfWhite
);
AI
.
SelectNextCard
(
CardId
.
DragonSpiritOfWhite
);
...
@@ -730,20 +718,18 @@ namespace WindBot.Game.AI.Decks
...
@@ -730,20 +718,18 @@ namespace WindBot.Game.AI.Decks
private
bool
GalaxyEyesDarkMatterDragonEffect
()
private
bool
GalaxyEyesDarkMatterDragonEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfLegend
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
WhiteDragon
CardId
.
WhiteDragon
);
});
AI
.
SelectNextCard
(
AI
.
SelectNextCard
(
new
[]
CardId
.
WhiteStoneOfAncients
,
{
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteDragon
CardId
.
DragonSpiritOfWhite
,
);
CardId
.
WhiteDragon
});
return
true
;
return
true
;
}
}
...
@@ -822,11 +808,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -822,11 +808,7 @@ namespace WindBot.Game.AI.Decks
private
bool
SylvanPrincesspriteEffect
()
private
bool
SylvanPrincesspriteEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfAncients
);
{
CardId
.
WhiteStoneOfLegend
,
CardId
.
WhiteStoneOfAncients
});
return
true
;
return
true
;
}
}
...
@@ -858,17 +840,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -858,17 +840,16 @@ namespace WindBot.Game.AI.Decks
if
(
attack
-
defence
>
Enemy
.
LifePoints
)
if
(
attack
-
defence
>
Enemy
.
LifePoints
)
return
false
;
return
false
;
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
BlueEyesSpiritDragon
,
CardId
.
BlueEyesSpiritDragon
,
CardId
.
HopeHarbingerDragonTitanicGalaxy
,
CardId
.
HopeHarbingerDragonTitanicGalaxy
,
CardId
.
AlternativeWhiteDragon
,
CardId
.
AlternativeWhiteDragon
,
CardId
.
WhiteDragon
,
CardId
.
WhiteDragon
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
DragonSpiritOfWhite
,
CardId
.
AzureEyesSilverDragon
,
CardId
.
AzureEyesSilverDragon
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfAncients
,
CardId
.
WhiteStoneOfLegend
CardId
.
WhiteStoneOfLegend
);
});
SoulChargeUsed
=
true
;
SoulChargeUsed
=
true
;
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/BlueEyesMaxDragonExecutor.cs
View file @
494fe10b
...
@@ -133,28 +133,28 @@ namespace WindBot.Game.AI.Decks
...
@@ -133,28 +133,28 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
CardId
.
MaxxC
);
AI
.
SelectCard
(
CardId
.
MaxxC
);
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
}
}
if
(
lastCard
.
IsCode
(
CardId
.
LockBird
))
if
(
lastCard
.
IsCode
(
CardId
.
LockBird
))
{
{
AI
.
SelectCard
(
CardId
.
LockBird
);
AI
.
SelectCard
(
CardId
.
LockBird
);
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
}
}
if
(
lastCard
.
IsCode
(
CardId
.
Ghost
))
if
(
lastCard
.
IsCode
(
CardId
.
Ghost
))
{
{
AI
.
SelectCard
(
CardId
.
Ghost
);
AI
.
SelectCard
(
CardId
.
Ghost
);
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
}
}
if
(
lastCard
.
IsCode
(
CardId
.
AshBlossom
))
if
(
lastCard
.
IsCode
(
CardId
.
AshBlossom
))
{
{
AI
.
SelectCard
(
CardId
.
AshBlossom
);
AI
.
SelectCard
(
CardId
.
AshBlossom
);
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
TheMelodyOfAwakeningDragon
))
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
}
}
}
}
...
@@ -184,7 +184,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -184,7 +184,7 @@ namespace WindBot.Game.AI.Decks
if
(
Bot
.
HasInMonstersZone
(
CardId
.
BlueEyesChaosMaxDragon
,
true
)
&&
Duel
.
Phase
==
DuelPhase
.
Main1
&&
if
(
Bot
.
HasInMonstersZone
(
CardId
.
BlueEyesChaosMaxDragon
,
true
)
&&
Duel
.
Phase
==
DuelPhase
.
Main1
&&
(
Bot
.
HasInMonstersZone
(
CardId
.
DeviritualTalismandra
)
||
Bot
.
HasInMonstersZone
(
CardId
.
DevirrtualCandoll
)))
(
Bot
.
HasInMonstersZone
(
CardId
.
DeviritualTalismandra
)
||
Bot
.
HasInMonstersZone
(
CardId
.
DevirrtualCandoll
)))
{
{
AI
.
SelectCard
(
new
[]
{
CardId
.
DevirrtualCandoll
,
CardId
.
DeviritualTalismandra
}
);
AI
.
SelectCard
(
CardId
.
DevirrtualCandoll
,
CardId
.
DeviritualTalismandra
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -195,13 +195,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -195,13 +195,13 @@ namespace WindBot.Game.AI.Decks
if
(
TheMelody_count
>=
2
&&
Bot
.
GetRemainingCount
(
CardId
.
BlueEyesChaosMaxDragon
,
3
)>
0
)
if
(
TheMelody_count
>=
2
&&
Bot
.
GetRemainingCount
(
CardId
.
BlueEyesChaosMaxDragon
,
3
)>
0
)
{
{
AI
.
SelectCard
(
CardId
.
TheMelodyOfAwakeningDragon
);
AI
.
SelectCard
(
CardId
.
TheMelodyOfAwakeningDragon
);
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
true
;
return
true
;
}
}
if
(
Bot
.
HasInHand
(
CardId
.
BlueEyesWhiteDragon
)
&&
Bot
.
GetRemainingCount
(
CardId
.
BlueEyesChaosMaxDragon
,
3
)
>
0
)
if
(
Bot
.
HasInHand
(
CardId
.
BlueEyesWhiteDragon
)
&&
Bot
.
GetRemainingCount
(
CardId
.
BlueEyesChaosMaxDragon
,
3
)
>
0
)
{
{
AI
.
SelectCard
(
CardId
.
BlueEyesWhiteDragon
);
AI
.
SelectCard
(
CardId
.
BlueEyesWhiteDragon
);
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -225,7 +225,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -225,7 +225,7 @@ namespace WindBot.Game.AI.Decks
if
(!
m
.
IsCode
(
CardId
.
AdvancedRitualArt
))
if
(!
m
.
IsCode
(
CardId
.
AdvancedRitualArt
))
AI
.
SelectCard
(
m
);
AI
.
SelectCard
(
m
);
}
}
AI
.
SelectNextCard
(
new
[]
{
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
}
);
AI
.
SelectNextCard
(
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesChaosMaxDragon
,
CardId
.
BlueEyesAlternativeWhiteDragon
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -445,11 +445,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -445,11 +445,7 @@ namespace WindBot.Game.AI.Decks
private
bool
MissusRadianteff
()
private
bool
MissusRadianteff
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
MaxxC
,
CardId
.
MissusRadiant
);
{
CardId
.
MaxxC
,
CardId
.
MissusRadiant
,
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/DarkMagicianExecutor.cs
View file @
494fe10b
This diff is collapsed.
Click to expand it.
Game/AI/Decks/DragunityExecutor.cs
View file @
494fe10b
...
@@ -243,12 +243,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -243,12 +243,11 @@ namespace WindBot.Game.AI.Decks
private
bool
FoolishBurial
()
private
bool
FoolishBurial
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
DragunityPhalanx
,
CardId
.
DragunityPhalanx
,
CardId
.
AssaultBeast
,
CardId
.
AssaultBeast
,
CardId
.
StardustDragonAssaultMode
CardId
.
StardustDragonAssaultMode
}
);
);
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/GrenMajuThunderBoarderExecutor.cs
View file @
494fe10b
...
@@ -308,41 +308,38 @@ namespace WindBot.Game.AI.Decks
...
@@ -308,41 +308,38 @@ namespace WindBot.Game.AI.Decks
count
++;
count
++;
}
}
if
(
AI
.
Utils
.
GetBestEnemyMonster
()!=
null
&&
AI
.
Utils
.
GetBestEnemyMonster
().
Attack
>=
1900
)
if
(
AI
.
Utils
.
GetBestEnemyMonster
()!=
null
&&
AI
.
Utils
.
GetBestEnemyMonster
().
Attack
>=
1900
)
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
EaterOfMillions
,
CardId
.
EaterOfMillions
,
CardId
.
PotOfDesires
,
CardId
.
PotOfDesires
,
CardId
.
GrenMajuDaEizo
,
CardId
.
GrenMajuDaEizo
,
CardId
.
InspectBoarder
,
CardId
.
InspectBoarder
,
CardId
.
ThunderKingRaiOh
,
CardId
.
ThunderKingRaiOh
,
CardId
.
Scapegoat
,
CardId
.
Scapegoat
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
CardId
.
SolemStrike
,
CardId
.
SolemStrike
,
CardId
.
InfiniteImpermanence
,
CardId
.
InfiniteImpermanence
}
);
);
if
(
count
==
0
)
if
(
count
==
0
)
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
PotOfDesires
,
CardId
.
PotOfDesires
,
CardId
.
InspectBoarder
,
CardId
.
InspectBoarder
,
CardId
.
ThunderKingRaiOh
,
CardId
.
ThunderKingRaiOh
,
CardId
.
EaterOfMillions
,
CardId
.
EaterOfMillions
,
CardId
.
GrenMajuDaEizo
,
CardId
.
GrenMajuDaEizo
,
CardId
.
Scapegoat
,
CardId
.
Scapegoat
}
);
);
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
PotOfDesires
,
CardId
.
PotOfDesires
,
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
CardId
.
SolemStrike
,
CardId
.
SolemStrike
,
CardId
.
InfiniteImpermanence
,
CardId
.
InfiniteImpermanence
,
CardId
.
Scapegoat
,
CardId
.
Scapegoat
}
);
);
}
}
return
true
;
return
true
;
}
}
...
@@ -572,11 +569,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -572,11 +569,7 @@ namespace WindBot.Game.AI.Decks
private
bool
MissusRadianteff
()
private
bool
MissusRadianteff
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
MaxxC
,
CardId
.
MissusRadiant
);
{
CardId
.
MaxxC
,
CardId
.
MissusRadiant
,
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/LightswornExecutor.cs
View file @
494fe10b
...
@@ -139,26 +139,24 @@ namespace WindBot.Game.AI.Decks
...
@@ -139,26 +139,24 @@ namespace WindBot.Game.AI.Decks
if
(!
Bot
.
HasInHand
(
CardId
.
Lumina
))
if
(!
Bot
.
HasInHand
(
CardId
.
Lumina
))
AI
.
SelectCard
(
CardId
.
Lumina
);
AI
.
SelectCard
(
CardId
.
Lumina
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Raiden
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
Lumina
,
CardId
.
Minerva
,
CardId
.
Minerva
,
CardId
.
Lyla
CardId
.
Lyla
}
);
);
return
true
;
return
true
;
}
}
private
bool
SolarRechargeEffect
()
private
bool
SolarRechargeEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Wulf
,
CardId
.
Wulf
,
CardId
.
Felis
,
CardId
.
Felis
,
CardId
.
Minerva
,
CardId
.
Minerva
,
CardId
.
Lyla
,
CardId
.
Lyla
,
CardId
.
Raiden
CardId
.
Raiden
);
});
return
true
;
return
true
;
}
}
...
@@ -174,14 +172,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -174,14 +172,13 @@ namespace WindBot.Game.AI.Decks
private
bool
GoblindberghEffect
()
private
bool
GoblindberghEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Felis
,
CardId
.
Felis
,
CardId
.
Wulf
,
CardId
.
Wulf
,
CardId
.
Raiden
,
CardId
.
Raiden
,
CardId
.
PerformageTrickClown
,
CardId
.
PerformageTrickClown
,
CardId
.
ThousandBlades
CardId
.
ThousandBlades
);
});
return
true
;
return
true
;
}
}
...
@@ -197,17 +194,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -197,17 +194,14 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Wulf
,
CardId
.
Wulf
,
CardId
.
Felis
,
CardId
.
Felis
,
CardId
.
Minerva
,
CardId
.
Minerva
,
CardId
.
ThousandBlades
CardId
.
ThousandBlades
}
);
);
}
}
AI
.
SelectNextCard
(
new
[]
{
AI
.
SelectNextCard
(
CardId
.
Raiden
,
CardId
.
Felis
);
CardId
.
Raiden
,
CardId
.
Felis
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
View file @
494fe10b
...
@@ -446,27 +446,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -446,27 +446,11 @@ namespace WindBot.Game.AI.Decks
};
};
if
(
Bot
.
HasInGraveyard
(
targets
))
if
(
Bot
.
HasInGraveyard
(
targets
))
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
GiantRex
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
OvertexCoatls
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
SouleatingOviraptor
,
CardId
.
UltimateConductorTytanno
);
CardId
.
GiantRex
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
OvertexCoatls
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
SouleatingOviraptor
,
CardId
.
UltimateConductorTytanno
,
});
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
GiantRex
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
OvertexCoatls
,
CardId
.
SouleatingOviraptor
,
CardId
.
UltimateConductorTytanno
);
CardId
.
GiantRex
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
OvertexCoatls
,
CardId
.
SouleatingOviraptor
,
CardId
.
UltimateConductorTytanno
,
});
}
}
IList
<
int
>
targets2
=
new
[]
{
IList
<
int
>
targets2
=
new
[]
{
CardId
.
GiantRex
,
CardId
.
GiantRex
,
...
@@ -479,42 +463,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -479,42 +463,10 @@ namespace WindBot.Game.AI.Decks
};
};
if
(
Bot
.
HasInGraveyard
(
targets
))
if
(
Bot
.
HasInGraveyard
(
targets
))
{
{
AI
.
SelectNextCard
(
new
[]
{
AI
.
SelectNextCard
(
CardId
.
ShaddollBeast
,
CardId
.
ShaddollDragon
,
CardId
.
KeeperOfDragonicMagic
,
CardId
.
ShaddollSquamata
,
CardId
.
SouleatingOviraptor
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
ShaddollHedgehog
,
CardId
.
AshBlossom
,
CardId
.
GhostOgre
,
CardId
.
ShaddollFalco
,
CardId
.
MaxxC
,
CardId
.
PlaguespreaderZombie
,
CardId
.
GlowUpBulb
,
CardId
.
FairyTailSnow
);
CardId
.
ShaddollBeast
,
CardId
.
ShaddollDragon
,
CardId
.
KeeperOfDragonicMagic
,
CardId
.
ShaddollSquamata
,
CardId
.
SouleatingOviraptor
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
ShaddollHedgehog
,
CardId
.
AshBlossom
,
CardId
.
GhostOgre
,
CardId
.
ShaddollFalco
,
CardId
.
MaxxC
,
CardId
.
PlaguespreaderZombie
,
CardId
.
GlowUpBulb
,
CardId
.
FairyTailSnow
,
});
}
}
else
else
AI
.
SelectNextCard
(
new
[]
{
AI
.
SelectNextCard
(
CardId
.
ShaddollBeast
,
CardId
.
ShaddollDragon
,
CardId
.
KeeperOfDragonicMagic
,
CardId
.
ShaddollSquamata
,
CardId
.
SouleatingOviraptor
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
ShaddollHedgehog
,
CardId
.
AshBlossom
,
CardId
.
GhostOgre
,
CardId
.
ShaddollFalco
,
CardId
.
MaxxC
,
CardId
.
PlaguespreaderZombie
,
CardId
.
GlowUpBulb
,
CardId
.
FairyTailSnow
);
CardId
.
ShaddollBeast
,
CardId
.
ShaddollDragon
,
CardId
.
KeeperOfDragonicMagic
,
CardId
.
ShaddollSquamata
,
CardId
.
SouleatingOviraptor
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
ShaddollHedgehog
,
CardId
.
AshBlossom
,
CardId
.
GhostOgre
,
CardId
.
ShaddollFalco
,
CardId
.
MaxxC
,
CardId
.
PlaguespreaderZombie
,
CardId
.
GlowUpBulb
,
CardId
.
FairyTailSnow
,
});
AI
.
SelectThirdCard
(
new
[]
{
AI
.
SelectThirdCard
(
new
[]
{
CardId
.
UltimateConductorTytanno
,
CardId
.
UltimateConductorTytanno
,
...
@@ -745,23 +697,20 @@ namespace WindBot.Game.AI.Decks
...
@@ -745,23 +697,20 @@ namespace WindBot.Game.AI.Decks
if
(
deck_check
)
if
(
deck_check
)
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollWinda
CardId
.
ElShaddollWinda
});
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollBeast
,
CardId
.
ShaddollBeast
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollFalco
,
CardId
.
ShaddollFalco
,
CardId
.
FairyTailSnow
,
CardId
.
FairyTailSnow
}
);
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
return
true
;
}
}
...
@@ -841,15 +790,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -841,15 +790,13 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
DefaultBreakthroughSkill
())
if
(
DefaultBreakthroughSkill
())
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollFalco
CardId
.
ShaddollFalco
,
);
}
);
}
}
else
else
return
false
;
return
false
;
...
@@ -925,15 +872,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -925,15 +872,13 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollWinda
,
CardId
.
ElShaddollWinda
,
CardId
.
ShaddollSquamata
CardId
.
ShaddollSquamata
,
);
}
);
}
}
return
true
;
return
true
;
...
@@ -947,25 +892,28 @@ namespace WindBot.Game.AI.Decks
...
@@ -947,25 +892,28 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
ElShaddollConstruct
))
if
(
AI
.
Utils
.
ChainContainsCard
(
CardId
.
ElShaddollConstruct
))
{
{
AI
.
SelectNextCard
(
new
[]{
AI
.
SelectNextCard
(
CardId
.
ShaddollFalco
,
CardId
.
ShaddollFalco
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollDragon
}
);
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollDragon
}
);
);
}
}
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollFusion
,
CardId
.
SinisterShadowGames
});
AI
.
SelectCard
(
CardId
.
ShaddollFusion
,
CardId
.
SinisterShadowGames
);
}
}
return
true
;
return
true
;
}
}
...
@@ -1018,11 +966,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -1018,11 +966,7 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
ShaddollSquamata
,
CardId
.
FairyTailSnow
);
{
CardId
.
ShaddollSquamata
,
CardId
.
FairyTailSnow
,
});
}
}
return
true
;
return
true
;
}
}
...
@@ -1153,7 +1097,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -1153,7 +1097,12 @@ namespace WindBot.Game.AI.Decks
{
{
CrystronNeedlefibereff_used
=
true
;
CrystronNeedlefibereff_used
=
true
;
AI
.
SelectCard
(
new
[]
{
CardId
.
GhostOgre
,
CardId
.
GlowUpBulb
,
CardId
.
PlaguespreaderZombie
,
CardId
.
ShaddollFalco
});
AI
.
SelectCard
(
CardId
.
GhostOgre
,
CardId
.
GlowUpBulb
,
CardId
.
PlaguespreaderZombie
,
CardId
.
ShaddollFalco
);
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/PhantasmExecutor.cs
View file @
494fe10b
...
@@ -61,7 +61,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -61,7 +61,7 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
//counter
//counter
//AddExecutor(ExecutorType.ToBattlePhase, ToBattlePhaseeff
);
AddExecutor
(
ExecutorType
.
GoToBattlePhase
,
GoToBattlePhase
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarlightRoad
,
PreventFeatherDustereff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
StarlightRoad
,
PreventFeatherDustereff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TheHugeRevolutionIsOver
,
PreventFeatherDustereff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TheHugeRevolutionIsOver
,
PreventFeatherDustereff
);
AddExecutor
(
ExecutorType
.
Activate
,
_CardId
.
GhostBelle
,
DefaultGhostBelleAndHauntedMansion
);
AddExecutor
(
ExecutorType
.
Activate
,
_CardId
.
GhostBelle
,
DefaultGhostBelleAndHauntedMansion
);
...
@@ -100,7 +100,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -100,7 +100,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EaterOfMillions
,
EaterOfMillionseff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
EaterOfMillions
,
EaterOfMillionseff
);
//other
//other
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Scapegoat
,
Scapegoateff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
Scapegoat
,
DefaultScapegoat
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SeaStealthAttack
,
NoSetAlreadyDone
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
SeaStealthAttack
,
NoSetAlreadyDone
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
StarlightRoadset
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
StarlightRoad
,
StarlightRoadset
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TheHugeRevolutionIsOver
,
TheHugeRevolutionIsOverset
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
TheHugeRevolutionIsOver
,
TheHugeRevolutionIsOverset
);
...
@@ -129,18 +129,17 @@ namespace WindBot.Game.AI.Decks
...
@@ -129,18 +129,17 @@ namespace WindBot.Game.AI.Decks
return
Duel
.
LastChainPlayer
==
1
;
return
Duel
.
LastChainPlayer
==
1
;
}
}
/* private bool ToBattlePhaseeff
()
private
bool
GoToBattlePhase
()
{
{
if
(
Enemy
.
GetMonsterCount
()
==
0
)
if
(
Enemy
.
GetMonsterCount
()
==
0
)
{
{
if
(
AI
.
Utils
.
GetTotalAttackingMonsterAttack
(
0
)
>=
Enemy
.
LifePoints
)
if
(
AI
.
Utils
.
GetTotalAttackingMonsterAttack
(
0
)
>=
Enemy
.
LifePoints
)
{
{
AI.ManualPhaseChange = true;
return
true
;
return
true
;
}
}
}
}
return
false
;
return
false
;
}
*/
}
private
bool
PhantasmSprialBattleeff
()
private
bool
PhantasmSprialBattleeff
()
{
{
...
@@ -154,8 +153,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -154,8 +153,13 @@ namespace WindBot.Game.AI.Decks
AI
.
SelectCard
(
CardId
.
EternalSoul
);
AI
.
SelectCard
(
CardId
.
EternalSoul
);
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
}
}
if
(
Bot
.
GetMonsterCount
()>
0
&&
!
Bot
.
HasInSpellZone
(
CardId
.
SeaStealthAttack
)
&&
if
(
Bot
.
UnderAttack
&&
Bot
.
BattlingMonster
!=
null
&&
Bot
.
BattlingMonster
.
IsCode
(
CardId
.
MegalosmasherX
))
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2000
,
true
)
&&
Duel
.
Phase
==
DuelPhase
.
BattleStart
)
{
AI
.
SelectCard
(
Enemy
.
BattlingMonster
);
return
UniqueFaceupSpell
();
}
if
(
Bot
.
GetMonsterCount
()
>
0
&&
!
Bot
.
HasInSpellZone
(
CardId
.
SeaStealthAttack
)
&&
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2000
,
false
)
&&
Duel
.
Phase
==
DuelPhase
.
BattleStart
)
{
{
AI
.
SelectCard
(
AI
.
Utils
.
GetBestEnemyMonster
(
true
,
true
));
AI
.
SelectCard
(
AI
.
Utils
.
GetBestEnemyMonster
(
true
,
true
));
return
UniqueFaceupSpell
();
return
UniqueFaceupSpell
();
...
@@ -257,7 +261,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -257,7 +261,7 @@ namespace WindBot.Game.AI.Decks
private
bool
CardOfDemiseeff
()
private
bool
CardOfDemiseeff
()
{
{
//
if (DefaultSpellWillBeNegated()) return false;
if
(
DefaultSpellWillBeNegated
())
return
false
;
AI
.
SelectPlace
(
Zones
.
z2
);
AI
.
SelectPlace
(
Zones
.
z2
);
if
(
Card
.
Location
==
CardLocation
.
Hand
)
if
(
Card
.
Location
==
CardLocation
.
Hand
)
{
{
...
@@ -280,7 +284,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -280,7 +284,7 @@ namespace WindBot.Game.AI.Decks
private
bool
FossilDigeff
()
private
bool
FossilDigeff
()
{
{
//
if (DefaultSpellWillBeNegated()) return false;
if
(
DefaultSpellWillBeNegated
())
return
false
;
if
(
CardOfDemiseeff_used
&&
summon_used
)
return
false
;
if
(
CardOfDemiseeff_used
&&
summon_used
)
return
false
;
return
true
;
return
true
;
}
}
...
@@ -292,52 +296,56 @@ namespace WindBot.Game.AI.Decks
...
@@ -292,52 +296,56 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
Bot
.
HasInGraveyard
(
CardId
.
PacifisThePhantasmCity
)
&&
!
Bot
.
HasInHandOrInSpellZone
(
CardId
.
SeaStealthAttack
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
PacifisThePhantasmCity
)
&&
!
Bot
.
HasInHandOrInSpellZone
(
CardId
.
SeaStealthAttack
))
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
SeaStealthAttack
,
CardId
.
SeaStealthAttack
,
CardId
.
PacifisThePhantasmCity
,
CardId
.
PacifisThePhantasmCity
,
CardId
.
Terraforming
,
CardId
.
Terraforming
,
CardId
.
Metaverse
,
CardId
.
Metaverse
,
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
CardId
.
Scapegoat
});
CardId
.
Scapegoat
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
PacifisThePhantasmCity
,
CardId
.
PacifisThePhantasmCity
,
CardId
.
Terraforming
,
CardId
.
Terraforming
,
CardId
.
Metaverse
,
CardId
.
Metaverse
,
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
CardId
.
Scapegoat
});
CardId
.
Scapegoat
);
}
}
}
}
else
if
(!
Bot
.
HasInHandOrInSpellZone
(
CardId
.
SeaStealthAttack
))
else
if
(!
Bot
.
HasInHandOrInSpellZone
(
CardId
.
SeaStealthAttack
))
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
SeaStealthAttack
,
CardId
.
SeaStealthAttack
,
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
CardId
.
PotOfDesires
,
CardId
.
PotOfDesires
,
CardId
.
Scapegoat
});
CardId
.
Scapegoat
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
,
CardId
.
PotOfDesires
,
CardId
.
PotOfDesires
,
CardId
.
Scapegoat
});
CardId
.
Scapegoat
);
}
}
return
true
;
return
true
;
}
}
private
bool
Terraformingeff
()
private
bool
Terraformingeff
()
{
{
//
if (DefaultSpellWillBeNegated()) return false;
if
(
DefaultSpellWillBeNegated
())
return
false
;
if
(
CardOfDemiseeff_used
&&
Bot
.
HasInSpellZone
(
CardId
.
PacifisThePhantasmCity
))
return
false
;
if
(
CardOfDemiseeff_used
&&
Bot
.
HasInSpellZone
(
CardId
.
PacifisThePhantasmCity
))
return
false
;
return
true
;
return
true
;
}
}
private
bool
PacifisThePhantasmCityeff
()
private
bool
PacifisThePhantasmCityeff
()
{
{
//
if (DefaultSpellWillBeNegated()) return false;
if
(
DefaultSpellWillBeNegated
())
return
false
;
if
(
Card
.
Location
==
CardLocation
.
Hand
)
if
(
Card
.
Location
==
CardLocation
.
Hand
)
{
{
if
(
Bot
.
HasInSpellZone
(
CardId
.
PacifisThePhantasmCity
))
if
(
Bot
.
HasInSpellZone
(
CardId
.
PacifisThePhantasmCity
))
...
@@ -460,12 +468,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -460,12 +468,13 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
material_list
=
new
List
<
ClientCard
>();
IList
<
ClientCard
>
material_list
=
new
List
<
ClientCard
>();
if
(
Bot
.
HasInExtra
(
CardId
.
BorreloadDragon
))
if
(
Bot
.
HasInExtra
(
CardId
.
BorreloadDragon
))
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
TopologicBomberDragon
,
CardId
.
TopologicBomberDragon
,
CardId
.
TopologicTrisbaena
,
CardId
.
TopologicTrisbaena
,
CardId
.
KnightmareGryphon
,
CardId
.
KnightmareGryphon
,
CardId
.
SummonSorceress
,
CardId
.
SummonSorceress
,
CardId
.
BorreloadDragon
});
CardId
.
BorreloadDragon
);
}
}
else
else
{
{
...
@@ -610,26 +619,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -610,26 +619,7 @@ namespace WindBot.Game.AI.Decks
private
bool
PotOfDesireseff
()
private
bool
PotOfDesireseff
()
{
{
return
Bot
.
Deck
.
Count
>=
18
;
return
Bot
.
Deck
.
Count
>=
18
;
}
}
private
bool
Scapegoateff
()
{
// if (DefaultSpellWillBeNegated()) return false;
if
(
Duel
.
Player
==
0
)
return
false
;
if
(
Duel
.
Phase
==
DuelPhase
.
End
)
return
true
;
if
(
DefaultOnBecomeTarget
())
return
true
;
if
(
Duel
.
Phase
>
DuelPhase
.
Main1
&&
Duel
.
Phase
<
DuelPhase
.
Main2
)
{
int
total_atk
=
0
;
List
<
ClientCard
>
enemy_monster
=
Enemy
.
GetMonsters
();
foreach
(
ClientCard
m
in
enemy_monster
)
{
if
(
m
.
IsAttack
())
total_atk
+=
m
.
Attack
;
}
if
(
total_atk
>=
Bot
.
LifePoints
)
return
true
;
}
return
false
;
}
private
bool
StarlightRoadset
()
private
bool
StarlightRoadset
()
{
{
...
@@ -740,4 +730,4 @@ namespace WindBot.Game.AI.Decks
...
@@ -740,4 +730,4 @@ namespace WindBot.Game.AI.Decks
}
}
}
}
\ No newline at end of file
Game/AI/Decks/QliphortExecutor.cs
View file @
494fe10b
...
@@ -166,19 +166,18 @@ namespace WindBot.Game.AI.Decks
...
@@ -166,19 +166,18 @@ namespace WindBot.Game.AI.Decks
private
bool
PotOfDualityEffect
()
private
bool
PotOfDualityEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Scout
,
CardId
.
Scout
,
CardId
.
SkillDrain
,
CardId
.
SkillDrain
,
CardId
.
VanitysEmptiness
,
CardId
.
VanitysEmptiness
,
CardId
.
DimensionalBarrier
,
CardId
.
DimensionalBarrier
,
CardId
.
Stealth
,
CardId
.
Stealth
,
CardId
.
Shell
,
CardId
.
Shell
,
CardId
.
Helix
,
CardId
.
Helix
,
CardId
.
Carrier
,
CardId
.
Carrier
,
CardId
.
SolemnStrike
,
CardId
.
SolemnStrike
,
CardId
.
CardOfDemise
CardId
.
CardOfDemise
);
});
return
!
ShouldPendulum
();
return
!
ShouldPendulum
();
}
}
...
@@ -304,12 +303,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -304,12 +303,7 @@ namespace WindBot.Game.AI.Decks
}
}
else
if
(
handcount
>
0
||
fieldcount
>
0
)
else
if
(
handcount
>
0
||
fieldcount
>
0
)
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
Saqlifice
,
CardId
.
Shell
,
CardId
.
Helix
);
{
CardId
.
Saqlifice
,
CardId
.
Shell
,
CardId
.
Helix
});
}
}
else
else
{
{
...
...
Game/AI/Decks/RainbowExecutor.cs
View file @
494fe10b
...
@@ -179,12 +179,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -179,12 +179,11 @@ namespace WindBot.Game.AI.Decks
private
bool
UnexpectedDaiEffect
()
private
bool
UnexpectedDaiEffect
()
{
{
if
(
Bot
.
HasInHand
(
CardId
.
RescueRabbit
)
||
NormalSummoned
)
if
(
Bot
.
HasInHand
(
CardId
.
RescueRabbit
)
||
NormalSummoned
)
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
MysteryShellDragon
,
CardId
.
MysteryShellDragon
,
CardId
.
PhantomGryphon
,
CardId
.
PhantomGryphon
,
CardId
.
MegalosmasherX
CardId
.
MegalosmasherX
}
);
);
else
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
else
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
{
if
(
Bot
.
HasInHand
(
CardId
.
MysteryShellDragon
))
if
(
Bot
.
HasInHand
(
CardId
.
MysteryShellDragon
))
...
@@ -203,11 +202,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -203,11 +202,7 @@ namespace WindBot.Game.AI.Decks
else
if
(
Bot
.
HasInHand
(
CardId
.
PhantomGryphon
))
else
if
(
Bot
.
HasInHand
(
CardId
.
PhantomGryphon
))
AI
.
SelectCard
(
CardId
.
PhantomGryphon
);
AI
.
SelectCard
(
CardId
.
PhantomGryphon
);
else
if
(
Bot
.
HasInHand
(
CardId
.
AngelTrumpeter
))
else
if
(
Bot
.
HasInHand
(
CardId
.
AngelTrumpeter
))
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
MetalfoesGoldriver
,
CardId
.
MasterPendulumTheDracoslayer
);
{
CardId
.
MetalfoesGoldriver
,
CardId
.
MasterPendulumTheDracoslayer
});
}
}
return
true
;
return
true
;
}
}
...
@@ -216,22 +211,20 @@ namespace WindBot.Game.AI.Decks
...
@@ -216,22 +211,20 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
MegalosmasherX
,
CardId
.
MegalosmasherX
,
CardId
.
MysteryShellDragon
CardId
.
MysteryShellDragon
);
});
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
MasterPendulumTheDracoslayer
,
CardId
.
MasterPendulumTheDracoslayer
,
CardId
.
PhantomGryphon
,
CardId
.
PhantomGryphon
,
CardId
.
MegalosmasherX
,
CardId
.
MegalosmasherX
,
CardId
.
MetalfoesGoldriver
,
CardId
.
MetalfoesGoldriver
,
CardId
.
AngelTrumpeter
CardId
.
AngelTrumpeter
);
});
}
}
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/Rank5Executor.cs
View file @
494fe10b
...
@@ -147,17 +147,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -147,17 +147,16 @@ namespace WindBot.Game.AI.Decks
{
{
if
(!
NeedLV5
())
if
(!
NeedLV5
())
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
QuickdrawSynchron
,
CardId
.
QuickdrawSynchron
,
CardId
.
ZWEagleClaw
,
CardId
.
ZWEagleClaw
,
CardId
.
SolarWindJammer
,
CardId
.
SolarWindJammer
,
CardId
.
CyberDragon
,
CardId
.
CyberDragon
,
CardId
.
MistArchfiend
,
CardId
.
MistArchfiend
,
CardId
.
WindUpSoldier
,
CardId
.
WindUpSoldier
,
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
CardId
.
ChronomalyGoldenJet
CardId
.
ChronomalyGoldenJet
);
});
return
true
;
return
true
;
}
}
...
@@ -333,14 +332,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -333,14 +332,13 @@ namespace WindBot.Game.AI.Decks
{
{
if
(!
UniqueFaceupSpell
())
if
(!
UniqueFaceupSpell
())
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
CyberDragonInfinity
,
CardId
.
CyberDragonInfinity
,
CardId
.
CyberDragonNova
,
CardId
.
CyberDragonNova
,
CardId
.
TirasKeeperOfGenesis
,
CardId
.
TirasKeeperOfGenesis
,
CardId
.
SharkFortress
,
CardId
.
SharkFortress
,
CardId
.
Number61Volcasaurus
CardId
.
Number61Volcasaurus
);
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ST1732Executor.cs
View file @
494fe10b
...
@@ -175,12 +175,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -175,12 +175,12 @@ namespace WindBot.Game.AI.Decks
IList
<
ClientCard
>
targets
=
Enemy
.
GetSpells
();
IList
<
ClientCard
>
targets
=
Enemy
.
GetSpells
();
if
(
targets
.
Count
>
0
)
if
(
targets
.
Count
>
0
)
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
CardId
.
Bitron
,
CardId
.
Bitron
,
CardId
.
Digitron
,
CardId
.
Digitron
,
CardId
.
RecodedAlive
CardId
.
RecodedAlive
}
);
);
AI
.
SelectNextCard
(
targets
);
AI
.
SelectNextCard
(
targets
);
return
true
;
return
true
;
}
}
...
@@ -306,14 +306,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -306,14 +306,13 @@ namespace WindBot.Game.AI.Decks
}
}
if
(
selected
)
if
(
selected
)
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
CardId
.
Kleinant
,
CardId
.
Kleinant
,
CardId
.
Draconnet
,
CardId
.
Draconnet
,
CardId
.
Backlinker
CardId
.
Backlinker
}
);
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -360,24 +359,24 @@ namespace WindBot.Game.AI.Decks
...
@@ -360,24 +359,24 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
CardId
.
Kleinant
,
CardId
.
Kleinant
,
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
CardId
.
Draconnet
,
CardId
.
Draconnet
,
CardId
.
RAMClouder
CardId
.
RAMClouder
}
);
);
return
true
;
return
true
;
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
CardId
.
Kleinant
,
CardId
.
Kleinant
,
CardId
.
RAMClouder
,
CardId
.
RAMClouder
,
CardId
.
DotScaper
CardId
.
DotScaper
}
);
);
return
true
;
return
true
;
}
}
}
}
...
@@ -429,28 +428,28 @@ namespace WindBot.Game.AI.Decks
...
@@ -429,28 +428,28 @@ namespace WindBot.Game.AI.Decks
private
bool
RAMClouderEffect
()
private
bool
RAMClouderEffect
()
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
StagToken
,
CardId
.
StagToken
,
CardId
.
Bitron
,
CardId
.
Bitron
,
CardId
.
Digitron
,
CardId
.
Digitron
,
CardId
.
DotScaper
,
CardId
.
DotScaper
,
CardId
.
Draconnet
,
CardId
.
Draconnet
,
CardId
.
Backlinker
,
CardId
.
Backlinker
,
CardId
.
RAMClouder
CardId
.
RAMClouder
}
);
);
AI
.
SelectNextCard
(
new
[]{
AI
.
SelectNextCard
(
CardId
.
DecodeTalker
,
CardId
.
DecodeTalker
,
CardId
.
EncodeTalker
,
CardId
.
EncodeTalker
,
CardId
.
TriGateWizard
,
CardId
.
TriGateWizard
,
CardId
.
BinarySorceress
,
CardId
.
BinarySorceress
,
CardId
.
Honeybot
,
CardId
.
Honeybot
,
CardId
.
DualAssembloom
,
CardId
.
DualAssembloom
,
CardId
.
BootStagguard
,
CardId
.
BootStagguard
,
CardId
.
BalancerLord
,
CardId
.
BalancerLord
,
CardId
.
ROMCloudia
,
CardId
.
ROMCloudia
,
CardId
.
Linkslayer
,
CardId
.
Linkslayer
,
CardId
.
RAMClouder
CardId
.
RAMClouder
}
);
);
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/SkyStrikerExecutor.cs
View file @
494fe10b
...
@@ -229,12 +229,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -229,12 +229,12 @@ namespace WindBot.Game.AI.Decks
private
bool
FoolishBurialGoodsEffect
()
private
bool
FoolishBurialGoodsEffect
()
{
{
AI
.
SelectCard
(
new
[]{
AI
.
SelectCard
(
CardId
.
MetalfoesFusion
,
CardId
.
MetalfoesFusion
,
CardId
.
WidowAnchor
,
CardId
.
WidowAnchor
,
CardId
.
Engage
,
CardId
.
Engage
,
CardId
.
HornetDrones
CardId
.
HornetDrones
}
);
);
return
true
;
return
true
;
}
}
...
@@ -312,13 +312,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -312,13 +312,13 @@ namespace WindBot.Game.AI.Decks
if
(
target
>
0
)
if
(
target
>
0
)
AI
.
SelectCard
(
target
);
AI
.
SelectCard
(
target
);
else
else
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Multirole
,
CardId
.
Multirole
,
CardId
.
AreaZero
,
CardId
.
AreaZero
,
CardId
.
Afterburners
,
CardId
.
Afterburners
,
CardId
.
JammingWave
,
CardId
.
JammingWave
,
CardId
.
Raye
CardId
.
Raye
}
);
);
return
true
;
return
true
;
}
}
...
@@ -330,13 +330,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -330,13 +330,13 @@ namespace WindBot.Game.AI.Decks
if
(
target
>
0
)
if
(
target
>
0
)
AI
.
SelectCard
(
target
);
AI
.
SelectCard
(
target
);
else
else
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Multirole
,
CardId
.
Multirole
,
CardId
.
AreaZero
,
CardId
.
AreaZero
,
CardId
.
Afterburners
,
CardId
.
Afterburners
,
CardId
.
JammingWave
,
CardId
.
JammingWave
,
CardId
.
Raye
CardId
.
Raye
}
);
);
return
true
;
return
true
;
}
}
...
@@ -562,11 +562,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -562,11 +562,7 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Shizuku
,
CardId
.
Kagari
,
CardId
.
Hayate
);
CardId
.
Shizuku
,
CardId
.
Kagari
,
CardId
.
Hayate
});
}
}
}
}
...
@@ -595,11 +591,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -595,11 +591,7 @@ namespace WindBot.Game.AI.Decks
AI
.
SelectCard
(
CardId
.
JammingWave
);
AI
.
SelectCard
(
CardId
.
JammingWave
);
}
}
else
else
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Engage
,
CardId
.
HornetDrones
,
CardId
.
WidowAnchor
);
CardId
.
Engage
,
CardId
.
HornetDrones
,
CardId
.
WidowAnchor
});
return
true
;
return
true
;
}
}
...
@@ -619,11 +611,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -619,11 +611,7 @@ namespace WindBot.Game.AI.Decks
if
(
target
!=
0
)
if
(
target
!=
0
)
AI
.
SelectCard
(
target
);
AI
.
SelectCard
(
target
);
else
else
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
CardId
.
Engage
,
CardId
.
HornetDrones
,
CardId
.
WidowAnchor
);
CardId
.
Engage
,
CardId
.
HornetDrones
,
CardId
.
WidowAnchor
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ToadallyAwesomeExecutor.cs
View file @
494fe10b
...
@@ -138,28 +138,26 @@ namespace WindBot.Game.AI.Decks
...
@@ -138,28 +138,26 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
}
);
);
}
}
return
true
;
return
true
;
}
}
private
bool
SurfaceEffect
()
private
bool
SurfaceEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
ToadallyAwesome
,
CardId
.
ToadallyAwesome
,
CardId
.
HeraldOfTheArcLight
,
CardId
.
HeraldOfTheArcLight
,
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
);
});
return
true
;
return
true
;
}
}
...
@@ -182,27 +180,25 @@ namespace WindBot.Game.AI.Decks
...
@@ -182,27 +180,25 @@ namespace WindBot.Game.AI.Decks
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
SwapFrog
CardId
.
SwapFrog
);
});
return
true
;
return
true
;
}
}
private
bool
SalvageEffect
()
private
bool
SalvageEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
);
});
return
true
;
return
true
;
}
}
...
@@ -215,16 +211,15 @@ namespace WindBot.Game.AI.Decks
...
@@ -215,16 +211,15 @@ namespace WindBot.Game.AI.Decks
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
else
if
(
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
CardId
.
SwapFrog
CardId
.
SwapFrog
);
});
return
true
;
return
true
;
}
}
...
@@ -238,12 +233,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -238,12 +233,11 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
Bot
.
HasInHand
(
CardId
.
DupeFrog
))
if
(
Bot
.
HasInHand
(
CardId
.
DupeFrog
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
CardId
.
SwapFrog
CardId
.
SwapFrog
);
});
return
true
;
return
true
;
}
}
}
}
...
@@ -259,16 +253,15 @@ namespace WindBot.Game.AI.Decks
...
@@ -259,16 +253,15 @@ namespace WindBot.Game.AI.Decks
{
{
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
AI
.
SelectCard
(
CardId
.
GraydleSlimeJr
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
);
});
return
true
;
return
true
;
}
}
...
@@ -378,12 +371,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -378,12 +371,11 @@ namespace WindBot.Game.AI.Decks
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
);
});
}
}
return
true
;
return
true
;
}
}
...
@@ -392,27 +384,25 @@ namespace WindBot.Game.AI.Decks
...
@@ -392,27 +384,25 @@ namespace WindBot.Game.AI.Decks
SelectXYZDetach
(
Card
.
Overlays
);
SelectXYZDetach
(
Card
.
Overlays
);
if
(
Duel
.
Player
==
0
)
if
(
Duel
.
Player
==
0
)
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
GraydleSlimeJr
CardId
.
GraydleSlimeJr
);
});
}
}
else
else
{
{
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
SwapFrog
,
CardId
.
SwapFrog
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
CardId
.
DewdarkOfTheIceBarrier
);
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
}
}
return
true
;
return
true
;
...
@@ -566,16 +556,15 @@ namespace WindBot.Game.AI.Decks
...
@@ -566,16 +556,15 @@ namespace WindBot.Game.AI.Decks
else
if
(
Overlays
.
Contains
(
CardId
.
Ronintoadin
)
&&
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
else
if
(
Overlays
.
Contains
(
CardId
.
Ronintoadin
)
&&
Bot
.
HasInGraveyard
(
CardId
.
DupeFrog
)
&&
!
Bot
.
HasInGraveyard
(
CardId
.
Ronintoadin
))
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
AI
.
SelectCard
(
CardId
.
Ronintoadin
);
else
else
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
GraydleSlimeJr
,
CardId
.
GraydleSlimeJr
,
CardId
.
Ronintoadin
,
CardId
.
Ronintoadin
,
CardId
.
DupeFrog
,
CardId
.
DupeFrog
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
CryomancerOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
DewdarkOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
PriorOfTheIceBarrier
,
CardId
.
SwapFrog
CardId
.
SwapFrog
);
});
}
}
}
}
}
}
Game/AI/Decks/TrickstarExecutor.cs
View file @
494fe10b
This diff is collapsed.
Click to expand it.
Game/AI/Decks/YosenjuExecutor.cs
View file @
494fe10b
...
@@ -189,8 +189,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -189,8 +189,7 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
CardOfDemiseUsed
)
if
(
CardOfDemiseUsed
)
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
StarlightRoad
,
CardId
.
StarlightRoad
,
CardId
.
MagicDrain
,
CardId
.
MagicDrain
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
...
@@ -202,12 +201,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -202,12 +201,11 @@ namespace WindBot.Game.AI.Decks
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
CardId
.
MacroCosmos
,
CardId
.
MacroCosmos
,
CardId
.
CardOfDemise
CardId
.
CardOfDemise
}
);
);
}
}
else
else
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
YosenjuKama3
,
CardId
.
YosenjuKama3
,
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama2
,
CardId
.
YosenjuKama2
,
...
@@ -221,8 +219,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -221,8 +219,8 @@ namespace WindBot.Game.AI.Decks
CardId
.
SolemnJudgment
,
CardId
.
SolemnJudgment
,
CardId
.
SolemnWarning
,
CardId
.
SolemnWarning
,
CardId
.
MacroCosmos
,
CardId
.
MacroCosmos
,
CardId
.
CardOfDemise
,
CardId
.
CardOfDemise
}
);
);
}
}
return
true
;
return
true
;
}
}
...
@@ -272,12 +270,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -272,12 +270,7 @@ namespace WindBot.Game.AI.Decks
// Don't activate the return to hand effect first
// Don't activate the return to hand effect first
if
(
Duel
.
Phase
==
DuelPhase
.
End
)
if
(
Duel
.
Phase
==
DuelPhase
.
End
)
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama2
,
CardId
.
YosenjuKama3
);
{
CardId
.
YosenjuKama1
,
CardId
.
YosenjuKama2
,
CardId
.
YosenjuKama3
});
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ZexalWeaponsExecutor.cs
View file @
494fe10b
...
@@ -170,14 +170,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -170,14 +170,13 @@ namespace WindBot.Game.AI.Decks
private
bool
ReinforcementOfTheArmy
()
private
bool
ReinforcementOfTheArmy
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Goblindbergh
,
CardId
.
Goblindbergh
,
CardId
.
TinGoldfish
,
CardId
.
TinGoldfish
,
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
CardId
.
Kagetokage
,
CardId
.
Kagetokage
,
CardId
.
SacredCrane
CardId
.
SacredCrane
);
});
return
true
;
return
true
;
}
}
...
@@ -224,13 +223,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -224,13 +223,12 @@ namespace WindBot.Game.AI.Decks
private
bool
GoblindberghEffect
()
private
bool
GoblindberghEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
SacredCrane
,
CardId
.
SacredCrane
,
CardId
.
HeroicChallengerExtraSword
,
CardId
.
HeroicChallengerExtraSword
,
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
CardId
.
SummonerMonk
CardId
.
SummonerMonk
);
});
return
true
;
return
true
;
}
}
...
@@ -253,13 +251,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -253,13 +251,12 @@ namespace WindBot.Game.AI.Decks
if
(
Bot
.
HasInHand
(
costs
))
if
(
Bot
.
HasInHand
(
costs
))
{
{
AI
.
SelectCard
(
costs
);
AI
.
SelectCard
(
costs
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
SacredCrane
,
CardId
.
SacredCrane
,
CardId
.
StarDrawing
,
CardId
.
StarDrawing
,
CardId
.
Goblindbergh
,
CardId
.
Goblindbergh
,
CardId
.
TinGoldfish
CardId
.
TinGoldfish
}
);
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
}
}
...
...
Game/AI/Decks/ZoodiacExecutor.cs
View file @
494fe10b
...
@@ -270,20 +270,18 @@ namespace WindBot.Game.AI.Decks
...
@@ -270,20 +270,18 @@ namespace WindBot.Game.AI.Decks
{
{
if
(
Bot
.
HasInGraveyard
(
CardId
.
Whiptail
)
||
Bot
.
HasInGraveyard
(
CardId
.
Thoroughblade
))
if
(
Bot
.
HasInGraveyard
(
CardId
.
Whiptail
)
||
Bot
.
HasInGraveyard
(
CardId
.
Thoroughblade
))
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Broadbull
,
CardId
.
Broadbull
,
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
CardId
.
Chakanine
,
CardId
.
Chakanine
,
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
CardId
.
Ratpier
,
CardId
.
Ratpier
,
CardId
.
Whiptail
CardId
.
Whiptail
});
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
Whiptail
,
CardId
.
Whiptail
,
CardId
.
Thoroughblade
CardId
.
Thoroughblade
}
);
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -336,12 +334,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -336,12 +334,7 @@ namespace WindBot.Game.AI.Decks
// return false;
// return false;
AI
.
SelectCard
(
CardId
.
Chakanine
);
AI
.
SelectCard
(
CardId
.
Chakanine
);
AI
.
SelectNextCard
(
CardId
.
Tigermortar
);
AI
.
SelectNextCard
(
CardId
.
Tigermortar
);
AI
.
SelectThirdCard
(
new
[]
AI
.
SelectThirdCard
(
CardId
.
Ratpier
,
CardId
.
Whiptail
,
CardId
.
Thoroughblade
);
{
CardId
.
Ratpier
,
CardId
.
Whiptail
,
CardId
.
Thoroughblade
});
return
true
;
return
true
;
}
}
...
@@ -384,14 +377,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -384,14 +377,13 @@ namespace WindBot.Game.AI.Decks
private
bool
BroadbullEffect
()
private
bool
BroadbullEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
CardId
.
Chakanine
,
CardId
.
Chakanine
,
CardId
.
Drident
,
CardId
.
Drident
,
CardId
.
AleisterTheInvoker
,
CardId
.
AleisterTheInvoker
,
CardId
.
PhotonThrasher
CardId
.
PhotonThrasher
);
});
if
(
Bot
.
HasInHand
(
CardId
.
Whiptail
)
&&
!
Bot
.
HasInHand
(
CardId
.
Ratpier
))
if
(
Bot
.
HasInHand
(
CardId
.
Whiptail
)
&&
!
Bot
.
HasInHand
(
CardId
.
Ratpier
))
AI
.
SelectNextCard
(
CardId
.
Ratpier
);
AI
.
SelectNextCard
(
CardId
.
Ratpier
);
else
else
...
@@ -475,12 +467,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -475,12 +467,11 @@ namespace WindBot.Game.AI.Decks
private
bool
RatpierEffect
()
private
bool
RatpierEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
ZoodiacCombo
,
CardId
.
ZoodiacCombo
,
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
CardId
.
ZoodiacBarrage
CardId
.
ZoodiacBarrage
);
});
return
true
;
return
true
;
}
}
...
@@ -491,15 +482,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -491,15 +482,14 @@ namespace WindBot.Game.AI.Decks
ClientCard
target
=
AI
.
Utils
.
GetBestEnemyCard
(
true
);
ClientCard
target
=
AI
.
Utils
.
GetBestEnemyCard
(
true
);
if
(
target
==
null
)
if
(
target
==
null
)
return
false
;
return
false
;
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Broadbull
,
CardId
.
Broadbull
,
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
CardId
.
Chakanine
,
CardId
.
Chakanine
,
CardId
.
Thoroughblade
,
CardId
.
Thoroughblade
,
CardId
.
Ratpier
,
CardId
.
Ratpier
,
CardId
.
Whiptail
CardId
.
Whiptail
);
});
AI
.
SelectNextCard
(
target
);
AI
.
SelectNextCard
(
target
);
return
true
;
return
true
;
}
}
...
@@ -516,17 +506,15 @@ namespace WindBot.Game.AI.Decks
...
@@ -516,17 +506,15 @@ namespace WindBot.Game.AI.Decks
private
bool
DaigustoEmeralEffect
()
private
bool
DaigustoEmeralEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Ratpier
,
CardId
.
Ratpier
,
CardId
.
AleisterTheInvoker
,
CardId
.
AleisterTheInvoker
,
CardId
.
Whiptail
CardId
.
Whiptail
);
});
AI
.
SelectNextCard
(
AI
.
SelectNextCard
(
new
[]
CardId
.
Ratpier
,
{
CardId
.
DaigustoEmeral
CardId
.
Ratpier
,
);
CardId
.
DaigustoEmeral
});
return
true
;
return
true
;
}
}
...
@@ -553,18 +541,16 @@ namespace WindBot.Game.AI.Decks
...
@@ -553,18 +541,16 @@ namespace WindBot.Game.AI.Decks
if
(
spell
.
IsCode
(
CardId
.
ZoodiacBarrage
)
&&
!
Card
.
Equals
(
spell
))
if
(
spell
.
IsCode
(
CardId
.
ZoodiacBarrage
)
&&
!
Card
.
Equals
(
spell
))
return
false
;
return
false
;
}
}
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
FireFormationTenki
,
CardId
.
FireFormationTenki
,
CardId
.
MagicalMeltdown
,
CardId
.
MagicalMeltdown
,
CardId
.
ZoodiacBarrage
CardId
.
ZoodiacBarrage
);
});
AI
.
SelectNextCard
(
AI
.
SelectNextCard
(
new
[]
CardId
.
Ratpier
,
{
CardId
.
Whiptail
,
CardId
.
Ratpier
,
CardId
.
Thoroughblade
CardId
.
Whiptail
,
);
CardId
.
Thoroughblade
});
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
}
}
...
@@ -576,29 +562,27 @@ namespace WindBot.Game.AI.Decks
...
@@ -576,29 +562,27 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
Location
!=
CardLocation
.
Grave
)
if
(
Card
.
Location
!=
CardLocation
.
Grave
)
{
{
AI
.
SelectCard
(
CardId
.
Drident
);
AI
.
SelectCard
(
CardId
.
Drident
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
CardId
.
Whiptail
,
CardId
.
Whiptail
,
CardId
.
Ratpier
,
CardId
.
Ratpier
,
CardId
.
Thoroughblade
CardId
.
Thoroughblade
}
);
);
}
}
return
true
;
return
true
;
}
}
private
bool
MonsterRebornEffect
()
private
bool
MonsterRebornEffect
()
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
CardId
.
Ratpier
,
CardId
.
Ratpier
,
CardId
.
Whiptail
,
CardId
.
Whiptail
,
CardId
.
InvokedMechaba
,
CardId
.
InvokedMechaba
,
CardId
.
JizukirutheStarDestroyingKaiju
,
CardId
.
JizukirutheStarDestroyingKaiju
,
CardId
.
InvokedMagellanica
,
CardId
.
InvokedMagellanica
,
CardId
.
Tigermortar
,
CardId
.
Tigermortar
,
CardId
.
Chakanine
,
CardId
.
Chakanine
,
CardId
.
Broadbull
CardId
.
Broadbull
);
});
return
true
;
return
true
;
}
}
...
...
Game/AI/DefaultExecutor.cs
View file @
494fe10b
...
@@ -362,7 +362,7 @@ namespace WindBot.Game.AI
...
@@ -362,7 +362,7 @@ namespace WindBot.Game.AI
if
(
DefaultOnBecomeTarget
())
return
true
;
if
(
DefaultOnBecomeTarget
())
return
true
;
if
(
Duel
.
Phase
>
DuelPhase
.
Main1
&&
Duel
.
Phase
<
DuelPhase
.
Main2
)
if
(
Duel
.
Phase
>
DuelPhase
.
Main1
&&
Duel
.
Phase
<
DuelPhase
.
Main2
)
{
{
if
(
Enemy
.
HasInMonstersZone
(
new
[]
if
(
Enemy
.
HasInMonstersZone
(
new
[]
{
{
_CardId
.
UltimateConductorTytanno
,
_CardId
.
UltimateConductorTytanno
,
_CardId
.
InvokedPurgatrio
,
_CardId
.
InvokedPurgatrio
,
...
@@ -863,42 +863,38 @@ namespace WindBot.Game.AI
...
@@ -863,42 +863,38 @@ namespace WindBot.Game.AI
{
{
if
(
Card
.
Location
==
CardLocation
.
Grave
)
if
(
Card
.
Location
==
CardLocation
.
Grave
)
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
_CardId
.
GamecieltheSeaTurtleKaiju
,
_CardId
.
GamecieltheSeaTurtleKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
,
_CardId
.
JizukirutheStarDestroyingKaiju
,
_CardId
.
JizukirutheStarDestroyingKaiju
}
);
);
return
true
;
return
true
;
}
}
if
(
DefaultDarkHole
())
if
(
DefaultDarkHole
())
{
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
{
_CardId
.
JizukirutheStarDestroyingKaiju
,
_CardId
.
JizukirutheStarDestroyingKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
GamecieltheSeaTurtleKaiju
,
_CardId
.
GamecieltheSeaTurtleKaiju
});
);
AI
.
SelectNextCard
(
new
[]
AI
.
SelectNextCard
(
{
_CardId
.
SuperAntiKaijuWarMachineMechaDogoran
,
_CardId
.
SuperAntiKaijuWarMachineMechaDogoran
,
_CardId
.
GamecieltheSeaTurtleKaiju
,
_CardId
.
GamecieltheSeaTurtleKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
KumongoustheStickyStringKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
GadarlatheMysteryDustKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
RadiantheMultidimensionalKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
DogorantheMadFlameKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
,
_CardId
.
ThunderKingtheLightningstrikeKaiju
);
});
return
true
;
return
true
;
}
}
...
...
Game/ClientField.cs
View file @
494fe10b
...
@@ -17,6 +17,7 @@ namespace WindBot.Game
...
@@ -17,6 +17,7 @@ namespace WindBot.Game
public
int
LifePoints
;
public
int
LifePoints
;
public
ClientCard
BattlingMonster
;
public
ClientCard
BattlingMonster
;
public
bool
UnderAttack
;
public
ClientField
()
public
ClientField
()
{
{
...
...
Game/GameAI.cs
View file @
494fe10b
...
@@ -784,6 +784,12 @@ namespace WindBot.Game
...
@@ -784,6 +784,12 @@ namespace WindBot.Game
m_selector
.
Add
(
new
CardSelector
(
ids
));
m_selector
.
Add
(
new
CardSelector
(
ids
));
}
}
public
void
SelectCard
(
params
int
[]
ids
)
{
m_selector_pointer
=
m_selector
.
Count
();
m_selector
.
Add
(
new
CardSelector
(
ids
));
}
public
void
SelectCard
(
CardLocation
loc
)
public
void
SelectCard
(
CardLocation
loc
)
{
{
m_selector_pointer
=
m_selector
.
Count
();
m_selector_pointer
=
m_selector
.
Count
();
...
@@ -830,6 +836,16 @@ namespace WindBot.Game
...
@@ -830,6 +836,16 @@ namespace WindBot.Game
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
}
}
public
void
SelectNextCard
(
params
int
[]
ids
)
{
if
(
m_selector_pointer
==
-
1
)
{
Logger
.
WriteErrorLine
(
"Error: Call SelectNextCard() before SelectCard()"
);
m_selector_pointer
=
0
;
}
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
}
public
void
SelectNextCard
(
CardLocation
loc
)
public
void
SelectNextCard
(
CardLocation
loc
)
{
{
if
(
m_selector_pointer
==
-
1
)
if
(
m_selector_pointer
==
-
1
)
...
@@ -880,6 +896,16 @@ namespace WindBot.Game
...
@@ -880,6 +896,16 @@ namespace WindBot.Game
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
}
}
public
void
SelectThirdCard
(
params
int
[]
ids
)
{
if
(
m_selector_pointer
==
-
1
)
{
Logger
.
WriteErrorLine
(
"Error: Call SelectThirdCard() before SelectCard()"
);
m_selector_pointer
=
0
;
}
m_selector
.
Insert
(
m_selector_pointer
,
new
CardSelector
(
ids
));
}
public
void
SelectThirdCard
(
CardLocation
loc
)
public
void
SelectThirdCard
(
CardLocation
loc
)
{
{
if
(
m_selector_pointer
==
-
1
)
if
(
m_selector_pointer
==
-
1
)
...
...
Game/GameBehavior.cs
View file @
494fe10b
...
@@ -103,6 +103,8 @@ namespace WindBot.Game
...
@@ -103,6 +103,8 @@ namespace WindBot.Game
_messages
.
Add
(
GameMessage
.
Move
,
OnMove
);
_messages
.
Add
(
GameMessage
.
Move
,
OnMove
);
_messages
.
Add
(
GameMessage
.
Swap
,
OnSwap
);
_messages
.
Add
(
GameMessage
.
Swap
,
OnSwap
);
_messages
.
Add
(
GameMessage
.
Attack
,
OnAttack
);
_messages
.
Add
(
GameMessage
.
Attack
,
OnAttack
);
_messages
.
Add
(
GameMessage
.
Battle
,
OnBattle
);
_messages
.
Add
(
GameMessage
.
AttackDisabled
,
OnAttackDisabled
);
_messages
.
Add
(
GameMessage
.
PosChange
,
OnPosChange
);
_messages
.
Add
(
GameMessage
.
PosChange
,
OnPosChange
);
_messages
.
Add
(
GameMessage
.
Chaining
,
OnChaining
);
_messages
.
Add
(
GameMessage
.
Chaining
,
OnChaining
);
_messages
.
Add
(
GameMessage
.
ChainEnd
,
OnChainEnd
);
_messages
.
Add
(
GameMessage
.
ChainEnd
,
OnChainEnd
);
...
@@ -326,6 +328,14 @@ namespace WindBot.Game
...
@@ -326,6 +328,14 @@ namespace WindBot.Game
int
type
=
packet
.
ReadByte
();
int
type
=
packet
.
ReadByte
();
int
player
=
packet
.
ReadByte
();
int
player
=
packet
.
ReadByte
();
int
data
=
packet
.
ReadInt32
();
int
data
=
packet
.
ReadInt32
();
if
(
type
==
1
)
// HINT_EVENT
{
if
(
data
==
24
)
// battling
{
_duel
.
Fields
[
0
].
UnderAttack
=
false
;
_duel
.
Fields
[
1
].
UnderAttack
=
false
;
}
}
if
(
type
==
3
)
// HINT_SELECTMSG
if
(
type
==
3
)
// HINT_SELECTMSG
{
{
_select_hint
=
data
;
_select_hint
=
data
;
...
@@ -492,6 +502,8 @@ namespace WindBot.Game
...
@@ -492,6 +502,8 @@ namespace WindBot.Game
_duel
.
LastSummonedCards
.
Clear
();
_duel
.
LastSummonedCards
.
Clear
();
_duel
.
Fields
[
0
].
BattlingMonster
=
null
;
_duel
.
Fields
[
0
].
BattlingMonster
=
null
;
_duel
.
Fields
[
1
].
BattlingMonster
=
null
;
_duel
.
Fields
[
1
].
BattlingMonster
=
null
;
_duel
.
Fields
[
0
].
UnderAttack
=
false
;
_duel
.
Fields
[
1
].
UnderAttack
=
false
;
_ai
.
OnNewPhase
();
_ai
.
OnNewPhase
();
}
}
...
@@ -621,6 +633,7 @@ namespace WindBot.Game
...
@@ -621,6 +633,7 @@ namespace WindBot.Game
}
}
_duel
.
Fields
[
attackcard
.
Controller
].
BattlingMonster
=
attackcard
;
_duel
.
Fields
[
attackcard
.
Controller
].
BattlingMonster
=
attackcard
;
_duel
.
Fields
[
1
-
attackcard
.
Controller
].
BattlingMonster
=
defendcard
;
_duel
.
Fields
[
1
-
attackcard
.
Controller
].
BattlingMonster
=
defendcard
;
_duel
.
Fields
[
1
-
attackcard
.
Controller
].
UnderAttack
=
true
;
if
(
ld
==
0
&&
ca
!=
0
)
if
(
ld
==
0
&&
ca
!=
0
)
{
{
...
@@ -628,6 +641,18 @@ namespace WindBot.Game
...
@@ -628,6 +641,18 @@ namespace WindBot.Game
}
}
}
}
private
void
OnBattle
(
BinaryReader
packet
)
{
_duel
.
Fields
[
0
].
UnderAttack
=
false
;
_duel
.
Fields
[
1
].
UnderAttack
=
false
;
}
private
void
OnAttackDisabled
(
BinaryReader
packet
)
{
_duel
.
Fields
[
0
].
UnderAttack
=
false
;
_duel
.
Fields
[
1
].
UnderAttack
=
false
;
}
private
void
OnPosChange
(
BinaryReader
packet
)
private
void
OnPosChange
(
BinaryReader
packet
)
{
{
packet
.
ReadInt32
();
// card id
packet
.
ReadInt32
();
// card id
...
...
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