/// <summary> /// 当前面玩家都不要时,自动出牌 /// </summary> void AutoOutCard() { var cdsList = HdCdsCtrl.SortCds(HdCdsListTemp); SelectCards(cdsList[cdsList.Length - 1]); OutCard(); }
protected override void OnAwake() { //监听手牌操作事件 HdCdsCtrl.AddHdSelCdsEvt(OnHdCdsCtrlEvent); //获得cardmanager _cardManager = new CardManager(); base.OnAwake(); PdkGameManager.AddOnServResponseEvtDic(GlobalConstKey.TypePass, OnTypePass); PdkGameManager.AddOnServResponseEvtDic(GlobalConstKey.TypeGameOver, OnTypeGameOver); PdkGameManager.AddOnServResponseEvtDic(GlobalConstKey.TypeDoubleOver, OnDoubleOver); }
/// <summary> /// 根据智能选牌结果,抬起手牌与之对应的牌,并过滤掉不应该抬起来的牌 /// </summary> /// <param name="mayOutCds">智能选牌结果</param> /// <param name="selectedCds">智能检测前选择抬起的手牌</param> /// <returns></returns> private bool ChooseMayOutCards(int[] mayOutCds, int[] selectedCds) { //从选出的牌中拿出智能选牌要的牌 var mayOutcdsListTemp = new List <int>(); var len = mayOutCds.Length; for (int i = 0; i < len; i++) { mayOutcdsListTemp.Add(HdCdsCtrl.GetValue(mayOutCds[i])); } var upCdsList = new List <int>(); len = selectedCds.Length; for (int i = 0; i < len; i++) { var pureValue = HdCdsCtrl.GetValue(selectedCds[i]); if (mayOutcdsListTemp.Contains(pureValue)) { upCdsList.Add(selectedCds[i]); mayOutcdsListTemp.Remove(pureValue); } } //如果还有没选出的牌,则从手牌中继续选 if (mayOutcdsListTemp.Count > 0) { len = HdCdsListTemp.Count; for (int i = 0; i < len; i++) { var pureValue = HdCdsCtrl.GetValue(HdCdsListTemp[i]); //如果是还没有选出的,在只能选牌牌组中的牌则添加 if (!upCdsList.Contains(HdCdsListTemp[i]) && mayOutcdsListTemp.Contains(pureValue)) { upCdsList.Add(HdCdsListTemp[i]); mayOutcdsListTemp.Remove(pureValue); } } } if (upCdsList.Count != mayOutCds.Length) { return(false); } HdCdctrlInstance.UpCdList(upCdsList.ToArray()); return(true); }
/// <summary> /// 给手牌发牌 /// </summary> /// <param name="cds"></param> protected virtual void AllocateCds(int[] cds) { if (cds == null || cds.Length < 1) { return; } ClearAllOutCds(); cds = HdCdsCtrl.SortCds(cds); var cdsLen = cds.Length; for (int i = 0; i < cdsLen; i++) { AddCdGob(_outcdItemOrg.gameObject, i + 2, cds[i]); } SortCdsGobPos(); }
/// <summary> /// 给手牌发牌 /// </summary> /// <param name="cds"></param> protected virtual void AllocateCds(int[] cds) { if (cds == null || cds.Length < 1) { return; } ClearAllOutCds(); cds = HdCdsCtrl.SortCds(cds); var cdsLen = cds.Length; for (int i = 0; i < cdsLen; i++) { AddCdGob(_outcdItemOrg.gameObject, i + 2, cds[i]); } Table.GetComponent <UITable>().repositionNow = true; }
/// <summary> /// 出牌 /// </summary> /// <param name="cds"></param> /// <param name="isDizhu">标记是不是地主发牌</param> public virtual void AllocateCds(int[] cds, bool isDizhu = false) { if (cds == null || cds.Length < 1) { return; } ClearAllOutCds(); cds = HdCdsCtrl.SortCds(cds); var cdsLen = cds.Length; var lastIndex = cdsLen - 1; for (int i = 0; i < cdsLen; i++) { AddCdGob(OutcdItemOrg.gameObject, 100 + i + 2, cds[i], i == lastIndex && isDizhu); } SortCdsGobPos(); }
/// <summary> /// 有人出牌时,检查是否有炸弹火箭等,从而显示加倍 /// </summary> /// <param name="args"></param> private void OnTypeOutCard(DdzbaseEventArgs args) { var data = args.IsfObjData; var cards = data.GetIntArray(RequestKey.KeyCards); cards = HdCdsCtrl.SortCds(cards); var cdsType = PokerRuleUtil.GetCdsType(cards); if (cdsType == CardType.C4 || cdsType == CardType.C42 || cdsType == CardType.C5) { try { int mul = 2; //var curbeishu = int.Parse(BeiShuLabel.text); _beishu *= mul; BeiShuAnimAtion(mul); BeiShuLabel.text = _beishu.ToString(CultureInfo.InvariantCulture); } catch (Exception e) { YxDebug.LogError("BeiShuLabel有问题:" + e.Message); } } }