using UI.RoleInfo; using System.Text.RegularExpressions; using FairyGUI; using UI.CommonGame; namespace GFGGame { public class ChangeHeadView : BaseWindow { private UI_ChangeHead _ui; private int _selectHeadId = 0; private int _selectHeadBorderId = 0; public override void Dispose() { if (_ui != null) { _ui.Dispose(); _ui = null; } base.Dispose(); } protected override void OnInit() { base.OnInit(); packageName = UI_ChangeHead.PACKAGE_NAME; _ui = UI_ChangeHead.Create(); this.viewCom = _ui.target; this.viewCom.Center(); this.modal = true; _ui.m_list.SetVirtual(); _ui.m_list.itemRenderer = RenderListItem; _ui.m_list.onClickItem.Add(OnListItemClick); _ui.m_listBorder.SetVirtual(); _ui.m_listBorder.itemRenderer = RenderListBorderItem; _ui.m_listBorder.onClickItem.Add(OnListBorderItemClick); _ui.m_c1.onChanged.Add(OnTabChange); _ui.m_btnSure.onClick.Add(OnBtnSureClick); } protected override void OnShown() { base.OnShown(); RoleInfoManager.Instance.SortHeadDatas(); RoleInfoManager.Instance.SortHeadBorderDatas(); OnTabChange(); // _ui.m_list.selectedIndex = 0; // _ui.m_listBorder.selectedIndex = 0; } protected override void OnHide() { base.OnHide(); _ui.m_c1.selectedIndex = 0; } private async void OnBtnSureClick() { if (_ui.m_c1.selectedIndex == 0) { bool result = await RoleInfoSProxy.ReqModifyRoleHead(_selectHeadId); if (result) { OnTabChange(); } } else { bool result = await RoleInfoSProxy.ReqModifyRoleHeadBorder(_selectHeadBorderId); if (result) { OnTabChange(); } } } private void RenderListItem(int index, GObject obj) { int headId = RoleInfoManager.Instance.headDatas[index]; ItemCfg cfg = ItemCfgArray.Instance.GetCfg(headId); UI_ListHeadItem item = UI_ListHeadItem.Proxy(obj); item.m_loaIcon.url = ResPathUtil.GetHeadPath(cfg.res); item.m_imgNew.visible = RoleInfoManager.Instance.isNewHead(headId); if (RoleInfoManager.Instance.isNewHead(headId)) { ItemProxy.ReqSetItemRead(headId).Coroutine(); } if (headId == RoleDataManager.headId) { _ui.m_list.selectedIndex = index; } item.target.data = headId; UI_ListHeadItem.ProxyEnd(); } private void RenderListBorderItem(int index, GObject obj) { ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(RoleDataManager.headId); int headBorderId = RoleInfoManager.Instance.headBorderDatas[index]; ItemCfg borderCfg = ItemCfgArray.Instance.GetCfg(headBorderId); UI_ListHeadBorderItem item = UI_ListHeadBorderItem.Proxy(obj); item.m_loaIcon.url = ResPathUtil.GetHeadPath(headCfg.res); item.m_loaBorder.url = ResPathUtil.GetHeadBorderPath(borderCfg.res); item.m_imgNew.visible = RoleInfoManager.Instance.isNewHeadBorder(headBorderId); if (RoleInfoManager.Instance.isNewHeadBorder(headBorderId)) { ItemProxy.ReqSetItemRead(headBorderId).Coroutine(); } if (headBorderId == RoleDataManager.headBorderId) { _ui.m_listBorder.selectedIndex = index; } item.target.data = headBorderId; UI_ListHeadBorderItem.ProxyEnd(); } private void OnListItemClick(EventContext context) { GObject obj = context.data as GObject; _selectHeadId = (int)obj.data; UpdateView(); } private void OnListBorderItemClick(EventContext context) { GObject obj = context.data as GObject; _selectHeadBorderId = (int)obj.data; UpdateView(); } private void OnTabChange() { _selectHeadId = RoleDataManager.headId; _selectHeadBorderId = RoleDataManager.headBorderId; if (_ui.m_c1.selectedIndex == 0) { _ui.m_list.numItems = RoleInfoManager.Instance.headDatas.Count; } else { _ui.m_listBorder.numItems = RoleInfoManager.Instance.headBorderDatas.Count; ; } UpdateView(); } private void UpdateView() { ItemCfg headCfg = ItemCfgArray.Instance.GetCfg(_selectHeadId); ItemCfg headBorderCfg = ItemCfgArray.Instance.GetCfg(_selectHeadBorderId); RoleInfoManager.Instance.UpdateHead(_ui.m_comHead, _selectHeadId, _selectHeadBorderId); if (_ui.m_c1.selectedIndex == 0) { _ui.m_txtName.text = headCfg.name; _ui.m_txtDesc.text = headCfg.desc; } else { _ui.m_txtName.text = headBorderCfg.name; _ui.m_txtDesc.text = headBorderCfg.desc; } } } }