using FairyGUI; using System.Collections; using System.Collections.Generic; using UI.Card; using UI.CommonGame; using UnityEngine; namespace GFGGame { public class CardUpView : BaseWindow { private UI_CardUpUI _ui; private Dictionary _scores; private string _type; private int _lastNum; private int _curNum; private int _cardId; private string _fromUIType; private CardLvlCfg _cardLvCfg; private CardStarCfg _cardStarCfg; private int _mainScore = 0; private int _otherScore = 0; private int _itemCfgMainScore = 0; private EffectUI _effectUI1; private EffectUI _effectUI2; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_CardUpUI.PACKAGE_NAME; _ui = UI_CardUpUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; this.isfullScreen = true; //MakeFullScreen(_ui); _ui.target.onClick.Add(OnBackClick); _ui.m_listProperty.itemRenderer = RenderListPropertyItem; _ui.m_listLastProperty.itemRenderer = RenderListLastPropertyItem; _ui.m_listCardProperty.itemRenderer = RenderListCardPropertyItem; _ui.m_listLastCardProperty.itemRenderer = RenderListLastCardPropertyItem; } private void OnBackClick() { this.Hide(); } protected override void OnShown() { base.OnShown(); _scores = (Dictionary)(viewData as object[])[0]; _type = (string)(viewData as object[])[1]; _lastNum = (int)(viewData as object[])[2]; _curNum = (int)(viewData as object[])[3]; _cardId = (int)(viewData as object[])[4]; if ((viewData as object[]).Length > 5) _fromUIType = (string)(viewData as object[])[5]; if (_type == "lv") { _ui.m_c1.selectedIndex = 0; _ui.m_txtLast.text = string.Format("{0}级", _lastNum); _ui.m_txtNow.text = string.Format("{0}级", _curNum); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(_cardId); _cardLvCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(itemCfg.rarity, _lastNum); _cardStarCfg = null; _itemCfgMainScore = itemCfg.mainScore; _mainScore = 0; _otherScore = 0; for (int i = _lastNum; i < _curNum; i++) { CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfgByrarityAndcardLvl(itemCfg.rarity, i); _mainScore += cardLvCfg.mainScore; _otherScore += cardLvCfg.otherScore; } _ui.m_listProperty.numItems = _scores.Count; _ui.m_listLastProperty.numItems = _scores.Count; } else if (_type == "star") { _ui.m_c1.selectedIndex = 1; _ui.m_txtLast.text = string.Format("{0}星", _lastNum / 6); _ui.m_txtNow.text = string.Format("{0}星", _curNum / 6); _cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardIdAndstarLvl(_cardId, _lastNum); if (_cardStarCfg == null) ET.Log.Error("RenderListCardPropertyItemd _cardStarCfg 1 is null=" + _cardId + "==" + _lastNum); _cardLvCfg = null; _ui.m_listCardProperty.numItems = 1; _ui.m_listLastCardProperty.numItems = 1; } else { _ui.m_c1.selectedIndex = 2; _cardStarCfg = CardStarCfgArray.Instance.GetCfgBycardIdAndstarLvl(_cardId, _lastNum); if (_cardStarCfg == null) ET.Log.Error("RenderListCardPropertyItemd _cardStarCfg 2 is null=" + _fromUIType +"=="+ _cardId + "==" + _lastNum); _cardLvCfg = null; _ui.m_listCardProperty.numItems = 1; _ui.m_listLastCardProperty.numItems = 1; } Timers.inst.AddUpdate(CheckGuide); if (_type == "lv") _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSJ_Text"); else _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderTitle, "ui_hd", "GXSX_Text"); _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderBgCom, "ui_hd", "TC_Quad_ALL"); } private void RenderListLastCardPropertyItem(int index, GObject obj) { UI_ListScoreItem2 listItem = UI_ListScoreItem2.Proxy(obj); int score = 0; int typeIndex = 1; listItem.m_ArrowsType.selectedIndex = 2; if (_cardStarCfg.score1 > 0) { typeIndex = 1; score = _scores[typeIndex] - _cardStarCfg.score1; } else if (_cardStarCfg.score2 > 0) { typeIndex = 2; score = _scores[typeIndex] - _cardStarCfg.score2; } else if (_cardStarCfg.score3 > 0) { typeIndex = 3; score = _scores[typeIndex] - _cardStarCfg.score3; } else if (_cardStarCfg.score4 > 0) { typeIndex = 4; score = _scores[typeIndex] - _cardStarCfg.score4; } listItem.m_txtProperty.text = score.ToString(); listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (typeIndex)); UI_ListScoreItem2.ProxyEnd(); } private void RenderListLastPropertyItem(int index, GObject obj) { UI_ListScoreItem2 listItem = UI_ListScoreItem2.Proxy(obj); int score = 0; listItem.m_ArrowsType.selectedIndex = 1; if ((index + 1) == _itemCfgMainScore) score = _scores[index + 1] - _mainScore; else score = _scores[index + 1] - _otherScore; listItem.m_txtProperty.text = score.ToString(); listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (index + 1)); UI_ListScoreItem2.ProxyEnd(); } private void RenderListPropertyItem(int index, GObject obj) { UI_ListScoreItem2 listItem = UI_ListScoreItem2.Proxy(obj); listItem.m_txtProperty.text = _scores[index + 1].ToString(); listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (index + 1)); UI_ListScoreItem2.ProxyEnd(); } private void RenderListCardPropertyItem(int index, GObject obj) { UI_ListScoreItem2 listItem = UI_ListScoreItem2.Proxy(obj); if (_cardStarCfg == null) ET.Log.Error("RenderListCardPropertyItemd _cardStarCfg is null"); int typeIndex = 1; if (_cardStarCfg.score1 > 0) typeIndex = 1; else if (_cardStarCfg.score2 > 0) typeIndex = 2; else if (_cardStarCfg.score3 > 0) typeIndex = 3; else if (_cardStarCfg.score4 > 0) typeIndex = 4; _scores.TryGetValue(typeIndex, out var scoresValue); listItem.m_txtProperty.text = scoresValue.ToString(); listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + typeIndex); UI_ListScoreItem2.ProxyEnd(); } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(CheckGuide); EffectUIPool.Recycle(_effectUI1); _effectUI1 = null; EffectUIPool.Recycle(_effectUI2); _effectUI2 = null; } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0 || GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_STAR) <= 0) { UpdateToCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(null, ConstGuideId.UP_CARD_LV, 6, "升级成功啦", -1, true, 1500); GuideController.TryGuide(null, ConstGuideId.UP_CARD_STAR, 6, "升星成功啦", -1, true, 1500); } } }