//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 22, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using System; using System.Collections.Generic; using DG.Tweening; //主界面功能预告 namespace vnxbqy.UI { public class FunctionForecastTip : MonoBehaviour { public static int OpenTag = 0; [SerializeField] Transform _FunctionForecastPanel;//切换面板 [SerializeField] Image _FunctionIcon;//图标Icon [SerializeField] Button _FunctionIconBtn;//面板开关按钮 [SerializeField] Text _NameText;//标题名 [SerializeField] Text _Information;//信息内容 [SerializeField] Text m_Information_reward;//有奖励可领取 [SerializeField] ButtonEx xxzlBtn;//修仙之路按钮 [SerializeField] Text xxzlTxt;//修仙之路进度 [SerializeField] UIEffect xxzlEffect;//修仙之路特效 public static Action FunctionOpenTagEvent; FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel(); } } RealmModel realmModel { get { return ModelCenter.Instance.GetModel(); } } public void Init()//初始化 { PlayerDatas.Instance.playerDataRefreshEvent += OnPlayersUpLV; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; DataAssignment(); } public void Unit() { FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; PlayerDatas.Instance.playerDataRefreshEvent -= OnPlayersUpLV; } private void Start() { _FunctionIconBtn.AddListener(FunctionIconBtn); } private void OnFuncStateChangeEvent(int obj) { var config = FunctionForecastConfig.Get(obj); if (config != null) { DataAssignment(); } } private void OnPlayersUpLV(PlayerDataType _type) { if (_type == PlayerDataType.LV) { DataAssignment(); } } List configs = new List(); void DataAssignment() { if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Realm) || realmModel.IsRealmXXZLOver()) { xxzlBtn.SetActive(false); } else { xxzlBtn.SetActive(true); xxzlBtn.AddListener(() => { WindowCenter.Instance.Open(); }); xxzlTxt.text = realmModel.GetXXZLProcess() + "/" + RealmXXZLConfig.GetKeys().Count; if (realmModel.xxzlRedpoint.state == RedPointState.Simple) xxzlEffect.Play(); else xxzlEffect.Stop(); } if (FuncOpen.Instance.IsFuncOpen(OpenTag)) { _FunctionForecastPanel.SetActive(false); } if (configs.Count <= 0) { configs= FunctionForecastConfig.GetValues(); } // var configs = FunctionForecastConfig.GetValues(); foreach (var config in configs) { if (!FuncOpen.Instance.IsFuncOpen(config.FuncId) && PlayerDatas.Instance.baseData.LV >= config.OpenLevel && config.Display == 1) { OpenTag = config.FuncId; if (FunctionOpenTagEvent != null) { FunctionOpenTagEvent(OpenTag); } OpenPanel(OpenTag); return; } } bool IsOpen = false; foreach (var _key in featureNoticeModel.DicOpenFuncState.Keys) { if (featureNoticeModel.DicRedPoint.ContainsKey(_key) && featureNoticeModel.DicOpenFuncState[_key].State == 1 && featureNoticeModel.DicOpenFuncState[_key].AwardState == 0 && featureNoticeModel.DicAwardItem.ContainsKey(_key)) { IsOpen = true; } } if (IsOpen)//预告完毕还有奖励能领取 { _FunctionForecastPanel.SetActive(true); _FunctionIcon.SetSprite("PersonBossIcon"); m_Information_reward.SetActive(false); _NameText.SetActive(true); //_NameText.text = Language.Get("Z1043"); _NameText.text = Language.Get("SecondWindowTitle_27"); _Information.SetActive(false); } else { _FunctionForecastPanel.SetActive(false); } return; } void OpenPanel(int ID) { _FunctionForecastPanel.SetActive(true); m_Information_reward.SetActive(false); _NameText.SetActive(true); _Information.SetActive(false); _FunctionIcon.SetSprite(FunctionForecastConfig.Get(ID).FuncIconKey); //_NameText.text = FunctionForecastConfig.Get(ID).Describe; _NameText.text = Language.Get("SecondWindowTitle_27"); _Information.text= FunctionForecastConfig.Get(ID).OpenDescribe; } void FunctionIconBtn()//面板开启 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); // WindowCenter.Instance.Open(); } } }