Commit 90f88870 authored by 苍蓝's avatar 苍蓝

update 幻宇子

parent d11241bb
Pipeline #6222 passed with stage
in 1 minute and 46 seconds
......@@ -26,5 +26,10 @@ SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!传说子
Name=传说子 Deck=TheLegend Dialog=rd
大量传说卡堆成的卡组。
大量传说卡堆成的卡组。需勾选不检查卡组才能对战。
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
!幻宇子
Name=幻宇子 Deck=Mituzi Dialog=Mituzi.zh-CN
新手友好型幻龙卡组。
SUPPORT_MASTER_RULE_3 SUPPORT_NEW_MASTER_RULE SUPPORT_MASTER_RULE_2020
\ No newline at end of file
......@@ -14,6 +14,7 @@
120193002
120183002
120183002
120183002
120183024
120183024
120183030
......@@ -35,7 +36,6 @@
120155060
120155060
120183062
120183062
120183063
120183063
120170061
......
#created by ...
#main
120151029
120151029
120155002
120155002
120155002
120155001
120155001
120155001
120155022
120155022
120155024
120155024
120155024
120192010
120192010
120192010
120192011
120192011
120192011
120183034
120183034
120183034
120170037
120170037
120170037
120155025
120155025
120155025
120120037
120155044
120155044
120183053
120194004
120155042
120155042
120151033
120151033
120155053
120155053
120155054
#extra
!side
......@@ -12,7 +12,7 @@
120193002
120183002
120183002
120183002
120181001
120181001
......@@ -39,7 +39,6 @@
120155060
120155060
120183062
120183062
120183063
120183063
120170061
......
{
"welcome": [
"是新朋友咩?欢迎~(≧▽≦)",
"你好呀,现在的我还很弱,总有一天会变强哒!ψ(`∇´)ψ",
"据说这里是新人保护区,不会吧(|| ゚Д゚)"
],
"deckerror": [
"什么,居然不让我使用我无敌的{0}!"
],
"duelstart": [
"嘿嘿,还请手下留情哦~\\(//∇//)\\",
"感觉是很不得了的对手啊Σ(゚д゚;)",
"人家会全力以赴的哦(≧ω≦)",
"开始决斗了,要认真要认真<(`^´)>"
],
"newturn": [
"抽卡抽卡,会抽到什么呢~(´△`)",
"希望能有想要的卡…(><)"
],
"endturn": [
"真期待下一回合呀!(。ò ∀ ó。)",
"让我猜猜你会怎么做呢~(=^^=)"
],
"directattack": [
"{0},削平山岳吧!(/≧▽≦/)",
"呼呼,是不是露出破绽了?\(^▽^)/",
"近距离体会一下{0}的帅气吧~(/ω\)",
"加油啊{0}!不要输哦!(^O^)"
],
"attack": [
"{1}可不是{0}的对手哦( ̄∀ ̄)",
"{1}是挡不住{0}的,小心啦!(☆∀☆)",
"{1}和{0}之间的胜者会是谁呢~(⌒▽⌒) "
],
"ondirectattack": [
"呜呜呜呜呜。゚(゚´Д`゚)゚。",
"哇啊啊!情况不妙啦!(|| ゚Д゚)",
"再这么下去人家就输掉啦呜呜。゚(゚´Д`゚)゚。"
],
"facedownmonstername": "怪兽",
"activate": [
"{0},建造城池吧!\(^▽^)/",
"可别小看{0}的能力哦~( ̄∀ ̄)",
"准备施工了哦,{0}\(^▽^)/"
],
"summon": [
"{0}登场啦,小心点哦(☆∀☆)",
"这可是人家最喜欢的怪兽!(><)",
"{0}超帅的对吧!(/ω\)",
"{0}很可爱吧?你舍得打它吗(/ω\)"
],
"setmonster": [
"嗯嗯~总之先这样吧?(=^▽^=)",
"隐藏好我的王牌~_(:D)∠)_"
],
"chaining": [
"现在可不能攻击哦~╮( ̄▽ ̄)╭",
"我当然会想到这一步啦~(o^∀^o)",
"鲁莽攻击可不行哦~<(`^´)>"
]
}
......@@ -51,9 +51,15 @@ namespace WindBot.Game.AI
public static ClientCard GetHighestLevelMonster(this IEnumerable<ClientCard> cards, bool canBeTarget = false)
{
return cards
.Where(card => card?.Data != null && card.HasType(CardType.Monster))
.Where(card => card?.Data != null && card.HasType(CardType.Monster) && !(canBeTarget && card.IsShouldNotBeTarget()))
.OrderBy(card => card.Level).FirstOrDefault();
}
public static ClientCard GetLowestLevelMonster(this IEnumerable<ClientCard> cards, bool canBeTarget = false)
{
return cards
.Where(card => card?.Data != null && card.HasType(CardType.Monster) && !(canBeTarget && card.IsShouldNotBeTarget()))
.OrderByDescending(card => card.Level).FirstOrDefault();
}
public static ClientCard GetHighestDefenseMonster(this IEnumerable<ClientCard> cards, bool canBeTarget = false)
{
return cards
......
......@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon);
AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon);
AddExecutor(ExecutorType.Summon, CardId.最强战旗, DefaultOverSummon);
AddExecutor(ExecutorType.Summon, CardId.钢机神, DefaultOverSummon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
......@@ -76,22 +78,24 @@ namespace WindBot.Game.AI.Decks
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王);
AddExecutor(ExecutorType.Activate, CardId.工匠无人机, 无人机Effect);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机, 无人机summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon);
;
AddExecutor(ExecutorType.MonsterSet, CardId.工匠无人机);
AddExecutor(ExecutorType.MonsterSet, CardId.突击坦克);
AddExecutor(ExecutorType.Summon, CardId.旗兽, 突击坦克summon);
AddExecutor(ExecutorType.Summon, CardId.社员, 突击坦克summon);
AddExecutor(ExecutorType.MonsterSet, CardId.旗兽);
AddExecutor(ExecutorType.MonsterSet, CardId.社员);
AddExecutor(ExecutorType.MonsterSet, CardId.瞄准鹰);
AddExecutor(ExecutorType.MonsterSet, CardId.双角兽);
AddExecutor(ExecutorType.Activate, CardId.世纪末兽机界, DefaultField);
AddExecutor(ExecutorType.Activate, CardId.兽之拳, 兽之拳Effect);
AddExecutor(ExecutorType.Activate, CardId.兽之拳);
AddExecutor(ExecutorType.Activate, CardId.左迁, 左迁1Effect);
AddExecutor(ExecutorType.Activate, CardId.减俸);
AddExecutor(ExecutorType.Activate, CardId.左迁, 左迁2Effect);
AddExecutor(ExecutorType.Activate, CardId.冻结, 冻结Effect);
AddExecutor(ExecutorType.Activate, CardId.兽之拳);
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.Repos, CardId.最强战旗, 圣防Repos);
......@@ -102,6 +106,7 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, CardId.铁之重击);
AddExecutor(ExecutorType.SpellSet, CardId.死苏);
AddExecutor(ExecutorType.SpellSet, CardId.对死者的供奉);
AddExecutor(ExecutorType.Activate, CardId.世纪末兽机界, DefaultField2);
}
......@@ -174,6 +179,11 @@ namespace WindBot.Game.AI.Decks
DoubleTribute = false;
return true;
}
private bool DefaultOverSummon()
{
if (Bot.Hand.Count >= 6 && Bot.HasInMonstersZone(CardId.恶德)) return true;
else return false;
}
private bool 左迁1Effect()
{
......@@ -215,9 +225,10 @@ namespace WindBot.Game.AI.Decks
{
return false;
}
else if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
else
//if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
AI.SelectCard(CardId.最强战旗, CardId.钢机神, CardId.恶德, CardId.旗兽, CardId.突击坦克, CardId.工匠无人机, CardId.社员, CardId.双角兽, CardId.瞄准鹰);
else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
//else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
return true;
}
......@@ -254,16 +265,6 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 兽之拳Effect()
{
if (Enemy.BattlingMonster.Race == (int)CardRace.Dragon)
return true;
if (Enemy.BattlingMonster.Race == (int)CardRace.Fairy)
return true;
if (Enemy.BattlingMonster.Race == (int)CardRace.SpellCaster)
return true;
return false;
}
private bool 死苏effect()
{
......@@ -361,7 +362,13 @@ namespace WindBot.Game.AI.Decks
}
private bool 突击坦克summon()
{
if (Bot.MonsterZone.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) == 2) return true;
if (Bot.MonsterZone.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) == 2 || Util.GetOneEnemyBetterThanMyBest(true, true) ==null) return true;
return false;
}
private bool 无人机summon()
{
if (Bot.Hand.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) >= 1 || Util.GetOneEnemyBetterThanMyBest(true, true) == null)
return true;
return false;
}
......@@ -492,6 +499,14 @@ namespace WindBot.Game.AI.Decks
}
return false;
}
private bool DefaultField2()
{
if( Bot.GetHandCount() >= 2)
{
return true;
}
return false;
}
private bool 圣防Repos()
{
if (Enemy.Graveyard.GetMatchingCardsCount(card => (card.Race & (int)CardRace.SpellCaster) > 0) >= 4 && Enemy.GetSpellCountWithoutField() >= 1 && Enemy.Graveyard.GetMatchingCardsCount(card => card.IsCode(CardId.暗黑释放)) < 3)
......
This diff is collapsed.
......@@ -171,20 +171,19 @@ namespace WindBot.Game.AI.Decks
return true;
}
private bool 圣防Effect()
private bool 落穴Effect()
{
if (Util.GetTotalAttackingMonsterAttack(1) > 1900)
return true;
foreach (ClientCard n in Duel.LastSummonedCards)
{
if (n.Attack >= 1900) return true;
if (Util.GetTotalAttackingMonsterAttack(1) - Util.GetTotalAttackingMonsterAttack(0) > Bot.LifePoints && !Bot.HasDefendingMonster()) return true;
}
return false;
}
private bool 落穴Effect()
{
foreach (ClientCard n in Duel.LastSummonedCards)
{
if (n.Attack >= 1900)
return true;
}
private bool 圣防Effect()
{
if (Util.GetTotalAttackingMonsterAttack(1) > 1900) return true;
if (Util.GetTotalAttackingMonsterAttack(1) - Util.GetTotalAttackingMonsterAttack(0) > Bot.LifePoints && !Bot.HasDefendingMonster()) return true;
return false;
}
private bool 火星心少女Effect()
......
......@@ -185,15 +185,15 @@ namespace WindBot.Game.AI.Decks
{
foreach (ClientCard n in Duel.LastSummonedCards)
{
if (n.Attack >= 1900)
return true;
if (n.Attack >= 1900) return true;
if (Util.GetTotalAttackingMonsterAttack(1) - Util.GetTotalAttackingMonsterAttack(0) > Bot.LifePoints && !Bot.HasDefendingMonster()) return true;
}
return false;
}
private bool 圣防Effect()
{
if (Util.GetTotalAttackingMonsterAttack(1) > 1900)
return true;
if (Util.GetTotalAttackingMonsterAttack(1) > 1900) return true;
if (Util.GetTotalAttackingMonsterAttack(1) - Util.GetTotalAttackingMonsterAttack(0) > Bot.LifePoints && !Bot.HasDefendingMonster()) return true;
return false;
}
private bool 死供Effect()
......
......@@ -69,6 +69,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.Summon, CardId.双角兽, 瞄准鹰双角兽summon);
AddExecutor(ExecutorType.Summon, CardId.成金恐龙王, 瞄准鹰成金恐龙王summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 瞄准鹰坦克summon);
AddExecutor(ExecutorType.Summon, CardId.最强战旗, DefaultOverSummon);
AddExecutor(ExecutorType.Summon, CardId.钢机神, DefaultOverSummon);
AddExecutor(ExecutorType.Activate, CardId.死苏, 死苏effect);
AddExecutor(ExecutorType.Activate, CardId.最强战旗, 最强战旗Effect);
AddExecutor(ExecutorType.Activate, CardId.对死者的供奉, 死供Effect);
......@@ -76,22 +78,22 @@ namespace WindBot.Game.AI.Decks
//AddExecutor(ExecutorType.Activate, CardId.钢机神, 钢机神1Effect);
AddExecutor(ExecutorType.MonsterSet, CardId.成金恐龙王);
AddExecutor(ExecutorType.Activate, CardId.工匠无人机,无人机Effect);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon);
AddExecutor(ExecutorType.SummonOrSet, CardId.旗兽, DefaultMonsterSummon);
AddExecutor(ExecutorType.SummonOrSet, CardId.社员, DefaultMonsterSummon);
AddExecutor(ExecutorType.MonsterSet, CardId.工匠无人机);
AddExecutor(ExecutorType.MonsterSet, CardId.突击坦克);
AddExecutor(ExecutorType.Summon, CardId.工匠无人机, 无人机summon);
AddExecutor(ExecutorType.Summon, CardId.突击坦克, 突击坦克summon);
AddExecutor(ExecutorType.MonsterSet, CardId.旗兽);
AddExecutor(ExecutorType.MonsterSet, CardId.社员);
AddExecutor(ExecutorType.MonsterSet, CardId.瞄准鹰);
AddExecutor(ExecutorType.MonsterSet, CardId.双角兽);
AddExecutor(ExecutorType.Activate, CardId.世纪末兽机界, DefaultField);
AddExecutor(ExecutorType.Activate, CardId.兽之拳,兽之拳Effect);
AddExecutor(ExecutorType.Activate, CardId.兽之拳);
AddExecutor(ExecutorType.Activate, CardId.左迁, 左迁1Effect);
AddExecutor(ExecutorType.Activate, CardId.减俸);
AddExecutor(ExecutorType.Activate, CardId.左迁,左迁2Effect);
AddExecutor(ExecutorType.Activate, CardId.冻结,冻结Effect);
AddExecutor(ExecutorType.Activate, CardId.兽之拳);
AddExecutor(ExecutorType.Activate, DefaultDontChainMyself);
AddExecutor(ExecutorType.Repos, CardId.最强战旗, 圣防Repos);
......@@ -101,7 +103,8 @@ namespace WindBot.Game.AI.Decks
AddExecutor(ExecutorType.SpellSet, DefaultSpellSet);
AddExecutor(ExecutorType.SpellSet, CardId.铁之重击);
AddExecutor(ExecutorType.SpellSet, CardId.死苏);
AddExecutor(ExecutorType.SpellSet, CardId.对死者的供奉);
AddExecutor(ExecutorType.SpellSet, CardId.对死者的供奉);
AddExecutor(ExecutorType.Activate, CardId.世纪末兽机界, DefaultField2);
}
......@@ -174,6 +177,11 @@ namespace WindBot.Game.AI.Decks
DoubleTribute = false;
return true;
}
private bool DefaultOverSummon()
{
if (Bot.Hand.Count >= 6 && Bot.HasInMonstersZone(CardId.恶德)) return true;
else return false;
}
private bool 左迁1Effect()
{
......@@ -215,9 +223,10 @@ namespace WindBot.Game.AI.Decks
{
return false;
}
else if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
else
//if (Enemy.HasAttackingMonster() || Enemy.GetMonsterCount() < 1)
AI.SelectCard(CardId.最强战旗, CardId.钢机神, CardId.恶德, CardId.旗兽, CardId.突击坦克, CardId.工匠无人机, CardId.社员, CardId.双角兽, CardId.瞄准鹰);
else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
//else AI.SelectCard(Bot.Graveyard.GetHighestLevelMonster());
return true;
}
......@@ -361,7 +370,7 @@ namespace WindBot.Game.AI.Decks
}
private bool 突击坦克summon()
{
if (Bot.MonsterZone.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) == 2) return true;
if (Bot.MonsterZone.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) == 2 || Util.GetOneEnemyBetterThanMyBest(true, true) == null) return true;
return false;
}
......@@ -454,6 +463,12 @@ namespace WindBot.Game.AI.Decks
AI.SelectCard(CardId.瞄准鹰, CardId.突击坦克, CardId.工匠无人机, CardId.社员, CardId.旗兽);
return true;
}
private bool 无人机summon()
{
if (Bot.Hand.GetMatchingCardsCount(card => (card.Race & (int)CardRace.Machine) > 0) >=1 || Util.GetOneEnemyBetterThanMyBest(true, true) == null)
return true;
return false;
}
private bool 最强战旗Effect()
{
if (Util.IsOneEnemyBetterThanValue(1900, false))
......@@ -492,6 +507,14 @@ namespace WindBot.Game.AI.Decks
}
return false;
}
private bool DefaultField2()
{
if (Bot.GetHandCount() >= 2)
{
return true;
}
return false;
}
private bool 圣防Repos()
{
if (Enemy.Graveyard.GetMatchingCardsCount(card => (card.Race & (int)CardRace.SpellCaster) > 0) >= 4 && Enemy.GetSpellCountWithoutField() >= 1 && Enemy.Graveyard.GetMatchingCardsCount(card => card.IsCode(CardId.暗黑释放)) < 3)
......
......@@ -78,6 +78,7 @@
<Compile Include="Game\AI\Decks\BlackwingExecutor.cs" />
<Compile Include="Game\AI\Decks\LuckyExecutor.cs" />
<Compile Include="Game\AI\Decks\MathMechExecutor.cs" />
<Compile Include="Game\AI\Decks\MituziExecutor.cs" />
<Compile Include="Game\AI\Decks\PureWindsExecutor.cs" />
<Compile Include="Game\AI\Decks\DragunExecutor.cs" />
<Compile Include="Game\AI\Decks\Level8Executor.cs" />
......@@ -155,6 +156,8 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Decks\AI_Mituzi.ydk" />
<None Include="Dialogs\Mituzi.zh-CN.json" />
<None Include="Dialogs\rd-c.json" />
<None Include="Dialogs\rd-d.json" />
<None Include="sqlite3.dll">
......
......@@ -25,6 +25,11 @@
"name": "传说子",
"deck": "Dragun",
"dialog": "rd"
},
{
"name": "幻宇子",
"deck": "Mituzi",
"dialog": "Mituzi.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