summaryrefslogtreecommitdiff
path: root/Client/Assets/Scripts/XMainClient/ArtifactSuitMgr.cs
blob: 95e3c3a2bc69054e2b08201079ee337036ca9a26 (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
using System;
using System.Collections.Generic;
using XUtliPoolLib;

namespace XMainClient
{
	internal class ArtifactSuitMgr
	{
		public List<ArtifactSuit> Suits
		{
			get
			{
				return this.m_Suits;
			}
		}

		private List<ArtifactSuit> m_Suits = new List<ArtifactSuit>();

		public ArtifactSuitMgr(ArtifactSuitTable.RowData[] datas)
		{
			foreach (ArtifactSuitTable.RowData rowData in datas)
			{
				ArtifactSuit artifactSuit = new ArtifactSuit();
				artifactSuit.Id = rowData.ArtifactSuitID;
				artifactSuit.Name = rowData.Name;
				artifactSuit.Level = rowData.Level;
				artifactSuit.SuitId = rowData.ArtifactSuitID;
				artifactSuit.ElementType = rowData.ElementType;
				artifactSuit.SuitQuality = rowData.SuitQuality;
				artifactSuit.IsCreateShow = (rowData.IsCreateShow != 0);
				artifactSuit.effects[1] = default(SeqListRef<uint>);
				artifactSuit.effects[2] = ((rowData.Effect2.Count > 0) ? rowData.Effect2 : default(SeqListRef<uint>));
				artifactSuit.effects[3] = ((rowData.Effect3.Count > 0) ? rowData.Effect3 : default(SeqListRef<uint>));
				artifactSuit.effects[4] = ((rowData.Effect4.Count > 0) ? rowData.Effect4 : default(SeqListRef<uint>));
				artifactSuit.effects[5] = ((rowData.Effect5.Count > 0) ? rowData.Effect5 : default(SeqListRef<uint>));
				artifactSuit.effects[6] = ((rowData.Effect6.Count > 0) ? rowData.Effect6 : default(SeqListRef<uint>));
				for (int j = 0; j < artifactSuit.effects.Length; j++)
				{
					bool flag = artifactSuit.effects[j].Count > 0;
					if (flag)
					{
						artifactSuit.activeCount.Add(j);
						artifactSuit.MaxSuitEffectCount = (uint)j;
					}
				}
				this.m_Suits.Add(artifactSuit);
			}
		}

		public ArtifactSuit GetSuitByArtifactId(uint artifactId)
		{
			for (int i = 0; i < this.m_Suits.Count; i++)
			{
				bool flag = this.m_Suits[i].Artifacts.Contains(artifactId);
				if (flag)
				{
					return this.m_Suits[i];
				}
			}
			return null;
		}

		public ArtifactSuit GetSuitBySuitId(uint suitId)
		{
			for (int i = 0; i < this.m_Suits.Count; i++)
			{
				bool flag = this.m_Suits[i].Id == suitId;
				if (flag)
				{
					return this.m_Suits[i];
				}
			}
			return null;
		}

		public bool WillChangeEquipedCount(int suitItemID, int newItemID)
		{
			ArtifactSuit suitByArtifactId = this.GetSuitByArtifactId((uint)suitItemID);
			bool flag = suitByArtifactId == null;
			return !flag && suitByArtifactId.WillChangeEquipedCount(newItemID, suitItemID);
		}
	}
}