using System; using System.Collections.Generic; using ET; using FairyGUI; using UI.Arena; using UI.CommonGame; using UI.DressUp; using UnityEngine; namespace GFGGame { public class ArenaDressInfoView : BaseWindow { private UI_ArenaDressInfoUI _ui; private GameObject _scenePrefab; private GameObject _sceneObject; private List _roleDatas;//可能是自己的搭配,也可能是对方玩家的搭配 // private List _robotDatas;//对方机器人搭配 private int _themeIndex = 0; private List _itemList; private string[] _tags; private int _roleType = 0;//FightRoleType public override void Dispose() { if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ArenaUI.PACKAGE_NAME; _ui = UI_ArenaDressInfoUI.Create(); this.viewCom = _ui.target; isfullScreen = true; _ui.m_c2.onChanged.Add(OnThemeChange); _ui.m_btnBack.onClick.Add(OnClickBtnBack); _ui.m_btnDress.onClick.Add(OnBtnDressClick); _ui.m_btnRecommend.onClick.Add(OnBtnRecommendClick); _ui.m_list.itemRenderer = RenderListItem; _scenePrefab = GFGAsset.Load(ResPathUtil.GetPrefabPath("SceneDressUpFight")); // _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("gzs_bjbj"); } protected override void AddEventListener() { base.AddEventListener(); } protected override void OnShown() { base.OnShown(); _roleType = (int)(this.viewData as object[])[0]; _themeIndex = (int)(this.viewData as object[])[1]; _roleDatas = (this.viewData as object[])[2] as List; // _robotDatas = (this.viewData as object[])[3] as List; _ui.m_c1.selectedIndex = _roleType; if (_sceneObject == null) { _sceneObject = GameObject.Instantiate(_scenePrefab); MyDressUpHelper.dressUpObj.setSceneObj(_sceneObject, false, false); } } protected override void OnHide() { base.OnHide(); if (_sceneObject != null) { GameObject.Destroy(_sceneObject); _sceneObject = null; } } protected override void RemoveEventListener() { base.RemoveEventListener(); } private void OnClickBtnBack() { ViewManager.GoBackFrom(typeof(ArenaDressInfoView).FullName); } private void OnThemeChange() { _themeIndex = _ui.m_c2.selectedIndex; if (_roleType == FightRoleType.MINE) { ArenaDataManager.Instance.SelectThemeIndex = _themeIndex; } UpdateView(); } private void OnBtnDressClick() { ViewManager.Show(null, new object[] { _roleType, _themeIndex, _roleDatas, null }, true); } private void OnBtnRecommendClick() { for (int i = 0; i < ArenaDataManager.Instance.ThemeList.Count; i++) { int scoreType = ArenaDataManager.Instance.ThemeList[i]; FightRoleData roleData = ArenaDataManager.Instance.DressupList[i]; roleData.itemList = ArenaDataManager.Instance.GetRecommentItemList(scoreType, roleData.tags); roleData.cardId = FightDataManager.Instance.SortCardList(CardDataManager.GetCardListByRarity(0), roleData.itemList, scoreType)[0].id; } _roleDatas = ArenaDataManager.Instance.DressupList; UpdateView(); } private void UpdateView() { if (_roleDatas != null) { _itemList = _roleDatas[_themeIndex].itemList; _tags = _roleDatas[_themeIndex].tags; UpdateValueInfo(); UpdateCardInfo(_roleDatas[_themeIndex].cardId); } // else // { // _itemList = new List(SuitCfgArray.Instance.GetSuitItems(_robotDatas[_themeIndex].showSuitId)); // _tags = _roleDatas[_themeIndex].tags; // UpdateRobotValueInfo(); // UpdateCardInfo(_roleDatas[_themeIndex].cardId); // } MyDressUpHelper.dressUpObj.PutOnItemList(_itemList); _ui.m_list.numItems = _itemList.Count; } private void UpdateValueInfo() { UI_ComValueInfo comValueInfo = UI_ComValueInfo.Proxy(_ui.m_comValueInfo.target); comValueInfo.m_scoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + _roleDatas[_themeIndex].scoreType); comValueInfo.m_txtScore.text = FightDataManager.Instance.GetScore(_roleDatas[_themeIndex].itemScoreList).ToString(); comValueInfo.m_txtFightScore.text = ArenaDataManager.Instance.GetAllFightScore(_roleType, _roleDatas, null).ToString(); comValueInfo.m_txtTagScore.text = FightDataManager.Instance.GetTagsScore(_itemList, _tags).ToString(); int count = FightDataManager.Instance.GetTagsCount(_itemList, _tags); comValueInfo.m_c1.selectedIndex = Math.Min(count, ArenaTagCfgArray.Instance.dataArray.Length); if (_tags.Length > 0) { ItemUtil.UpdateTag(comValueInfo.m_comTag, _tags[0]); } UI_ComValueInfo.ProxyEnd(); } private void UpdateCardInfo(int cardId) { if (cardId == 0) { _ui.m_comCard.m_c1.selectedIndex = 0; return; } _ui.m_comCard.m_c1.selectedIndex = 1; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardId); _ui.m_comCard.m_comCard.m_loaCard.url = ResPathUtil.GetCardSmallPath(itemCfg.res); _ui.m_comCard.m_loaScore.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + ArenaDataManager.Instance.ThemeList[_themeIndex]); RarityIconController.UpdateRarityIcon(_ui.m_comCard.m_loaRarity, cardId, false); } private void RenderListItem(int index, GObject obj) { UI_PartsListItem item = UI_PartsListItem.Proxy(obj); item.m_comAxtionSelect.target.visible = false; item.m_imgNeed.visible = false; item.m_imgNew.visible = false; item.m_iconSelected.visible = true; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_itemList[index]); item.m_txtTitle.text = itemCfg.name; item.m_ScoreType.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + ArenaDataManager.Instance.ThemeList[_themeIndex]); RarityIconController.UpdateRarityIcon(item.m_ScoreType, _itemList[index], false); UI_PartsListItem.ProxyEnd(); } } }