Beispiel #1
0
        /// <summary>
        /// 当前面玩家都不要时,自动出牌
        /// </summary>
        void AutoOutCard()
        {
            var cdsList = HdCdsCtrl.SortCds(HdCdsListTemp);

            SelectCards(cdsList[cdsList.Length - 1]);
            OutCard();
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        /// <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);
        }
Beispiel #4
0
        /// <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;
        }
Beispiel #6
0
        /// <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();
        }
Beispiel #7
0
        /// <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);
                }
            }
        }