//--------------------------------------------------------
|
// [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<int> 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<FunctionForecastConfig>(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<FunctionForecastConfig>();
|
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<FunctionForecastConfig>(ID).FuncIconKey);
|
_NameText.text = Config.Instance.Get<FunctionForecastConfig>(ID).Describe;
|
FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(ID);
|
if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
|
{
|
if (funcoPenConfig.LimitMagicWeapon != 0)
|
{
|
int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
|
TreasureConfig treasure = Config.Instance.Get<TreasureConfig>(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<MainInterfaceWin>();
|
WindowCenter.Instance.Open<FeatureNoticeWin>();
|
// WindowCenter.Instance.Open<ZXWTestWin>();
|
}
|
}
|
|
}
|
|
|
|