Elin Modding Docs Doc
Loading...
Searching...
No Matches
ResearchPlan.cs
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using Newtonsoft.Json;
5using UnityEngine;
6
7// Token: 0x02000089 RID: 137
8public class ResearchPlan : EClass
9{
10 // Token: 0x170000B7 RID: 183
11 // (get) Token: 0x060003C4 RID: 964 RVA: 0x0001AD51 File Offset: 0x00018F51
12 public SourceResearch.Row source
13 {
14 get
15 {
16 return EClass.sources.researches.map[this.id];
17 }
18 }
19
20 // Token: 0x170000B8 RID: 184
21 // (get) Token: 0x060003C5 RID: 965 RVA: 0x0001AD6D File Offset: 0x00018F6D
22 public string Name
23 {
24 get
25 {
26 return this.source.GetName() + ((this.source.maxLv == 1) ? "" : (" " + this.rank.ToString()));
27 }
28 }
29
30 // Token: 0x170000B9 RID: 185
31 // (get) Token: 0x060003C6 RID: 966 RVA: 0x0001ADA9 File Offset: 0x00018FA9
32 public int MaxExp
33 {
34 get
35 {
36 return 100;
37 }
38 }
39
40 // Token: 0x170000BA RID: 186
41 // (get) Token: 0x060003C7 RID: 967 RVA: 0x0001ADAD File Offset: 0x00018FAD
42 public bool IsComplete
43 {
44 get
45 {
46 return this.exp == this.MaxExp;
47 }
48 }
49
50 // Token: 0x060003C8 RID: 968 RVA: 0x0001ADBD File Offset: 0x00018FBD
51 public void SetOwner(FactionBranch _branch)
52 {
53 this.branch = _branch;
54 }
55
56 // Token: 0x060003C9 RID: 969 RVA: 0x0001ADC6 File Offset: 0x00018FC6
57 public void GainExp(int a)
58 {
59 this.exp += a;
60 if (this.exp > this.MaxExp)
61 {
62 this.exp = this.MaxExp;
63 }
64 }
65
66 // Token: 0x060003CA RID: 970 RVA: 0x0001ADF0 File Offset: 0x00018FF0
67 public int GetSortVal(UIList.SortMode m)
68 {
69 if (this.IsComplete)
70 {
71 return 0;
72 }
73 return -10;
74 }
75
76 // Token: 0x060003CB RID: 971 RVA: 0x0001AE00 File Offset: 0x00019000
77 public void WriteNote(UINote n)
78 {
79 n.Clear();
80 n.AddHeader(this.Name, null);
81 n.AddText(string.Concat(new string[]
82 {
83 "vRank".lang(),
84 this.rank.ToString(),
85 " (",
86 Mathf.Clamp(this.exp * 100 / this.MaxExp, 0, 100).ToString(),
87 "%)"
88 }), FontColor.DontChange);
89 n.AddText("vMaxRank".lang() + this.source.maxLv.ToString(), FontColor.DontChange);
90 n.AddHeader("researchEffect", null);
91 this.ParseReward(n);
92 n.Build();
93 }
94
95 // Token: 0x060003CC RID: 972 RVA: 0x0001AEC3 File Offset: 0x000190C3
96 public void OnComplete()
97 {
98 this.ParseReward(null);
99 }
100
101 // Token: 0x060003CD RID: 973 RVA: 0x0001AECC File Offset: 0x000190CC
102 public void ParseReward(UINote n = null)
103 {
104 bool flag = n == null;
105 string reward = this.source.reward;
106 if (reward.IsEmpty())
107 {
108 return;
109 }
110 string[] array = reward.Split(Environment.NewLine.ToCharArray());
111 string text = array[0];
112 foreach (string text2 in array)
113 {
114 if (text2.Split(',', StringSplitOptions.None)[0].ToInt() <= this.rank)
115 {
116 text = text2;
117 }
118 }
119 List<string> list = text.Split(',', StringSplitOptions.None).ToList<string>();
120 list.RemoveAt(0);
121 foreach (string text3 in list)
122 {
123 string[] array3 = text3.Split('/', StringSplitOptions.None);
124 string text4 = "";
125 string a = array3[0];
126 if (!(a == "r"))
127 {
128 if (!(a == "p"))
129 {
130 if (!(a == "e"))
131 {
132 if (a == "department")
133 {
134 text4 = "rewardDepartment".lang(this.source.GetName(), null, null, null, null);
135 }
136 }
137 else
138 {
139 Element element = Element.Create(array3[1], array3[2].ToInt());
140 text4 = "rewardElement".lang(EClass.sources.elements.alias[array3[1]].GetName(), array3[2], null, null, null);
141 if (flag)
142 {
143 this.branch.AddFeat(element.id, element.Value);
144 }
145 }
146 }
147 else
148 {
149 text4 = "rewardPolicy".lang(EClass.sources.elements.alias[array3[1]].GetName(), null, null, null, null);
150 if (flag)
151 {
152 this.branch.policies.AddPolicy(array3[1]);
153 }
154 }
155 }
156 else
157 {
158 text4 = "rewardRecipe".lang(EClass.sources.cards.map[array3[1]].GetName(), null, null, null, null);
159 if (flag)
160 {
161 EClass.player.recipes.Add(array3[1], true);
162 }
163 }
164 if (n != null)
165 {
166 n.AddText(text4, FontColor.DontChange);
167 }
168 }
169 }
170
171 // Token: 0x060003CE RID: 974 RVA: 0x0001B120 File Offset: 0x00019320
172 public static ResearchPlan Create(string id)
173 {
174 return new ResearchPlan
175 {
176 id = id
177 };
178 }
179
180 // Token: 0x040005AB RID: 1451
181 [JsonProperty]
182 public string id;
183
184 // Token: 0x040005AC RID: 1452
185 [JsonProperty]
186 public int exp;
187
188 // Token: 0x040005AD RID: 1453
189 [JsonProperty]
190 public int lastExp;
191
192 // Token: 0x040005AE RID: 1454
193 [JsonProperty]
194 public int rank = 1;
195
196 // Token: 0x040005AF RID: 1455
197 public FactionBranch branch;
198}