Elin Decompiled Documentation EA 23.349 Nightly
Loading...
Searching...
No Matches
BaseListPeople.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using UnityEngine;
5
6public class BaseListPeople : ListOwner<Chara, ItemGeneral>
7{
8 public Chara owner;
9
11
12 public new LayerPeople layer => base.layer as LayerPeople;
13
14 public override string IdHeaderRow => "HeaderRowPeople";
15
16 public virtual bool ShowCharaSheet => false;
17
18 public virtual bool ShowShowMode => false;
19
21
22 public virtual bool ShowGoto => false;
23
24 public virtual bool ShowHome => false;
25
26 public virtual bool IsDisabled(Chara c)
27 {
28 if (!c.isDead && c.memberType != FactionMemberType.Guest)
29 {
30 return !c.IsInHomeZone();
31 }
32 return false;
33 }
34
35 public override void List()
36 {
37 list.callbacks = new UIList.Callback<Chara, ItemGeneral>
38 {
39 onInstantiate = delegate
40 {
41 },
42 onRedraw = delegate(Chara a, ItemGeneral b, int i)
43 {
44 b.SetChara(a, this);
45 OnInstantiate(a, b);
46 b.Build();
47 },
48 onClick = delegate(Chara c, ItemGeneral i)
49 {
50 OnClick(c, i);
51 },
52 onSort = delegate(Chara a, UIList.SortMode m)
53 {
54 a.SetSortVal(m);
55 return -a.sortVal;
56 },
57 onList = delegate
58 {
59 OnList();
60 },
61 onRefresh = null
62 };
63 list.List();
64 }
65
66 public override void OnInstantiate(Chara a, ItemGeneral b)
67 {
68 SetSubText(a, b);
69 if (ShowHome)
70 {
71 if (a.IsPCFaction)
72 {
73 Sprite icon = a.affinity.GetIcon();
74 if ((bool)icon)
75 {
76 Util.Instantiate<UIItem>("UI/Element/Grid/Attach/affinity", b).image1.sprite = icon;
77 }
78 }
79 AddSubButtonWork(b, a);
80 Room room = a.FindRoom();
81 TraitBed bed = a.FindBed();
82 UIButton uIButton = b.AddSubButton(EClass.core.refs.icons.home, delegate
83 {
84 if (room == null)
85 {
86 SE.BeepSmall();
87 }
88 else
89 {
90 EClass.pc.SetAI(new AI_Goto(room.GetRandomFreePos(), 1));
91 layer.Close();
92 }
93 }, null, delegate(UITooltip t)
94 {
95 t.note.Clear();
96 t.note.AddHeader("infoHome".lang((room != null) ? room.Name : "none".lang()));
97 t.note.AddTopic("TopicLeft", "infoBed".lang(), (bed != null) ? bed.Name.ToTitleCase() : "none".lang());
98 t.note.Build();
99 if (room != null)
100 {
101 EClass.core.actionsNextFrame.Add(delegate
102 {
103 });
104 }
105 }, "home");
106 uIButton.icon.SetAlpha((bed != null) ? 1f : 0.4f);
107 uIButton.SetActive(enable: true);
108 if (a.IsPCFaction)
109 {
110 UIButton sub2 = null;
111 sub2 = b.AddSubButton(EClass.core.refs.icons.sharedEquip, delegate
112 {
113 a.SetInt(113, (a.GetInt(113) == 0) ? 1 : 0);
114 SE.Tab();
115 sub2.icon.SetAlpha((a.GetInt(113) == 1) ? 0.4f : 1f);
117 }, null, delegate(UITooltip t)
118 {
119 t.note.Clear();
120 t.note.AddHeader("infoSharedEquip".lang((a.GetInt(113) == 1) ? "none".lang() : "infoSharedEquip_on".lang()));
121 t.note.Build();
122 }, "sharedEquip");
123 sub2.icon.SetAlpha((a.GetInt(113) == 1) ? 0.4f : 1f);
124 sub2.SetActive(enable: true);
125 }
126 else
127 {
128 b.AddSubButton(EClass.core.refs.icons.sharedEquip, null, null, null, "sharedEquip").SetActive(enable: false);
129 }
130 }
131 else
132 {
133 b.AddSubButton(EClass.core.refs.icons.work, null, null, null, "room").SetActive(enable: false);
134 b.AddSubButton(EClass.core.refs.icons.home, null, null, null, "home").SetActive(enable: false);
135 b.AddSubButton(EClass.core.refs.icons.sharedEquip, null, null, null, "sharedEquip").SetActive(enable: false);
136 }
137 if (ShowCharaSheet && EClass.debug.showExtra)
138 {
139 b.AddSubButton(EClass.core.refs.icons.inspect, delegate
140 {
141 SE.Play("pop_paper");
142 LayerChara layerChara = EClass.ui.AddLayerDontCloseOthers<LayerChara>();
143 layerChara.windows[0].SetRect(EClass.core.refs.rects.center);
144 layerChara.SetChara(a);
145 }, "charaInfo", null, "sheet");
146 }
147 if (IsDisabled(a))
148 {
149 b.GetOrCreate<CanvasGroup>().alpha = 0.6f;
150 return;
151 }
152 CanvasGroup component = b.GetComponent<CanvasGroup>();
153 if ((bool)component)
154 {
155 component.alpha = 1f;
156 }
157 }
158
160 {
161 BaseArea roomWork = a.GetRoomWork();
162 bool flag = true;
163 foreach (Hobby item in a.ListWorks().Concat(a.ListHobbies()))
164 {
165 if (item.GetEfficiency(a) <= 0)
166 {
167 flag = false;
168 break;
169 }
170 }
171 UIButton uIButton = b.AddSubButton(EClass.core.refs.icons.work, delegate
172 {
173 if (roomWork == null)
174 {
175 SE.BeepSmall();
176 }
177 else
178 {
179 EClass.pc.SetAI(new AI_Goto(roomWork.GetRandomFreePos(), 1));
180 layer.Close();
181 }
182 }, null, delegate(UITooltip t)
183 {
184 WriteHobbies(t, a, roomWork);
185 }, "room");
186 uIButton.icon.SetAlpha(flag ? 1f : 0.4f);
187 uIButton.SetActive(enable: true);
188 }
189
190 public void WriteHobbies(UITooltip t, Chara a, BaseArea roomWork)
191 {
192 t.note.Clear();
193 t.note.AddHeader("infoWork".lang((roomWork != null) ? roomWork.Name : "none".lang()));
194 foreach (Hobby item in a.ListWorks())
195 {
196 AddText(item, "work", a.source.works.Contains(item.source.alias));
197 }
198 foreach (Hobby item2 in a.ListHobbies())
199 {
200 AddText(item2, "hobby", a.source.hobbies.Contains(item2.source.alias));
201 }
202 if (a.IsPCParty)
203 {
204 t.note.Space(8);
205 t.note.AddText("workNotActive_party".lang(), FontColor.Warning);
206 }
207 if (a.IsPCFactionOrMinion && !a.trait.IsCountAsResident)
208 {
209 t.note.AddText("notCountResident".lang(), FontColor.Good);
210 }
211 t.note.Build();
212 void AddText(Hobby h, string lang, bool fix)
213 {
214 int efficiency = h.GetEfficiency(a);
215 string text = h.Name;
216 if (fix)
217 {
218 text += "*";
219 }
220 text = text.TagColor((efficiency == 0) ? FontColor.Warning : FontColor.Good);
221 string[] array = Lang.GetList("work_lv");
222 string text2 = array[Mathf.Clamp(efficiency / 50, (efficiency != 0) ? 1 : 0, array.Length - 1)];
223 t.note.AddTopic("TopicLeft", lang.lang(), text + " (" + text2 + ")");
224 if (!h.source.destTrait.IsEmpty())
225 {
226 bool flag = EClass._map.FindThing(Type.GetType("Trait" + h.source.destTrait + ", Elin"), a) != null;
227 List<CardRow> obj = EClass.sources.cards.rows.Where((CardRow cardRow2) => cardRow2.trait.Length != 0 && Type.GetType("Trait" + h.source.destTrait).IsAssignableFrom(Type.GetType("Trait" + cardRow2.trait[0]))).ToList();
228 obj.Sort((CardRow cardRow2, CardRow b) => cardRow2.LV - b.LV);
229 CardRow cardRow = obj[0];
230 t.note.AddText("NoteText_small", "・ " + "workDestTrait".lang(cardRow.GetName().ToTitleCase().TagColor(flag ? FontColor.Good : FontColor.Warning)));
231 }
232 if (efficiency == 0)
233 {
234 t.note.AddText("NoteText_small", "・ " + "workNotActive".lang());
235 }
236 else
237 {
238 for (int num = 0; num < h.source.things.Length; num += 2)
239 {
240 float num2 = Mathf.Max(1f, (long)h.source.things[num + 1].ToInt() * (long)efficiency * a.homeBranch.GetProductBonus(a) / 100 / 1000);
241 string text3 = h.source.things[num];
242 string s = (text3.StartsWith("#") ? EClass.sources.categories.map[text3.Replace("#", "")].GetName() : EClass.sources.cards.map[h.source.things[num]].GetName());
243 if (h.source.alias == "Breeding")
244 {
245 num2 = a.race.breeder * 100 / 2500;
246 num2 = num2 * (float)((!(text3 == "_egg")) ? 1 : 2) / 3f;
247 if (a.race.breeder > 0 && num2 <= 0f)
248 {
249 num2 = 1f;
250 }
251 }
252 num2 = (float)Math.Round(num2, 1);
253 t.note.AddText("NoteText_small", "・ " + "work_produce".lang(s.ToTitleCase(), num2.ToString() ?? ""));
254 }
255 if (!h.source.elements.IsEmpty())
256 {
257 for (int num3 = 0; num3 < h.source.elements.Length; num3 += 2)
258 {
259 SourceElement.Row row = EClass.sources.elements.map[h.source.elements[num3]];
260 int num4 = h.source.elements[num3 + 1];
261 float num5 = ((num4 < 0 || row.id == 2115 || row.id == 2207) ? ((float)(num4 / 10)) : Mathf.Max((h.GetEfficiency(a) > 0) ? 1 : 0, (long)num4 * (long)h.GetEfficiency(a) * a.homeBranch.efficiency / 100 / 1000));
262 t.note.AddText("NoteText_small", "・ " + "workBonus_skill".lang(row.GetName().ToTitleCase(), ((num4 > 0) ? "+" : "") + num5) + ((row.id == 2115 || row.id == 2207) ? (" " + "fixedFactionSkill".lang()) : ""), (num4 >= 0) ? FontColor.Default : FontColor.Bad);
263 }
264 }
265 string[] array2 = h.source.GetDetail().SplitNewline();
266 foreach (string text4 in array2)
267 {
268 if (!text4.IsEmpty())
269 {
270 t.note.AddText("NoteText_small", "・ " + text4);
271 }
272 }
273 }
274 t.note.Space(1);
275 }
276 }
277
278 public virtual void SetSubText(Chara a, ItemGeneral b)
279 {
280 switch (ShowMode)
281 {
282 case LayerPeople.ShowMode.Race:
283 b.SetSubText(a.race.GetName().ToTitleCase(wholeText: true), 300);
284 break;
285 case LayerPeople.ShowMode.Job:
286 b.SetSubText(a.job.GetName().ToTitleCase(wholeText: true), 300);
287 break;
288 case LayerPeople.ShowMode.Work:
289 {
290 string text = a.GetTextWork(simple: true) + "," + a.GetTextHobby(simple: true);
291 b.SetSubText(text.TrimEnd(','), 300);
292 break;
293 }
294 }
295 }
296
297 public override void OnClick(Chara c, ItemGeneral i)
298 {
300 {
301 if (c.currentZone != EClass._zone)
302 {
303 Msg.Say("isIn", c, (c.currentZone == null) ? "???" : c.currentZone.Name);
304 }
305 SE.BeepSmall();
306 return;
307 }
308 UIContextMenu uIContextMenu = EClass.ui.CreateContextMenuInteraction().SetHighlightTarget(i);
309 if (c.IsGuest())
310 {
311 uIContextMenu.AddButton("findMember", delegate
312 {
313 EClass.pc.SetAI(new AI_Goto(c, 1));
314 layer.Close();
315 });
316 }
317 else if (c.IsHomeMember())
318 {
319 if (!c.IsPC)
320 {
321 uIContextMenu.AddButton("findMember", delegate
322 {
323 EClass.pc.SetAI(new AI_Goto(c, 1));
324 layer.Close();
325 });
326 }
327 uIContextMenu.AddButton("changeName", delegate
328 {
329 Dialog.InputName("dialogChangeName", c.c_altName.IsEmpty(c.NameSimple), delegate(bool cancel, string text)
330 {
331 if (!cancel)
332 {
333 if (text == "*r")
334 {
335 text = NameGen.getRandomName();
336 }
337 c.c_altName = text;
338 layer.OnSwitchContent(layer.windows[0]);
339 }
340 });
341 });
342 if (c != EClass.pc)
343 {
344 if (c.sourceCard.idActor.IsEmpty())
345 {
346 if (c.pccData == null)
347 {
348 uIContextMenu.AddButton("editPCC", delegate
349 {
350 EClass.ui.AddLayer<LayerEditPortrait>().Activate(c);
351 });
352 if (!c.IsPC)
353 {
354 uIContextMenu.AddButton("editSkin", delegate
355 {
356 LayerEditSkin layerEditSkin = EClass.ui.AddLayer<LayerEditSkin>();
357 layerEditSkin.SetOnKill(delegate
358 {
359 list.Refresh();
360 });
361 layerEditSkin.Activate(c);
362 });
363 }
364 uIContextMenu.AddButton("togglePCC", delegate
365 {
366 bool isSynced = c.isSynced;
367 c.pccData = PCCData.Create(c.IDPCCBodySet);
368 c.pccData.Randomize(c.IDPCCBodySet);
369 if (isSynced)
370 {
372 }
373 EClass.scene.syncList.Remove(c.renderer);
374 c._CreateRenderer();
375 if (isSynced)
376 {
379 }
380 list.Refresh();
381 SE.Click();
383 });
384 }
385 else
386 {
387 uIContextMenu.AddButton("editPCC", delegate
388 {
389 EClass.ui.AddLayer<LayerEditPCC>("LayerPCC/LayerEditPCC").Activate(c, UIPCC.Mode.Full);
390 });
391 uIContextMenu.AddButton("togglePCC", delegate
392 {
393 bool isSynced = c.isSynced;
394 if (isSynced)
395 {
397 }
398 EClass.scene.syncList.Remove(c.renderer);
399 c.pccData = null;
400 c._CreateRenderer();
401 if (isSynced)
402 {
405 }
406 list.Refresh();
408 });
409 }
410 }
411 if (c.homeBranch == EClass.Branch)
412 {
413 uIContextMenu.AddButton("makeMaid", delegate
414 {
415 if (EClass.Branch.uidMaid == c.uid)
416 {
417 EClass.Branch.uidMaid = 0;
418 }
419 else
420 {
421 EClass.Branch.uidMaid = c.uid;
422 }
423 list.Refresh();
424 SE.Click();
425 });
426 }
427 int num = c.GetInt(36);
428 bool isLivestockTimerOn = memberType == FactionMemberType.Default && !EClass.world.date.IsExpired(num);
429 int remainingHours = EClass.world.date.GetRemainingHours(num);
430 if (!c.IsPCParty)
431 {
432 uIContextMenu.AddButton((c.memberType == FactionMemberType.Livestock) ? "daMakeResident" : (isLivestockTimerOn ? "daMakeLivestock2".lang(Date.GetText(remainingHours)) : "daMakeLivestock"), delegate
433 {
434 if (isLivestockTimerOn)
435 {
436 SE.Beep();
437 }
438 else
439 {
440 if (c.memberType == FactionMemberType.Livestock)
441 {
442 c.SetInt(36, EClass.world.date.GetRaw() + 14400);
443 }
444 EClass.Branch.ChangeMemberType(c, (c.memberType != FactionMemberType.Livestock) ? FactionMemberType.Livestock : FactionMemberType.Default);
445 foreach (ListOwner owner in layer.multi.owners)
446 {
447 owner.RefreshTab();
448 }
449 List();
450 SE.Click();
451 }
452 });
453 }
454 uIContextMenu.AddButton("addToReserve".lang() + " (" + EClass.Home.listReserve.Count + "/" + EClass.Home.GetMaxReserve() + ")", delegate
455 {
457 {
458 SE.Beep();
459 Msg.Say("reserveLimit");
460 return;
461 }
462 SE.MoveZone();
464 list.List();
465 foreach (ListOwner owner2 in layer.multi.owners)
466 {
467 owner2.RefreshTab();
468 }
469 });
470 }
471 }
472 uIContextMenu.Show();
473 }
474
475 public override void OnList()
476 {
477 if (memberType == FactionMemberType.Guest)
478 {
479 foreach (Chara chara in EClass._map.charas)
480 {
481 if (chara.IsGuest())
482 {
483 list.Add(chara);
484 }
485 }
486 return;
487 }
488 foreach (Chara member in EClass.Branch.members)
489 {
490 if (member.memberType == memberType && !member.isSummon)
491 {
492 list.Add(member);
493 }
494 }
495 foreach (Chara member2 in EClass.pc.party.members)
496 {
497 if (member2.memberType == memberType && !list.Contains(member2))
498 {
499 list.Add(member2);
500 }
501 }
502 }
503
504 public override void OnRefreshMenu()
505 {
506 WindowMenu menuLeft = window.menuLeft;
507 menuLeft.Clear();
508 if (!main)
509 {
510 return;
511 }
512 menuLeft.AddButton2Line("sort", () => list.sortMode.ToString(), delegate
513 {
514 list.NextSort();
515 });
516 if (ShowShowMode)
517 {
518 Lang.GetList("info_people");
519 menuLeft.AddButton2Line("info", () => "show" + layer.showMode, delegate
520 {
521 layer.showMode = layer.showMode.NextEnum();
522 List();
523 });
524 }
525 }
526}
FactionMemberType
FontColor
Definition: FontColor.cs:2
Sprite GetIcon()
Definition: Affinity.cs:118
virtual string Name
Definition: BaseArea.cs:37
List< Action > actionsNextFrame
Definition: BaseCore.cs:31
virtual bool ShowGoto
void WriteHobbies(UITooltip t, Chara a, BaseArea roomWork)
virtual bool ShowHome
override void OnClick(Chara c, ItemGeneral i)
new LayerPeople layer
override string IdHeaderRow
override void OnRefreshMenu()
virtual bool ShowShowMode
virtual bool IsDisabled(Chara c)
override void OnInstantiate(Chara a, ItemGeneral b)
void AddSubButtonWork(ItemGeneral b, Chara a)
virtual void SetSubText(Chara a, ItemGeneral b)
FactionMemberType memberType
override void List()
virtual bool ShowCharaSheet
virtual LayerPeople.ShowMode ShowMode
override void OnList()
override void OnLeaveScreen()
override void OnEnterScreen()
string[] idActor
Definition: CardRow.cs:35
virtual string GetName(int i)
Definition: CardRow.cs:95
string[] trait
Definition: CardRow.cs:33
bool isSummon
Definition: Card.cs:713
void SetInt(string id, int value=0)
Definition: Card.cs:2586
string c_altName
Definition: Card.cs:1633
int sortVal
Definition: Card.cs:104
int uid
Definition: Card.cs:125
string NameSimple
Definition: Card.cs:2193
CardRenderer renderer
Definition: Card.cs:64
int GetInt(string id, int? defaultInt=null)
Definition: Card.cs:2567
Definition: Chara.cs:10
string IDPCCBodySet
Definition: Chara.cs:495
override bool IsAliveInCurrentZone
Definition: Chara.cs:567
override void SetSortVal(UIList.SortMode m, CurrencyType currency=CurrencyType.Money)
Definition: Chara.cs:7768
override bool IsPC
Definition: Chara.cs:630
SourceJob.Row job
Definition: Chara.cs:470
override bool IsPCParty
Definition: Chara.cs:633
Party party
Definition: Chara.cs:43
AIAct SetAI(AIAct g)
Definition: Chara.cs:9490
TraitBed FindBed()
Definition: Chara.cs:7811
override bool isSynced
Definition: Chara.cs:709
override CardRenderer _CreateRenderer()
Definition: Chara.cs:7063
override bool IsPCFaction
Definition: Chara.cs:689
Zone currentZone
Definition: Chara.cs:259
FactionMemberType memberType
Definition: Chara.cs:46
bool IsHomeMember()
Definition: Chara.cs:7012
bool IsGuest()
Definition: Chara.cs:7037
override CardRow sourceCard
Definition: Chara.cs:454
BaseArea GetRoomWork()
Definition: Chara.cs:9532
Affinity affinity
Definition: Chara.cs:318
Room FindRoom()
Definition: Chara.cs:8440
FactionBranch homeBranch
Definition: Chara.cs:1113
bool IsInHomeZone()
Definition: Chara.cs:7017
bool isDead
Definition: Chara.cs:393
PCCData pccData
Definition: Chara.cs:67
string GetTextWork(bool simple=false)
Definition: Chara.cs:9680
string GetTextHobby(bool simple=false)
Definition: Chara.cs:9670
SourceRace.Row race
Definition: Chara.cs:468
bool showExtra
Definition: CoreDebug.cs:184
Sprite home
Definition: CoreRef.cs:93
Sprite work
Definition: CoreRef.cs:97
Sprite sharedEquip
Definition: CoreRef.cs:115
Sprite inspect
Definition: CoreRef.cs:103
RectData center
Definition: CoreRef.cs:169
Icons icons
Definition: CoreRef.cs:358
Rects rects
Definition: CoreRef.cs:364
CoreRef refs
Definition: Core.cs:51
Definition: Date.cs:4
int GetRaw(int offsetHours=0)
Definition: Date.cs:328
bool IsExpired(int time)
Definition: Date.cs:338
string GetText(TextFormat format)
Definition: Date.cs:251
int GetRemainingHours(int rawDeadLine)
Definition: Date.cs:343
Definition: Dialog.cs:7
static Dialog InputName(string langDetail, string text, Action< bool, string > onClose, InputType inputType=InputType.Default)
Definition: Dialog.cs:536
Definition: EClass.cs:6
static Scene scene
Definition: EClass.cs:31
static Faction Home
Definition: EClass.cs:27
static Core core
Definition: EClass.cs:7
static Zone _zone
Definition: EClass.cs:21
static World world
Definition: EClass.cs:41
static Map _map
Definition: EClass.cs:19
static SourceManager sources
Definition: EClass.cs:43
static FactionBranch Branch
Definition: EClass.cs:23
static Chara pc
Definition: EClass.cs:15
static CoreDebug debug
Definition: EClass.cs:49
static UI ui
Definition: EClass.cs:17
void ChangeMemberType(Chara c, FactionMemberType type)
List< Chara > members
void AddReserve(Chara c)
Definition: FACTION.cs:338
List< HireInfo > listReserve
Definition: FACTION.cs:138
int GetMaxReserve()
Definition: FACTION.cs:192
Definition: Hobby.cs:5
SourceHobby.Row source
Definition: Hobby.cs:8
int GetEfficiency(Chara c)
Definition: Hobby.cs:31
string Name
Definition: Hobby.cs:10
void Build()
Definition: ItemGeneral.cs:210
UIButton AddSubButton(Sprite sprite, Action action, string lang=null, Action< UITooltip > onTooltip=null, string id=null)
Definition: ItemGeneral.cs:97
void SetChara(Chara c, BaseListPeople list=null)
Definition: ItemGeneral.cs:28
UIButton SetSubText(string lang, int x, FontColor c=FontColor.Default, TextAnchor align=TextAnchor.MiddleLeft)
Definition: ItemGeneral.cs:161
Definition: Lang.cs:7
static string[] GetList(string id)
Definition: Lang.cs:113
LayerChara SetChara(Chara c)
Definition: LayerChara.cs:9
void Activate(Chara _chara)
override void OnSwitchContent(Window window)
Definition: LayerPeople.cs:85
ShowMode showMode
Definition: LayerPeople.cs:25
UIMultiList multi
Definition: LayerPeople.cs:33
List< Window > windows
Definition: Layer.cs:116
virtual void Close()
Definition: Layer.cs:463
Layer SetOnKill(Action action)
Definition: Layer.cs:579
void RefreshTab()
Definition: ListOwner.cs:110
Thing FindThing(Func< Thing, bool > func)
Definition: Map.cs:2778
List< Chara > charas
Definition: Map.cs:84
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
List< Chara > members
Definition: Party.cs:19
int LV
Definition: RenderRow.cs:22
Definition: Room.cs:4
List< ISyncScreen > syncList
Definition: Scene.cs:137
List< CardRow > rows
Definition: SourceCard.cs:7
Dictionary< string, CardRow > map
Definition: SourceCard.cs:9
override string GetName()
SourceCard cards
SourceCategory categories
SourceElement elements
virtual string Name
Definition: Spatial.cs:509
Image icon
Definition: UIButton.cs:110
static void TryShowTip(Transform root=null, bool highlight=true, bool ignoreWhenRightClick=true)
Definition: UIButton.cs:778
void Show(UIItem i)
void AddButton(Func< string > funcText, UnityAction action=null)
override void List()
Definition: UIItem.cs:5
Definition: UIList.cs:9
SortMode
Definition: UIList.cs:27
List< ListOwner > owners
Definition: UIMultiList.cs:6
void Clear()
Definition: UINote.cs:35
UIItem AddHeader(string text, Sprite sprite=null)
Definition: UINote.cs:79
UIItem AddTopic(string id, string text, string value=null)
Definition: UINote.cs:144
void Build()
Definition: UINote.cs:49
UINote note
Definition: UITooltip.cs:21
static void SetDirty()
void Clear()
Definition: WindowMenu.cs:44
UIButton AddButton2Line(string idLang, Func< string > funcText, Action< UIButton > onClick=null, Sprite sprite=null, string idButton="2line")
Definition: WindowMenu.cs:104
GameDate date
Definition: World.cs:6