public void RefreshContent() { if (_lastRefreshTime >= _user.Timestamp) { return; } _lastRefreshTime = _user.Timestamp; PlayerFigure.ApplyData(_user.Read()); }
/// <summary> /// 应用玩家数据。 /// </summary> /// <param name="data"></param> public void ApplyData(User data) { if (data == null) { Data = null; // Close function group when clear data. ShowFuncGroup(false); ShowKickOutCounter(false); if (SelfIndicator && SelfIndicator.gameObject.activeSelf) { SelfIndicator.gameObject.SetActive(false); } if (ReadyIndicator && ReadyIndicator.gameObject.activeSelf) { ReadyIndicator.gameObject.SetActive(false); } if (Level) { Level.text = ""; } if (LevelTitle) { LevelTitle.text = ""; } if (WinRate) { WinRate.text = ""; } if (Money) { Money.Clear(); } if (Nickname) { Nickname.Clear(); } if (Player) { Player.Clear(); } } else { // 之前的数据是空,或者数据发生了变化,则关闭倒计时和功能按钮。 if (Data == null || !StringUtil.AreEqual(data.username, Data.username)) { // FIXME bug就出在这里了。 ShowFuncGroup(false); ShowKickOutCounter(false); } Data = data; var tableUser = _tableUserData.Read(); var self = tableUser.IsMySelf(data); if (SelfIndicator && SelfIndicator.gameObject.activeSelf != self) { SelfIndicator.gameObject.SetActive(self); } var ready = data.ready == 1; if (ReadyIndicator && ReadyIndicator.gameObject.activeSelf != ready) { ReadyIndicator.gameObject.SetActive(ready); } if (Level) { Level.text = "" + data.level; } if (LevelTitle) { LevelTitle.text = "" + data.title; } if (WinRate) { float rate = data.round_count != 0 ? ((float)data.win_count) / data.round_count : 0; WinRate.text = DataUtil.FormatWinRate(rate); } if (Money) { var room = _room.Read(); var currencyType = room == null ? CurrencyType.GOLDEN_EGG : room.currency_type; Money.SetCurrency(DataUtil.GetCurrency(data, currencyType), currencyType); } if (Nickname) { Nickname.SetData(data); } if (Player) { Player.ApplyData(data); } } }