using FairyGUI; using UI.FieldGuide; using UI.CommonGame; using System.Collections.Generic; using UI.ClothingSynthetic; using UnityEngine; namespace GFGGame { public class SuitGuideView : BaseWindow { private UI_SuitGuideUI _ui; private Dictionary> _menuTypeAllDataDic; private string[] _suitTypeList = { "套装", "故事" }; private List _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; _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("tjbg"); _ui.m_suitTypeList.itemRenderer = RenderListSuitType; _ui.m_suitTypeList.numItems = _suitTypeList.Length; _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); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } protected override void OnShown() { base.OnShown(); } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } private void SetType(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(); _menuTypeAllDataDic = new Dictionary>(); SuitGuideMenuCfg[] menuCfgs = SuitGuideMenuCfgArray.Instance.dataArray; foreach(SuitGuideMenuCfg s in menuCfgs) { if (!_menuTypeAllDataDic.ContainsKey(s.SuitGuideMenuType)) { _menuTypeAllDataDic.Add(s.SuitGuideMenuType, new List()); } _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]); } /// /// 初始化种类1 /// /// /// 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.target.onClick.Add(() => { ViewManager.Show(typeId, new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData }); }); _suitTypeItems.Add(item); } /// /// 初始化种类2 /// /// /// 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(); UI_SuitStoryItem.ProxyEnd(); } private void OnClickListSuitType2Item(EventContext eventContext) { GObject obj = eventContext.data as GObject; int index = _ui.m_suitType2Items.GetChildIndex(obj); ViewManager.Show(_menuTypeAllDataDic[_ui.m_c1.selectedIndex + 1][index], new object[] { ViewName.SUIT_GUIDE_VIEW, this.viewData }); } 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(); } } /// /// 初始化上方选择菜单 /// /// /// 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]; UI_Button6.ProxyEnd(); } private void OnClickListSuitType(EventContext eventContext) { SetType(_ui.m_c1.selectedIndex + 1); } private void OnClickBtnBack() { SetType(1); _ui.m_suitTypeItems.target.scrollPane.ScrollTop(); ViewManager.GoBackFrom(ViewName.SUIT_GUIDE_VIEW); } } }