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
|
using System;
using System.Collections.Generic;
using KKSG;
using UILib;
using UnityEngine;
using XMainClient.UI.UICommon;
using XUtliPoolLib;
namespace XMainClient.UI
{
internal class XSpriteAttributeSHandler : DlgHandlerBase
{
protected override string FileName
{
get
{
return "GameSystem/SpriteSystem/SpriteSkill";
}
}
private XUIPool m_SkillPool = new XUIPool(XSingleton<XGameUI>.singleton.m_uiTool);
private IXUIList m_SkillList;
private GameObject m_MainSkill;
private Dictionary<uint, double> attrCompareData = new Dictionary<uint, double>();
private Dictionary<uint, double> aptitudeCompareData = new Dictionary<uint, double>();
private List<uint> m_passiveSkillID = new List<uint>();
private uint m_mainSkillID;
private uint m_mainSkillLevel;
protected override void Init()
{
base.Init();
this.m_SkillList = (base.PanelObject.transform.Find("OtherSkill").GetComponent("XUIList") as IXUIList);
Transform transform = base.PanelObject.transform.Find("OtherSkill/Tpl");
this.m_SkillPool.SetupPool(transform.parent.gameObject, transform.gameObject, 3u, false);
this.m_MainSkill = base.PanelObject.transform.Find("MainSkill").gameObject;
this.m_MainSkill.SetActive(false);
}
private void CreateSpriteSkill(List<uint> passiveSkillID, uint skillID, uint evolutionLevel)
{
this.m_passiveSkillID = passiveSkillID;
this.m_mainSkillID = skillID;
this.m_mainSkillLevel = evolutionLevel;
this.m_SkillPool.FakeReturnAll();
for (int i = 0; i < passiveSkillID.Count; i++)
{
GameObject go = this.m_SkillPool.FetchGameObject(false);
this.SetSkillIcon(go, passiveSkillID[i], false, 0u);
}
this.m_SkillList.Refresh();
this.m_SkillPool.ActualReturnAll(false);
this.m_MainSkill.SetActive(true);
this.SetSkillIcon(this.m_MainSkill, skillID, true, evolutionLevel);
}
private void SetSkillIcon(GameObject go, uint skillID, bool mainSkill = false, uint evolutionLevel = 0u)
{
IXUISprite ixuisprite = go.transform.Find("Icon").GetComponent("XUISprite") as IXUISprite;
IXUILabel ixuilabel = go.transform.Find("Zhu").GetComponent("XUILabel") as IXUILabel;
IXUILabel ixuilabel2 = go.transform.Find("Level").GetComponent("XUILabel") as IXUILabel;
IXUISprite ixuisprite2 = go.transform.Find("Frame").GetComponent("XUISprite") as IXUISprite;
ixuisprite.ID = (ulong)skillID;
ixuisprite.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnSkillIconClicked));
XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument<XSpriteSystemDocument>(XSpriteSystemDocument.uuID);
SpriteSkill.RowData spriteSkillData = specificDocument.GetSpriteSkillData((short)skillID, mainSkill, evolutionLevel);
bool flag = spriteSkillData != null;
if (flag)
{
ixuisprite.SetSprite(spriteSkillData.Icon, spriteSkillData.Atlas, false);
}
ixuilabel.SetVisible(mainSkill);
ixuisprite2.SetVisible(!mainSkill);
bool flag2 = !mainSkill;
if (flag2)
{
ixuisprite2.SetSprite(string.Format("kuang_zq0{0}", spriteSkillData.SkillQuality));
}
ixuilabel2.SetText(string.Format("[b]Lv.{0}[-]", evolutionLevel + 1u));
ixuilabel2.SetVisible(mainSkill);
}
private void OnSkillIconClicked(IXUISprite obj)
{
uint num = (uint)obj.ID;
bool flag = num == this.m_mainSkillID;
DlgBase<XSpriteSkillTipDlg, XSpriteSkillTipBehaviour>.singleton.ItemSelector.Select(obj);
DlgBase<XSpriteSkillTipDlg, XSpriteSkillTipBehaviour>.singleton.ShowSpriteSkill(num, flag, flag ? this.m_mainSkillLevel : 0u);
}
public void SetSpriteAttributeInfo(SpriteInfo spriteData, SpriteInfo compareData = null)
{
bool flag = spriteData == null;
if (flag)
{
this.m_SkillPool.ReturnAll(false);
this.m_MainSkill.SetActive(false);
}
else
{
this.CreateSpriteSkill(spriteData.PassiveSkillID, spriteData.SkillID, spriteData.EvolutionLevel);
}
}
public void SetSpriteAttributeInfo(uint spriteID)
{
this.attrCompareData.Clear();
this.aptitudeCompareData.Clear();
XSpriteSystemDocument specificDocument = XDocuments.GetSpecificDocument<XSpriteSystemDocument>(XSpriteSystemDocument.uuID);
SpriteTable.RowData bySpriteID = specificDocument._SpriteTable.GetBySpriteID(spriteID);
bool flag = bySpriteID == null;
if (!flag)
{
List<uint> passiveSkillID = new List<uint>();
this.CreateSpriteSkill(passiveSkillID, bySpriteID.SpriteSkillID, 0u);
}
}
}
}
|