//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, July 17, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class RuneTowerSweepBuyWin : Window { [SerializeField] Text m_HighestFloor; [SerializeField] Text m_SurplusTimes; [SerializeField] Text m_MoneyTip; [SerializeField] Button m_Buy; [SerializeField] Button m_Close; RuneTowerModel model { get { return ModelCenter.Instance.GetModel(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Buy.AddListener(BuyTime); m_Close.AddListener(CloseClick); } protected override void OnPreOpen() { DisplayBaseInfo(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void DisplayBaseInfo() { var floorConfig = RuneTowerFloorConfig.Get(model.yesterdayPassFloor); var towerConfig = RuneTowerConfig.Get(floorConfig.TowerId); m_HighestFloor.text = Language.Get("RuneTower17", StringUtility.Contact(towerConfig.TowerName, floorConfig.FloorName)); var completedTime = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.RuneTowerSweep); var surplusTime = GeneralDefine.runeTowerSweepBuyTimes - Mathf.Clamp(completedTime - 1, 0, int.MaxValue); m_SurplusTimes.text = Language.Get("RuneTower18", surplusTime); m_MoneyTip.text = Language.Get("RuneTower19", GeneralDefine.runeTowerSweepBuyPrice); } private void BuyTime() { var error = 0; if (TestBuyTime(out error)) { CloseClick(); dungeonModel.RequestSweep(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0)); } else { ProcessError(error); } } private bool TestBuyTime(out int _error) { //1.仙玉不足; var moneyNeed = GeneralDefine.runeTowerSweepBuyPrice; var moneyOwn = PlayerDatas.Instance.baseData.diamond ; if (moneyOwn < moneyNeed) { _error = 1; return false; } _error = 0; return true; } private void ProcessError(int _error) { switch (_error) { case 1: CloseClick(); WindowCenter.Instance.Open(); break; case 3: break; } } } }