//--------------------------------------------------------
|
// [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<int> FunctionOpenTagEvent;
|
FeatureNoticeModel featureNoticeModel { get { return ModelCenter.Instance.GetModel<FeatureNoticeModel>(); } }
|
RealmModel realmModel { get { return ModelCenter.Instance.GetModel<RealmModel>(); } }
|
|
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<FunctionForecastConfig> configs = new List<FunctionForecastConfig>();
|
void DataAssignment()
|
{
|
if (!FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.Realm) || realmModel.IsRealmXXZLOver())
|
{
|
xxzlBtn.SetActive(false);
|
}
|
else
|
{
|
xxzlBtn.SetActive(true);
|
xxzlBtn.AddListener(() =>
|
{
|
WindowCenter.Instance.Open<RealmWin>();
|
});
|
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<MainInterfaceWin>();
|
WindowCenter.Instance.Open<FeatureNotice2Win>();
|
// WindowCenter.Instance.Open<ZXWTestWin>();
|
}
|
}
|
|
}
|
|
|
|