From ad8dc1743416eea4f9f4ecdaf2f5aaf4a7435ce8 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 12 九月 2018 14:04:04 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.87:10010/r/snxxz_scripts
---
System/MainInterfacePanel/FeatureNoticeWin.cs | 222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 216 insertions(+), 6 deletions(-)
diff --git a/System/MainInterfacePanel/FeatureNoticeWin.cs b/System/MainInterfacePanel/FeatureNoticeWin.cs
index 71749f6..ebe3c2e 100644
--- a/System/MainInterfacePanel/FeatureNoticeWin.cs
+++ b/System/MainInterfacePanel/FeatureNoticeWin.cs
@@ -22,8 +22,15 @@
[SerializeField] Text m_TextShowD;//鏄剧ず鍐呭4
[SerializeField] ScrollerController m_ScrollerController;
[SerializeField] Button m_CloseButton;
+ [SerializeField] Text m_TextTurnedOn;//宸插紑鍚�
+ [SerializeField] Text m_TextUnopened;//鏈紑鍚�
+ [SerializeField] Text m_Textschedule;//杩涘害
+ [SerializeField] Button m_ButtonGoto;
List<FunctionForecastConfig> FunctionList = new List<FunctionForecastConfig>();
+
+ TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
#region Built-in
+ private int ClickFuncID = 0;
protected override void BindController()
{
}
@@ -35,20 +42,55 @@
protected override void OnPreOpen()
{
- AddList();
- m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
+ AddList();//娣诲姞鏁扮粍鍒楄〃
+ DefaultSelection();//鑾峰彇榛樿閫夋嫨
+ m_ScrollerController.OnRefreshCell += OnRefreshGridCell;
OnCreateGridLineCell(m_ScrollerController);
+ ContentDisplay();
+ m_ScrollerController.JumpIndex(JumpIndex());
}
protected override void OnAfterOpen()
{
- }
-
+ FuncOpen.Instance.OnFuncStateChangeEvent += OnFuncStateChangeEvent;
+ PlayerDatas.Instance.PlayerDataRefreshInfoEvent += OnPlayersUpLV;
+ treasureModel.treasureStateChangeEvent += treasureStateChangeEvent;
+ treasureModel.treasureStageUpEvent += treasureStageUpEvent;
+ }
protected override void OnPreClose()
{
- m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
+ PlayerDatas.Instance.PlayerDataRefreshInfoEvent -= OnPlayersUpLV;
+ FuncOpen.Instance.OnFuncStateChangeEvent -= OnFuncStateChangeEvent;
+ m_ScrollerController.OnRefreshCell -= OnRefreshGridCell;
+ treasureModel.treasureStateChangeEvent -= treasureStateChangeEvent;
+ treasureModel.treasureStageUpEvent -= treasureStageUpEvent;
}
+ private void treasureStageUpEvent(int obj)
+ {
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+
+ private void treasureStateChangeEvent(int obj)
+ {
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+
+ private void OnFuncStateChangeEvent(int obj)
+ {
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+ private void OnPlayersUpLV(PlayerDataRefresh obj)
+ {
+ if (obj == PlayerDataRefresh.LV)
+ {
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+ }
void OnCreateGridLineCell(ScrollerController gridCtrl)
{
gridCtrl.Refresh();
@@ -72,11 +114,45 @@
{
FeaturesType1 featuresType1 = cell.GetComponent<FeaturesType1>();
featuresType1.GetTheFeatureID(funcId);
+ if (funcId == ClickFuncID)
+ {
+ featuresType1.ImageSelected.SetActive(true);
+ }
+ else
+ {
+ featuresType1.ImageSelected.SetActive(false);
+ }
+ featuresType1.Button.SetListener(()=>
+ {
+ if (funcId != ClickFuncID)
+ {
+ ClickFuncID = funcId;
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+ });
}
else if (type == ScrollerDataType.Normal)
{
FeaturesType2 featuresType2 = cell.GetComponent<FeaturesType2>();
featuresType2.GetTheFeatureID(funcId);
+ if (funcId == ClickFuncID)
+ {
+ featuresType2.ImageSelected.SetActive(true);
+ }
+ else
+ {
+ featuresType2.ImageSelected.SetActive(false);
+ }
+ featuresType2.Button.SetListener(() =>
+ {
+ if (funcId != ClickFuncID)
+ {
+ ClickFuncID = funcId;
+ ContentDisplay();
+ m_ScrollerController.m_Scorller.RefreshActiveCellViews();//鍒锋柊鍙
+ }
+ });
}
}
@@ -84,7 +160,7 @@
{
}
#endregion
- private void AddList()
+ private void AddList()//娣诲姞鍒楄〃淇℃伅
{
if (FunctionList.Count <= 0)
{
@@ -96,8 +172,142 @@
{
FunctionList.Add(functionForecastConfig);
}
+ }
+ }
+ }
+
+ private void DefaultSelection()//鑾峰彇榛樿閫夋嫨
+ {
+ var configs = Config.Instance.GetAllValues<FunctionForecastConfig>();
+ foreach (var config in configs)
+ {
+ int openTag = config.FuncId;
+ if (!FuncOpen.Instance.IsFuncOpen(openTag))
+ {
+ ClickFuncID = openTag;
+ return;
+ }
+ }
+ if (ClickFuncID == 0)
+ {
+ ClickFuncID = FunctionList[0].FuncId;
+ }
+ }
+
+ private int JumpIndex()//Jump閫変腑
+ {
+ int Index = 0;
+ Index = FunctionList.FindIndex((x)=>
+ {
+ return x.FuncId == ClickFuncID;
+ });
+ return Index;
+ }
+
+ private void ContentDisplay()//鍐呭鏄剧ず
+ {
+ var functionForecastConfig = Config.Instance.Get<FunctionForecastConfig>(ClickFuncID);
+ if (functionForecastConfig == null)
+ {
+ return;
+ }
+ m_TextAdvanceName.text = functionForecastConfig.FuncName;
+ m_FeaturesImage.SetSprite(functionForecastConfig.Icon);
+ string[] StrList = ConfigParse.GetMultipleStr(functionForecastConfig.Content);
+ if (StrList.Length > 0)
+ {
+ m_Text_ShowA.text = StrList[0];
+ m_TextShowB.text = StrList[1];
+ m_TextShowC.text = StrList[2];
+ m_TextShowD.text = StrList[3];
+ }
+ if (FuncOpen.Instance.IsFuncOpen(ClickFuncID))
+ {
+ m_TextTurnedOn.gameObject.SetActive(true);
+ m_TextUnopened.gameObject.SetActive(false);
+ m_Textschedule.gameObject.SetActive(false);
+ m_ButtonGoto.gameObject.SetActive(false);
+ }
+ else
+ {
+ TrailerClassification(ClickFuncID);
+ }
+
+ }
+
+ void TrailerClassification(int funcID)//棰勫憡鍒嗙被
+ {
+ m_TextTurnedOn.gameObject.SetActive(false);
+ m_TextUnopened.gameObject.SetActive(false);
+ m_Textschedule.gameObject.SetActive(false);
+ m_ButtonGoto.gameObject.SetActive(false);
+ FuncOpenLVConfig funcoPenConfig = Config.Instance.Get<FuncOpenLVConfig>(funcID);
+ if (funcoPenConfig.LimitMagicWeapon != 0 || funcoPenConfig.LimitMissionID != 0)
+ {
+ if (funcoPenConfig.LimitMagicWeapon != 0)//娉曞疂
+ {
+ int faBaoID = funcoPenConfig.LimitMagicWeapon / 100;
+ MagicWeapon(faBaoID);
}
+ else if (funcoPenConfig.LimitMissionID != 0)//浠诲姟
+ {
+ m_TextUnopened.gameObject.SetActive(true);
+ m_TextUnopened.text= string.Format(Language.Get("TaskFuncOpen"), funcoPenConfig.LimitLV);
+ return;
+ }
+ }
+ else//绛夌骇
+ {
+ m_TextUnopened.gameObject.SetActive(true);
+ m_TextUnopened.text= string.Format(Language.Get("FuncLevelOpen"), funcoPenConfig.LimitLV);
+ return;
+ }
+ }
+
+ private void MagicWeapon(int fabaoID)
+ {
+ m_ButtonGoto.gameObject.SetActive(true);
+ Treasure treasure;
+ TreasureConfig _treasure = Config.Instance.Get<TreasureConfig>(fabaoID);
+ m_ButtonGoto.SetListener(()=>
+ {
+ var config = Config.Instance.Get<TreasureConfig>(fabaoID);
+ treasureModel.selectedTreasure = fabaoID;
+ treasureModel.currentCategory = (TreasureCategory)config.Category;
+ WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.TreasureCollectSoul);
+ });
+ if (treasureModel.TryGetTreasure(fabaoID, out treasure)
+ && treasure.state == TreasureState.Collected)
+ {
+ m_Textschedule.gameObject.SetActive(true);
+ var list = treasure.treasureStages;
+ var funcStage = 0;
+ for (int i = 0; i < list.Count; i++)
+ {
+ if (list[i].unlockType == TreasureStageUnlock.Func &&
+ list[i].func == ClickFuncID)
+ {
+ funcStage = i;
+ break;
+ }
+ }
+ if (treasure.stage < funcStage)
+ {
+ if (treasure.stage == funcStage - 1 || funcStage == 0)
+ {
+ m_Textschedule.text = (float)treasure.exp / treasure.treasureStages[funcStage].exp+"%";
+ }
+ else
+ {
+ m_Textschedule.text = 0+" %";
+ }
+ }
+ }
+ else
+ {
+ m_TextUnopened.gameObject.SetActive(true);
+ m_TextUnopened.text = string.Format(Language.Get("FuncFBOpen"), _treasure.Name);
}
}
}
--
Gitblit v1.8.0