public NbjlPlayerInfo(NbjlPlayerInfo info) { CoinA = info.CoinA; Seat = info.Seat; NickM = info.NickM; SexI = info.SexI; AvatarX = info.AvatarX; }
/// <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(); }
/// <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; } } }
/// <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); } }
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)); }
/// <summary> /// 刷新信息显示 /// </summary> /// <param name="data"></param> private void OnBankerInfo(NbjlPlayerInfo data) { RefreshInfo(data ?? _defBankerInfo); }
/// <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; } }