using System.Collections.Generic;
using GameMessage;
namespace GameFix.Poker
{
///
/// 3带2张 特殊牌型
/// 最后一手牌可以带一张或者不带
///
public class CardStyle311SpecialHelper : CardStyleBaseHelper
{
public override int CardStyle => DataCardConst.CardStyle311;
public override int CardCnt => 5;
private readonly CardStyle311Helper _cardStyle311 = new();
private readonly CardStyle31Helper _cardStyle31 = new();
private readonly CardStyle3Helper _cardStyle3 = new();
internal override bool CheckStyleNormal(CardBaseGroup group, out CardStyleInfo cardStyleInfo)
{
cardStyleInfo = null;
if (group is not CardHandGroup) return false;
bool isStyle = false;
if (group.SelfCards.Count == _cardStyle3.CardCnt)
isStyle = _cardStyle3.CheckStyleNormal(group, out cardStyleInfo);
else if (group.SelfCards.Count == _cardStyle31.CardCnt)
isStyle = _cardStyle31.CheckStyleNormal(group, out cardStyleInfo);
else
isStyle = _cardStyle311.CheckStyleNormal(group, out cardStyleInfo);
if (isStyle)
cardStyleInfo.CardStyle = CardStyle;
return isStyle;
}
internal override List GetAllEatTipGroup(CardBaseGroup group, CardStyleInfo eatStyleInfo)
{
if (group is not CardHandGroup) return new List();
if (group.SelfCards.Count == _cardStyle3.CardCnt)
return _cardStyle3.GetAllEatTipGroup(group, eatStyleInfo);
if (group.SelfCards.Count == _cardStyle31.CardCnt)
return _cardStyle31.GetAllEatTipGroup(group, eatStyleInfo);
var allEatTipGroup = _cardStyle311.GetAllEatTipGroup(group, eatStyleInfo);
return allEatTipGroup;
}
}
}