Commit 1cc4c23b authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:moecube/windbot

parents 1b11b65b 6260492f
......@@ -62,7 +62,7 @@ AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!复制植物-青眼
Name=复制植物 Deck=Blue-Eyes Dialog=copy.zh-CN
青眼卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!复制植物-十二兽
Name=复制植物 Deck=Zoodiac Dialog=copy.zh-CN
......@@ -214,7 +214,12 @@ Name=朱露咲浅羽 Deck=Dragun Dialog=nlch.zh-CN
超魔导真红眼龙骑士卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!玻璃女巫
!我太帅了-水百凤凰勇者
Name=我太帅了 Deck=Brave Dialog=smart.zh-CN
水机百头龙凤凰人勇者卡组。
AI_LV3 SUPPORT_MASTER_RULE_2020
!玻璃女巫-魔女术
Name=玻璃女巫 Deck=Witchcraft Dialog=verre.zh-CN
魔女术卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
......@@ -234,6 +239,11 @@ Name=濑名歌铃 Deck=Brave Dialog=wof-Sena-Karin
????? 卡组。
AI_LV3 SUPPORT_MASTER_RULE_2020
!玻璃女巫-救祓少女
Name=玻璃女巫 Deck=Exosister Dialog=verre.zh-CN
救祓少女卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!神数不神-刹帝利
Name=神数不神 Deck=Kashtira Dialog=Zefra.zh-CN
俱舍怒威族卡组。
......@@ -243,3 +253,8 @@ AI_LV3 SUPPORT_MASTER_RULE_2020
Name=神数不神 Deck=ThunderDragon Dialog=Zefra.zh-CN
深渊混沌雷龙卡组。(普通模式的人机的卡组会符合其使用的卡池对应的环境的禁限卡表,但在狂野模式中,人机的卡组不符合任何禁限卡表。)
SUPPORT_MASTER_RULE_2020
!神数不神-珠泪哀歌
Name=神数不神 Deck=Tearlaments Dialog=Zefra.zh-CN
旧式地天使珠泪哀歌族卡组。
AI_LV3 SUPPORT_MASTER_RULE_2020
#created by ...
#main
37343995
37343995
37343995
16889337
16889337
16889337
16474916
16474916
16474916
67972302
67972302
67972302
79858629
79858629
43863925
43863925
43863925
5352328
5352328
14558127
14558127
14558127
23434538
23434538
23434538
84211599
84211599
4408198
24224830
24224830
77913594
77913594
77913594
197042
197042
10045474
10045474
77891946
77891946
77891946
#extra
90448279
59242457
59242457
9272381
42741437
42741437
42741437
78135071
78135071
41524885
41524885
46772449
5530780
58858807
8728498
!side
74689476
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -123,12 +123,18 @@ namespace WindBot.Game.AI
public const int AntiSpellFragrance = 58921041;
public const int lightningStorm = 14532163;
public const int VaylantzWorld_ShinraBansho = 49568943;
public const int VaylantzWorld_KonigWissen = 75952542;
public const int DivineArsenalAAZEUS_SkyThunder = 90448279;
}
protected DefaultExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
AddExecutor(ExecutorType.Activate, _CardId.ChickenGame, DefaultChickenGame);
AddExecutor(ExecutorType.Activate, _CardId.VaylantzWorld_ShinraBansho, DefaultVaylantzWorld_ShinraBansho);
AddExecutor(ExecutorType.Activate, _CardId.VaylantzWorld_KonigWissen, DefaultVaylantzWorld_KonigWissen);
AddExecutor(ExecutorType.Activate, _CardId.SantaClaws);
}
......@@ -795,7 +801,8 @@ namespace WindBot.Game.AI
_CardId.BlackRoseDragon,
_CardId.JudgmentDragon,
_CardId.TopologicTrisbaena,
_CardId.EvenlyMatched
_CardId.EvenlyMatched,
_CardId.DivineArsenalAAZEUS_SkyThunder
};
int[] destroyAllOpponentSpellList =
{
......@@ -1185,6 +1192,7 @@ namespace WindBot.Game.AI
return Util.IsTurn1OrMain2();
}
<<<<<<< HEAD
protected bool DefaultLightingStorm()
{
if ((Enemy.MonsterZone.ToList().Count > Enemy.SpellZone.ToList().Count ) && Enemy.MonsterZone.ToList().Count>3)
......@@ -1198,6 +1206,56 @@ namespace WindBot.Game.AI
return true;
}
=======
/// <summary>
/// Always activate
/// </summary>
protected bool DefaultVaylantzWorld_ShinraBansho()
{
if (DefaultSpellWillBeNegated()) {
return false;
}
return true;
}
/// <summary>
/// Select enemy's best monster
/// </summary>
protected bool DefaultVaylantzWorld_KonigWissen()
{
if (DefaultSpellWillBeNegated()) {
return false;
}
List<ClientCard> monsters = Enemy.GetMonsters();
if (monsters.Count == 0) {
return false;
}
List<ClientCard> targetList = new List<ClientCard>();
List<ClientCard> floodgateCards = monsters
.Where(card => card?.Data != null && card.IsFloodgate() && card.IsFaceup() && !card.IsShouldNotBeTarget())
.OrderBy(card => card.Attack).ToList();
List<ClientCard> dangerousCards = monsters
.Where(card => card?.Data != null && card.IsMonsterDangerous() && card.IsFaceup() && !card.IsShouldNotBeTarget())
.OrderBy(card => card.Attack).ToList();
List<ClientCard> attackOrderedCards = monsters
.Where(card => card?.Data != null && card.HasType(CardType.Monster) && card.IsFaceup() && card.IsShouldNotBeTarget())
.OrderBy(card => card.Attack).ToList();
targetList.AddRange(floodgateCards);
targetList.AddRange(dangerousCards);
targetList.AddRange(attackOrderedCards);
if (targetList?.Count > 0)
{
AI.SelectCard(targetList);
return true;
}
return false;
>>>>>>> 6260492fb4014076ca1854193cba6cf2cbe4df68
}
}
}
......@@ -106,6 +106,99 @@
AdamancipatorRisenDragite = 9464441,
TeardroptheRikkaQueen = 33779875,
CeruleanSkyFire = 54828837,
SacredBeastAwakening = 53701259
SacredBeastAwakening = 53701259,
GrandSpiritualArtIchirin = 38057522,
DualAvatarFeetArmoredUnGyo = 7631534,
VirtualWorldKyubiShenshen = 92519087,
VirtualWorldGateChuche = 13364097,
DragunityKnightAreadbhair = 88234821,
AiwasstheMagistusSpellSpirit = 35877582,
OneirostheDreamMirrorErlking = 35187185,
PlunderPatrollshipBrann = 94253655,
PlunderPatrollshipMoerk = 20248754,
PlunderPatrollshipLys = 18832779,
HollowGiants = 15462014,
GrozaTyrantofThunder = 45420955,
SpringansCaptainSargas = 29601381,
S_ForceOrrafist = 95974848,
AncientWarriors_RebelliousLuFeng = 82791472,
OneirostheDreamMirrorTormentor = 37678339,
SacredTreeBeastHyperyton = 9349094,
S_ForceJustify = 35334193,
UnderworldGoddessoftheClosedWorld = 98127546,
VampireVoivode = 4918855,
NekrozofAreadbhair = 39468724,
NekrozofUnicore = 89463537,
BenghalancertheResurgent = 73345237,
UrsarcticSeptentrion = 53087962,
TheIrisSwordsoul = 62849088,
AntihumanIntelligenceME_PSY_YA = 58844135,
MagikeyMechmortar_Garesglasser = 45877457,
ShootingMajesticStarDragon = 40939228,
StellarWindWolfrayet = 3322931,
ChronomalyVimana = 2609443,
CyberdarknessDragon = 18967507,
ClearWingSynchroDragon = 82044279,
CrystalClearWingSynchroDragon = 59765225,
BaronnedeFleur = 84815190,
Lyrilusc_EnsemblueRobin = 72971064,
Number4StealthKragen = 67557908,
Floowandereeze_Snowl = 53212882,
Floowandereeze_Empen = 80611581,
MasqueradetheBlazingDragon = 6855503,
DestinyHERO_DestroyerPhoenixEnforcer = 60461804,
SwordsoulGrandmaster_Chixiao = 69248256,
ZoroatheMagistusConflagrantCalamity = 95911373,
MasterflareHyperion = 63101468,
FallenSanctuary = 90312154,
MyutantBeast = 34695290,
MyutantArsenal = 7574904,
MyutantUltimus = 6182103,
Underdog = 5779502,
IcejadeKosmochlor = 3355732,
IllusionofChaos = 12266229,
SwordsoulSinisterSovereign_QixingLongyuan = 47710198,
DDDDeviserKingDeusMachinex = 46593546,
IcejadeErosion = 46593546,
NordicRelicSvalinn = 64797746,
OceanDragonLord_Kairyu_Shin = 23931679,
MarincessAquaArgonaut = 20934852,
MirrorjadetheIcebladeDragon = 44146295,
WitchcrafterVice_Madame = 9603252,
Therion_King_Regulus = 10604644,
StarvingVenomPredapowerFusionDragon = 39915560,
DinomorphiaRexterm = 92798873,
ExosistersMagnifica = 59242457,
IcejadeCurse = 83670388,
MamonakatheVaylantzUnited = 40680521,
LabrynthLabyrinth = 33407125,
RunickFountain = 92107604,
SprightRed = 75922381,
SprightCarrot = 2311090,
RikkaKonkon = 76869711,
PowerToolBraverDragon = 63265554,
MagikeyDeity_Ashtartu = 26988374,
RainbowOverdragon = 37440988,
TheBystialAlbaLos = 69120785,
KashtiraFenrir = 32909498,
MitsutheInsectNinja = 67282505,
VeratheVernusylphGoddess = 55125728,
TearlamentsRulkallos = 84330567,
Black_WingedAssaultDragon = 73218989,
BrandedBeast = 32756828,
GraphaDragonOverlordofDarkWorld = 39552584,
EpurrelyBeauty = 98049934,
ExpurrelyNoir = 83827392,
BeetrooperScaleBomber = 39041550,
EvigishkiNeremanas = 88926295,
ArktosXII_ChronochasmVaylantz = 50687050,
IcejadeGymirAegirine = 86682165,
KashtiraArise_Heart = 48626373,
LaevateinGeneraiderBossofShadows = 74615388,
SynchroZone = 60306277,
BystialDisPater = 27572350,
DespianLuluwalilith = 53971455,
FirewallDragonSingularity = 21637210,
BrandedEtude = 45675980
}
}
......@@ -51,9 +51,37 @@
FusionGate = 33550694,
DFusion = 26841274,
FusionDestiny = 52947044,
PyroxeneFusion = 55824220,
FragmentFusion = 72029628,
NecroFusion = 81223446,
PredaplantVerteAnaconda = 70369116,
DreamMirrorofChaos = 98570539,
PlunderPatrollShipshapeShipsShipping = 44227727,
FireFormationIngen = 29143457,
ParametalfoesFusion = 58549532,
ReadyFusion = 63854005,
BrandedinWhite = 34995106,
BrandedinRed = 82738008,
FaceCardFusion = 29062925,
MyutantFusion = 42577802,
MyutantCry = 31855260,
GreaterPolymerization = 7614732,
UltimateFusion = 71143015,
BrandedFusion = 44362883,
GhostFusion = 35705817,
WitchcrafterConfusionConfession = 35098357,
BrandedBanishment = 6763530,
DinomorphiaDomain = 26631975,
DinomorphiaFrenzy = 78420796,
SouloftheSupremeKing = 92428405,
InstantContact = 16169772,
ScatterFusion = 40597694,
FavoriteContact = 75047173,
AmazonessSecretArts = 86758746,
DarkWorldAccession = 65956182,
BeetrooperLanding = 13234975,
FusionReproduction = 43331750
}
}
......@@ -25,7 +25,9 @@
DaigustoSphreez = 29552709,
Number92HearteartHDragon = 97403510,
NumberC96DarkStorm = 77205367,
Number54LionHeart = 54366836
Number54LionHeart = 54366836,
Number2NinjaShadowMosquito = 32453837,
OhimetheManifestedMikanko = 81260679
}
/// <summary>
/// Cards that are invincible to battle.
......@@ -93,6 +95,12 @@
GoukiTheGiantOgre = 47946130,
BorrelswordDragon = 85289965,
NumberF0UtopicFutureDragon = 26973555,
BorrelendDragon = 98630720
BorrelendDragon = 98630720,
MimickingMan_EaterBug = 72427512,
ShiningPiecephilia = 49776811,
BrigrandtheGloryDragon = 34848821,
AmazonessQueen = 15951532,
Number2NinjaShadowMosquito = 32453837,
OhimetheManifestedMikanko = 81260679
}
}
......@@ -11,5 +11,10 @@
SamuraiDestroyer = 40509732,
ArmadesKeeperOfBoundaries = 88033975,
NumberS39UtopiaTheLightning = 56832966,
DualAvatarEmpoweredKonGyo = 33026283,
GGolemRockHammer = 98875863,
WishDragon = 64583600,
ChaosWitch = 30327674,
FissioningMotherSpider = 34034150
}
}
......@@ -56,6 +56,9 @@
ShiranuiSolitaire = 94801854,
Mixeroid = 71340250,
LonefireBlossom = 48686504,
BrotherhoodoftheFireFist_Leopard = 39699564
BrotherhoodoftheFireFist_Leopard = 39699564,
SpringansPedor = 56818977,
GizmekNaganakitheSunriseSignaler = 96399967,
MyutantMutant = 26561172
}
}
......@@ -14,6 +14,8 @@
PaleozoicAnomalocaris = 61307542,
PaleozoicOpabinia = 37649320,
BorreloadDragon = 31833038,
BorrelendDragon = 98630720
BorrelendDragon = 98630720,
DrytronMeteonisDraconids = 69815951,
MyutantBeast = 34695290
}
}
......@@ -9,6 +9,7 @@
ApoqliphortTowers = 27279764,
ApoqliphortSkybase = 40061558,
TheLegendaryFishermanIII = 44968687,
ChaosAncientGearGiant = 51788412
ChaosAncientGearGiant = 51788412,
DrytronMeteonisQuadrantids = 95209656
}
}
......@@ -18,8 +18,10 @@ namespace WindBot.Game
public BattlePhase BattlePhase { get; set; }
public int LastChainPlayer { get; set; }
public CardLocation LastChainLocation { get; set; }
public IList<ClientCard> CurrentChain { get; set; }
public IList<ClientCard> ChainTargets { get; set; }
public IList<ClientCard> LastChainTargets { get; set; }
public IList<ClientCard> ChainTargetOnly { get; set; }
public int LastSummonPlayer { get; set; }
public IList<ClientCard> SummoningCards { get; set; }
......@@ -31,8 +33,10 @@ namespace WindBot.Game
Fields[0] = new ClientField();
Fields[1] = new ClientField();
LastChainPlayer = -1;
LastChainLocation = 0;
CurrentChain = new List<ClientCard>();
ChainTargets = new List<ClientCard>();
LastChainTargets = new List<ClientCard>();
ChainTargetOnly = new List<ClientCard>();
LastSummonPlayer = -1;
SummoningCards = new List<ClientCard>();
......
......@@ -777,7 +777,8 @@ namespace WindBot.Game
card.SetId(cardId);
int cc = GetLocalPlayer(packet.ReadByte());
if (_debug)
if (card != null) Logger.WriteLine("(" + cc.ToString() + " 's " + (card.Name ?? "UnKnowCard") + " activate effect)");
if (card != null) Logger.WriteLine("(" + cc.ToString() + " 's " + (card.Name ?? "UnKnowCard") + " activate effect from " + (CardLocation)pcl + ")");
_duel.LastChainLocation = (CardLocation)pcl;
_ai.OnChaining(card, cc);
//_duel.ChainTargets.Clear();
_duel.ChainTargetOnly.Clear();
......@@ -791,8 +792,10 @@ namespace WindBot.Game
{
_ai.OnChainEnd();
_duel.LastChainPlayer = -1;
_duel.LastChainLocation = 0;
_duel.CurrentChain.Clear();
_duel.ChainTargets.Clear();
_duel.LastChainTargets.Clear();
_duel.ChainTargetOnly.Clear();
}
......@@ -905,6 +908,7 @@ namespace WindBot.Game
private void OnBecomeTarget(BinaryReader packet)
{
_duel.LastChainTargets.Clear();
int count = packet.ReadByte();
for (int i = 0; i < count; ++i)
{
......@@ -917,6 +921,7 @@ namespace WindBot.Game
if (_debug)
Logger.WriteLine("(" + (CardLocation)loc + " 's " + (card.Name ?? "UnKnowCard") + " become target)");
_duel.ChainTargets.Add(card);
_duel.LastChainTargets.Add(card);
_duel.ChainTargetOnly.Add(card);
}
}
......
......@@ -73,6 +73,7 @@
<Compile Include="Game\AI\Decks\BraveExecutor.cs" />
<Compile Include="Game\AI\Decks\FamiliarPossessedExecutor.cs" />
<Compile Include="Game\AI\Decks\BlackwingExecutor.cs" />
<Compile Include="Game\AI\Decks\ExosisterExecutor.cs" />
<Compile Include="Game\AI\Decks\KashtiraExecutor.cs" />
<Compile Include="Game\AI\Decks\LuckyExecutor.cs" />
<Compile Include="Game\AI\Decks\MathMechExecutor.cs" />
......
......@@ -35,6 +35,56 @@
"deck": "Level VIII",
"dialog": "swordsman.zh-CN"
},
{
"name": "谜之剑士LV4",
"deck": "Level VIII",
"dialog": "swordsman.zh-CN"
},
{
"name": "我太帅了",
"deck": "Dragun",
"dialog": "smart.zh-CN"
},
{
"name": "我太帅了",
"deck": "Brave",
"dialog": "smart.zh-CN"
},
{
"name": "我太帅了",
"deck": "Brave",
"dialog": "smart.zh-CN"
},
{
"name": "玻璃女巫",
"deck": "Witchcraft",
"dialog": "verre.zh-CN"
},
{
"name": "玻璃女巫",
"deck": "Exosister",
"dialog": "verre.zh-CN"
},
{
"name": "玻璃女巫",
"deck": "Exosister",
"dialog": "verre.zh-CN"
},
{
"name": "玻璃女巫",
"deck": "Exosister",
"dialog": "verre.zh-CN"
},
{
"name": "复制植物",
"deck": "Blue-Eyes",
"dialog": "copy.zh-CN"
},
{
"name": "复制植物",
"deck": "Blue-Eyes",
"dialog": "copy.zh-CN"
},
{
"name": "复制植物",
"deck": "Zoodiac",
......
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