using FairyGUI; using UI.Card; using UI.CommonGame; using UI_ComConsume = UI.Card.UI_ComConsume; using System.Collections.Generic; using UnityEngine; using System.Timers; using System.Collections; using System.Linq; using VEngine; using ET; namespace GFGGame { public class CardFosterView : BaseView { private UI_CardFosterUI _ui; private UI_ComFosterBottom _comFosterBottom; private ValueBarController _valueBarController; private UI_ComCostCurrency _comLvConsumeGold; private UI_ComCostCurrencyWithHas _comStarCousumeGold; private CardData _cardData = new CardData(); private int _selectTab = 0; private GameObject _cardObj; private GoWrapper _wrapper; private GObject _consumeSelectItem;//选中的材料item private int _consumeSelectIndex = 0;//0为减,1为加 private List itemsCount; private int[] upgradeCardItemsArr = GlobalCfgArray.globalCfg.upgradeCardItemsArr; //private Timer _timer; private const float _delay = 300; private double _selectTimeCount = 0;//长按时间 private int _showLv = 0; private int _showExp = 0; private float _cardScale = 0.8f; private bool showCard = false; private bool playAni = false; private Vector2 comCardImgResInitSize; public override void Dispose() { if (_valueBarController != null) { _valueBarController.Dispose(); _valueBarController = null; } SceneController.DestroyObjectFromView(_cardObj, _wrapper); if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); _ui = UI_CardFosterUI.Create(); viewCom = _ui.target; isfullScreen = true; _comFosterBottom = _ui.m_ComFosterBottom; //公共组件:返回,页签,属性列表 _ui.m_ComFosterTop.m_btnback.onClick.Add(OnClickBtnBack); _comFosterBottom.m_ctrlTab.onChanged.Add(OnChangeCtrlTab); _comFosterBottom.m_listProperty.itemRenderer = RenderListPropertyItem; //卡面和故事界面 _comFosterBottom.m_btnStory.onClick.Add(OnClickBtnStroy); //升级升星按钮 _comFosterBottom.m_btnUpLv.onClick.Add(OnClickBtnUpLv); _comFosterBottom.m_btnAll.onClick.Add(OnClcikBtnAll); _comFosterBottom.m_btnUpStar.onClick.Add(OnClickBtnUpStar); //升级升星消耗材料列表 _comFosterBottom.m_listLvConsume.itemRenderer = RenderListLvConsumeItem; _comFosterBottom.m_listStarConsume.itemRenderer = RenderListStarConsumeItem; _comFosterBottom.m_listSkill.itemRenderer = RenderListSkilItem; //满星级后卡面列表 _comFosterBottom.m_listShowCard.itemRenderer = RenderListShowCardItem; _comFosterBottom.m_listShowCard.onClickItem.Add(OnClickShowCardListItem); // _ui.m_loaCard.onClick.Add(OnClickLoaCard); _ui.m_loaListener1.onClick.Add(OnClickLoaCard); _ui.m_comImgCard.target.onClick.Add(OnClickLoaCard); _ui.m_loaListener.onClick.Add(OnClickComCard); _ui.m_comCard.target.onClick.Add(OnClickComCard); } protected override void OnShown() { base.OnShown(); _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("hc_bj_1"); _cardData = CardDataManager.GetCardDataById((this.viewData as CardData).id); playAni = false; comCardImgResInitSize = Vector2.zero; _cardScale = _ui.target.height * 0.8f / _ui.target.initHeight; showCard = false; Input.multiTouchEnabled = false; this.ClearItemsCountList(); this.UpdateCommon(); this.UpdateNormal(); this.UpdateCardRes(); this.UpdateUpLvView(); this.UpdateUpStarView(); this.UpdateUpSkillView(); _comFosterBottom.m_ctrlTab.selectedIndex = this._selectTab; Timers.inst.AddUpdate(CheckGuide); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.CARD_UP_SKILL, UpdateUpSkillView); EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateItemChange); } private void ClearItemsCountList() { if (itemsCount == null) { itemsCount = new List(); } itemsCount.Clear(); for (int i = 0; i < upgradeCardItemsArr.Length; i++) { itemsCount.Add(0); } } private void UpdateNormal() { _comFosterBottom.m_txtName.text = _cardData.itemCfg.name; _comFosterBottom.m_btnStory.visible = CardDataManager.GetStoryCfgsById(_cardData.id).Count > 0 ? true : false; _comFosterBottom.m_btnUpLv.grayed = true; _comFosterBottom.m_btnUpLv.GetChild("ani").asMovieClip.visible = false; _comFosterBottom.m_loaRarity.url = ResPathUtil.GetCommonGameResPath("kp_sx_da_" + _cardData.itemCfg.rarity); _valueBarController = new ValueBarController(_ui.m_ComFosterTop.m_comValueBar, 5); _valueBarController.OnShown(); } private void UpdateCommon() { _comFosterBottom.m_listProperty.numItems = _cardData.scores.Count; _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); _comLvConsumeGold.m_txtNeed.text = "0"; UI_ComCostCurrency.ProxyEnd(); } private void UpdateCardRes() { if (_cardObj != null) { GameObject.Destroy(_cardObj); _cardObj = null; } string resPath = ResPathUtil.GetCardAnimationPath(_cardData.resources[_cardData.resIndex]); if (Versions.Contains(resPath)) { SceneController.AddObjectToView(_cardObj, _wrapper, _ui.m_comCard.m_comCardHolder.m_holder, resPath, out _cardObj, out _wrapper); } if (_cardObj != null) { _ui.m_c1.selectedIndex = 1; _ui.m_comCard.target.scrollPane.SetPercX(0.5f, false); _ui.m_comCard.target.SetScale(_cardScale, _cardScale); } else { _ui.m_c1.selectedIndex = 0; if (comCardImgResInitSize == Vector2.zero) { _ui.m_comImgCard.m_ComCardImgRes.m_loaCard.url = ResPathUtil.GetCardPath(_cardData.resources[_cardData.resIndex]); GLoader loaCard = _ui.m_comImgCard.m_ComCardImgRes.m_loaCard; float scale = _ui.target.height * 0.8f / loaCard.initHeight; comCardImgResInitSize = new Vector2(loaCard.initWidth * scale, loaCard.initHeight * scale); _ui.m_comImgCard.target.scrollPane.SetPercX(0.5f, false); _ui.m_comImgCard.m_ComCardImgRes.target.size = comCardImgResInitSize; } } } private void RenderListPropertyItem(int index, GObject obj) { UI_ListPropertyItem listItem = UI_ListPropertyItem.Proxy(obj); listItem.m_txtProperty.text = _cardData.scores[index + 1].ToString(); listItem.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (index + 1)); UI_ListPropertyItem.ProxyEnd(); } /***********************************************************升级***************************************************/ private void UpdateUpLvView(bool isPreview = false, int lv = 0, int exp = 0) { // _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); _showLv = isPreview == true ? lv : _cardData.lv; _showExp = isPreview == true ? exp : _cardData.exp; CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity); _comFosterBottom.m_barLv.max = cardLvCfg.needExp; _comFosterBottom.m_barLv.value = _showExp; int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl; _comFosterBottom.m_txtMaxLv.text = maxLv.ToString(); _comFosterBottom.m_txtCurLv.text = StringUtil.GetColorText(_showLv.ToString(), _showLv < maxLv ? "#D27869" : "#7D6956"); _comFosterBottom.m_txtMaxExp.text = cardLvCfg.needExp.ToString(); _comFosterBottom.m_txtCurExp.text = _showExp.ToString(); // = "0"; _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); _comFosterBottom.m_btnUpLv.grayed = _comLvConsumeGold.m_txtNeed.text == "0" ? true : false; UI_ComCostCurrency.ProxyEnd(); _comFosterBottom.m_btnUpLv.GetChild("ani").asMovieClip.visible = false;// !_comFosterBottom.m_btnUpLv.grayed; _comFosterBottom.m_ctrlFullLv.selectedIndex = CardDataManager.isFullLv(_cardData.id, _cardData.lv, false) ? 1 : 0; if (isPreview == true) { return; } _comFosterBottom.m_listLvConsume.numItems = upgradeCardItemsArr.Length; } private void RenderListLvConsumeItem(int index, GObject obj) { UI_ComConsume listItem = UI_ComConsume.Proxy(obj); CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_cardData.lv, _cardData.itemCfg.rarity); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[index]); listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg); listItem.m_txtNum.text = ItemDataManager.GetItemNum(itemCfg.id).ToString(); listItem.m_txtUseCount.text = "0"; listItem.target.data = index; if (listItem.m_btnMinus.data == null) { listItem.m_btnMinus.onTouchBegin.Add(OnClickItemConsumsBegin); listItem.m_btnMinus.onTouchEnd.Add(OnClickItemLvConsumsEnd); } if (listItem.m_loaBg.data == null) { listItem.m_loaBg.onTouchBegin.Add(OnClickItemConsumsBegin); listItem.m_loaBg.onTouchEnd.Add(OnClickItemLvConsumsEnd); } listItem.m_btnMinus.data = 0; listItem.m_loaBg.data = 1; UI_ComConsume.ProxyEnd(); } private void OnClickItemConsumsBegin(EventContext context) { // GObject obj, int type GObject sender = context.sender as GObject; int type = (int)sender.data; GObject obj = sender.parent; UI_ComConsume listItem = UI_ComConsume.Proxy(obj); int index = (int)listItem.target.data; int itemId = upgradeCardItemsArr[index]; _consumeSelectItem = obj; _consumeSelectIndex = type; if (type == 1) { if (ItemDataManager.GetItemNum(itemId) == 0) { ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } }); } } //_timer.Start(); Timers.inst.Add(0.3f, 0, OnTimedEvent); } private void OnTimedEvent(object param) { _selectTimeCount += _delay; if (_selectTimeCount >= 900)//大于900毫秒才算长按 { if (_consumeSelectIndex == 0) { UI_ComConsume listItem = UI_ComConsume.Proxy(_consumeSelectItem); if (!CommonUtil.Instance.CheckPointIsOnComponent(listItem.m_btnMinus, CommonUtil.Instance.GetMouseV2Point())) { Timers.inst.Remove(OnTimedEvent); return; } this.OnClickBtnMinus(_consumeSelectItem); } else { if (!CommonUtil.Instance.CheckPointIsOnComponent(_consumeSelectItem, CommonUtil.Instance.GetMouseV2Point())) { Timers.inst.Remove(OnTimedEvent); return; } this.OnClickBtnPlusLvConsume(_consumeSelectItem); } } } private void OnClickItemLvConsumsEnd() { //_timer.Stop(); Timers.inst.Remove(OnTimedEvent); _selectTimeCount = 0; if (_consumeSelectIndex == 0) { this.OnClickBtnMinus(_consumeSelectItem); } else { this.OnClickBtnPlusLvConsume(_consumeSelectItem); } } //返回值为此材料是否可继续消耗此材料继续升级 private bool OnClickBtnPlusLvConsume(GObject obj, bool showTips = true) { UI_ComConsume listItem = UI_ComConsume.Proxy(obj); // ItemCfg itemCfg = (listItem.target.data as ItemCfg); int index = (int)listItem.target.data; int itemId = upgradeCardItemsArr[index]; if (itemsCount[index] == ItemDataManager.GetItemNum(itemId)) { Timers.inst.Remove(OnTimedEvent); return false; } int maxLv = CardRarityCfgArray.Instance.GetCfg(_cardData.itemCfg.rarity).maxCardLvl; int needExp = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity).needExp; if (_showLv == maxLv && _comFosterBottom.m_barLv.value >= needExp) { Timers.inst.Remove(OnTimedEvent); if (showTips == true) { PromptController.Instance.ShowFloatTextPrompt("已达到最大等级"); } return false; } itemsCount[index] = itemsCount[index] + 1; listItem.m_txtUseCount.text = itemsCount[index].ToString(); this.UpdatePreView(); return true; } private void OnClickBtnMinus(GObject obj) { UI_ComConsume listItem = UI_ComConsume.Proxy(obj); int index = (int)listItem.target.data; // int itemId = upgradeCardItemsArr[index]; // string count = listItem.m_txtUseCount.text; if (itemsCount[index] == 0) { Timers.inst.Remove(OnTimedEvent); return; } itemsCount[index] = itemsCount[index] - 1; listItem.m_txtUseCount.text = itemsCount[index].ToString(); this.UpdatePreView(); } private void UpdatePreView() { int count = 0;//消耗金币数量 int hasExp = 0;//消耗材料提升的总经验 for (int i = 0; i < itemsCount.Count; i++) { // UI_ComConsume listItem = UI_ComConsume.Proxy(_comFosterBottom.m_listLvConsume.GetChildAt(i)); // if (int.Parse(listItem.m_txtUseCount.text) == 0) { continue; } if (itemsCount[i] == 0) continue; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[i]); count += itemCfg.cardUpLvGoldArr[1] * itemsCount[i]; hasExp += itemCfg.cardUpLvExp * itemsCount[i]; } _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); _comLvConsumeGold.m_txtNeed.text = count.ToString(); UI_ComCostCurrency.ProxyEnd(); int previewLv = 0; int previewExp = 0; CardDataManager.GetPreViewLvAndExp(_cardData.itemCfg.rarity, _cardData.lv, _cardData.exp, hasExp, out previewLv, out previewExp); this.UpdateUpLvView(true, previewLv, previewExp); } private void OnClcikBtnAll() { for (int i = 0; i < itemsCount.Count; i++) { int itemNum = ItemDataManager.GetItemNum(upgradeCardItemsArr[i]); for (int j = 0; j < itemNum; j++) { if (this.OnClickBtnPlusLvConsume(_comFosterBottom.m_listLvConsume.GetChildAt(i), false) == false) { break; } } } } private void OnClickBtnUpLv() { int itemMoneyId = ItemCfgArray.Instance.GetCfg(upgradeCardItemsArr[0]).cardUpLvGoldArr[0]; _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); int itemMoneyNum = int.Parse(_comLvConsumeGold.m_txtNeed.text); UI_ComCostCurrency.ProxyEnd(); if (itemMoneyNum > ItemDataManager.GetItemNum(itemMoneyId)) { ItemUtil.AddGold(itemMoneyNum - ItemDataManager.GetItemNum(itemMoneyId), UpLv); } else { this.UpLv(); } } private async void UpLv() { // itemsCount.Clear(); int allConsume = 0; for (int i = 0; i < itemsCount.Count; i++) { allConsume += itemsCount[i]; } if (allConsume == 0) { PromptController.Instance.ShowFloatTextPrompt("未选中任何材料"); return; } if (CardDataManager.isFullLv(_cardData.id, _cardData.lv) == false) { int lv = _cardData.lv; bool result = await CardSProxy.UpgradeCardLvl(_cardData.id, itemsCount); if (result) { if (_showLv - lv >= 1) { // this._selectTab = _comFosterBottom.m_ctrlTab.selectedIndex; ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _cardData.scores, "lv", lv, _showLv }, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData }); } this.UpdateCommon(); this.UpdateUpLvView(); this.ClearItemsCountList(); LogServerHelper.SendNodeLog((int)PlayParticipationEnum.CI_PAI, 2); } } } /***********************************************************升星***************************************************/ private void UpdateUpStarView() { CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star); _comFosterBottom.m_comStar.m_c1.selectedIndex = _cardData.star; _comFosterBottom.m_comStar.m_c2.selectedIndex = 5; if (CardDataManager.isFullStar(_cardData.id, _cardData.star, false)) { _comFosterBottom.m_ctrlFullStar.selectedIndex = 1; _comFosterBottom.m_listShowCard.data = _cardData.resources; _comFosterBottom.m_listShowCard.numItems = _cardData.resources.Count; return; } else { _comFosterBottom.m_ctrlFullStar.selectedIndex = 0; _comFosterBottom.m_btnUpStar.data = 0;//data 0:可以升级,1:材料不足 // int costHas = ItemDataManager.GetItemNum(cardStarCfg.costID); // int costNeed = cardStarCfg.costNum; // _comStarCousumeGold.m_txtHas.text = costHas.ToString(); // _comStarCousumeGold.m_txtNeed.text = costNeed.ToString(); _comStarCousumeGold = UI_ComCostCurrencyWithHas.Proxy(_comFosterBottom.m_comStarCousumeGold); ItemUtil.SetItemNumAndNeedNum(_comStarCousumeGold.target, cardStarCfg.costID, cardStarCfg.costNum); UI_ComCostCurrencyWithHas.ProxyEnd(); _comFosterBottom.m_listStarConsume.data = cardStarCfg; _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length; _comFosterBottom.m_comTips.visible = _cardData.lv < cardStarCfg.needLv ? true : false; UI_ComTips comTips = UI_ComTips.Proxy(_comFosterBottom.m_comTips); comTips.m_txtTips.text = _comFosterBottom.m_comTips.visible == true ? string.Format("需等级达到{0}级", cardStarCfg.needLv) : ""; _comFosterBottom.m_btnUpStar.grayed = int.Parse(_comFosterBottom.m_btnUpStar.data.ToString()) == 1 ? true : false; _comFosterBottom.m_btnUpStar.GetChild("ani").asMovieClip.visible = false;// !_comFosterBottom.m_btnUpStar.grayed; } } private void RenderListStarConsumeItem(int index, GObject obj) { UI_ComStarConsume listItem = UI_ComStarConsume.Proxy(obj); CardStarCfg cardStarCfg = listItem.target.parent.data as CardStarCfg; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(cardStarCfg.materiarsArr[index][0]); listItem.m_loaItem.url = ResPathUtil.GetIconPath(itemCfg); int needCount = cardStarCfg.materiarsArr[index][1]; int hasCount = ItemDataManager.GetItemNum(cardStarCfg.materiarsArr[index][0]); listItem.m_txtNeedCount.text = needCount.ToString();// StringUtil.GetColorText(needCount.ToString(), hasCount < needCount ? "#D27869" : "#FDF3D7"); ; listItem.m_txtHasCount.text = StringUtil.GetColorText(hasCount.ToString(), hasCount < needCount ? "#D27869" : "#FDF3D7"); //; hasCount.ToString(); listItem.m_btnPlus.visible = false; if (listItem.target.data == null) { listItem.target.onClick.Add(() => OnClickBtnPlusStarConsum(index)); } // listItem.m_btnPlus.data = cardStarCfg.materiarsArr[index][0]; listItem.target.data = cardStarCfg.materiarsArr[index][0]; if (hasCount < needCount) { //材料不足显示加号 _comFosterBottom.m_btnUpStar.data = 1; listItem.m_btnPlus.visible = true; } } private void RenderListShowCardItem(int index, GObject obj) { GButton listItem = obj as GButton; GLoader loaStarCard = UI_ComStarCard.Proxy(listItem.GetChild("ComStarCard")).m_loaStarCard; // string res = (listItem.parent.data as List)[index]; if (index == _cardData.resIndex) { _comFosterBottom.m_listShowCard.selectedIndex = index; } loaStarCard.url = ResPathUtil.GetCardSmallPath(_cardData.resources[index]); listItem.data = index; } private async void OnClickShowCardListItem(EventContext context) { int resIndex = (int)(context.data as GObject).data; if (resIndex != _cardData.resIndex) { bool result = await CardSProxy.ChangeCardRes(_cardData.id, resIndex); if (result) { this.UpdateCommon(); this.UpdateCardRes(); } } } private void OnClickBtnPlusStarConsum(int index) { int itemId = int.Parse(UI_ComStarConsume.Proxy(_comFosterBottom.m_listStarConsume.GetChildAt(index)).target.data.ToString()); ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData } }); } private void OnClickBtnUpStar() { CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star); if (_cardData.lv < cardStarCfg.needLv) { PromptController.Instance.ShowFloatTextPrompt("等级不足"); return; } if (CardDataManager.isFullStar(_cardData.id, _cardData.star) == true) { return; } int state = int.Parse(_comFosterBottom.m_btnUpStar.data.ToString()); if (state == 1) { PromptController.Instance.ShowFloatTextPrompt("材料不足"); return; } int costHas = ItemDataManager.GetItemNum(cardStarCfg.costID); int costNeed = cardStarCfg.costNum; if (costHas < costNeed) { ItemUtil.AddGold(costNeed - costHas, UpStar); } else { this.UpStar(); } } private async void UpStar() { CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star); bool result = await CardSProxy.UpgradeCardStar(_cardData.id); if (result) { this.UpdateCommon(); this.UpdateUpStarView(); // this._selectTab = _comFosterBottom.m_ctrlTab.selectedIndex; ViewManager.Show(ViewName.CARD_UP_VIEW, new object[] { _cardData.scores, "star", _cardData.star - 1, _cardData.star }, new object[] { ViewName.CARD_FOSTER_VIEW, _cardData }); LogServerHelper.SendNodeLog((int)PlayParticipationEnum.CI_PAI, 2); } } /***********************************************************升技能***************************************************/ private void UpdateUpSkillView() { _comFosterBottom.m_listSkill.numItems = PassivitySkillCfgArray.Instance.GetCfgs(_cardData.id).Count; } private void RenderListSkilItem(int index, GObject obj) { UI_ListSkillItem item = UI_ListSkillItem.Proxy(obj); PassivitySkillCfg skillCfg = PassivitySkillCfgArray.Instance.GetCfgs(_cardData.id)[index]; int skillLv = SkillDataManager.Instance.GetSkillLv(_cardData.id, skillCfg.skillId); CardData data = CardDataManager.GetCardDataById(InstanceZonesDataManager.currentCardId); item.m_comSkill.m_loaSkill.url = ResPathUtil.GetCardSmallPath(_cardData.resources[_cardData.resIndex]); item.m_txtName.text = skillCfg.name; item.m_txtLv.text = string.Format("{0}级", skillLv); item.m_btnUp.visible = PassivitySkillLvlCfgArray.Instance.GetCfg(skillLv + 1, skillCfg.skillId) != null;//? skillLv == skillScoreCfgs.Count ? false : true; if (item.m_btnUp.data == null) { item.m_btnUp.onClick.Add(() => { ViewManager.Show(new object[] { _cardData.id, skillCfg.skillId }); }); } } private void UpSkill() { } private void OnClickLoaCard() { if (playAni) return; playAni = true; float scale = _ui.target.height / comCardImgResInitSize.y; if (!showCard) { _ui.m_loaListener1.visible = false; GTween.To(_ui.m_comImgCard.m_ComCardImgRes.target.size, comCardImgResInitSize * scale, 0.5f).SetTarget(_ui.m_comImgCard.m_ComCardImgRes).OnUpdate((GTweener t) => { _ui.m_comImgCard.m_ComCardImgRes.target.size = t.value.vec2; }); GTween.To(_ui.m_comImgCard.target.scrollPane.posX, ((comCardImgResInitSize * scale).x - _ui.target.width) / 2, 0.5f).SetTarget(_ui.m_comImgCard.target.scrollPane).OnUpdate((GTweener t) => { _ui.m_comImgCard.target.scrollPane.posX = t.value.x; }); _ui.m_t0.Play(() => { playAni = false; }); showCard = true; } else { // _ui.target.touchable = false; _ui.m_loaListener1.visible = true; GTween.To(_ui.m_comImgCard.m_ComCardImgRes.target.size, comCardImgResInitSize, 0.5f).SetTarget(_ui.m_comImgCard.m_ComCardImgRes).OnUpdate((GTweener t) => { _ui.m_comImgCard.m_ComCardImgRes.target.size = t.value.vec2; }); GTween.To(_ui.m_comImgCard.target.scrollPane.posX, (comCardImgResInitSize.x - _ui.target.width) / 2, 0.5f).SetTarget(_ui.m_comImgCard.target.scrollPane).OnUpdate((GTweener t) => { _ui.m_comImgCard.target.scrollPane.posX = t.value.x; }); _ui.m_t1.Play(() => { playAni = false; // _ui.target.touchable = true; }); showCard = false; } } private void OnClickComCard() { if (playAni) return; playAni = true; if (showCard) { _ui.m_loaListener.visible = true; _ui.m_comCard.target.scrollPane.SetPercX(0.5f, true); float scale = _ui.m_comCard.target.scaleX; _ui.m_t1.SetValue("scale", scale, scale); _ui.m_t1.SetValue("normal", _cardScale, _cardScale); _ui.m_t1.Play(() => { playAni = false; }); showCard = false; } else { _ui.m_loaListener.visible = false; float scale = _ui.target.height / 1920; _ui.m_comCard.target.scrollPane.viewWidth = 1080 / scale; _ui.m_comCard.target.scrollPane.SetPercX(0.5f, true); _ui.m_t0.SetValue("scale", scale, scale); _ui.m_t0.SetValue("normal", _cardScale, _cardScale); _ui.m_t0.Play(() => { playAni = false; }); showCard = true; } } private void OnClickBtnStroy() { ViewManager.Show(ViewName.CARD_STORY_VIEW, _cardData); } private void OnChangeCtrlTab() { // _comLvConsumeGold = UI_ComCostCurrency.Proxy(_comFosterBottom.m_ComLvConsumeGold); this.UpdateCommon(); if (_comFosterBottom.m_ctrlTab.selectedIndex == 0) { this.ClearItemsCountList(); this.UpdateUpLvView(); } else if (_comFosterBottom.m_ctrlTab.selectedIndex == 1) { this.UpdateUpStarView(); } else { this.UpdateUpSkillView(); } this._selectTab = _comFosterBottom.m_ctrlTab.selectedIndex; } private void OnItemChangeListener() { if (!CardDataManager.isFullLv(_cardData.id, _cardData.lv, false)) { CardLvlCfg cardLvCfg = CardLvlCfgArray.Instance.GetCfg(_showLv, _cardData.itemCfg.rarity); _comFosterBottom.m_listLvConsume.numItems = upgradeCardItemsArr.Length; } if (!CardDataManager.isFullStar(_cardData.id, _cardData.star, false)) { CardStarCfg cardStarCfg = CardStarCfgArray.Instance.GetCfg(_cardData.itemCfg.subType, _cardData.itemCfg.rarity, _cardData.star); _comFosterBottom.m_listStarConsume.numItems = cardStarCfg.materiarsArr.Length; } } private void UpdateItemChange() { _ui.m_ComFosterBottom.m_listLvConsume.numItems = _ui.m_ComFosterBottom.m_listLvConsume.numItems; this.UpdateUpStarView(); } private void OnClickBtnBack() { ViewManager.GoBackFrom(ViewName.CARD_FOSTER_VIEW); this._selectTab = 0; } protected override void OnHide() { base.OnHide(); Timers.inst.Remove(CheckGuide); Timers.inst.Remove(OnTimedEvent); UI_ComCostCurrency.ProxyEnd(); UI_ComCostCurrencyWithHas.ProxyEnd(); // _comFosterBottom.m_listLvConsume.numItems = 0; _valueBarController.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.NUMERIC_CHANGE, UpdateUpStarView); EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, OnItemChangeListener); EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateItemChange); } private void CheckGuide(object param) { if (GuideDataManager.IsGuideFinish(ConstGuideId.UP_CARD_LV) <= 0) { UpdateToCheckGuide(null); } else { Timers.inst.Remove(CheckGuide); } } protected override void UpdateToCheckGuide(object param) { if (!ViewManager.CheckIsTopView(this.viewCom)) return; GuideController.TryGuide(_ui.m_ComFosterBottom.m_listLvConsume, ConstGuideId.UP_CARD_LV, 4, "长按材料图标,可持续给词牌增加经验", 0, true, 0, 0, 0, true, true); GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnUpLv, ConstGuideId.UP_CARD_LV, 5, "点击升级", -1, true, 0, 0, 0, true, true); // GuideController.TryGuide(_ui.m_ComFosterBottom.m_btnUpStar, ConstGuideId.UP_CARD_STAR, 5, "升满5星后,可解锁词牌的隐藏卡面哦"); GuideController.TryCompleteGuide(ConstGuideId.UP_CARD_LV, 5); } } }