using System.Collections; using ET; using FairyGUI; using UI.ClothingFoster; using UI.CommonGame; namespace GFGGame { public class SuitFosterView : BaseWindow { private UI_SuitFosterUI _ui; private int _suitId; private int _index; private SortedList _propertyList; private SortedList _addPropertyList; private bool _canFoster; public override void Dispose() { base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_SuitFosterUI.PACKAGE_NAME; _ui = UI_SuitFosterUI.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 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_ComConsumeCurrency comConsume = UI_ComConsumeCurrency.Proxy(_ui.m_ComConsume); comConsume.m_txtHas.text = has.ToString(); comConsume.m_txtNeed.text = need.ToString(); if (_canFoster && has < need) _canFoster = false; _ui.m_listPropertyAdd.numItems = _propertyList.Count; } protected override void OnHide() { base.OnHide(); } 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 = StringUtil.GetColorText(need.ToString(), has >= need ? "#DD994A" : "#DD994A"); if (_canFoster && has < need) _canFoster = false; item.target.data = materialsArr[index][0]; } private void OnListMaterialsItem(EventContext context) { int itemId = (int)(context.data as GComponent).data; GoodsItemTipsController.ShowItemTips(itemId); } 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).ToString(); } private void OnClickBtnFoster() { if (!_canFoster) { PromptController.Instance.ShowFloatTextPrompt("材料不足"); return; } SuitFosterHelper.SendMaintainSuit(_suitId, _index + 1).Coroutine(); } } }