summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/UI/WeekShareRewardHandler.cs
blob: c7a17a3643ab6e9ac08af81323fa163567a13bf4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
using System;
using System.Collections;
using UILib;
using UnityEngine;
using XMainClient.UI.UICommon;
using XUtliPoolLib;

namespace XMainClient.UI
{
	internal class WeekShareRewardHandler : DlgHandlerBase
	{
		private IXUIButton _shareBtn;

		private IXUIButton _getBtn;

		private IXUILabel _weekDes;

		private IXUILabel _activityDes;

		private XUIPool _itemPool = new XUIPool(XSingleton<XGameUI>.singleton.m_uiTool);

		protected XAchievementDocument _doc;

		protected override void Init()
		{
			base.Init();
			this.InitProperties();
		}

		public override void RegisterEvent()
		{
			base.RegisterEvent();
		}

		protected override void OnShow()
		{
			base.OnShow();
			bool flag = !this._doc.Monday;
			if (flag)
			{
				DlgBase<RewardSystemDlg, TabDlgBehaviour>.singleton.uiBehaviour.StartCoroutine(this.RefreshMonday());
			}
			this.RefreshUI();
		}

		protected override void OnHide()
		{
			base.OnHide();
		}

		public override void OnUnload()
		{
			this._itemPool.ReturnAll(false);
			this._doc.ShareHandler = null;
			this._doc = null;
			base.OnUnload();
		}

		public void RefreshUI()
		{
			this.RefreshBtnState();
			this.RefreshRewards();
		}

		public void RefreshBtnState()
		{
			this._shareBtn.gameObject.SetActive(!this._doc.HasWeekReward);
			this._getBtn.gameObject.SetActive(this._doc.HasWeekReward);
		}

		private void InitProperties()
		{
			this._doc = XDocuments.GetSpecificDocument<XAchievementDocument>(XAchievementDocument.uuID);
			this._doc.ShareHandler = this;
			this._shareBtn = (base.transform.Find("BtnShare").GetComponent("XUIButton") as IXUIButton);
			this._shareBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.ClickToShare));
			this._getBtn = (base.transform.Find("BtnGet").GetComponent("XUIButton") as IXUIButton);
			this._getBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnClickGetBtn));
			this._weekDes = (base.transform.Find("WeekDesc").GetComponent("XUILabel") as IXUILabel);
			this._activityDes = (base.transform.Find("ActivityDes").GetComponent("XUILabel") as IXUILabel);
			Transform transform = base.transform.Find("ItemList");
			GameObject gameObject = transform.Find("ItemTpl").gameObject;
			this._itemPool.SetupPool(transform.gameObject, gameObject, 4u, false);
		}

		private bool OnClickGetBtn(IXUIButton button)
		{
			this._doc.SendToGetWeekShareReward();
			return true;
		}

		private bool ClickToShare(IXUIButton button)
		{
			XSingleton<PDatabase>.singleton.shareCallbackType = ShareCallBackType.WeekShare;
			XSingleton<UIManager>.singleton.CloseAllUI();
			DlgBase<ScreenShotShareView, ScreenShotShareBehaviour>.singleton.SetVisible(true, true);
			DlgBase<ScreenShotShareView, ScreenShotShareBehaviour>.singleton.ShowMainView();
			return true;
		}

		private void RefreshRewards()
		{
			this._weekDes.SetText(XSingleton<XStringTable>.singleton.GetString("WeekRewardsTime"));
			this._activityDes.SetText(XSingleton<XStringTable>.singleton.GetString("WeekShareDec"));
			this._itemPool.ReturnAll(false);
			SeqList<int> sequenceList = XSingleton<XGlobalConfig>.singleton.GetSequenceList("WeekShareReward", true);
			for (int i = 0; i < (int)sequenceList.Count; i++)
			{
				GameObject gameObject = this._itemPool.FetchGameObject(false);
				gameObject.transform.localPosition = new Vector3((float)(i * this._itemPool.TplWidth), 0f, 0f);
				IXUILabel ixuilabel = gameObject.transform.Find("Num").GetComponent("XUILabel") as IXUILabel;
				int num = sequenceList[i, 0];
				int itemCount = sequenceList[i, 1];
				XSingleton<XItemDrawerMgr>.singleton.normalItemDrawer.DrawItem(gameObject, num, itemCount, true);
				IXUISprite ixuisprite = gameObject.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite;
				ixuisprite.ID = (ulong)((long)num);
				ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(XSingleton<UiUtility>.singleton.OnItemClick));
			}
		}

		private IEnumerator RefreshMonday()
		{
			yield return new WaitForEndOfFrame();
			this._doc.DisappearMonday();
			XSingleton<XGameSysMgr>.singleton.RecalculateRedPointState(XSysDefine.XSys_WeekShareReward, true);
			yield break;
		}
	}
}