Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LayerHome.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Linq;
3
4public class LayerHome : ELayer
5{
6 public static LayerHome Instance;
7
9
11
13
15
17
19
21
23
24 public const int TabResearch = 1;
25
26 public const int TabPolicy = 2;
27
28 public const int TabPopulation = 3;
29
30 public const int TabFeat = 4;
31
32 public override bool HeaderIsListOf(int id)
33 {
34 return id != 0;
35 }
36
37 public override void OnInit()
38 {
40 Instance = this;
41 }
42
43 public override void OnSwitchContent(Window window)
44 {
45 if (window.setting.tabs.Count == 0)
46 {
47 return;
48 }
49 WindowMenu menuLeft = window.menuLeft;
50 menuLeft.Clear();
51 if (ELayer.player.shippingResults.Count > 0)
52 {
53 menuLeft.AddButtonSimple(() => "shipping_result".lang(), delegate
54 {
55 ELayer.ui.AddLayer<LayerShippingResult>().Show();
56 });
57 }
58 switch (window.CurrentTab.idLang)
59 {
60 case "top":
61 info.Refresh();
62 break;
63 case "skills":
65 break;
66 case "chronicle":
68 break;
69 case "population":
70 break;
71 }
72 }
73
74 public void RefreshChronicle()
75 {
76 }
77
78 public void RefreshTech(bool listComplete = false)
79 {
80 UIList list = (listComplete ? listTech2 : listTech);
81 list.sortMode = ELayer.player.pref.sortResearch;
82 list.callbacks = new UIList.Callback<ResearchPlan, ItemResearch>
83 {
84 onInstantiate = delegate
85 {
86 },
87 onList = delegate
88 {
89 foreach (ResearchPlan item in listComplete ? branch.researches.finished : branch.researches.plans)
90 {
91 list.Add(item);
92 }
93 },
94 onSort = (ResearchPlan a, UIList.SortMode m) => a.GetSortVal(m)
95 };
96 list.List();
98 }
99
100 public void RefreshFocus()
101 {
102 ItemResearch[] componentsInChildren = listTech.GetComponentsInChildren<ItemResearch>();
103 foreach (ItemResearch itemResearch in componentsInChildren)
104 {
105 itemResearch.goFocus.SetActive(itemResearch.plan == branch.researches.focused);
106 }
107 }
108
109 public void RefreshFeat()
110 {
111 listFeat.callbacks = new UIList.Callback<Element, ButtonElement>
112 {
113 onClick = delegate(Element a, ButtonElement b)
114 {
116 int currency = ELayer.pc.GetCurrency("money2");
117 if (p == 0 || p > currency || a.ValueWithoutLink == 0 || a.source.cost[0] == 0)
118 {
119 SE.Beep();
120 }
121 else
122 {
123 Dialog.YesNo("dialogUpgradeTech".lang(a.Name), delegate
124 {
125 SE.Pay();
126 ELayer.pc.ModCurrency(-p, "money2");
127 ELayer.Branch.elements.ModBase(a.id, 1);
128 listFeat.List();
129 ELayer.Branch.resources.SetDirty();
130 ELayer.core.game.player.hotbars.ResetHotbar(2);
131 if ((bool)WidgetHotbar.HotBarMainMenu)
132 {
133 WidgetHotbar.HotBarMainMenu.RebuildPage();
134 }
136 {
137 WidgetMenuPanel.Instance.OnChangeActionMode();
138 }
139 });
140 }
141 },
142 onInstantiate = delegate(Element a, ButtonElement b)
143 {
145 },
146 onList = delegate
147 {
148 foreach (Element item in branch.elements.dict.Values.Where((Element b) => (b.Value > 0 || b.vBase > 0) && b.source.category != "policy" && b.source.category != "landfeat" && !b.HasTag("hidden")))
149 {
151 }
152 },
153 onSort = (Element a, UIList.SortMode m) => a.GetSortVal(m),
154 onRefresh = null
155 };
156 listFeat.List();
157 listFeat2.callbacks = new UIList.Callback<Element, ButtonElement>
158 {
159 onClick = delegate
160 {
161 },
162 onInstantiate = delegate(Element a, ButtonElement b)
163 {
165 },
166 onList = delegate
167 {
168 foreach (Element item2 in branch.elements.dict.Values.Where((Element b) => b.source.category == "policy"))
169 {
170 listFeat2.Add(item2);
171 }
172 },
173 onSort = (Element a, UIList.SortMode m) => a.GetSortVal(m),
174 onRefresh = null
175 };
176 listFeat2.List();
177 listFeat3.callbacks = new UIList.Callback<Element, ButtonElement>
178 {
179 onClick = delegate
180 {
181 },
182 onInstantiate = delegate(Element a, ButtonElement b)
183 {
185 },
186 onList = delegate
187 {
188 IEnumerable<Element> enumerable = branch.elements.dict.Values;
189 if (branch.HasNetwork)
190 {
191 enumerable = enumerable.Concat(ELayer.pc.faction.elements.dict.Values);
192 }
193 foreach (Element item3 in enumerable.Where((Element b) => (b.Value > 0 || b.vBase > 0) && b.source.category == "landfeat" && !b.HasTag("hidden")))
194 {
195 listFeat3.Add(item3);
196 }
197 },
198 onSort = (Element a, UIList.SortMode m) => a.GetSortVal(m),
199 onRefresh = null
200 };
201 listFeat3.List();
202 }
203
204 public void RefreshAreas()
205 {
206 listArea.callbacks = new UIList.Callback<Area, ItemGeneral>
207 {
208 onClick = delegate
209 {
210 },
211 onInstantiate = delegate(Area a, ItemGeneral b)
212 {
213 _ = b.button1;
214 b.SetMainText(a.Name);
215 b.AddSubButton(ELayer.core.refs.icons.go, delegate
216 {
217 ELayer.screen.Focus(a.points[0]);
218 }, "tFocus");
219 b.Build();
220 },
221 onList = delegate
222 {
223 foreach (Area item in ELayer._map.rooms.listArea)
224 {
225 listArea.Add(item);
226 }
227 },
228 onSort = (Area a, UIList.SortMode m) => a.GetSortVal(m),
229 onRefresh = null
230 };
231 listArea.List();
232 }
233
234 public void RefreshSpots()
235 {
236 listArea.Clear();
237 listArea.callbacks = new UIList.Callback<Trait, ItemGeneral>
238 {
239 onClick = delegate
240 {
241 },
242 onInstantiate = delegate(Trait a, ItemGeneral b)
243 {
244 _ = b.button1;
245 b.SetMainText(a.Name);
246 b.AddSubButton(ELayer.core.refs.icons.go, delegate
247 {
248 ELayer.screen.Focus(a.GetPoint());
249 }, "tFocus");
250 b.Build();
251 },
252 onList = delegate
253 {
254 foreach (Card item in ELayer._map.Installed.all)
255 {
256 if (item.trait.IsSpot)
257 {
258 listArea.Add(item.trait);
259 }
260 }
261 },
262 onSort = (Trait a, UIList.SortMode m) => a.GetSortVal(m),
263 onRefresh = null
264 };
265 listArea.List();
266 }
267}
@ currency
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
Definition: UIBook.cs:627
Definition: Area.cs:4
int GetSortVal(UIList.SortMode m)
Definition: BaseArea.cs:161
virtual string Name
Definition: BaseArea.cs:37
void SetElement(Element _e, ElementContainer _owner, Mode _mode=Mode.Skill)
Definition: Card.cs:11
int GetCurrency(string id="money")
Definition: Card.cs:3652
Faction faction
Definition: Chara.cs:412
Sprite go
Definition: CoreRef.cs:82
Icons icons
Definition: CoreRef.cs:339
CoreRef refs
Definition: Core.cs:51
Definition: Dialog.cs:7
static Dialog YesNo(string langDetail, Action actionYes, Action actionNo=null, string langYes="yes", string langNo="no")
Definition: Dialog.cs:244
Definition: ELayer.cs:4
static Chara pc
Definition: ELayer.cs:15
static Player player
Definition: ELayer.cs:13
static Core core
Definition: ELayer.cs:7
static Map _map
Definition: ELayer.cs:23
static UI ui
Definition: ELayer.cs:21
static FactionBranch Branch
Definition: ELayer.cs:17
static Zone _zone
Definition: ELayer.cs:25
Dictionary< int, Element > dict
int ValueWithoutLink
Definition: ELEMENT.cs:284
int vBase
Definition: ELEMENT.cs:242
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
ResearchManager researches
int GetTechUpgradeCost(Element e)
ElementContainerZone elements
ElementContainerZone elements
Definition: FACTION.cs:139
void Build()
Definition: ItemGeneral.cs:161
void SetMainText(string lang, Sprite sprite=null, bool disableMask=true)
Definition: ItemGeneral.cs:101
UIButton AddSubButton(Sprite sprite, Action action, string lang=null, Action< UITooltip > onTooltip=null)
Definition: ItemGeneral.cs:76
ResearchPlan plan
Definition: ItemResearch.cs:9
Image goFocus
Definition: ItemResearch.cs:7
UIList listTech2
Definition: LayerHome.cs:12
override void OnSwitchContent(Window window)
Definition: LayerHome.cs:43
const int TabResearch
Definition: LayerHome.cs:24
override bool HeaderIsListOf(int id)
Definition: LayerHome.cs:32
FactionBranch branch
Definition: LayerHome.cs:20
UIList listFeat
Definition: LayerHome.cs:14
const int TabPolicy
Definition: LayerHome.cs:26
UIList listTech
Definition: LayerHome.cs:10
override void OnInit()
Definition: LayerHome.cs:37
void RefreshFocus()
Definition: LayerHome.cs:100
UIList listFeat3
Definition: LayerHome.cs:18
static LayerHome Instance
Definition: LayerHome.cs:6
const int TabFeat
Definition: LayerHome.cs:30
UIList listFeat2
Definition: LayerHome.cs:16
void RefreshTech(bool listComplete=false)
Definition: LayerHome.cs:78
void RefreshChronicle()
Definition: LayerHome.cs:74
const int TabPopulation
Definition: LayerHome.cs:28
UIList listArea
Definition: LayerHome.cs:8
void RefreshFeat()
Definition: LayerHome.cs:109
UIHomeInfo info
Definition: LayerHome.cs:22
void RefreshSpots()
Definition: LayerHome.cs:234
void RefreshAreas()
Definition: LayerHome.cs:204
PropsInstalled Installed
Definition: Map.cs:123
RoomManager rooms
Definition: Map.cs:31
UIList.SortMode sortResearch
Definition: Player.cs:47
Pref pref
Definition: Player.cs:814
List< ShippingResult > shippingResults
Definition: Player.cs:925
PropSet all
Definition: Props.cs:8
ResearchPlan focused
List< ResearchPlan > finished
List< ResearchPlan > plans
int GetSortVal(UIList.SortMode m)
Definition: ResearchPlan.cs:45
List< Area > listArea
Definition: RoomManager.cs:10
Definition: Trait.cs:7
int GetSortVal(UIList.SortMode m)
Definition: Trait.cs:908
virtual string Name
Definition: Trait.cs:46
void Refresh()
Definition: UIHomeInfo.cs:114
UIButton button1
Definition: UIItem.cs:18
Definition: UIList.cs:9
override void Clear()
Definition: UIList.cs:349
SortMode
Definition: UIList.cs:27
override void Add(object item)
Definition: UIList.cs:302
override void List()
Definition: UIList.cs:717
static WidgetMenuPanel Instance
void Clear()
Definition: WindowMenu.cs:44
UIButton AddButtonSimple(Func< string > funcText, Action< UIButton > onClick=null, Sprite sprite=null, string idButton="Simple")
Definition: WindowMenu.cs:70
List< Tab > tabs
Definition: Window.cs:81
Definition: Window.cs:13
Setting.Tab CurrentTab
Definition: Window.cs:787
Setting setting
Definition: Window.cs:606
WindowMenu menuLeft
Definition: Window.cs:700
ElementContainerZone elements
Definition: Zone.cs:43