Commit 61c1e133 authored by nanahira's avatar nanahira

Merge branch 'master' of github.com:IceYGO/windbot into develop

parents 88edcdac d70c30ec
Pipeline #43001 passed with stage
in 47 seconds
...@@ -443,6 +443,35 @@ namespace WindBot.Game.AI.Decks ...@@ -443,6 +443,35 @@ namespace WindBot.Game.AI.Decks
mask &= 0x1F; mask &= 0x1F;
return mask; return mask;
} }
private int LinkValOf(ClientCard c)
{
return c.HasType(CardType.Link) ? Math.Max(1, c.LinkCount) : 1;
}
private bool IsOneVal(ClientCard c)
{
return !c.HasType(CardType.Link) || Math.Max(1, c.LinkCount) == 1;
}
private bool IsMaliss(ClientCard c)
{
return c.HasSetcode(0x1bf);
}
private int ScoreForBanishedMaliss(ClientCard c)
{
if (c.IsCode(CardId.MalissInTheMirror)) return 100;
if (c.IsCode(CardId.MalissC_MTP07)) return 95;
if (c.IsCode(CardId.MalissC_GWC06)) return 90;
if (c.IsCode(CardId.MalissInUnderground)) return 85;
if (c.IsCode(CardId.MalissP_MarchHare)) return 80;
if (c.IsCode(CardId.MalissP_ChessyCat)) return 75;
if (c.IsCode(CardId.MalissP_WhiteRabbit)) return 70;
if (c.IsCode(CardId.MalissP_Dormouse)) return 65;
return 50;
}
public override int OnSelectPlace(int cardId, int player, CardLocation location, int available) public override int OnSelectPlace(int cardId, int player, CardLocation location, int available)
{ {
if (player == 0 && location == CardLocation.MonsterZone) if (player == 0 && location == CardLocation.MonsterZone)
...@@ -3163,9 +3192,6 @@ namespace WindBot.Game.AI.Decks ...@@ -3163,9 +3192,6 @@ namespace WindBot.Game.AI.Decks
IEnumerable<int> avoidIds = null, IEnumerable<int> avoidIds = null,
bool requireMaliss = false) bool requireMaliss = false)
{ {
int LinkValOf(ClientCard m) => m.HasType(CardType.Link) ? Math.Max(1, m.LinkCount) : 1;
bool IsOneVal(ClientCard m) => !m.HasType(CardType.Link) || Math.Max(1, m.LinkCount) == 1;
var all = Bot.GetMonsters() var all = Bot.GetMonsters()
.Where(m => m != null && m.IsFaceup() && isEligible(m)) .Where(m => m != null && m.IsFaceup() && isEligible(m))
.ToList(); .ToList();
...@@ -3292,8 +3318,6 @@ namespace WindBot.Game.AI.Decks ...@@ -3292,8 +3318,6 @@ namespace WindBot.Game.AI.Decks
.ToList(); .ToList();
if (cand.Count < 3) return false; if (cand.Count < 3) return false;
bool IsMaliss(ClientCard m) => m.HasSetcode(0x1bf);
var avoid = new HashSet<int> { CardId.CyberseWicckid, CardId.Apollousa, CardId.AlliedCodeTalkerIgnister, CardId.AccesscodeTalker, CardId.FirewallDragon, CardId.TranscodeTalker }; var avoid = new HashSet<int> { CardId.CyberseWicckid, CardId.Apollousa, CardId.AlliedCodeTalkerIgnister, CardId.AccesscodeTalker, CardId.FirewallDragon, CardId.TranscodeTalker };
var ordered = cand var ordered = cand
...@@ -3370,19 +3394,7 @@ namespace WindBot.Game.AI.Decks ...@@ -3370,19 +3394,7 @@ namespace WindBot.Game.AI.Decks
.ToList(); .ToList();
if (cand.Count == 0) return null; if (cand.Count == 0) return null;
int Score(ClientCard c) return cand.OrderByDescending(ScoreForBanishedMaliss).First();
{
if (c.IsCode(CardId.MalissInTheMirror)) return 100;
if (c.IsCode(CardId.MalissC_MTP07)) return 95;
if (c.IsCode(CardId.MalissC_GWC06)) return 90;
if (c.IsCode(CardId.MalissInUnderground)) return 85;
if (c.IsCode(CardId.MalissP_MarchHare)) return 80;
if (c.IsCode(CardId.MalissP_ChessyCat)) return 75;
if (c.IsCode(CardId.MalissP_WhiteRabbit)) return 70;
if (c.IsCode(CardId.MalissP_Dormouse)) return 65;
return 50;
}
return cand.OrderByDescending(Score).First();
} }
private bool HC_OnBanished_SpecialSummon() private bool HC_OnBanished_SpecialSummon()
{ {
......
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