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
|
using System;
using UILib;
using UnityEngine;
using XMainClient.UI.UICommon;
using XUtliPoolLib;
namespace XMainClient.UI
{
internal class GuildPositionMenu : DlgBase<GuildPositionMenu, GuildPositionBehaviour>
{
public override string fileName
{
get
{
return "Guild/GuildPositionMenu";
}
}
private GuildPosition _SelectPosition;
private ulong _MemberID;
private XGuildMemberDocument _memberDoc;
public void ShowMenu(ulong MemberID)
{
this._MemberID = MemberID;
bool flag = base.IsVisible();
if (flag)
{
this.RefreshView();
}
else
{
this.SetVisibleWithAnimation(true, null);
}
}
protected override void Init()
{
base.Init();
this._memberDoc = XDocuments.GetSpecificDocument<XGuildMemberDocument>(XGuildMemberDocument.uuID);
}
protected override void OnShow()
{
base.OnShow();
this.RefreshView();
}
public override void RegisterEvent()
{
base.RegisterEvent();
base.uiBehaviour.m_memuSprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.ClickClose));
}
private void RefreshView()
{
base.uiBehaviour.m_MenuPool.ReturnAll(false);
float x = base.uiBehaviour.m_MenuPool.TplPos.x;
float num = base.uiBehaviour.m_MenuPool.TplPos.y;
float z = base.uiBehaviour.m_MenuPool.TplPos.z;
int num2 = XFastEnumIntEqualityComparer<GuildPosition>.ToInt(GuildPosition.GPOS_COUNT);
bool flag = num2 > 2;
if (flag)
{
num += (float)((num2 - 2) * base.uiBehaviour.m_MenuPool.TplHeight / 2);
}
int spriteHeight = base.uiBehaviour.m_MenuPool.TplHeight * (num2 - 1);
int num3 = XFastEnumIntEqualityComparer<GuildPosition>.ToInt(this._memberDoc.GetMemberPosition(this._MemberID));
for (int i = 0; i < num2; i++)
{
bool flag2 = num3 == i;
if (!flag2)
{
GameObject gameObject = base.uiBehaviour.m_MenuPool.FetchGameObject(false);
bool flag3 = i < num3;
if (flag3)
{
gameObject.transform.localPosition = new Vector3(x, num - (float)(base.uiBehaviour.m_MenuPool.TplHeight * i), z);
}
else
{
gameObject.transform.localPosition = new Vector3(x, num - (float)(base.uiBehaviour.m_MenuPool.TplHeight * (i - 1)), z);
}
IXUIButton ixuibutton = gameObject.transform.Find("button").GetComponent("XUIButton") as IXUIButton;
IXUILabel ixuilabel = gameObject.transform.Find("button/name").GetComponent("XUILabel") as IXUILabel;
ixuibutton.ID = (ulong)((long)i);
ixuibutton.RegisterClickEventHandler(new ButtonClickEventHandler(this.ClickHandler));
ixuilabel.SetText(XGuildDocument.GuildPP.GetPositionName((GuildPosition)i, false));
}
}
base.uiBehaviour.m_memuSprite.spriteHeight = spriteHeight;
}
private bool ClickHandler(IXUIButton btn)
{
DlgBase<GuildPositionMenu, GuildPositionBehaviour>.singleton.SetVisibleWithAnimation(false, null);
DlgBase<XOtherPlayerInfoView, XOtherPlayerInfoBehaviour>.singleton.SetVisibleWithAnimation(false, null);
this._SelectPosition = (GuildPosition)btn.ID;
bool flag = this._SelectPosition == GuildPosition.GPOS_LEADER;
if (flag)
{
XSingleton<UiUtility>.singleton.ShowModalDialog(XStringDefineProxy.GetString("GUILD_CHANGELEADER_CONFIRM", new object[]
{
XGuildDocument.GuildPP.GetPositionName(GuildPosition.GPOS_LEADER, false)
}), XStringDefineProxy.GetString("COMMON_OK"), XStringDefineProxy.GetString("COMMON_CANCEL"), new ButtonClickEventHandler(this.OnSelectPositionHandler));
}
else
{
this.OnSelectPositionHandler(null);
}
return true;
}
private bool OnSelectPositionHandler(IXUIButton btn)
{
XSingleton<UiUtility>.singleton.CloseModalDlg();
this._memberDoc.ReqChangePosition(this._MemberID, this._SelectPosition);
return true;
}
private void ClickClose(IXUISprite sprite)
{
this.SetVisibleWithAnimation(false, null);
}
}
}
|