Commit 5723de5e authored by IceYGO's avatar IceYGO

Add Burn, Dragunity, Frog, Rank5 and ZexalWeapons decks

parent 035a74a0
#created by ...
#main
102380
102380
102380
2851070
2851070
97396380
97396380
26302522
26302522
26302522
31305911
31305911
31305911
23205979
23205979
23205979
44789585
44789585
44789585
19523799
19523799
19523799
45311864
45311864
45311864
46918794
46918794
46918794
72302403
72302403
72302403
98380593
8842266
62279055
62279055
62279055
1918087
1918087
48276469
98139712
#extra
!side
#created by ...
#main
61257789
61257789
61257789
876330
876330
876330
3431737
3431737
3431737
28183605
28183605
28183605
59755122
59755122
59755122
29863101
29863101
39701395
39701395
70368879
71490127
73628505
73628505
73628505
81439173
5318639
5318639
57103969
57103969
60004971
62265044
62265044
44095762
58120309
58120309
70342110
70342110
80280737
80280737
80280737
#extra
99267150
99267150
99267150
76774528
76774528
76774528
44508094
44508094
44508094
34116027
34116027
34116027
21249921
21249921
21249921
!side
#created by ...
#main
23950192
23950192
90311614
90311614
63948258
63948258
9126351
9126351
81278754
81278754
56052205
56052205
56052205
1357146
1357146
46239604
46239604
46239604
23408872
23408872
12538374
12538374
12580477
73628505
73628505
98645731
98645731
86780027
86780027
86780027
2084239
2084239
2084239
34351849
34351849
34351849
85742772
85742772
99188141
99188141
#extra
!side
#created by ...
#main
28601770
28601770
18842395
18842395
18842395
70095155
70095155
70095155
54343893
54343893
54343893
14778250
14778250
12299841
12299841
12299841
24610207
24610207
24610207
26082117
26082117
26082117
1845204
1845204
1845204
43422537
43422537
43422537
5318639
5318639
14087893
13032689
26708437
44095762
53582587
56120475
58628539
58628539
96457619
96457619
#extra
45231177
45231177
45231177
29515122
29515122
31386180
31386180
94119480
94119480
29669359
29669359
29669359
55067058
55067058
55067058
!side
#created by ...
#main
70095155
81471108
81471108
45082499
45082499
33911264
33911264
33911264
65367484
65367484
24610207
24610207
24610207
30914564
30914564
25259669
25259669
25259669
37742478
94656263
94656263
94656263
34143852
34143852
34143852
18063928
18063928
423585
423585
1845204
1845204
1845204
12580477
32807846
5318639
5318639
78474168
78474168
78474168
84749824
#extra
45231177
45231177
17881964
17881964
91949988
60992364
60992364
94119480
29669359
71594310
84013237
84013237
84013237
25341652
12014404
!side
using WindBot.Game;
using WindBot.Game.AI;
namespace DevBot.Game.AI.Decks
{
[Deck("Burn", "AI_Burn")]
public class BurnExecutor : DefaultExecutor
{
public enum CardId
{
LavaGolem = 102380,
ReflectBounder = 2851070,
FencingFireFerret = 97396380,
BlastSphere = 26302522,
Marshmallon = 31305911,
SpiritReaper = 23205979,
NaturiaBeans = 44789585,
Ookazi = 19523799,
GoblinThief = 45311864,
TremendousFire = 46918794,
SwordsOfRevealingLight = 72302403,
SupremacyBerry = 98380593,
PoisonOfTheOldMan = 8842266,
MagicCylinder = 62279055,
MinorGoblinOfficial = 1918087,
ChainBurst = 48276469,
SkullInvitation = 98139712
}
public BurnExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
// Set traps
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
// Activate Spells
AddExecutor(ExecutorType.Activate, (int)CardId.Ookazi);
AddExecutor(ExecutorType.Activate, (int)CardId.GoblinThief);
AddExecutor(ExecutorType.Activate, (int)CardId.TremendousFire);
AddExecutor(ExecutorType.Activate, (int)CardId.SwordsOfRevealingLight, SwordsOfRevealingLight);
AddExecutor(ExecutorType.Activate, (int)CardId.SupremacyBerry, SupremacyBerry);
AddExecutor(ExecutorType.Activate, (int)CardId.PoisonOfTheOldMan, PoisonOfTheOldMan);
// Set an invincible monster
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Marshmallon, SetInvincibleMonster);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.SpiritReaper, SetInvincibleMonster);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.NaturiaBeans, SetInvincibleMonster);
// Hello, my name is Lava Golem
AddExecutor(ExecutorType.SpSummon, (int)CardId.LavaGolem, LavaGolem);
// Set other monsters
AddExecutor(ExecutorType.Summon, (int)CardId.ReflectBounder);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.FencingFireFerret);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.BlastSphere);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.NaturiaBeans);
// We're a coward
AddExecutor(ExecutorType.Repos, ReposEverything);
// Chain traps
AddExecutor(ExecutorType.Activate, (int)CardId.MagicCylinder, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MinorGoblinOfficial);
AddExecutor(ExecutorType.Activate, (int)CardId.ChainBurst);
AddExecutor(ExecutorType.Activate, (int)CardId.SkullInvitation);
}
private bool SwordsOfRevealingLight()
{
int count = Duel.Fields[0].SpellZone.GetCardCount((int)CardId.SwordsOfRevealingLight);
return count == 0;
}
private bool SupremacyBerry()
{
return Duel.LifePoints[0] < Duel.LifePoints[1];
}
private bool PoisonOfTheOldMan()
{
AI.SelectOption(1);
return true;
}
private bool SetInvincibleMonster()
{
foreach (ClientCard card in Duel.Fields[0].GetMonsters())
{
if (card.Id == (int)CardId.Marshmallon ||
card.Id == (int)CardId.SpiritReaper ||
(card.Id == (int)CardId.NaturiaBeans && Card.Id == (int)CardId.NaturiaBeans))
{
return false;
}
}
return true;
}
private bool LavaGolem()
{
bool found = false;
foreach (ClientCard card in Duel.Fields[0].GetMonsters())
{
if (card.Id == (int)CardId.Marshmallon ||
card.Id == (int)CardId.SpiritReaper)
found = true;
}
if (!found && Duel.LifePoints[1] > 1000)
return false;
return true;
}
private bool ReposEverything()
{
if (Card.Id == (int)CardId.ReflectBounder)
return Card.IsDefense();
if (Card.Id == (int)CardId.FencingFireFerret)
return DefaultMonsterRepos();
if (Card.IsAttack())
return true;
return false;
}
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
using OCGWrapper.Enums;
using System.Collections.Generic;
using WindBot.Game;
using WindBot.Game.AI;
namespace DevBot.Game.AI.Decks
{
[Deck("Zexal Weapons", "AI_ZexalWeapons")]
class ZexalWeaponsExecutor : DefaultExecutor
{
public enum CardId
{
CyberDragon = 70095155,
ZwTornadoBringer = 81471108,
ZwLightningBlade = 45082499,
SolarWindJammer = 33911264,
PhotonTrasher = 65367484,
StarDrawing = 24610207,
SacredCrane = 30914564,
Goblindbergh = 25259669,
Honest = 37742478,
Kagetokage = 94656263,
HeroicChallengerExtraSword = 34143852,
TinGoldfish = 18063928,
SummonerMonk = 423585,
InstantFusion = 1845204,
Raigeki = 12580477,
ReinforcementOfTheArmy = 32807846,
DarkHole = 53129443,
MysticalSpaceTyphoon = 5318639,
BreakthroughSkill = 78474168,
SolemnWarning = 84749824,
FlameSwordsman = 45231177,
DarkfireDragon = 17881964,
GaiaDragonTheThunderCharger = 91949988,
ZwLionArms = 60992364,
AdreusKeeperOfArmageddon = 94119480,
Number61Volcasaurus = 29669359,
GemKnightPearl = 71594310,
Number39Utopia = 84013237,
MaestrokeTheSymphonyDjinn = 25341652,
GagagaCowboy = 12014404
}
public ZexalWeaponsExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
// Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
// XYZ summons
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ZwLionArms);
AddExecutor(ExecutorType.SpSummon, (int)CardId.AdreusKeeperOfArmageddon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number61Volcasaurus);
// XYZ effects
AddExecutor(ExecutorType.Activate, (int)CardId.Number39Utopia, Number39Utopia);
AddExecutor(ExecutorType.Activate, (int)CardId.ZwLionArms, ZwLionArms);
AddExecutor(ExecutorType.Activate, (int)CardId.AdreusKeeperOfArmageddon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number61Volcasaurus);
// Weapons
AddExecutor(ExecutorType.Activate, (int)CardId.ZwTornadoBringer);
AddExecutor(ExecutorType.Activate, (int)CardId.ZwLightningBlade);
// Spell cards
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, (int)CardId.ReinforcementOfTheArmy, ReinforcementOfTheArmy);
// Special summons
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonTrasher);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SolarWindJammer, SolarWindJammer);
AddExecutor(ExecutorType.Activate, (int)CardId.InstantFusion, InstantFusion);
// Normal summons
AddExecutor(ExecutorType.Summon, (int)CardId.Goblindbergh, GoblindberghFirst);
AddExecutor(ExecutorType.Summon, (int)CardId.TinGoldfish, GoblindberghFirst);
AddExecutor(ExecutorType.Summon, (int)CardId.StarDrawing);
AddExecutor(ExecutorType.Summon, (int)CardId.SacredCrane);
AddExecutor(ExecutorType.Summon, (int)CardId.HeroicChallengerExtraSword);
AddExecutor(ExecutorType.Summon, (int)CardId.Goblindbergh);
AddExecutor(ExecutorType.Summon, (int)CardId.TinGoldfish);
AddExecutor(ExecutorType.Summon, (int)CardId.SummonerMonk);
// Summons: Effects
AddExecutor(ExecutorType.Activate, (int)CardId.Goblindbergh, GoblindberghEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TinGoldfish, GoblindberghEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Kagetokage);
AddExecutor(ExecutorType.Activate, (int)CardId.SummonerMonk, SummonerMonkEffect);
// Reposition
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
// Set and activate traps
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.BreakthroughSkill, BreakthroughSkill);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultTrap);
}
public override bool OnSelectHand()
{
return false;
}
private bool Number39Utopia()
{
if (!HasChainedTrap(0) && Duel.Player == 1 && Duel.Phase == DuelPhase.BattleStart && Card.Overlays.Count > 1)
return true;
return false;
}
private bool ZwLionArms()
{
if (ActivateDescription == (int)CardId.ZwLionArms * 16 + 0 ||
ActivateDescription == (int)CardId.ZwLionArms * 16 + 1)
return true;
return false;
}
private bool ReinforcementOfTheArmy()
{
AI.SelectCard(new[]
{
(int)CardId.Goblindbergh,
(int)CardId.TinGoldfish,
(int)CardId.StarDrawing,
(int)CardId.Kagetokage,
(int)CardId.SacredCrane
});
return true;
}
private bool InstantFusion()
{
List<ClientCard> monsters = Duel.Fields[0].GetMonsters();
int count = 0;
foreach (ClientCard card in monsters)
{
if (card.Level == 5)
++count;
}
if (count == 1)
AI.SelectCard((int)CardId.FlameSwordsman);
else
AI.SelectCard((int)CardId.DarkfireDragon);
return true;
}
private bool GoblindberghFirst()
{
IList<ClientCard> hand = Duel.Fields[0].Hand;
foreach (ClientCard card in hand)
{
if (card != Card && card.IsMonster() && card.Level == 4)
return true;
}
return false;
}
private bool GoblindberghEffect()
{
AI.SelectCard(new[]
{
(int)CardId.SacredCrane,
(int)CardId.HeroicChallengerExtraSword,
(int)CardId.StarDrawing,
(int)CardId.SummonerMonk
});
return true;
}
private bool SummonerMonkEffect()
{
if (Duel.Fields[0].HasInHand((int)CardId.InstantFusion) ||
Duel.Fields[0].HasInHand((int)CardId.MysticalSpaceTyphoon))
{
AI.SelectCard(new[]
{
(int)CardId.InstantFusion,
(int)CardId.MysticalSpaceTyphoon
});
return true;
}
AI.SelectNextCard(new[]
{
(int)CardId.Goblindbergh,
(int)CardId.TinGoldfish,
(int)CardId.StarDrawing,
(int)CardId.Kagetokage,
(int)CardId.SacredCrane
});
return false;
}
private bool SolarWindJammer()
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool BreakthroughSkill()
{
return (CurrentChain.Count > 0 && DefaultTrap());
}
}
}
......@@ -53,8 +53,13 @@
<Compile Include="Game\AI\CardSelector.cs" />
<Compile Include="Game\AI\DeckAttribute.cs" />
<Compile Include="Game\AI\DecksManager.cs" />
<Compile Include="Game\AI\Decks\BurnExecutor.cs" />
<Compile Include="Game\AI\Decks\DragunityExecutor.cs" />
<Compile Include="Game\AI\Decks\FrogExecutor.cs" />
<Compile Include="Game\AI\Decks\HorusExecutor.cs" />
<Compile Include="Game\AI\Decks\OldSchoolExecutor.cs" />
<Compile Include="Game\AI\Decks\Rank5Executor.cs" />
<Compile Include="Game\AI\Decks\ZexalWeaponsExecutor.cs" />
<Compile Include="Game\AI\DefaultExecutor.cs" />
<Compile Include="Game\AI\Dialogs.cs" />
<Compile Include="Game\AI\Enums\DangerousMonster.cs" />
......@@ -84,6 +89,15 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Decks\AI_Burn.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Decks\AI_Dragunity.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Decks\AI_Frog.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Decks\AI_Horus.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......@@ -92,6 +106,12 @@
</None>
</ItemGroup>
<ItemGroup>
<None Include="Decks\AI_Rank5.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Decks\AI_ZexalWeapons.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="sqlite3.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment