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
9371b29f
Commit
9371b29f
authored
Sep 02, 2016
by
mercury233
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update rainbow deck
parent
a4084169
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
131 additions
and
34 deletions
+131
-34
Game/AI/AIFunctions.cs
Game/AI/AIFunctions.cs
+1
-7
Game/AI/Decks/RainbowExecutor.cs
Game/AI/Decks/RainbowExecutor.cs
+124
-24
Game/ClientField.cs
Game/ClientField.cs
+6
-3
YGOSharp.OCGWrapper.dll
YGOSharp.OCGWrapper.dll
+0
-0
No files found.
Game/AI/AIFunctions.cs
View file @
9371b29f
...
@@ -124,13 +124,7 @@ namespace WindBot.Game.AI
...
@@ -124,13 +124,7 @@ namespace WindBot.Game.AI
if
(
card
!=
null
)
if
(
card
!=
null
)
return
card
;
return
card
;
if
(
attack
==
0
)
if
(
attack
==
0
)
{
attack
=
GetBestAttack
(
Duel
.
Fields
[
0
],
true
);
int
selfBestAttack
=
GetBestAttack
(
Duel
.
Fields
[
0
],
true
);
int
oppoBestAttack
=
GetBestAttack
(
Duel
.
Fields
[
1
],
false
);
if
(
selfBestAttack
<=
oppoBestAttack
)
attack
=
oppoBestAttack
;
return
GetOneEnnemyBetterThanValue
(
oppoBestAttack
,
false
);
}
return
GetOneEnnemyBetterThanValue
(
attack
,
false
);
return
GetOneEnnemyBetterThanValue
(
attack
,
false
);
}
}
...
...
Game/AI/Decks/RainbowExecutor.cs
View file @
9371b29f
...
@@ -61,16 +61,6 @@ namespace MycardBot.Game.AI.Decks
...
@@ -61,16 +61,6 @@ namespace MycardBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
粗人预料
,
粗人预料效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
粗人预料
,
粗人预料效果
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
业炎防护罩火焰之力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神风防护罩大气之力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神圣防护罩反射镜力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
邪恶防护罩暗黑之力
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
奈落的落穴
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虫惑的落穴
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
救援兔
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
救援兔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
救援兔
,
救援兔效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
救援兔
,
救援兔效果
);
...
@@ -84,6 +74,8 @@ namespace MycardBot.Game.AI.Decks
...
@@ -84,6 +74,8 @@ namespace MycardBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
炼装勇士金驰
,
炼装勇士金驰通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
(
int
)
CardId
.
炼装勇士金驰
,
炼装勇士金驰通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
通常召唤
);
AddExecutor
(
ExecutorType
.
Summon
,
通常召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
爆龙剑士点火星日珥
,
爆龙剑士点火星日珥效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
我我我枪手
,
我我我枪手特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
我我我枪手
,
我我我枪手特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
我我我枪手
);
...
@@ -93,9 +85,11 @@ namespace MycardBot.Game.AI.Decks
...
@@ -93,9 +85,11 @@ namespace MycardBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
进化帝半鸟龙
,
进化帝半鸟龙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
进化帝半鸟龙
,
进化帝半鸟龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
入魔梦魇骑士
,
入魔梦魇骑士特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
入魔梦魇骑士
,
入魔梦魇骑士特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
入魔梦魇骑士
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
入魔梦魇骑士
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
辉光子帕拉迪奥斯
,
辉光子帕拉迪奥斯特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
辉光子帕拉迪奥斯
,
辉光子帕拉迪奥斯效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
电光千鸟
,
电光千鸟效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
No37
希望织龙蜘蛛鲨
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
No37
希望织龙蜘蛛鲨
,
No37
希望织龙蜘蛛鲨特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
No37
希望织龙蜘蛛鲨
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
No37
希望织龙蜘蛛鲨
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
,
芙莉西亚之虫惑魔特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
,
芙莉西亚之虫惑魔特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
芙莉西亚之虫惑魔
);
...
@@ -115,10 +109,21 @@ namespace MycardBot.Game.AI.Decks
...
@@ -115,10 +109,21 @@ namespace MycardBot.Game.AI.Decks
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
闪光
No39
希望皇霍普电光皇
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
星尘龙
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
星尘龙
,
星尘龙特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星尘龙
,
星尘龙效果
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星尘龙
,
星尘龙效果
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
No59
背反之料理人
,
No59
背反之料理人特殊召唤
);
AddExecutor
(
ExecutorType
.
SpSummon
,
(
int
)
CardId
.
No59
背反之料理人
,
No59
背反之料理人特殊召唤
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
No59
背反之料理人
,
No59
背反之料理人效果
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
星光大道
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
波纹防护罩波浪之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
业炎防护罩火焰之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神风防护罩大气之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
神圣防护罩反射镜力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
邪恶防护罩暗黑之力
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
奈落的落穴
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
SpellSet
,
(
int
)
CardId
.
虫惑的落穴
,
陷阱卡覆盖
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
星光大道
,
DefaultTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
DefaultUniqueTrap
);
AddExecutor
(
ExecutorType
.
Activate
,
(
int
)
CardId
.
沙尘防护罩尘埃之力
,
DefaultUniqueTrap
);
...
@@ -266,7 +271,22 @@ namespace MycardBot.Game.AI.Decks
...
@@ -266,7 +271,22 @@ namespace MycardBot.Game.AI.Decks
{
{
int
selfCount
=
Duel
.
Fields
[
0
].
GetMonsterCount
()
+
Duel
.
Fields
[
0
].
GetSpellCount
();
int
selfCount
=
Duel
.
Fields
[
0
].
GetMonsterCount
()
+
Duel
.
Fields
[
0
].
GetSpellCount
();
int
oppoCount
=
Duel
.
Fields
[
1
].
GetMonsterCount
()
+
Duel
.
Fields
[
1
].
GetSpellCount
();
int
oppoCount
=
Duel
.
Fields
[
1
].
GetMonsterCount
()
+
Duel
.
Fields
[
1
].
GetSpellCount
();
return
selfCount
<
oppoCount
;
int
selfAttack
=
0
;
List
<
ClientCard
>
monsters
=
Duel
.
Fields
[
0
].
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
selfAttack
+=
monster
.
GetDefensePower
();
}
int
oppoAttack
=
0
;
monsters
=
Duel
.
Fields
[
1
].
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
oppoAttack
+=
monster
.
GetDefensePower
();
}
return
(
selfCount
<
oppoCount
)
||
(
selfAttack
<
oppoAttack
);
}
}
private
bool
红莲魔龙右红痕特殊召唤
()
private
bool
红莲魔龙右红痕特殊召唤
()
...
@@ -295,7 +315,7 @@ namespace MycardBot.Game.AI.Decks
...
@@ -295,7 +315,7 @@ namespace MycardBot.Game.AI.Decks
oppoCount
++;
oppoCount
++;
}
}
return
selfCount
<=
oppoCount
||
oppoCount
>
2
;
return
(
oppoCount
>
0
&&
selfCount
<=
oppoCount
)
||
oppoCount
>
2
;
}
}
private
bool
鸟铳士卡斯泰尔特殊召唤
()
private
bool
鸟铳士卡斯泰尔特殊召唤
()
...
@@ -320,10 +340,58 @@ namespace MycardBot.Game.AI.Decks
...
@@ -320,10 +340,58 @@ namespace MycardBot.Game.AI.Decks
{
{
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
爆龙剑士点火星日珥
,
1
))
if
(
ActivateDescription
==
AI
.
Utils
.
GetStringId
((
int
)
CardId
.
爆龙剑士点火星日珥
,
1
))
return
true
;
return
true
;
AI
.
SelectNextCard
(
AI
.
Utils
.
GetProblematicCard
());
ClientCard
target1
=
null
;
ClientCard
target2
=
AI
.
Utils
.
GetProblematicCard
();
List
<
ClientCard
>
spells
=
Duel
.
Fields
[
1
].
GetSpells
();
foreach
(
ClientCard
spell
in
spells
)
{
if
(
spell
.
HasType
(
CardType
.
Pendulum
)
&&
!
spell
.
Equals
(
target2
))
{
target1
=
spell
;
break
;
}
}
List
<
ClientCard
>
monsters
=
Duel
.
Fields
[
1
].
GetMonsters
();
foreach
(
ClientCard
monster
in
monsters
)
{
if
(
monster
.
HasType
(
CardType
.
Pendulum
)
&&
!
monster
.
Equals
(
target2
))
{
target1
=
monster
;
break
;
}
}
if
(
target2
==
null
&&
target1
!=
null
)
{
// 对面有P卡,随便吹另一张
foreach
(
ClientCard
spell
in
spells
)
{
if
(!
spell
.
Equals
(
target1
))
{
target2
=
spell
;
break
;
}
}
foreach
(
ClientCard
monster
in
monsters
)
{
if
(!
monster
.
Equals
(
target1
))
{
target2
=
monster
;
break
;
}
}
}
if
(
target2
==
null
)
return
false
;
AI
.
SelectCard
(
target1
);
AI
.
SelectNextCard
(
target2
);
return
true
;
return
true
;
}
}
private
bool
No37
希望织龙蜘蛛鲨特殊召唤
()
{
return
AI
.
Utils
.
IsAllEnnemyBetterThanValue
(
1700
,
false
)
&&
!
AI
.
Utils
.
IsOneEnnemyBetterThanValue
(
3600
,
true
);
}
private
bool
电光千鸟特殊召唤
()
private
bool
电光千鸟特殊召唤
()
{
{
List
<
ClientCard
>
monsters
=
Duel
.
Fields
[
1
].
GetMonsters
();
List
<
ClientCard
>
monsters
=
Duel
.
Fields
[
1
].
GetMonsters
();
...
@@ -349,18 +417,23 @@ namespace MycardBot.Game.AI.Decks
...
@@ -349,18 +417,23 @@ namespace MycardBot.Game.AI.Decks
private
bool
电光千鸟效果
()
private
bool
电光千鸟效果
()
{
{
ClientCard
problematicCard
=
AI
.
Utils
.
GetProblematicCard
();
ClientCard
problematicCard
=
AI
.
Utils
.
GetProblematicCard
();
AI
.
SelectCard
(
problematicCard
);
AI
.
Select
Next
Card
(
problematicCard
);
return
true
;
return
true
;
}
}
private
bool
星尘龙特殊召唤
()
{
return
(
AI
.
Utils
.
IsEnnemyBetter
(
false
,
false
)
&&
!
AI
.
Utils
.
IsOneEnnemyBetterThanValue
(
2400
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
();
}
private
bool
星尘龙效果
()
private
bool
星尘龙效果
()
{
{
return
(
Card
.
Location
==
CardLocation
.
Grave
)
||
DefaultTrap
();
return
(
Card
.
Location
==
CardLocation
.
Grave
)
||
DefaultTrap
();
}
}
private
bool
进化帝半鸟龙特殊召唤
()
private
bool
进化帝半鸟龙特殊召唤
()
{
{
return
!
AI
.
Utils
.
IsOneEnnemyBetterThanValue
(
2400
,
false
);
return
(
AI
.
Utils
.
IsAllEnnemyBetterThanValue
(
1700
,
false
)
&&
!
AI
.
Utils
.
IsOneEnnemyBetterThanValue
(
2400
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
(
);
}
}
private
bool
入魔梦魇骑士特殊召唤
()
private
bool
入魔梦魇骑士特殊召唤
()
...
@@ -375,7 +448,7 @@ namespace MycardBot.Game.AI.Decks
...
@@ -375,7 +448,7 @@ namespace MycardBot.Game.AI.Decks
private
bool
芙莉西亚之虫惑魔特殊召唤
()
private
bool
芙莉西亚之虫惑魔特殊召唤
()
{
{
if
(
AI
.
Utils
.
IsTurn1OrMain2
())
if
(
AI
.
Utils
.
IsTurn1OrMain2
()
&&
(
Duel
.
Fields
[
0
].
GetRemainingCount
((
int
)
CardId
.
奈落的落穴
,
1
)
+
Duel
.
Fields
[
0
].
GetRemainingCount
((
int
)
CardId
.
虫惑的落穴
,
1
))
>
0
)
{
{
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
AI
.
SelectPosition
(
CardPosition
.
FaceUpDefence
);
return
true
;
return
true
;
...
@@ -385,7 +458,26 @@ namespace MycardBot.Game.AI.Decks
...
@@ -385,7 +458,26 @@ namespace MycardBot.Game.AI.Decks
private
bool
No59
背反之料理人特殊召唤
()
private
bool
No59
背反之料理人特殊召唤
()
{
{
return
AI
.
Utils
.
IsTurn1OrMain2
();
return
((
Duel
.
Fields
[
0
].
GetMonsterCount
()
+
Duel
.
Fields
[
0
].
GetSpellCount
()
-
2
)
<=
1
)
&&
((
AI
.
Utils
.
IsEnnemyBetter
(
false
,
false
)
&&
!
AI
.
Utils
.
IsOneEnnemyBetterThanValue
(
2300
,
true
))
||
AI
.
Utils
.
IsTurn1OrMain2
());
}
private
bool
No59
背反之料理人效果
()
{
if
(
Duel
.
Player
==
0
)
{
foreach
(
ClientCard
card
in
Duel
.
ChainTargets
)
{
if
(
Card
.
Equals
(
card
))
return
true
;
}
}
else
{
if
((
Duel
.
Fields
[
0
].
GetMonsterCount
()
+
Duel
.
Fields
[
0
].
GetSpellCount
()
-
1
)
<=
1
)
return
true
;
}
return
false
;
}
}
private
bool
进化帝半鸟龙效果
()
private
bool
进化帝半鸟龙效果
()
...
@@ -393,12 +485,17 @@ namespace MycardBot.Game.AI.Decks
...
@@ -393,12 +485,17 @@ namespace MycardBot.Game.AI.Decks
return
DefaultTrap
();
return
DefaultTrap
();
}
}
private
bool
辉光子帕拉迪奥斯特殊召唤
()
{
return
辉光子帕拉迪奥斯效果
();
}
private
bool
辉光子帕拉迪奥斯效果
()
private
bool
辉光子帕拉迪奥斯效果
()
{
{
ClientCard
result
=
AI
.
Utils
.
GetOneEnnemyBetterThanValue
(
2000
,
true
);
ClientCard
result
=
AI
.
Utils
.
GetOneEnnemyBetterThanValue
(
2000
,
true
);
if
(
result
!=
null
)
if
(
result
!=
null
)
{
{
AI
.
SelectCard
(
result
);
AI
.
Select
Next
Card
(
result
);
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -406,9 +503,7 @@ namespace MycardBot.Game.AI.Decks
...
@@ -406,9 +503,7 @@ namespace MycardBot.Game.AI.Decks
private
bool
电光皇特殊召唤
()
private
bool
电光皇特殊召唤
()
{
{
int
selfBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Duel
.
Fields
[
0
],
true
);
return
AI
.
Utils
.
IsEnnemyBetter
(
false
,
false
);
int
oppoBestAttack
=
AI
.
Utils
.
GetBestAttack
(
Duel
.
Fields
[
1
],
false
);
return
selfBestAttack
<=
oppoBestAttack
;
}
}
private
bool
强欲而贪欲之壶效果
()
private
bool
强欲而贪欲之壶效果
()
...
@@ -420,5 +515,10 @@ namespace MycardBot.Game.AI.Decks
...
@@ -420,5 +515,10 @@ namespace MycardBot.Game.AI.Decks
{
{
return
AI
.
Utils
.
IsEnnemyBetter
(
false
,
false
);
return
AI
.
Utils
.
IsEnnemyBetter
(
false
,
false
);
}
}
private
bool
陷阱卡覆盖
()
{
return
!
Duel
.
Fields
[
0
].
HasInMonstersZone
((
int
)
CardId
.
No59
背反之料理人
,
true
,
true
);
}
}
}
}
}
Game/ClientField.cs
View file @
9371b29f
...
@@ -164,13 +164,16 @@ namespace WindBot.Game
...
@@ -164,13 +164,16 @@ namespace WindBot.Game
{
{
int
remaining
=
initialCount
;
int
remaining
=
initialCount
;
foreach
(
ClientCard
card
in
Hand
)
foreach
(
ClientCard
card
in
Hand
)
if
(
card
.
Id
==
cardId
)
if
(
card
!=
null
&&
card
.
Id
==
cardId
)
remaining
--;
foreach
(
ClientCard
card
in
SpellZone
)
if
(
card
!=
null
&&
card
.
Id
==
cardId
)
remaining
--;
remaining
--;
foreach
(
ClientCard
card
in
Graveyard
)
foreach
(
ClientCard
card
in
Graveyard
)
if
(
card
.
Id
==
cardId
)
if
(
card
!=
null
&&
card
.
Id
==
cardId
)
remaining
--;
remaining
--;
foreach
(
ClientCard
card
in
Banished
)
foreach
(
ClientCard
card
in
Banished
)
if
(
card
.
Id
==
cardId
)
if
(
card
!=
null
&&
card
.
Id
==
cardId
)
remaining
--;
remaining
--;
return
(
remaining
<
0
)
?
0
:
remaining
;
return
(
remaining
<
0
)
?
0
:
remaining
;
}
}
...
...
YGOSharp.OCGWrapper.dll
View file @
9371b29f
No preview for this file type
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