using System.Collections.Generic; using System.Linq; using GameMessage; namespace GameFix.Poker { /// /// 全王炸弹 /// public class CardStyleAllJokerBombHelper: CardStyleBaseHelper { public override int CardStyle => DataCardConst.CardStyleAllJokerBomb; public override int CardCnt => mCardCnt; private int mCardCnt = 4; public CardStyleAllJokerBombHelper() { } /// /// 构造 /// /// 几个王起算炸 public CardStyleAllJokerBombHelper(int cardCnt) { mCardCnt = cardCnt; } internal override bool CheckStyleNormal(CardBaseGroup group, out CardStyleInfo cardStyleInfo) { cardStyleInfo = null; if (group.Cards.Count >= CardCnt) { var isOtherCards = group.Cards.Any(x=>!DataCardConst.JokerValues.Contains(x.Value)); if (isOtherCards) return false; cardStyleInfo = CardStyleHelper.CreateCardStyleInfo(CardStyle, group.Cards); return true; } return false; } internal override bool CheckStyleWithLZ(CardBaseGroup group, out CardStyleInfo cardStyleInfo) { // 癞子不当王 cardStyleInfo = null; return false; } internal override List GetAllStyleCards(CardBaseGroup group, bool isSplitCard) { List ret = new List(); var jokerCards = group.SelfCards.Where(x=>DataCardConst.JokerValues.Contains(x.Value)).ToList(); if (jokerCards.Count < CardCnt) return ret; CardGroupList cardGroupList = new CardGroupList(); cardGroupList.AddRange(jokerCards); ret.Add(cardGroupList); return ret; } internal override List GetAllEatTipGroup(CardBaseGroup group, CardStyleInfo eatStyleInfo) { return GetAllStyleCards(group, false); } internal override List GetAllEatTipGroupWithLZ(CardBaseGroup group, CardStyleInfo eatStyleInfo) { // 癞子不当王 return new List(); } } }