123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- using System.Collections;
- using UnityEngine;
- using UI.ActivityGetYuanXiao;
- using FairyGUI;
- using System.Collections.Generic;
- using System.Threading.Tasks;
- using ET;
- namespace GFGGame
- {
- public class ActivityGetYuanXiaoEntryView : BaseView
- {
- private UI_ActivityGetYuanXiaoEntryUI _ui;
- private ValueBarController _valueBarController;
- private Dictionary<string, EffectUI> _effectUIDic = new Dictionary<string, EffectUI>();
- private int _curLevel;
- public override void Dispose()
- {
- // Clear Effect
- foreach (var v in _effectUIDic)
- {
- EffectUIPool.Recycle(v.Value);
- }
- _effectUIDic.Clear();
- if (_valueBarController != null)
- {
- _valueBarController.Dispose();
- _valueBarController = null;
- }
- if (_ui != null)
- {
- _ui.Dispose();
- }
- _ui = null;
- base.Dispose();
- }
- protected override void OnInit()
- {
- base.OnInit();
- packageName = UI_ActivityGetYuanXiaoEntryUI.PACKAGE_NAME;
- _ui = UI_ActivityGetYuanXiaoEntryUI.Create();
- viewCom = _ui.target;
- isReturnView = true;
- _ui.m_loaBg.url = ResPathUtil.GetBgImgPath("xyx_clfg_bg");
- _valueBarController = new ValueBarController(_ui.m_valueBar);
- _ui.m_list.itemRenderer = ListRenderer;
- _ui.m_btnStart.onClick.Add(OnBtnStartClick);
- _ui.m_btnTask.onClick.Add(OnBtnTaskClick);
- _ui.m_btnShop.onClick.Add(OnBtnShopClick);
- _ui.m_btnBack.onClick.Add(OnBtnBackClick);
- AddEffect();
- }
- protected async override void OnShown()
- {
- base.OnShown();
- InitUI();
- var result = await ActivityGetYuanXiaoProxy.ReqGetActivityGameInfos();
- if (!isShowing || !result)
- {
- return;
- }
- _ui.m_list.visible = true;
- _valueBarController.UpdateList(new List<int>() { ConstItemID.YUANXIAO_REWARD, ConstItemID.YUANXIAO_GAME_CONSUME });
- _ui.m_listShow.Play();
- _curLevel = ActivityGetYuanXiaoDataManager.Instance.GetCurLevel();
- _ui.m_list.numItems = ActivityGetYuanXiaoDataManager.Instance.gameinfoList.Count;
- _ui.m_list.selectedIndex = Mathf.Min(_curLevel, ActivityGetYuanXiaoDataManager.Instance.gameinfoList.Count - 1);
- AutoLocationCurLevel();
- UpdateRedDots();
- UpdateTime(null);
- Timers.inst.Remove(UpdateTime);
- Timers.inst.Add(1, 0, UpdateTime);
- }
- protected override void OnHide()
- {
- base.OnHide();
- _valueBarController.OnHide();
- Timers.inst.Remove(UpdateTime);
- }
- protected override void AddEventListener()
- {
- base.AddEventListener();
- EventAgent.AddEventListener(ConstMessage.ACTIVITY_GETYUANXIAO_START, StartGame);
- EventAgent.AddEventListener(ConstMessage.RED_CHANGE, UpdateRedDots);
- }
- protected override void RemoveEventListener()
- {
- base.RemoveEventListener();
- EventAgent.RemoveEventListener(ConstMessage.ACTIVITY_GETYUANXIAO_START, StartGame);
- EventAgent.RemoveEventListener(ConstMessage.RED_CHANGE, UpdateRedDots);
- }
- private void ListRenderer(int index, GObject item)
- {
- item.data = index;
- UI_level level = UI_level.Proxy(item);
- PickUpGame pickUpGame = PickUpGameArray.Instance.dataArray[index];
- level.m_spendIcon.url = ResPathUtil.GetIconPath(ItemCfgArray.Instance.GetCfg(pickUpGame.comsumePassArr[0][0]).res, "png");
- level.m_iconLevel.url = string.Format("ui://ActivityGetYuanXiao/clfg_xg_{0}", index % 4 + 1);
- level.m_num.text = pickUpGame.comsumePassArr[0][1].ToString();
- int stateIndex = 0;
- if (index > _curLevel)
- {
- stateIndex = 1;
- }
- else if(index < _curLevel)
- {
- stateIndex = 2;
- }
- level.m_c1.selectedIndex = stateIndex;
- UI_level.ProxyEnd();
- }
- private void OnBtnStartClick()
- {
- int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
- if (activityID == 0)
- {
- PromptController.Instance.ShowFloatTextPrompt("活动已结束");
- return;
- }
- if (_ui.m_list.selectedIndex > _curLevel)
- {
- PromptController.Instance.ShowFloatTextPrompt("请先通关前置关卡");
- return;
- }
- if (_ui.m_list.selectedIndex < _curLevel)
- {
- PromptController.Instance.ShowFloatTextPrompt("关卡已通过");
- return;
- }
- if (ActivityGetYuanXiaoDataManager.Instance.HaveNewLevelCanPlay() == false)
- {
- PromptController.Instance.ShowFloatTextPrompt("游园门票不足,请查看任务列表");
- return;
- }
- PickUpGame cfg = PickUpGameArray.Instance.dataArray[_ui.m_list.selectedIndex];
- ViewManager.Show<ActivityGetYuanXiaoTargetView>(cfg);
- }
- private async void StartGame()
- {
- int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
- PickUpGame cfg = PickUpGameArray.Instance.dataArray[_ui.m_list.selectedIndex];
- var result = await MiniGameProxy.ReqMiniGameStart(cfg.id, cfg.type, activityID);
- if (!result || !isShowing) return;
- ViewManager.Show<ActivityGetYuanXiaoView>(new object[] { cfg, activityID });
- }
- private void OnBtnShopClick()
- {
- int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
- if (activityID == 0)
- {
- PromptController.Instance.ShowFloatTextPrompt("活动已结束");
- return;
- }
- ViewManager.Show<StoreView>(new object[] { ConstStoreTabId.STORE_EXCHANGE, ConstStoreSubId.STORE_ACTIVITY_EXCHANGE });
- }
- private void OnBtnTaskClick()
- {
- int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
- if (activityID == 0)
- {
- PromptController.Instance.ShowFloatTextPrompt("活动已结束");
- return;
- }
- ViewManager.Show<ActivityGetYuanXiaoTaskView>();
- }
- private void UpdateRedDots()
- {
- bool canPlay = ActivityGetYuanXiaoDataManager.Instance.HaveNewLevelCanPlay();
- for (int i = 0; i < _ui.m_list.numChildren; i++)
- {
- if (i == _curLevel)
- {
- RedDotController.Instance.SetComRedDot(_ui.m_list.GetChildAt(i).asCom, canPlay, "", -21, 29);
- }
- else
- {
- RedDotController.Instance.SetComRedDot(_ui.m_list.GetChildAt(i).asCom, false);
- }
- }
- RedDotController.Instance.SetComRedDot(_ui.m_btnTask,
- ActivityGetYuanXiaoDataManager.Instance.ShowTaskRedDots(TaskFuncType.YuanXiaoActivity), "", -25, 20);
- }
- private void AddEffect()
- {
- _effectUIDic.Add("YXJ_bg_tx", EffectUIPool.CreateEffectUI(_ui.m_bgEffect, "ui_Activity", "YXJ_bg_tx"));
- //_effectUIDic.Add("YXJ_Button", EffectUIPool.CreateEffectUI(_ui.m_startBtnEffect, "ui_Activity", "YXJ_Button"));
- //_effectUIDic.Add("YXJ_Middle", EffectUIPool.CreateEffectUI(_ui.m_yuanXiaoEffect, "ui_Activity", "YXJ_Middle"));
- //_effectUIDic.Add("YXJ_Text", EffectUIPool.CreateEffectUI(_ui.m_titleTextEffect, "ui_Activity", "YXJ_Text"));
- _effectUIDic.Add("YXJ_Open_Down", EffectUIPool.CreateEffectUI(_ui.m_cloudEffect, "ui_Activity", "YXJ_Open_Down"));
- //_effectUIDic.Add("YXJ_Open_Up", EffectUIPool.CreateEffectUI(_ui.m_leafEffect, "ui_Activity", "YXJ_Open_Up"));
- //_effectUIDic.Add("RedPack_doubao_Loop_R", EffectUIPool.CreateEffectUI(_ui.m_doubaoEffect, "ui_Activity", "RedPack_doubao_Loop_R"));
- }
- private void AutoLocationCurLevel()
- {
- _ui.m_list.ScrollToView(Mathf.Min(_curLevel, ActivityGetYuanXiaoDataManager.Instance.gameinfoList.Count - 1));
- }
- private void UpdateTime(object param)
- {
- long curTime = TimeHelper.ServerNow();
- int activityID = ActivityDataManager.Instance.GetCurOpenActiveByType(ActivityType.YuanXiao);
- var activityInfo = ActivityGlobalDataManager.Instance.GetActivityInfo(activityID);
- if (activityInfo != null)
- {
- long endTime = activityInfo.EndTime;
- _ui.m_txtTime.text = TimeUtil.FormattingTimeTo_DDHHmm(endTime - curTime);
- }
- else
- {
- //_ui.m_txtTime.text = "已结束";
- //InitUI();
- OnBtnBackClick();
- }
- }
- private void OnBtnBackClick()
- {
- ViewManager.Show<MainUIView>(null, true);
- ViewManager.DeleteViewStackCountDown("MainUIView");
- }
-
- private void InitUI()
- {
- _ui.m_list.visible = false;
- _valueBarController.OnShown();
- _valueBarController.UpdateList(new List<int>());
- }
- }
- }
|