Elin Modding Docs Doc
Loading...
Searching...
No Matches
LayerDragGrid.cs
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6// Token: 0x0200057B RID: 1403
8{
9 // Token: 0x17000B88 RID: 2952
10 // (get) Token: 0x06002656 RID: 9814 RVA: 0x000D828E File Offset: 0x000D648E
11 public ButtonGrid CurrentButton
12 {
13 get
14 {
15 return this.buttons[this.currentIndex];
16 }
17 }
18
19 // Token: 0x17000B89 RID: 2953
20 // (get) Token: 0x06002657 RID: 9815 RVA: 0x000D82A1 File Offset: 0x000D64A1
21 public override bool CanCancelAI
22 {
23 get
24 {
25 return true;
26 }
27 }
28
29 // Token: 0x17000B8A RID: 2954
30 // (get) Token: 0x06002658 RID: 9816 RVA: 0x000D82A4 File Offset: 0x000D64A4
31 public override bool RepeatAI
32 {
33 get
34 {
35 return true;
36 }
37 }
38
39 // Token: 0x06002659 RID: 9817 RVA: 0x000D82A7 File Offset: 0x000D64A7
40 public void OnOpen()
41 {
42 LayerDragGrid.Instance = this;
43 InvOwner.Trader = this.owner;
44 this.wasInventoryOpen = ELayer.ui.IsInventoryOpen;
45 if (!this.wasInventoryOpen)
46 {
47 ELayer.ui.OpenFloatInv(true);
48 }
49 }
50
51 // Token: 0x0600265A RID: 9818 RVA: 0x000D82E0 File Offset: 0x000D64E0
52 public LayerDragGrid SetInv(InvOwnerDraglet owner, bool refuelFromLayerDragGrid = false)
53 {
54 owner.Init();
55 owner.owner.SetImage(this.imageOwner);
56 this.owner = owner;
57 this.textTitle.text = owner.langTransfer.lang();
58 this.OnOpen();
59 this.buttonOwner.SetCardGrid(owner.owner, null);
60 owner.Container.things.RefreshGrid();
61 for (int j = 0; j < this.buttons.Count; j++)
62 {
63 this.buttons[j].gameObject.AddComponent<CanvasGroup>();
64 if (owner.numDragGrid > j)
65 {
66 this.buttons[j].SetCardGrid(null, owner);
67 this.buttons[j].index = j;
68 owner.buttons.Add(this.buttons[j]);
69 }
70 else
71 {
72 this.buttons[j].SetActive(false);
73 }
74 }
75 this.textFuel.SetActive(owner.owner.trait.IsRequireFuel);
76 owner.BuildUICurrency(this.uiCurrency, false);
77 base.InvokeRepeating("RefreshCost", 0f, 0.2f);
78 this.RebuildLayout(true);
79 this.RefreshCurrentGrid();
80 this.RefreshCost();
81 this.RebuildLayout(true);
82 this.buttonRefuel.SetActive(owner.ShowFuel);
83 this.buttonAutoRefuel.SetActive(owner.ShowFuel);
84 if (owner.CanTargetAlly && ELayer.pc.party.members.Count > 1)
85 {
86 BaseList baseList = this.listAlly;
87 UIList.Callback<Chara, UIButton> callback = new UIList.Callback<Chara, UIButton>();
88 callback.onInstantiate = delegate(Chara a, UIButton b)
89 {
90 a.SetImage(b.icon);
91 b.SetTooltipLang(a.Name);
92 };
93 callback.onClick = delegate(Chara c, UIButton i)
94 {
95 if (LayerInventory.CloseAllyInv(c))
96 {
97 return;
98 }
99 SE.PopInventory();
100 LayerInventory.CreateContainerAlly(c, c);
101 };
102 callback.onSort = delegate(Chara a, UIList.SortMode m)
103 {
104 a.SetSortVal(m, CurrencyType.Money);
105 return -a.sortVal;
106 };
107 callback.onList = delegate(UIList.SortMode m)
108 {
109 foreach (Chara chara in ELayer.pc.party.members)
110 {
111 if (!chara.IsPC)
112 {
113 this.listAlly.Add(chara);
114 }
115 }
116 };
117 baseList.callbacks = callback;
118 this.listAlly.List(false);
119 }
120 else
121 {
122 this.listAlly.SetActive(false);
123 }
124 Action <>9__6;
125 this.buttonRefuel.SetOnClick(delegate
126 {
127 this.windows[0].SetInteractable(false, 0f);
128 this.info.InitFuel(owner.owner);
129 Layer layer = LayerDragGrid.Create(new InvOwnerRefuel(owner.owner, null, CurrencyType.None), true);
130 Action onKill;
131 if ((onKill = <>9__6) == null)
132 {
133 onKill = (<>9__6 = delegate()
134 {
135 if (!this.isDestroyed)
136 {
137 this.windows[0].SetInteractable(true, 0.5f);
138 this.info.Init(owner.owner);
139 this.OnOpen();
140 this.RefreshCurrentGrid();
141 this.Redraw();
142 owner.OnAfterRefuel();
143 }
144 });
145 }
146 layer.SetOnKill(onKill);
147 });
148 this.buttonAutoRefuel.SetOnClick(delegate
149 {
150 SE.Click();
151 owner.owner.autoRefuel = !owner.owner.autoRefuel;
152 this.RefreshCost();
153 if (owner.owner.trait.IsFuelEnough(1, null, true))
154 {
155 owner.OnAfterRefuel();
156 }
157 });
158 try
159 {
160 if (owner is InvOwnerRefuel)
161 {
162 if (refuelFromLayerDragGrid)
163 {
164 this.info.SetActive(false);
165 }
166 else
167 {
168 Debug.Log(owner.owner);
169 this.info.InitFuel(owner.owner);
170 }
171 }
172 else
173 {
174 this.info.Init(owner.owner);
175 }
176 }
177 catch (Exception ex)
178 {
179 Debug.LogError(ex.Message);
180 }
181 return this;
182 }
183
184 // Token: 0x0600265B RID: 9819 RVA: 0x000D8624 File Offset: 0x000D6824
185 public int GetPrice()
186 {
187 return this.owner.price;
188 }
189
190 // Token: 0x0600265C RID: 9820 RVA: 0x000D8634 File Offset: 0x000D6834
191 public void RefreshCost()
192 {
193 this.buttonAutoRefuel.mainText.text = (this.owner.owner.autoRefuel ? "On" : "Off");
194 this.buttonAutoRefuel.icon.SetAlpha(this.owner.owner.autoRefuel ? 1f : 0.4f);
195 this.textFuel.text = ((int)((float)this.owner.owner.c_charges / (float)this.owner.owner.trait.MaxFuel * 100f)).ToString() + "%";
196 int price = this.GetPrice();
197 this.itemCost.transform.parent.SetActive(price != 0);
198 if (price == 0)
199 {
200 return;
201 }
202 this.itemCost.text1.SetText(Lang._currency(this.GetPrice(), false, 14), (ELayer.pc.GetCurrency(this.owner.IDCurrency) >= price) ? FontColor.Good : FontColor.Bad);
203 this.itemCost.image1.sprite = SpriteSheet.Get("icon_" + this.owner.IDCurrency);
204 }
205
206 // Token: 0x0600265D RID: 9821 RVA: 0x000D8774 File Offset: 0x000D6974
207 public bool IsAllGridSet()
208 {
209 for (int i = 0; i < this.owner.numDragGrid; i++)
210 {
211 if (this.buttons[i].card == null)
212 {
213 return false;
214 }
215 }
216 return true;
217 }
218
219 // Token: 0x0600265E RID: 9822 RVA: 0x000D87B0 File Offset: 0x000D69B0
220 public override void ClearButtons()
221 {
222 for (int i = 0; i < this.owner.numDragGrid; i++)
223 {
224 this.buttons[i].SetCardGrid(null, null);
225 }
226 this.RefreshCurrentGrid();
227 }
228
229 // Token: 0x0600265F RID: 9823 RVA: 0x000D87EC File Offset: 0x000D69EC
230 public override void RefreshCurrentGrid()
231 {
232 int num = -1;
233 for (int i = 0; i < this.buttons.Count; i++)
234 {
235 bool flag = this.buttons[i].Card != null;
236 if (num == -1 && (!flag || i == this.owner.numDragGrid - 1))
237 {
238 num = i;
239 }
240 this.buttons[i].interactable = (flag || num == i);
241 this.buttons[i].GetComponent<CanvasGroup>().alpha = (this.buttons[i].interactable ? 1f : 0.5f);
242 }
243 this.currentIndex = num;
244 bool flag2 = num >= 0 && num < this.owner.numDragGrid;
245 if (flag2)
246 {
247 this.transIndex.position = this.buttons[num].transform.position;
248 }
249 this.transIndex.SetActive(flag2);
250 this.Redraw();
251 }
252
253 // Token: 0x06002660 RID: 9824 RVA: 0x000D88E8 File Offset: 0x000D6AE8
254 public override List<Thing> GetTargets()
255 {
256 List<Thing> list = new List<Thing>();
257 TraitCrafter traitCrafter = this.owner.owner.trait as TraitCrafter;
258 for (int i = 0; i < traitCrafter.numIng; i++)
259 {
260 Card card = this.buttons[i].card;
261 list.Add(((card != null) ? card.Thing : null) ?? null);
262 }
263 return list;
264 }
265
266 // Token: 0x06002661 RID: 9825 RVA: 0x000D894C File Offset: 0x000D6B4C
267 private void Update()
268 {
269 this.Validate();
270 }
271
272 // Token: 0x06002662 RID: 9826 RVA: 0x000D8954 File Offset: 0x000D6B54
273 public void Validate()
274 {
275 Card card = this.buttonOwner.card;
276 if (card.Num != this.lastNum)
277 {
278 this.lastNum = card.Num;
279 this.buttonOwner.SetCardGrid(this.owner.owner, null);
280 }
281 if (card == null || card.isDestroyed)
282 {
283 this.Close();
284 }
285 }
286
287 // Token: 0x06002663 RID: 9827 RVA: 0x000D89B0 File Offset: 0x000D6BB0
288 public void Redraw()
289 {
290 foreach (ButtonGrid buttonGrid in this.buttons)
291 {
292 if (buttonGrid.gameObject.activeSelf)
293 {
294 buttonGrid.Redraw();
295 }
296 }
297 LayerInventory.SetDirtyAll(true);
298 }
299
300 // Token: 0x06002664 RID: 9828 RVA: 0x000D8A18 File Offset: 0x000D6C18
301 public override void OnKill()
302 {
303 LayerInventory.CloseAllyInv();
304 InvOwner.Trader = null;
305 if (!this.wasInventoryOpen && ELayer.ui.IsInventoryOpen)
306 {
307 ELayer.ui.ToggleInventory(false);
308 }
309 LayerInventory.SetDirtyAll(false);
310 if (ELayer.pc.ai is AI_UseCrafter && ELayer.pc.ai.IsRunning)
311 {
312 ELayer.pc.ai.Cancel();
313 }
314 }
315
316 // Token: 0x06002665 RID: 9829 RVA: 0x000D8A87 File Offset: 0x000D6C87
317 public override void OnUpdateInput()
318 {
319 if (EInput.action == EAction.MenuInventory || Input.GetKeyDown(KeyCode.Tab))
320 {
321 this.Close();
322 EInput.WaitReleaseKey();
323 return;
324 }
325 base.OnUpdateInput();
326 }
327
328 // Token: 0x06002666 RID: 9830 RVA: 0x000D8AAD File Offset: 0x000D6CAD
329 public override void OnRightClick()
330 {
331 if (InputModuleEX.GetComponentOf<ButtonGrid>() == null)
332 {
333 this.Close();
334 }
335 }
336
337 // Token: 0x06002667 RID: 9831 RVA: 0x000D8AC2 File Offset: 0x000D6CC2
338 public static LayerDragGrid Create(InvOwnerDraglet owner, bool refuelFromLayerDragGrid = false)
339 {
340 return ELayer.ui.AddLayer<LayerDragGrid>("LayerInventory/LayerDragGrid").SetInv(owner, refuelFromLayerDragGrid);
341 }
342
343 // Token: 0x06002668 RID: 9832 RVA: 0x000D8ADA File Offset: 0x000D6CDA
344 public static LayerDragGrid CreateOffering(TraitAltar altar)
345 {
346 Msg.Say("offer_what");
347 return LayerDragGrid.Create(new InvOwnerOffering(altar.owner, null, CurrencyType.Money)
348 {
349 altar = altar
350 }, false);
351 }
352
353 // Token: 0x06002669 RID: 9833 RVA: 0x000D8B04 File Offset: 0x000D6D04
354 public static LayerDragGrid CreateDeliver(InvOwnerDeliver.Mode mode = InvOwnerDeliver.Mode.Default, Card owner = null)
355 {
356 if (mode == InvOwnerDeliver.Mode.Tax)
357 {
358 Msg.Say("bills", ELayer.player.taxBills.ToString() ?? "", null, null, null);
359 }
360 Msg.Say("deliver_what");
361 return LayerDragGrid.Create(new InvOwnerDeliver(owner, null, CurrencyType.Money)
362 {
363 mode = mode
364 }, false);
365 }
366
367 // Token: 0x0600266A RID: 9834 RVA: 0x000D8B5B File Offset: 0x000D6D5B
368 public static LayerDragGrid CreateGive(Chara c)
369 {
370 return LayerDragGrid.Create(new InvOwnerGive(c, null, CurrencyType.Money)
371 {
372 chara = c
373 }, false);
374 }
375
376 // Token: 0x0600266B RID: 9835 RVA: 0x000D8B72 File Offset: 0x000D6D72
377 public static LayerDragGrid CreateCraft(TraitCrafter crafter)
378 {
379 return LayerDragGrid.Create(new InvOwnerCraft(crafter.owner, null, CurrencyType.None)
380 {
381 crafter = crafter
382 }, false);
383 }
384
385 // Token: 0x0600266C RID: 9836 RVA: 0x000D8B8E File Offset: 0x000D6D8E
386 public static LayerDragGrid CreateRecycle(TraitRecycle recycle)
387 {
388 Msg.Say("recycle_what");
389 return LayerDragGrid.Create(new InvOwnerRecycle(recycle.owner, null, CurrencyType.Ecopo)
390 {
391 recycle = recycle
392 }, false);
393 }
394
395 // Token: 0x0600266D RID: 9837 RVA: 0x000D8BB5 File Offset: 0x000D6DB5
396 public static LayerDragGrid CreateGacha(TraitGacha gacha)
397 {
398 Msg.Say("target_what");
399 return LayerDragGrid.Create(new InvOwnerGacha(gacha.owner, null, CurrencyType.None)
400 {
401 gacha = gacha
402 }, false);
403 }
404
405 // Token: 0x0600266E RID: 9838 RVA: 0x000D8BDC File Offset: 0x000D6DDC
406 public static LayerDragGrid TryProc(Chara cc, InvOwnerEffect owner)
407 {
408 owner.cc = cc;
409 if (cc.IsPC)
410 {
411 return LayerDragGrid.Create(owner, false);
412 }
413 int num = (owner.count == -1) ? 1 : owner.count;
414 int i = 0;
415 Func<Thing, bool> <>9__0;
416 while (i < num)
417 {
418 ThingContainer things = cc.things;
419 Func<Thing, bool> func;
420 if ((func = <>9__0) == null)
421 {
422 func = (<>9__0 = ((Thing t) => owner.ShouldShowGuide(t)));
423 }
424 List<Thing> list = things.List(func, false);
425 if (list.Count > 0)
426 {
427 Thing t2 = list.RandomItem<Thing>();
428 owner._OnProcess(t2);
429 i++;
430 }
431 else
432 {
433 if (i == 0)
434 {
435 cc.SayNothingHappans();
436 break;
437 }
438 break;
439 }
440 }
441 return null;
442 }
443
444 // Token: 0x0600266F RID: 9839 RVA: 0x000D8C9A File Offset: 0x000D6E9A
445 public static LayerDragGrid CreateIdentify(Chara cc, bool superior = false, BlessedState state = BlessedState.Normal, int price = 0, int count = 1)
446 {
447 return LayerDragGrid.TryProc(cc, new InvOwnerIdentify
448 {
449 state = state,
450 price = price,
451 count = count,
452 superior = superior
453 });
454 }
455
456 // Token: 0x06002670 RID: 9840 RVA: 0x000D8CC4 File Offset: 0x000D6EC4
457 public static LayerDragGrid CreateEnchant(Chara cc, bool armor, bool superior = false, BlessedState state = BlessedState.Normal, int count = 1)
458 {
459 return LayerDragGrid.TryProc(cc, new InvOwnerEnchant
460 {
461 armor = armor,
462 state = state,
463 superior = superior,
464 count = count
465 });
466 }
467
468 // Token: 0x06002671 RID: 9841 RVA: 0x000D8CEE File Offset: 0x000D6EEE
469 public static LayerDragGrid CreateChangeMaterial(Chara cc, Thing consume, SourceMaterial.Row mat, EffectId idEffect, BlessedState state = BlessedState.Normal, int price = 0, int count = 1)
470 {
471 return LayerDragGrid.TryProc(cc, new InvOwnerChangeMaterial
472 {
473 consume = consume,
474 mat = mat,
475 state = state,
476 price = price,
477 count = count,
478 idEffect = idEffect
479 });
480 }
481
482 // Token: 0x06002672 RID: 9842 RVA: 0x000D8D28 File Offset: 0x000D6F28
483 public static LayerDragGrid CreateUncurse(Chara cc, BlessedState state = BlessedState.Normal, int price = 0, int count = 1)
484 {
485 return LayerDragGrid.TryProc(cc, new InvOwnerUncurse
486 {
487 state = state,
488 price = price,
489 count = count
490 });
491 }
492
493 // Token: 0x06002673 RID: 9843 RVA: 0x000D8D4A File Offset: 0x000D6F4A
494 public static LayerDragGrid CreateLighten(Chara cc, BlessedState state = BlessedState.Normal, int price = 0, int count = 1)
495 {
496 return LayerDragGrid.TryProc(cc, new InvOwnerLighten
497 {
498 state = state,
499 price = price,
500 count = count
501 });
502 }
503
504 // Token: 0x06002674 RID: 9844 RVA: 0x000D8D6C File Offset: 0x000D6F6C
505 public static LayerDragGrid CreateReconstruction(Chara cc, BlessedState state = BlessedState.Normal, int price = 0, int count = 1)
506 {
507 return LayerDragGrid.TryProc(cc, new InvOwnerReconstruction
508 {
509 state = state,
510 price = price,
511 count = count
512 });
513 }
514
515 // Token: 0x04001508 RID: 5384
516 public static LayerDragGrid Instance;
517
518 // Token: 0x04001509 RID: 5385
519 public UIItem itemCost;
520
521 // Token: 0x0400150A RID: 5386
522 public Image imageOwner;
523
524 // Token: 0x0400150B RID: 5387
525 public UIText textTitle;
526
527 // Token: 0x0400150C RID: 5388
528 public UIText textFuel;
529
530 // Token: 0x0400150D RID: 5389
531 public Transform transIndex;
532
533 // Token: 0x0400150E RID: 5390
534 public List<ButtonGrid> buttons;
535
536 // Token: 0x0400150F RID: 5391
537 public ButtonGrid buttonOwner;
538
539 // Token: 0x04001510 RID: 5392
540 public UIButton buttonRefuel;
541
542 // Token: 0x04001511 RID: 5393
543 public UIButton buttonAutoRefuel;
544
545 // Token: 0x04001512 RID: 5394
546 public UIButton buttonAlly;
547
548 // Token: 0x04001513 RID: 5395
549 public InvOwnerDraglet owner;
550
551 // Token: 0x04001514 RID: 5396
552 public UICurrency uiCurrency;
553
554 // Token: 0x04001515 RID: 5397
555 public int currentIndex;
556
557 // Token: 0x04001516 RID: 5398
558 public UIDragGridInfo info;
559
560 // Token: 0x04001517 RID: 5399
561 public UIList listAlly;
562
563 // Token: 0x04001518 RID: 5400
564 private bool wasInventoryOpen;
565
566 // Token: 0x04001519 RID: 5401
567 private int lastNum;
568}
Definition Card.cs:13
Definition Chara.cs:12
Definition Msg.cs:7
Definition Thing.cs:10