Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
WindowCharaMini.cs
Go to the documentation of this file.
1using System.Linq;
2using UnityEngine;
3
5{
6 public Chara chara;
7
9
11
13
15
17
19
21
22 public Transform contentList;
23
24 public UINote note;
25
26 public UIList listEq;
27
29
31
33
34 public void SetChara(Chara c)
35 {
36 chara = c;
37 Refresh(0);
38 }
39
40 public override void OnSwitchContent(Window window)
41 {
42 if (chara != null)
43 {
45 }
46 }
47
48 public void Refresh(int idTab)
49 {
50 if (chara == null)
51 {
52 return;
53 }
54 contentList.DestroyChildren();
55 note.Clear();
56 note.SetActive(enable: false);
58 textInfo1.text = "_DV".lang(chara.DV.ToString() ?? "", chara.PV.ToString() ?? "");
59 textInfo2.text = "_style".lang(Lang._weight(chara.body.GetWeight(armorOnly: true)) ?? "", chara.elements.GetOrCreateElement(chara.GetArmorSkill()).Name, ("style" + chara.body.GetAttackStyle()).lang());
60 UIList list = default(UIList);
61 if (idTab == 0)
62 {
63 Header("resistance", null);
64 ListResist();
65 list.callbacks = new UIList.Callback<Element, ButtonElement>
66 {
67 onInstantiate = delegate(Element a, ButtonElement b)
68 {
69 b.SetGrid(a, chara);
70 },
71 onList = delegate
72 {
73 foreach (SourceElement.Row item in EClass.sources.elements.rows.Where((SourceElement.Row a) => a.category == "resist" && ((!a.tag.Contains("hidden") && !a.tag.Contains("high")) || chara.Evalue(a.id) != 0)))
74 {
76 }
77 }
78 };
79 list.List();
80 }
81 else if (idTab == 1)
82 {
83 Header("mutation", null);
84 ListFeat();
85 list.callbacks = new UIList.Callback<Feat, ButtonElement>
86 {
87 onClick = delegate(Feat a, ButtonElement b)
88 {
90 },
91 onInstantiate = delegate(Feat a, ButtonElement b)
92 {
94 },
95 onList = delegate
96 {
97 foreach (Element item2 in chara.elements.ListElements((Element a) => a.source.category == "mutation" && a.Value != 0))
98 {
99 list.Add(item2);
100 }
101 }
102 };
103 list.List();
104 if (list.items.Count == 0)
105 {
106 _header.SetActive(enable: false);
107 list.SetActive(enable: false);
108 }
109 Header("etherDisease", null);
110 ListFeat();
111 list.callbacks = new UIList.Callback<Feat, ButtonElement>
112 {
113 onClick = delegate(Feat a, ButtonElement b)
114 {
116 },
117 onInstantiate = delegate(Feat a, ButtonElement b)
118 {
120 },
121 onList = delegate
122 {
123 foreach (Element item3 in chara.elements.ListElements((Element a) => a.source.category == "ether" && a.Value != 0))
124 {
125 list.Add(item3);
126 }
127 }
128 };
129 list.List();
130 if (list.items.Count == 0)
131 {
132 _header.SetActive(enable: false);
133 list.SetActive(enable: false);
134 }
135 Header("innateFeats", null);
136 ListFeat();
137 list.callbacks = new UIList.Callback<Feat, ButtonElement>
138 {
139 onClick = delegate(Feat a, ButtonElement b)
140 {
142 },
143 onInstantiate = delegate(Feat a, ButtonElement b)
144 {
146 },
147 onList = delegate
148 {
149 foreach (Element item4 in chara.elements.ListElements((Element a) => a.source.category == "feat" && a.HasTag("innate") && a.Value != 0))
150 {
151 list.Add(item4);
152 }
153 }
154 };
155 list.List();
156 Header("feats", null);
157 ListFeat();
158 list.callbacks = new UIList.Callback<Feat, ButtonElement>
159 {
160 onClick = delegate(Feat a, ButtonElement b)
161 {
163 },
164 onInstantiate = delegate(Feat a, ButtonElement b)
165 {
167 },
168 onList = delegate
169 {
170 foreach (Element item5 in chara.elements.ListElements((Element a) => a.source.category == "feat" && !a.HasTag("innate") && a.Value != 0))
171 {
172 list.Add(item5);
173 }
174 },
175 onSort = (Feat a, UIList.SortMode m) => a.GetSortVal(m)
176 };
177 list.ChangeSort(UIList.SortMode.ByID);
178 list.List();
179 }
180 else if (idTab == 2)
181 {
182 if (chara.c_upgrades == null)
183 {
184 chara.c_upgrades = new CharaUpgrade();
185 }
186 CharaUpgrade upgrades = chara.c_upgrades;
187 CharaGenes genes = chara.c_genes;
188 int num = upgrades.spent;
189 if (genes != null)
190 {
191 num += genes.GetTotalCost();
192 }
193 note.SetActive(enable: true);
194 note.AddText("feat_pet".lang(chara.feat.ToString() ?? "", num.ToString() ?? ""));
195 note.AddText("feat_inferior".lang(chara.CurrentGeneSlot.ToString() ?? "", chara.MaxGeneSlot.ToString() ?? "", ((genes != null) ? genes.inferior : 0).ToString() ?? ""));
196 note.Space(8);
197 foreach (CharaUpgrade.Item item6 in upgrades.items)
198 {
199 if (!Element.List_MainAttributesMajor.Contains(item6.idEle))
200 {
201 Element element = Element.Create(item6.idEle, item6.value);
202 note.AddText("upgraded".lang(element.Name.ToTitleCase(), item6.value.ToString() ?? "", item6.cost.ToString() ?? ""));
203 }
204 }
205 if (chara.c_genes != null)
206 {
207 foreach (DNA g in genes.items)
208 {
209 UIItem uIItem = note.AddItem("ItemGene");
210 uIItem.button1.mainText.SetText(g.GetText());
211 uIItem.button1.SetTooltip(delegate(UITooltip t)
212 {
213 UINote uINote = t.note;
214 uINote.Clear();
215 uINote.AddHeader(g.GetText());
216 g.WriteNote(uINote);
217 t.note.Build();
218 });
219 uIItem.button2.SetOnClick(delegate
220 {
221 if (!g.CanRemove())
222 {
223 SE.Beep();
224 }
225 else
226 {
227 Dialog.YesNo("dialog_removeGene", delegate
228 {
229 genes.inferior--;
230 SE.Trash();
231 genes.Remove(chara, g);
232 Refresh(idTab);
233 });
234 }
235 });
236 uIItem.button2.SetActive(genes != null && genes.inferior > 0);
237 }
238 }
239 if (EClass.debug.enable)
240 {
241 note.AddButton("add 20".lang(), delegate
242 {
243 chara.feat += 20;
244 Refresh(idTab);
245 });
246 note.AddButton("grow 100".lang(), delegate
247 {
248 chara.feat += 100;
250 Refresh(idTab);
251 });
252 }
253 if (upgrades.count > 0)
254 {
255 note.AddButton("feat_reset".lang(), delegate
256 {
257 upgrades.Reset(chara);
258 SE.Trash();
259 Refresh(idTab);
260 });
261 }
262 note.Build();
263 }
264 else if (idTab == 3)
265 {
266 note.SetActive(enable: true);
267 WindowChara.RefreshNote(chara, note, shortMode: true);
268 }
270 void Header(string lang, string lang2)
271 {
273 _header.SetText(lang);
274 if (lang2 != null)
275 {
276 Util.Instantiate(moldHeader2, contentList).SetText(lang2);
277 }
278 }
279 void ListFeat()
280 {
282 }
283 void ListResist()
284 {
286 }
287 }
288
289 public void RefreshEquipment()
290 {
291 UIList uIList = listEq;
292 uIList.Clear();
293 uIList.callbacks = new UIList.Callback<BodySlot, UIItem>
294 {
295 onClick = delegate
296 {
297 },
298 onInstantiate = delegate(BodySlot a, UIItem b)
299 {
300 if (a.elementId == 0)
301 {
302 b.button1.interactable = false;
303 }
304 else
305 {
306 Thing thing = (Thing)(b.refObj = a.thing);
307 if (thing != null)
308 {
309 b.button1.icon.material = matItem;
310 thing.SetImage(b.button1.icon);
311 }
312 else
313 {
314 b.button1.icon.material = null;
315 b.button1.icon.sprite = SpriteSheet.Get("Media/Graphics/Icon/Element/", "eq_" + a.element.alias);
316 b.button1.icon.color = colorUnequipped;
317 b.button1.icon.SetNativeSize();
318 }
319 b.button1.SetTooltip(delegate(UITooltip tt)
320 {
321 if (a.thing != null)
322 {
323 a.thing.WriteNote(tt.note);
324 }
325 else
326 {
327 tt.note.Clear();
328 tt.note.AddHeader(a.name);
329 tt.note.AddText("noEQ".lang());
330 if (a.elementId == 35)
331 {
332 Thing.AddAttackEvaluation(tt.note, chara);
333 }
334 }
335 tt.note.Build();
336 });
337 }
338 },
339 onSort = (BodySlot a, UIList.SortMode m) => -a.element.sort
340 };
341 foreach (BodySlot slot in chara.body.slots)
342 {
343 if (slot.elementId != 44)
344 {
345 uIList.Add(slot);
346 }
347 }
348 uIList.Sort();
349 uIList.Refresh();
350 }
351}
list. Refresh()
string name
Definition: BodySlot.cs:14
int elementId
Definition: BodySlot.cs:6
Thing thing
Definition: BodySlot.cs:8
SourceElement.Row element
Definition: BodySlot.cs:16
void SetElement(Element _e, ElementContainer _owner, Mode _mode=Mode.Skill)
void SetGrid(Element e, Chara c)
ElementContainerCard elements
Definition: Card.cs:37
CharaUpgrade c_upgrades
Definition: Card.cs:1733
CharaGenes c_genes
Definition: Card.cs:1745
int feat
Definition: Card.cs:358
string NameSimple
Definition: Card.cs:2015
int Evalue(int ele)
Definition: Card.cs:2431
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:5355
List< BodySlot > slots
Definition: CharaBody.cs:8
AttackStyle GetAttackStyle()
Definition: CharaBody.cs:427
int GetWeight(bool armorOnly=false)
Definition: CharaBody.cs:384
int inferior
Definition: CharaGenes.cs:10
int GetTotalCost()
Definition: CharaGenes.cs:20
List< DNA > items
Definition: CharaGenes.cs:7
List< Item > items
Definition: CharaUpgrade.cs:61
Definition: Chara.cs:10
CharaBody body
Definition: Chara.cs:91
override int GetArmorSkill()
Definition: Chara.cs:7101
int MaxGeneSlot
Definition: Chara.cs:891
int CurrentGeneSlot
Definition: Chara.cs:894
void TryUpgrade(bool msg=true)
Definition: Chara.cs:7796
override int DV
Definition: Chara.cs:714
override int PV
Definition: Chara.cs:743
bool enable
Definition: CoreDebug.cs:285
Definition: DNA.cs:8
bool CanRemove()
Definition: DNA.cs:234
string GetText()
Definition: DNA.cs:534
void WriteNote(UINote n)
Definition: DNA.cs:539
Definition: EClass.cs:5
static SourceManager sources
Definition: EClass.cs:42
static CoreDebug debug
Definition: EClass.cs:48
List< Element > ListElements(Func< Element, bool > shoudList=null, Comparison< Element > comparison=null)
Element GetOrCreateElement(Element ele)
int id
Definition: ELEMENT.cs:240
SourceElement.Row source
Definition: ELEMENT.cs:263
bool HasTag(string tag)
Definition: ELEMENT.cs:463
int GetSortVal(UIList.SortMode m)
Definition: ELEMENT.cs:834
int Value
Definition: ELEMENT.cs:282
virtual string Name
Definition: ELEMENT.cs:294
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:913
static int[] List_MainAttributesMajor
Definition: ELEMENT.cs:232
Definition: FEAT.cs:249
Definition: Lang.cs:6
static string _weight(int a, int b, bool showUnit=true, int unitSize=0)
Definition: Lang.cs:172
SourceElement elements
static Sprite Get(string id)
Definition: SpriteSheet.cs:28
Definition: Thing.cs:8
override void WriteNote(UINote n, Action< UINote > onWriteNote=null, IInspect.NoteMode mode=IInspect.NoteMode.Default, Recipe recipe=null)
Definition: Thing.cs:837
static void AddAttackEvaluation(UINote n, Chara chara, Thing current=null)
Definition: Thing.cs:1373
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
void SetTooltip(Action< UITooltip > onShowTooltip=null, bool enable=true)
Definition: UIButton.cs:361
void SetText(string s)
Definition: UIHeader.cs:24
Definition: UIItem.cs:5
UIButton button1
Definition: UIItem.cs:18
UIButton button2
Definition: UIItem.cs:20
object refObj
Definition: UIItem.cs:30
Definition: UIList.cs:9
List< object > items
Definition: UIList.cs:241
override void Clear()
Definition: UIList.cs:349
SortMode
Definition: UIList.cs:27
override void Add(object item)
Definition: UIList.cs:302
void ChangeSort(SortMode m)
Definition: UIList.cs:705
override void List()
Definition: UIList.cs:717
Definition: UINote.cs:6
void Clear()
Definition: UINote.cs:35
UIItem AddItem(string id)
Definition: UINote.cs:139
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIButton AddButton(string text, Action onClick)
Definition: UINote.cs:182
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
void Space(int sizeY=0, int sizeX=1)
Definition: UINote.cs:62
void Build()
Definition: UINote.cs:49
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
UINote note
Definition: UITooltip.cs:21
Definition: Util.cs:10
static Transform Instantiate(string path, Component parent=null)
Definition: Util.cs:67
static void Toggle(Element e)
Transform contentList
override void OnSwitchContent(Window window)
UIHeader moldHeader2
UIHeader moldHeader
void SetChara(Chara c)
void Refresh(int idTab)
static void RefreshNote(Chara chara, UINote n, bool shortMode=false)
Definition: WindowChara.cs:854
Definition: Window.cs:13
int idTab
Definition: Window.cs:694