//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Tuesday, September 12, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.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(); } } 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, "/", totalTimes); m_SurplusTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red); var openTimeConfig = Config.Instance.Get(model.currentDungeon.mapId); m_AddCntBtn.gameObject.SetActive(openTimeConfig.BuyTimesID != 0); } private void OnDungeonRecordUpdate(int _dataMapId) { UpdateDungeonTimes(); } private void OnAddBtnClick() { WindowCenter.Instance.Open(); } public void SetDungeonInfo(Dungeon _dungeon) { dungeon = _dungeon; var dungeonId = model.GetDungeonId(dungeon); var dungeonConfig = Config.Instance.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 = Config.Instance.Get(model.currentDungeon.mapId); m_AddCntBtn.gameObject.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 = Config.Instance.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.gameObject.SetActive(true); behaviour.showCount = false; behaviour.SetItem(dungeonConfig.Rewards[i], 0); } else { behaviour.gameObject.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.gameObject.SetActive(true); behaviour.text = dungeonConfig.RewardCountDescriptions[i]; } else { behaviour.gameObject.SetActive(false); } } } CheckAchievementGuide(); } private void CheckAchievementGuide() { if (AchievementGoto.guideAchievementId != 0) { var config = Config.Instance.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); } } } } }