| //--------------------------------------------------------  | 
| //    [Author]:           第二世界  | 
| //    [  Date ]:           Tuesday, September 12, 2017  | 
| //--------------------------------------------------------  | 
| using UnityEngine;  | 
| using System.Collections;  | 
| using UnityEngine.UI;  | 
|   | 
| using System;  | 
|   | 
| namespace vnxbqy.UI  | 
| {  | 
|   | 
|     public class DungeonBreifInfo : MonoBehaviour  | 
|     {  | 
|   | 
|         [SerializeField] Text m_OpenTime;  | 
|         [SerializeField] Text m_SurplusTimes;  | 
|         [SerializeField] Text m_DungeonForm;  | 
|         [SerializeField] Text m_LevelLimit;  | 
|         [SerializeField] Text m_Description;  | 
|         [SerializeField] Button m_AddCntBtn;  | 
|         [SerializeField] ItemBehaviour[] m_Rewards;  | 
|         [SerializeField] Text[] m_RewardCounts;  | 
|   | 
|         Dungeon dungeon;  | 
|         DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }  | 
|   | 
|         private void Awake()  | 
|         {  | 
|             m_AddCntBtn.AddListener(OnAddBtnClick);  | 
|         }  | 
|   | 
|         private void OnEnable()  | 
|         {  | 
|             model.updateDungeonBuyCnt += UpdateDungeonTimes;  | 
|             model.dungeonRecordChangeEvent += OnDungeonRecordUpdate;  | 
|         }  | 
|   | 
|         private void OnDisable()  | 
|         {  | 
|             model.updateDungeonBuyCnt -= UpdateDungeonTimes;  | 
|             model.dungeonRecordChangeEvent -= OnDungeonRecordUpdate;  | 
|         }  | 
|   | 
|         private void UpdateDungeonTimes()  | 
|         {  | 
|             var enterTimes = model.GetEnterTimes(dungeon.mapId);  | 
|             var totalTimes = model.GetTotalTimes(dungeon.mapId);  | 
|             m_SurplusTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", model.GetMaxTimesShow(dungeon.mapId));  | 
|             m_SurplusTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red);  | 
|   | 
|             var openTimeConfig = DungeonOpenTimeConfig.Get(model.currentDungeon.mapId);  | 
|             m_AddCntBtn.SetActive(openTimeConfig.BuyTimesID != 0);  | 
|         }  | 
|   | 
|         private void OnDungeonRecordUpdate(int _dataMapId)  | 
|         {  | 
|             UpdateDungeonTimes();  | 
|         }  | 
|   | 
|         private void OnAddBtnClick()  | 
|         {  | 
|             WindowCenter.Instance.Open<DungeonBuyTimesWin>();  | 
|         }  | 
|   | 
|         public void SetDungeonInfo(Dungeon _dungeon)  | 
|         {  | 
|             dungeon = _dungeon;  | 
|             var dungeonId = model.GetDungeonId(dungeon);  | 
|             var dungeonConfig = DungeonConfig.Get(dungeonId);  | 
|             DailyQuestOpenTime dungeonOpenTime;  | 
|   | 
|             if (model.TryGetOpenTime(dungeon.mapId, out dungeonOpenTime))  | 
|             {  | 
|                 if (dungeonOpenTime.always)  | 
|                 {  | 
|                     m_OpenTime.text = Language.Get("DailyQuest_NoTimeLimit");  | 
|                 }  | 
|                 else  | 
|                 {  | 
|                     var week = (int)TimeUtility.ServerNow.DayOfWeek;  | 
|                     var openTimes = dungeonOpenTime.GetHourMinuteByWeek(week);  | 
|                     if (openTimes != null)  | 
|                     {  | 
|                         var stringArray = new string[openTimes.Count];  | 
|                         for (int i = 0; i < openTimes.Count; i++)  | 
|                         {  | 
|                             stringArray[i] = openTimes[i].ToString();  | 
|                         }  | 
|                         m_OpenTime.text = string.Join(",", stringArray);  | 
|                     }  | 
|                 }  | 
|             }  | 
|             else  | 
|             {  | 
|                 m_OpenTime.text = string.Empty;  | 
|             }  | 
|   | 
|             UpdateDungeonTimes();  | 
|   | 
|             var openTimeConfig = DungeonOpenTimeConfig.Get(model.currentDungeon.mapId);  | 
|             m_AddCntBtn.SetActive(openTimeConfig.BuyTimesID != 0);  | 
|   | 
|             m_DungeonForm.text = Language.Get("DailyCopy_Z");  | 
|             var levelLimitMin = dungeonConfig.LVLimitMin;  | 
|             if (dungeon.mapId == 31160)  | 
|             {  | 
|                 var dungeonLevelMin = model.GetDungeonId(dungeon.mapId, 0);  | 
|                 var dungeonMinConfig = DungeonConfig.Get(dungeonLevelMin);  | 
|                 if (dungeonMinConfig != null)  | 
|                 {  | 
|                     levelLimitMin = dungeonMinConfig.LVLimitMin;  | 
|                 }  | 
|             }  | 
|             m_LevelLimit.text = levelLimitMin.ToString();  | 
|             var playerLevel = PlayerDatas.Instance.baseData.LV;  | 
|             m_LevelLimit.color = playerLevel >= levelLimitMin ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red, true);  | 
|   | 
|             m_Description.text = dungeonConfig.Description;  | 
|   | 
|             for (int i = 0; i < m_Rewards.Length; i++)  | 
|             {  | 
|                 var behaviour = m_Rewards[i];  | 
|                 if (i < dungeonConfig.Rewards.Length)  | 
|                 {  | 
|                     behaviour.SetActive(true);  | 
|                     behaviour.showCount = false;  | 
|                     behaviour.SetItem(dungeonConfig.Rewards[i], 0);  | 
|                 }  | 
|                 else  | 
|                 {  | 
|                     behaviour.SetActive(false);  | 
|                 }  | 
|             }  | 
|   | 
|             if (m_RewardCounts != null)  | 
|             {  | 
|                 for (int i = 0; i < m_RewardCounts.Length; i++)  | 
|                 {  | 
|                     var behaviour = m_RewardCounts[i];  | 
|                     if (i < dungeonConfig.RewardCountDescriptions.Length)  | 
|                     {  | 
|                         behaviour.SetActive(true);  | 
|                         behaviour.text = dungeonConfig.RewardCountDescriptions[i];  | 
|                     }  | 
|                     else  | 
|                     {  | 
|                         behaviour.SetActive(false);  | 
|                     }  | 
|                 }  | 
|             }  | 
|   | 
|             CheckAchievementGuide();  | 
|         }  | 
|   | 
|         private void CheckAchievementGuide()  | 
|         {  | 
|             if (AchievementGoto.guideAchievementId != 0)  | 
|             {  | 
|                 var config = SuccessConfig.Get(AchievementGoto.guideAchievementId);  | 
|                 var condition = config.Type == 99 && config.Condition[0] == 31080;  | 
|                 condition = condition || config.Type == 99 && config.Condition[0] == 31140;  | 
|                 condition = condition || config.Type == 99 && config.Condition[0] == 31190;  | 
|   | 
|                 if (condition)  | 
|                 {  | 
|                     var guideEffect = AchievementGuideEffectPool.Require(3);  | 
|                     guideEffect.transform.SetParentEx(m_AddCntBtn.transform, Vector3.zero, Vector3.zero, Vector3.one);  | 
|                 }  | 
|             }  | 
|         }  | 
|   | 
|     }  | 
|   | 
| }  | 
|   | 
|   | 
|   |