| | |
| | | [SerializeField] Button attrOnTipBtn; |
| | | |
| | | [SerializeField] Button changeHeroPosBtn; //布阵按钮 |
| | | |
| | | |
| | | private List<Image> countrySelectImgList; |
| | | private List<Image> jobSelectImgList; |
| | | [SerializeField] HeroSelectBehaviour fiterManager; //武将筛选 |
| | | |
| | | SinglePack singlePack; |
| | | |
| | |
| | | HeroUIManager.Instance.selectTeamType = TeamType.Story; |
| | | UIManager.Instance.OpenWindow<HeroPosWin>(); |
| | | }); |
| | | attrOnTipBtn.AddListener(() => |
| | | { |
| | | attrOnTip.SetActive(!attrOnTip.activeSelf); |
| | | }); |
| | | } |
| | | |
| | | |
| | | protected override void OnPreOpen() |
| | | { |
| | | HeroUIManager.Instance.selectHeroListJob = 0; |
| | | HeroUIManager.Instance.selectHeroListCountry = 0; |
| | | singlePack = PackManager.Instance.GetSinglePack(PackType.Hero); |
| | | heroListScroller.OnRefreshCell += OnRefreshCell; |
| | | //需要考虑调整为武将的事件,而不是背包 |
| | | PackManager.Instance.RefreshItemEvent += RefreshPakCount; |
| | | PackManager.Instance.gridRefreshEvent += GridRefreshEvent; |
| | | PackManager.Instance.RefreshItemEvent += RefreshItemEvent; |
| | | UIManager.Instance.OnCloseWindow += OnCloseWindow; |
| | | HeroManager.Instance.onHeroDeleteEvent += HeroDeleteEvent; |
| | | HeroUIManager.Instance.SortHeroList(); |
| | | CreateScroller(); |
| | | Refresh(); |
| | |
| | | protected override void OnPreClose() |
| | | { |
| | | heroListScroller.OnRefreshCell -= OnRefreshCell; |
| | | PackManager.Instance.RefreshItemEvent -= RefreshPakCount; |
| | | PackManager.Instance.RefreshItemEvent -= RefreshItemEvent; |
| | | PackManager.Instance.gridRefreshEvent -= GridRefreshEvent; |
| | | UIManager.Instance.OnCloseWindow -= OnCloseWindow; |
| | | HeroManager.Instance.onHeroDeleteEvent -= HeroDeleteEvent; |
| | | } |
| | | |
| | | |
| | | private void OnCloseWindow(UIBase closeUI) |
| | | { |
| | | //其他武将功能产生数据变化,需要刷新武将列表 |
| | | if (closeUI is HeroTrainWin || |
| | | closeUI is HeroCallWin || |
| | | closeUI is HeroPosWin) |
| | | { |
| | | HeroUIManager.Instance.SortHeroList(); |
| | | CreateScroller(); |
| | | Refresh(); |
| | | } |
| | | } |
| | | |
| | | |
| | | public override void Refresh() |
| | | { |
| | | if (singlePack == null || singlePack.GetAllItems().Count <= 0) |
| | | RefreshEmptyTip(); |
| | | OnBattleTeamAttrPer(); |
| | | |
| | | RefreshPackCount(); |
| | | |
| | | fiterManager.Display(0, HeroUIManager.Instance.selectHeroListJob, HeroUIManager.Instance.selectHeroListCountry, SelectJobCountry); |
| | | |
| | | } |
| | | |
| | | void HeroDeleteEvent(int heroID) |
| | | { |
| | | HeroUIManager.Instance.SortHeroList(); |
| | | heroListScroller.m_Scorller.RefreshActiveCellViews(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | void RefreshEmptyTip() |
| | | { |
| | | if (HeroUIManager.Instance.heroSortList.Count <= 0) |
| | | { |
| | | heroListEmpty.SetActive(true); |
| | | heroListScroller.SetActive(false); |
| | |
| | | heroListEmpty.SetActive(false); |
| | | heroListScroller.SetActive(true); |
| | | } |
| | | } |
| | | |
| | | OnBattleTeamAttrPer(); |
| | | |
| | | RefreshPakCount(PackType.Hero, 0, 0); |
| | | void SelectJobCountry(int job, int country) |
| | | { |
| | | HeroUIManager.Instance.selectHeroListJob = job; |
| | | HeroUIManager.Instance.selectHeroListCountry = country; |
| | | HeroUIManager.Instance.SortHeroList(); |
| | | RefreshEmptyTip(); |
| | | CreateScroller(); |
| | | } |
| | | |
| | | //上阵加成 |
| | |
| | | valuePer += hero.GetOnBattleAddPer(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | //上阵属性 |
| | | for (int i = 0; i < attrOnList.Count; i++) |
| | |
| | | heroListScroller.Restart(); |
| | | } |
| | | |
| | | void RefreshPakCount(PackType type, int index, int itemID) |
| | | void RefreshItemEvent(PackType type, int index, int itemID) |
| | | { |
| | | if (type != PackType.Hero) |
| | | return; |
| | | if (singlePack == null) |
| | | |
| | | |
| | | RefreshPackCount(); |
| | | |
| | | } |
| | | |
| | | void RefreshPackCount() |
| | | { |
| | | int count = singlePack.GetAllItems().Count; |
| | | heroPackText.text = UIHelper.AppendColor(count >= singlePack.unlockedGridCount ? TextColType.Red : TextColType.NavyBrown, |
| | | string.Format("{0}/{1}", count, singlePack.unlockedGridCount)); |
| | | |
| | | } |
| | | |
| | | void GridRefreshEvent(PackType type) |
| | | { |
| | | if (type != PackType.Hero) |
| | | return; |
| | | |
| | | int count = singlePack.GetAllItems().Count; |
| | | |
| | | heroPackText.text = UIHelper.AppendColor(count > singlePack.unlockedGridCount ? TextColType.Red : TextColType.NavyBrown, |
| | | string.Format("{0}/{1}", count, singlePack.unlockedGridCount)); |
| | | |
| | | RefreshPackCount(); |
| | | } |
| | | |
| | | } |