Elin Decompiled Documentation EA 23.240 Nightly
Loading...
Searching...
No Matches
WindowCharaMini.cs
Go to the documentation of this file.
1using System;
2using System.Linq;
3using UnityEngine;
4
6{
7 public Chara chara;
8
10
12
14
16
18
20
22
23 public Transform contentList;
24
25 public UINote note;
26
27 public UIList listEq;
28
30
32
34
35 public void SetChara(Chara c)
36 {
37 chara = c;
38 Refresh(0);
39 }
40
41 public override void OnSwitchContent(Window window)
42 {
43 if (chara != null)
44 {
46 }
47 }
48
49 public void Refresh(int idTab)
50 {
51 if (chara == null)
52 {
53 return;
54 }
55 contentList.DestroyChildren();
56 note.Clear();
57 note.SetActive(enable: false);
59 textInfo1.text = "_DV".lang(chara.DV.ToString() ?? "", chara.PV.ToString() ?? "");
60 textInfo2.text = "_style".lang(Lang._weight(chara.body.GetWeight(armorOnly: true)) ?? "", chara.elements.GetOrCreateElement(chara.GetArmorSkill()).Name, ("style" + chara.body.GetAttackStyle()).lang());
61 UIList list = default(UIList);
62 if (idTab == 0)
63 {
64 Header("resistance", null);
65 ListResist();
66 list.callbacks = new UIList.Callback<Element, ButtonElement>
67 {
68 onInstantiate = delegate(Element a, ButtonElement b)
69 {
70 b.SetGrid(a, chara);
71 },
72 onList = delegate
73 {
74 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)))
75 {
77 }
78 }
79 };
80 list.List();
81 }
82 else if (idTab == 1)
83 {
84 Header("mutation", null);
85 ListFeat();
86 list.callbacks = new UIList.Callback<Feat, ButtonElement>
87 {
88 onClick = delegate(Feat a, ButtonElement b)
89 {
91 },
92 onInstantiate = delegate(Feat a, ButtonElement b)
93 {
95 },
96 onList = delegate
97 {
98 foreach (Element item2 in chara.elements.ListElements((Element a) => a.source.category == "mutation" && a.Value != 0))
99 {
100 list.Add(item2);
101 }
102 }
103 };
104 list.List();
105 if (list.items.Count == 0)
106 {
107 _header.SetActive(enable: false);
108 list.SetActive(enable: false);
109 }
110 Header("etherDisease", null);
111 ListFeat();
112 list.callbacks = new UIList.Callback<Feat, ButtonElement>
113 {
114 onClick = delegate(Feat a, ButtonElement b)
115 {
117 },
118 onInstantiate = delegate(Feat a, ButtonElement b)
119 {
121 },
122 onList = delegate
123 {
124 foreach (Element item3 in chara.elements.ListElements((Element a) => a.source.category == "ether" && a.Value != 0))
125 {
126 list.Add(item3);
127 }
128 }
129 };
130 list.List();
131 if (list.items.Count == 0)
132 {
133 _header.SetActive(enable: false);
134 list.SetActive(enable: false);
135 }
136 Header("innateFeats", null);
137 ListFeat();
138 list.callbacks = new UIList.Callback<Feat, ButtonElement>
139 {
140 onClick = delegate(Feat a, ButtonElement b)
141 {
143 },
144 onInstantiate = delegate(Feat a, ButtonElement b)
145 {
147 },
148 onList = delegate
149 {
150 foreach (Element item4 in chara.elements.ListElements((Element a) => a.source.category == "feat" && a.HasTag("innate") && a.Value != 0))
151 {
152 list.Add(item4);
153 }
154 }
155 };
156 list.List();
157 Header("feats", null);
158 ListFeat();
159 list.callbacks = new UIList.Callback<Feat, ButtonElement>
160 {
161 onClick = delegate(Feat a, ButtonElement b)
162 {
164 },
165 onInstantiate = delegate(Feat a, ButtonElement b)
166 {
168 },
169 onList = delegate
170 {
171 foreach (Element item5 in chara.elements.ListElements((Element a) => a.source.category == "feat" && !a.HasTag("innate") && a.Value != 0))
172 {
173 list.Add(item5);
174 }
175 },
176 onSort = (Feat a, UIList.SortMode m) => a.GetSortVal(m)
177 };
178 list.ChangeSort(UIList.SortMode.ByID);
179 list.List();
180 }
181 else if (idTab == 2)
182 {
183 if (chara.c_upgrades == null)
184 {
185 chara.c_upgrades = new CharaUpgrade();
186 }
187 CharaUpgrade upgrades = chara.c_upgrades;
188 CharaGenes genes = chara.c_genes;
189 int num = upgrades.spent;
190 if (genes != null)
191 {
192 num += genes.GetTotalCost();
193 }
194 note.SetActive(enable: true);
195 note.AddText("feat_pet".lang(chara.feat.ToString() ?? "", num.ToString() ?? ""));
196 note.AddText("feat_inferior".lang(chara.CurrentGeneSlot.ToString() ?? "", chara.MaxGeneSlot.ToString() ?? "", ((genes != null) ? genes.inferior : 0).ToString() ?? ""));
197 HintIcon componentInChildren = note.AddText("NoteText_with_hint", (chara.isScaled ? "feat_pet_type2" : "feat_pet_type1").lang()).GetComponentInChildren<HintIcon>();
198 string text = (chara.isScaled ? "feat_pet_type2_hint" : "feat_pet_type1_hint").lang();
199 if (!chara.isScaled && !chara.HasElement(1273))
200 {
201 text = text + Environment.NewLine + (chara.CanBloom() ? "petawaken2" : "petawaken1").lang();
202 }
203 componentInChildren.tooltip.lang = text;
204 note.Space(8);
205 foreach (CharaUpgrade.Item item6 in upgrades.items)
206 {
207 if (!Element.List_MainAttributesMajor.Contains(item6.idEle))
208 {
209 Element element = Element.Create(item6.idEle, item6.value);
210 note.AddText("upgraded".lang(element.Name.ToTitleCase(), item6.value.ToString() ?? "", item6.cost.ToString() ?? ""));
211 }
212 }
213 if (chara.c_genes != null)
214 {
215 foreach (DNA g in genes.items)
216 {
217 UIItem uIItem = note.AddItem("ItemGene");
218 uIItem.button1.mainText.SetText(g.GetText());
219 uIItem.button1.SetTooltip(delegate(UITooltip t)
220 {
221 UINote uINote = t.note;
222 uINote.Clear();
223 uINote.AddHeader(g.GetText());
224 g.WriteNote(uINote);
225 t.note.Build();
226 });
227 uIItem.button2.SetOnClick(delegate
228 {
229 if (!g.CanRemove())
230 {
231 SE.Beep();
232 }
233 else
234 {
235 Dialog.YesNo("dialog_removeGene", delegate
236 {
237 genes.inferior--;
238 SE.Trash();
239 genes.Remove(chara, g);
240 Refresh(idTab);
241 chara.RemoveAllStances();
242 });
243 }
244 });
245 uIItem.button2.SetActive(genes != null && genes.inferior > 0);
246 }
247 }
248 if (EClass.debug.enable)
249 {
250 note.AddButton("add 20".lang(), delegate
251 {
252 chara.feat += 20;
253 Refresh(idTab);
254 });
255 note.AddButton("grow 100".lang(), delegate
256 {
257 chara.feat += 100;
259 Refresh(idTab);
260 });
261 }
262 if (upgrades.count > 0)
263 {
264 note.AddButton("feat_reset".lang(), delegate
265 {
266 upgrades.Reset(chara);
267 SE.Trash();
268 Refresh(idTab);
269 });
270 }
271 note.Build();
272 }
273 else if (idTab == 3)
274 {
275 note.SetActive(enable: true);
276 WindowChara.RefreshNote(chara, note, shortMode: true);
277 }
279 void Header(string lang, string lang2)
280 {
282 _header.SetText(lang);
283 if (lang2 != null)
284 {
285 Util.Instantiate(moldHeader2, contentList).SetText(lang2);
286 }
287 }
288 void ListFeat()
289 {
291 }
292 void ListResist()
293 {
295 }
296 }
297
298 public void RefreshEquipment()
299 {
300 UIList uIList = listEq;
301 uIList.Clear();
302 uIList.callbacks = new UIList.Callback<BodySlot, UIItem>
303 {
304 onClick = delegate
305 {
306 },
307 onInstantiate = delegate(BodySlot a, UIItem b)
308 {
309 if (a.elementId == 0)
310 {
311 b.button1.interactable = false;
312 }
313 else
314 {
315 Thing thing = (Thing)(b.refObj = a.thing);
316 if (thing != null)
317 {
318 b.button1.icon.material = matItem;
319 thing.SetImage(b.button1.icon);
320 }
321 else
322 {
323 b.button1.icon.material = null;
324 b.button1.icon.sprite = SpriteSheet.Get("Media/Graphics/Icon/Element/", "eq_" + a.element.alias);
325 b.button1.icon.color = colorUnequipped;
326 b.button1.icon.SetNativeSize();
327 }
328 b.button1.SetTooltip(delegate(UITooltip tt)
329 {
330 if (a.thing != null)
331 {
332 a.thing.WriteNote(tt.note);
333 }
334 else
335 {
336 tt.note.Clear();
337 tt.note.AddHeader(a.name);
338 tt.note.AddText("noEQ".lang());
339 if (a.elementId == 35)
340 {
341 Thing.AddAttackEvaluation(tt.note, chara);
342 }
343 }
344 tt.note.Build();
345 });
346 }
347 },
348 onSort = (BodySlot a, UIList.SortMode m) => -a.element.sort
349 };
350 foreach (BodySlot slot in chara.body.slots)
351 {
352 if (slot.elementId != 44)
353 {
354 uIList.Add(slot);
355 }
356 }
357 uIList.Sort();
358 uIList.Refresh();
359 }
360}
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:41
bool HasElement(int ele, int req=1)
Definition: Card.cs:5897
CharaUpgrade c_upgrades
Definition: Card.cs:1833
CharaGenes c_genes
Definition: Card.cs:1845
int feat
Definition: Card.cs:374
string NameSimple
Definition: Card.cs:2139
int Evalue(int ele)
Definition: Card.cs:2571
bool isScaled
Definition: Card.cs:914
void SetImage(Image image, int dir, int idSkin=0)
Definition: Card.cs:6070
List< BodySlot > slots
Definition: CharaBody.cs:8
AttackStyle GetAttackStyle()
Definition: CharaBody.cs:445
int GetWeight(bool armorOnly=false)
Definition: CharaBody.cs:402
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:94
override int GetArmorSkill()
Definition: Chara.cs:7763
int MaxGeneSlot
Definition: Chara.cs:1068
int CurrentGeneSlot
Definition: Chara.cs:1071
void TryUpgrade(bool msg=true)
Definition: Chara.cs:8447
override int DV
Definition: Chara.cs:729
override int PV
Definition: Chara.cs:758
bool CanBloom()
Definition: Chara.cs:8540
bool enable
Definition: CoreDebug.cs:286
Definition: DNA.cs:8
bool CanRemove()
Definition: DNA.cs:247
string GetText()
Definition: DNA.cs:551
void WriteNote(UINote n)
Definition: DNA.cs:561
Definition: EClass.cs:6
static SourceManager sources
Definition: EClass.cs:43
static CoreDebug debug
Definition: EClass.cs:49
List< Element > ListElements(Func< Element, bool > shoudList=null, Comparison< Element > comparison=null)
Element GetOrCreateElement(Element ele)
int id
Definition: ELEMENT.cs:250
SourceElement.Row source
Definition: ELEMENT.cs:273
bool HasTag(string tag)
Definition: ELEMENT.cs:473
int GetSortVal(UIList.SortMode m)
Definition: ELEMENT.cs:1005
int Value
Definition: ELEMENT.cs:292
virtual string Name
Definition: ELEMENT.cs:304
static Element Create(int id, int v=0)
Definition: ELEMENT.cs:1105
static int[] List_MainAttributesMajor
Definition: ELEMENT.cs:242
Definition: FEAT.cs:295
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:878
static void AddAttackEvaluation(UINote n, Chara chara, Thing current=null)
Definition: Thing.cs:1460
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:859
Definition: Window.cs:13
int idTab
Definition: Window.cs:694