123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- using FairyGUI;
- using UI.ActivityMain;
- using System.Collections;
- using System.Collections.Generic;
- using ET;
- using UnityEngine;
- using System;
- namespace GFGGame
- {
- public class ActivityZCJBRewardView : BaseWindow
- {
- private UI_ActivityZCJBRewardUI _ui;
- private List<ActivityDressCfg> zcjbCfgList = new List<ActivityDressCfg>();
- private int lastGotIndex;
- public override void Dispose()
- {
- if (_ui != null)
- {
- _ui.Dispose();
- _ui = null;
- }
- base.Dispose();
- }
- protected override void OnInit()
- {
- base.OnInit();
- packageName = UI_ActivityZCJBRewardUI.PACKAGE_NAME;
- _ui = UI_ActivityZCJBRewardUI.Create();
- this.viewCom = _ui.target;
- isfullScreen = true;
- modal = true;
- _ui.m_back.onClick.Add(this.Hide);
- _ui.m_backBtn.onClick.Add(this.Hide);
- _ui.m_List.itemRenderer = RenderRewardList;
- }
- protected override void OnShown()
- {
- base.OnShown();
- UpdateList();
- int activityId = ActivityDataManager.Instance.GetCurOpenActiveByType(17);
- zcjbCfgList = ActivityDressCfgArray.Instance.GetCfgsByactivityId(activityId);
- _ui.m_List.numItems = zcjbCfgList.Count;
- _ui.m_List.ScrollToView(Mathf.Max(0, ActivityDataManager.Instance.ActivityZCJBList.Count - 1), false, true);
- }
- protected override void OnHide()
- {
- base.OnHide();
- }
- private void RenderRewardList(int index, GObject obj)
- {
- UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(obj);
- ItemCfg costItem = ItemCfgArray.Instance.GetCfg(zcjbCfgList[index].comsumeArr[0][0]);
- ItemData numItem;
- long num;
- if (BagDataManager.Instance.GetBagData().TryGetValue(zcjbCfgList[index].comsumeArr[0][0], out numItem))
- {
- num = numItem.num;
- }
- else
- {
- num = 0;
- }
- //根据状态修改
- if (index < ActivityDataManager.Instance.ActivityZCJBList.Count)
- {
- item.m_RewardBtn.m_c1.selectedIndex = 2;
- RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
- }
- else
- {
- item.m_RewardBtn.m_c1.selectedIndex = 0;
- RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
- //设置锁的样式
- }
- if(index == ActivityDataManager.Instance.ActivityZCJBList.Count)
- {
- if(num >= zcjbCfgList[index].comsumeArr[0][1])
- {
- item.m_RewardBtn.m_c1.selectedIndex = 1;
- RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, true);
- }
- else
- {
- item.m_RewardBtn.m_c1.selectedIndex = 3;
- RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
- }
- }
- //
- item.m_rewardName.text = "使用" + costItem.name + "*"+ zcjbCfgList[index].comsumeArr[0][1] + "兑换";
- if (item.m_RewardBtn.target.data == null)
- {
- item.m_RewardBtn.target.onClick.Add(OnClickRewardBtn);
- }
- item.m_RewardBtn.target.data = index + 1;
- if(item.m_List.data == null)
- {
- item.m_List.itemRenderer = RenderRewardItemList;
- }
- item.m_List.data = zcjbCfgList[index].bonusArr;
- item.m_List.numItems = zcjbCfgList[index].bonusArr.Length;
- //最后一档特殊处理
- //if(index == zcjbCfgList.Length - 1)
- //{
- // item.m_rewardNum.visible = true;
- // int numChange = GameGlobal.myNumericComponent.GetAsInt(NumericType.ActivityDressLastGearRewrdNum);
- // item.m_rewardNum.text = string.Format("已兑换次数:{0}/{1}", numChange, 50);
- // RedDotController.Instance.SetComRedDot(item.m_RewardBtn.target, false);
- //}
- //else
- {
- item.m_rewardNum.visible = false;
- }
- UI_ActivityRewardItemUI.ProxyEnd();
- }
- private async void OnClickRewardBtn(EventContext context)
- {
- if (!(context.sender is GObject btnGet)) return;
- int itemCfg = (int)btnGet.data;
- UI_ActivityRewardItemUI item = UI_ActivityRewardItemUI.Proxy(_ui.m_List.GetChildAt(itemCfg - 1));
- if (item.m_RewardBtn.m_c1.selectedIndex == 1)
- {
- bool result = await ActivitySProxy.ReqActivityZCJBReward(ActivityDataManager.Instance.GetCurOpenActiveByType(17), itemCfg);
- if (!result) return;
- GetSuitItemController.TryShow(0);
- EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
- UI_ActivityRewardItemUI.ProxyEnd();
- _ui.m_List.numItems = zcjbCfgList.Count;
- UpdateList();
- }
- else if (item.m_RewardBtn.m_c1.selectedIndex == 0)
- {
- PromptController.Instance.ShowFloatTextPrompt("请优先兑换前置物品!");
- }
- else if (item.m_RewardBtn.m_c1.selectedIndex == 3)
- {
- PromptController.Instance.ShowFloatTextPrompt("数量不够!");
- }
- }
- private void RenderRewardItemList(int index, GObject obj)
- {
- var rewards = (int[][])obj.parent.data;
- ItemUtil.CreateItemView(rewards[index], obj as GComponent);
- }
- private void UpdateList()
- {
- ItemData numItem;
- long num;
- if (BagDataManager.Instance.GetBagData().TryGetValue(zcjbCfgList[0].comsumeArr[0][0], out numItem))
- {
- num = numItem.num;
- }
- else
- {
- num = 0;
- }
- ItemCfg item = ItemCfgArray.Instance.GetCfg(zcjbCfgList[0].comsumeArr[0][0]);
- _ui.m_num.text = item.name+ ":" + num;
- }
- }
- }
|