//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, March 20, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RealmTakeExpWin : Window { [SerializeField] Text m_TotalExp; [SerializeField] Text m_ExpRate; [SerializeField] Button m_TakeExp; [SerializeField] Button m_Close; RealmModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_TakeExp.AddListener(TakeExp); m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { Display(); GlobalTimeEvent.Instance.secondEvent += PerSecond; } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= PerSecond; } protected override void OnAfterClose() { } #endregion void Display() { DisplayExp(); DisplayRate(); } void DisplayExp() { var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel); var expLabel = UIHelper.ReplaceLargeNum(model.totalExp); var expLimitLabel = UIHelper.ReplaceLargeNum(config.expLimit); m_TotalExp.text = StringUtility.Contact(expLabel, "/", expLimitLabel); } void DisplayRate() { var config = RealmConfig.Get(PlayerDatas.Instance.baseData.realmLevel); float expRate = config.expRate; if (model.IsBuffActive(TimeUtility.ServerNow)) { expRate = expRate + expRate * (model.buffAddRate / 10000f); } m_ExpRate.text = Language.Get("RealmExpRate", model.realmExpTime, UIHelper.ReplaceLargeNum(expRate)); } private void PerSecond() { DisplayExp(); DisplayRate(); } private void TakeExp() { CA521_tagCMTakeOutRealmExp pak = new CA521_tagCMTakeOutRealmExp(); GameNetSystem.Instance.SendInfo(pak); CloseImmediately(); } } }