Commit 9537ae4a authored by wyykak's avatar wyykak

Add WDL and local support

Signed-off-by: wyykak's avatarwyykak <wyy_1414@126.com>
parent 00d7b610
......@@ -6,6 +6,7 @@ using System.Text.RegularExpressions;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Linq;
using System.Threading;
namespace BotWrapper
{
......@@ -29,6 +30,11 @@ namespace BotWrapper
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
string arg = args[0];
if (Regex.Match(arg, "\\[EXT\\]").Success)
{
startInfo.WorkingDirectory = Path.GetFullPath("WindBot_ext");
startInfo.FileName = startInfo.WorkingDirectory + "\\WindBot.exe";
}
Match match = Regex.Match(arg, "Random=(.*)");
if (match.Success)
{
......
......@@ -4,292 +4,42 @@
# description
# flags (avail flags: SUPPORT_MASTER_RULE_3, SUPPORT_NEW_MASTER_RULE, SUPPORT_MASTER_RULE_2020, SELECT_DECKFILE)
!段位认定-初段
Random=AI_LV1
主要是一些沙包。
SUPPORT_MASTER_RULE_2020
!段位认定-四段
Random=AI_LV2
一些比较弱的卡组。
SUPPORT_MASTER_RULE_2020
!段位认定-七段
Random=AI_LV3
一些不是很弱的卡组。
SUPPORT_MASTER_RULE_2020
!段位认定-皆传
Random=AI_LV4
一些可以(或者曾经可以)在竞技环境里看到的卡组。
SUPPORT_MASTER_RULE_2020
!段位认定-里八段
Random=AI_ANTI_META
一些报复社会(针对主流卡组的弱点)的卡组。
SUPPORT_MASTER_RULE_2020
!段位认定-里皆传
Random=AI_WILD
普通的人机的卡组会符合其使用的卡池对应的环境的禁限卡表,但里皆传模式的人机的卡组一般不符合任何禁限卡表。
SUPPORT_MASTER_RULE_2020
!????-自选卡组
Name=???? Deck=Lucky Dialog=gugugu.zh-CN
人机卡组由你选择。随缘出牌。
SELECT_DECKFILE SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!有栖川蓝子-低星凡骨
Name=有栖川蓝子 Deck=MokeyMokey Dialog=wof-Arisugawa-Aiko
沙包。
!DJNormal
Name=DJ Deck='DJ' Dialog=heyDJ DbPath=expansions\AI.cdb
兄弟打碟吗
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!有栖川蓝子-全程回血
Name=有栖川蓝子 Deck=MokeyMokeyKing Dialog=wof-Arisugawa-Aiko
大沙包。
!一面:幽幽子(Easy
Name=西行寺幽幽子 Deck='YuyukoRank1' Dialog=YuyukoRank1.zh-CN DbPath=expansions\AI.cdb
弱小的一面bossAI。在此难度下AI的智商非常低
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!石砂原奈绪-龙骑星爆
Name=石砂原奈绪 Deck=Dragunity Dialog=wof-Isagohara-Nao
龙骑轴星尘龙爆裂体卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!埃莉丝·科菲-8星同调
Name=埃莉丝·科菲 Deck='Level VIII' Dialog=wof-Elyse-Coffey
8星同调卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!鸣野凪子-R5
Name=鸣野凪子 Deck='Rank V' Dialog=wof-Shigino-Nagiko
5阶超量卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!绫濑亚梦-异热同心武器
Name=绫濑亚梦 Deck='Zexal Weapons' Dialog=wof-Ayase-Amu
神装电光皇卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!梦前菜菜-彩虹
Name=梦前菜菜 Deck=Rainbow Dialog=wof-Yumesaki-Nana
全属性凡骨卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!伊芙·墨菲-饼蛙
Name=伊芙·墨菲 Deck='Toadally Awesome' Dialog=wof-Eve-Murphy
大师规则三的全盛饼蛙卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!下垣鸣海凛央奈-青眼
Name=下垣鸣海凛央奈 Deck=Blue-Eyes Dialog=wof-Shimogakinarumi-Riona
青眼卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!城崎千夏-十二兽
Name=城崎千夏 Deck=Zoodiac Dialog=wof-Jougasaki-Chinatsu
大师规则三的十四兽卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!鹭泽由依-妖仙兽
Name=鹭泽由依 Deck=Yosenju Dialog=wof-Sagisawa-Yui
妖仙兽卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!十十六木花奏子-机壳
Name=十十六木花奏子 Deck=Qliphort Dialog=wof-Todoroki-Kanako
机壳卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!七草一花-淘气仙星
Name=七草一花 Deck=Trickstar Dialog=wof-Nanakusa-Ichika
旧式淘气仙星卡组。
AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!凯瑟琳·罗森塔尔-幻变骚灵
Name=凯瑟琳·罗森塔尔 Deck=Altergeist Dialog=wof-Catherine-Rosenthal
幻变骚灵卡组。
AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!珠洲岛拓海-拉比林斯迷宫
Name=珠洲岛拓海 Deck=Labrynth Dialog=wof-Suzujima-Takumi
拉比林斯迷宫卡组。
AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!濑名歌铃-闪刀姬
Name=濑名歌铃 Deck=SkyStriker Dialog=wof-Sena-Karin
旧式闪刀姬卡组。
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!薇薇安·伊文捷琳-自奏圣乐
Name=薇薇安·伊文捷琳 Deck=Orcust Dialog=wof-Vivian-Evangeline
旧式自奏圣乐卡组。
AI_LV4 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!海伦·薇萨拉兹-转生炎兽
Name=海伦·薇萨拉兹 Deck=Salamangreat Dialog=wof-Helen-Virsaladze
转生炎兽卡组。
AI_LV3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!黑崎智秋-凭依装着
Name=黑崎智秋 Deck=wof-Kurosaki-Chiaki Dialog=wof-Kurosaki-Chiaki
凭依装着卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!砂冢明音-时劫者
Name=砂冢明音 Deck=TimeThief Dialog=wof-Sunazuka-Akane
时间潜行者卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!星希花音-削血
Name=星希花音 Deck=Burn Dialog=wof-Hoshiki-Kanon
老式削血卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!浅见空子-青蛙
Name=浅见空子 Deck=Frog Dialog=wof-Asami-Sorako
老式青蛙卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!佐佐木茜-荷鲁斯
Name=佐佐木茜 Deck=Horus Dialog=wof-Sasaki-Akane
老式龙族卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!早见虹羽-微风
Name=早见虹羽 Deck=PureWinds Dialog=wof-Hayami-Nijiha
风属性卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!水晶艾蕾娜-电子界
Name=水晶艾蕾娜 Deck=ST1732 Dialog=wof-Suisho-Erena
由三盒ST17和三盒SD32组成的卡组。
AI_LV1 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!白石唯-影灵衣
Name=白石唯 Deck=Nekroz Dialog=wof-Shiraishi-Yui
影灵衣卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!音羽真寻-光道
Name=音羽真寻 Deck=Lightsworn Dialog=wof-Otoha-Mahiro
光道卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!神崎春瑚-黑羽
Name=神崎春瑚 Deck=Blackwing Dialog=wof-Kanzaki-Haruko
黑羽卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!樱庭小梅-电子龙
Name=樱庭小梅 Deck=CyberDragon Dialog=wof-Sakuraba-Koume
电子龙卡组。
AI_LV1 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!淡野美妙子-入魔
Name=淡野美妙子 Deck=Evilswarm Dialog=wof-Awaya-Mieko
入魔卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!璃池樱空-守墓
Name=璃池樱空 Deck=Gravekeeper Dialog=wof-Akiike-Sara
守墓卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!月白五十铃-灰篮
Name=月白五十铃 Deck=Graydle Dialog=wof-Tsukishiro-Isuzu
灰篮卡组。
AI_LV2 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
![强敌]晴海夏佳-???
Name=晴海夏佳 Deck='Old School' Dialog=wof-Harumi-Natsuka
你想干嘛?
AI_WILD SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!晴海夏佳-光道影依恐龙
Name=晴海夏佳 Deck=LightswornShaddoldinosour Dialog=wof-Harumi-Natsuka
光道影依恐龙卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!椎名咪玉-黑魔术师
Name=椎名咪玉 Deck=DarkMagician Dialog=wof-Shiina-Miu
黑魔术师卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!克里斯汀·罗森塔尔-青眼混沌极龙
Name=克里斯汀·罗森塔尔 Deck=BlueEyesMaxDragon Dialog=wof-Christine-Rosenthal
青眼混沌极龙卡组。
AI_LV3 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!白鸟芽衣-幻煌龙
Name=白鸟芽衣 Deck=Phantasm Dialog=wof-Shiratori-Mei
幻煌龙卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!浅仓纱花-连锁烧
Name=浅仓纱花 Deck=ChainBurn Dialog=wof-Asukura-Sayaka
连锁烧卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!八宫一月-红莲雷王滑板
Name=八宫一月 Deck=GrenMajuThunderBoarder Dialog=wof-Hachimiya-Kaduki
红莲雷王滑板卡组。
AI_ANTI_META SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!蓝叶雾叶-真红眼龙骑士
Name=蓝叶雾叶 Deck=Dragun Dialog=wof-Aiha-Kiriha
超魔导真红眼龙骑士卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!神代心春-水百凤凰勇者
Name=神代心春 Deck=Brave Dialog=wof-Kamishiro-Koharu
水机百头龙凤凰人勇者卡组。
AI_LV4 SUPPORT_MASTER_RULE_2020
!白雪安娜-魔女术
Name=白雪安娜 Deck=Witchcraft Dialog=wof-Shirayuki-Anna
魔女术卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!玻名城夏爱-救祓少女
Name=玻名城夏爱 Deck=Exosister Dialog=wof-Hanagusuku-Kea
救祓少女卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!时谷彼方-相剑
Name=时谷彼方 Deck=Swordsoul Dialog=wof-Tokitani-Kanata
相剑卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_20200
!三水小雪-教导
Name=三水小雪 Deck=Dogmatika Dialog=wof-Samisui-Koyuki
教导卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!鹫见花火-阿不思
Name=鹫见花火 Deck=Albaz Dialog=wof-Sumi-Hanabi
以阿不思的落胤为中心的卡组。
AI_LV4 SUPPORT_MASTER_RULE_3 SUPPORT_MASTER_RULE_2020
!一面:幽幽子(Normal
Name=西行寺幽幽子 Deck='YuyukoRank2' Dialog=YuyukoRank1.zh-CN DbPath=expansions\AI.cdb
弱小的一面bossAI。在此难度下AI的智商达到了⑨岁水平
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!朝比奈千夜-刹帝利
Name=朝比奈千夜 Deck=Kashtira Dialog=wof-Asabina-Chiya
俱舍怒威族卡组
AI_LV4 SUPPORT_MASTER_RULE_2020
!一面:幽幽子(Hard
Name=西行寺幽幽子 Deck='YuyukoRank3' Dialog=YuyukoRank1.zh-CN DbPath=expansions\AI.cdb
弱小的一面bossAI。在Normal难度的基础上,AI卡组中的「幽幽子」将得到觉醒
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
![强敌]空鸽子-雷龙
Name=空鸽子 Deck=ThunderDragon Dialog=wof-Empty-Pigeon
深渊混沌雷龙卡组
AI_WILD SUPPORT_MASTER_RULE_2020
!一面:幽幽子(Lunatic
Name=西行寺幽幽子 Deck='YuyukoRank4' Dialog=YuyukoRank1.zh-CN DbPath=expansions\AI.cdb
弱小的一面bossAI。在Hard难度的基础上,AI幽幽子将得到生前死后友人的帮助
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!露卡希娅-珠泪哀歌
Name=露卡希娅 Deck=Tearlaments Dialog=wof-Rukahira
旧式地天使珠泪哀歌族卡组
AI_LV4 AI_WILD SUPPORT_MASTER_RULE_2020
!P2-自选卡组
Name=P2[EXT] Deck=Lucky Dialog=gugugu.zh-CN DbPath=expansions\AI.cdb
人机卡组由你选择。随缘出牌
SELECT_DECKFILE SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!二宫爱丽丝-神数
Name=二宫爱丽丝 Deck=Zefra Dialog=wof-Ninomiya-Arisu
神数卡组。
AI_LV4 SUPPORT_MASTER_RULE_2020
!摆烂型王圆圆
Name=摆烂型王圆圆[EXT] Deck='THC_DSReimu' Dialog=gugugu.zh-CN DbPath=expansions\AI.cdb
幼女化灵梦摆烂卡组,但偶尔也会有一些惊喜?
SUPPORT_MASTER_RULE_2020
!宫水静香-超重武者
Name=宫水静香 Deck=SuperheavySamurai Dialog=wof-Miyamizu-Shizuka
超重武者卡组。
AI_LV4 SUPPORT_MASTER_RULE_2020
!强袭型王圆圆
Name=强袭型王圆圆[EXT] Deck='THC_WDL' Dialog=ayane.zh-CN DbPath=expansions\AI.cdb
乱打也能像样的喔嘟噜卡组。
SUPPORT_MASTER_RULE_2020
#created by ...
#main
86379901
86379901
86379901
86379903
86379903
86379903
86379905
86379905
86379905
86379907
86379907
86379907
86379931
86379931
86379931
86379933
86379933
86379933
86379937
86379937
86379937
86379939
86379939
86379939
86379935
86379935
86379935
86379923
86379923
86379923
86379925
86379925
86379925
86379013
86379013
86379017
86379017
86379921
86379921
86379921
86379927
86379927
86379927
#extra
86379911
86379911
86379911
86379913
86379913
86379913
86379915
86379915
86379915
86379917
86379917
86379917
!side
using YGOSharp.OCGWrapper.Enums;
using System.Collections.Generic;
using System.Linq;
using WindBot;
using WindBot.Game;
using WindBot.Game.AI;
namespace WindBot.Game.AI.Decks
{
[Deck("THC_WDL", "AI_THC_WDL")]
public class THC_WDLExecutor : DefaultExecutor
{
public THC_WDLExecutor(GameAI ai, Duel duel)
: base(ai, duel)
{
AddExecutor(ExecutorType.Activate, ImFeelingLucky);
AddExecutor(ExecutorType.SpSummon, ImFeelingLucky);
AddExecutor(ExecutorType.SpSummon, ImFeelingUnlucky);
AddExecutor(ExecutorType.Activate, ImFeelingUnlucky);
AddExecutor(ExecutorType.SummonOrSet, ImFeelingLazy);
AddExecutor(ExecutorType.SpellSet, NoDreamSet);
AddExecutor(ExecutorType.Repos, AlwaysAttack);
AddExecutor(ExecutorType.Activate, _CardId.MysticalSpaceTyphoon, DefaultMysticalSpaceTyphoon);
AddExecutor(ExecutorType.Activate, _CardId.CosmicCyclone, DefaultCosmicCyclone);
AddExecutor(ExecutorType.Activate, _CardId.GalaxyCyclone, DefaultGalaxyCyclone);
AddExecutor(ExecutorType.Activate, _CardId.BookOfMoon, DefaultBookOfMoon);
AddExecutor(ExecutorType.Activate, _CardId.CompulsoryEvacuationDevice, DefaultCompulsoryEvacuationDevice);
AddExecutor(ExecutorType.Activate, _CardId.CallOfTheHaunted, DefaultCallOfTheHaunted);
AddExecutor(ExecutorType.Activate, _CardId.Scapegoat, DefaultScapegoat);
AddExecutor(ExecutorType.Activate, _CardId.MaxxC, DefaultMaxxC);
AddExecutor(ExecutorType.Activate, _CardId.AshBlossom, DefaultAshBlossomAndJoyousSpring);
AddExecutor(ExecutorType.Activate, _CardId.GhostOgreAndSnowRabbit, DefaultGhostOgreAndSnowRabbit);
AddExecutor(ExecutorType.Activate, _CardId.GhostBelle, DefaultGhostBelleAndHauntedMansion);
AddExecutor(ExecutorType.Activate, _CardId.EffectVeiler, DefaultEffectVeiler);
AddExecutor(ExecutorType.Activate, _CardId.CalledByTheGrave, DefaultCalledByTheGrave);
AddExecutor(ExecutorType.Activate, _CardId.InfiniteImpermanence, DefaultInfiniteImpermanence);
AddExecutor(ExecutorType.Activate, _CardId.BreakthroughSkill, DefaultBreakthroughSkill);
AddExecutor(ExecutorType.Activate, _CardId.SolemnJudgment, DefaultSolemnJudgment);
AddExecutor(ExecutorType.Activate, _CardId.SolemnWarning, DefaultSolemnWarning);
AddExecutor(ExecutorType.Activate, _CardId.SolemnStrike, DefaultSolemnStrike);
AddExecutor(ExecutorType.Activate, _CardId.TorrentialTribute, DefaultTorrentialTribute);
AddExecutor(ExecutorType.Activate, _CardId.HeavyStorm, DefaultHeavyStorm);
AddExecutor(ExecutorType.Activate, _CardId.HarpiesFeatherDuster, DefaultHarpiesFeatherDusterFirst);
AddExecutor(ExecutorType.Activate, _CardId.HammerShot, DefaultHammerShot);
AddExecutor(ExecutorType.Activate, _CardId.DarkHole, DefaultDarkHole);
AddExecutor(ExecutorType.Activate, _CardId.Raigeki, DefaultRaigeki);
AddExecutor(ExecutorType.Activate, _CardId.SmashingGround, DefaultSmashingGround);
AddExecutor(ExecutorType.Activate, _CardId.PotOfDesires, DefaultPotOfDesires);
AddExecutor(ExecutorType.Activate, _CardId.AllureofDarkness, DefaultAllureofDarkness);
AddExecutor(ExecutorType.Activate, _CardId.DimensionalBarrier, DefaultDimensionalBarrier);
AddExecutor(ExecutorType.Activate, _CardId.InterruptedKaijuSlumber, DefaultInterruptedKaijuSlumber);
AddExecutor(ExecutorType.SpSummon, _CardId.JizukirutheStarDestroyingKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.GadarlatheMysteryDustKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.GamecieltheSeaTurtleKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.RadiantheMultidimensionalKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.KumongoustheStickyStringKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.ThunderKingtheLightningstrikeKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.DogorantheMadFlameKaiju, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.SuperAntiKaijuWarMachineMechaDogoran, DefaultKaijuSpsummon);
AddExecutor(ExecutorType.SpSummon, _CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightSummon);
AddExecutor(ExecutorType.Activate, _CardId.EvilswarmExcitonKnight, DefaultEvilswarmExcitonKnightEffect);
AddExecutor(ExecutorType.Summon, _CardId.SandaionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.GabrionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.MichionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.ZaphionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.HailonTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.RaphionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.SadionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.MetaionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.KamionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.LazionTheTimelord, DefaultTimelordSummon);
AddExecutor(ExecutorType.Summon, _CardId.LeftArmofTheForbiddenOne, JustDontIt);
AddExecutor(ExecutorType.Summon, _CardId.RightLegofTheForbiddenOne, JustDontIt);
AddExecutor(ExecutorType.Summon, _CardId.LeftLegofTheForbiddenOne, JustDontIt);
AddExecutor(ExecutorType.Summon, _CardId.RightArmofTheForbiddenOne, JustDontIt);
AddExecutor(ExecutorType.Summon, _CardId.ExodiaTheForbiddenOne, JustDontIt);
}
private List<int> HintMsgForEnemy = new List<int>
{
HintMsg.Release, HintMsg.Destroy, HintMsg.Remove, HintMsg.ToGrave, HintMsg.ReturnToHand, HintMsg.ToDeck,
HintMsg.FusionMaterial, HintMsg.SynchroMaterial, HintMsg.XyzMaterial, HintMsg.LinkMaterial, HintMsg.Disable
};
private List<int> HintMsgForDeck = new List<int>
{
HintMsg.SpSummon, HintMsg.ToGrave, HintMsg.Remove, HintMsg.AddToHand, HintMsg.FusionMaterial
};
private List<int> HintMsgForSelf = new List<int>
{
HintMsg.Equip
};
private List<int> HintMsgForMaterial = new List<int>
{
HintMsg.FusionMaterial, HintMsg.SynchroMaterial, HintMsg.XyzMaterial, HintMsg.LinkMaterial, HintMsg.Release
};
private List<int> HintMsgForMaxSelect = new List<int>
{
HintMsg.SpSummon, HintMsg.ToGrave, HintMsg.AddToHand, HintMsg.FusionMaterial, HintMsg.Destroy
};
public override IList<ClientCard> OnSelectCard(IList<ClientCard> _cards, int min, int max, int hint, bool cancelable)
{
if (Duel.Phase == DuelPhase.BattleStart)
return null;
if (AI.HaveSelectedCards())
return null;
IList<ClientCard> selected = new List<ClientCard>();
IList<ClientCard> cards = new List<ClientCard>(_cards);
if (max > cards.Count)
max = cards.Count;
if (HintMsgForEnemy.Contains(hint))
{
IList<ClientCard> enemyCards = cards.Where(card => card.Controller == 1).ToList();
if (hint == HintMsg.Release)
{
IList<ClientCard> handCards = cards.Where(card => card.Location == CardLocation.Hand).ToList();
while (handCards.Count > 0 && selected.Count < max)
{
ClientCard card = handCards[Program.Rand.Next(handCards.Count)];
selected.Add(card);
handCards.Remove(card);
cards.Remove(card);
}
}
// select enemy's card first
while (enemyCards.Count > 0 && selected.Count < max)
{
ClientCard card = enemyCards[Program.Rand.Next(enemyCards.Count)];
selected.Add(card);
enemyCards.Remove(card);
cards.Remove(card);
}
}
if (HintMsgForDeck.Contains(hint))
{
IList<ClientCard> deckCards = cards.Where(card => card.Location == CardLocation.Deck).ToList();
// select deck's card first
while (deckCards.Count > 0 && selected.Count < max)
{
ClientCard card = deckCards[Program.Rand.Next(deckCards.Count)];
selected.Add(card);
deckCards.Remove(card);
cards.Remove(card);
}
}
if (HintMsgForSelf.Contains(hint))
{
IList<ClientCard> botCards = cards.Where(card => card.Controller == 0).ToList();
// select bot's card first
while (botCards.Count > 0 && selected.Count < max)
{
ClientCard card = botCards[Program.Rand.Next(botCards.Count)];
selected.Add(card);
botCards.Remove(card);
cards.Remove(card);
}
}
if (HintMsgForMaterial.Contains(hint))
{
IList<ClientCard> materials = cards.OrderBy(card => card.Attack).ToList();
// select low attack first
while (materials.Count > 0 && selected.Count < min)
{
ClientCard card = materials[0];
selected.Add(card);
materials.Remove(card);
cards.Remove(card);
}
}
// select random cards
while (selected.Count < min)
{
ClientCard card = cards[Program.Rand.Next(cards.Count)];
selected.Add(card);
cards.Remove(card);
}
if (HintMsgForMaxSelect.Contains(hint))
{
// select max cards
while (selected.Count < max)
{
ClientCard card = cards[Program.Rand.Next(cards.Count)];
selected.Add(card);
cards.Remove(card);
}
}
return selected;
}
public override int OnSelectOption(IList<int> options)
{
return options.Count - 1;
}
public override CardPosition OnSelectPosition(int cardId, IList<CardPosition> positions)
{
return CardPosition.FaceUpAttack;
}
private bool ImFeelingLucky()
{
return Program.Rand.Next(10) >= 5 && DefaultDontChainMyself();
}
private bool ImFeelingUnlucky()
{
return DefaultDontChainMyself();
}
private bool ImFeelingLazy()
{
if (Executors.Any(exec => (exec.Type == ExecutorType.SummonOrSet || exec.Type == ExecutorType.Summon || exec.Type == ExecutorType.MonsterSet) && exec.CardId == Card.Id))
return false;
return DefaultMonsterSummon();
}
private bool JustDontIt()
{
return false;
}
private bool AlwaysAttack()
{
return Card.IsDefense();
}
private bool NoDreamSet()
{
if (Card.HasSetcode(0x279))
{
return false;
}
return DefaultSpellSet();
}
}
}
\ No newline at end of file
......@@ -69,6 +69,7 @@
<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\THC_WDLExecutor.cs" />
<Compile Include="Game\AI\Decks\LuckyExecutor.cs" />
<Compile Include="Game\AI\Decks\MathMechExecutor.cs" />
<Compile Include="Game\AI\Decks\PureWindsExecutor.cs" />
......@@ -180,6 +181,9 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Decks\AI_THC_WDL.ydk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="sqlite3.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
......@@ -254,6 +254,26 @@
"name": "摆烂型王圆圆",
"deck": "THC_DSReimu",
"dialog": "default"
},
{
"name": "强袭型王圆圆",
"deck": "THC_WDL",
"dialog": "ayane.zh-CN"
},
{
"name": "神数不神",
"deck": "Tearlaments",
"dialog": "Zefra.zh-CN"
},
{
"name": "神数不神",
"deck": "Zefra",
"dialog": "Zefra.zh-CN"
},
{
"name": "艾克莉西娅",
"deck": "Swordsoul",
"dialog": "ecclesia.zh-CN"
}
]
}
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