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
904b4c57
Commit
904b4c57
authored
Apr 06, 2018
by
handsomekiwi
Committed by
mercury233
Apr 06, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update LightswornShaddoldinosour and misc (#28)
parent
d2925f39
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
322 additions
and
188 deletions
+322
-188
Dialogs/BA.zh-TW.json
Dialogs/BA.zh-TW.json
+78
-0
Dialogs/kiwi.zh-TW.json
Dialogs/kiwi.zh-TW.json
+0
-1
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
+228
-185
Game/AI/Enums/DangerousMonster.cs
Game/AI/Enums/DangerousMonster.cs
+3
-2
Game/ClientField.cs
Game/ClientField.cs
+13
-0
No files found.
Dialogs/BA.zh-TW.json
0 → 100644
View file @
904b4c57
{
"welcome"
:
[
"真難得有人發現這個。"
,
"真沒想到你能跟我對戰呢!決鬥者。不過也就到此為止了,接下來由我V.F.D(非常友善的決鬥者)來做你的對手。"
],
"deckerror"
:
[
"阿,可能BA又把CBD修壞導致{0}消失了。"
],
"duelstart"
:
[
"這只是AI,打贏不要太高興阿。"
,
"十分致謝233服讓我們有遊戲可以玩,別忘記去拜訪他們。"
,
"反主流學院請洽NOVA。"
,
"Wryyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy."
],
"newturn"
:
[
"到我的回合了,抽牌!"
,
"我的回合,抽牌!"
,
"我抽了一張卡。"
],
"endturn"
:
[
"回合结束。"
,
"我的回合结束了。"
,
"這樣算是成功的展開嗎......"
,
"輪到你了。你的下一句是......我要發動灰流麗對吧!"
],
"directattack"
:
[
"{0},直接攻擊!"
,
"{0},直接攻擊對手!"
,
"{0},没有防守的地方,攻擊!"
,
"{0},攻擊對手的生命值!"
,
"{0},直接攻擊對手的生命值!"
,
"{0},通過直接攻擊打倒對手!"
,
"{0},使用直接攻擊打倒對手!"
,
"{0},直接攻擊釋放你的力量吧!"
,
"我的{0}將會粉碎你的生命值!"
,
"向對手展示你的力量吧,{0}!"
,
"你已經無法阻止我了。{0},攻擊!"
],
"attack"
:
[
"{0},攻擊這體{1}!"
,
"{0},消滅這體{1}!"
,
"{0},打倒{1}!"
,
"{0},衝向那體{1}!"
,
"{0},把你的力量释放到{1}上吧!"
],
"ondirectattack"
:
[
"可惡......"
,
"不過是{0}而已!"
,
"果然我還是太弱了......"
],
"facedownmonstername"
:
"怪獸"
,
"activate"
:
[
"我發動{0}。"
,
"我使用{0}的效果。"
,
"我使用{0}的力量。"
],
"summon"
:
[
"真是HIGH的最高點!出來吧{0}。"
,
"出來吧,{0}!"
,
"出現吧,{0}!"
,
"我召喚了強大的{0}!"
,
"我呼喚{0}參加戰鬥!"
,
"我呼喚出{0}。"
,
"我召喚{0}。"
],
"setmonster"
:
[
"我放置了一體怪獸。"
,
"我裡側表示放置了一體怪獸。"
],
"chaining"
:
[
"看這裡!發動{0}!"
,
"我使用{0}的力量。"
,
"很不錯的戰術...但是我拒絕!{0}!"
,
"真不愧是納粹,竟然能識破我的蓋牌......你說你只是單純的決鬥者?{0},發動!"
,
"看樣子你忘了我的{0}!"
,
"你考慮過我有{0}嗎?"
]
}
Dialogs/kiwi.zh-TW.json
View file @
904b4c57
...
...
@@ -70,7 +70,6 @@
"看這裡!發動{0}!"
,
"我使用{0}的力量。"
,
"很不錯的戰術...但是我拒絕!{0}!"
,
"真不愧是納粹,竟然能識破我的蓋牌......你說你只是單純的決鬥者?{0},發動!"
,
"看樣子你忘了我的{0}!"
,
"你考慮過我有{0}嗎?"
]
...
...
Game/AI/Decks/LightswornShaddoldinosourExecutor.cs
View file @
904b4c57
...
...
@@ -72,18 +72,20 @@ namespace WindBot.Game.AI.Decks
}
bool
Pillused
=
false
;
bool
CrystalWingSynchroDragoneff_used
=
false
;
bool
OvertexCoatlseff_used
=
false
;
public
LightswornShaddoldinosour
(
GameAI
ai
,
Duel
duel
)
:
base
(
ai
,
duel
)
{
//counter
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragonesp
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GhostOgre
,
Hand_act_eff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
AshBlossom
,
Hand_act_eff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MaxxC
,
MaxxC
);
//first do
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
HarpiesFeatherDuster
,
DefaultHarpiesFeatherDusterFirst
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
infiniteTransience
,
infiniteTransience
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
infiniteTransience
,
DefaultBreakthroughSkill
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ThatGrassLooksgreener
);
AddExecutor
(
ExecutorType
.
Summon
,
CardId
.
SouleatingOviraptor
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
SouleatingOviraptor
,
SouleatingOviraptoreff
);
...
...
@@ -93,7 +95,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ChargeOfTheLightBrigade
,
ChargeOfTheLightBrigadeEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
FoolishBurial
,
FoolishBurialEffect
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
InterruptedKaijuSlumber
,
DefaultInterruptedKaijuSlumber
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollFusion
,
ShaddollFusion
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollFusion
,
ShaddollFusion
eff
);
//Reborn
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MonsterReborn
,
RebornEffect
);
//Normal Summon
...
...
@@ -113,27 +115,29 @@ namespace WindBot.Game.AI.Decks
//Sp Summon
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
UltimateConductorTytanno
,
UltimateConductorTytannosp
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
UltimateConductorTytanno
,
UltimateConductorTytannoeff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DoubleEvolutionPill
,
DoubleEvolutionPill
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
DoubleEvolutionPill
,
DoubleEvolutionPill
eff
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
MinervaTheExalte
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
MinervaTheExalte
,
MinervaTheExaltedEffect
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GamecieltheSeaTurtleKaiju
,
DefaultKaijuSpsummon
);
//activate
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GlowUpBulb
,
GlowUpBulb
);
AddExecutor
(
ExecutorType
.
SpSummon
,
CardId
.
GlowUpBulb
,
GlowUpBulbeff
);
//activate chain
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
OvertexCoatls
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
OvertexCoatls
,
OvertexCoatlseff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollBeast
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollFalco
,
ShaddollFalcoeff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollSquamata
,
ShaddollSquamataeff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollDragon
,
ShaddollDragoneff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollHedgehog
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ShaddollHedgehog
,
ShaddollHedgehogeff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
GiantRex
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ElShaddollConstruct
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ElShaddollGrysra
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ElShaddollShekhinaga
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ElShaddollShekhinaga
,
ElShaddollShekhinagaeff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
ElShaddollWinda
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
CrystalWingSynchroDragon
,
CrystalWingSynchroDragoneff
);
AddExecutor
(
ExecutorType
.
Activate
,
CardId
.
TG_WonderMagician
);
//spellset
AddExecutor
(
ExecutorType
.
SpellSet
,
CardId
.
MonsterReborn
,
spellset
);
...
...
@@ -215,12 +219,66 @@ namespace WindBot.Game.AI.Decks
};
}
p
rivate
bool
UltimateConductorTytannoeff
()
p
ublic
override
void
OnNewTurn
()
{
if
(
Duel
.
Phase
==
DuelPhase
.
Main1
||
Duel
.
Phase
==
DuelPhase
.
Main2
)
Pillused
=
false
;
OvertexCoatlseff_used
=
false
;
CrystalWingSynchroDragoneff_used
=
false
;
}
public
bool
CrystalWingSynchroDragonesp
()
{
if
(
CrystalWingSynchroDragoneff_used
)
return
false
;
if
(
Bot
.
HasInMonstersZone
(
CardId
.
FairyTailSnow
)
||
Bot
.
HasInMonstersZone
(
CardId
.
Lumina
)
||
Bot
.
HasInMonstersZone
(
CardId
.
KeeperOfDragonicMagic
)||
Bot
.
HasInMonstersZone
(
CardId
.
SouleatingOviraptor
)
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
KeeperOfDragonicMagic
,
CardId
.
Lumina
,
CardId
.
FairyTailSnow
,
CardId
.
SouleatingOviraptor
,
});
return
true
;
}
return
false
;
}
public
bool
CrystalWingSynchroDragoneff
()
{
if
(
Duel
.
Player
==
0
)
{
CrystalWingSynchroDragoneff_used
=
true
;
AI
.
SelectCard
(
new
[]
{
CardId
.
GhostOgre
,
CardId
.
GlowUpBulb
,
CardId
.
PlaguespreaderZombie
,
CardId
.
ShaddollFalco
});
return
true
;
}
else
if
(
AI
.
Utils
.
IsChainTarget
(
Card
)
||
AI
.
Utils
.
GetProblematicEnemySpell
()
!=
null
)
return
true
;
else
if
(
Duel
.
Player
==
1
&&
Duel
.
Phase
==
DuelPhase
.
BattleStart
&&
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1500
,
true
))
{
if
(
AI
.
Utils
.
IsOneEnemyBetterThanValue
(
1900
,
true
))
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
}
else
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
}
return
true
;
}
return
false
;
}
private
bool
UltimateConductorTytannoeff
()
{
if
(
Duel
.
Phase
==
DuelPhase
.
Main1
||
Duel
.
Phase
==
DuelPhase
.
Main2
)
{
IList
<
int
>
targets
=
new
[]
{
CardId
.
OvertexCoatls
,
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
...
...
@@ -229,13 +287,35 @@ namespace WindBot.Game.AI.Decks
CardId
.
GlowUpBulb
,
CardId
.
PlaguespreaderZombie
,
CardId
.
FairyTailSnow
,
});
CardId
.
KeeperOfDragonicMagic
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
GiantRex
,
CardId
.
ShaddollSquamata
,
CardId
.
SouleatingOviraptor
,
CardId
.
Raiden
,
CardId
.
Lumina
,
CardId
.
AshBlossom
,
CardId
.
GhostOgre
,
CardId
.
MaxxC
,
};
if
(!
Bot
.
HasInHand
(
targets
))
{
if
(!
Bot
.
HasInMonstersZone
(
targets
))
{
return
false
;
}
}
AI
.
SelectCard
(
targets
);
}
if
(
Duel
.
Phase
==
DuelPhase
.
Damage
)
return
true
;
AI
.
SelectYesNo
(
true
);
return
true
;
}
private
bool
UltimateConductorTytannosp
()
{
Pillused
=
true
;
...
...
@@ -247,6 +327,7 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
KeeperOfDragonicMagic
()
{
if
(
ActivateDescription
==
-
1
)
...
...
@@ -258,17 +339,22 @@ namespace WindBot.Game.AI.Decks
return
true
;
}
private
bool
MonsterRepos
()
{
if
(
Card
.
Id
==
CardId
.
ElShaddollConstruct
&&
Card
.
IsAttack
())
return
false
;
return
base
.
DefaultMonsterRepos
();
}
public
override
void
OnNewTurn
()
private
bool
OvertexCoatlseff
()
{
Pillused
=
false
;
if
(
OvertexCoatlseff_used
==
true
)
return
false
;
return
true
;
}
private
bool
DoubleEvolutionPill
()
private
bool
DoubleEvolutionPilleff
()
{
if
(
Pillused
==
true
)
return
false
;
Pillused
=
true
;
...
...
@@ -305,7 +391,37 @@ namespace WindBot.Game.AI.Decks
CardId
.
UltimateConductorTytanno
,
});
}
AI
.
SelectNextCard
(
new
[]
{
IList
<
int
>
targets2
=
new
[]
{
CardId
.
GiantRex
,
CardId
.
DogorantheMadFlameKaiju
,
CardId
.
GamecieltheSeaTurtleKaiju
,
CardId
.
RadiantheMultidimensionalKaiju
,
CardId
.
OvertexCoatls
,
CardId
.
SouleatingOviraptor
,
CardId
.
UltimateConductorTytanno
,
};
if
(
Bot
.
HasInGraveyard
(
targets
))
{
AI
.
SelectNextCard
(
new
[]
{
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
AI
.
SelectNextCard
(
new
[]
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollDragon
,
CardId
.
KeeperOfDragonicMagic
,
...
...
@@ -345,6 +461,7 @@ namespace WindBot.Game.AI.Decks
}
return
true
;
}
private
bool
FairyTailSnow
()
{
...
...
@@ -354,132 +471,48 @@ namespace WindBot.Game.AI.Decks
}
return
false
;
}
private
bool
SouleatingOviraptoreff
()
{
AI
.
SelectCard
(
CardId
.
OvertexCoatls
);
AI
.
SelectYesNo
(
false
);
if
(!
OvertexCoatlseff_used
)
{
AI
.
SelectCard
(
CardId
.
OvertexCoatls
);
AI
.
SelectYesNo
(
false
);
}
else
{
AI
.
SelectCard
(
CardId
.
UltimateConductorTytanno
);
AI
.
SelectYesNo
(
true
);
}
return
true
;
}
private
bool
GlowUpBulb
()
private
bool
GlowUpBulbeff
()
{
if
(
Bot
.
HasInMonstersZone
(
CardId
.
Lumina
)||
Bot
.
HasInMonstersZone
(
CardId
.
FairyTailSnow
)||
Bot
.
HasInMonstersZone
(
CardId
.
KeeperOfDragonicMagic
)||
Bot
.
HasInMonstersZone
(
CardId
.
SouleatingOviraptor
)
)
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
}
private
bool
ShaddollFusion
()
private
bool
ShaddollFusioneff
()
{
if
(
Enemy
.
GetMonstersExtraZoneCount
()
!=
0
)
{
IList
<
ClientCard
>
materials0
=
Bot
.
Deck
;
IList
<
ClientCard
>
materials1
=
Bot
.
Deck
;
IList
<
ClientCard
>
mats
=
new
List
<
ClientCard
>();
AI
.
SelectCard
(
CardId
.
ElShaddollConstruct
);
ClientCard
mat
=
null
;
foreach
(
ClientCard
card
in
materials0
)
{
if
(
card
.
HasAttribute
(
CardAttribute
.
Light
))
{
mat
=
card
;
break
;
}
}
foreach
(
ClientCard
card
in
materials1
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollFalco
,
});
}
if
(
mat
!=
null
)
{
mats
.
Add
(
mat
);
AI
.
SelectMaterials
(
mats
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
}
AI
.
SelectCard
(
CardId
.
ElShaddollShekhinaga
);
foreach
(
ClientCard
card
in
materials0
)
{
if
(
card
.
HasAttribute
(
CardAttribute
.
Earth
))
{
mat
=
card
;
break
;
}
}
foreach
(
ClientCard
card
in
materials1
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollFalco
,
});
}
if
(
mat
!=
null
)
{
mats
.
Add
(
mat
);
AI
.
SelectMaterials
(
mats
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
}
AI
.
SelectCard
(
CardId
.
ElShaddollGrysra
);
foreach
(
ClientCard
card
in
materials0
)
{
if
(
card
.
HasAttribute
(
CardAttribute
.
Fire
))
{
mat
=
card
;
break
;
}
}
foreach
(
ClientCard
card
in
materials1
)
AI
.
SelectCard
(
new
[]
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollDragon
,
CardId
.
ShaddollFalco
,
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollWinda
});
}
if
(
mat
!=
null
)
{
mats
.
Add
(
mat
);
AI
.
SelectMaterials
(
mats
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
}
AI
.
SelectCard
(
CardId
.
ElShaddollWinda
);
foreach
(
ClientCard
card
in
materials0
)
{
if
(
card
.
HasAttribute
(
CardAttribute
.
Dark
))
{
mat
=
card
;
break
;
}
}
foreach
(
ClientCard
card
in
materials1
)
{
AI
.
SelectCard
(
new
[]
AI
.
SelectNextCard
(
new
[]
{
CardId
.
ShaddollBeast
,
CardId
.
ShaddollSquamata
,
...
...
@@ -488,16 +521,8 @@ namespace WindBot.Game.AI.Decks
CardId
.
ShaddollFalco
,
});
}
if
(
mat
!=
null
)
{
mats
.
Add
(
mat
);
AI
.
SelectMaterials
(
mats
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
}
AI
.
SelectPosition
(
CardPosition
.
FaceUpAttack
);
return
true
;
}
else
{
...
...
@@ -510,27 +535,6 @@ namespace WindBot.Game.AI.Decks
}
/* private ClientCard GetAleisterInGrave()
{
foreach (ClientCard card in Enemy.Graveyard)
{
if (card.Id == CardId.AleisterTheInvoker)
{
return card;
}
}
foreach (ClientCard card in Bot.Graveyard)
{
if (card.Id == CardId.AleisterTheInvoker)
{
return card;
}
}
return null;
}*/
private
bool
ShaddollCore
()
{
return
Bot
.
HasInGraveyard
(
CardId
.
ShaddollFusion
);
...
...
@@ -577,12 +581,10 @@ namespace WindBot.Game.AI.Decks
}
private
bool
PotofAvarice
()
{
return
true
;
}
private
bool
infiniteTransience
()
{
return
Duel
.
LastChainPlayer
==
1
;
}
private
bool
MaxxC
()
{
return
Duel
.
Player
==
1
;
...
...
@@ -610,17 +612,35 @@ namespace WindBot.Game.AI.Decks
}
private
bool
SinisterShadowGames
()
{
if
(
Card
.
Location
!=
CardLocation
.
MonsterZone
)
return
true
;
else
{
AI
.
SelectCard
(
new
[]
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollBeast
,
}
}
);
return
true
;
}
private
bool
ElShaddollShekhinagaeff
()
{
if
(
Card
.
Location
!=
CardLocation
.
MonsterZone
)
return
true
;
else
{
if
(
Duel
.
LastChainPlayer
==
1
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ElShaddollConstruct
,
CardId
.
ElShaddollShekhinaga
,
CardId
.
ElShaddollGrysra
,
CardId
.
ElShaddollWinda
,
CardId
.
ShaddollSquamata
,
}
);
}
}
return
true
;
}
...
...
@@ -644,6 +664,21 @@ namespace WindBot.Game.AI.Decks
}
return
true
;
}
private
bool
ShaddollHedgehogeff
()
{
if
(
Card
.
Location
!=
CardLocation
.
MonsterZone
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollSquamata
,
});
}
else
{
AI
.
SelectCard
(
new
[]
{
CardId
.
ShaddollFusion
,
CardId
.
SinisterShadowGames
});
}
return
true
;
}
private
bool
ShaddollDragoneff
()
{
if
(
Card
.
Location
==
CardLocation
.
MonsterZone
)
...
...
@@ -664,12 +699,10 @@ namespace WindBot.Game.AI.Decks
if
(
Card
.
Location
!=
CardLocation
.
MonsterZone
)
{
AI
.
SelectCard
(
new
[]
{
{
CardId
.
ShaddollBeast
,
});
});
}
else
{
ClientCard
target
=
AI
.
Utils
.
GetBestEnemyMonster
();
...
...
@@ -677,28 +710,38 @@ namespace WindBot.Game.AI.Decks
}
return
true
;
}
private
bool
FoolishBurialEffect
()
{
if
(
Bot
.
GetRemainingCount
(
CardId
.
DoubleEvolutionPill
,
3
)
>
0
)
{
if
(!
OvertexCoatlseff_used
)
{
AI
.
SelectCard
(
new
[]
{
CardId
.
OvertexCoatls
,
});
}
else
return
false
;
}
else
{
AI
.
SelectCard
(
new
[]
{
CardId
.
OvertexCoatls
,
CardId
.
ShaddollSquamata
,
CardId
.
ShaddollBeast
,
CardId
.
ShaddollCore
,
CardId
.
ShaddollHedgehog
,
CardId
.
ShaddollFalco
,
CardId
.
ShaddollDragon
,
CardId
.
FairyTailSnow
,
});
{
CardId
.
OvertexCoatls
,
CardId
.
ShaddollSquamata
,
CardId
.
FairyTailSnow
,
});
}
return
true
;
}
private
bool
GoblindberghSummon
()
{
foreach
(
ClientCard
card
in
Bot
.
Hand
.
GetMonsters
())
...
...
Game/AI/Enums/DangerousMonster.cs
View file @
904b4c57
...
...
@@ -14,6 +14,7 @@
MetaionTheTimelord
=
74530899
,
KamionTheTimelord
=
91712985
,
LazionTheTimelord
=
92435533
,
EaterOfMillions
=
63845230
}
EaterOfMillions
=
63845230
,
ElShaddollConstruct
=
20366274
,
}
}
Game/ClientField.cs
View file @
904b4c57
...
...
@@ -70,6 +70,19 @@ namespace WindBot.Game
}
return
count
;
}
public
int
GetFieldCount
()
{
return
GetSpellCount
()
+
GetMonsterCount
();
}
public
int
GetFieldHandCount
()
{
return
GetSpellCount
()
+
GetMonsterCount
()
+
GetHandCount
();
}
public
bool
IsFieldEmpty
()
{
...
...
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