| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | using UI.RoleInfo;using System.Text.RegularExpressions;using ET;using UnityEngine;using FairyGUI;using System;namespace GFGGame{    public class ChangeNameView : BaseWindow    {        private UI_ChangeNameUI _ui;        private EffectUI _effectUI1;        private EffectUI _effectUI2;        public override void Dispose()        {            EffectUIPool.Recycle(_effectUI1);            _effectUI1 = null;            EffectUIPool.Recycle(_effectUI2);            _effectUI2 = null;            if (_ui != null)            {                _ui.Dispose();                _ui = null;            }            base.Dispose();        }        protected override void OnInit()        {            base.OnInit();            packageName = UI_ChangeNameUI.PACKAGE_NAME;            _ui = UI_ChangeNameUI.Create();            this.viewCom = _ui.target;            this.viewCom.Center();            this.modal = true;            viewAnimationType = EnumViewAnimationType.ZOOM_CENTER;            _ui.m_btnSure.onClick.Add(OnClickBtnSureAsync);            _ui.m_btnRandom.onClick.Add(RandomRoleName);            _ui.m_btnClose.onClick.Add(Hide);            AddEffect();            ItemCfg cfg = ItemCfgArray.Instance.GetCfg(GlobalCfgArray.globalCfg.changeNameCostArr[0]);            //_ui.m_loaIcon.url = ResPathUtil.GetCommonGameResPath(cfg.res);            _ui.m_loaIcon.url = ResPathUtil.GetIconPath(cfg.res, "png");            _ui.m_loaIcon.onClick.Add(OnBtnIconClick);        }        protected override void OnShown()        {            base.OnShown();            this._ui.m_inputName.text = "";            UpdateView();        }        protected override void OnHide()        {            base.OnHide();        }        private void AddEffect()        {            //邊框左上角特效            _effectUI1 = EffectUIPool.CreateEffectUI(_ui.m_holderLeftTop, "ui_Activity", "Com_window_L_up");            //邊框右下角特效            _effectUI2 = EffectUIPool.CreateEffectUI(_ui.m_holderRightDowm, "ui_Activity", "Com_window_R_Down");        }        protected override void AddEventListener()        {            base.AddEventListener();            EventAgent.AddEventListener(ConstMessage.ITEM_CHANGED, UpdateItem);        }        protected override void RemoveEventListener()        {            base.RemoveEventListener();            EventAgent.RemoveEventListener(ConstMessage.ITEM_CHANGED, UpdateItem);        }        private void OnClickBtnSureAsync()        {            string roleName = _ui.m_inputName.text;            if (string.IsNullOrEmpty(roleName))            {                PromptController.Instance.ShowFloatTextPrompt("角色名不能为空");                return;            }            if (roleName.Length > GFGGame.GlobalConst.MaxNameLen)            {                PromptController.Instance.ShowFloatTextPrompt("角色名最多七个字");                return;            }            if (!Regex.IsMatch(roleName, @"^[\u4e00-\u9fa5_0-9]+$"))//角色起名仅允许汉字、数字、底划线            {                PromptController.Instance.ShowFloatTextPrompt("角色名仅允许汉字、数字、下划线");                return;            }            string costName = ItemUtil.GetItemName(GlobalCfgArray.globalCfg.changeNameCostArr[0]);            int count = GlobalCfgArray.globalCfg.changeNameCostArr[1];            long haveNum = ItemDataManager.GetItemNum(GlobalCfgArray.globalCfg.changeNameCostArr[0]);            if (haveNum >= count)            {                AlertUI.Show(string.Format("是否花费{0}个{1}改名1次?", count, costName))                .SetLeftButton(true).SetRightButton(true, "确定", (object data) =>                {                    ChangeName(roleName);                });            }            else            {                PromptController.Instance.ShowFloatTextPrompt("改名卡数量不足");            }        }        private async void ChangeName(string roleName)        {            bool result = await RoleInfoSProxy.ReqModifyRoleName(roleName);            if (result)            {                this.Hide();            }        }        private async void RandomRoleName()        {            (int result, string name) = await LoginHelper.ReqRandomRoleName();            if (result == ErrorCode.ERR_Success)            {                _ui.m_inputName.text = name;            }            else            {                ErrorCodeController.Handler(result);            }        }        private void OnBtnIconClick(EventContext context)        {            ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(GlobalCfgArray.globalCfg.changeNameCostArr[0]);            object[] sourceDatas = new object[]                { itemCfg.id, new object[] { typeof(ChangeNameView).FullName, this.viewData } };            GoodsItemTipsController.ShowItemTips(itemCfg.id, sourceDatas);        }        private void UpdateItem(EventContext context)        {            int itemID = (int)context.data;            if(itemID != GlobalCfgArray.globalCfg.changeNameCostArr[0])            {                return;            }            UpdateView();        }        private void UpdateView()        {            long haveNum = ItemDataManager.GetItemNum(GlobalCfgArray.globalCfg.changeNameCostArr[0]);            long needNum = GlobalCfgArray.globalCfg.changeNameCostArr[1];            if (haveNum < needNum)            {                _ui.m_txtNeed.text = string.Format("改名卡:[color=#E26A21]{0}[color]/{1}", haveNum, needNum);            }            else            {                _ui.m_txtNeed.text = string.Format("改名卡:{0}/{1}", haveNum, needNum);            }        }    }}
 |