using System.Collections.Generic; using FairyGUI; using UI.CommonGame; using UI.Main; using UnityEngine; namespace GFGGame { public class StoryCardChoose : BaseWindow { private UI_StoryCardChooseUI _ui; private List cardList = new List(); private static int _scoreType; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_StoryCardChooseUI.PACKAGE_NAME; _ui = UI_StoryCardChooseUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_listCard.SetVirtual(); _ui.m_listCard.itemRenderer = RenderListCardItem; _ui.m_btnCancel.onClick.Add(OnBtnCancelClick); _ui.m_btnConfirm.onClick.Add(OnBtnComfirmClick); _ui.m_listCard.onClickItem.Add(OnListCardItemClick); } protected override void OnShown() { base.OnShown(); _scoreType = (int)viewData; cardList = CardDataManager.CardDicToList(CardDataManager.GetCardDicByRarity(0)); cardList = SortCardList(cardList); _ui.m_listCard.numItems = cardList.Count; _ui.m_listCard.selectedIndex = 0; UpdateView(0); } private void UpdateView(int index) { int cardId = cardList[index].id; PassivitySkillCfg cfg = ScoreSystemData.Instance.GetShowSkillCfg(cardId); _ui.m_txtName.text = cfg == null ? "" : cfg.name; _ui.m_txtDiscribe.text = cfg == null ? "" : cfg.describe; _ui.m_loaScore.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + _scoreType); } private void RenderListCardItem(int index, GObject obj) { GButton item = obj as GButton; item.GetChild("txtName").asTextField.text = cardList[index].itemCfg.name; item.GetChild("comCardMask").asCom.GetChild("loaCard").asLoader.url = ResPathUtil.GetCardSmallPath(cardList[index].res); item.GetChild("txtLv").asTextField.text = string.Format("Lv.\n{0}", cardList[index].lv); item.GetChild("loaRarity").asLoader.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + (5 - cardList[index].itemCfg.rarity)); UI_ComStar comStar = UI_ComStar.Proxy(item.GetChild("comStar").asCom); comStar.m_c1.selectedIndex = cardList[index].star; } private void OnListCardItemClick(EventContext context) { UpdateView(_ui.m_listCard.selectedIndex); } private void OnBtnComfirmClick() { int cardId = cardList[_ui.m_listCard.selectedIndex].id; PassivitySkillCfg[] cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId); InstanceZonesDataManager.currentCardId = cfgs.Length > 0 ? cardId : -1; this.Hide(); EventAgent.DispatchEvent(ConstMessage.CARD_CHOOSE); } private static List SortCardList(List arrayList) { arrayList.Sort((CardData a, CardData b) => { int scoreA = ItemDataManager.GetItemScoreValue(a.id, _scoreType); int scoreB = ItemDataManager.GetItemScoreValue(b.id, _scoreType); if (scoreA < scoreB) { return 1; } else if (scoreA > scoreB) { return -1; } return string.Compare(a.itemCfg.res, b.itemCfg.res); }); return arrayList; } private void OnBtnCancelClick() { this.Hide(); } protected override void OnHide() { base.OnHide(); } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(_ui.m_listCard, ConstGuideId.SKILL_CARD_FIGHT, 1, "选择一张合适的词牌,增加过关战斗力", 0); GuideController.TryCompleteGuide(ConstGuideId.SKILL_CARD_FIGHT, 1); } } }