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.GetCardListByRarity(0);//.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) { // CardData cardData = cardList[index]; _ui.m_loaScore.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + _scoreType); int cardId = cardList[index].id; _ui.m_txtName.text = ""; _ui.m_txtDiscribe.text = ""; PassivitySkillCfg cfg = ScoreSystemData.Instance.GetShowSkillCfg(cardId); if (cfg == null) return; int skillId = ScoreSystemData.Instance.GetShowSkillCfg(cardId).skillId; int skillLv = SkillDataManager.Instance.GetSkillLv(cardId, skillId); PassivitySkillLvlCfg skillLvCfg = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv, skillId); _ui.m_txtName.text = cfg.name; _ui.m_txtDiscribe.text = string.Format(cfg.describe, skillLvCfg.probability, skillLvCfg.count); } private void RenderListCardItem(int index, GObject obj) { CardData cardData = cardList[index]; GButton item = obj as GButton; item.GetChild("txtName").asTextField.text = cardData.itemCfg.name; item.GetChild("comCardMask").asCom.GetChild("loaCard").asLoader.url = ResPathUtil.GetCardSmallPath(cardData.resources[cardData.resIndex]); item.GetChild("txtLv").asTextField.text = string.Format("Lv.\n{0}", cardData.lv); item.GetChild("loaRarity").asLoader.url = ResPathUtil.GetCommonGameResPath("kp_sxing_x_" + cardData.itemCfg.rarity); UI_ComStar comStar = UI_ComStar.Proxy(item.GetChild("comStar").asCom); comStar.m_c1.selectedIndex = cardData.star; } private void OnListCardItemClick(EventContext context) { UpdateView(_ui.m_listCard.selectedIndex); } private void OnBtnComfirmClick() { int cardId = cardList[_ui.m_listCard.selectedIndex].id; List cfgs = PassivitySkillCfgArray.Instance.GetCfgs(cardId); InstanceZonesDataManager.currentCardId = cfgs.Count > 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); } } }