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
9e9d7442
Commit
9e9d7442
authored
Aug 18, 2017
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update common S&T executors
parent
aef57f18
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
309 additions
and
239 deletions
+309
-239
Game/AI/AIFunctions.cs
Game/AI/AIFunctions.cs
+29
-0
Game/AI/Decks/BlueEyesExecutor.cs
Game/AI/Decks/BlueEyesExecutor.cs
+2
-6
Game/AI/Decks/DoEveryThingExecutor.cs
Game/AI/Decks/DoEveryThingExecutor.cs
+1
-5
Game/AI/Decks/DragunityExecutor.cs
Game/AI/Decks/DragunityExecutor.cs
+3
-9
Game/AI/Decks/EvilswarmExecutor.cs
Game/AI/Decks/EvilswarmExecutor.cs
+5
-15
Game/AI/Decks/FrogExecutor.cs
Game/AI/Decks/FrogExecutor.cs
+0
-5
Game/AI/Decks/GravekeeperExecutor.cs
Game/AI/Decks/GravekeeperExecutor.cs
+1
-1
Game/AI/Decks/GraydleExecutor.cs
Game/AI/Decks/GraydleExecutor.cs
+5
-15
Game/AI/Decks/HorusExecutor.cs
Game/AI/Decks/HorusExecutor.cs
+1
-1
Game/AI/Decks/QliphortExecutor.cs
Game/AI/Decks/QliphortExecutor.cs
+1
-10
Game/AI/Decks/RainbowExecutor.cs
Game/AI/Decks/RainbowExecutor.cs
+2
-12
Game/AI/Decks/Rank5Executor.cs
Game/AI/Decks/Rank5Executor.cs
+0
-14
Game/AI/Decks/ToadallyAwesomeExecutor.cs
Game/AI/Decks/ToadallyAwesomeExecutor.cs
+1
-0
Game/AI/Decks/YosenjuExecutor.cs
Game/AI/Decks/YosenjuExecutor.cs
+5
-31
Game/AI/Decks/ZexalWeaponsExecutor.cs
Game/AI/Decks/ZexalWeaponsExecutor.cs
+3
-18
Game/AI/Decks/ZoodiacExecutor.cs
Game/AI/Decks/ZoodiacExecutor.cs
+7
-78
Game/AI/DefaultExecutor.cs
Game/AI/DefaultExecutor.cs
+243
-19
No files found.
Game/AI/AIFunctions.cs
View file @
9e9d7442
...
@@ -119,6 +119,21 @@ namespace WindBot.Game.AI
...
@@ -119,6 +119,21 @@ namespace WindBot.Game.AI
return
null
;
return
null
;
}
}
public
ClientCard
GetAnyEnemyMonster
()
{
List
<
ClientCard
>
monsters
=
Enemy
.
GetMonsters
();
ClientCard
hmonster
=
monsters
.
GetHighestAttackMonster
();
if
(
hmonster
!=
null
)
{
return
hmonster
;
}
foreach
(
ClientCard
monster
in
monsters
)
{
return
monster
;
}
return
null
;
}
public
ClientCard
GetProblematicCard
(
int
attack
=
0
)
public
ClientCard
GetProblematicCard
(
int
attack
=
0
)
{
{
ClientCard
card
=
Enemy
.
MonsterZone
.
GetInvincibleMonster
();
ClientCard
card
=
Enemy
.
MonsterZone
.
GetInvincibleMonster
();
...
@@ -135,6 +150,20 @@ namespace WindBot.Game.AI
...
@@ -135,6 +150,20 @@ namespace WindBot.Game.AI
return
GetOneEnemyBetterThanValue
(
attack
,
true
);
return
GetOneEnemyBetterThanValue
(
attack
,
true
);
}
}
public
ClientCard
GetBestEnemyCard
()
{
ClientCard
card
=
GetProblematicCard
();
if
(
card
!=
null
)
return
card
;
card
=
Enemy
.
MonsterZone
.
GetHighestAttackMonster
();
if
(
card
!=
null
)
return
card
;
List
<
ClientCard
>
spells
=
Enemy
.
GetSpells
();
if
(
spells
.
Count
>
0
)
return
spells
[
0
];
return
null
;
}
public
ClientCard
GetProblematicMonsterCard
(
int
attack
=
0
)
public
ClientCard
GetProblematicMonsterCard
(
int
attack
=
0
)
{
{
ClientCard
card
=
Enemy
.
MonsterZone
.
GetInvincibleMonster
();
ClientCard
card
=
Enemy
.
MonsterZone
.
GetInvincibleMonster
();
...
...
Game/AI/Decks/BlueEyesExecutor.cs
View file @
9e9d7442
...
@@ -52,6 +52,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -52,6 +52,7 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
// 有坑先清
// 有坑先清
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
银河旋风
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
银河旋风
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
...
@@ -71,7 +72,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -71,7 +72,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
抵价购物
,
抵价购物效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
抵价购物
,
抵价购物效果
);
// 吸一口
// 吸一口
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而贪欲之壶
,
强欲而贪欲之壶效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而贪欲之壶
,
DefaultPotOfDesires
);
// 有亚白就跳
// 有亚白就跳
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
青眼亚白龙
,
青眼亚白龙特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
青眼亚白龙
,
青眼亚白龙特殊召唤
);
...
@@ -484,11 +485,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -484,11 +485,6 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
private
bool
强欲而贪欲之壶效果
()
{
return
Bot
.
Deck
.
Count
>
15
;
}
private
bool
苍眼银龙效果
()
private
bool
苍眼银龙效果
()
{
{
Logger
.
DebugWriteLine
(
"苍眼银龙效果."
);
Logger
.
DebugWriteLine
(
"苍眼银龙效果."
);
...
...
Game/AI/Decks/DoEveryThingExecutor.cs
View file @
9e9d7442
...
@@ -19,7 +19,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -19,7 +19,7 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
DontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
D
efaultD
ontChainMyself
);
AddExecutor
(
ExecutorType
.
SummonOrSet
);
AddExecutor
(
ExecutorType
.
SummonOrSet
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
SpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
);
...
@@ -41,9 +41,5 @@ namespace WindBot.Game.AI.Decks
...
@@ -41,9 +41,5 @@ namespace WindBot.Game.AI.Decks
return
Program
.
Rand
.
Next
(
options
.
Count
);
return
Program
.
Rand
.
Next
(
options
.
Count
);
}
}
private
bool
DontChainMyself
()
{
return
LastChainPlayer
!=
0
;
}
}
}
}
}
\ No newline at end of file
Game/AI/Decks/DragunityExecutor.cs
View file @
9e9d7442
...
@@ -170,7 +170,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -170,7 +170,7 @@ namespace WindBot.Game.AI.Decks
break;
break;
}
}
}
}
if (!hasRealMonster || GetProblematicCard() != null)*/
if (!hasRealMonster ||
AI.Utils.
GetProblematicCard() != null)*/
needId
=
(
int
)
CardId
.
DragunityDux
;
needId
=
(
int
)
CardId
.
DragunityDux
;
}
}
...
@@ -344,13 +344,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -344,13 +344,13 @@ namespace WindBot.Game.AI.Decks
{
{
//if (AI.Utils.IsOneEnemyBetterThanValue(2500, true))
//if (AI.Utils.IsOneEnemyBetterThanValue(2500, true))
// return true;
// return true;
ClientCard
invincible
=
GetProblematicCard
();
ClientCard
invincible
=
AI
.
Utils
.
GetProblematicCard
();
return
invincible
!=
null
;
return
invincible
!=
null
;
}
}
private
bool
ScrapDragonEffect
()
private
bool
ScrapDragonEffect
()
{
{
ClientCard
invincible
=
GetProblematicCard
();
ClientCard
invincible
=
AI
.
Utils
.
GetProblematicCard
();
if
(
invincible
==
null
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2800
-
1
,
false
))
if
(
invincible
==
null
&&
!
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
2800
-
1
,
false
))
return
false
;
return
false
;
...
@@ -489,11 +489,5 @@ namespace WindBot.Game.AI.Decks
...
@@ -489,11 +489,5 @@ namespace WindBot.Game.AI.Decks
}
}
return
Duel
.
Player
==
1
;
return
Duel
.
Player
==
1
;
}
}
private
ClientCard
GetProblematicCard
()
{
ClientCard
card
=
Enemy
.
MonsterZone
.
GetInvincibleMonster
();
return
card
??
Enemy
.
SpellZone
.
GetFloodgate
();
}
}
}
}
}
\ No newline at end of file
Game/AI/Decks/EvilswarmExecutor.cs
View file @
9e9d7442
...
@@ -23,28 +23,18 @@ namespace WindBot.Game.AI.Decks
...
@@ -23,28 +23,18 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
Default
MysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
Default
CosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
Default
SolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
SolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
Default
SolemnStrike
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
侵略的泛发感染
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
侵略的泛发感染
);
AddExecutor
(
ExecutorType
.
Activate
,
DontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
D
efaultD
ontChainMyself
);
AddExecutor
(
ExecutorType
.
Summon
);
AddExecutor
(
ExecutorType
.
Summon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
SpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
);
}
}
private
bool
DontChainMyself
()
{
foreach
(
CardExecutor
exec
in
Executors
)
{
if
(
exec
.
Type
==
Type
&&
exec
.
CardId
==
Card
.
Id
)
return
false
;
}
return
LastChainPlayer
!=
0
;
}
// will be added soon...?
// will be added soon...?
}
}
}
}
\ No newline at end of file
Game/AI/Decks/FrogExecutor.cs
View file @
9e9d7442
...
@@ -189,11 +189,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -189,11 +189,6 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
}
}
private
bool
DarkHole
()
{
return
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
);
}
private
bool
Terraforming
()
private
bool
Terraforming
()
{
{
if
(
Bot
.
HasInHand
((
int
)
CardId
.
Wetlands
))
if
(
Bot
.
HasInHand
((
int
)
CardId
.
Wetlands
))
...
...
Game/AI/Decks/GravekeeperExecutor.cs
View file @
9e9d7442
...
@@ -52,7 +52,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -52,7 +52,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
王家长眠之谷
,
王家长眠之谷
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
王家长眠之谷
,
王家长眠之谷
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
奈落的落穴
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
奈落的落穴
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
UniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
SolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
次元幽闭
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
次元幽闭
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
降灵的仪式
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
降灵的仪式
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
王家长眠之谷的王墓
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
王家长眠之谷的王墓
,
DefaultUniqueTrap
);
...
...
Game/AI/Decks/GraydleExecutor.cs
View file @
9e9d7442
...
@@ -22,27 +22,17 @@ namespace WindBot.Game.AI.Decks
...
@@ -22,27 +22,17 @@ namespace WindBot.Game.AI.Decks
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
Default
MysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
Default
CosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
Default
SolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
Default
SolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
Default
Trap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
Default
SolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
DontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
D
efaultD
ontChainMyself
);
AddExecutor
(
ExecutorType
.
MonsterSet
);
AddExecutor
(
ExecutorType
.
MonsterSet
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
SpSummon
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
Repos
,
DefaultMonsterRepos
);
AddExecutor
(
ExecutorType
.
SpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
);
}
}
private
bool
DontChainMyself
()
{
foreach
(
CardExecutor
exec
in
Executors
)
{
if
(
exec
.
Type
==
Type
&&
exec
.
CardId
==
Card
.
Id
)
return
false
;
}
return
LastChainPlayer
!=
0
;
}
// will be added soon...?
// will be added soon...?
}
}
}
}
\ No newline at end of file
Game/AI/Decks/HorusExecutor.cs
View file @
9e9d7442
...
@@ -40,7 +40,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -40,7 +40,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
SpellSet
,
DefaultSpellSet
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HorusTheBlackFlameDragonLv6
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
HorusTheBlackFlameDragonLv6
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StampingDestruction
,
Default
StampingDestructi
on
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
StampingDestruction
,
Default
MysticalSpaceTypho
on
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
MysticalSpaceTyphoon
,
DefaultMysticalSpaceTyphoon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
FoolishBurial
,
FoolishBurial
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Mountain
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
Mountain
,
DefaultField
);
...
...
Game/AI/Decks/QliphortExecutor.cs
View file @
9e9d7442
...
@@ -112,7 +112,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -112,7 +112,7 @@ namespace WindBot.Game.AI.Decks
// 坑人
// 坑人
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
反大革命
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
反大革命
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
神之通告
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
技能抽取
,
技能抽取
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
技能抽取
,
技能抽取
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虚无空间
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虚无空间
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强制脱出装置
,
DefaultCompulsoryEvacuationDevice
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强制脱出装置
,
DefaultCompulsoryEvacuationDevice
);
...
@@ -159,11 +159,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -159,11 +159,6 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
private
bool
神之通告
()
{
return
(
Duel
.
LifePoints
[
0
]
>
1500
)
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
技能抽取
()
private
bool
技能抽取
()
{
{
return
(
Duel
.
LifePoints
[
0
]
>
1000
)
&&
DefaultUniqueTrap
();
return
(
Duel
.
LifePoints
[
0
]
>
1000
)
&&
DefaultUniqueTrap
();
...
@@ -425,9 +420,5 @@ namespace WindBot.Game.AI.Decks
...
@@ -425,9 +420,5 @@ namespace WindBot.Game.AI.Decks
return
false
;
return
false
;
}
}
private
bool
DontChainMyself
()
{
return
LastChainPlayer
!=
0
;
}
}
}
}
}
\ No newline at end of file
Game/AI/Decks/RainbowExecutor.cs
View file @
9e9d7442
...
@@ -64,7 +64,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -64,7 +64,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
救援兔
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
救援兔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
救援兔
,
救援兔效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
救援兔
,
救援兔效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而贪欲之壶
,
强欲而贪欲之壶效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
强欲而贪欲之壶
,
DefaultPotOfDesires
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
曼陀罗天使号手
,
曼陀罗天使号手通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
曼陀罗天使号手
,
曼陀罗天使号手通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
打喷嚏的河马龙
,
打喷嚏的河马龙通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
打喷嚏的河马龙
,
打喷嚏的河马龙通常召唤
);
...
@@ -94,7 +94,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -94,7 +94,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
,
芙莉西亚之虫惑魔特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
,
芙莉西亚之虫惑魔特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
地碎
,
地碎效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
地碎
,
DefaultSmashingGround
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鸟铳士卡斯泰尔
,
鸟铳士卡斯泰尔效果
);
...
@@ -507,16 +507,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -507,16 +507,6 @@ namespace WindBot.Game.AI.Decks
return
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
);
return
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
);
}
}
private
bool
强欲而贪欲之壶效果
()
{
return
Bot
.
Deck
.
Count
>
15
;
}
private
bool
地碎效果
()
{
return
AI
.
Utils
.
IsEnemyBetter
(
false
,
false
);
}
private
bool
陷阱卡覆盖
()
private
bool
陷阱卡覆盖
()
{
{
return
!
Bot
.
HasInMonstersZone
((
int
)
CardId
.
No59
背反之料理人
,
true
,
true
);
return
!
Bot
.
HasInMonstersZone
((
int
)
CardId
.
No59
背反之料理人
,
true
,
true
);
...
...
Game/AI/Decks/Rank5Executor.cs
View file @
9e9d7442
...
@@ -415,19 +415,5 @@ namespace WindBot.Game.AI.Decks
...
@@ -415,19 +415,5 @@ namespace WindBot.Game.AI.Decks
}
}
return
false
;
return
false
;
}
}
private
ClientCard
GetBestEnemyCard
()
{
ClientCard
card
=
AI
.
Utils
.
GetProblematicCard
();
if
(
card
!=
null
)
return
card
;
card
=
Enemy
.
MonsterZone
.
GetHighestAttackMonster
();
if
(
card
!=
null
)
return
card
;
List
<
ClientCard
>
spells
=
Enemy
.
GetSpells
();
if
(
spells
.
Count
>
0
)
return
spells
[
0
];
return
null
;
}
}
}
}
}
Game/AI/Decks/ToadallyAwesomeExecutor.cs
View file @
9e9d7442
...
@@ -45,6 +45,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -45,6 +45,7 @@ namespace WindBot.Game.AI.Decks
public
ToadallyAwesomeExecutor
(
GameAI
ai
,
Duel
duel
)
public
ToadallyAwesomeExecutor
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
:
base
(
ai
,
duel
)
{
{
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
银河旋风
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
银河旋风
,
DefaultGalaxyCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
...
...
Game/AI/Decks/YosenjuExecutor.cs
View file @
9e9d7442
...
@@ -58,7 +58,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -58,7 +58,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
// 清场
// 清场
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
宇宙旋风
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
宇宙旋风
,
DefaultCosmicCyclone
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
...
@@ -140,9 +141,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -140,9 +141,9 @@ namespace WindBot.Game.AI.Decks
// 坑人
// 坑人
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
魔力抽取
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
魔力抽取
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
神之警告
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之警告
,
DefaultSolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
神之通告
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之通告
,
DefaultSolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
神之宣告
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
神之宣告
,
DefaultSolemnJudgment
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
大宇宙
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
大宇宙
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虚无空间
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
虚无空间
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
DefaultUniqueTrap
);
...
@@ -192,29 +193,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -192,29 +193,6 @@ namespace WindBot.Game.AI.Decks
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
}
}
private
bool
宇宙旋风
()
{
foreach
(
ClientCard
card
in
CurrentChain
)
if
(
card
.
Id
==
(
int
)
CardId
.
宇宙旋风
)
return
false
;
return
(
Duel
.
LifePoints
[
0
]
>
1000
)
&&
DefaultMysticalSpaceTyphoon
();
}
private
bool
神之警告
()
{
return
(
Duel
.
LifePoints
[
0
]
>
2000
)
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
神之通告
()
{
return
(
Duel
.
LifePoints
[
0
]
>
1500
)
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
神之宣告
()
{
return
!(
Duel
.
ChainTargets
.
Count
==
1
&&
Card
.
Equals
(
Duel
.
ChainTargets
[
0
]))
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
强欲而谦虚之壶
()
private
bool
强欲而谦虚之壶
()
{
{
if
(
已发动削命
)
if
(
已发动削命
)
...
@@ -372,9 +350,5 @@ namespace WindBot.Game.AI.Decks
...
@@ -372,9 +350,5 @@ namespace WindBot.Game.AI.Decks
return
LastChainPlayer
==
1
;
return
LastChainPlayer
==
1
;
}
}
private
bool
DontChainMyself
()
{
return
LastChainPlayer
!=
0
;
}
}
}
}
}
\ No newline at end of file
Game/AI/Decks/ZexalWeaponsExecutor.cs
View file @
9e9d7442
...
@@ -116,9 +116,9 @@ namespace WindBot.Game.AI.Decks
...
@@ -116,9 +116,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
.
BreakthroughSkill
,
BreakthroughSkill
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
BreakthroughSkill
,
Default
BreakthroughSkill
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
SolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnWarning
,
Default
SolemnWarning
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
SolemnStrike
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
SolemnStrike
,
Default
SolemnStrike
);
}
}
public
override
bool
OnSelectHand
()
public
override
bool
OnSelectHand
()
...
@@ -276,21 +276,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -276,21 +276,6 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
private
bool
BreakthroughSkill
()
{
return
(
CurrentChain
.
Count
>
0
&&
DefaultTrap
());
}
private
bool
SolemnWarning
()
{
return
(
Duel
.
LifePoints
[
0
]
>
2000
)
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
SolemnStrike
()
{
return
(
Duel
.
LifePoints
[
0
]
>
1500
)
&&
!(
Duel
.
Player
==
0
&&
LastChainPlayer
==
-
1
)
&&
DefaultTrap
();
}
private
bool
MonsterRepos
()
private
bool
MonsterRepos
()
{
{
if
(
Card
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
)
if
(
Card
.
Id
==
(
int
)
CardId
.
NumberS39UtopiatheLightning
)
...
...
Game/AI/Decks/ZoodiacExecutor.cs
View file @
9e9d7442
...
@@ -39,11 +39,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -39,11 +39,7 @@ namespace WindBot.Game.AI.Decks
十二兽虎炮
=
11510448
,
十二兽虎炮
=
11510448
,
十二兽狗环
=
41375811
,
十二兽狗环
=
41375811
,
十二兽龙枪
=
48905153
,
十二兽龙枪
=
48905153
,
十二兽牛犄
=
85115440
,
十二兽牛犄
=
85115440
雷击坏兽雷鸣龙王
=
48770333
,
怒炎坏兽多哥兰
=
93332803
,
对坏兽用决战兵器超级机械多哥兰
=
84769941
}
}
bool
已特殊召唤虎炮
=
false
;
bool
已特殊召唤虎炮
=
false
;
...
@@ -56,14 +52,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -56,14 +52,14 @@ namespace WindBot.Game.AI.Decks
{
{
// Quick spells
// Quick spells
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
鹰身女妖的羽毛扫
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
遭受妨碍的坏兽安眠
,
遭受妨碍的坏兽安眠效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
遭受妨碍的坏兽安眠
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
黑洞
,
DefaultDarkHole
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
坏兽特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
坏兽特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
坏兽特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
坏兽特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
坏兽特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
DefaultKaijuSpsummon
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星球改造
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星球改造
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
暴走魔法阵
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
暴走魔法阵
);
...
@@ -150,73 +146,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -150,73 +146,6 @@ namespace WindBot.Game.AI.Decks
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
return
attacker
.
RealPower
>
defender
.
GetDefensePower
();
}
}
private
bool
遭受妨碍的坏兽安眠效果
()
{
if
(
Card
.
Location
==
CardLocation
.
Grave
)
{
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
(
int
)
CardId
.
怪粉坏兽加达拉
});
return
true
;
}
AI
.
SelectCard
(
new
[]
{
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
});
AI
.
SelectNextCard
(
new
[]
{
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
(
int
)
CardId
.
多次元坏兽拉迪安
});
return
DefaultDarkHole
();
}
private
bool
坏兽特殊召唤
()
{
IList
<
int
>
kaijus
=
new
[]
{
(
int
)
CardId
.
坏星坏兽席兹奇埃鲁
,
(
int
)
CardId
.
怪粉坏兽加达拉
,
(
int
)
CardId
.
海龟坏兽加美西耶勒
,
(
int
)
CardId
.
多次元坏兽拉迪安
,
(
int
)
CardId
.
黏丝坏兽库莫古斯
,
(
int
)
CardId
.
雷击坏兽雷鸣龙王
,
(
int
)
CardId
.
怒炎坏兽多哥兰
,
(
int
)
CardId
.
对坏兽用决战兵器超级机械多哥兰
};
foreach
(
ClientCard
monster
in
Enemy
.
GetMonsters
())
{
if
(
kaijus
.
Contains
(
monster
.
Id
))
return
Card
.
GetDefensePower
()
>
monster
.
GetDefensePower
();
}
ClientCard
card
=
Enemy
.
MonsterZone
.
GetFloodgate
();
if
(
card
!=
null
)
{
AI
.
SelectCard
(
card
);
return
true
;
}
card
=
Enemy
.
MonsterZone
.
GetDangerousMonster
();
if
(
card
!=
null
)
{
AI
.
SelectCard
(
card
);
return
true
;
}
card
=
AI
.
Utils
.
GetOneEnemyBetterThanValue
(
Card
.
GetDefensePower
(),
false
);
if
(
card
!=
null
)
{
AI
.
SelectCard
(
card
);
return
true
;
}
return
false
;
}
private
bool
电光皇特殊召唤
()
private
bool
电光皇特殊召唤
()
{
{
...
...
Game/AI/DefaultExecutor.cs
View file @
9e9d7442
This diff is collapsed.
Click to expand it.
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