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;
}
}
}
|