Commit c32eb21c authored by mercury233's avatar mercury233

translate to English

parent e37b72b1
......@@ -11,142 +11,140 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
幻壳龙 = 18108166,
幻之狮鹫 = 74852097,
龙剑士卓辉星灵摆 = 75195825,
曼陀罗天使号手 = 87979586,
炼装勇士金驰 = 33256280,
打喷嚏的河马龙 = 51934376,
救援兔 = 85138716,
粗人预料 = 911883,
鹰身女妖的羽毛扫 = 18144506,
强欲而贪欲之壶 = 35261759,
死者苏生 = 83764718,
地碎 = 97169186,
沙尘防护罩尘埃之力 = 40838625,
波纹防护罩波浪之力 = 47475363,
业炎防护罩火焰之力 = 75249652,
神风防护罩大气之力 = 5650082,
神圣防护罩反射镜力 = 44095762,
邪恶防护罩暗黑之力 = 20522190,
奈落的落穴 = 29401950,
虫惑的落穴 = 29616929,
星光大道 = 58120309,
红莲魔龙右红痕 = 80666118,
爆龙剑士点火星日珥 = 18239909,
星尘龙 = 44508094,
闪光No39希望皇霍普电光皇 = 56832966,
No37希望织龙蜘蛛鲨 = 37279508,
No39希望皇霍普 = 84013237,
进化帝半鸟龙 = 74294676,
No59背反之料理人 = 82697249,
鸟铳士卡斯泰尔 = 82633039,
辉光子帕拉迪奥斯 = 61344030,
电光千鸟 = 22653490,
励辉士入魔蝇王 = 46772449,
我我我枪手 = 12014404,
入魔梦魇骑士 = 359563,
芙莉西亚之虫惑魔 = 6511113
}
private bool 已通常召唤 = false;
MysteryShellDragon = 18108166,
PhantomGryphon = 74852097,
MasterPendulumTheDracoslayer = 75195825,
AngelTrumpeter = 87979586,
MetalfoesGoldriver = 33256280,
Kabazauls = 51934376,
RescueRabbit = 85138716,
UnexpectedDai = 911883,
HarpiesFeatherDuster = 18144506,
PotOfDesires = 35261759,
MonsterReborn = 83764718,
SmashingGround = 97169186,
QuakingMirrorForce = 40838625,
DrowningMirrorForce = 47475363,
BlazingMirrorForce = 75249652,
StormingMirrorForce = 5650082,
MirrorForce = 44095762,
DarkMirrorForce = 20522190,
BottomlessTrapHole = 29401950,
TraptrixTrapHoleNightmare = 29616929,
StarlightRoad = 58120309,
ScarlightRedDragonArchfiend = 80666118,
IgnisterProminenceTheBlastingDracoslayer = 18239909,
StardustDragon = 44508094,
NumberS39UtopiatheLightning = 56832966,
Number37HopeWovenDragonSpiderShark = 37279508,
Number39Utopia = 84013237,
EvolzarLaggia = 74294676,
Number59CrookedCook = 82697249,
CastelTheSkyblasterMusketeer = 82633039,
StarliegePaladynamo = 61344030,
LightningChidori = 22653490,
EvilswarmExcitonKnight = 46772449,
GagagaCowboy = 12014404,
EvilswarmNightmare = 359563,
TraptrixRafflesia = 6511113
}
private bool NormalSummoned = false;
public RainbowExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
AddExecutor(ExecutorType.Activate, (int)CardId.鹰身女妖的羽毛扫);
AddExecutor(ExecutorType.Activate, (int)CardId.粗人预料, 粗人预料效果);
AddExecutor(ExecutorType.Summon, (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.幻壳龙, 幻壳龙通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.幻之狮鹫, 幻之狮鹫通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.炼装勇士金驰, 炼装勇士金驰通常召唤);
AddExecutor(ExecutorType.Summon, 通常召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.爆龙剑士点火星日珥, 爆龙剑士点火星日珥特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.爆龙剑士点火星日珥, 爆龙剑士点火星日珥效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.我我我枪手, 我我我枪手特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.我我我枪手);
AddExecutor(ExecutorType.SpSummon, (int)CardId.励辉士入魔蝇王, 励辉士入魔蝇王特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.励辉士入魔蝇王, 励辉士入魔蝇王效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.进化帝半鸟龙, 进化帝半鸟龙特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.进化帝半鸟龙, 进化帝半鸟龙效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.入魔梦魇骑士, 入魔梦魇骑士特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.入魔梦魇骑士);
AddExecutor(ExecutorType.SpSummon, (int)CardId.辉光子帕拉迪奥斯, 辉光子帕拉迪奥斯特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.辉光子帕拉迪奥斯, 辉光子帕拉迪奥斯效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.电光千鸟, 电光千鸟特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.电光千鸟, 电光千鸟效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.No37希望织龙蜘蛛鲨, No37希望织龙蜘蛛鲨特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.No37希望织龙蜘蛛鲨);
AddExecutor(ExecutorType.SpSummon, (int)CardId.芙莉西亚之虫惑魔, 芙莉西亚之虫惑魔特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.芙莉西亚之虫惑魔);
AddExecutor(ExecutorType.Activate, (int)CardId.地碎, DefaultSmashingGround);
AddExecutor(ExecutorType.SpSummon, (int)CardId.鸟铳士卡斯泰尔, 鸟铳士卡斯泰尔特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.鸟铳士卡斯泰尔, 鸟铳士卡斯泰尔效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.爆龙剑士点火星日珥, 爆龙剑士点火星日珥特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.爆龙剑士点火星日珥, 爆龙剑士点火星日珥效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.红莲魔龙右红痕, 红莲魔龙右红痕特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.红莲魔龙右红痕, 红莲魔龙右红痕效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.No39希望皇霍普, 电光皇特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.Activate, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.SpSummon, (int)CardId.星尘龙, 星尘龙特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.星尘龙, 星尘龙效果);
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.沙尘防护罩尘埃之力, 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);
AddExecutor(ExecutorType.Activate, (int)CardId.奈落的落穴, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.虫惑的落穴, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.UnexpectedDai, UnexpectedDaiEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.RescueRabbit);
AddExecutor(ExecutorType.Activate, (int)CardId.RescueRabbit, RescueRabbitEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDesires, DefaultPotOfDesires);
AddExecutor(ExecutorType.Summon, (int)CardId.AngelTrumpeter, AngelTrumpeterSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.Kabazauls, KabazaulsSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MasterPendulumTheDracoslayer, MasterPendulumTheDracoslayerSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MysteryShellDragon, MysteryShellDragonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PhantomGryphon, PhantomGryphonSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MetalfoesGoldriver, MetalfoesGoldriverSummon);
AddExecutor(ExecutorType.Summon, NormalSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GagagaCowboy, GagagaCowboySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.GagagaCowboy);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, EvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, EvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvolzarLaggia, EvolzarLaggiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvolzarLaggia, EvolzarLaggiaEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmNightmare, EvilswarmNightmareSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmNightmare);
AddExecutor(ExecutorType.SpSummon, (int)CardId.StarliegePaladynamo, StarliegePaladynamoSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.StarliegePaladynamo, StarliegePaladynamoEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.LightningChidori, LightningChidoriSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.LightningChidori, LightningChidoriEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number37HopeWovenDragonSpiderShark, Number37HopeWovenDragonSpiderSharkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number37HopeWovenDragonSpiderShark);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TraptrixRafflesia, TraptrixRafflesiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.TraptrixRafflesia);
AddExecutor(ExecutorType.Activate, (int)CardId.SmashingGround, DefaultSmashingGround);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CastelTheSkyblasterMusketeer, CastelTheSkyblasterMusketeerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CastelTheSkyblasterMusketeer, CastelTheSkyblasterMusketeerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.IgnisterProminenceTheBlastingDracoslayer, IgnisterProminenceTheBlastingDracoslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ScarlightRedDragonArchfiend, ScarlightRedDragonArchfiendSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ScarlightRedDragonArchfiend, ScarlightRedDragonArchfiendEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, NumberS39UtopiatheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.SpSummon, (int)CardId.StardustDragon, StardustDragonSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragon, StardustDragonEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number59CrookedCook, Number59CrookedCookSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number59CrookedCook, Number59CrookedCookEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BlazingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StormingMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkMirrorForce, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BottomlessTrapHole, TrapSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TraptrixTrapHoleNightmare, TrapSet);
AddExecutor(ExecutorType.Activate, (int)CardId.StarlightRoad, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.QuakingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DrowningMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BlazingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.StormingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.TraptrixTrapHoleNightmare, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
}
public override void OnNewTurn()
{
// 回合开始时重置状况
已通常召唤 = false;
NormalSummoned = false;
}
public override bool OnSelectHand()
{
// 随机先后攻
return Program.Rand.Next(2) > 0;
}
......@@ -157,101 +155,101 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense())
return false;
}
if (!(defender.Id == (int)CardId.闪光No39希望皇霍普电光皇))
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning))
{
if (attacker.Id == (int)CardId.闪光No39希望皇霍普电光皇 && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.No39希望皇霍普))
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia))
attacker.RealPower = 5000;
if (Bot.HasInMonstersZone((int)CardId.No37希望织龙蜘蛛鲨, true, true))
if (Bot.HasInMonstersZone((int)CardId.Number37HopeWovenDragonSpiderShark, true, true))
attacker.RealPower = attacker.RealPower + 1000;
}
return attacker.RealPower > defender.GetDefensePower();
}
private bool 粗人预料效果()
private bool UnexpectedDaiEffect()
{
if (Bot.HasInHand((int)CardId.救援兔) || 已通常召唤)
if (Bot.HasInHand((int)CardId.RescueRabbit) || NormalSummoned)
AI.SelectCard(new[]
{
(int)CardId.幻壳龙,
(int)CardId.幻之狮鹫
(int)CardId.MysteryShellDragon,
(int)CardId.PhantomGryphon
});
else if (AI.Utils.IsTurn1OrMain2())
{
if (Bot.HasInHand((int)CardId.幻壳龙))
AI.SelectCard((int)CardId.幻壳龙);
else if (Bot.HasInHand((int)CardId.打喷嚏的河马龙))
AI.SelectCard((int)CardId.打喷嚏的河马龙);
else if (Bot.HasInHand((int)CardId.曼陀罗天使号手))
AI.SelectCard((int)CardId.曼陀罗天使号手);
if (Bot.HasInHand((int)CardId.MysteryShellDragon))
AI.SelectCard((int)CardId.MysteryShellDragon);
else if (Bot.HasInHand((int)CardId.Kabazauls))
AI.SelectCard((int)CardId.Kabazauls);
else if (Bot.HasInHand((int)CardId.AngelTrumpeter))
AI.SelectCard((int)CardId.AngelTrumpeter);
}
else
{
if (Bot.HasInHand((int)CardId.打喷嚏的河马龙))
AI.SelectCard((int)CardId.打喷嚏的河马龙);
else if (Bot.HasInHand((int)CardId.龙剑士卓辉星灵摆))
AI.SelectCard((int)CardId.龙剑士卓辉星灵摆);
else if (Bot.HasInHand((int)CardId.幻之狮鹫))
AI.SelectCard((int)CardId.幻之狮鹫);
else if (Bot.HasInHand((int)CardId.曼陀罗天使号手))
if (Bot.HasInHand((int)CardId.Kabazauls))
AI.SelectCard((int)CardId.Kabazauls);
else if (Bot.HasInHand((int)CardId.MasterPendulumTheDracoslayer))
AI.SelectCard((int)CardId.MasterPendulumTheDracoslayer);
else if (Bot.HasInHand((int)CardId.PhantomGryphon))
AI.SelectCard((int)CardId.PhantomGryphon);
else if (Bot.HasInHand((int)CardId.AngelTrumpeter))
AI.SelectCard(new[]
{
(int)CardId.炼装勇士金驰,
(int)CardId.龙剑士卓辉星灵摆
(int)CardId.MetalfoesGoldriver,
(int)CardId.MasterPendulumTheDracoslayer
});
}
return true;
}
private bool 救援兔效果()
private bool RescueRabbitEffect()
{
if (AI.Utils.IsTurn1OrMain2())
AI.SelectCard(new[]
{
(int)CardId.打喷嚏的河马龙,
(int)CardId.幻壳龙
(int)CardId.Kabazauls,
(int)CardId.MysteryShellDragon
});
else
AI.SelectCard(new[]
{
(int)CardId.龙剑士卓辉星灵摆,
(int)CardId.幻之狮鹫,
(int)CardId.打喷嚏的河马龙,
(int)CardId.炼装勇士金驰,
(int)CardId.曼陀罗天使号手
(int)CardId.MasterPendulumTheDracoslayer,
(int)CardId.PhantomGryphon,
(int)CardId.Kabazauls,
(int)CardId.MetalfoesGoldriver,
(int)CardId.AngelTrumpeter
});
return true;
}
private bool 幻壳龙通常召唤()
private bool MysteryShellDragonSummon()
{
return Bot.HasInMonstersZone((int)CardId.幻壳龙);
return Bot.HasInMonstersZone((int)CardId.MysteryShellDragon);
}
private bool 幻之狮鹫通常召唤()
private bool PhantomGryphonSummon()
{
return Bot.HasInMonstersZone((int)CardId.幻之狮鹫);
return Bot.HasInMonstersZone((int)CardId.PhantomGryphon);
}
private bool 龙剑士卓辉星灵摆通常召唤()
private bool MasterPendulumTheDracoslayerSummon()
{
return Bot.HasInMonstersZone((int)CardId.龙剑士卓辉星灵摆);
return Bot.HasInMonstersZone((int)CardId.MasterPendulumTheDracoslayer);
}
private bool 曼陀罗天使号手通常召唤()
private bool AngelTrumpeterSummon()
{
return Bot.HasInMonstersZone((int)CardId.曼陀罗天使号手);
return Bot.HasInMonstersZone((int)CardId.AngelTrumpeter);
}
private bool 炼装勇士金驰通常召唤()
private bool MetalfoesGoldriverSummon()
{
return Bot.HasInMonstersZone((int)CardId.炼装勇士金驰);
return Bot.HasInMonstersZone((int)CardId.MetalfoesGoldriver);
}
private bool 打喷嚏的河马龙通常召唤()
private bool KabazaulsSummon()
{
return Bot.HasInMonstersZone((int)CardId.打喷嚏的河马龙);
return Bot.HasInMonstersZone((int)CardId.Kabazauls);
}
private bool 通常召唤()
private bool NormalSummon()
{
return true;
}
private bool 我我我枪手特殊召唤()
private bool GagagaCowboySummon()
{
if (Duel.LifePoints[1] <= 800)
{
......@@ -261,14 +259,14 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 励辉士入魔蝇王特殊召唤()
private bool EvilswarmExcitonKnightSummon()
{
int selfCount = Bot.GetMonsterCount() + Bot.GetSpellCount() + Bot.GetHandCount();
int oppoCount = Enemy.GetMonsterCount() + Enemy.GetSpellCount() + Enemy.GetHandCount();
return (selfCount - 1 < oppoCount) && 励辉士入魔蝇王效果();
return (selfCount - 1 < oppoCount) && EvilswarmExcitonKnightEffect();
}
private bool 励辉士入魔蝇王效果()
private bool EvilswarmExcitonKnightEffect()
{
int selfCount = Bot.GetMonsterCount() + Bot.GetSpellCount();
int oppoCount = Enemy.GetMonsterCount() + Enemy.GetSpellCount();
......@@ -290,14 +288,14 @@ namespace WindBot.Game.AI.Decks
return (selfCount < oppoCount) || (selfAttack < oppoAttack);
}
private bool 红莲魔龙右红痕特殊召唤()
private bool ScarlightRedDragonArchfiendSummon()
{
int selfBestAttack = AI.Utils.GetBestAttack(Bot, true);
int oppoBestAttack = AI.Utils.GetBestAttack(Enemy, false);
return (selfBestAttack <= oppoBestAttack && oppoBestAttack <= 3000) || 红莲魔龙右红痕效果();
return (selfBestAttack <= oppoBestAttack && oppoBestAttack <= 3000) || ScarlightRedDragonArchfiendEffect();
}
private bool 红莲魔龙右红痕效果()
private bool ScarlightRedDragonArchfiendEffect()
{
int selfCount = 0;
List<ClientCard> monsters = Bot.GetMonsters();
......@@ -319,27 +317,27 @@ namespace WindBot.Game.AI.Decks
return (oppoCount > 0 && selfCount <= oppoCount) || oppoCount > 2;
}
private bool 鸟铳士卡斯泰尔特殊召唤()
private bool CastelTheSkyblasterMusketeerSummon()
{
return AI.Utils.GetProblematicCard() != null;
}
private bool 鸟铳士卡斯泰尔效果()
private bool CastelTheSkyblasterMusketeerEffect()
{
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.鸟铳士卡斯泰尔, 0))
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.CastelTheSkyblasterMusketeer, 0))
return false;
AI.SelectNextCard(AI.Utils.GetProblematicCard());
return true;
}
private bool 爆龙剑士点火星日珥特殊召唤()
private bool IgnisterProminenceTheBlastingDracoslayerSummon()
{
return AI.Utils.GetProblematicCard() != null;
}
private bool 爆龙剑士点火星日珥效果()
private bool IgnisterProminenceTheBlastingDracoslayerEffect()
{
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.爆龙剑士点火星日珥, 1))
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.IgnisterProminenceTheBlastingDracoslayer, 1))
return true;
ClientCard target1 = null;
ClientCard target2 = AI.Utils.GetProblematicCard();
......@@ -363,7 +361,6 @@ namespace WindBot.Game.AI.Decks
}
if (target2 == null && target1 != null)
{
// 对面有P卡,随便吹另一张
foreach (ClientCard spell in spells)
{
if (!spell.Equals(target1))
......@@ -388,12 +385,12 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool No37希望织龙蜘蛛鲨特殊召唤()
private bool Number37HopeWovenDragonSpiderSharkSummon()
{
return AI.Utils.IsAllEnemyBetterThanValue(1700, false) && !AI.Utils.IsOneEnemyBetterThanValue(3600, true);
}
private bool 电光千鸟特殊召唤()
private bool LightningChidoriSummon()
{
List<ClientCard> monsters = Enemy.GetMonsters();
foreach (ClientCard monster in monsters)
......@@ -415,29 +412,29 @@ namespace WindBot.Game.AI.Decks
return AI.Utils.GetProblematicCard() != null;
}
private bool 电光千鸟效果()
private bool LightningChidoriEffect()
{
ClientCard problematicCard = AI.Utils.GetProblematicCard();
AI.SelectNextCard(problematicCard);
return true;
}
private bool 星尘龙特殊召唤()
private bool StardustDragonSummon()
{
return (AI.Utils.IsEnemyBetter(false, false) && !AI.Utils.IsOneEnemyBetterThanValue(2400, true)) || AI.Utils.IsTurn1OrMain2();
}
private bool 星尘龙效果()
private bool StardustDragonEffect()
{
return (Card.Location == CardLocation.Grave) || DefaultTrap();
}
private bool 进化帝半鸟龙特殊召唤()
private bool EvolzarLaggiaSummon()
{
return (AI.Utils.IsAllEnemyBetterThanValue(1700, false) && !AI.Utils.IsOneEnemyBetterThanValue(2400, true)) || AI.Utils.IsTurn1OrMain2();
}
private bool 入魔梦魇骑士特殊召唤()
private bool EvilswarmNightmareSummon()
{
if (AI.Utils.IsTurn1OrMain2())
{
......@@ -447,9 +444,9 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 芙莉西亚之虫惑魔特殊召唤()
private bool TraptrixRafflesiaSummon()
{
if (AI.Utils.IsTurn1OrMain2() && (Bot.GetRemainingCount((int)CardId.奈落的落穴, 1) + Bot.GetRemainingCount((int)CardId.虫惑的落穴, 1)) > 0)
if (AI.Utils.IsTurn1OrMain2() && (Bot.GetRemainingCount((int)CardId.BottomlessTrapHole, 1) + Bot.GetRemainingCount((int)CardId.TraptrixTrapHoleNightmare, 1)) > 0)
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
......@@ -457,13 +454,13 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool No59背反之料理人特殊召唤()
private bool Number59CrookedCookSummon()
{
return ((Bot.GetMonsterCount() + Bot.GetSpellCount() - 2) <= 1) &&
((AI.Utils.IsEnemyBetter(false, false) && !AI.Utils.IsOneEnemyBetterThanValue(2300, true)) || AI.Utils.IsTurn1OrMain2());
}
private bool No59背反之料理人效果()
private bool Number59CrookedCookEffect()
{
if (Duel.Player == 0)
{
......@@ -481,17 +478,17 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 进化帝半鸟龙效果()
private bool EvolzarLaggiaEffect()
{
return DefaultTrap();
}
private bool 辉光子帕拉迪奥斯特殊召唤()
private bool StarliegePaladynamoSummon()
{
return 辉光子帕拉迪奥斯效果();
return StarliegePaladynamoEffect();
}
private bool 辉光子帕拉迪奥斯效果()
private bool StarliegePaladynamoEffect()
{
ClientCard result = AI.Utils.GetOneEnemyBetterThanValue(2000, true);
if (result != null)
......@@ -502,14 +499,14 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 电光皇特殊召唤()
private bool NumberS39UtopiatheLightningSummon()
{
return AI.Utils.IsEnemyBetter(false, false);
}
private bool 陷阱卡覆盖()
private bool TrapSet()
{
return !Bot.HasInMonstersZone((int)CardId.No59背反之料理人, true, true);
return !Bot.HasInMonstersZone((int)CardId.Number59CrookedCook, true, true);
}
}
}
......@@ -11,86 +11,87 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
迷雾恶魔 = 28601770,
电子龙 = 70095154,
异热同心武器荒鹫激神爪 = 29353756,
太阳风帆船 = 33911264,
速攻同调士 = 20932152,
发条士兵 = 12299841,
画星宝宝 = 24610207,
先史遗产黄金航天飞机 = 88552992,
简易融合 = 1845204,
二重召唤 = 43422537,
旋风 = 5318639,
月之书 = 14087893,
超量组件 = 13032689,
超量苏生 = 26708437,
神圣防护罩反射镜力 = 44095762,
激流葬 = 53582587,
超量遮护罩 = 96457619,
重装机甲装甲车龙 = 72959823,
迅雷之骑士盖亚龙骑士 = 91949988,
电子龙无限 = 10443957,
始祖守护者提拉斯 = 31386180,
No61火山恐龙 = 29669359,
鲨鱼要塞 = 50449881,
电子龙新星 = 58069384
MistArchfiend = 28601770,
CyberDragon = 70095154,
ZWEagleClaw = 29353756,
SolarWindJammer = 33911264,
QuickdrawSynchron = 20932152,
WindUpSoldier = 12299841,
StarDrawing = 24610207,
ChronomalyGoldenJet = 88552992,
InstantFusion = 1845204,
DoubleSummon = 43422537,
MysticalSpaceTyphoon = 5318639,
BookOfMoon = 14087893,
XyzUnit = 13032689,
XyzReborn = 26708437,
MirrorForce = 44095762,
TorrentialTribute = 53582587,
XyzVeil = 96457619,
PanzerDragon = 72959823,
GaiaDragonTheThunderCharger = 91949988,
CyberDragonInfinity = 10443957,
TirasKeeperOfGenesis = 31386180,
Number61Volcasaurus = 29669359,
SharkFortress = 50449881,
CyberDragonNova = 58069384
}
private bool 已通常召唤 = false;
private bool 已发动简易融合 = false;
private bool 已发动二重召唤 = false;
private bool 已特殊召唤电子龙无限 = false;
private bool 已发动火山恐龙 = false;
private bool NormalSummoned = false;
private bool InstantFusionUsed = false;
private bool DoubleSummonUsed = false;
private bool CyberDragonInfinitySummoned = false;
private bool Number61VolcasaurusUsed = false;
public Rank5Executor(GameAI ai, Duel duel)
: base(ai, duel)
{
// Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.月之书, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.旋风, DefaultMysticalSpaceTyphoon);
// 优先出的超量怪兽
AddExecutor(ExecutorType.SpSummon, (int)CardId.电子龙新星, 电子龙新星特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.电子龙新星, 电子龙新星效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.电子龙无限, 电子龙无限特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.电子龙无限, 电子龙无限效果);
// 无副作用的5星怪兽
AddExecutor(ExecutorType.SpSummon, (int)CardId.电子龙);
AddExecutor(ExecutorType.SpSummon, (int)CardId.太阳风帆船, 太阳风帆船特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.异热同心武器荒鹫激神爪);
AddExecutor(ExecutorType.Summon, (int)CardId.先史遗产黄金航天飞机, 通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.先史遗产黄金航天飞机, 先史遗产黄金航天飞机效果);
AddExecutor(ExecutorType.Summon, (int)CardId.画星宝宝, 通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.发条士兵, 通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.发条士兵, 发条士兵效果);
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
// Cyber Dragon Infinity first
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragonNova, CyberDragonNovaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberDragonNova, CyberDragonNovaEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragonInfinity, CyberDragonInfinitySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CyberDragonInfinity, CyberDragonInfinityEffect);
// Level 5 monsters without side effects
AddExecutor(ExecutorType.SpSummon, (int)CardId.CyberDragon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SolarWindJammer, SolarWindJammerSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ZWEagleClaw);
AddExecutor(ExecutorType.Summon, (int)CardId.ChronomalyGoldenJet, NormalSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ChronomalyGoldenJet, ChronomalyGoldenJetEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.StarDrawing, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.WindUpSoldier, NormalSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.WindUpSoldier, WindUpSoldierEffect);
// XYZ Monsters: Summon
AddExecutor(ExecutorType.SpSummon, (int)CardId.No61火山恐龙, No61火山恐龙特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.No61火山恐龙, No61火山恐龙效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.始祖守护者提拉斯);
AddExecutor(ExecutorType.Activate, (int)CardId.始祖守护者提拉斯, 始祖守护者提拉斯效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.鲨鱼要塞);
AddExecutor(ExecutorType.Activate, (int)CardId.鲨鱼要塞);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number61Volcasaurus, Number61VolcasaurusSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Number61Volcasaurus, Number61VolcasaurusEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TirasKeeperOfGenesis);
AddExecutor(ExecutorType.Activate, (int)CardId.TirasKeeperOfGenesis, TirasKeeperOfGenesisEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SharkFortress);
AddExecutor(ExecutorType.Activate, (int)CardId.SharkFortress);
AddExecutor(ExecutorType.SpSummon, (int)CardId.迅雷之骑士盖亚龙骑士, 迅雷之骑士盖亚龙骑士特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GaiaDragonTheThunderCharger, GaiaDragonTheThunderChargerSummon);
// 有副作用的5星怪兽
AddExecutor(ExecutorType.SpSummon, (int)CardId.速攻同调士, 速攻同调士特殊召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.迷雾恶魔, 迷雾恶魔通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.简易融合, 简易融合效果);
// Level 5 monsters with side effects
AddExecutor(ExecutorType.SpSummon, (int)CardId.QuickdrawSynchron, QuickdrawSynchronSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.MistArchfiend, MistArchfiendSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.InstantFusion, InstantFusionEffect);
// Useful spells
AddExecutor(ExecutorType.Activate, (int)CardId.二重召唤, 二重召唤效果);
AddExecutor(ExecutorType.Activate, (int)CardId.超量组件, 超量组件效果);
AddExecutor(ExecutorType.Activate, (int)CardId.DoubleSummon, DoubleSummonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzUnit, XyzUnitEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.超量苏生, 超量苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzReborn, XyzRebornEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.重装机甲装甲车龙, 重装机甲装甲车龙效果);
AddExecutor(ExecutorType.Activate, (int)CardId.PanzerDragon, PanzerDragonEffect);
// Reposition
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
......@@ -98,9 +99,9 @@ namespace WindBot.Game.AI.Decks
// Set and activate traps
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.超量遮护罩, 超量遮护罩效果);
AddExecutor(ExecutorType.Activate, (int)CardId.激流葬, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.神圣防护罩反射镜力, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.XyzVeil, XyzVeilEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultTrap);
}
public override bool OnSelectHand()
......@@ -110,130 +111,120 @@ namespace WindBot.Game.AI.Decks
public override void OnNewTurn()
{
// 回合开始时重置状况
已通常召唤 = false;
已发动简易融合 = false;
已发动二重召唤 = false;
已特殊召唤电子龙无限 = false;
已发动火山恐龙 = false;
NormalSummoned = false;
InstantFusionUsed = false;
DoubleSummonUsed = false;
CyberDragonInfinitySummoned = false;
Number61VolcasaurusUsed = false;
}
private bool 特殊召唤不重复的超量怪兽()
private bool NormalSummon()
{
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
if (monster.Id == Card.Id)
return false;
return true;
}
private bool 通常召唤()
{
已通常召唤 = true;
NormalSummoned = true;
return true;
}
private bool 太阳风帆船特殊召唤()
private bool SolarWindJammerSummon()
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 速攻同调士特殊召唤()
private bool QuickdrawSynchronSummon()
{
if (!需要出5())
if (!NeedLV5())
return false;
AI.SelectCard(new[]
{
(int)CardId.速攻同调士,
(int)CardId.异热同心武器荒鹫激神爪,
(int)CardId.太阳风帆船,
(int)CardId.电子龙,
(int)CardId.迷雾恶魔,
(int)CardId.发条士兵,
(int)CardId.画星宝宝,
(int)CardId.先史遗产黄金航天飞机
(int)CardId.QuickdrawSynchron,
(int)CardId.ZWEagleClaw,
(int)CardId.SolarWindJammer,
(int)CardId.CyberDragon,
(int)CardId.MistArchfiend,
(int)CardId.WindUpSoldier,
(int)CardId.StarDrawing,
(int)CardId.ChronomalyGoldenJet
});
return true;
}
private bool 迷雾恶魔通常召唤()
private bool MistArchfiendSummon()
{
if (!需要出5())
if (!NeedLV5())
return false;
AI.SelectOption(1);
已通常召唤 = true;
NormalSummoned = true;
return true;
}
private bool 简易融合效果()
private bool InstantFusionEffect()
{
if (!需要出5())
if (!NeedLV5())
return false;
已发动简易融合 = true;
InstantFusionUsed = true;
return true;
}
private bool 需要出5()
private bool NeedLV5()
{
if (场上有5星怪兽())
if (HaveLV5OnField())
return true;
int 其他的5星资源数量 = 0;
int lv5Count = 0;
IList<ClientCard> hand = Bot.Hand;
foreach (ClientCard card in hand)
{
if (card.Id == (int)CardId.简易融合 && !已发动简易融合)
++其他的5星资源数量;
if (card.Id == (int)CardId.速攻同调士 && Bot.Hand.ContainsMonsterWithLevel(4))
++其他的5星资源数量;
if (card.Id == (int)CardId.迷雾恶魔 && !已通常召唤)
++其他的5星资源数量;
if (card.Id == (int)CardId.二重召唤 && 二重召唤效果())
++其他的5星资源数量;
if (card.Id == (int)CardId.InstantFusion && !InstantFusionUsed)
++lv5Count;
if (card.Id == (int)CardId.QuickdrawSynchron && Bot.Hand.ContainsMonsterWithLevel(4))
++lv5Count;
if (card.Id == (int)CardId.MistArchfiend && !NormalSummoned)
++lv5Count;
if (card.Id == (int)CardId.DoubleSummon && DoubleSummonEffect())
++lv5Count;
}
if (其他的5星资源数量 >= 2)
if (lv5Count >= 2)
return true;
return false;
}
private bool 发条士兵效果()
private bool WindUpSoldierEffect()
{
return 场上有5星怪兽();
return HaveLV5OnField();
}
private bool 先史遗产黄金航天飞机效果()
private bool ChronomalyGoldenJetEffect()
{
return Card.Level == 4;
}
private bool 二重召唤效果()
private bool DoubleSummonEffect()
{
if (!已通常召唤 || 已发动二重召唤)
if (!NormalSummoned || DoubleSummonUsed)
return false;
IList<ClientCard> hand = Bot.Hand;
foreach (ClientCard card in hand)
{
if (card.Id == (int)CardId.迷雾恶魔 ||
card.Id == (int)CardId.发条士兵 ||
card.Id == (int)CardId.画星宝宝 ||
card.Id == (int)CardId.先史遗产黄金航天飞机)
if (card.Id == (int)CardId.MistArchfiend ||
card.Id == (int)CardId.WindUpSoldier ||
card.Id == (int)CardId.StarDrawing ||
card.Id == (int)CardId.ChronomalyGoldenJet)
{
已通常召唤 = false;
已发动二重召唤 = true;
NormalSummoned = false;
DoubleSummonUsed = true;
return true;
}
}
return false;
}
private bool 电子龙新星特殊召唤()
private bool CyberDragonNovaSummon()
{
return !已特殊召唤电子龙无限;
return !CyberDragonInfinitySummoned;
}
private bool 电子龙新星效果()
private bool CyberDragonNovaEffect()
{
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.电子龙新星, 0))
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.CyberDragonNova, 0))
{
return true;
}
......@@ -248,13 +239,13 @@ namespace WindBot.Game.AI.Decks
}
}
private bool 电子龙无限特殊召唤()
private bool CyberDragonInfinitySummon()
{
已特殊召唤电子龙无限 = true;
CyberDragonInfinitySummoned = true;
return true;
}
private bool 电子龙无限效果()
private bool CyberDragonInfinityEffect()
{
if (CurrentChain.Count > 0)
{
......@@ -278,27 +269,27 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool No61火山恐龙特殊召唤()
private bool Number61VolcasaurusSummon()
{
return AI.Utils.IsOneEnemyBetterThanValue(2000, false);
}
private bool No61火山恐龙效果()
private bool Number61VolcasaurusEffect()
{
ClientCard target = Enemy.MonsterZone.GetFloodgate();
if (target == null)
target = AI.Utils.GetOneEnemyBetterThanValue(2000, false);
if (target != null)
{
AI.SelectCard((int)CardId.电子龙);
AI.SelectCard((int)CardId.CyberDragon);
AI.SelectNextCard(target);
已发动火山恐龙 = true;
Number61VolcasaurusUsed = true;
return true;
}
return false;
}
private bool 始祖守护者提拉斯效果()
private bool TirasKeeperOfGenesisEffect()
{
ClientCard target = AI.Utils.GetProblematicCard();
if (target != null)
......@@ -308,11 +299,11 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 迅雷之骑士盖亚龙骑士特殊召唤()
private bool GaiaDragonTheThunderChargerSummon()
{
if (已发动火山恐龙 && Bot.HasInMonstersZone((int)CardId.No61火山恐龙))
if (Number61VolcasaurusUsed && Bot.HasInMonstersZone((int)CardId.Number61Volcasaurus))
{
AI.SelectCard((int)CardId.No61火山恐龙);
AI.SelectCard((int)CardId.Number61Volcasaurus);
return true;
}
List<ClientCard> monsters = Bot.GetMonsters();
......@@ -327,7 +318,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 超量苏生效果()
private bool XyzRebornEffect()
{
foreach (ClientCard card in Bot.SpellZone)
{
......@@ -338,22 +329,22 @@ namespace WindBot.Game.AI.Decks
}
AI.SelectCard(new[]
{
(int)CardId.电子龙无限,
(int)CardId.电子龙新星,
(int)CardId.始祖守护者提拉斯,
(int)CardId.鲨鱼要塞,
(int)CardId.No61火山恐龙
(int)CardId.CyberDragonInfinity,
(int)CardId.CyberDragonNova,
(int)CardId.TirasKeeperOfGenesis,
(int)CardId.SharkFortress,
(int)CardId.Number61Volcasaurus
});
return true;
}
private bool 超量组件效果()
private bool XyzUnitEffect()
{
List<ClientCard> monsters = Bot.GetMonsters();
return monsters.Exists(p => p.HasType(CardType.Xyz));
}
private bool 重装机甲装甲车龙效果()
private bool PanzerDragonEffect()
{
ClientCard target = AI.Utils.GetProblematicCard();
if (target != null)
......@@ -384,12 +375,12 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 超量遮护罩效果()
private bool XyzVeilEffect()
{
List<ClientCard> spells = Bot.GetSpells();
foreach (ClientCard spell in spells)
{
if (spell.Id == (int)CardId.超量遮护罩 && !spell.IsFacedown())
if (spell.Id == (int)CardId.XyzVeil && !spell.IsFacedown())
return false;
}
List<ClientCard> monsters = Bot.GetMonsters();
......@@ -401,7 +392,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 场上有5星怪兽()
private bool HaveLV5OnField()
{
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
......@@ -409,8 +400,8 @@ namespace WindBot.Game.AI.Decks
if (monster.HasType(CardType.Monster) &&
!monster.HasType(CardType.Xyz) &&
(monster.Level == 5
|| monster.Id == (int)CardId.画星宝宝
|| (monster.Id == (int)CardId.发条士兵) && !monster.Equals(Card)))
|| monster.Id == (int)CardId.StarDrawing
|| (monster.Id == (int)CardId.WindUpSoldier) && !monster.Equals(Card)))
return true;
}
return false;
......
......@@ -11,174 +11,175 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
数字机灵 = 32295838,
比特机灵 = 36211150,
双汇编亚龙 = 7445307,
引导交错鹿 = 70950698,
猞猁连接杀手 = 35595518,
RAM云雄羊 = 9190563,
ROM云雌羊 = 44956694,
均衡负载王 = 8567955,
反向连接兽 = 71172240,
克莱因客户端蚁 = 45778242,
网络小龙 = 62706865,
点阵图跳离士 = 18789533,
精神操作 = 37520316,
黑洞 = 53129443,
死者苏生 = 83764718,
旋风 = 5318639,
宇宙旋风 = 8267140,
月之书 = 14087893,
电脑网后门 = 43839002,
月镜盾 = 19508728,
电脑网宇宙 = 61583217,
奈落的落穴 = 29401950,
神圣防护罩反射镜力 = 44095762,
激流葬 = 53582587,
重编码存活 = 70238111,
次元障壁 = 83326048,
强制脱出装置 = 94192409,
神之通告 = 40605147,
解码语者 = 1861629,
编码语者 = 6622715,
三栅极男巫 = 32617464,
蜜罐机器人 = 34472920,
二进制女巫 = 79016563,
连接蜘蛛 = 98978921,
引导鹿衍生物 = 70950699
Digitron = 32295838,
Bitron = 36211150,
DualAssembloom = 7445307,
BootStagguard = 70950698,
Linkslayer = 35595518,
RAMClouder = 9190563,
ROMCloudia = 44956694,
BalancerLord = 8567955,
Backlinker = 71172240,
Kleinant = 45778242,
Draconnet = 62706865,
DotScaper = 18789533,
MindControl = 37520316,
DarkHole = 53129443,
MonsterReborn = 83764718,
MysticalSpaceTyphoon = 5318639,
CosmicCyclone = 8267140,
BookOfMoon = 14087893,
CynetBackdoor = 43839002,
MoonMirrorShield = 19508728,
CynetUniverse = 61583217,
BottomlessTrapHole = 29401950,
MirrorForce = 44095762,
TorrentialTribute = 53582587,
RecodedAlive = 70238111,
DimensionalBarrier = 83326048,
CompulsoryEvacuationDevice = 94192409,
SolemnStrike = 40605147,
DecodeTalker = 1861629,
EncodeTalker = 6622715,
TriGateWizard = 32617464,
Honeybot = 34472920,
BinarySorceress = 79016563,
LinkSpider = 98978921,
StagToken = 70950699
}
bool 已发动均衡负载王 = false;
bool BalancerLordUsed = false;
public ST1732Executor(GameAI ai, Duel duel)
: base(ai, duel)
{
AddExecutor(ExecutorType.Activate, (int)CardId.宇宙旋风, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.旋风, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.黑洞, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.月之书, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.电脑网宇宙, 电脑网宇宙效果);
AddExecutor(ExecutorType.Activate, (int)CardId.CynetUniverse, CynetUniverseEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.猞猁连接杀手);
AddExecutor(ExecutorType.Activate, (int)CardId.猞猁连接杀手, 猞猁连接杀手效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Linkslayer);
AddExecutor(ExecutorType.Activate, (int)CardId.Linkslayer, LinkslayerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.连接蜘蛛);
AddExecutor(ExecutorType.Activate, (int)CardId.连接蜘蛛);
AddExecutor(ExecutorType.SpSummon, (int)CardId.LinkSpider);
AddExecutor(ExecutorType.Activate, (int)CardId.LinkSpider);
AddExecutor(ExecutorType.Activate, (int)CardId.精神操作, 精神操作效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.反向连接兽);
AddExecutor(ExecutorType.Activate, (int)CardId.反向连接兽, 反向连接兽效果);
AddExecutor(ExecutorType.Activate, (int)CardId.MindControl, MindControlEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Backlinker);
AddExecutor(ExecutorType.Activate, (int)CardId.Backlinker, BacklinkerEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.引导交错鹿, 引导交错鹿效果);
AddExecutor(ExecutorType.Activate, (int)CardId.BootStagguard, BootStagguardEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.死者苏生, 死者苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.月镜盾, 月镜盾效果);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterRebornEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MoonMirrorShield, MoonMirrorShieldEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.电脑网后门, 电脑网后门效果);
AddExecutor(ExecutorType.Activate, (int)CardId.重编码存活);
AddExecutor(ExecutorType.Activate, (int)CardId.CynetBackdoor, CynetBackdoorEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.RecodedAlive);
AddExecutor(ExecutorType.Summon, (int)CardId.均衡负载王, 均衡负载王通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.BalancerLord, BalancerLordSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.ROM云雌羊, ROM云雌羊通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.ROM云雌羊, ROM云雌羊效果);
AddExecutor(ExecutorType.Summon, (int)CardId.ROMCloudia, ROMCloudiaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.ROMCloudia, ROMCloudiaEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.网络小龙, 网络小龙通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.网络小龙, 网络小龙效果);
AddExecutor(ExecutorType.Summon, (int)CardId.Draconnet, DraconnetSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.Draconnet, DraconnetEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.克莱因客户端蚁);
AddExecutor(ExecutorType.Activate, (int)CardId.克莱因客户端蚁, 克莱因客户端蚁效果);
AddExecutor(ExecutorType.Summon, (int)CardId.Kleinant);
AddExecutor(ExecutorType.Activate, (int)CardId.Kleinant, KleinantEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.RAM云雄羊);
AddExecutor(ExecutorType.Activate, (int)CardId.RAM云雄羊, RAM云雄羊效果);
AddExecutor(ExecutorType.Summon, (int)CardId.RAMClouder);
AddExecutor(ExecutorType.Activate, (int)CardId.RAMClouder, RAMClouderEffect);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.点阵图跳离士);
AddExecutor(ExecutorType.Activate, (int)CardId.点阵图跳离士, 点阵图跳离士效果);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.DotScaper);
AddExecutor(ExecutorType.Activate, (int)CardId.DotScaper, DotScaperEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.均衡负载王);
AddExecutor(ExecutorType.Summon, (int)CardId.ROM云雌羊);
AddExecutor(ExecutorType.Summon, (int)CardId.网络小龙);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.反向连接兽);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.数字机灵);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.比特机灵);
AddExecutor(ExecutorType.Summon, (int)CardId.BalancerLord);
AddExecutor(ExecutorType.Summon, (int)CardId.ROMCloudia);
AddExecutor(ExecutorType.Summon, (int)CardId.Draconnet);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Backlinker);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Digitron);
AddExecutor(ExecutorType.SummonOrSet, (int)CardId.Bitron);
AddExecutor(ExecutorType.Activate, (int)CardId.均衡负载王, 均衡负载王效果);
AddExecutor(ExecutorType.Activate, (int)CardId.BalancerLord, BalancerLordEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.解码语者, 连接召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.解码语者);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DecodeTalker, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DecodeTalker);
AddExecutor(ExecutorType.SpSummon, (int)CardId.三栅极男巫, 连接召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.三栅极男巫);
AddExecutor(ExecutorType.SpSummon, (int)CardId.TriGateWizard, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.TriGateWizard);
AddExecutor(ExecutorType.SpSummon, (int)CardId.编码语者, 连接召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.编码语者);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EncodeTalker, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EncodeTalker);
AddExecutor(ExecutorType.SpSummon, (int)CardId.蜜罐机器人, 连接召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.二进制女巫, 连接召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.二进制女巫);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Honeybot, LinkSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.BinarySorceress, LinkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.BinarySorceress);
AddExecutor(ExecutorType.SpellSet, (int)CardId.电脑网后门, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.重编码存活, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CynetBackdoor, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.RecodedAlive, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.神之通告, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.强制脱出装置, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.次元障壁, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.激流葬, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.神圣防护罩反射镜力, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.奈落的落穴, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.月之书, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.宇宙旋风, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.旋风, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CompulsoryEvacuationDevice, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DimensionalBarrier, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.TorrentialTribute, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MirrorForce, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BottomlessTrapHole, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.BookOfMoon, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MysticalSpaceTyphoon, DefaultSpellSet);
AddExecutor(ExecutorType.Activate, (int)CardId.神之通告, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.强制脱出装置, DefaultCompulsoryEvacuationDevice);
AddExecutor(ExecutorType.Activate, (int)CardId.次元障壁, DefaultDimensionalBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.激流葬, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.神圣防护罩反射镜力, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.奈落的落穴, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice);
AddExecutor(ExecutorType.Activate, (int)CardId.DimensionalBarrier, DefaultDimensionalBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, (int)CardId.MirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.BottomlessTrapHole, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
}
public override bool OnSelectHand()
{
// 抢后攻
// go second
return false;
}
public override void OnNewTurn()
{
// 回合开始时重置状况
已发动均衡负载王 = false;
// reset
BalancerLordUsed = false;
}
public override int OnSelectOption(IList<int> options)
{
// 月镜盾回卡组底
// put Moon Mirror Shield to the bottom of deck
return options.Count == 2 ? 1 : 0;
}
public override bool OnSelectYesNo(int desc)
{
if (desc == 210) //是否要继续选择?
if (desc == 210) // Continue selecting? (Link Summoning)
return false;
if (desc == 31) //是否直接攻击?
if (desc == 31) // Direct Attack?
return true;
return base.OnSelectYesNo(desc);
}
private bool 猞猁连接杀手效果()
private bool LinkslayerEffect()
{
IList<ClientCard> targets = Enemy.GetSpells();
if (targets.Count > 0)
{
AI.SelectCard(new[]{
(int)CardId.双汇编亚龙,
(int)CardId.比特机灵,
(int)CardId.数字机灵,
(int)CardId.重编码存活
(int)CardId.DualAssembloom,
(int)CardId.Bitron,
(int)CardId.Digitron,
(int)CardId.RecodedAlive
});
AI.SelectNextCard(targets);
return true;
......@@ -186,7 +187,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 精神操作效果()
private bool MindControlEffect()
{
ClientCard target = AI.Utils.GetAnyEnemyMonster();
if (target != null)
......@@ -197,34 +198,34 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 反向连接兽效果()
private bool BacklinkerEffect()
{
return (Bot.MonsterZone[5] == null) && (Bot.MonsterZone[6] == null);
}
private bool 引导交错鹿效果()
private bool BootStagguardEffect()
{
if (Card.Location != CardLocation.Hand)
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 死者苏生效果()
private bool MonsterRebornEffect()
{
List<int> targets = new List<int> {
(int)CardId.解码语者,
(int)CardId.编码语者,
(int)CardId.三栅极男巫,
(int)CardId.二进制女巫,
(int)CardId.蜜罐机器人,
(int)CardId.双汇编亚龙,
(int)CardId.引导交错鹿,
(int)CardId.均衡负载王,
(int)CardId.ROM云雌羊,
(int)CardId.猞猁连接杀手,
(int)CardId.RAM云雄羊,
(int)CardId.反向连接兽,
(int)CardId.克莱因客户端蚁
(int)CardId.DecodeTalker,
(int)CardId.EncodeTalker,
(int)CardId.TriGateWizard,
(int)CardId.BinarySorceress,
(int)CardId.Honeybot,
(int)CardId.DualAssembloom,
(int)CardId.BootStagguard,
(int)CardId.BalancerLord,
(int)CardId.ROMCloudia,
(int)CardId.Linkslayer,
(int)CardId.RAMClouder,
(int)CardId.Backlinker,
(int)CardId.Kleinant
};
if (!Bot.HasInGraveyard(targets))
{
......@@ -234,7 +235,7 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 月镜盾效果()
private bool MoonMirrorShieldEffect()
{
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
......@@ -245,7 +246,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 电脑网宇宙效果()
private bool CynetUniverseEffect()
{
if (Card.Location == CardLocation.Hand)
return DefaultField();
......@@ -261,7 +262,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 电脑网后门效果()
private bool CynetBackdoorEffect()
{
if (!(Duel.Player == 0 && Duel.Phase == DuelPhase.Main2) &&
!(Duel.Player == 1 && (Duel.Phase == DuelPhase.BattleStart || Duel.Phase == DuelPhase.End)))
......@@ -291,7 +292,7 @@ namespace WindBot.Game.AI.Decks
monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.均衡负载王)
if (monster.Id == (int)CardId.BalancerLord)
{
AI.SelectCard(monster);
selected = true;
......@@ -315,99 +316,99 @@ namespace WindBot.Game.AI.Decks
{
AI.SelectNextCard(new[]
{
(int)CardId.ROM云雌羊,
(int)CardId.均衡负载王,
(int)CardId.克莱因客户端蚁,
(int)CardId.网络小龙,
(int)CardId.反向连接兽
(int)CardId.ROMCloudia,
(int)CardId.BalancerLord,
(int)CardId.Kleinant,
(int)CardId.Draconnet,
(int)CardId.Backlinker
});
return true;
}
return false;
}
private bool 均衡负载王通常召唤()
private bool BalancerLordSummon()
{
return !已发动均衡负载王;
return !BalancerLordUsed;
}
private bool 均衡负载王效果()
private bool BalancerLordEffect()
{
if (Card.Location == CardLocation.Removed)
return true;
bool hastarget = Bot.HasInHand(new List<int> {
(int)CardId.网络小龙,
(int)CardId.克莱因客户端蚁,
(int)CardId.均衡负载王,
(int)CardId.ROM云雌羊,
(int)CardId.RAM云雄羊,
(int)CardId.点阵图跳离士
(int)CardId.Draconnet,
(int)CardId.Kleinant,
(int)CardId.BalancerLord,
(int)CardId.ROMCloudia,
(int)CardId.RAMClouder,
(int)CardId.DotScaper
});
if (hastarget && !已发动均衡负载王)
if (hastarget && !BalancerLordUsed)
{
已发动均衡负载王 = true;
BalancerLordUsed = true;
return true;
}
return false;
}
private bool ROM云雌羊通常召唤()
private bool ROMCloudiaSummon()
{
return Bot.HasInGraveyard(new List<int> {
(int)CardId.引导交错鹿,
(int)CardId.均衡负载王,
(int)CardId.克莱因客户端蚁,
(int)CardId.猞猁连接杀手,
(int)CardId.网络小龙,
(int)CardId.RAM云雄羊
(int)CardId.BootStagguard,
(int)CardId.BalancerLord,
(int)CardId.Kleinant,
(int)CardId.Linkslayer,
(int)CardId.Draconnet,
(int)CardId.RAMClouder
});
}
private bool ROM云雌羊效果()
private bool ROMCloudiaEffect()
{
if (Card.Location == CardLocation.MonsterZone)
{
AI.SelectCard(new[]{
(int)CardId.引导交错鹿,
(int)CardId.均衡负载王,
(int)CardId.克莱因客户端蚁,
(int)CardId.猞猁连接杀手,
(int)CardId.网络小龙,
(int)CardId.RAM云雄羊
(int)CardId.BootStagguard,
(int)CardId.BalancerLord,
(int)CardId.Kleinant,
(int)CardId.Linkslayer,
(int)CardId.Draconnet,
(int)CardId.RAMClouder
});
return true;
}
else
{
AI.SelectCard(new[]{
(int)CardId.均衡负载王,
(int)CardId.克莱因客户端蚁,
(int)CardId.RAM云雄羊,
(int)CardId.点阵图跳离士
(int)CardId.BalancerLord,
(int)CardId.Kleinant,
(int)CardId.RAMClouder,
(int)CardId.DotScaper
});
return true;
}
}
private bool 网络小龙通常召唤()
private bool DraconnetSummon()
{
return Bot.GetRemainingCount((int)CardId.数字机灵, 1) > 0
|| Bot.GetRemainingCount((int)CardId.比特机灵, 1) > 0;
return Bot.GetRemainingCount((int)CardId.Digitron, 1) > 0
|| Bot.GetRemainingCount((int)CardId.Bitron, 1) > 0;
}
private bool 网络小龙效果()
private bool DraconnetEffect()
{
AI.SelectCard((int)CardId.比特机灵);
AI.SelectCard((int)CardId.Bitron);
return true;
}
private bool 克莱因客户端蚁效果()
private bool KleinantEffect()
{
IList<int> targets = new[] {
(int)CardId.双汇编亚龙,
(int)CardId.比特机灵,
(int)CardId.数字机灵,
(int)CardId.点阵图跳离士
(int)CardId.DualAssembloom,
(int)CardId.Bitron,
(int)CardId.Digitron,
(int)CardId.DotScaper
};
foreach (ClientCard monster in Bot.Hand)
{
......@@ -418,10 +419,10 @@ namespace WindBot.Game.AI.Decks
}
}
IList<int> targets2 = new[] {
(int)CardId.引导鹿衍生物,
(int)CardId.比特机灵,
(int)CardId.数字机灵,
(int)CardId.点阵图跳离士
(int)CardId.StagToken,
(int)CardId.Bitron,
(int)CardId.Digitron,
(int)CardId.DotScaper
};
foreach (ClientCard monster in Bot.GetMonsters())
{
......@@ -434,40 +435,40 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool RAM云雄羊效果()
private bool RAMClouderEffect()
{
AI.SelectCard(new[]{
(int)CardId.引导鹿衍生物,
(int)CardId.比特机灵,
(int)CardId.数字机灵,
(int)CardId.点阵图跳离士,
(int)CardId.网络小龙,
(int)CardId.反向连接兽,
(int)CardId.RAM云雄羊
(int)CardId.StagToken,
(int)CardId.Bitron,
(int)CardId.Digitron,
(int)CardId.DotScaper,
(int)CardId.Draconnet,
(int)CardId.Backlinker,
(int)CardId.RAMClouder
});
AI.SelectNextCard(new[]{
(int)CardId.解码语者,
(int)CardId.编码语者,
(int)CardId.三栅极男巫,
(int)CardId.二进制女巫,
(int)CardId.蜜罐机器人,
(int)CardId.双汇编亚龙,
(int)CardId.引导交错鹿,
(int)CardId.均衡负载王,
(int)CardId.ROM云雌羊,
(int)CardId.猞猁连接杀手,
(int)CardId.RAM云雄羊
(int)CardId.DecodeTalker,
(int)CardId.EncodeTalker,
(int)CardId.TriGateWizard,
(int)CardId.BinarySorceress,
(int)CardId.Honeybot,
(int)CardId.DualAssembloom,
(int)CardId.BootStagguard,
(int)CardId.BalancerLord,
(int)CardId.ROMCloudia,
(int)CardId.Linkslayer,
(int)CardId.RAMClouder
});
return true;
}
private bool 点阵图跳离士效果()
private bool DotScaperEffect()
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 连接召唤()
private bool LinkSummon()
{
return (AI.Utils.IsTurn1OrMain2() || AI.Utils.IsEnemyBetter(false, false))
&& AI.Utils.GetBestAttack(Bot, true) < Card.Attack;
......
......@@ -11,99 +11,102 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
冰结界的术者 = 23950192,
冰结界的水影 = 90311614,
鬼青蛙 = 9126351,
冰结界的传道师 = 50088247,
粹蛙 = 1357146,
魔知青蛙 = 46239604,
小灰篮史莱姆 = 80250319,
银河旋风 = 5133471,
鹰身女妖的羽毛扫 = 18144506,
浮上 = 33057951,
黑洞 = 53129443,
手札抹杀 = 72892473,
愚蠢的埋葬 = 81439173,
死者苏生 = 83764718,
冰结界的纹章 = 84206435,
海上打捞 = 96947648,
水舞台 = 29047353,
虹光之宣告者 = 79606837,
饼蛙 = 90809975,
神骑矢车菊圣人马 = 36776089,
大薰风凤凰 = 2766877,
猫鲨 = 84224627,
旋风 = 5318639,
月之书 = 14087893,
活死人的呼声 = 97077563,
激流葬 = 53582587,
闪光No39希望皇霍普电光皇 = 56832966
CryomancerOfTheIceBarrier = 23950192,
DewdarkOfTheIceBarrier = 90311614,
SwapFrog = 9126351,
PriorOfTheIceBarrier = 50088247,
Ronintoadin = 1357146,
DupeFrog = 46239604,
GraydleSlimeJr = 80250319,
GalaxyCyclone = 5133471,
HarpiesFeatherDuster = 18144506,
Surface = 33057951,
DarkHole = 53129443,
CardDestruction = 72892473,
FoolishBurial = 81439173,
MonsterReborn = 83764718,
MedallionOfTheIceBarrier = 84206435,
Salvage = 96947648,
AquariumStage = 29047353,
HeraldOfTheArcLight = 79606837,
ToadallyAwesome = 90809975,
SkyCavalryCentaurea = 36776089,
DaigustoPhoenix = 2766877,
CatShark = 84224627,
MysticalSpaceTyphoon = 5318639,
BookOfMoon = 14087893,
CallOfTheHaunted = 97077563,
TorrentialTribute = 53582587,
NumberS39UtopiatheLightning = 56832966
}
public ToadallyAwesomeExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
AddExecutor(ExecutorType.Activate, (int)CardId.鹰身女妖的羽毛扫, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.银河旋风, DefaultGalaxyCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.鹰身女妖的羽毛扫);
AddExecutor(ExecutorType.Activate, (int)CardId.黑洞, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.水舞台, 水舞台效果);
AddExecutor(ExecutorType.Activate, (int)CardId.冰结界的纹章, 冰结界的纹章效果);
AddExecutor(ExecutorType.Activate, (int)CardId.愚蠢的埋葬, 愚蠢的埋葬效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.冰结界的传道师);
AddExecutor(ExecutorType.Summon, (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.冰结界的传道师);
AddExecutor(ExecutorType.Activate, (int)CardId.魔知青蛙);
AddExecutor(ExecutorType.Activate, (int)CardId.浮上, 死者苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.死者苏生, 死者苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.海上打捞, 海上打捞效果);
AddExecutor(ExecutorType.Summon, (int)CardId.鬼青蛙);
AddExecutor(ExecutorType.Summon, (int)CardId.冰结界的水影, 冰结界下级通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.冰结界的术者, 冰结界下级通常召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.手札抹杀);
AddExecutor(ExecutorType.Summon, (int)CardId.小灰篮史莱姆, 低攻怪兽通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.冰结界的传道师, 低攻怪兽通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.粹蛙, 低攻怪兽通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.魔知青蛙, 低攻怪兽通常召唤);
AddExecutor(ExecutorType.Summon, (int)CardId.冰结界的传道师, 冰结界的传道师通常召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.猫鲨, 猫鲨特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.猫鲨, 猫鲨效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.神骑矢车菊圣人马, 神骑矢车菊圣人马特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.神骑矢车菊圣人马);
AddExecutor(ExecutorType.SpSummon, (int)CardId.大薰风凤凰, 大薰风凤凰特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.大薰风凤凰);
AddExecutor(ExecutorType.SpSummon, (int)CardId.饼蛙);
AddExecutor(ExecutorType.Activate, (int)CardId.饼蛙, 饼蛙效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.虹光之宣告者, 虹光之宣告者特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.虹光之宣告者);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.小灰篮史莱姆);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.魔知青蛙);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.粹蛙);
AddExecutor(ExecutorType.Repos, 改变攻守表示);
// 饼蛙抢来的卡的发动
AddExecutor(ExecutorType.Activate, (int)CardId.旋风, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.月之书, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.活死人的呼声, 死者苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.激流葬, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, 其他魔法发动);
AddExecutor(ExecutorType.Activate, 其他陷阱发动);
AddExecutor(ExecutorType.Activate, 其他怪兽发动);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.GalaxyCyclone, DefaultGalaxyCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.AquariumStage, AquariumStageEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MedallionOfTheIceBarrier, MedallionOfTheIceBarrierEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.FoolishBurial, FoolishBurialEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PriorOfTheIceBarrier);
AddExecutor(ExecutorType.Summon, (int)CardId.GraydleSlimeJr, GraydleSlimeJrSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SwapFrog, SwapFrogSpsummon);
AddExecutor(ExecutorType.Activate, (int)CardId.SwapFrog, SwapFrogEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.GraydleSlimeJr, GraydleSlimeJrEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Ronintoadin, RonintoadinEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.PriorOfTheIceBarrier);
AddExecutor(ExecutorType.Activate, (int)CardId.DupeFrog);
AddExecutor(ExecutorType.Activate, (int)CardId.Surface, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Salvage, SalvageEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.SwapFrog);
AddExecutor(ExecutorType.Summon, (int)CardId.DewdarkOfTheIceBarrier, IceBarrierSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.CryomancerOfTheIceBarrier, IceBarrierSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CardDestruction);
AddExecutor(ExecutorType.Summon, (int)CardId.GraydleSlimeJr, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PriorOfTheIceBarrier, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.Ronintoadin, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.DupeFrog, NormalSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.PriorOfTheIceBarrier, PriorOfTheIceBarrierSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.CatShark, CatSharkSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.CatShark, CatSharkEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.SkyCavalryCentaurea, SkyCavalryCentaureaSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.SkyCavalryCentaurea);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DaigustoPhoenix, DaigustoPhoenixSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DaigustoPhoenix);
AddExecutor(ExecutorType.SpSummon, (int)CardId.ToadallyAwesome);
AddExecutor(ExecutorType.Activate, (int)CardId.ToadallyAwesome, ToadallyAwesomeEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.HeraldOfTheArcLight, HeraldOfTheArcLightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.HeraldOfTheArcLight);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.GraydleSlimeJr);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.DupeFrog);
AddExecutor(ExecutorType.MonsterSet, (int)CardId.Ronintoadin);
AddExecutor(ExecutorType.Repos, Repos);
// cards got by Toadall yAwesome
AddExecutor(ExecutorType.Activate, (int)CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, (int)CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, (int)CardId.CallOfTheHaunted, SurfaceEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, OtherSpellEffect);
AddExecutor(ExecutorType.Activate, OtherTrapEffect);
AddExecutor(ExecutorType.Activate, OtherMonsterEffect);
}
public override bool OnSelectHand()
......@@ -118,136 +121,136 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense())
return false;
}
if (!(defender.Id == (int)CardId.闪光No39希望皇霍普电光皇))
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning))
{
if (attacker.Id == (int)CardId.神骑矢车菊圣人马 && !attacker.IsDisabled() && attacker.HasXyzMaterial())
if (attacker.Id == (int)CardId.SkyCavalryCentaurea && !attacker.IsDisabled() && attacker.HasXyzMaterial())
attacker.RealPower = Duel.LifePoints[0] + attacker.Attack;
}
return attacker.RealPower >= defender.GetDefensePower();
}
private bool 冰结界的纹章效果()
private bool MedallionOfTheIceBarrierEffect()
{
if (Bot.HasInHand(new List<int>
{
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier
}) || Bot.HasInMonstersZone(new List<int>
{
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier
}))
{
AI.SelectCard((int)CardId.冰结界的传道师);
AI.SelectCard((int)CardId.PriorOfTheIceBarrier);
}
else
{
AI.SelectCard(new[]
{
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier
});
}
return true;
}
private bool 死者苏生效果()
private bool SurfaceEffect()
{
AI.SelectCard(new[]
{
(int)CardId.饼蛙,
(int)CardId.虹光之宣告者,
(int)CardId.鬼青蛙,
(int)CardId.冰结界的水影,
(int)CardId.冰结界的术者,
(int)CardId.魔知青蛙,
(int)CardId.粹蛙,
(int)CardId.小灰篮史莱姆
(int)CardId.ToadallyAwesome,
(int)CardId.HeraldOfTheArcLight,
(int)CardId.SwapFrog,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DupeFrog,
(int)CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr
});
return true;
}
private bool 水舞台效果()
private bool AquariumStageEffect()
{
if (Card.Location == CardLocation.Grave)
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return 死者苏生效果();
return SurfaceEffect();
}
return true;
}
private bool 愚蠢的埋葬效果()
private bool FoolishBurialEffect()
{
if (Bot.HasInHand((int)CardId.小灰篮史莱姆) && !Bot.HasInGraveyard((int)CardId.小灰篮史莱姆))
AI.SelectCard((int)CardId.小灰篮史莱姆);
else if (Bot.HasInGraveyard((int)CardId.粹蛙) && !Bot.HasInGraveyard((int)CardId.魔知青蛙))
AI.SelectCard((int)CardId.魔知青蛙);
else if (Bot.HasInGraveyard((int)CardId.魔知青蛙) && !Bot.HasInGraveyard((int)CardId.粹蛙))
AI.SelectCard((int)CardId.粹蛙);
if (Bot.HasInHand((int)CardId.GraydleSlimeJr) && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr);
else if (Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog);
else if (Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
(int)CardId.小灰篮史莱姆,
(int)CardId.粹蛙,
(int)CardId.魔知青蛙,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影,
(int)CardId.冰结界的传道师,
(int)CardId.鬼青蛙
(int)CardId.GraydleSlimeJr,
(int)CardId.Ronintoadin,
(int)CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.SwapFrog
});
return true;
}
private bool 海上打捞效果()
private bool SalvageEffect()
{
AI.SelectCard(new[]
{
(int)CardId.鬼青蛙,
(int)CardId.冰结界的传道师,
(int)CardId.小灰篮史莱姆
(int)CardId.SwapFrog,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr
});
return true;
}
private bool 鬼青蛙特殊召唤()
private bool SwapFrogSpsummon()
{
if (Bot.GetCountCardInZone(Bot.Hand, (int)CardId.小灰篮史莱姆)>=2 && !Bot.HasInGraveyard((int)CardId.小灰篮史莱姆))
AI.SelectCard((int)CardId.小灰篮史莱姆);
else if (Bot.HasInGraveyard((int)CardId.粹蛙) && !Bot.HasInGraveyard((int)CardId.魔知青蛙))
AI.SelectCard((int)CardId.魔知青蛙);
else if (Bot.HasInGraveyard((int)CardId.魔知青蛙) && !Bot.HasInGraveyard((int)CardId.粹蛙))
AI.SelectCard((int)CardId.粹蛙);
if (Bot.GetCountCardInZone(Bot.Hand, (int)CardId.GraydleSlimeJr)>=2 && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr);
else if (Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog);
else if (Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
(int)CardId.粹蛙,
(int)CardId.魔知青蛙,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影,
(int)CardId.冰结界的传道师,
(int)CardId.小灰篮史莱姆,
(int)CardId.鬼青蛙
(int)CardId.Ronintoadin,
(int)CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr,
(int)CardId.SwapFrog
});
return true;
}
private bool 鬼青蛙效果()
private bool SwapFrogEffect()
{
if (ActivateDescription == -1)
{
return 愚蠢的埋葬效果();
return FoolishBurialEffect();
}
else
{
if (Bot.HasInHand((int)CardId.魔知青蛙))
if (Bot.HasInHand((int)CardId.DupeFrog))
{
AI.SelectCard(new[]
{
(int)CardId.冰结界的传道师,
(int)CardId.小灰篮史莱姆,
(int)CardId.鬼青蛙
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr,
(int)CardId.SwapFrog
});
return true;
}
......@@ -255,35 +258,35 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 小灰篮史莱姆优先通常召唤()
private bool GraydleSlimeJrSummon()
{
return Bot.HasInGraveyard((int)CardId.小灰篮史莱姆);
return Bot.HasInGraveyard((int)CardId.GraydleSlimeJr);
}
private bool 小灰篮史莱姆效果()
private bool GraydleSlimeJrEffect()
{
AI.SelectCard((int)CardId.小灰篮史莱姆);
AI.SelectCard((int)CardId.GraydleSlimeJr);
AI.SelectPosition(CardPosition.FaceUpDefence);
AI.SelectNextCard(new[]
{
(int)CardId.鬼青蛙,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影,
(int)CardId.粹蛙,
(int)CardId.魔知青蛙,
(int)CardId.冰结界的传道师,
(int)CardId.小灰篮史莱姆
(int)CardId.SwapFrog,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.Ronintoadin,
(int)CardId.DupeFrog,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr
});
return true;
}
private bool 粹蛙效果()
private bool RonintoadinEffect()
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 低攻怪兽通常召唤()
private bool NormalSummon()
{
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
......@@ -296,59 +299,60 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 冰结界下级通常召唤()
private bool IceBarrierSummon()
{
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.冰结界的传道师) > 0;
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.PriorOfTheIceBarrier) > 0;
}
private bool 冰结界的传道师通常召唤()
private bool PriorOfTheIceBarrierSummon()
{
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.冰结界的传道师) >= 2;
return Bot.GetCountCardInZone(Bot.Hand, (int)CardId.PriorOfTheIceBarrier) >= 2;
}
private bool 饼蛙效果()
private bool ToadallyAwesomeEffect()
{
if (CurrentChain.Count > 0)
{
// negate effect, select a cost for it
List<ClientCard> monsters = Bot.GetMonsters();
List<int> 合适的COST = new List<int> {
(int)CardId.鬼青蛙,
(int)CardId.粹蛙,
(int)CardId.小灰篮史莱姆,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影
List<int> suitableCost = new List<int> {
(int)CardId.SwapFrog,
(int)CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier
};
foreach (ClientCard monster in monsters)
{
if (合适的COST.Contains(monster.Id))
if (suitableCost.Contains(monster.Id))
{
AI.SelectCard(monster);
return true;
}
}
bool 有水舞台 = Bot.HasInSpellZone((int)CardId.水舞台, true);
bool haveAquariumStage = Bot.HasInSpellZone((int)CardId.AquariumStage, true);
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.魔知青蛙 && !有水舞台)
if (monster.Id == (int)CardId.DupeFrog && !haveAquariumStage)
{
AI.SelectCard(monster);
return true;
}
}
monsters = (List<ClientCard>)Bot.Hand;
bool 手里有2个史莱姆 = Bot.GetCountCardInZone(Bot.Hand, (int)CardId.小灰篮史莱姆) >= 2;
bool HaveTwoGraydleSlimeJrInHand = Bot.GetCountCardInZone(Bot.Hand, (int)CardId.GraydleSlimeJr) >= 2;
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.小灰篮史莱姆 && 手里有2个史莱姆)
if (monster.Id == (int)CardId.GraydleSlimeJr && HaveTwoGraydleSlimeJrInHand)
{
AI.SelectCard(monster);
return true;
}
}
bool 需要丢魔知 = Bot.HasInGraveyard((int)CardId.粹蛙) && !Bot.HasInGraveyard((int)CardId.魔知青蛙) && !Bot.HasInGraveyard((int)CardId.鬼青蛙);
bool NeedDupeFrogInGrave = Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.SwapFrog);
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.魔知青蛙 && 需要丢魔知)
if (monster.Id == (int)CardId.DupeFrog && NeedDupeFrogInGrave)
{
AI.SelectCard(monster);
return true;
......@@ -356,7 +360,7 @@ namespace WindBot.Game.AI.Decks
}
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.粹蛙 || monster.Id == (int)CardId.魔知青蛙)
if (monster.Id == (int)CardId.Ronintoadin || monster.Id == (int)CardId.DupeFrog)
{
AI.SelectCard(monster);
return true;
......@@ -371,46 +375,46 @@ namespace WindBot.Game.AI.Decks
}
else if (Card.Location == CardLocation.Grave)
{
if (!Bot.HasInExtra((int)CardId.饼蛙))
if (!Bot.HasInExtra((int)CardId.ToadallyAwesome))
{
AI.SelectCard((int)CardId.饼蛙);
AI.SelectCard((int)CardId.ToadallyAwesome);
}
else
{
AI.SelectCard(new[]
{
(int)CardId.鬼青蛙,
(int)CardId.冰结界的传道师,
(int)CardId.小灰篮史莱姆
(int)CardId.SwapFrog,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.GraydleSlimeJr
});
}
return true;
}
else if (Duel.Phase == DuelPhase.Standby)
{
选择取除超量素材(Card.Overlays);
SelectXYZDetach(Card.Overlays);
if (Duel.Player == 0)
{
AI.SelectNextCard(new[]
{
(int)CardId.鬼青蛙,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影,
(int)CardId.粹蛙,
(int)CardId.魔知青蛙,
(int)CardId.小灰篮史莱姆
(int)CardId.SwapFrog,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.Ronintoadin,
(int)CardId.DupeFrog,
(int)CardId.GraydleSlimeJr
});
}
else
{
AI.SelectNextCard(new[]
{
(int)CardId.魔知青蛙,
(int)CardId.鬼青蛙,
(int)CardId.粹蛙,
(int)CardId.小灰篮史莱姆,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影
(int)CardId.DupeFrog,
(int)CardId.SwapFrog,
(int)CardId.Ronintoadin,
(int)CardId.GraydleSlimeJr,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier
});
AI.SelectPosition(CardPosition.FaceUpDefence);
}
......@@ -419,16 +423,16 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 猫鲨特殊召唤()
private bool CatSharkSummon()
{
bool should = Bot.HasInMonstersZone((int)CardId.饼蛙)
bool should = Bot.HasInMonstersZone((int)CardId.ToadallyAwesome)
&& ((AI.Utils.IsEnemyBetter(true, false)
&& !Bot.HasInMonstersZone(new List<int>
{
(int)CardId.猫鲨,
(int)CardId.神骑矢车菊圣人马
(int)CardId.CatShark,
(int)CardId.SkyCavalryCentaurea
}, true, true))
|| !Bot.HasInExtra((int)CardId.饼蛙));
|| !Bot.HasInExtra((int)CardId.ToadallyAwesome));
if (should)
{
AI.SelectPosition(CardPosition.FaceUpDefence);
......@@ -437,32 +441,32 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 猫鲨效果()
private bool CatSharkEffect()
{
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.饼蛙 && monster.Attack <= 2200)
if (monster.Id == (int)CardId.ToadallyAwesome && monster.Attack <= 2200)
{
选择取除超量素材(Card.Overlays);
SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster);
return true;
}
}
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.神骑矢车菊圣人马 && monster.Attack <= 2000)
if (monster.Id == (int)CardId.SkyCavalryCentaurea && monster.Attack <= 2000)
{
选择取除超量素材(Card.Overlays);
SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster);
return true;
}
}
foreach (ClientCard monster in monsters)
{
if (monster.Id == (int)CardId.大薰风凤凰 && monster.Attack <= 1500)
if (monster.Id == (int)CardId.DaigustoPhoenix && monster.Attack <= 1500)
{
选择取除超量素材(Card.Overlays);
SelectXYZDetach(Card.Overlays);
AI.SelectNextCard(monster);
return true;
}
......@@ -470,7 +474,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 神骑矢车菊圣人马特殊召唤()
private bool SkyCavalryCentaureaSummon()
{
int num = 0;
List<ClientCard> monsters = Bot.GetMonsters();
......@@ -486,11 +490,11 @@ namespace WindBot.Game.AI.Decks
&& num < 4
&& !Bot.HasInMonstersZone(new List<int>
{
(int)CardId.神骑矢车菊圣人马
(int)CardId.SkyCavalryCentaurea
}, true, true);
}
private bool 大薰风凤凰特殊召唤()
private bool DaigustoPhoenixSummon()
{
if (Duel.Turn != 1)
{
......@@ -515,13 +519,13 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 虹光之宣告者特殊召唤()
private bool HeraldOfTheArcLightSummon()
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 改变攻守表示()
private bool Repos()
{
bool enemyBetter = AI.Utils.IsEnemyBetter(true, true);
......@@ -532,7 +536,7 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 其他魔法发动()
private bool OtherSpellEffect()
{
foreach (CardExecutor exec in Executors)
{
......@@ -542,7 +546,7 @@ namespace WindBot.Game.AI.Decks
return Card.IsSpell();
}
private bool 其他陷阱发动()
private bool OtherTrapEffect()
{
foreach (CardExecutor exec in Executors)
{
......@@ -552,7 +556,7 @@ namespace WindBot.Game.AI.Decks
return Card.IsTrap() && DefaultTrap();
}
private bool 其他怪兽发动()
private bool OtherMonsterEffect()
{
foreach (CardExecutor exec in Executors)
{
......@@ -562,24 +566,24 @@ namespace WindBot.Game.AI.Decks
return Card.IsMonster();
}
private void 选择取除超量素材(List<int> Overlays)
private void SelectXYZDetach(List<int> Overlays)
{
if (Overlays.Contains((int)CardId.小灰篮史莱姆) && Bot.HasInHand((int)CardId.小灰篮史莱姆) && !Bot.HasInGraveyard((int)CardId.小灰篮史莱姆))
AI.SelectCard((int)CardId.小灰篮史莱姆);
else if (Overlays.Contains((int)CardId.魔知青蛙) && Bot.HasInGraveyard((int)CardId.粹蛙) && !Bot.HasInGraveyard((int)CardId.魔知青蛙))
AI.SelectCard((int)CardId.魔知青蛙);
else if (Overlays.Contains((int)CardId.粹蛙) && Bot.HasInGraveyard((int)CardId.魔知青蛙) && !Bot.HasInGraveyard((int)CardId.粹蛙))
AI.SelectCard((int)CardId.粹蛙);
if (Overlays.Contains((int)CardId.GraydleSlimeJr) && Bot.HasInHand((int)CardId.GraydleSlimeJr) && !Bot.HasInGraveyard((int)CardId.GraydleSlimeJr))
AI.SelectCard((int)CardId.GraydleSlimeJr);
else if (Overlays.Contains((int)CardId.DupeFrog) && Bot.HasInGraveyard((int)CardId.Ronintoadin) && !Bot.HasInGraveyard((int)CardId.DupeFrog))
AI.SelectCard((int)CardId.DupeFrog);
else if (Overlays.Contains((int)CardId.Ronintoadin) && Bot.HasInGraveyard((int)CardId.DupeFrog) && !Bot.HasInGraveyard((int)CardId.Ronintoadin))
AI.SelectCard((int)CardId.Ronintoadin);
else
AI.SelectCard(new[]
{
(int)CardId.小灰篮史莱姆,
(int)CardId.粹蛙,
(int)CardId.魔知青蛙,
(int)CardId.冰结界的术者,
(int)CardId.冰结界的水影,
(int)CardId.冰结界的传道师,
(int)CardId.鬼青蛙
(int)CardId.GraydleSlimeJr,
(int)CardId.Ronintoadin,
(int)CardId.DupeFrog,
(int)CardId.CryomancerOfTheIceBarrier,
(int)CardId.DewdarkOfTheIceBarrier,
(int)CardId.PriorOfTheIceBarrier,
(int)CardId.SwapFrog
});
}
}
......
......@@ -11,166 +11,159 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
妖仙兽镰壹太刀 = 65247798,
妖仙兽镰贰太刀 = 92246806,
妖仙兽镰叁太刀 = 28630501,
妖仙兽辻斩风 = 25244515,
鹰身女妖的羽毛扫 = 18144507,
黑洞 = 53129443,
削命的宝札 = 59750328,
强欲而谦虚之壶 = 98645731,
宇宙旋风 = 8267140,
沙尘防护罩尘埃之力 = 40838625,
波纹防护罩波浪之力 = 47475363,
星光大道 = 58120309,
虚无空间 = 5851097,
大宇宙 = 30241314,
神之通告 = 40605147,
神之警告 = 84749824,
神之宣告 = 41420027,
魔力抽取 = 59344077,
星尘龙 = 44508094,
闪光No39希望皇霍普电光皇 = 56832966,
闪光No39希望皇霍普一 = 86532744,
暗叛逆超量龙 = 16195942,
No39希望皇霍普 = 84013237,
No103神葬零娘暮零 = 94380860,
魁炎星王宋虎 = 96381979,
No106巨岩掌巨手 = 63746411,
鸟铳士卡斯泰尔 = 82633039,
恐牙狼钻石恐狼 = 95169481,
电光千鸟 = 22653490,
励辉士入魔蝇王 = 46772449,
深渊的潜伏者 = 21044178,
我我我枪手 = 12014404
YosenjuKama1 = 65247798,
YosenjuKama2 = 92246806,
YosenjuKama3 = 28630501,
YosenjuTsujik = 25244515,
HarpiesFeatherDuster = 18144507,
DarkHole = 53129443,
CardOfDemise = 59750328,
PotOfDuality = 98645731,
CosmicCyclone = 8267140,
QuakingMirrorForce = 40838625,
DrowningMirrorForce = 47475363,
StarlightRoad = 58120309,
VanitysEmptiness = 5851097,
MacroCosmos = 30241314,
SolemnStrike = 40605147,
SolemnWarning = 84749824,
SolemnJudgment = 41420027,
MagicDrain = 59344077,
StardustDragon = 44508094,
NumberS39UtopiatheLightning = 56832966,
NumberS39UtopiaOne = 86532744,
DarkRebellionXyzDragon = 16195942,
Number39Utopia = 84013237,
Number103Ragnazero = 94380860,
BrotherhoodOfTheFireFistTigerKing = 96381979,
Number106GiantHand = 63746411,
CastelTheSkyblasterMusketeer = 82633039,
DiamondDireWolf = 95169481,
LightningChidori = 22653490,
EvilswarmExcitonKnight = 46772449,
AbyssDweller = 21044178,
GagagaCowboy = 12014404
}
bool 已发动削命 = false;
bool CardOfDemiseUsed = false;
public YosenjuExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
// 结束阶段优先丢卡
AddExecutor(ExecutorType.Activate, (int)CardId.削命的宝札, 削命的宝札结束阶段);
// 能烧就烧
AddExecutor(ExecutorType.SpSummon, (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.黑洞, DefaultDarkHole);
// 开壶
AddExecutor(ExecutorType.Activate, (int)CardId.强欲而谦虚之壶, 强欲而谦虚之壶);
// 通招
AddExecutor(ExecutorType.Summon, (int)CardId.妖仙兽镰壹太刀, 优先出重复的妖仙兽);
AddExecutor(ExecutorType.Summon, (int)CardId.妖仙兽镰贰太刀, 优先出重复的妖仙兽);
AddExecutor(ExecutorType.Summon, (int)CardId.妖仙兽镰叁太刀, 优先出重复的妖仙兽);
AddExecutor(ExecutorType.Summon, (int)CardId.妖仙兽镰壹太刀);
AddExecutor(ExecutorType.Summon, (int)CardId.妖仙兽镰贰太刀);
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.妖仙兽辻斩风, 妖仙兽效果);
// 盖坑
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.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.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.削命的宝札, 削命的宝札);
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.SpellSet, (int)CardId.鹰身女妖的羽毛扫, 已发动过削命);
AddExecutor(ExecutorType.SpellSet, (int)CardId.黑洞, 已发动过削命);
AddExecutor(ExecutorType.SpellSet, (int)CardId.强欲而谦虚之壶, 已发动过削命);
AddExecutor(ExecutorType.SpellSet, (int)CardId.宇宙旋风, 已发动过削命);
// 常用额外
AddExecutor(ExecutorType.SpSummon, (int)CardId.励辉士入魔蝇王, 励辉士入魔蝇王特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.励辉士入魔蝇王, 励辉士入魔蝇王效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.暗叛逆超量龙, 暗叛逆超量龙特殊召唤);
AddExecutor(ExecutorType.Activate, (int)CardId.暗叛逆超量龙, 暗叛逆超量龙效果);
AddExecutor(ExecutorType.SpSummon, (int)CardId.No39希望皇霍普, 电光皇特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.闪光No39希望皇霍普一);
AddExecutor(ExecutorType.SpSummon, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.Activate, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.Activate, (int)CardId.星尘龙, 星尘龙效果);
// 坑人
AddExecutor(ExecutorType.Activate, (int)CardId.星光大道, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.魔力抽取);
AddExecutor(ExecutorType.Activate, (int)CardId.神之警告, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.神之通告, DefaultSolemnStrike);
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);
// do the end phase effect of Card Of Demise before Yosenjus return to hand
AddExecutor(ExecutorType.Activate, (int)CardId.CardOfDemise, CardOfDemiseEPEffect);
// burn if enemy's LP is below 800
AddExecutor(ExecutorType.SpSummon, (int)CardId.GagagaCowboy, GagagaCowboySummon);
AddExecutor(ExecutorType.Activate, (int)CardId.GagagaCowboy);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, (int)CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.PotOfDuality, PotOfDualityEffect);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama1, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama2, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama3, HaveAnotherYosenjuWithSameNameInHand);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama1);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama2);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuKama3);
AddExecutor(ExecutorType.Summon, (int)CardId.YosenjuTsujik);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama1, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama2, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuKama3, YosenjuEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.YosenjuTsujik, YosenjuEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSetUnique);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.HarpiesFeatherDuster, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, TrapSetWhenZoneFree);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CardOfDemise);
AddExecutor(ExecutorType.Activate, (int)CardId.CardOfDemise, CardOfDemiseEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnJudgment, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnStrike, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.SolemnWarning, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MacroCosmos, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.VanitysEmptiness, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.MagicDrain, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DrowningMirrorForce, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.QuakingMirrorForce, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.StarlightRoad, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.HarpiesFeatherDuster, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.DarkHole, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.PotOfDuality, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpellSet, (int)CardId.CosmicCyclone, CardOfDemiseAcivated);
AddExecutor(ExecutorType.SpSummon, (int)CardId.EvilswarmExcitonKnight, EvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.EvilswarmExcitonKnight, EvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkRebellionXyzDragon, DarkRebellionXyzDragonEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, NumberS39UtopiatheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiaOne);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.StardustDragon, StardustDragonEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.StarlightRoad, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.MagicDrain);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, (int)CardId.SolemnJudgment, DefaultSolemnJudgment);
AddExecutor(ExecutorType.Activate, (int)CardId.MacroCosmos, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.VanitysEmptiness, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.DrowningMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.QuakingMirrorForce, DefaultUniqueTrap);
AddExecutor(ExecutorType.Repos, DefaultMonsterRepos);
}
public override bool OnSelectHand()
{
// 抢先攻
// go first
return true;
}
public override void OnNewTurn()
{
// 回合开始时重置状况
已发动削命 = false;
CardOfDemiseUsed = false;
}
public override bool OnSelectYesNo(int desc)
{
// 镰贰太刀能不直击就不直击
// Yosenju Kama 2 shouldn't attack directly at most times
if (Card == null)
return true;
Logger.DebugWriteLine(Card.Name);
if (Card.Id == (int)CardId.妖仙兽镰贰太刀)
// Logger.DebugWriteLine(Card.Name);
if (Card.Id == (int)CardId.YosenjuKama2)
return Card.ShouldDirectAttack;
else
return true;
......@@ -183,69 +176,69 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense())
return false;
}
if (!(defender.Id == (int)CardId.闪光No39希望皇霍普电光皇))
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning))
{
if (attacker.Attribute == (int)CardAttribute.Wind && Bot.HasInHand((int)CardId.妖仙兽辻斩风))
if (attacker.Attribute == (int)CardAttribute.Wind && Bot.HasInHand((int)CardId.YosenjuTsujik))
attacker.RealPower = attacker.RealPower + 1000;
if (attacker.Id == (int)CardId.闪光No39希望皇霍普电光皇 && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.No39希望皇霍普))
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia))
attacker.RealPower = 5000;
}
return attacker.RealPower > defender.GetDefensePower();
}
private bool 强欲而谦虚之壶()
private bool PotOfDualityEffect()
{
if (已发动削命)
if (CardOfDemiseUsed)
{
AI.SelectCard(new[]
{
(int)CardId.星光大道,
(int)CardId.魔力抽取,
(int)CardId.神之宣告,
(int)CardId.虚无空间,
(int)CardId.鹰身女妖的羽毛扫,
(int)CardId.波纹防护罩波浪之力,
(int)CardId.沙尘防护罩尘埃之力,
(int)CardId.神之通告,
(int)CardId.神之警告,
(int)CardId.大宇宙,
(int)CardId.削命的宝札
(int)CardId.StarlightRoad,
(int)CardId.MagicDrain,
(int)CardId.SolemnJudgment,
(int)CardId.VanitysEmptiness,
(int)CardId.HarpiesFeatherDuster,
(int)CardId.DrowningMirrorForce,
(int)CardId.QuakingMirrorForce,
(int)CardId.SolemnStrike,
(int)CardId.SolemnWarning,
(int)CardId.MacroCosmos,
(int)CardId.CardOfDemise
});
}
else
{
AI.SelectCard(new[]
{
(int)CardId.妖仙兽镰叁太刀,
(int)CardId.妖仙兽镰壹太刀,
(int)CardId.妖仙兽镰贰太刀,
(int)CardId.星光大道,
(int)CardId.魔力抽取,
(int)CardId.虚无空间,
(int)CardId.鹰身女妖的羽毛扫,
(int)CardId.波纹防护罩波浪之力,
(int)CardId.沙尘防护罩尘埃之力,
(int)CardId.神之通告,
(int)CardId.神之宣告,
(int)CardId.神之警告,
(int)CardId.大宇宙,
(int)CardId.削命的宝札,
(int)CardId.YosenjuKama3,
(int)CardId.YosenjuKama1,
(int)CardId.YosenjuKama2,
(int)CardId.StarlightRoad,
(int)CardId.MagicDrain,
(int)CardId.VanitysEmptiness,
(int)CardId.HarpiesFeatherDuster,
(int)CardId.DrowningMirrorForce,
(int)CardId.QuakingMirrorForce,
(int)CardId.SolemnStrike,
(int)CardId.SolemnJudgment,
(int)CardId.SolemnWarning,
(int)CardId.MacroCosmos,
(int)CardId.CardOfDemise,
});
}
return true;
}
private bool 削命的宝札()
private bool CardOfDemiseEffect()
{
if (AI.Utils.IsTurn1OrMain2())
{
已发动削命 = true;
CardOfDemiseUsed = true;
return true;
}
return false;
}
private bool 优先出重复的妖仙兽()
private bool HaveAnotherYosenjuWithSameNameInHand()
{
foreach (ClientCard card in Bot.Hand)
{
......@@ -255,48 +248,47 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 优先盖不重复的坑()
private bool TrapSetUnique()
{
foreach (ClientCard card in Bot.SpellZone)
{
if (card != null && card.Id == Card.Id)
return false;
}
return 魔陷区有空余格子();
return TrapSetWhenZoneFree();
}
private bool 魔陷区有空余格子()
private bool TrapSetWhenZoneFree()
{
return Bot.GetSpellCountWithoutField() < 4;
}
private bool 已发动过削命()
private bool CardOfDemiseAcivated()
{
return 已发动削命;
return CardOfDemiseUsed;
}
private bool 妖仙兽效果()
private bool YosenjuEffect()
{
// 妖仙兽结束阶段不优先回手
// Don't activate the return to hand effect first
if (Duel.Phase == DuelPhase.End)
return false;
AI.SelectCard(new[]
{
(int)CardId.妖仙兽镰壹太刀,
(int)CardId.妖仙兽镰贰太刀,
(int)CardId.妖仙兽镰叁太刀
(int)CardId.YosenjuKama1,
(int)CardId.YosenjuKama2,
(int)CardId.YosenjuKama3
});
return true;
}
private bool 削命的宝札结束阶段()
private bool CardOfDemiseEPEffect()
{
// 削命宝札结束阶段在妖仙回手前丢手卡
Logger.DebugWriteLine("削命的宝札" + (Duel.Phase == DuelPhase.End));
// do the end phase effect of Card Of Demise before Yosenjus return to hand
return Duel.Phase == DuelPhase.End;
}
private bool 我我我枪手特殊召唤()
private bool GagagaCowboySummon()
{
if (Duel.LifePoints[1] <= 800 || (Bot.GetMonsterCount()>=4 && Duel.LifePoints[1] <= 1600))
{
......@@ -306,28 +298,28 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 励辉士入魔蝇王特殊召唤()
private bool EvilswarmExcitonKnightSummon()
{
int selfCount = Bot.GetMonsterCount() + Bot.GetSpellCount() + Bot.GetHandCount();
int oppoCount = Enemy.GetMonsterCount() + Enemy.GetSpellCount() + Enemy.GetHandCount();
return (selfCount - 1 < oppoCount) && 励辉士入魔蝇王效果();
return (selfCount - 1 < oppoCount) && EvilswarmExcitonKnightEffect();
}
private bool 励辉士入魔蝇王效果()
private bool EvilswarmExcitonKnightEffect()
{
int selfCount = Bot.GetMonsterCount() + Bot.GetSpellCount();
int oppoCount = Enemy.GetMonsterCount() + Enemy.GetSpellCount();
return selfCount < oppoCount;
}
private bool 暗叛逆超量龙特殊召唤()
private bool DarkRebellionXyzDragonSummon()
{
int selfBestAttack = AI.Utils.GetBestAttack(Bot, true);
int oppoBestAttack = AI.Utils.GetBestAttack(Enemy, true);
return selfBestAttack <= oppoBestAttack;
}
private bool 暗叛逆超量龙效果()
private bool DarkRebellionXyzDragonEffect()
{
int oppoBestAttack = AI.Utils.GetBestAttack(Enemy, true);
ClientCard target = AI.Utils.GetOneEnemyBetterThanValue(oppoBestAttack, true);
......@@ -338,14 +330,14 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 电光皇特殊召唤()
private bool NumberS39UtopiatheLightningSummon()
{
int selfBestAttack = AI.Utils.GetBestAttack(Bot, true);
int oppoBestAttack = AI.Utils.GetBestAttack(Enemy, false);
return selfBestAttack <= oppoBestAttack;
}
private bool 星尘龙效果()
private bool StardustDragonEffect()
{
return LastChainPlayer == 1;
}
......
......@@ -11,122 +11,124 @@ namespace WindBot.Game.AI.Decks
{
public enum CardId
{
坏星坏兽席兹奇埃鲁 = 63941210,
怪粉坏兽加达拉 = 36956512,
海龟坏兽加美西耶勒 = 55063751,
多次元坏兽拉迪安 = 28674152,
黏丝坏兽库莫古斯 = 29726552,
光子斩击者 = 65367484,
十二兽马剑 = 77150143,
十二兽蛇笞 = 31755044,
召唤师阿莱斯特 = 86120751,
十二兽鼠骑 = 78872731,
鹰身女妖的羽毛扫 = 18144506,
黑洞 = 53129443,
星球改造 = 73628505,
召唤魔术 = 74063034,
死者苏生 = 83764718,
遭受妨碍的坏兽安眠 = 99330325,
十二兽的会局 = 46060017,
炎舞天玑 = 57103969,
暴走魔法阵 = 47679935,
十二兽的方合 = 73881652,
召唤兽梅尔卡巴 = 75286621,
召唤兽墨瓦腊泥加 = 48791583,
闪光No39希望皇霍普电光皇 = 56832966,
No39希望皇霍普 = 84013237,
大薰风骑士翠玉 = 581014,
十二兽虎炮 = 11510448,
十二兽狗环 = 41375811,
十二兽龙枪 = 48905153,
十二兽牛犄 = 85115440
JizukirutheStarDestroyingKaiju = 63941210,
GadarlatheMysteryDustKaiju = 36956512,
GamecieltheSeaTurtleKaiju = 55063751,
RadiantheMultidimensionalKaiju = 28674152,
KumongoustheStickyStringKaiju = 29726552,
PhotonThrasher = 65367484,
Thoroughblade = 77150143,
Whiptail = 31755044,
Ratpier = 78872731,
AleisterTheInvoker = 86120751,
HarpiesFeatherDuster = 18144506,
DarkHole = 53129443,
Terraforming = 73628505,
Invocation = 74063034,
MonsterReborn = 83764718,
InterruptedKaijuSlumber = 99330325,
ZoodiacBarrage = 46060017,
FireFormationTenki = 57103969,
MagicalMeltdown = 47679935,
ZoodiacCombo = 73881652,
InvokedMechaba = 75286621,
InvokedMagellanica = 48791583,
NumberS39UtopiatheLightning = 56832966,
Number39Utopia = 84013237,
DaigustoEmeral = 581014,
Tigermortar = 11510448,
Chakanine = 41375811,
Drident = 48905153,
Broadbull = 85115440
}
bool 已特殊召唤虎炮 = false;
bool 已特殊召唤狗环 = false;
bool 已特殊召唤牛犄 = false;
int 蛇笞发动次数 = 0;
bool TigermortarSpsummoned = false;
bool ChakanineSpsummoned = false;
bool BroadbullSpsummoned = false;
int WhiptailEffectCount = 0;
public ZoodiacExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
// Quick spells
AddExecutor(ExecutorType.Activate, (int)CardId.鹰身女妖的羽毛扫);
AddExecutor(ExecutorType.Activate, (int)CardId.遭受妨碍的坏兽安眠, DefaultInterruptedKaijuSlumber);
AddExecutor(ExecutorType.Activate, (int)CardId.黑洞, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, (int)CardId.HarpiesFeatherDuster);
AddExecutor(ExecutorType.Activate, (int)CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber);
AddExecutor(ExecutorType.Activate, (int)CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.SpSummon, (int)CardId.海龟坏兽加美西耶勒, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.黏丝坏兽库莫古斯, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.怪粉坏兽加达拉, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.多次元坏兽拉迪安, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.坏星坏兽席兹奇埃鲁, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.KumongoustheStickyStringKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.GadarlatheMysteryDustKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.RadiantheMultidimensionalKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.JizukirutheStarDestroyingKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.Activate, (int)CardId.星球改造);
AddExecutor(ExecutorType.Activate, (int)CardId.暴走魔法阵);
AddExecutor(ExecutorType.Activate, (int)CardId.炎舞天玑, 炎舞天玑效果);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽的会局, 十二兽的会局效果);
AddExecutor(ExecutorType.Activate, (int)CardId.大薰风骑士翠玉);
AddExecutor(ExecutorType.Activate, (int)CardId.Terraforming);
AddExecutor(ExecutorType.Activate, (int)CardId.MagicalMeltdown);
AddExecutor(ExecutorType.Activate, (int)CardId.FireFormationTenki, FireFormationTenkiEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.ZoodiacBarrage, ZoodiacBarrageEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.DaigustoEmeral, DaigustoEmeralEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.光子斩击者, 光子斩击者特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonThrasher, PhotonThrasherSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.No39希望皇霍普, 电光皇特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.Activate, (int)CardId.闪光No39希望皇霍普电光皇);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Number39Utopia, NumberS39UtopiatheLightningSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.NumberS39UtopiatheLightning);
AddExecutor(ExecutorType.Activate, (int)CardId.召唤兽梅尔卡巴, DefaultTrap);
AddExecutor(ExecutorType.Activate, (int)CardId.InvokedMechaba, DefaultTrap);
AddExecutor(ExecutorType.Activate, 十二兽鼠骑素材效果);
AddExecutor(ExecutorType.Activate, RatpierMaterialEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽龙枪, 十二兽龙枪效果);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽牛犄, 十二兽牛犄效果);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽虎炮, 十二兽虎炮效果);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽狗环, 十二兽狗环效果);
AddExecutor(ExecutorType.Activate, (int)CardId.Drident, DridentEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Broadbull, BroadbullEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Tigermortar, TigermortarEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.Chakanine, ChakanineEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.十二兽狗环, 十二兽狗环特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.十二兽虎炮, 十二兽虎炮特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.十二兽牛犄, 十二兽牛犄特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.十二兽龙枪, 十二兽龙枪特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Chakanine, ChakanineSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Tigermortar, TigermortarSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Broadbull, BroadbullSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Drident, DridentSummon);
AddExecutor(ExecutorType.Summon, (int)CardId.十二兽鼠骑);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽鼠骑, 十二兽鼠骑效果);
AddExecutor(ExecutorType.Summon, (int)CardId.十二兽马剑);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽马剑, 十二兽鼠骑效果);
AddExecutor(ExecutorType.Summon, (int)CardId.召唤师阿莱斯特);
AddExecutor(ExecutorType.Activate, (int)CardId.召唤师阿莱斯特, 召唤师阿莱斯特效果);
AddExecutor(ExecutorType.Summon, (int)CardId.Ratpier);
AddExecutor(ExecutorType.Activate, (int)CardId.Ratpier, Ratpier);
AddExecutor(ExecutorType.Summon, (int)CardId.Thoroughblade);
AddExecutor(ExecutorType.Activate, (int)CardId.Thoroughblade, Ratpier);
AddExecutor(ExecutorType.Summon, (int)CardId.AleisterTheInvoker);
AddExecutor(ExecutorType.Activate, (int)CardId.AleisterTheInvoker, AleisterTheInvokerEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.大薰风骑士翠玉, 大薰风骑士翠玉特殊召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.DaigustoEmeral, DaigustoEmeralSummon);
AddExecutor(ExecutorType.SpSummon, (int)CardId.十二兽牛犄, 十二兽牛犄超量召唤);
AddExecutor(ExecutorType.SpSummon, (int)CardId.Broadbull, BroadbullXYZSummon);
AddExecutor(ExecutorType.Activate, (int)CardId.死者苏生, 死者苏生效果);
AddExecutor(ExecutorType.Activate, (int)CardId.MonsterReborn, MonsterRebornEffect);
AddExecutor(ExecutorType.SpSummon, (int)CardId.光子斩击者);
AddExecutor(ExecutorType.Summon, (int)CardId.十二兽蛇笞);
AddExecutor(ExecutorType.SpSummon, (int)CardId.PhotonThrasher);
AddExecutor(ExecutorType.Summon, (int)CardId.Whiptail);
AddExecutor(ExecutorType.Activate, (int)CardId.召唤魔术, 召唤魔术效果);
AddExecutor(ExecutorType.Activate, (int)CardId.Invocation, InvocationEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽蛇笞, 十二兽蛇笞效果);
AddExecutor(ExecutorType.Activate, (int)CardId.Whiptail, WhiptailEffect);
AddExecutor(ExecutorType.Activate, (int)CardId.十二兽的方合, 十二兽的方合效果);
AddExecutor(ExecutorType.Activate, (int)CardId.ZoodiacCombo, ZoodiacComboEffect);
AddExecutor(ExecutorType.SpellSet, (int)CardId.十二兽的方合);
AddExecutor(ExecutorType.SpellSet, (int)CardId.ZoodiacCombo);
AddExecutor(ExecutorType.Repos, MonsterRepos);
}
public override bool OnSelectHand()
{
// 抢先攻
// go first
return true;
}
public override void OnNewTurn()
{
// 回合开始时重置状况
已特殊召唤虎炮 = false;
已特殊召唤狗环 = false;
已特殊召唤牛犄 = false;
蛇笞发动次数 = 0;
// reset
TigermortarSpsummoned = false;
ChakanineSpsummoned = false;
BroadbullSpsummoned = false;
WhiptailEffectCount = 0;
}
public override bool OnPreBattleBetween(ClientCard attacker, ClientCard defender)
......@@ -136,32 +138,32 @@ namespace WindBot.Game.AI.Decks
if (defender.IsMonsterDangerous() || defender.IsDefense())
return false;
}
if (!(defender.Id == (int)CardId.闪光No39希望皇霍普电光皇))
if (!(defender.Id == (int)CardId.NumberS39UtopiatheLightning))
{
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand((int)CardId.召唤师阿莱斯特))
//if (attacker.HasType(CardType.Fusion) && Bot.HasInHand((int)CardId.AleisterTheInvoker))
// attacker.RealPower = attacker.RealPower + 1000;
if (attacker.Id == (int)CardId.闪光No39希望皇霍普电光皇 && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.No39希望皇霍普))
if (attacker.Id == (int)CardId.NumberS39UtopiatheLightning && !attacker.IsDisabled() && attacker.HasXyzMaterial(2, (int)CardId.Number39Utopia))
attacker.RealPower = 5000;
}
return attacker.RealPower > defender.GetDefensePower();
}
private bool 电光皇特殊召唤()
private bool NumberS39UtopiatheLightningSummon()
{
int selfBestAttack = AI.Utils.GetBestAttack(Bot, true);
int oppoBestAttack = AI.Utils.GetBestAttack(Enemy, false);
return selfBestAttack < oppoBestAttack;
}
private bool 光子斩击者特殊召唤()
private bool PhotonThrasherSummon()
{
return Bot.HasInHand((int)CardId.召唤师阿莱斯特)
&& !Bot.HasInHand((int)CardId.十二兽鼠骑)
&& !Bot.HasInHand((int)CardId.十二兽马剑);
return Bot.HasInHand((int)CardId.AleisterTheInvoker)
&& !Bot.HasInHand((int)CardId.Ratpier)
&& !Bot.HasInHand((int)CardId.Thoroughblade);
}
private bool 召唤师阿莱斯特效果()
private bool AleisterTheInvokerEffect()
{
if (Card.Location == CardLocation.Hand)
{
......@@ -175,7 +177,7 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 召唤魔术效果()
private bool InvocationEffect()
{
if (Card.Location == CardLocation.Grave)
return true;
......@@ -200,8 +202,8 @@ namespace WindBot.Game.AI.Decks
}
if (mat != null)
{
AI.SelectCard((int)CardId.召唤兽梅尔卡巴);
选择墓地里的召唤师();
AI.SelectCard((int)CardId.InvokedMechaba);
SelectAleisterInGrave();
AI.SelectThirdCard(mat);
AI.SelectPosition(CardPosition.FaceUpAttack);
return true;
......@@ -224,8 +226,8 @@ namespace WindBot.Game.AI.Decks
}
if (mat != null)
{
AI.SelectCard((int)CardId.召唤兽墨瓦腊泥加);
选择墓地里的召唤师();
AI.SelectCard((int)CardId.InvokedMagellanica);
SelectAleisterInGrave();
AI.SelectThirdCard(mat);
AI.SelectPosition(CardPosition.FaceUpAttack);
return true;
......@@ -233,13 +235,13 @@ namespace WindBot.Game.AI.Decks
return false;
}
private void 选择墓地里的召唤师()
private void SelectAleisterInGrave()
{
IList<ClientCard> materials0 = Bot.Graveyard;
IList<ClientCard> materials1 = Enemy.Graveyard;
foreach (ClientCard card in materials1)
{
if (card.Id == (int)CardId.召唤师阿莱斯特)
if (card.Id == (int)CardId.AleisterTheInvoker)
{
AI.SelectNextCard(card);
return;
......@@ -247,198 +249,198 @@ namespace WindBot.Game.AI.Decks
}
foreach (ClientCard card in materials0)
{
if (card.Id == (int)CardId.召唤师阿莱斯特)
if (card.Id == (int)CardId.AleisterTheInvoker)
{
AI.SelectNextCard(card);
return;
}
}
AI.SelectNextCard((int)CardId.召唤师阿莱斯特);
AI.SelectNextCard((int)CardId.AleisterTheInvoker);
}
private bool 十二兽狗环特殊召唤()
private bool ChakanineSummon()
{
if (Bot.HasInMonstersZone((int)CardId.十二兽鼠骑) && !已特殊召唤狗环)
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !ChakanineSpsummoned)
{
AI.SelectCard((int)CardId.十二兽鼠骑);
AI.SelectCard((int)CardId.Ratpier);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤狗环 = true;
ChakanineSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽牛犄) && !已特殊召唤狗环)
if (Bot.HasInMonstersZone((int)CardId.Broadbull) && !ChakanineSpsummoned)
{
AI.SelectCard((int)CardId.十二兽牛犄);
AI.SelectCard((int)CardId.Broadbull);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤狗环 = true;
ChakanineSpsummoned = true;
return true;
}
return false;
}
private bool 十二兽狗环效果()
private bool ChakanineEffect()
{
if (Bot.HasInGraveyard((int)CardId.十二兽蛇笞) || Bot.HasInGraveyard((int)CardId.十二兽马剑))
if (Bot.HasInGraveyard((int)CardId.Whiptail) || Bot.HasInGraveyard((int)CardId.Thoroughblade))
{
AI.SelectCard(new[]
{
(int)CardId.十二兽牛犄,
(int)CardId.十二兽虎炮,
(int)CardId.十二兽狗环,
(int)CardId.十二兽马剑,
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽蛇笞
(int)CardId.Broadbull,
(int)CardId.Tigermortar,
(int)CardId.Chakanine,
(int)CardId.Thoroughblade,
(int)CardId.Ratpier,
(int)CardId.Whiptail
});
AI.SelectNextCard(new[]
{
(int)CardId.十二兽蛇笞,
(int)CardId.十二兽马剑
(int)CardId.Whiptail,
(int)CardId.Thoroughblade
});
return true;
}
return false;
}
private bool 十二兽虎炮特殊召唤()
private bool TigermortarSummon()
{
if (Bot.HasInMonstersZone((int)CardId.十二兽狗环) && !已特殊召唤虎炮)
if (Bot.HasInMonstersZone((int)CardId.Chakanine) && !TigermortarSpsummoned)
{
AI.SelectCard((int)CardId.十二兽狗环);
AI.SelectCard((int)CardId.Chakanine);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤虎炮 = true;
TigermortarSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽鼠骑) && !已特殊召唤虎炮)
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !TigermortarSpsummoned)
{
AI.SelectCard((int)CardId.十二兽鼠骑);
AI.SelectCard((int)CardId.Ratpier);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤虎炮 = true;
TigermortarSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽马剑) && !已特殊召唤虎炮
if (Bot.HasInMonstersZone((int)CardId.Thoroughblade) && !TigermortarSpsummoned
&& Bot.HasInGraveyard(new List<int>
{
(int)CardId.十二兽蛇笞,
(int)CardId.十二兽鼠骑
(int)CardId.Whiptail,
(int)CardId.Ratpier
}))
{
AI.SelectCard((int)CardId.十二兽马剑);
AI.SelectCard((int)CardId.Thoroughblade);
AI.SelectYesNo(true);
已特殊召唤虎炮 = true;
TigermortarSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽蛇笞) && !已特殊召唤虎炮
&& Bot.HasInGraveyard((int)CardId.十二兽鼠骑))
if (Bot.HasInMonstersZone((int)CardId.Whiptail) && !TigermortarSpsummoned
&& Bot.HasInGraveyard((int)CardId.Ratpier))
{
AI.SelectCard((int)CardId.十二兽蛇笞);
AI.SelectCard((int)CardId.Whiptail);
AI.SelectYesNo(true);
已特殊召唤虎炮 = true;
TigermortarSpsummoned = true;
return true;
}
return false;
}
private bool 十二兽虎炮效果()
private bool TigermortarEffect()
{
//if (Card.HasXyzMaterial((int)CardId.十二兽鼠骑) || !Bot.HasInGraveyard((int)CardId.十二兽鼠骑))
//if (Card.HasXyzMaterial((int)CardId.Ratpier) || !Bot.HasInGraveyard((int)CardId.Ratpier))
// return false;
AI.SelectCard((int)CardId.十二兽狗环);
AI.SelectNextCard((int)CardId.十二兽虎炮);
AI.SelectCard((int)CardId.Chakanine);
AI.SelectNextCard((int)CardId.Tigermortar);
AI.SelectThirdCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽蛇笞,
(int)CardId.十二兽马剑
(int)CardId.Ratpier,
(int)CardId.Whiptail,
(int)CardId.Thoroughblade
});
return true;
}
private bool 十二兽牛犄特殊召唤()
private bool BroadbullSummon()
{
if (Bot.HasInMonstersZone((int)CardId.十二兽虎炮) && !已特殊召唤牛犄)
if (Bot.HasInMonstersZone((int)CardId.Tigermortar) && !BroadbullSpsummoned)
{
AI.SelectCard((int)CardId.十二兽虎炮);
AI.SelectCard((int)CardId.Tigermortar);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤牛犄 = true;
BroadbullSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽狗环) && !已特殊召唤牛犄)
if (Bot.HasInMonstersZone((int)CardId.Chakanine) && !BroadbullSpsummoned)
{
AI.SelectCard((int)CardId.十二兽狗环);
AI.SelectCard((int)CardId.Chakanine);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤牛犄 = true;
BroadbullSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽鼠骑) && !已特殊召唤牛犄)
if (Bot.HasInMonstersZone((int)CardId.Ratpier) && !BroadbullSpsummoned)
{
AI.SelectCard((int)CardId.十二兽鼠骑);
AI.SelectCard((int)CardId.Ratpier);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤牛犄 = true;
BroadbullSpsummoned = true;
return true;
}
if (Bot.HasInMonstersZone((int)CardId.十二兽马剑) && !已特殊召唤牛犄)
if (Bot.HasInMonstersZone((int)CardId.Thoroughblade) && !BroadbullSpsummoned)
{
AI.SelectCard((int)CardId.十二兽马剑);
AI.SelectCard((int)CardId.Thoroughblade);
AI.SelectYesNo(true);
AI.SelectPosition(CardPosition.FaceUpDefence);
已特殊召唤牛犄 = true;
BroadbullSpsummoned = true;
return true;
}
return false;
}
private bool 十二兽牛犄效果()
private bool BroadbullEffect()
{
AI.SelectCard(new[]
{
(int)CardId.十二兽虎炮,
(int)CardId.十二兽狗环,
(int)CardId.十二兽龙枪,
(int)CardId.召唤师阿莱斯特,
(int)CardId.光子斩击者
(int)CardId.Tigermortar,
(int)CardId.Chakanine,
(int)CardId.Drident,
(int)CardId.AleisterTheInvoker,
(int)CardId.PhotonThrasher
});
if (Bot.HasInHand((int)CardId.十二兽蛇笞) && !Bot.HasInHand((int)CardId.十二兽鼠骑))
AI.SelectNextCard((int)CardId.十二兽鼠骑);
if (Bot.HasInHand((int)CardId.Whiptail) && !Bot.HasInHand((int)CardId.Ratpier))
AI.SelectNextCard((int)CardId.Ratpier);
else
AI.SelectNextCard((int)CardId.十二兽蛇笞);
AI.SelectNextCard((int)CardId.Whiptail);
return true;
}
private bool 十二兽牛犄超量召唤()
private bool BroadbullXYZSummon()
{
AI.SelectYesNo(false);
AI.SelectPosition(CardPosition.FaceUpDefence);
AI.SelectCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.光子斩击者,
(int)CardId.十二兽蛇笞,
(int)CardId.召唤师阿莱斯特
(int)CardId.Ratpier,
(int)CardId.PhotonThrasher,
(int)CardId.Whiptail,
(int)CardId.AleisterTheInvoker
});
return true;
}
private bool 十二兽龙枪特殊召唤()
private bool DridentSummon()
{
AI.SelectCard(new[]
{
(int)CardId.十二兽牛犄,
(int)CardId.十二兽虎炮,
(int)CardId.十二兽狗环,
(int)CardId.十二兽马剑
(int)CardId.Broadbull,
(int)CardId.Tigermortar,
(int)CardId.Chakanine,
(int)CardId.Thoroughblade
});
return true;
}
private bool 十二兽鼠骑素材效果()
private bool RatpierMaterialEffect()
{
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.十二兽鼠骑, 1))
if (ActivateDescription == AI.Utils.GetStringId((int)CardId.Ratpier, 1))
{
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
......@@ -446,17 +448,17 @@ namespace WindBot.Game.AI.Decks
return false;
}
private bool 十二兽蛇笞效果()
private bool WhiptailEffect()
{
if (Duel.Phase == DuelPhase.Main1 || Duel.Phase == DuelPhase.Main2)
return false;
if (Card.IsDisabled() || 蛇笞发动次数 >= 3)
if (Card.IsDisabled() || WhiptailEffectCount >= 3)
return false;
ClientCard target = null;
List<ClientCard> monsters = Bot.GetMonsters();
foreach (ClientCard monster in monsters)
{
if (monster.IsFaceup() && monster.Id == (int)CardId.十二兽龙枪 && !monster.HasXyzMaterial())
if (monster.IsFaceup() && monster.Id == (int)CardId.Drident && !monster.HasXyzMaterial())
{
target = monster;
break;
......@@ -466,7 +468,7 @@ namespace WindBot.Game.AI.Decks
{
foreach (ClientCard monster in monsters)
{
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != (int)CardId.大薰风骑士翠玉 && !monster.HasXyzMaterial())
if (monster.IsFaceup() && monster.Type == (int)CardType.Xyz && monster.Id != (int)CardId.DaigustoEmeral && !monster.HasXyzMaterial())
{
target = monster;
break;
......@@ -477,25 +479,25 @@ namespace WindBot.Game.AI.Decks
{
AI.SelectCard(new[]
{
(int)CardId.十二兽龙枪
(int)CardId.Drident
});
}
蛇笞发动次数++;
WhiptailEffectCount++;
return true;
}
private bool 十二兽鼠骑效果()
private bool Ratpier()
{
AI.SelectCard(new[]
{
(int)CardId.十二兽的方合,
(int)CardId.十二兽马剑,
(int)CardId.十二兽的会局
(int)CardId.ZoodiacCombo,
(int)CardId.Thoroughblade,
(int)CardId.ZoodiacBarrage
});
return true;
}
private bool 十二兽龙枪效果()
private bool DridentEffect()
{
if (LastChainPlayer == 0)
return false;
......@@ -543,114 +545,114 @@ namespace WindBot.Game.AI.Decks
return false;
AI.SelectCard(new[]
{
(int)CardId.十二兽牛犄,
(int)CardId.十二兽虎炮,
(int)CardId.十二兽狗环,
(int)CardId.十二兽马剑,
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽蛇笞
(int)CardId.Broadbull,
(int)CardId.Tigermortar,
(int)CardId.Chakanine,
(int)CardId.Thoroughblade,
(int)CardId.Ratpier,
(int)CardId.Whiptail
});
AI.SelectNextCard(target);
return true;
}
private bool 大薰风骑士翠玉特殊召唤()
private bool DaigustoEmeralSummon()
{
return Bot.GetGraveyardMonsters().Count >= 3;
}
private bool 大薰风骑士翠玉效果()
private bool DaigustoEmeralEffect()
{
AI.SelectCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.召唤师阿莱斯特,
(int)CardId.十二兽蛇笞
(int)CardId.Ratpier,
(int)CardId.AleisterTheInvoker,
(int)CardId.Whiptail
});
AI.SelectNextCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.大薰风骑士翠玉
(int)CardId.Ratpier,
(int)CardId.DaigustoEmeral
});
return true;
}
private bool 炎舞天玑效果()
private bool FireFormationTenkiEffect()
{
if (Bot.HasInHand((int)CardId.十二兽的会局)
|| Bot.HasInSpellZone((int)CardId.十二兽的会局)
|| Bot.HasInHand((int)CardId.十二兽鼠骑))
if (Bot.HasInHand((int)CardId.ZoodiacBarrage)
|| Bot.HasInSpellZone((int)CardId.ZoodiacBarrage)
|| Bot.HasInHand((int)CardId.Ratpier))
{
AI.SelectCard((int)CardId.十二兽蛇笞);
AI.SelectCard((int)CardId.Whiptail);
}
else
{
AI.SelectCard((int)CardId.十二兽鼠骑);
AI.SelectCard((int)CardId.Ratpier);
}
AI.SelectYesNo(true);
return true;
}
private bool 十二兽的会局效果()
private bool ZoodiacBarrageEffect()
{
IList<ClientCard> spells = Bot.GetSpells();
foreach (ClientCard spell in spells)
{
if (spell.Id == (int)CardId.十二兽的会局 && !Card.Equals(spell))
if (spell.Id == (int)CardId.ZoodiacBarrage && !Card.Equals(spell))
return false;
}
AI.SelectCard(new[]
{
(int)CardId.炎舞天玑,
(int)CardId.暴走魔法阵,
(int)CardId.十二兽的会局
(int)CardId.FireFormationTenki,
(int)CardId.MagicalMeltdown,
(int)CardId.ZoodiacBarrage
});
AI.SelectNextCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽蛇笞,
(int)CardId.十二兽马剑
(int)CardId.Ratpier,
(int)CardId.Whiptail,
(int)CardId.Thoroughblade
});
AI.SelectPosition(CardPosition.FaceUpDefence);
return true;
}
private bool 十二兽的方合效果()
private bool ZoodiacComboEffect()
{
if (CurrentChain.Count > 0)
return false;
if (Card.Location != CardLocation.Grave)
{
AI.SelectCard((int)CardId.十二兽龙枪);
AI.SelectCard((int)CardId.Drident);
AI.SelectNextCard(new[]
{
(int)CardId.十二兽蛇笞,
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽马剑
(int)CardId.Whiptail,
(int)CardId.Ratpier,
(int)CardId.Thoroughblade
});
}
return true;
}
private bool 死者苏生效果()
private bool MonsterRebornEffect()
{
AI.SelectCard(new[]
{
(int)CardId.十二兽鼠骑,
(int)CardId.十二兽蛇笞,
(int)CardId.召唤兽梅尔卡巴,
(int)CardId.坏星坏兽席兹奇埃鲁,
(int)CardId.召唤兽墨瓦腊泥加,
(int)CardId.十二兽虎炮,
(int)CardId.十二兽狗环,
(int)CardId.十二兽牛犄
(int)CardId.Ratpier,
(int)CardId.Whiptail,
(int)CardId.InvokedMechaba,
(int)CardId.JizukirutheStarDestroyingKaiju,
(int)CardId.InvokedMagellanica,
(int)CardId.Tigermortar,
(int)CardId.Chakanine,
(int)CardId.Broadbull
});
return true;
}
private bool MonsterRepos()
{
if (Card.Id == (int)CardId.闪光No39希望皇霍普电光皇)
if (Card.Id == (int)CardId.NumberS39UtopiatheLightning)
return false;
return base.DefaultMonsterRepos();
}
......
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