|
@@ -4,14 +4,14 @@ using UI.CommonGame;
|
|
|
using System.Collections.Generic;
|
|
|
using UI.ClothingSynthetic;
|
|
|
using UnityEngine;
|
|
|
+using System.Collections;
|
|
|
|
|
|
namespace GFGGame
|
|
|
{
|
|
|
public class SuitGuideView : BaseWindow
|
|
|
{
|
|
|
private UI_SuitGuideUI _ui;
|
|
|
- private Dictionary<int,List<int>> _menuTypeAllDataDic;
|
|
|
- private string[] _suitTypeList = { "套装", "故事" };
|
|
|
+ private Dictionary<int, List<int>> _menuTypeAllDataDic;
|
|
|
private List<UI_SuitTypeItem> _suitTypeItems;
|
|
|
|
|
|
public override void Dispose()
|
|
@@ -34,13 +34,13 @@ namespace GFGGame
|
|
|
_ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
|
|
|
|
|
|
_ui.m_suitTypeList.itemRenderer = RenderListSuitType;
|
|
|
- _ui.m_suitTypeList.numItems = _suitTypeList.Length;
|
|
|
+ _ui.m_suitTypeList.numItems = _ui.m_suitTypeList.numItems;
|
|
|
_ui.m_btnBack.onClick.Add(OnClickBtnBack);
|
|
|
_ui.m_suitType2Items.itemRenderer = RenderListSuitType2Item;
|
|
|
_ui.m_suitType2Items.onClickItem.Add(OnClickListSuitType2Item);
|
|
|
_ui.m_suitTypeList.onClick.Add(OnClickListSuitType);
|
|
|
InitSuitGuideType();
|
|
|
- SetType(1);
|
|
|
+ UpdateItemsByType(1);
|
|
|
|
|
|
}
|
|
|
protected override void AddEventListener()
|
|
@@ -51,6 +51,8 @@ namespace GFGGame
|
|
|
protected override void OnShown()
|
|
|
{
|
|
|
base.OnShown();
|
|
|
+ UpdateListSuitTypeRedDots();
|
|
|
+ Timers.inst.StartCoroutine(UpdateRedDot());
|
|
|
}
|
|
|
|
|
|
protected override void OnHide()
|
|
@@ -63,7 +65,7 @@ namespace GFGGame
|
|
|
EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
|
|
|
}
|
|
|
|
|
|
- private void SetType(int type)
|
|
|
+ private void UpdateItemsByType(int type)
|
|
|
{
|
|
|
_ui.m_c1.SetSelectedIndex(type - 1);
|
|
|
|
|
@@ -84,7 +86,7 @@ namespace GFGGame
|
|
|
|
|
|
_menuTypeAllDataDic = new Dictionary<int, List<int>>();
|
|
|
SuitGuideMenuCfg[] menuCfgs = SuitGuideMenuCfgArray.Instance.dataArray;
|
|
|
- foreach(SuitGuideMenuCfg s in menuCfgs)
|
|
|
+ foreach (SuitGuideMenuCfg s in menuCfgs)
|
|
|
{
|
|
|
if (!_menuTypeAllDataDic.ContainsKey(s.SuitGuideMenuType))
|
|
|
{
|
|
@@ -159,28 +161,126 @@ namespace GFGGame
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
- /// 初始化上方选择菜单
|
|
|
+ /// 初始化上方选择菜单,同步按钮按下和普通状态的文本
|
|
|
/// </summary>
|
|
|
/// <param name="index"></param>
|
|
|
/// <param name="item"></param>
|
|
|
private void RenderListSuitType(int index, GObject item)
|
|
|
{
|
|
|
UI_Button6 button6 = UI_Button6.Proxy(item);
|
|
|
- button6.m_title1.text = _suitTypeList[index];
|
|
|
- button6.target.title = _suitTypeList[index];
|
|
|
+ button6.m_title1.text = button6.target.title;
|
|
|
UI_Button6.ProxyEnd();
|
|
|
}
|
|
|
|
|
|
private void OnClickListSuitType(EventContext eventContext)
|
|
|
{
|
|
|
- SetType(_ui.m_c1.selectedIndex + 1);
|
|
|
+ UpdateItemsByType(_ui.m_c1.selectedIndex + 1);
|
|
|
+ Timers.inst.StartCoroutine(UpdateRedDot());
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 更新选择菜单的红点
|
|
|
+ /// </summary>
|
|
|
+ private void UpdateListSuitTypeRedDots()
|
|
|
+ {
|
|
|
+ for (int j = 0; j < _ui.m_suitTypeList.numItems; j++)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_suitTypeList.GetChildAt(j).asCom, false);
|
|
|
+ for (int i = 0; i < _menuTypeAllDataDic[j + 1].Count; i++)
|
|
|
+ {
|
|
|
+ bool red = RedDotDataManager.Instance.GetSuitGuideRed(_menuTypeAllDataDic[j + 1][i]);
|
|
|
+ if (red)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_suitTypeList.GetChildAt(j).asCom, red, "", -65, 16);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void OnClickBtnBack()
|
|
|
{
|
|
|
- SetType(1);
|
|
|
+ UpdateItemsByType(1);
|
|
|
_ui.m_suitTypeItems.target.scrollPane.ScrollTop();
|
|
|
ViewManager.GoBackFrom(ViewName.SUIT_GUIDE_VIEW);
|
|
|
}
|
|
|
+
|
|
|
+ private IEnumerator UpdateRedDot()
|
|
|
+ {
|
|
|
+ int selectedIndex = _ui.m_c1.selectedIndex + 1;
|
|
|
+
|
|
|
+ // Hide all existed red dots
|
|
|
+ HideSelectedPageRedDot();
|
|
|
+
|
|
|
+ Transition t = null;
|
|
|
+ switch (selectedIndex)
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ t = _ui.m_suitTypeItems.m_In;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ UI_SuitStoryItem listItem = UI_SuitStoryItem.Proxy(_ui.m_suitType2Items.GetChildAt(_ui.m_suitType2Items.numItems - 1));
|
|
|
+ t = listItem.m_In;
|
|
|
+ UI_SuitStoryItem.ProxyEnd();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Wait anim auto play
|
|
|
+ yield return null;
|
|
|
+
|
|
|
+ // Wait anim finished
|
|
|
+ while (t.playing)
|
|
|
+ {
|
|
|
+ yield return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // Show red dots
|
|
|
+ int num;
|
|
|
+
|
|
|
+ switch (selectedIndex)
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ num = _suitTypeItems.Count;
|
|
|
+ for (int i = 0; i < num; i++)
|
|
|
+ {
|
|
|
+ bool red = RedDotDataManager.Instance.GetSuitGuideRed(_menuTypeAllDataDic[selectedIndex][i]);
|
|
|
+ RedDotController.Instance.SetComRedDot(_suitTypeItems[i].target, red, "", -254, 130);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ num = _ui.m_suitType2Items.numItems;
|
|
|
+ for (int i = 0; i < num; i++)
|
|
|
+ {
|
|
|
+ bool red = RedDotDataManager.Instance.GetSuitGuideRed(_menuTypeAllDataDic[selectedIndex][i]);
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_suitType2Items.GetChildAt(i).asCom, red, "", -852, 45);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void HideSelectedPageRedDot()
|
|
|
+ {
|
|
|
+ int num;
|
|
|
+ int selectedIndex = _ui.m_c1.selectedIndex + 1;
|
|
|
+
|
|
|
+ switch (selectedIndex)
|
|
|
+ {
|
|
|
+ case 1:
|
|
|
+ num = _suitTypeItems.Count;
|
|
|
+ for (int i = 0; i < num; i++)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(_suitTypeItems[i].target.asCom, false);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ num = _ui.m_suitType2Items.numItems;
|
|
|
+ for (int i = 0; i < num; i++)
|
|
|
+ {
|
|
|
+ RedDotController.Instance.SetComRedDot(_ui.m_suitType2Items.GetChildAt(i).asCom, false);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|