| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 | 
							- using FairyGUI;
 
- using UI.FieldGuide;
 
- 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 List<UI_SuitTypeItem> _suitTypeItems;
 
-         public override void Dispose()
 
-         {
 
-             if (_ui != null)
 
-             {
 
-                 _ui.Dispose();
 
-                 _ui = null;
 
-             }
 
-             base.Dispose();
 
-         }
 
-         protected override void OnInit()
 
-         {
 
-             base.OnInit();
 
-             packageName = UI_SuitGuideUI.PACKAGE_NAME;
 
-             _ui = UI_SuitGuideUI.Create();
 
-             this.viewCom = _ui.target;
 
-             isfullScreen = true;
 
-             isReturnView = true;
 
-             _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg");
 
-             _ui.m_suitTypeList.itemRenderer = RenderListSuitType;
 
-             _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();
 
-         }
 
-         protected override void AddEventListener()
 
-         {
 
-             base.AddEventListener();
 
-             EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
 
-         }
 
-         protected override void OnShown()
 
-         {
 
-             base.OnShown();
 
-             if (backRefresh)
 
-             {
 
-                 // 让滑块直接置于最左边
 
-                 _ui.m_suitTypeItems.target.scrollPane.ScrollTop();
 
-                 _ui.m_t0.Play();
 
-                 UpdateItemsByType(1);
 
-             }
 
-             UpdateListSuitTypeRedDots();
 
-             Timers.inst.StartCoroutine(UpdateRedDot());
 
-         }
 
-         protected override void OnHide()
 
-         {
 
-             base.OnHide();
 
-         }
 
-         protected override void RemoveEventListener()
 
-         {
 
-             base.RemoveEventListener();
 
-             EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide);
 
-         }
 
-         /// <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 = button6.target.title;
 
-             UI_Button6.ProxyEnd();
 
-         }
 
-         private void OnClickListSuitType(EventContext eventContext)
 
-         {
 
-             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 UpdateItemsByType(int type)
 
-         {
 
-             _ui.m_c1.SetSelectedIndex(type - 1);
 
-             switch (type)
 
-             {
 
-                 case 1:
 
-                     UpdateType1Progress();
 
-                     break;
 
-                 case 2:
 
-                     _ui.m_suitType2Items.numItems = _menuTypeAllDataDic[type].Count;
 
-                     break;
 
-             }
 
-         }
 
-         private void InitSuitGuideType()
 
-         {
 
-             _suitTypeItems = new List<UI_SuitTypeItem>();
 
-             _menuTypeAllDataDic = new Dictionary<int, List<int>>();
 
-             SuitGuideMenuCfg[] menuCfgs = SuitGuideMenuCfgArray.Instance.dataArray;
 
-             foreach (SuitGuideMenuCfg s in menuCfgs)
 
-             {
 
-                 if (!_menuTypeAllDataDic.ContainsKey(s.SuitGuideMenuType))
 
-                 {
 
-                     _menuTypeAllDataDic.Add(s.SuitGuideMenuType, new List<int>());
 
-                 }
 
-                 _menuTypeAllDataDic[s.SuitGuideMenuType].Add(s.id);
 
-             }
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item1, _menuTypeAllDataDic[1][0]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item2, _menuTypeAllDataDic[1][1]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item3, _menuTypeAllDataDic[1][2]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item4, _menuTypeAllDataDic[1][3]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item5, _menuTypeAllDataDic[1][4]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item6, _menuTypeAllDataDic[1][5]);
 
-             InitSuitType1Item(_ui.m_suitTypeItems.m_item7, _menuTypeAllDataDic[1][6]);
 
-         }
 
-         /// <summary>
 
-         /// 初始化种类1
 
-         /// </summary>
 
-         /// <param name="item"></param>
 
-         /// <param name="typeId"></param>
 
-         private void InitSuitType1Item(UI_SuitTypeItem item, int typeId)
 
-         {
 
-             SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(typeId);
 
-             item.m_title.text = cfg.name;
 
-             item.target.data = typeId;
 
-             item.m_icon.url = string.Format("ui://FieldGuide/tj_tz_{0}", typeId);
 
-             item.target.onClick.Add(() =>
 
-             {
 
-                 ViewManager.Show<SuitGuideListView>(typeId, false, false);
 
-             });
 
-             _suitTypeItems.Add(item);
 
-         }
 
-         /// <summary>
 
-         /// 由于type1页面未使用列表,所以需要循环更新进度
 
-         /// </summary>
 
-         private void UpdateType1Progress()
 
-         {
 
-             for (int i = 0; i < _suitTypeItems.Count; i++)
 
-             {
 
-                 int _suitTypeId = (int)_suitTypeItems[i].target.data;
 
-                 int haveCount = SuitUtil.GetSuitIdList(false, true, _suitTypeId, 0).Count;
 
-                 int totalCount = SuitUtil.GetSuitIdList(true, true, _suitTypeId, 0).Count;
 
-                 _suitTypeItems[i].m_progress.target.value = haveCount;
 
-                 _suitTypeItems[i].m_progress.target.max = totalCount;
 
-                 _suitTypeItems[i].m_progress.m_num.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
 
-                 _suitTypeItems[i].m_progress.m_rate.SetVar("rate", FieldGuideView.ProgressCalculate(haveCount, totalCount).ToString()).FlushVars();
 
-             }
 
-         }
 
-         /// <summary>
 
-         /// 初始化种类2
 
-         /// </summary>
 
-         /// <param name="index"></param>
 
-         /// <param name="gObject"></param>
 
-         private void RenderListSuitType2Item(int index, GObject gObject)
 
-         {
 
-             UI_SuitStoryItem item = UI_SuitStoryItem.Proxy(gObject);
 
-             SuitGuideMenuCfg cfg = SuitGuideMenuCfgArray.Instance.GetCfg(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index]);
 
-             item.m_title.text = cfg.name;
 
-             int haveCount = SuitUtil.GetSuitIdList(false, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
 
-             int totalCount = SuitUtil.GetSuitIdList(true, true, _menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], 0).Count;
 
-             item.m_progressNum.SetVar("value", haveCount.ToString()).SetVar("max", totalCount.ToString()).FlushVars();
 
-             item.m_icon.url = ResPathUtil.GetChapterGuideIconPath(string.Format("gushi{0}",(index+1)));
 
-             UI_SuitStoryItem.ProxyEnd();
 
-         }
 
-         private void OnClickListSuitType2Item(EventContext eventContext)
 
-         {
 
-             GObject obj = eventContext.data as GObject;
 
-             int index = _ui.m_suitType2Items.GetChildIndex(obj);
 
-             ViewManager.Show<SuitGuideDetailView>(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], false, false);     
 
-         }
 
-         private void OnClickBtnBack()
 
-         {
 
-             Hide();
 
-         }
 
-         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;
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |