using UI.DressUp; using FairyGUI; using UnityEngine; using System.Collections.Generic; using System; using ET; namespace GFGGame { public class DressUpFightView : BaseView { private UI_DressUpFightUI _ui; private int _fightID; private int _levelID; private float listType1X = 0; private float partsListX = 0; private DressUpListType currentListType; private int[] _currentList2; private GameObject _scenePrefab; private GameObject _sceneObject; private List _currentList3 = new List(); private List _currentList4 = new List(); private int _currentMenuType; private int _currentSuitId; private StoryLevelCfg _levelCfg; private StoryFightCfg _fightCfg; private const int SORT_BY_HIGH_SCORE = 0; private const int SORT_BY_LOW_SCORE = 1; private int _scoreIndex = SORT_BY_HIGH_SCORE; public override void Dispose() { if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void Init() { base.Init(); packageName = UI_DressUpFightUI.PACKAGE_NAME; _ui = UI_DressUpFightUI.Create(); viewCom = _ui.target; isfullScreen = true; _scenePrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneDressUp")); _ui.m_btnClose.width = GRoot.inst.width; _ui.m_btnClose.height = GRoot.inst.height; _ui.m_btnClose.AddRelation(GRoot.inst, RelationType.Size); } protected override void OnInit() { base.OnInit(); _ui.m_groupTaskHint.visible = false; _ui.m_btnRepeal.visible = false; _ui.m_btnRenewal.visible = false; _ui.m_btnSearch.visible = true; // _ui.m_comboBox.items = new string[] { "我的套装一", "我的套装二", "我的套装三", "我的套装四", "我的套装五", "我的套装六" }; _ui.m_partsList.m_comboBoxRarity.items = new string[] { "高分优先", "低分优先" }; InitLists(); _ui.m_partsList.m_comboBoxRarity.onChanged.Add(OnComboBoxRarityChanged); _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_btnHome.onClick.Add(OnClickBtnHome); // _ui.m_btnClothingShop.onClick.Add(OnClickBtnClothingShop); // _ui.m_comboBox.onChanged.Add(OnComboBoxChanged); _ui.m_comListType1.m_listType.onClickItem.Add(OnClickListType1Item); _ui.m_comListType2.m_listType.onClickItem.Add(OnClickListType2Item); _ui.m_partsList.m_list.onClickItem.Add(OnClickPartsListItem); _ui.m_partsList2.m_list.onClickItem.Add(OnClickSuitPartsListItem); _ui.m_touchPad.onClick.Add(OnTouchPad); _ui.m_btnHint.onClick.Add(OnClickBtnHint); _ui.m_btnGuide.onClick.Add(OnTouchPad); _ui.m_btnClose.onClick.Add(OnClickBtnClose); _ui.m_btnDelete.onClick.Add(OnClickBtnDelete); _ui.m_btnNext.onClick.Add(OnClickBtnNext); _ui.m_btnRecommend.onClick.Add(OnClickBtnRecommend); _ui.m_btnSearch.onClick.Add(OnClickBtnSearch); _ui.m_btnAutoPlay.onClick.Add(OnClickBtnAutoPlay); _ui.m_compNeed.target.onClick.Add(OnClickComNeed); _ui.m_compNeed.m_listTag.itemRenderer = RenderListTagItem; // _ui.m_btnShow.onClick.Add(OnClickBtnShow); // _ui.m_btnHide.onClick.Add(OnClickBtnHide); // _ui.m_loaShow.onClick.Add(OnClickLoaShow); // _ui.m_btnHide.visible = false; // EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdatePartsListSort); _ui.m_partsList2.m_comboBoxRarity.visible = false; } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.CARD_CHOOSE, StartCalculateScore); EventAgent.AddEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort); EventAgent.AddEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort); EventAgent.AddEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore); } protected override void OnShown() { base.OnShown(); InstanceZonesDataManager.usedRecommend = false; // _ui.m_comboBox.title = "我的套装"; _ui.m_txtRecommendCount.SetVar("v1", "" + GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount)).FlushVars(); _ui.m_txtRecommendCount.SetVar("v2", GlobalCfgArray.globalCfg.recommendCount.ToString()).FlushVars(); _ui.m_btnRecommend.enabled = true;// GameGlobal.myNumericComponent.GetAsInt(ET.NumericType.RecommendCount) > 0; _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex; _ui.m_btnAutoPlay.selected = EquipDataCache.cacher.autoPlay; _ui.m_btnAutoPlay.visible = FunctionOpenDataManager.Instance.CheckIsFunOpenById(ConstFunctionId.FUNCTION_AUTOPLAY_FIGHT, false); _levelID = (int)viewData; InstanceZonesDataManager.currentLevelCfgId = _levelID; _levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID); _fightCfg = StoryFightCfgArray.Instance.GetCfg(_levelCfg.fightID); if (_levelCfg.type == ConstInstanceZonesType.Field) { _fightCfg.scoreType = FieldDataManager.Instance.fieldInfos.theme; _ui.m_btnAutoPlay.visible = false; } _ui.m_compNeed.target.visible = _fightCfg.needItemId > 0 || _fightCfg.needSuitId > 0 || _fightCfg.needTagsArr.Length > 0; if (_ui.m_compNeed.target.visible) { _ui.m_compNeed.m_c1.selectedIndex = 0; if (_fightCfg.needItemId > 0) { _ui.m_compNeed.m_txtNeedName.text = ItemUtil.GetItemName(_fightCfg.needItemId); _ui.m_compNeed.target.data = _fightCfg.needItemId; } else if (_fightCfg.needSuitId > 0) { _ui.m_compNeed.m_txtNeedName.text = ItemUtil.GetSuitName(_fightCfg.needSuitId); _ui.m_compNeed.target.data = _fightCfg.needSuitId; } else { _ui.m_compNeed.m_c1.selectedIndex = 1; _ui.m_compNeed.m_listTag.numItems = _fightCfg.needTagsArr.Length; } } InstanceZonesDataManager.currentScoreType = _fightCfg.scoreType; //一级菜单 _ui.m_comListType1.m_listType.RemoveChildrenToPool(); _ui.m_comListType1.m_listType.numItems = DressUpMenuItemCfg1Array.Instance.dataArray.Length - 1; //_ui.m_comListType1.m_listType1.ResizeToFit(_ui.m_listType1.numItems); float maxHeight = _ui.target.height - _ui.m_comListType1.m_listType.y - DressUpView.BOTTOM_BLANK; if (_ui.m_comListType1.m_listType.height > maxHeight) { _ui.m_comListType1.m_listType.height = maxHeight; } _ui.m_comListType1.target.x = _ui.target.width; _ui.m_comListType2.target.x = _ui.target.width; _ui.m_partsList.target.x = _ui.target.width; _ui.m_partsList2.target.x = _ui.target.width; _ui.m_scoreType.url = "ui://CommonGame/kp_sx_" + _fightCfg.scoreType; this.showListType1(); if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); EquipDataCache.cacher.setSceneObj(_sceneObject); EquipDataCache.cacher.PutOnDefaultSuitSaved(); } UpdateScore(); SendLog(); Timers.inst.AddUpdate(CheckGuide); } protected override void OnHide() { base.OnHide(); _ui.m_groupTaskHint.visible = false; if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } _fightCfg = null; _levelCfg = null; DressUpMenuItemDataManager.Clear(); Timers.inst.Remove(CheckGuide); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.CARD_CHOOSE, StartCalculateScore); EventAgent.RemoveEventListener(ConstMessage.DRESS_FILTER, UpdatePartsListSort); EventAgent.RemoveEventListener(ConstMessage.DRESS_SEARCH, UpdatePartsListSort); EventAgent.RemoveEventListener(ConstMessage.DRESS_UP_SCORE_CHANGED, UpdateScore); } private void OnClickBtnBack() { Alert.Show("是否确定退出?") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { if (_levelCfg.type == ConstInstanceZonesType.Studio) { ViewManager.Show(StudioDataManager.Instance.VIEW_NAME, new object[] { StudioDataManager.Instance.TYPE_SELECT_INDEX, StudioDataManager.Instance.PROPERTY_SELECT_INDEX }, ViewManager.GetGoBackDatas(StudioDataManager.Instance.VIEW_NAME)); } else if (_levelCfg.type == ConstInstanceZonesType.Field) { ViewManager.GoBackFrom(ViewName.DRESS_UP_FIGHT_VIEW); } else { // ViewManager.GoBackFrom(ViewName.STORY_CHAPTER_VIEW); ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, _levelCfg.chapterId, new object[] { ViewName.STORY_CHAPTER_LIST_VIEW }); } EquipDataCache.cacher.TakeOffAll(); this.Hide(); }); // ViewManager.Show(ViewName.STORY_CHAPTER_VIEW, StoryDataManager.currentChapter); } private void OnClickBtnHome() { Alert.Show("是否返回?") .SetLeftButton(true, "否").SetRightButton(true, "是", (object data) => { EquipDataCache.cacher.TakeOffAll(); GameController.GoBackToMainView(); }); } private void OnClickBtnClothingShop() { ViewManager.Show(ViewName.CLOTHING_SHOP_VIEW, new object[] { null, _fightCfg.scoreType }, null, false, true); } private void OnClickListType1Item(EventContext context) { // GuideController.HideGuide(); GObject typeItem = context.data as GObject; int order = (int)typeItem.data; DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[order - 1]; if (item1.subMenusArr.Length > 0) { this.showListType2(item1.subMenusArr); } else { if (this.showListParts(item1.type) == false) { PromptController.Instance.ShowFloatTextPrompt("未获得此类部件"); return; } this.showListParts(item1.type); } this.hideListType1(); UpdateListPartsSelected(); } private void OnClickListType2Item(EventContext context) { GObject typeItem = context.data as GObject; int order = (int)typeItem.data; DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[order - 1]; if (this.showListParts(item2.type) == false) { PromptController.Instance.ShowFloatTextPrompt("未获得此类部件"); return; } this.hideListType2(); } private void OnClickPartsListItem(EventContext context) { GObject listItem = context.data as GObject; int id = (int)listItem.data; if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG) { this.showListParts2(id); this.hideListParts(); EquipDataCache.cacher.PutOnSuitCfg(id, false, true); } else { EquipDataCache.cacher.TryCancelSuit(id); EquipDataCache.cacher.AddOrRemove(id, true); } UpdateListPartsSelected(); UpdateListSuitPartsSelected(); } private void OnClickSuitPartsListItem(EventContext context) { GObject listItem = (GObject)context.data as GObject; int id = (int)listItem.data; EquipDataCache.cacher.TryCancelSuit(id); EquipDataCache.cacher.AddOrRemove(id, true); UpdateListSuitPartsSelected(); } private void OnTouchPad() { if (this.currentListType == DressUpListType.List4) { this.hideListParts2(); this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true); } else if (this.currentListType == DressUpListType.List3) { if (_currentList2 != null) { this.showListType2(); } else { this.showListType1(); } this.hideListParts(); } else if (this.currentListType == DressUpListType.List2) { this.showListType1(); this.hideListType2(); } } private void OnClickBtnHint() { this.ShowTaskHint(); } private void OnClickBtnDelete() { EquipDataCache.cacher.TakeOffAll(); _ui.m_partsList.m_list.numItems = _currentList3.Count; _ui.m_partsList2.m_list.numItems = _currentList4.Count; } private void OnClickBtnClose() { _ui.m_groupTaskHint.visible = false; } private void OnClickBtnNext() { if (!EquipDataCache.cacher.CheckPutOnFinish()) { Alert.Show("只有换好衣服才能出门哦~") .SetRightButton(true, "好的"); return; } int _suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit(); ; if (_fightCfg.needItemId > 0 && (_suitId <= 0 && EquipDataCache.cacher.equipDatas.IndexOf(_fightCfg.needItemId) < 0 || _suitId > 0 && Array.IndexOf(SuitCfgArray.Instance.GetCfg(_suitId).partsArr, _fightCfg.needItemId) < 0) || _fightCfg.needSuitId > 0 && _suitId != _fightCfg.needSuitId) { Alert.Show("未穿戴必须品~").SetRightButton(true, "好的"); return; } if (CardDataManager.GetCardListByRarity(0).Count > 0) { ViewManager.Show(_fightCfg.scoreType); } else { StartCalculateScore(); } } private void StartCalculateScore() { //不可移动代码位置 bool hasFightTarget = _fightCfg.targetName != null && _fightCfg.targetName.Length > 0; if (_levelCfg.type == ConstInstanceZonesType.Field) { FieldFightDataManager.Instance.CurrentCardId = InstanceZonesDataManager.currentCardId; FieldFightDataManager.Instance.CurrentScoreType = InstanceZonesDataManager.currentScoreType; FieldFightDataManager.Instance.currentLevelCfgId = InstanceZonesDataManager.currentLevelCfgId; FieldFightDataManager.Instance.equipDatas = EquipDataCache.cacher.equipDatas; } if (hasFightTarget) { ViewManager.Show(ViewName.STORY_FIGHT_TARGET_VIEW); } else { ViewManager.Show(ViewName.STORY_FIGHT_SINGLE_VIEW); } this.Hide(); } private void OnClickBtnRecommend() { if (this.currentListType == DressUpListType.List4) { this.hideListParts2(); this.showListParts(ConstDressUpItemType.TAO_ZHUANG, true); } EquipDataCache.cacher.TryCancelSuit(_currentSuitId); InstanceZonesDataManager.usedRecommend = true; EquipDataCache.cacher.PutOnRecommendItems(); UpdateListPartsSelected(); UpdateListSuitPartsSelected(); } private void InitLists() { _ui.m_comListType2.m_listType.itemRenderer = ListType2Item; _ui.m_partsList.m_list.itemRenderer = ListPartsItem; _ui.m_partsList2.m_list.itemRenderer = ListParts2Item; listType1X = _ui.m_comListType1.target.x; partsListX = _ui.m_partsList.target.x - _ui.m_partsList.target.width; //一级菜单 _ui.m_comListType1.m_listType.itemRenderer = ListType1Item; } private void showListType1() { _currentList2 = null; currentListType = DressUpListType.List1; GTween.To(_ui.target.width, listType1X, 0.5f) .SetTarget(_ui.m_comListType1.target) .OnUpdate((GTweener t) => { _ui.m_comListType1.target.x = t.value.x; }); } private void hideListType1() { GTween.To(listType1X, _ui.target.width, 0.5f) .SetTarget(_ui.m_comListType1.target) .OnUpdate((GTweener t) => { _ui.m_comListType1.target.x = t.value.x; }); } private void showListType2(int[] menuStrArr = null) { currentListType = DressUpListType.List2; if (menuStrArr != null && menuStrArr.Length > 0) { int len = menuStrArr.Length; _currentList2 = menuStrArr.Clone() as int[]; _ui.m_comListType2.m_listType.RemoveChildrenToPool(); _ui.m_comListType2.m_listType.numItems = len; //_ui.m_listType2.ResizeToFit(_ui.m_listType2.numItems); float maxHeight = _ui.target.height - _ui.m_comListType2.m_listType.y - DressUpView.BOTTOM_BLANK; if (_ui.m_comListType2.m_listType.height > maxHeight) { _ui.m_comListType2.m_listType.height = maxHeight; } } GTween.To(_ui.target.width, listType1X, 0.5f) .SetTarget(_ui.m_comListType2.target) .OnUpdate((GTweener t) => { _ui.m_comListType2.target.x = t.value.x; }); } private void hideListType2() { GTween.To(listType1X, _ui.target.width, 0.5f) .SetTarget(_ui.m_comListType2.target) .OnUpdate((GTweener t) => { _ui.m_comListType2.target.x = t.value.x; }); } private bool showListParts(int type, bool selectItem = false) { _currentMenuType = type; UpdatePartsListSort(); if (_ui.m_partsList.m_list.numItems <= 0) return false; _ui.m_partsList.m_list.ResizeToFit(_ui.m_partsList.m_list.numItems); float maxHeight = _ui.m_partsList.target.height - _ui.m_partsList.m_list.y; if (_ui.m_partsList.m_list.height > maxHeight) { _ui.m_partsList.m_list.height = maxHeight; } if (selectItem) { int itemId = EquipDataCache.cacher.GetItemIdBuyType(_currentMenuType); if (itemId > 0) { int index = _currentList3.IndexOf(itemId); _ui.m_partsList.m_list.ScrollToView(index); } } currentListType = DressUpListType.List3; GTween.To(_ui.target.width, partsListX, 0.5f) .SetTarget(_ui.m_partsList) .OnUpdate((GTweener t) => { _ui.m_partsList.target.x = t.value.x; }); UpdateListPartsSelected(); return true; } private void OnComboBoxRarityChanged() { _scoreIndex = _ui.m_partsList.m_comboBoxRarity.selectedIndex; this.UpdatePartsListSort(); } private void UpdatePartsListSort() { if (_currentMenuType == 0) return; if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG) { _currentList3 = DressUpMenuSuitDataManager.GetSuitIDList(); if (_scoreIndex == SORT_BY_HIGH_SCORE) { _currentList3 = SuitUtil.SortSuitListByHighScore(_currentList3); } else if (_scoreIndex == SORT_BY_LOW_SCORE) { _currentList3 = SuitUtil.SortSuitListByLowScore(_currentList3); } else { _currentList3.Reverse(); } } else { _currentList3 = DressUpMenuItemDataManager.getItemDatasByType(_currentMenuType); if (_scoreIndex == SORT_BY_HIGH_SCORE) { _currentList3 = DressUpMenuItemDataManager.SortItemListByHighScore(_currentList3); } else if (_scoreIndex == SORT_BY_LOW_SCORE) { _currentList3 = DressUpMenuItemDataManager.SortItemListByLowScore(_currentList3); } else { _currentList3.Reverse(); } } if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search) { _currentList3 = DressUpMenuItemDataManager.DressSearch(_currentList3, _currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG); } else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter) { _currentList3 = DressUpMenuItemDataManager.DressFilter(_currentList3, _currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG); } //必穿品放在列表最前面 if (_fightCfg.needItemId > 0) { int index = _currentList3.IndexOf(_fightCfg.needItemId); if (index >= 0) { int item = _currentList3[index]; _currentList3.Remove(_currentList3[index]); _currentList3.Insert(0, item); } } else if (_fightCfg.needSuitId > 0) { int index = _currentList3.IndexOf(_fightCfg.needSuitId); if (index >= 0) { int item = _currentList3[index]; _currentList3.Remove(_currentList3[index]); _currentList3.Insert(0, item); } } _ui.m_partsList.m_list.RemoveChildrenToPool(); _ui.m_partsList.m_list.numItems = _currentList3.Count; } private void UpdateSuitPartsListSort() { if (_currentMenuType == 0) return; _currentList4 = new List(SuitCfgManager.Instance.GetSuitItems(_currentSuitId, true)); if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Search) { _currentList4 = DressUpMenuItemDataManager.DressSearch(_currentList4, false); } else if (DressUpMenuItemDataManager.dressFilterType == DressFilterType.Filter) { _currentList4 = DressUpMenuItemDataManager.DressFilter(_currentList4, false); } _ui.m_partsList2.m_list.RemoveChildrenToPool(); _ui.m_partsList2.m_list.numItems = _currentList4.Count; } private void hideListParts() { GTween.To(partsListX, _ui.target.width, 0.5f) .SetTarget(_ui.m_partsList) .OnUpdate((GTweener t) => { _ui.m_partsList.target.x = t.value.x; }); } private void showListParts2(int suitId) { _currentSuitId = suitId; _ui.m_partsList2.m_comboBoxRarity.items = new string[] { "高稀有度", "低稀有度", "最近获得" }; this.UpdateSuitPartsListSort(); _ui.m_partsList2.m_list.ResizeToFit(_ui.m_partsList2.m_list.numItems); float maxHeight = _ui.m_partsList2.target.height - _ui.m_partsList2.m_list.y;// - DressUpView.BOTTOM_BLANK; if (_ui.m_partsList2.m_list.height > maxHeight) { _ui.m_partsList2.m_list.height = maxHeight; } currentListType = DressUpListType.List4; GTween.To(_ui.target.width, partsListX, 0.5f) .SetTarget(_ui.m_partsList2) .OnUpdate((GTweener t) => { _ui.m_partsList2.target.x = t.value.x; }); } private void hideListParts2() { _currentMenuType = ConstDressUpItemType.TAO_ZHUANG; GTween.To(partsListX, _ui.target.width, 0.5f) .SetTarget(_ui.m_partsList2) .OnUpdate((GTweener t) => { _ui.m_partsList2.target.x = t.value.x; }); } private void ListType1Item(int index, GObject item) { UI_TypeItem typeItem = UI_TypeItem.Proxy(item); DressUpMenuItemCfg1 item1 = DressUpMenuItemCfg1Array.Instance.dataArray[index]; typeItem.m_icon.url = "ui://DressUp/hz_fenleitu_" + item1.id; //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconzi_" + item1.id; typeItem.target.data = item1.id; typeItem.m_imgNeed.visible = ItemUtil.CheckMenuType1(_fightCfg.needItemId, _fightCfg.needSuitId, item1.id); UI_TypeItem.ProxyEnd(); } private void ListType2Item(int index, GObject item) { UI_TypeItem typeItem = UI_TypeItem.Proxy(item); DressUpMenuItemCfg2 item2 = DressUpMenuItemCfg2Array.Instance.dataArray[_currentList2[index] - 1]; typeItem.m_icon.url = "ui://DressUp/hz_fenleituej_" + item2.id; //typeItem.m_imgTitle.url = "ui://DressUp/hz_iconziej_" + item2.id; typeItem.target.data = item2.id; var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId); typeItem.m_imgNeed.visible = subType == item2.type; UI_TypeItem.ProxyEnd(); } private void ListPartsItem(int index, GObject item) { UI_PartsListItem listItem = UI_PartsListItem.Proxy(item); int id = (int)_currentList3[index]; string iconRes = ""; string partName = ""; string ext = "png"; if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG) { SuitCfg suitCfg = SuitCfgArray.Instance.GetCfg(id); iconRes = suitCfg.res; partName = suitCfg.name; listItem.m_iconSelected.visible = false; listItem.m_txtScore.text = "" + SuitUtil.GetSuitScore(id); RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false, true); listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + suitCfg.rarity; } else { ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id); iconRes = itemCfg.res; partName = itemCfg.name; listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id); listItem.m_txtScore.text = "" + DressUpMenuItemDataManager.GetItemScore(id); listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity; RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false); ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType); } listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext); listItem.m_ScoreType.url = "ui://CommonGame/kp_sx_" + _fightCfg.scoreType; listItem.m_txtTitle.text = partName; listItem.target.data = id; listItem.m_imgNeed.visible = _fightCfg.needItemId == id || _fightCfg.needSuitId == id; UI_PartsListItem.ProxyEnd(); } private void ListParts2Item(int index, GObject item) { UI_PartsListItem listItem = UI_PartsListItem.Proxy(item); int id = (int)_currentList4[index]; string iconRes = ""; string partName = ""; string ext = "png"; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(id); iconRes = itemCfg.res; partName = itemCfg.name; listItem.m_iconSelected.visible = EquipDataCache.cacher.CheckDressUpItemIsOn(id); listItem.m_loaBorder.url = "ui://DressUp/hz_kuangk_" + itemCfg.rarity; RarityIconController.UpdateRarityIcon(listItem.m_rarity, id, false); ext = ItemUtil.GetItemResExt(itemCfg.itemType, itemCfg.subType); listItem.m_ScoreType.visible = true; // int mainScore; // int mainValuel; // ItemDataManager.GetMainScore(id, out mainScore, out mainValuel); listItem.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + _fightCfg.scoreType); listItem.m_txtScore.text = "" + DressUpMenuItemDataManager.GetItemScore(id, _fightCfg.scoreType); listItem.m_icon.url = ResPathUtil.GetIconPath(iconRes, ext); listItem.m_txtTitle.text = partName; listItem.target.data = id; // listItem.m_txtScore.visible = false; //listItem.m_ScoreType.visible = true; listItem.m_imgNeed.visible = false; UI_PartsListItem.ProxyEnd(); } private void UpdateListPartsSelected() { int count = _ui.m_partsList.m_list.numChildren; int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit(); for (int i = 0; i < count; i++) { UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList.m_list.GetChildAt(i)); int id = (int)listItem.target.data; if (_currentMenuType == (int)ConstDressUpItemType.TAO_ZHUANG) { listItem.m_iconSelected.visible = suitId > 0 && id == suitId; } else { bool isPutOn = EquipDataCache.cacher.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴 bool isSuit = !DressUpMenuItemDataManager.CheckIsSceneType(id) && suitId > 0 && SuitCfgManager.Instance.GetItemSuitId(id) == suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态) bool isSceneSuit = DressUpMenuItemDataManager.CheckIsSceneType(id) && suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴 listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit; } UI_PartsListItem.ProxyEnd(); } } private void UpdateListSuitPartsSelected() { int count = _ui.m_partsList2.m_list.numChildren; int suitId = DressUpMenuSuitDataManager.CheckCurDressIsSuit(); for (int i = 0; i < count; i++) { UI_PartsListItem listItem = UI_PartsListItem.Proxy(_ui.m_partsList2.m_list.GetChildAt(i)); int id = (int)listItem.target.data; bool isPutOn = EquipDataCache.cacher.CheckDressUpItemIsOn(id);//非套装金判断是否穿戴 bool isSuit = !DressUpMenuItemDataManager.CheckIsSceneType(id) && suitId > 0 && SuitCfgManager.Instance.GetItemSuitId(id) == suitId;//非场景类, 若当前穿戴套装要判断item是否属于套装(更换场景类不会改变套装穿戴状态) bool isSceneSuit = DressUpMenuItemDataManager.CheckIsSceneType(id) && suitId > 0 && isPutOn;//场景类, 若当前穿戴套装要判断item是否属已穿戴 listItem.m_iconSelected.visible = isPutOn || isSuit || isSceneSuit; UI_PartsListItem.ProxyEnd(); } } private void ShowTaskHint() { _ui.m_groupTaskHint.visible = true; _ui.m_txtHint.text = _levelCfg.hint; if (this._ui.m_txtHint.textHeight > this._ui.m_txtHint.textFormat.size * 2) { this._ui.m_txtHint.align = AlignType.Left; } else { this._ui.m_txtHint.align = AlignType.Center; } } private void UpdateScore() { _ui.m_txtScore.text = "" + EquipDataCache.cacher.score; // GuideController.TryGuideDressUpFightViewBtnNext(_ui.m_btnNext); } private void OnClickBtnSearch() { ViewManager.Show(false, new object[] { ViewName.DRESS_UP_VIEW }); } private void OnClickBtnAutoPlay() { EquipDataCache.cacher.autoPlay = _ui.m_btnAutoPlay.selected; } // private void OnClickBtnShow() // { // Timers.inst.Remove(SetBtnShowVisable); // _ui.m_c1.selectedIndex = 0; // _ui.m_btnHide.visible = true; // _ui.m_loaShow.visible = false; // _ui.m_btnShow.visible = false; // } // private void OnClickBtnHide() // { // _ui.m_c1.selectedIndex = 1; // _ui.m_btnHide.visible = false; // _ui.m_btnShow.visible = true; // _ui.m_loaShow.visible = true; // Timers.inst.Add(2f, 1, SetBtnShowVisable); // } // private void OnClickLoaShow() // { // Timers.inst.Remove(SetBtnShowVisable); // _ui.m_btnShow.alpha = 1; // Timers.inst.Add(2f, 1, SetBtnShowVisable); // _ui.m_btnShow.enabled = true; // } // private void SetBtnShowVisable(object param) // { // _ui.m_btnShow.enabled = false; // GTween.To(1, 0, 0.3f).SetTarget(_ui.m_btnShow, TweenPropType.Alpha); // } private void OnClickComNeed() { if (_fightCfg.needItemId <= 0 && _fightCfg.needSuitId <= 0) { return; } if (_fightCfg.needSuitId > 0) { ViewManager.Show(ViewName.SUIT_GUIDE_VIEW, new object[] { _ui.m_compNeed.target.data, new object[] { ViewName.DRESS_UP_FIGHT_VIEW, this.viewData } }, new object[] { ViewName.DRESS_UP_FIGHT_VIEW, this.viewData }); } else { ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { _ui.m_compNeed.target.data, new object[] { ViewName.DRESS_UP_FIGHT_VIEW, this.viewData }, 1 }); } } private void RenderListTagItem(int index, GObject obj) { UI.CommonGame.UI_ListTagItem item = UI.CommonGame.UI_ListTagItem.Proxy(obj); string[] tag = _fightCfg.needTagsArr[index].Split('_'); item.m_loaTag.url = ResPathUtil.GetCommonGameResPath("fzd_bqbq_" + tag[0]); item.m_txtTag.text = tag[1]; UI.CommonGame.UI_ListTagItem.ProxyEnd(); } private bool CheckListCount(int type) { if (type == (int)ConstDressUpItemType.TAO_ZHUANG) { return DressUpMenuSuitDataManager.GetSuitIDList().Count > 0; } else { return DressUpMenuItemDataManager.getItemDatasByType(type).Count > 0; } } private void SendLog() { var levelCfg = StoryLevelCfgArray.Instance.GetCfg(_levelID); switch (levelCfg.type) { case ConstInstanceZonesType.Story: LogServerHelper.SendNodeLog((int)PlayParticipationEnum.CHUN_ZHONG_LOU, 2); break; case ConstInstanceZonesType.Studio: StudioCfg studioCfg = StudioCfgArray.Instance.GetCfg(levelCfg.chapterId); if (studioCfg.funId == typeof(StudioMetalView).Name) { LogServerHelper.SendNodeLog((int)PlayParticipationEnum.JIN_SHU_XIU_FU, 2); } else if (studioCfg.funId == typeof(StudioFabricView).Name) { LogServerHelper.SendNodeLog((int)PlayParticipationEnum.ZHI_WU_XIU_FU, 2); } else if (studioCfg.funId == typeof(StudioPropertyView).Name) { LogServerHelper.SendNodeLog((int)PlayParticipationEnum.SHU_HUA_XIU_FU, 2); } break; } } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.FIGHT_TIPS) <= 0) { UpdateToCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; int syIndex = 0; int xzIndex = 0; int buyClothingIndex = 0; int buyClothingSubIndex = 0; int len = _ui.m_comListType1.m_listType.numChildren; for (int i = 0; i < len; i++) { UI_TypeItem item = UI_TypeItem.Proxy(_ui.m_comListType1.m_listType.GetChildAt(i)); if (item != null) { int menuID = (int)item.target.data; DressUpMenuItemCfg1 dressUpMenuItemCfg1 = DressUpMenuItemCfg1Array.Instance.GetCfg(menuID); if (GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 && dressUpMenuItemCfg1.type == ConstDressUpItemType.SHANG_YI) { syIndex = i; } if (GuideDataManager.IsGuideFinish(ConstGuideId.SINGLE_FIGHT) <= 0 && dressUpMenuItemCfg1.type == ConstDressUpItemType.XIA_ZHUANG) { xzIndex = i; } if (_fightCfg.needItemId > 0) { int type = ItemUtilCS.GetItemSubType(_fightCfg.needItemId); if (GuideDataManager.IsGuideFinish(ConstGuideId.BUY_CLOTHING) <= 0 && ItemUtil.CheckMenuType1(_fightCfg.needItemId, _fightCfg.needSuitId, dressUpMenuItemCfg1.id)) { buyClothingIndex = i; } } } UI_TypeItem.ProxyEnd(); } int len1 = _ui.m_comListType2.m_listType.numChildren; for (int i = 0; i < len1; i++) { UI_TypeItem item = UI_TypeItem.Proxy(_ui.m_comListType2.m_listType.GetChildAt(i)); if (item != null) { int menuID = (int)item.target.data; DressUpMenuItemCfg2 dressUpMenuItemCfg2 = DressUpMenuItemCfg2Array.Instance.GetCfg(menuID); var subType = ItemUtilCS.GetItemSubType(_fightCfg.needItemId); if (subType == dressUpMenuItemCfg2.type) { buyClothingSubIndex = i; } } UI_TypeItem.ProxyEnd(); } int djcId = 10476;//点绛唇Id int djcIndex = 0; int buyClothingIdIndex = 0; for (int i = 0; i < _currentList3.Count; i++) { if (_currentList3[i] == djcId) { djcIndex = i; } if (_fightCfg.needItemId > 0 && _currentList3[i] == _fightCfg.needItemId) { buyClothingIdIndex = i; } } GuideController.TryGuide(_ui.m_comListType1.m_listType, ConstGuideId.SINGLE_FIGHT, 3, "点击相应的分类,可以快速找到服饰", syIndex); GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.SINGLE_FIGHT, 4, "", 0, true, (int)_ui.m_partsList.m_list.y); GuideController.TryGuide(_ui.m_btnGuide, ConstGuideId.SINGLE_FIGHT, 5, "", -1, true, 0, 0, 0, false); GuideController.TryGuide(_ui.m_comListType1.m_listType, ConstGuideId.SINGLE_FIGHT, 6, "接下来把裙子也换上", xzIndex); GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.SINGLE_FIGHT, 7, "", 0, true, (int)_ui.m_partsList.m_list.y); GuideController.TryGuide(_ui.m_btnNext, ConstGuideId.SINGLE_FIGHT, 8, "穿着完毕,来验证一下,换上的服饰是否符合需求"); GuideController.TryGuide(_ui.m_compNeed.target, ConstGuideId.BUY_CLOTHING, 3, "当提示有“必需品”时,需要穿上对应物品才能通关", -1, true, 170); GuideController.TryGuide(_ui.m_comListType1.m_listType, ConstGuideId.BUY_CLOTHING, 7, "按照指示就可以找到必需品啦", buyClothingIndex); GuideController.TryGuide(_ui.m_comListType2.m_listType, ConstGuideId.BUY_CLOTHING, 8, "", buyClothingSubIndex); GuideController.TryGuide(_ui.m_partsList.m_list, ConstGuideId.BUY_CLOTHING, 9, "点击换上吧", buyClothingIdIndex, true, 170); GuideController.TryCompleteGuide(ConstGuideId.BUY_CLOTHING, 9); GuideController.TryGuide(_ui.m_btnHint, ConstGuideId.FIGHT_TIPS, 1, "这次换装需要获得别人的认可呢"); GuideController.TryCompleteGuide(ConstGuideId.FIGHT_TIPS, 1); } } }