//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, July 17, 2018 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; 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 = Config.Instance.Get(model.yesterdayPassFloor); var towerConfig = Config.Instance.Get(floorConfig.TowerId); m_HighestFloor.text = Language.Get("RuneTower17", StringUtility.Contact(towerConfig.TowerName, floorConfig.FloorName)); var completedTime = dailyQuestModel.GetDailyQuestCompletedTimes((int)DailyQuestType.RuneTowerSweep); var surplusTime = GeneralConfig.Instance.runeTowerSweepBuyTimes - Mathf.Clamp(completedTime - 1, 0, int.MaxValue); m_SurplusTimes.text = Language.Get("RuneTower18", surplusTime); m_MoneyTip.text = Language.Get("RuneTower19", GeneralConfig.Instance.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.绑玉和仙玉之和不足;2.仙玉不足;3.次数不足 var moneyNeed = GeneralConfig.Instance.runeTowerSweepBuyPrice; var moneyOwn = PlayerDatas.Instance.baseData.Gold + PlayerDatas.Instance.baseData.GoldPaper; if (moneyOwn < moneyNeed) { _error = 1; return false; } if (PlayerDatas.Instance.baseData.GoldPaper < moneyNeed) { _error = 2; return false; } _error = 0; return true; } private void ProcessError(int _error) { switch (_error) { case 1: CloseClick(); WindowCenter.Instance.Open(); break; case 2: var moneyNeed = GeneralConfig.Instance.runeTowerSweepBuyPrice; var moneyOwn = PlayerDatas.Instance.baseData.GoldPaper; var moneyLack = moneyNeed - moneyOwn; ConfirmCancel.ShowPopConfirm( Language.Get("Mail101"), Language.Get("RuneTower21", moneyNeed, moneyOwn, moneyLack), (bool _ok) => { if (_ok) { CloseClick(); dungeonModel.RequestSweep(new Dungeon(RuneTowerModel.RUNETOWER_MAPID, 0)); } } ); break; case 3: break; } } } }