using System;
using System.Collections.Generic;
using System.Linq;
using GameMessage;
namespace GameFix.Poker
{
///
/// 多副510K (可带 5,10,k单牌)
///
public class CardStyle510KMultExtendHelper : CardStyle510KMultHelper
{
public CardStyle510KMultExtendHelper(int mult) : base(mult)
{
}
internal override List GetAllStyleCards(CardBaseGroup group, bool isSplitCard)
{
List ret = new List();
var c510KList = CardFunc.Get510KList(group.SelfCards, _mult);
if (c510KList.Count > 0)
{
// 剩下得 5 10 k也添加上
var c510KGroup = new CardGroupList(c510KList.SelectMany(x => x));
var c510KCards = group.SelfCards.Where(x => V_510K.Contains(x.Value)).ToList();
c510KGroup.AddRange(c510KCards);
ret.Add(c510KGroup);
}
return ret;
}
internal override bool CheckStyleNormal(CardBaseGroup group, out CardStyleInfo cardStyleInfo)
{
cardStyleInfo = null;
if (group.Cards.Count >= CardCnt)
{
var c510KList = CardFunc.Get510KList(group.Cards, _mult);
var c510KListLong = c510KList.SelectMany(x => x).ToList();
var remainCardList = group.Cards.Where(x => !c510KListLong.Contains(x) && V_510K.Contains(x.Value)).ToList();
if (remainCardList.Count + c510KListLong.Count == group.Cards.Count)
{
cardStyleInfo = new CardStyleInfo(CardStyle, 0, c510KList.Count);
cardStyleInfo.CustomInt = c510KList.Count; // 510K的个数
return true;
}
}
return false;
}
}
}