Ejemplo n.º 1
0
 public NbjlPlayerInfo(NbjlPlayerInfo info)
 {
     CoinA   = info.CoinA;
     Seat    = info.Seat;
     NickM   = info.NickM;
     SexI    = info.SexI;
     AvatarX = info.AvatarX;
 }
Ejemplo n.º 2
0
        /// <summary>
        ///  玩家进入
        /// </summary>
        /// <param name="data"></param>
        public void OnUserJoin(ISFSObject data)
        {
            var            info       = data.GetSFSObject(ConstantData.KeyUser);
            NbjlPlayerInfo playerInfo = new NbjlPlayerInfo();

            playerInfo.Parse(info);
            Players.Add(playerInfo);
            RoundPlayersFresh();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 刷新信息
        /// </summary>
        private void RefreshInfo(NbjlPlayerInfo info)
        {
            var newInfo = new NbjlPlayerInfo(info);
            var curInfo = PlayerInfo.Info;

            if (curInfo == null)
            {
                PlayerInfo.Info = newInfo;
            }
            else
            {
                if (newInfo.NickM != curInfo.NickM || newInfo.CoinA != curInfo.CoinA || newInfo.Seat != curInfo.Seat)
                {
                    PlayerInfo.Info = newInfo;
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// /玩家信息变化
        /// </summary>
        /// <param name="players"></param>
        private void OnPlayersInfo(List <NbjlPlayerInfo> players)
        {
            var playerList = players.ToList();
            var playerSeat = App.GameData.SelfSeat;
            var bankerSeat = App.GetGameData <NbjlGameData>().BankerSeat;
            var selfIndex  = playerList.FindIndex(player => player != null && player.Seat == playerSeat);

            _selfInRank = selfIndex > -1 && selfIndex < 6;
            if (selfIndex > -1)
            {
                var selfInfo = playerList[selfIndex];
                SelfPlayer.UpdateView(selfInfo);
            }
            var bankerIndex = playerList.FindIndex(player => player != null && player.Seat == bankerSeat);

            if (bankerIndex > -1)
            {
                playerList.RemoveAt(bankerIndex);
            }
            var playerIndex = 0;
            var playerCount = playerList.Count;

            foreach (NbjlPlayer player in ShowPlayers)
            {
                NbjlPlayerInfo info = null;
                while (info == null)
                {
                    if (playerIndex < playerCount)
                    {
                        info = playerList[playerIndex];
                        playerIndex++;
                    }
                    else
                    {
                        break;
                    }
                }
                player.UpdateView(info);
            }
        }
Ejemplo n.º 5
0
        protected override void FreshUserInfo()
        {
            base.FreshUserInfo();
            NbjlPlayerInfo playerInfo = Info as NbjlPlayerInfo;

            if (playerInfo == null)
            {
                return;
            }
            var  rankNum   = playerInfo.RankNum;
            bool inRankNum = rankNum < RankShowBgNum;

            if (inRankNum)
            {
                RankBg.TrySetComponentValue(string.Format(RankBgFormat, rankNum));
            }
            OtherRankObj.TrySetComponentValue(!inRankNum);
            RankNumLabel.TrySetComponentValue((rankNum + 1).ToString());
            SetNick(playerInfo.NickM);
            AccumulateBet.TrySetComponentValue(string.Format(AccomulateBetFormat, YxUtiles.ReduceNumber(playerInfo.AccumulateBet)));
            AccumulateWinCount.TrySetComponentValue(string.Format(AccomulateWinFormat, playerInfo.AccumulateWin));
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 刷新信息显示
 /// </summary>
 /// <param name="data"></param>
 private void OnBankerInfo(NbjlPlayerInfo data)
 {
     RefreshInfo(data ?? _defBankerInfo);
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 获得庄相关信息
        /// </summary>
        /// <param name="data"></param>
        public void GetBanerInfos(ISFSObject data)
        {
            var bankersData   = data.GetSFSArray(ConstantData.KeyBankers);
            var newBankerSeat = data.GetInt(ConstantData.KeyBankerSeat);

            BankerInfo    = null;
            IsApplyBanker = false;
            BankerSeat    = newBankerSeat;
            if (bankersData.Count == 0)
            {
                WaitBankerListChange = WaitBankers.Count != 0;
                WaitBankers          = new List <IRecycleData>();
            }
            else
            {
                var newWaitList   = new List <NbjlPlayerInfo>();
                var changeBankers = new List <NbjlPlayerInfo>();
                foreach (ISFSObject banker in bankersData)
                {
                    var user = new NbjlPlayerInfo();
                    user.Parse(banker);
                    var seat = user.Seat;
                    if (seat == SelfSeat)
                    {
                        IsApplyBanker = true;
                    }
                    changeBankers.Add(user);
                    if (seat == BankerSeat)
                    {
                        continue;
                    }
                    newWaitList.Add(user);
                }
                var changeCount = changeBankers.Count;
                if (changeCount > 0)
                {
                    var playerCount = Players.Count;
                    for (int i = 0; i < changeCount; i++)
                    {
                        var playerIndex = Players.FindIndex(item => (item != null && item.Seat == changeBankers[i].Seat));
                        if (playerIndex >= 0)
                        {
                            Players[playerIndex].CoinA = changeBankers[i].CoinA;
                        }
                    }
                }
                var oldWaitBankers = WaitBankers.ConvertAll(item => item as NbjlPlayerInfo);
                WaitBankerListChange = oldWaitBankers.Count != newWaitList.Count;
                if (!WaitBankerListChange)
                {
                    var count = oldWaitBankers.Count;
                    var state = false;
                    for (int i = 0; i < count; i++)
                    {
                        var oldItem = oldWaitBankers[i];
                        var newItem = newWaitList[i];
                        if (newItem.Seat != oldItem.Seat || newItem.NickM != oldItem.NickM || newItem.CoinA != oldItem.CoinA)
                        {
                            state = true;
                            break;
                        }
                    }
                    WaitBankerListChange = state;
                }
                if (WaitBankerListChange)
                {
                    WaitBankers = newWaitList.ConvertAll(item => item as IRecycleData);
                }
            }
            if (BankerSeat != ConstantData.KeyDefaultInt)
            {
                RoundPlayersFresh();
            }
            IsOnBanker = BankerInfo != null && BankerInfo.Seat.Equals(SelfSeat);
            if (IsOnBanker)
            {
                App.GameData.GStatus = YxEGameStatus.PlayAndConfine;
                IsApplyBanker        = true;
            }
        }