//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Monday, October 30, 2017 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace vnxbqy.UI { public class DailyQuestRewardPreviewWin : Window { [SerializeField] RectTransform m_NextStageContainer; [SerializeField] Image m_NextStageRealm; [SerializeField] RectTransform m_MaxLevelContainer; [SerializeField] Text m_RewardGetTip; [SerializeField] ItemBehaviour[] m_ItemBehaviours; [SerializeField] Button m_Confirm; DailyQuestModel model { get { return ModelCenter.Instance.GetModel(); } } #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Confirm.AddListener(CloseClick); } protected override void OnPreOpen() { DisplayContent(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion private void DisplayContent() { var allRewards = DailyLivenessRewardConfig.GetValues(); var allRewardKeys = DailyLivenessRewardConfig.GetKeys(); var stageNeedLevels = DailyLivenessRewardConfig.Get(allRewardKeys[0]).StageLV; var nextStage = Mathf.Min(model.currentRewardStageIndex + 1, stageNeedLevels.Length - 1); // var nextRealm = ConfigManager.Instance.ContainKey(PlayerDatas.Instance.baseData.realmLevel + 1) // ? PlayerDatas.Instance.baseData.realmLevel + 1 : PlayerDatas.Instance.baseData.realmLevel; var nextRealmStage = stageNeedLevels.Length - 1; for (int i = stageNeedLevels.Length - 1; i >= 0; i--) { var levelNeed = stageNeedLevels[i]; if (PlayerDatas.Instance.baseData.realmLevel >= levelNeed) { nextRealmStage = i; break; } } var realNextStage = Mathf.Max(nextStage, nextRealmStage); var rewards = new List(); foreach (var value in allRewards) { rewards.Add(new Item(value.ItemID[realNextStage], value.ItemCount[realNextStage])); } for (int i = 0; i < m_ItemBehaviours.Length; i++) { var behaviour = m_ItemBehaviours[i]; if (i < rewards.Count) { behaviour.SetActive(true); behaviour.SetItem(rewards[i]); } else { behaviour.SetActive(false); } } var isMaxStage = model.currentRewardStageIndex == stageNeedLevels.Length - 1; if (isMaxStage) { m_RewardGetTip.SetActive(false); m_NextStageContainer.SetActive(false); m_MaxLevelContainer.SetActive(true); } else { var nextStageRealm = stageNeedLevels[realNextStage]; var nextStageRealmConfig = RealmConfig.Get(nextStageRealm); m_NextStageRealm.SetSprite(nextStageRealmConfig.Img); m_NextStageRealm.SetNativeSize(); m_NextStageContainer.SetActive(true); if (model.currentRewardStageIndex == nextRealmStage) { m_RewardGetTip.text = Language.Get("StageReward_RemindTxt"); } else { m_RewardGetTip.text = Language.Get("StageReward_RemindTxt1", nextStageRealmConfig.Name); } m_RewardGetTip.SetActive(true); m_MaxLevelContainer.SetActive(false); } } } }