Ejemplo n.º 1
0
        public void initRemainCardNum()
        {
            RoomVO rvo = GlobalData.getInstance().roomVO;

            _data.remainCardNum = GameHelper.getInitRemainCardNum(rvo);
        }
Ejemplo n.º 2
0
        /*************************断线重连*********************************/
        private void reEnterRoom()
        {
            _tableView.updateRule();
            //设置座位

            avatarList       = GlobalData.getInstance().playerList;
            _data.AvatarList = GlobalData.getInstance().playerList;
            for (int i = 0; i < avatarList.Count; i++)
            {
                _uiHelper.getCardGOs(i).PlayerItem.setAvatarVo(avatarList [i]);
            }


            if (_data.paiArray.Length == 0)              //游戏还没有开始
            {
                GlobalData.getInstance().gameStatus = GameStatus.READYING;
            }
            else                //牌局已开始
            {
                GlobalData.getInstance().gameStatus = GameStatus.GAMING;
                _uiHelper.hideReadyIcon();
                cleanGameplayUI();


                for (int i = 0; i < _data.AvatarList.Count; i++)
                {
                    AvatarVO avo  = avatarList [i];
                    var      hand = avo.paiArray [0];
                    //HandCard
                    _uiHelper.addOtherHandCards(i, avo.commonCards);
                    //TableCard
                    int[] chupai = avo.chupais;
                    if (chupai != null && chupai.Length > 0)
                    {
                        for (int j = 0; j < chupai.Length; j++)
                        {
                            _uiHelper.addCardToTable(i, chupai [j]);
                        }
                    }
                    //GangCard
                    if (checkPaiArrayContainType(avo.paiArray [1], PaiArrayType.GANG))
                    {
                        var gangs = avo.huReturnObjectVO.totalInfo.getGangInfos();
                        for (int j = 0; j < gangs.Length; j++)
                        {
                            var info = gangs [j];
                            hand [info.cardPoint] -= 4;
                            if (info.type == "an")
                            {
                                _uiHelper.addPGCCards(i, info.cardPoint, 3);
                            }
                            else
                            {
                                _uiHelper.addPGCCards(i, info.cardPoint, 2);
                            }
                        }
                    }
                    //PengCard
                    if (checkPaiArrayContainType(avo.paiArray [1], PaiArrayType.PENG))
                    {
                        for (int j = 0; j < avo.paiArray[1].Length; j++)
                        {
                            var t = avo.paiArray [1] [j] & (int)PaiArrayType.PENG;
                            if (t > 0 && hand [j] > 2)
                            {
                                hand [j] -= 3;
                                _uiHelper.addPGCCards(i, j, 1);
                            }
                        }
                    }
                    //ChiCard
                    if (checkPaiArrayContainType(avo.paiArray [1], PaiArrayType.CHI))
                    {
                        var chis = avo.huReturnObjectVO.totalInfo.getChiInfos();
                        for (int j = 0; j < chis.Length; j++)
                        {
                            var info = chis [j];
                            int a    = info.cardPionts [0];
                            int b    = info.cardPionts [1];
                            int c    = info.cardPionts [2];
                            hand [a] -= 1;
                            hand [b] -= 1;
                            hand [c] -= 1;
                            a         = Math.Min(Math.Min(b, c), a);
                            _uiHelper.addPGCCards(i, a, 4);
                        }
                    }
                }
                _data.AvatarList = GlobalData.getInstance().playerList;
                _uiHelper.addMyHandCards(_data.paiArray [0]);
                GameManager.getInstance().Server.requset(APIS.RETURN_ONLINE_REQUEST, "dd");
            }
        }
Ejemplo n.º 3
0
        public void onReturnOnlineResponse(ClientResponse response)
        {
            //1.显示剩余牌的张数和圈数
            JsonData msgData      = JsonMapper.ToObject(response.message);
            string   surplusCards = msgData ["surplusCards"].ToString();

            _data.remainCardNum = int.Parse(surplusCards) + 1;
            _uiHelper.updateRemainCardNum();
            int gameRound = int.Parse(msgData ["gameRound"].ToString());

            _tableView.remainRoundText.text = gameRound + "";
            GlobalData.getInstance().remainRoundCount = gameRound;

            try {
                _data.putoutIndex = int.Parse(msgData ["curAvatarIndex"].ToString());
                _data.putoutPoint = int.Parse(msgData ["putOffCardPoint"].ToString());

                _data.pickIndex = int.Parse(msgData ["pickAvatarIndex"].ToString());
                if (msgData.Keys.Contains("currentCardPoint"))
                {
                    _data.pickPoint = int.Parse(msgData ["currentCardPoint"].ToString());
                }
            } catch (Exception e) {
                Debug.Log(e.ToString());
            }

            var Hand = _uiHelper.getCardGOs(Direction.B).Hand;

            if (_data.pickIndex == _data.myIndex || (Hand.Count % 3 == 2))          //把摸的牌放对位置

            {
                if (_data.pickPoint == -2)
                {
                    var lastCard = Hand [Hand.Count - 1];
                    _data.pickPoint = lastCard.GetComponent <MyHandCardView> ().getPoint();
                    _uiHelper.rangeMyHandCard(true);
                }
                else
                {
                    if ((Hand.Count) % 3 != 1)
                    {
                        MyDebug.Log("摸牌" + _data.pickPoint);
                        _uiHelper.removeMyHandCard(_data.pickPoint, 1);
                        _uiHelper.rangeMyHandCard(false);
                        _uiHelper.addPickCard(_data.myIndex, _data.pickPoint);
                    }
                }
                MyHandCardView.isPutout = true;
            }
            else
            {
                if (_data.pickIndex != _data.putoutIndex)
                {
                    _uiHelper.rangeOtherHandCard(_data.pickIndex, 1);
                }
            }
            //光标指向打牌人

            var Table = _uiHelper.getCardGOs(_data.putoutIndex).Table;

            if (Table.Count == 0)              //刚启动

            {
            }
            else
            {
                _uiHelper.lastCardOnTable = Table [Table.Count - 1];
                _uiHelper.addPointer(_uiHelper.lastCardOnTable);
            }
        }
Ejemplo n.º 4
0
 public void open(object data = null)
 {
     GlobalData.getInstance().gamingData = _data;
 }
Ejemplo n.º 5
0
        /**
         * 胡牌请求回调
         */
        private void onHuNotify(ClientResponse response)
        {
            HupaiResponseVo hvo = JsonMapper.ToObject <HupaiResponseVo> (response.message);

            _data.hupaiResponseVO = hvo;
            string scores = hvo.currentScore;

            hupaiCoinChange(scores);


            if (hvo.type == "0")
            {
                SoundManager.getInstance().playSoundByAction("hu", GlobalData.getInstance().myAvatarVO.account.sex);
                _actionHlpr.showEffect(ActionType.HU);

                for (int i = 0; i < hvo.avatarList.Count; i++)
                {
                    var item   = hvo.avatarList [i];
                    var hutype = GameHelper.getHelper().getHuType(item.totalInfo.getHuInfo());
                    if (hutype == HuType.JIE_PAO)
                    {
                        _uiHelper.getCardGOs(i).PlayerItem.setHuFlagDisplay();
                        SoundManager.getInstance().playSoundByAction("hu", avatarList [i].account.sex);
                    }
                    else if (hutype == HuType.ZI_MO)
                    {
                        _uiHelper.getCardGOs(i).PlayerItem.setHuFlagDisplay();
                        SoundManager.getInstance().playSoundByAction("zimo", avatarList [i].account.sex);
                    }
                    else
                    {
                        _uiHelper.getCardGOs(i).PlayerItem.setHuFlagHidde();
                    }
                }

                string allMas = hvo.allMas;
                if (GlobalData.getInstance().roomVO.roomType == GameType.ZHUAN_ZHUAN || GlobalData.getInstance().roomVO.roomType == GameType.JI_PING_HU)                    //只有转转麻将才显示抓码信息
                {
                    if (GlobalData.getInstance().roomVO.ma > 0 && allMas != null && allMas.Length > 0)
                    {
                        zhuamaPanel = SceneManager.getInstance().loadPerfab("prefab/Panel_ZhuaMa");
                        zhuamaPanel.GetComponent <ZhuaMaView> ().init(_data);
                        zhuamaPanel.GetComponent <ZhuaMaView> ().arrageMas(allMas, hvo.validMas);
                        Invoke("openGameOverView", 7);
                    }
                    else
                    {
                        Invoke("openGameOverView", 3);
                    }
                }
                else
                {
                    Invoke("openGameOverView", 3);
                }
            }
            else if (hvo.type == "1")
            {
                SoundManager.getInstance().playSoundByAction("liuju", GlobalData.getInstance().myAvatarVO.account.sex);
                _actionHlpr.showEffect(ActionType.LIUJU);
                Invoke("openGameOverView", 3);
            }
            else
            {
                Invoke("openGameOverView", 3);
            }
        }
Ejemplo n.º 6
0
        /**左上角显示房间规则**/
        public void updateRule()
        {
            RoomVO rvo = GlobalData.getInstance().roomVO;

            roomRemarkText.text = GameHelper.getHelper().getRuleStr(rvo);
        }
Ejemplo n.º 7
0
        public void parsePrizeCount(string msg)
        {
            int prizecount = int.Parse(msg);

            GlobalData.getInstance().PrizeCount = prizecount;
        }
Ejemplo n.º 8
0
 private void onSoundToggleChange()
 {
     soundOnBtn.SetActive(!GlobalData.getInstance().SoundToggle);
     soundOffBtn.SetActive(GlobalData.getInstance().SoundToggle);
 }
Ejemplo n.º 9
0
 public void onSoundOffBtn()
 {
     GlobalData.getInstance().SoundToggle = false;
 }
Ejemplo n.º 10
0
 public void onSoundOnBtn()
 {
     GlobalData.getInstance().SoundToggle = true;
 }