summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/PTC/Process/Process_PtcG2C_SkillChangedNtf.cs
blob: 33318a8986e9df855c6e280ad47b25a2423986b7 (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
using System;
using System.Collections.Generic;
using XUtliPoolLib;

namespace XMainClient
{
	internal class Process_PtcG2C_SkillChangedNtf
	{
		public static void Process(PtcG2C_SkillChangedNtf roPtc)
		{
			XPlayerAttributes xplayerData = XSingleton<XAttributeMgr>.singleton.XPlayerData;
			for (int i = 0; i < roPtc.Data.newSkill.Count; i++)
			{
				xplayerData.SkillLevelInfo.SetSkillLevel(roPtc.Data.newSkill[i], roPtc.Data.newSkillLevel[i]);
			}
			for (int i = 0; i < roPtc.Data.changedSkillHash.Count; i++)
			{
				xplayerData.SkillLevelInfo.SetSkillLevel(roPtc.Data.changedSkillHash[i], roPtc.Data.changedSkillLevel[i]);
			}
			for (int i = 0; i < roPtc.Data.removeSkill.Count; i++)
			{
				xplayerData.SkillLevelInfo.RemoveSkill(roPtc.Data.removeSkill[i]);
			}
			xplayerData.SkillLevelInfo.RefreshSkillFlags();
			xplayerData.SkillLevelInfo.RefreshSelfLinkedLevels(XSingleton<XEntityMgr>.singleton.Player);
			bool flag = roPtc.Data.skillType == 0;
			if (flag)
			{
				bool flag2 = XSingleton<XAttributeMgr>.singleton.XPlayerData.SkillPageIndex == 0u;
				if (flag2)
				{
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.SKILL_POINT), (ulong)((long)roPtc.Data.skillpoint));
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.SKILL_POINT_TWO), (ulong)roPtc.Data.skillpointtwo);
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.AWAKE_SKILL_POINT), (ulong)roPtc.Data.awakepoint);
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.AWAKE_SKILL_POINT_TWO), (ulong)roPtc.Data.awakepointtwo);
				}
				else
				{
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.SKILL_POINT_TWO), (ulong)((long)roPtc.Data.skillpoint));
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.SKILL_POINT), (ulong)roPtc.Data.skillpointtwo);
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.AWAKE_SKILL_POINT), (ulong)roPtc.Data.awakepointtwo);
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.AWAKE_SKILL_POINT_TWO), (ulong)roPtc.Data.awakepoint);
				}
			}
			else
			{
				bool flag3 = roPtc.Data.skillType == 1;
				if (flag3)
				{
					XSingleton<XGame>.singleton.Doc.XBagDoc.SetVirtualItemCount(XFastEnumIntEqualityComparer<ItemEnum>.ToInt(ItemEnum.GUILD_CONTRIBUTE), (ulong)((long)roPtc.Data.skillpoint));
				}
			}
			XSkillTreeDocument specificDocument = XDocuments.GetSpecificDocument<XSkillTreeDocument>(XSkillTreeDocument.uuID);
			bool flag4 = roPtc.Data.skillSlot != null && roPtc.Data.skillSlot.Count > 0;
			if (flag4)
			{
				List<int> list = new List<int>();
				for (int i = 0; i < roPtc.Data.skillSlot.Count; i++)
				{
					bool flag5 = roPtc.Data.skillSlot[i] == 0u && xplayerData.skillSlot[i] > 0u;
					if (flag5)
					{
						list.Add(i);
					}
				}
				specificDocument.ShowEmblemTips(list);
			}
			for (int i = 0; i < roPtc.Data.skillSlot.Count; i++)
			{
				xplayerData.skillSlot[i] = roPtc.Data.skillSlot[i];
			}
			bool flag6 = roPtc.Data.skillSlot != null && roPtc.Data.skillSlot.Count > 0;
			if (flag6)
			{
				XEmblemDocument specificDocument2 = XDocuments.GetSpecificDocument<XEmblemDocument>(XEmblemDocument.uuID);
				specificDocument2.UpdateRedPoints();
			}
			specificDocument.SkillRefresh(false, false);
			XSingleton<XTutorialHelper>.singleton.SkillLevelup = true;
		}
	}
}