summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/UI/TitleShareDlg.cs
blob: 741e8c3b8f039415f70a72036ed36cd382dc590e (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
130
131
132
133
134
using System;
using UILib;
using UnityEngine;
using XMainClient.UI.UICommon;
using XUtliPoolLib;

namespace XMainClient.UI
{
	internal class TitleShareDlg : DlgBase<TitleShareDlg, TitleShareBehaviour>
	{
		public override int layer
		{
			get
			{
				return 1;
			}
		}

		public override int sysid
		{
			get
			{
				return XFastEnumIntEqualityComparer<XSysDefine>.ToInt(XSysDefine.XSys_Title_Share);
			}
		}

		public override string fileName
		{
			get
			{
				return "GameSystem/TitleShareDlg";
			}
		}

		public override bool pushstack
		{
			get
			{
				return true;
			}
		}

		public override bool hideMainMenu
		{
			get
			{
				return true;
			}
		}

		public override bool autoload
		{
			get
			{
				return true;
			}
		}

		private XTitleDocument _Doc;

		private uint m_showTime;

		private bool m_canClose;

		protected override void Init()
		{
			base.Init();
			this._Doc = XDocuments.GetSpecificDocument<XTitleDocument>(XTitleDocument.uuID);
			base.uiBehaviour.m_Close.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.ClickTitleShared));
		}

		protected override void OnShow()
		{
			base.OnShow();
			this.m_canClose = false;
			TitleTable.RowData currentTitle = this._Doc.CurrentTitle;
			base.uiBehaviour.m_closeTips.gameObject.SetActive(this.m_canClose);
			base.uiBehaviour.m_currentTitle.Set(currentTitle);
			bool flag = !string.IsNullOrEmpty(currentTitle.AffectRoute);
			if (flag)
			{
				XSingleton<XFxMgr>.singleton.CreateAndPlay(currentTitle.AffectRoute + "_Clip01", base.uiBehaviour.transform, Vector3.zero, Vector3.one, 1f, false, 1f, true);
			}
			XSingleton<X3DAvatarMgr>.singleton.EnableMainDummy(true, base.uiBehaviour.m_snapshotTransfrom);
			float interval = XSingleton<X3DAvatarMgr>.singleton.SetMainAnimationGetLength(XSingleton<XEntityMgr>.singleton.Player.Present.PresentLib.Disappear);
			this.m_showTime = XSingleton<XTimerMgr>.singleton.SetTimer(interval, new XTimerMgr.ElapsedEventHandler(this.KillTimer), null);
			base.uiBehaviour.m_message.SetText(XStringDefineProxy.GetString("TITLE_NEW_GET", new object[]
			{
				currentTitle.RankName
			}));
		}

		private void KillTimer(object sender)
		{
			this.m_canClose = true;
			base.uiBehaviour.m_closeTips.gameObject.SetActive(this.m_canClose);
			XSingleton<XTimerMgr>.singleton.KillTimer(this.m_showTime);
			XSingleton<X3DAvatarMgr>.singleton.SetMainAnimation(XSingleton<XEntityMgr>.singleton.Player.Present.PresentLib.AttackIdle);
		}

		protected override void OnHide()
		{
			XSingleton<X3DAvatarMgr>.singleton.EnableMainDummy(false, base.uiBehaviour.m_snapshotTransfrom);
			base.OnHide();
			this.m_showTime = 0u;
			XSingleton<X3DAvatarMgr>.singleton.EnableMainDummy(false, null);
		}

		protected override void OnUnload()
		{
			XSingleton<XTimerMgr>.singleton.KillTimer(this.m_showTime);
			XSingleton<X3DAvatarMgr>.singleton.OnUIUnloadMainDummy(base.uiBehaviour.m_snapshotTransfrom);
			bool flag = base.uiBehaviour != null;
			if (flag)
			{
				base.uiBehaviour.m_currentTitle.Reset();
			}
			base.OnUnload();
		}

		private void ClickTitleShared(IXUISprite texture)
		{
			bool flag = !this.m_canClose;
			if (flag)
			{
				XSingleton<UiUtility>.singleton.ShowSystemTip(XStringDefineProxy.GetString("TITILE_QUIKE"), "fece00");
			}
			else
			{
				this.SetVisibleWithAnimation(false, null);
			}
		}
	}
}