summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/UI/ReviveDlg.cs
blob: 1ce5bea621e38bb4b42903a364ddf815e62f60b3 (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
using System;
using KKSG;
using UILib;
using XMainClient.UI.UICommon;
using XUtliPoolLib;

namespace XMainClient.UI
{
	internal class ReviveDlg : DlgBase<ReviveDlg, ReviveDlgBehaviour>
	{
		public override string fileName
		{
			get
			{
				return "Battle/ReviveDlg";
			}
		}

		public override int layer
		{
			get
			{
				return 1;
			}
		}

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

		private XReviveDocument _doc = null;

		private XWelfareDocument _welfareDoc = null;

		protected override void Init()
		{
			base.Init();
			this._doc = XDocuments.GetSpecificDocument<XReviveDocument>(XReviveDocument.uuID);
			this._welfareDoc = XDocuments.GetSpecificDocument<XWelfareDocument>(XWelfareDocument.uuID);
		}

		public override void RegisterEvent()
		{
			base.RegisterEvent();
			base.uiBehaviour.m_CancelButton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnCancelButtonClicked));
		}

		private bool OnReviveButtonClicked(IXUIButton button)
		{
			this._doc.SendReviveRpc(ReviveType.ReviveItem);
			return true;
		}

		public void ShowSpecialReviveFrame()
		{
			string sprite = "";
			string atlas = "";
			XBagDocument.GetItemSmallIconAndAtlas((int)this._doc.SpecialCostID, out sprite, out atlas, 0u);
			string label = string.Format(XSingleton<XStringTable>.singleton.GetString("REVIVE_COST_NOT_ENOUGH"), string.Format("{0}{1}", XLabelSymbolHelper.FormatImage(atlas, sprite), this._doc.SpecialCostCount));
			XSingleton<UiUtility>.singleton.ShowModalDialog(label, XStringDefineProxy.GetString("COMMON_OK"), XStringDefineProxy.GetString("COMMON_CANCEL"), new ButtonClickEventHandler(this.OnSpecialReviveClicked));
		}

		private bool OnSpecialReviveClicked(IXUIButton button)
		{
			XSingleton<UiUtility>.singleton.CloseModalDlg();
			this._doc.SendReviveRpc(ReviveType.ReviveMoney);
			return true;
		}

		private bool OnVipReviveClicked(IXUIButton button)
		{
			this._doc.SendReviveRpc(ReviveType.ReviveVIP);
			return true;
		}

		private bool OnCancelButtonClicked(IXUIButton button)
		{
			this.ShowReturnFrame();
			return true;
		}

		private void ShowReturnFrame()
		{
			XSingleton<UiUtility>.singleton.ShowModalDialog(this._doc.LeaveSceneTip, XStringDefineProxy.GetString("COMMON_OK"), XStringDefineProxy.GetString("COMMON_CANCEL"), new ButtonClickEventHandler(this.OnReturnButtonClicked));
		}

		private bool OnReturnButtonClicked(IXUIButton button)
		{
			XSingleton<UiUtility>.singleton.CloseModalDlg();
			this._doc.SendLeaveScene();
			return true;
		}

		protected override void OnShow()
		{
			base.OnShow();
			base.uiBehaviour.m_ReviveBuff.SetText(this._doc.BuffStringTip);
			string strSprite = "";
			string strAtlas = "";
			int payMemberReviveLeftCount = this._welfareDoc.GetPayMemberReviveLeftCount();
			bool flag = payMemberReviveLeftCount > 0 && this._doc.CanVipRevive && this._doc.VipReviveCount > 0u;
			if (flag)
			{
				base.uiBehaviour.m_ReviveCostIcon.SetSprite(this._welfareDoc.GetMemberPrivilegeIcon(MemberPrivilege.KingdomPrivilege_Adventurer), XWelfareDocument.MEMBER_PRIVILEGE_ATLAS, false);
				base.uiBehaviour.m_ReviveCost.SetText(this._doc.VipReviveCount.ToString());
				base.uiBehaviour.m_ReviveButton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnVipReviveClicked));
			}
			else
			{
				XBagDocument.GetItemSmallIconAndAtlas((int)this._doc.NormalCostID, out strSprite, out strAtlas, 0u);
				base.uiBehaviour.m_ReviveCostIcon.SetSprite(strSprite, strAtlas, false);
				base.uiBehaviour.m_ReviveCost.SetText(this._doc.NormalCostCount.ToString());
				base.uiBehaviour.m_ReviveButton.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnReviveButtonClicked));
			}
			base.uiBehaviour.m_ReviveLeftTime.SetText(XStringDefineProxy.GetString("LEFT_REVIVE_COUNT", new object[]
			{
				this._doc.ReviveMaxTime - this._doc.ReviveUsedTime,
				this._doc.ReviveMaxTime
			}));
			base.uiBehaviour.m_ReviveFrameTween.PlayTween(true, -1f);
		}
	}
}