using System.Collections; using ET; using FairyGUI; using UI.ClothingFoster; using UI.CommonGame; namespace GFGGame { public class ClothingFosterView : BaseWindow { private UI_ClothingFosterUI _ui; private int _suitId; private int _index; private SortedList _propertyList; private SortedList _addPropertyList; private bool _canFoster; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ClothingFosterUI.PACKAGE_NAME; _ui = UI_ClothingFosterUI.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; // viewAnimationType = EnumViewAnimationType.ZOOM_CENTER; _ui.m_listMaterials.itemRenderer = ListMaterialItemRender; _ui.m_listMaterials.onClickItem.Add(OnListMaterialsItem); _ui.m_listPropertyAdd.itemRenderer = ListPropertyItemRender; _ui.m_btnFoster.onClick.Add(OnClickBtnFoster); } protected override void AddEventListener() { base.AddEventListener(); EventAgent.AddEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } protected override void OnShown() { base.OnShown(); _suitId = (int)(this.viewData as object[])[0]; _index = (int)(this.viewData as object[])[1]; _propertyList = (this.viewData as object[])[2] as SortedList; _addPropertyList = (this.viewData as object[])[3] as SortedList; _canFoster = true; SuitFosterCfg cfg = SuitFosterCfgArray.Instance.GetCfgs(_suitId)[_index]; _ui.m_listMaterials.numItems = cfg.materialsArr.Length; int has = ItemDataManager.GetItemNum(cfg.costId); int need = cfg.costNum; UI_ComCostCurrency comConsume = UI_ComCostCurrency.Proxy(_ui.m_ComConsume); comConsume.m_txtNeed.text = StringUtil.GetColorText(need.ToString(), has >= need ? "#FFF8EA" : "#C9F1A5"); UI_ComCostCurrency.ProxyEnd(); if (_canFoster && has < need) _canFoster = false; _ui.m_listPropertyAdd.numItems = _propertyList.Count; } protected override void OnHide() { base.OnHide(); } protected override void RemoveEventListener() { base.RemoveEventListener(); EventAgent.RemoveEventListener(ConstMessage.JUMP_TO_SOURCE, this.Hide); } private void ListMaterialItemRender(int index, GObject obj) { UI_ListMaterialsItem item = UI_ListMaterialsItem.Proxy(obj); int[][] materialsArr = SuitFosterCfgArray.Instance.GetCfgs(_suitId)[_index].materialsArr; ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(materialsArr[index][0]); item.m_loaIcon.url = ResPathUtil.GetIconPath(itemCfg); int has = ItemDataManager.GetItemNum(itemCfg.id); item.m_txtHas.text = has.ToString(); int need = materialsArr[index][1]; item.m_txtNeed.text = need.ToString(); item.m_txtHas.text = StringUtil.GetColorText(has.ToString(), has >= need ? "#F2DB96" : "#C9F1A5"); if (_canFoster && has < need) _canFoster = false; item.target.data = materialsArr[index][0]; UI_ListMaterialsItem.ProxyEnd(); } private void OnListMaterialsItem(EventContext context) { int itemId = (int)(context.data as GComponent).data; ViewManager.Show(ViewName.APPROACH_OF_ITEM_VIEW, new object[] { itemId, new object[] { typeof(ClothingView).FullName, ( this.viewData as object[])[4] } }); } private void ListPropertyItemRender(int index, GObject obj) { UI_ListPropertyAddItem item = UI_ListPropertyAddItem.Proxy(obj); UI_ListPropertyItem comProperty = UI_ListPropertyItem.Proxy(item.m_comProperty); int score = (int)_propertyList.GetKey(index); comProperty.m_txtProperty.text = _propertyList[score].ToString(); comProperty.m_loaIcon.url = ResPathUtil.GetCommonGameResPath("kp_sx_" + (score)); item.m_txtAdd.text = "+" + _addPropertyList.GetByIndex(index); UI_ListPropertyAddItem.ProxyEnd(); UI_ListPropertyItem.ProxyEnd(); } private async void OnClickBtnFoster() { if (!_canFoster) { PromptController.Instance.ShowFloatTextPrompt("材料不足"); return; } int result = await SuitFosterProxy.SendMaintainSuit(_suitId, _index + 1); if (result == ErrorCode.ERR_Success) { LogServerHelper.SendNodeLog((int)PlayParticipationEnum.FU_ZHUANG_YANG_CHENG, 2); this.Hide(); } } } }