123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- using System.Collections;
- using UnityEngine;
- using UI.RoleInfo;
- using FairyGUI;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- namespace GFGGame
- {
- public class BadgeChooseView : BaseWindow
- {
- private UI_BadgeChooseUI _ui;
- private List<ItemCfg> _badgeList;
- private int selectedID;
- public override void Dispose()
- {
- if (_ui != null)
- {
- _ui.Dispose();
- }
- _ui = null;
- base.Dispose();
- }
- protected override void OnInit()
- {
- base.OnInit();
- packageName = UI_RoleInfoUI.PACKAGE_NAME;
- _ui = UI_BadgeChooseUI.Create();
- this.viewCom = _ui.target;
- isfullScreen = true;
- isReturnView = true;
- _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("bg_hzzs");
- _ui.m_btnback.onClick.Add(Hide);
- _ui.m_list.itemRenderer = OnRenderItem;
- _badgeList = ItemCfgArray.Instance.GetCfgsByitemType(ConstItemType.BADGE);
- }
- protected override void OnShown()
- {
- base.OnShown();
- selectedID = (viewData == null ? -1 : (int)viewData);
- _ui.m_list.numItems = _badgeList.Count;
- _ui.m_list.scrollPane.ScrollTop();
- }
- protected override void OnHide()
- {
- base.OnHide();
- }
- protected override void AddEventListener()
- {
- base.AddEventListener();
- }
- protected override void RemoveEventListener()
- {
- base.RemoveEventListener();
- }
- private void OnRenderItem(int index, GObject gObject)
- {
- gObject.data = _badgeList[index].id;
- UI_BadgeItem badgeItem = UI_BadgeItem.Proxy(gObject);
- badgeItem.m_name.text = _badgeList[index].name;
- badgeItem.m_iconImg.url = ResPathUtil.GetIconPath(_badgeList[index]);
- //badgeItem.m_iconImg.url = "ui://RoleInfo/linshj1_l";
- if (RoleDataManager.HaveBadge(_badgeList[index].id))
- {
- // 显示 卸下
- if (_badgeList[index].id == selectedID)
- {
- badgeItem.m_type.SetSelectedIndex(0);
- gObject.onClick.Set(RemoveBadge);
- }
- // 显示 已选中
- else if(RoleDataManager.badgeDatas.Contains(_badgeList[index].id))
- {
- badgeItem.m_type.SetSelectedIndex(1);
- gObject.onClick.Set(()=>
- {
- PromptController.Instance.ShowFloatTextPrompt("该徽章已在展示中");
- });
- }
- else
- {
- badgeItem.m_type.SetSelectedIndex(2);
- gObject.onClick.Set(SetBadge);
- }
- }
- else
- {
- badgeItem.m_type.SetSelectedIndex(3);
- gObject.onClick.Set(OnClickUnHaveItem);
- }
- UI_BadgeItem.ProxyEnd();
- }
- private void RemoveBadge()
- {
- RoleDataManager.badgeDatas.Remove(selectedID);
- UpdateBadgeList();
- }
- private void SetBadge(EventContext eventContext)
- {
- int id = (int)(eventContext.sender as GObject).data;
- // 点击空位进来的
- if(selectedID == -1)
- {
- RoleDataManager.badgeDatas.Add(id);
- }
- else
- {
- int index = RoleDataManager.badgeDatas.FindIndex(x => x.Equals(selectedID));
- RoleDataManager.badgeDatas[index] = id;
- }
- UpdateBadgeList();
- }
- private async Task UpdateBadgeList()
- {
- await RoleInfoSProxy.ReqSaveBadgeList(RoleDataManager.badgeDatas);
- Hide();
- }
- private void OnClickUnHaveItem(EventContext eventContext)
- {
- int id = (int)(eventContext.sender as GObject).data;
- object[] goBackDatas = ViewManager.GetGoBackDatas(typeof(BadgeChooseView).Name);
- object[] sourceDatas = new object[] { id, goBackDatas, 1 };
- GoodsItemTipsController.ShowItemTips(id, sourceDatas, false);
- }
- }
- }
|