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
神之吹息
windbot
Commits
90f88870
Commit
90f88870
authored
Oct 12, 2021
by
苍蓝
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update 幻宇子
parent
d11241bb
Changes
13
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
900 additions
and
50 deletions
+900
-50
BotWrapper/bot.conf
BotWrapper/bot.conf
+6
-1
Decks/AI_Mathmech.ydk
Decks/AI_Mathmech.ydk
+1
-1
Decks/AI_Mituzi.ydk
Decks/AI_Mituzi.ydk
+44
-0
Decks/AI_SaikyoBattleFlag.ydk
Decks/AI_SaikyoBattleFlag.ydk
+1
-2
Dialogs/Mituzi.zh-CN.json
Dialogs/Mituzi.zh-CN.json
+61
-0
Game/AI/CardContainer.cs
Game/AI/CardContainer.cs
+7
-1
Game/AI/Decks/MathMechExecutor.cs
Game/AI/Decks/MathMechExecutor.cs
+34
-19
Game/AI/Decks/MituziExecutor.cs
Game/AI/Decks/MituziExecutor.cs
+690
-0
Game/AI/Decks/MokeyMokeyExecutor.cs
Game/AI/Decks/MokeyMokeyExecutor.cs
+10
-11
Game/AI/Decks/MokeyMokeyKingExecutor.cs
Game/AI/Decks/MokeyMokeyKingExecutor.cs
+4
-4
Game/AI/Decks/SaikyoBattleFlagExecutor.cs
Game/AI/Decks/SaikyoBattleFlagExecutor.cs
+34
-11
WindBot.csproj
WindBot.csproj
+3
-0
bots.json
bots.json
+5
-0
No files found.
BotWrapper/bot.conf
View file @
90f88870
...
@@ -26,5 +26,10 @@ SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
...
@@ -26,5 +26,10 @@ SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!传说子
!传说子
Name
=传说子
Deck
=
TheLegend
Dialog
=
rd
Name
=传说子
Deck
=
TheLegend
Dialog
=
rd
大量传说卡堆成的卡组。
大量传说卡堆成的卡组。需勾选不检查卡组才能对战。
SUPPORT_MASTER_RULE_3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
!幻宇子
Name
=幻宇子
Deck
=
Mituzi
Dialog
=
Mituzi
.
zh
-
CN
新手友好型幻龙卡组。
SUPPORT_MASTER_RULE_3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
SUPPORT_MASTER_RULE_3
SUPPORT_NEW_MASTER_RULE
SUPPORT_MASTER_RULE_2020
\ No newline at end of file
Decks/AI_Mathmech.ydk
View file @
90f88870
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
120193002
120193002
120183002
120183002
120183002
120183002
120183002
120183024
120183024
120183024
120183024
120183030
120183030
...
@@ -35,7 +36,6 @@
...
@@ -35,7 +36,6 @@
120155060
120155060
120155060
120155060
120183062
120183062
120183062
120183063
120183063
120183063
120183063
120170061
120170061
...
...
Decks/AI_Mituzi.ydk
0 → 100644
View file @
90f88870
#created by ...
#main
120151029
120151029
120155002
120155002
120155002
120155001
120155001
120155001
120155022
120155022
120155024
120155024
120155024
120192010
120192010
120192010
120192011
120192011
120192011
120183034
120183034
120183034
120170037
120170037
120170037
120155025
120155025
120155025
120120037
120155044
120155044
120183053
120194004
120155042
120155042
120151033
120151033
120155053
120155053
120155054
#extra
!side
Decks/AI_SaikyoBattleFlag.ydk
View file @
90f88870
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
120193002
120193002
120183002
120183002
120183002
120183002
120183002
120181001
120181001
120181001
120181001
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
120155060
120155060
120155060
120155060
120183062
120183062
120183062
120183063
120183063
120183063
120183063
120170061
120170061
...
...
Dialogs/Mituzi.zh-CN.json
0 → 100644
View file @
90f88870
{
"welcome"
:
[
"是新朋友咩?欢迎~(≧▽≦)"
,
"你好呀,现在的我还很弱,总有一天会变强哒!ψ(`∇´)ψ"
,
"据说这里是新人保护区,不会吧(|| ゚Д゚)"
],
"deckerror"
:
[
"什么,居然不让我使用我无敌的{0}!"
],
"duelstart"
:
[
"嘿嘿,还请手下留情哦~
\\
(//∇//)
\\
"
,
"感觉是很不得了的对手啊Σ(゚д゚;)"
,
"人家会全力以赴的哦(≧ω≦)"
,
"开始决斗了,要认真要认真<(`^´)>"
],
"newturn"
:
[
"抽卡抽卡,会抽到什么呢~(´△`)"
,
"希望能有想要的卡…(><)"
],
"endturn"
:
[
"真期待下一回合呀!(。ò ∀ ó。)"
,
"让我猜猜你会怎么做呢~(=^^=)"
],
"directattack"
:
[
"{0},削平山岳吧!(/≧▽≦/)"
,
"呼呼,是不是露出破绽了?\(^▽^)/"
,
"近距离体会一下{0}的帅气吧~(/ω\)"
,
"加油啊{0}!不要输哦!(^O^)"
],
"attack"
:
[
"{1}可不是{0}的对手哦( ̄∀ ̄)"
,
"{1}是挡不住{0}的,小心啦!(☆∀☆)"
,
"{1}和{0}之间的胜者会是谁呢~(⌒▽⌒) "
],
"ondirectattack"
:
[
"呜呜呜呜呜。゚(゚´Д`゚)゚。"
,
"哇啊啊!情况不妙啦!(|| ゚Д゚)"
,
"再这么下去人家就输掉啦呜呜。゚(゚´Д`゚)゚。"
],
"facedownmonstername"
:
"怪兽"
,
"activate"
:
[
"{0},建造城池吧!\(^▽^)/"
,
"可别小看{0}的能力哦~( ̄∀ ̄)"
,
"准备施工了哦,{0}\(^▽^)/"
],
"summon"
:
[
"{0}登场啦,小心点哦(☆∀☆)"
,
"这可是人家最喜欢的怪兽!(><)"
,
"{0}超帅的对吧!(/ω\)"
,
"{0}很可爱吧?你舍得打它吗(/ω\)"
],
"setmonster"
:
[
"嗯嗯~总之先这样吧?(=^▽^=)"
,
"隐藏好我的王牌~_(:D)∠)_"
],
"chaining"
:
[
"现在可不能攻击哦~╮( ̄▽ ̄)╭"
,
"我当然会想到这一步啦~(o^∀^o)"
,
"鲁莽攻击可不行哦~<(`^´)>"
]
}
Game/AI/CardContainer.cs
View file @
90f88870
...
@@ -51,9 +51,15 @@ namespace WindBot.Game.AI
...
@@ -51,9 +51,15 @@ namespace WindBot.Game.AI
public
static
ClientCard
GetHighestLevelMonster
(
this
IEnumerable
<
ClientCard
>
cards
,
bool
canBeTarget
=
false
)
public
static
ClientCard
GetHighestLevelMonster
(
this
IEnumerable
<
ClientCard
>
cards
,
bool
canBeTarget
=
false
)
{
{
return
cards
return
cards
.
Where
(
card
=>
card
?.
Data
!=
null
&&
card
.
HasType
(
CardType
.
Monster
))
.
Where
(
card
=>
card
?.
Data
!=
null
&&
card
.
HasType
(
CardType
.
Monster
)
&&
!(
canBeTarget
&&
card
.
IsShouldNotBeTarget
())
)
.
OrderBy
(
card
=>
card
.
Level
).
FirstOrDefault
();
.
OrderBy
(
card
=>
card
.
Level
).
FirstOrDefault
();
}
}
public
static
ClientCard
GetLowestLevelMonster
(
this
IEnumerable
<
ClientCard
>
cards
,
bool
canBeTarget
=
false
)
{
return
cards
.
Where
(
card
=>
card
?.
Data
!=
null
&&
card
.
HasType
(
CardType
.
Monster
)
&&
!(
canBeTarget
&&
card
.
IsShouldNotBeTarget
()))
.
OrderByDescending
(
card
=>
card
.
Level
).
FirstOrDefault
();
}
public
static
ClientCard
GetHighestDefenseMonster
(
this
IEnumerable
<
ClientCard
>
cards
,
bool
canBeTarget
=
false
)
public
static
ClientCard
GetHighestDefenseMonster
(
this
IEnumerable
<
ClientCard
>
cards
,
bool
canBeTarget
=
false
)
{
{
return
cards
return
cards
...
...
Game/AI/Decks/MathMechExecutor.cs
View file @
90f88870
...
@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
双角兽
,
瞄准鹰双角兽
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
双角兽
,
瞄准鹰双角兽
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
成金恐龙王
,
瞄准鹰成金恐龙王
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
成金恐龙王
,
瞄准鹰成金恐龙王
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
瞄准鹰坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
瞄准鹰坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
最强战旗
,
DefaultOverSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
钢机神
,
DefaultOverSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
死苏
,
死苏
effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
死苏
,
死苏
effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
最强战旗
,
最强战旗
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
最强战旗
,
最强战旗
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
对死者的供奉
,
死供
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
对死者的供奉
,
死供
Effect
);
...
@@ -76,22 +78,24 @@ namespace WindBot.Game.AI.Decks
...
@@ -76,22 +78,24 @@ namespace WindBot.Game.AI.Decks
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
成金恐龙王
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
成金恐龙王
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
工匠无人机
,
无人机
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
工匠无人机
,
无人机
Effect
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
工匠无人机
,
无人机
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
突击坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
突击坦克
summon
);
;
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
旗兽
,
DefaultMonsterSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
社员
,
DefaultMonsterSummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
突击坦克
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
突击坦克
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
旗兽
,
突击坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
社员
,
突击坦克
summon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
旗兽
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
社员
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
瞄准鹰
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
瞄准鹰
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
双角兽
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
双角兽
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
,
兽之拳
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
1
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
1
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
减俸
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
减俸
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
2
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
2
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
冻结
,
冻结
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
冻结
,
冻结
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Repos
,
CardId
.
最强战旗
,
圣防
Repos
);
AddExecutor
(
ExecutorType
.
Repos
,
CardId
.
最强战旗
,
圣防
Repos
);
...
@@ -102,6 +106,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -102,6 +106,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
铁之重击
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
铁之重击
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
死苏
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
死苏
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
对死者的供奉
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
对死者的供奉
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField2
);
}
}
...
@@ -174,6 +179,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -174,6 +179,11 @@ namespace WindBot.Game.AI.Decks
DoubleTribute
=
false
;
DoubleTribute
=
false
;
return
true
;
return
true
;
}
}
private
bool
DefaultOverSummon
()
{
if
(
Bot
.
Hand
.
Count
>=
6
&&
Bot
.
HasInMonstersZone
(
CardId
.
恶德
))
return
true
;
else
return
false
;
}
private
bool
左迁
1
Effect
()
private
bool
左迁
1
Effect
()
{
{
...
@@ -215,9 +225,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -215,9 +225,10 @@ namespace WindBot.Game.AI.Decks
{
{
return
false
;
return
false
;
}
}
else
if
(
Enemy
.
HasAttackingMonster
()
||
Enemy
.
GetMonsterCount
()
<
1
)
else
//if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
AI
.
SelectCard
(
CardId
.
最强战旗
,
CardId
.
钢机神
,
CardId
.
恶德
,
CardId
.
旗兽
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
双角兽
,
CardId
.
瞄准鹰
);
AI
.
SelectCard
(
CardId
.
最强战旗
,
CardId
.
钢机神
,
CardId
.
恶德
,
CardId
.
旗兽
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
双角兽
,
CardId
.
瞄准鹰
);
else
AI
.
SelectCard
(
Bot
.
Graveyard
.
GetHighestLevelMonster
());
//
else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
return
true
;
return
true
;
}
}
...
@@ -254,16 +265,6 @@ namespace WindBot.Game.AI.Decks
...
@@ -254,16 +265,6 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
private
bool
兽之拳
Effect
()
{
if
(
Enemy
.
BattlingMonster
.
Race
==
(
int
)
CardRace
.
Dragon
)
return
true
;
if
(
Enemy
.
BattlingMonster
.
Race
==
(
int
)
CardRace
.
Fairy
)
return
true
;
if
(
Enemy
.
BattlingMonster
.
Race
==
(
int
)
CardRace
.
SpellCaster
)
return
true
;
return
false
;
}
private
bool
死苏
effect
()
private
bool
死苏
effect
()
{
{
...
@@ -361,7 +362,13 @@ namespace WindBot.Game.AI.Decks
...
@@ -361,7 +362,13 @@ namespace WindBot.Game.AI.Decks
}
}
private
bool
突击坦克
summon
()
private
bool
突击坦克
summon
()
{
{
if
(
Bot
.
MonsterZone
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
==
2
)
return
true
;
if
(
Bot
.
MonsterZone
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
==
2
||
Util
.
GetOneEnemyBetterThanMyBest
(
true
,
true
)
==
null
)
return
true
;
return
false
;
}
private
bool
无人机
summon
()
{
if
(
Bot
.
Hand
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
>=
1
||
Util
.
GetOneEnemyBetterThanMyBest
(
true
,
true
)
==
null
)
return
true
;
return
false
;
return
false
;
}
}
...
@@ -492,6 +499,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -492,6 +499,14 @@ namespace WindBot.Game.AI.Decks
}
}
return
false
;
return
false
;
}
}
private
bool
DefaultField2
()
{
if
(
Bot
.
GetHandCount
()
>=
2
)
{
return
true
;
}
return
false
;
}
private
bool
圣防
Repos
()
private
bool
圣防
Repos
()
{
{
if
(
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
SpellCaster
)
>
0
)
>=
4
&&
Enemy
.
GetSpellCountWithoutField
()
>=
1
&&
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
card
.
IsCode
(
CardId
.
暗黑释放
))
<
3
)
if
(
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
SpellCaster
)
>
0
)
>=
4
&&
Enemy
.
GetSpellCountWithoutField
()
>=
1
&&
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
card
.
IsCode
(
CardId
.
暗黑释放
))
<
3
)
...
...
Game/AI/Decks/MituziExecutor.cs
0 → 100644
View file @
90f88870
This diff is collapsed.
Click to expand it.
Game/AI/Decks/MokeyMokeyExecutor.cs
View file @
90f88870
...
@@ -171,20 +171,19 @@ namespace WindBot.Game.AI.Decks
...
@@ -171,20 +171,19 @@ namespace WindBot.Game.AI.Decks
return
true
;
return
true
;
}
}
private
bool
圣防
Effect
()
{
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
>
1900
)
return
true
;
return
false
;
}
private
bool
落穴
Effect
()
private
bool
落穴
Effect
()
{
{
foreach
(
ClientCard
n
in
Duel
.
LastSummonedCards
)
foreach
(
ClientCard
n
in
Duel
.
LastSummonedCards
)
{
{
if
(
n
.
Attack
>=
1900
)
if
(
n
.
Attack
>=
1900
)
return
true
;
return
true
;
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
-
Util
.
GetTotalAttackingMonsterAttack
(
0
)
>
Bot
.
LifePoints
&&
!
Bot
.
HasDefendingMonster
())
return
true
;
}
}
return
false
;
}
private
bool
圣防
Effect
()
{
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
>
1900
)
return
true
;
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
-
Util
.
GetTotalAttackingMonsterAttack
(
0
)
>
Bot
.
LifePoints
&&
!
Bot
.
HasDefendingMonster
())
return
true
;
return
false
;
return
false
;
}
}
private
bool
火星心少女
Effect
()
private
bool
火星心少女
Effect
()
...
...
Game/AI/Decks/MokeyMokeyKingExecutor.cs
View file @
90f88870
...
@@ -185,15 +185,15 @@ namespace WindBot.Game.AI.Decks
...
@@ -185,15 +185,15 @@ namespace WindBot.Game.AI.Decks
{
{
foreach
(
ClientCard
n
in
Duel
.
LastSummonedCards
)
foreach
(
ClientCard
n
in
Duel
.
LastSummonedCards
)
{
{
if
(
n
.
Attack
>=
1900
)
if
(
n
.
Attack
>=
1900
)
return
true
;
return
true
;
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
-
Util
.
GetTotalAttackingMonsterAttack
(
0
)
>
Bot
.
LifePoints
&&
!
Bot
.
HasDefendingMonster
())
return
true
;
}
}
return
false
;
return
false
;
}
}
private
bool
圣防
Effect
()
private
bool
圣防
Effect
()
{
{
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
>
1900
)
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
>
1900
)
return
true
;
return
true
;
if
(
Util
.
GetTotalAttackingMonsterAttack
(
1
)
-
Util
.
GetTotalAttackingMonsterAttack
(
0
)
>
Bot
.
LifePoints
&&
!
Bot
.
HasDefendingMonster
())
return
true
;
return
false
;
return
false
;
}
}
private
bool
死供
Effect
()
private
bool
死供
Effect
()
...
...
Game/AI/Decks/SaikyoBattleFlagExecutor.cs
View file @
90f88870
...
@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
...
@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
双角兽
,
瞄准鹰双角兽
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
双角兽
,
瞄准鹰双角兽
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
成金恐龙王
,
瞄准鹰成金恐龙王
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
成金恐龙王
,
瞄准鹰成金恐龙王
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
瞄准鹰坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
瞄准鹰坦克
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
最强战旗
,
DefaultOverSummon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
钢机神
,
DefaultOverSummon
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
死苏
,
死苏
effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
死苏
,
死苏
effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
最强战旗
,
最强战旗
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
最强战旗
,
最强战旗
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
对死者的供奉
,
死供
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
对死者的供奉
,
死供
Effect
);
...
@@ -76,22 +78,22 @@ namespace WindBot.Game.AI.Decks
...
@@ -76,22 +78,22 @@ namespace WindBot.Game.AI.Decks
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
成金恐龙王
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
成金恐龙王
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
工匠无人机
,
无人机
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
工匠无人机
,
无人机
Effect
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
突击坦克
summon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
旗兽
,
DefaultMonsterSummon
);
AddExecutor
(
ExecutorType
.
SummonOrSet
,
CardId
.
社员
,
DefaultMonsterSummon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
工匠无人机
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
突击坦克
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
突击坦克
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
工匠无人机
,
无人机
summon
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
突击坦克
,
突击坦克
summon
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
旗兽
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
社员
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
瞄准鹰
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
瞄准鹰
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
双角兽
);
AddExecutor
(
ExecutorType
.
MonsterSet
,
CardId
.
双角兽
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
,
兽之拳
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
1
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
1
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
减俸
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
减俸
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
2
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
左迁
,
左迁
2
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
冻结
,
冻结
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
冻结
,
冻结
Effect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
兽之拳
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Activate
,
DefaultDontChainMyself
);
AddExecutor
(
ExecutorType
.
Repos
,
CardId
.
最强战旗
,
圣防
Repos
);
AddExecutor
(
ExecutorType
.
Repos
,
CardId
.
最强战旗
,
圣防
Repos
);
...
@@ -102,6 +104,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -102,6 +104,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
铁之重击
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
铁之重击
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
死苏
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
死苏
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
对死者的供奉
);
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
对死者的供奉
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
世纪末兽机界
,
DefaultField2
);
}
}
...
@@ -174,6 +177,11 @@ namespace WindBot.Game.AI.Decks
...
@@ -174,6 +177,11 @@ namespace WindBot.Game.AI.Decks
DoubleTribute
=
false
;
DoubleTribute
=
false
;
return
true
;
return
true
;
}
}
private
bool
DefaultOverSummon
()
{
if
(
Bot
.
Hand
.
Count
>=
6
&&
Bot
.
HasInMonstersZone
(
CardId
.
恶德
))
return
true
;
else
return
false
;
}
private
bool
左迁
1
Effect
()
private
bool
左迁
1
Effect
()
{
{
...
@@ -215,9 +223,10 @@ namespace WindBot.Game.AI.Decks
...
@@ -215,9 +223,10 @@ namespace WindBot.Game.AI.Decks
{
{
return
false
;
return
false
;
}
}
else
if
(
Enemy
.
HasAttackingMonster
()
||
Enemy
.
GetMonsterCount
()
<
1
)
else
//if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
AI
.
SelectCard
(
CardId
.
最强战旗
,
CardId
.
钢机神
,
CardId
.
恶德
,
CardId
.
旗兽
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
双角兽
,
CardId
.
瞄准鹰
);
AI
.
SelectCard
(
CardId
.
最强战旗
,
CardId
.
钢机神
,
CardId
.
恶德
,
CardId
.
旗兽
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
双角兽
,
CardId
.
瞄准鹰
);
else
AI
.
SelectCard
(
Bot
.
Graveyard
.
GetHighestLevelMonster
());
//
else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
return
true
;
return
true
;
}
}
...
@@ -361,7 +370,7 @@ namespace WindBot.Game.AI.Decks
...
@@ -361,7 +370,7 @@ namespace WindBot.Game.AI.Decks
}
}
private
bool
突击坦克
summon
()
private
bool
突击坦克
summon
()
{
{
if
(
Bot
.
MonsterZone
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
==
2
)
return
true
;
if
(
Bot
.
MonsterZone
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
==
2
||
Util
.
GetOneEnemyBetterThanMyBest
(
true
,
true
)
==
null
)
return
true
;
return
false
;
return
false
;
}
}
...
@@ -454,6 +463,12 @@ namespace WindBot.Game.AI.Decks
...
@@ -454,6 +463,12 @@ namespace WindBot.Game.AI.Decks
AI
.
SelectCard
(
CardId
.
瞄准鹰
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
旗兽
);
AI
.
SelectCard
(
CardId
.
瞄准鹰
,
CardId
.
突击坦克
,
CardId
.
工匠无人机
,
CardId
.
社员
,
CardId
.
旗兽
);
return
true
;
return
true
;
}
}
private
bool
无人机
summon
()
{
if
(
Bot
.
Hand
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
Machine
)
>
0
)
>=
1
||
Util
.
GetOneEnemyBetterThanMyBest
(
true
,
true
)
==
null
)
return
true
;
return
false
;
}
private
bool
最强战旗
Effect
()
private
bool
最强战旗
Effect
()
{
{
if
(
Util
.
IsOneEnemyBetterThanValue
(
1900
,
false
))
if
(
Util
.
IsOneEnemyBetterThanValue
(
1900
,
false
))
...
@@ -492,6 +507,14 @@ namespace WindBot.Game.AI.Decks
...
@@ -492,6 +507,14 @@ namespace WindBot.Game.AI.Decks
}
}
return
false
;
return
false
;
}
}
private
bool
DefaultField2
()
{
if
(
Bot
.
GetHandCount
()
>=
2
)
{
return
true
;
}
return
false
;
}
private
bool
圣防
Repos
()
private
bool
圣防
Repos
()
{
{
if
(
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
SpellCaster
)
>
0
)
>=
4
&&
Enemy
.
GetSpellCountWithoutField
()
>=
1
&&
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
card
.
IsCode
(
CardId
.
暗黑释放
))
<
3
)
if
(
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
(
card
.
Race
&
(
int
)
CardRace
.
SpellCaster
)
>
0
)
>=
4
&&
Enemy
.
GetSpellCountWithoutField
()
>=
1
&&
Enemy
.
Graveyard
.
GetMatchingCardsCount
(
card
=>
card
.
IsCode
(
CardId
.
暗黑释放
))
<
3
)
...
...
WindBot.csproj
View file @
90f88870
...
@@ -78,6 +78,7 @@
...
@@ -78,6 +78,7 @@
<Compile
Include=
"Game\AI\Decks\BlackwingExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\BlackwingExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\LuckyExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\LuckyExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\MathMechExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\MathMechExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\MituziExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\PureWindsExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\PureWindsExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\DragunExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\DragunExecutor.cs"
/>
<Compile
Include=
"Game\AI\Decks\Level8Executor.cs"
/>
<Compile
Include=
"Game\AI\Decks\Level8Executor.cs"
/>
...
@@ -155,6 +156,8 @@
...
@@ -155,6 +156,8 @@
</ItemGroup>
</ItemGroup>
<ItemGroup>
<ItemGroup>
<None
Include=
"App.config"
/>
<None
Include=
"App.config"
/>
<None
Include=
"Decks\AI_Mituzi.ydk"
/>
<None
Include=
"Dialogs\Mituzi.zh-CN.json"
/>
<None
Include=
"Dialogs\rd-c.json"
/>
<None
Include=
"Dialogs\rd-c.json"
/>
<None
Include=
"Dialogs\rd-d.json"
/>
<None
Include=
"Dialogs\rd-d.json"
/>
<None
Include=
"sqlite3.dll"
>
<None
Include=
"sqlite3.dll"
>
...
...
bots.json
View file @
90f88870
...
@@ -25,6 +25,11 @@
...
@@ -25,6 +25,11 @@
"name"
:
"传说子"
,
"name"
:
"传说子"
,
"deck"
:
"Dragun"
,
"deck"
:
"Dragun"
,
"dialog"
:
"rd"
"dialog"
:
"rd"
},
{
"name"
:
"幻宇子"
,
"deck"
:
"Mituzi"
,
"dialog"
:
"Mituzi.zh-CN"
}
}
]
]
...
...
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