blob: 652b5e1c8af2d3525674eef72ce03dc8f92f6091 (
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
using System;
using System.Collections.Generic;
using KKSG;
using XMainClient.UI;
using XUtliPoolLib;
namespace XMainClient
{
internal class XSceneDamageRankDocument : XDocComponent
{
public override uint ID
{
get
{
return XSceneDamageRankDocument.uuID;
}
}
public List<XBaseRankInfo> RankList
{
get
{
return this.m_RankList;
}
}
public new static readonly uint uuID = XSingleton<XCommon>.singleton.XHash("SceneDamageRankDocument");
public IRankView RankHandler;
private List<XBaseRankInfo> m_RankList = new List<XBaseRankInfo>();
public override void OnEnterSceneFinally()
{
this.m_RankList.Clear();
}
public void ReqRank()
{
PtcC2G_SceneDamageRankReport proto = new PtcC2G_SceneDamageRankReport();
XSingleton<XClientNetwork>.singleton.Send(proto);
}
public void OnGetRank(SceneDamageRankNtf data)
{
bool flag = data.damage.Count != data.name.Count;
if (!flag)
{
int num = data.damage.Count - this.m_RankList.Count;
for (int i = 0; i < num; i++)
{
this.m_RankList.Add(new XBaseRankInfo());
}
bool flag2 = num < 0;
if (flag2)
{
this.m_RankList.RemoveRange(this.m_RankList.Count + num, -num);
}
for (int j = 0; j < this.m_RankList.Count; j++)
{
this.m_RankList[j].name = data.name[j];
this.m_RankList[j].value = (ulong)data.damage[j];
this.m_RankList[j].id = data.roleid[j];
}
this.m_RankList.Sort(new Comparison<XBaseRankInfo>(this._Compare));
bool flag3 = this.RankHandler != null && this.RankHandler.IsVisible();
if (flag3)
{
this.RankHandler.RefreshPage();
}
}
}
public void OnGetRank(List<XCaptainPVPInfo> data)
{
int num = data.Count - this.m_RankList.Count;
for (int i = 0; i < num; i++)
{
this.m_RankList.Add(new XCaptainPVPRankInfo());
}
bool flag = num < 0;
if (flag)
{
this.m_RankList.RemoveRange(this.m_RankList.Count + num, -num);
}
for (int j = 0; j < this.m_RankList.Count; j++)
{
XCaptainPVPRankInfo xcaptainPVPRankInfo = this.m_RankList[j] as XCaptainPVPRankInfo;
xcaptainPVPRankInfo.name = data[j].name;
xcaptainPVPRankInfo.kill = data[j].kill;
xcaptainPVPRankInfo.dead = data[j].dead;
xcaptainPVPRankInfo.assit = data[j].assit;
bool bSpectator = XSingleton<XScene>.singleton.bSpectator;
if (bSpectator)
{
xcaptainPVPRankInfo.id = data[j].id;
}
}
this.m_RankList.Sort(new Comparison<XBaseRankInfo>(this._ComparePVP));
bool flag2 = this.RankHandler != null && this.RankHandler.IsVisible();
if (flag2)
{
this.RankHandler.RefreshPage();
}
}
private int _Compare(XBaseRankInfo left, XBaseRankInfo right)
{
bool flag = left.value == right.value;
int result;
if (flag)
{
result = left.id.CompareTo(right.id);
}
else
{
result = -left.value.CompareTo(right.value);
}
return result;
}
private int _ComparePVP(XBaseRankInfo left, XBaseRankInfo right)
{
XCaptainPVPRankInfo xcaptainPVPRankInfo = left as XCaptainPVPRankInfo;
XCaptainPVPRankInfo xcaptainPVPRankInfo2 = right as XCaptainPVPRankInfo;
bool flag = xcaptainPVPRankInfo.kill == xcaptainPVPRankInfo2.kill;
int result;
if (flag)
{
bool flag2 = xcaptainPVPRankInfo.dead == xcaptainPVPRankInfo2.dead;
if (flag2)
{
result = xcaptainPVPRankInfo.id.CompareTo(xcaptainPVPRankInfo2.id);
}
else
{
result = xcaptainPVPRankInfo.dead.CompareTo(xcaptainPVPRankInfo2.dead);
}
}
else
{
result = -xcaptainPVPRankInfo.kill.CompareTo(xcaptainPVPRankInfo2.kill);
}
return result;
}
protected override void OnReconnected(XReconnectedEventArgs arg)
{
}
}
}
|