//--------------------------------------------------------
|
// [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);
|
}
|
}
|
}
|
|
}
|
|
}
|
|
|
|