//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Wednesday, November 22, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using UnityEngine.UI; using TableConfig; using System; using System.Collections.Generic; using DG.Tweening; //主界面功能预告 namespace Snxxz.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;//信息内容 public static Action FunctionOpenTagEvent; public void Init()//初始化 { PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV; FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent; DataAssignment(); } public void Unit() { FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent; PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV; } private void Start() { _FunctionIconBtn.AddListener(FunctionIconBtn); } private void OnFuncStateChangeEvent(int obj) { var config = Config.Instance.Get(obj); if (config != null) { DataAssignment(); } } private void OnPlayersUpLV(PlayerDataRefresh _type) { if (_type == PlayerDataRefresh.LV) { DataAssignment(); } } void DataAssignment() { if (FuncOpen.Instance.IsFuncOpen(OpenTag)) { _FunctionForecastPanel.gameObject.SetActive(false); } var configs = Config.Instance.GetAllValues(); 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; } } _FunctionForecastPanel.gameObject.SetActive(false); return; } void OpenPanel(int ID) { _FunctionForecastPanel.gameObject.SetActive(true); _FunctionIcon.SetSprite(Config.Instance.Get(ID).FuncIconKey); _NameText.text = Config.Instance.Get(ID).Describe; FuncOpenLVConfig funcoPenConfig = Config.Instance.Get(ID); if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0) { if (funcoPenConfig.LimitMagicWeapon != 0) { int faBaoID = funcoPenConfig.LimitMagicWeapon / 100; TreasureConfig treasure = Config.Instance.Get(faBaoID); _Information.text = string.Format(Language.Get("FuncFBOpen"), treasure.Name); return; } if (funcoPenConfig.LimitMissionID != 0) { _Information.text = string.Format(Language.Get("TaskFuncOpen"), funcoPenConfig.LimitLV); return; } } else { _Information.text = string.Format(Language.Get("FuncLevelOpen"), funcoPenConfig.LimitLV); } } void FunctionIconBtn()//面板开启 { WindowCenter.Instance.Close(); WindowCenter.Instance.Open(); // WindowCenter.Instance.Open(); } } }