Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
UIHomeInfo.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine;
4using UnityEngine.UI;
5
6public class UIHomeInfo : EMono
7{
8 public class ReportData
9 {
10 public enum ReportType
11 {
12 Default,
13 Warning,
15 Good,
16 Great,
17 Trial
18 }
19
21
22 public string text;
23
24 public Action onClick;
25
26 public Action<UITooltip> onShowTooltip;
27
29 {
30 return type switch
31 {
32 ReportType.Warning => FontColor.Warning,
33 ReportType.Critical => FontColor.Bad,
34 ReportType.Good => FontColor.Good,
35 ReportType.Great => FontColor.Good,
36 ReportType.Trial => FontColor.Great,
37 _ => FontColor.Default,
38 };
39 }
40 }
41
42 public Transform transLayout;
43
45
47
49
51
53
55
57
59
61
63
65
67
69
71
73
75
77
79
81
83
85
87
89
91
93
95
97
99
101
102 public Zone zone;
103
104 public Image imageFaith;
105
106 public Image barTemper;
107
108 public List<ReportData> reports = new List<ReportData>();
109
110 public Sprite[] iconReports;
111
112 public int tabResearch => 1;
113
114 public void Refresh()
115 {
117 reports.Clear();
119 branch = EMono.Branch ?? EMono.pc.homeZone.branch;
122 RefreshInfo();
125 transLayout.RebuildLayoutTo(this);
126 }
127
128 public void RefreshInfo()
129 {
130 textHeaderReport.text = "headerHomeReport".lang(EMono.world.date.year.ToString() ?? "", EMono.world.date.month + "/" + EMono.world.date.day);
131 textFaction.text = EMono.pc.faction.Name;
132 textGod.text = branch.faith.Name;
133 textContentLv.text = branch.DangerLV + " " + ("(" + branch.ContentLV + ")").TagSize(12);
134 textDateFound.text = Date.GetText(branch.dateFound, Date.TextFormat.YearMonthDay);
135 textPasture.text = branch.CountPasture() + " " + ("(-" + branch.GetPastureCost() + "dailyIncome".lang() + ")").TagSize(12);
138 if (flag)
139 {
140 AddReport("rPopOver", ReportData.ReportType.Warning);
141 }
142 textDev.text = (EMono._zone.development / 10).ToString() ?? "";
143 textLand.text = EMono._map.bounds.Width * EMono._map.bounds.Height / 100 + " ㎢";
144 int civility = branch.GetCivility();
145 textCivility.text = civility + " " + ("(" + Lang.GetList("civility")[Mathf.Clamp(civility / 20, 0, 4)] + ")").TagSize(12);
146 int electricity = EMono._zone.GetElectricity(cost: true);
147 int electricity2 = EMono._zone.GetElectricity();
148 textElec.SetText("elecLv".lang(electricity2.ToString() ?? "", (electricity.ToString() ?? "").TagColor((electricity <= electricity2) ? FontColor.Good : FontColor.Bad)));
149 if (electricity > electricity2)
150 {
151 AddReport("rElecOver", ReportData.ReportType.Warning);
152 }
153 int soilCost = zone.GetSoilCost();
154 int maxSoil = branch.MaxSoil;
155 textSoil.SetText("soilLv".lang(maxSoil.ToString() ?? "", ((maxSoil - soilCost).ToString() ?? "").TagColor((soilCost <= maxSoil) ? FontColor.Good : FontColor.Bad)));
156 if (soilCost > maxSoil)
157 {
158 AddReport("rSoilOver", ReportData.ReportType.Warning);
159 }
163 textFaith.SetText(branch.faith.Name + Environment.NewLine + (" ♥" + branch.RankText).TagSize(13));
164 imageFaith.sprite = branch.faith.GetSprite();
166 barTemper.fillAmount = 0.5f + (float)branch.temper * 0.01f * 0.5f;
167 barTemper.color = ((branch.temper > -25) ? SkinManager.CurrentColors.textGood : SkinManager.CurrentColors.textBad);
168 if ((bool)buttonWorth)
169 {
172 {
174 });
175 }
176 buttonLv.mainText.SetText(branch.lv.ToString() ?? "");
177 buttonLv.SetTooltip(delegate(UITooltip t)
178 {
179 UINote i = t.note;
180 i.Clear();
181 i.AddHeader("branchLv".lang());
182 i.AddTopic("TopicLeft", "vCurrent".lang(), EMono.Branch.TextLv);
183 i.Space();
184 Write(branch.lv);
185 if (branch.lv < branch.MaxLv)
186 {
187 i.Space();
188 i.AddHeaderTopic("nextLevel");
189 Write(branch.lv + 1);
190 }
191 t.note.Build();
192 void Write(int lv)
193 {
194 string[] array = branch.GetHearthHint(lv).SplitNewline();
195 for (int j = 0; j < array.Length; j++)
196 {
197 string text = array[j].Replace(Environment.NewLine, "");
198 if (!text.IsEmpty())
199 {
200 i.AddText(text);
201 }
202 }
203 }
204 });
207 {
208 UINote note2 = t.note;
209 note2.Clear();
210 note2.AddHeader("homeRanking".lang());
211 note2.AddTopic("TopicLeft", "vCurrent".lang(), EMono.game.spatials.ranks.GetRankText(EMono._zone));
212 note2.Space();
213 note2.AddHeader("HeaderTopic", "rank_income".lang());
214 note2.Space(1);
215 note2.AddText("rank_income2".lang(EMono.game.spatials.ranks.GetIncome(EMono._zone).ToFormat()));
216 t.note.Build();
217 });
218 buttonRank.mainText.SetText(branch.rank.ToString() ?? "");
220 {
221 UINote note = t.note;
222 note.Clear();
223 note.AddHeader("factionRank2".lang());
224 note.AddTopic("TopicLeft", "vCurrent".lang(), branch.rank.ToString() ?? "");
225 t.note.Build();
226 });
227 buttonHappinessResident.mainText.text = branch.happiness.residents.GetText();
228 buttonHappinessLivestock.mainText.text = branch.happiness.livestocks.GetText();
229 buttonHappinessResident.subText.text = branch.CountMembers(FactionMemberType.Default).ToString() ?? "";
230 buttonHappinessLivestock.subText.text = branch.CountMembers(FactionMemberType.Livestock).ToString() ?? "";
232 {
234 });
236 {
238 });
239 }
240
241 public string GetTextHappiness(List<Chara> list)
242 {
243 int num = 0;
244 int num2 = 0;
245 int num3 = 0;
246 int num4 = 0;
247 foreach (Chara item in list)
248 {
249 int happiness = item.GetHappiness();
250 if (happiness >= 80)
251 {
252 num2++;
253 }
254 else if (happiness >= 30)
255 {
256 num3++;
257 }
258 else
259 {
260 num4++;
261 }
262 num += happiness;
263 }
264 int avg = ((list.Count != 0) ? (num / list.Count) : 0);
265 string s = "(" + num2.ToString().TagColor(FontColor.Good) + "/" + num3.ToString().TagColor(FontColor.Default) + "/" + num4.ToString().TagColor(FontColor.Bad) + ")";
266 return (((list.Count == 0) ? " - " : avg.ToString()) + "%").TagColorGoodBad(() => list.Count == 0 || avg >= 50) + " " + s.TagSize(13);
267 }
268
269 public void RefreshResources()
270 {
272 listCurrencies.callbacks = new UIList.Callback<BaseHomeResource, ItemHomeResource>
273 {
274 onInstantiate = delegate(BaseHomeResource a, ItemHomeResource b)
275 {
276 b.SetResource(a);
277 },
278 onList = delegate
279 {
281 {
282 if (item.IsCurrency && item.IsAvailable)
283 {
285 }
286 }
287 }
288 };
291 listResources.callbacks = new UIList.Callback<BaseHomeResource, ItemHomeResource>
292 {
293 onInstantiate = delegate(BaseHomeResource a, ItemHomeResource b)
294 {
295 b.SetResource(a);
296 },
297 onList = delegate
298 {
299 foreach (BaseHomeResource item2 in branch.resources.list)
300 {
301 if (item2.IsRate && item2.IsAvailable)
302 {
303 listResources.Add(item2);
304 }
305 }
306 }
307 };
310 listSkill.callbacks = new UIList.Callback<BaseHomeResource, ItemHomeResource>
311 {
312 onInstantiate = delegate(BaseHomeResource a, ItemHomeResource b)
313 {
314 b.SetResource(a);
315 },
316 onList = delegate
317 {
318 foreach (BaseHomeResource item3 in branch.resources.list)
319 {
320 if (item3.IsSkill)
321 {
322 listSkill.Add(item3);
323 }
324 }
325 }
326 };
327 listSkill.List();
328 }
329
330 public void AddReport(string text, ReportData.ReportType type = ReportData.ReportType.Default, Action onClick = null, Action<UITooltip> onShowTooltip = null)
331 {
333 {
334 text = text.lang(),
335 type = type,
336 onClick = onClick,
337 onShowTooltip = onShowTooltip
338 };
339 reports.Add(item);
340 }
341
342 public void RefreshReport()
343 {
344 if (EMono.Branch.meetings.list.Count > 0)
345 {
346 AddReport("rMeeting".lang(EMono.Branch.meetings.list.Count.ToString() ?? ""));
347 }
348 foreach (ZoneEvent item in branch.owner.events.list)
349 {
350 if (item.HasReport)
351 {
352 AddReport(item.GetText(), ReportData.ReportType.Trial);
353 }
354 }
355 foreach (ResearchPlan newPlan in branch.researches.newPlans)
356 {
357 AddReport("rNewPlan".lang(newPlan.Name ?? ""), ReportData.ReportType.Good, delegate
358 {
359 });
360 }
361 foreach (ResearchPlan plan in branch.researches.plans)
362 {
363 if (plan.exp == plan.MaxExp)
364 {
365 AddReport("vResearched".lang(plan.Name), ReportData.ReportType.Great, delegate
366 {
367 });
368 }
369 }
370 foreach (Chara member in branch.members)
371 {
372 if (member.isDead || member.IsPCParty || member.memberType != 0 || member.noMove)
373 {
374 continue;
375 }
376 bool flag = false;
378 {
379 foreach (Hobby item2 in member.ListWorks())
380 {
381 if (item2.GetEfficiency(member) > 0)
382 {
383 flag = true;
384 break;
385 }
386 }
387 }
388 else if (member.GetWorkSummary().work != null)
389 {
390 flag = true;
391 }
392 if (!flag)
393 {
394 AddReport("rNoWork".lang(member.Name).ToTitleCase(), ReportData.ReportType.Warning);
395 }
396 }
397 if (EMono.player.taxBills > 0)
398 {
399 AddReport("rBill".lang(EMono.player.taxBills.ToString() ?? ""), ReportData.ReportType.Warning);
400 }
401 if (reports.Count == 0)
402 {
403 AddReport("rNoReport", ReportData.ReportType.Good);
404 }
405 AddReport("rTax".lang((30 - EMono.world.date.day + 1).ToString() ?? "", faction.GetTotalTax(evasion: false).ToFormat()), ReportData.ReportType.Default, null, delegate(UITooltip t)
406 {
407 t.note.Clear();
409 t.note.Build();
410 });
412 {
414 AddReport("Efficiency:" + branch.efficiency);
415 }
416 reports.Sort((ReportData a, ReportData b) => b.type - a.type);
418 listReport.callbacks = new UIList.Callback<ReportData, ItemGeneral>
419 {
420 onClick = delegate(ReportData a, ItemGeneral b)
421 {
422 if (a.onClick != null)
423 {
424 a.onClick();
425 }
426 },
427 onInstantiate = delegate(ReportData a, ItemGeneral b)
428 {
429 b.SetMainText(a.text, iconReports[(int)a.type]);
431 if (a.onClick != null)
432 {
434 }
435 b.Build();
436 if (a.onShowTooltip != null)
437 {
439 }
440 },
441 onList = delegate
442 {
443 foreach (ReportData report in reports)
444 {
445 listReport.Add(report);
446 }
447 },
448 onRefresh = null
449 };
451 }
452}
FactionMemberType
FontColor
Definition: FontColor.cs:2
virtual bool IsAvailable
string Name
Definition: Card.cs:2013
bool noMove
Definition: Card.cs:742
Definition: Chara.cs:10
WorkSummary GetWorkSummary()
Definition: Chara.cs:8308
Faction faction
Definition: Chara.cs:412
override bool IsPCParty
Definition: Chara.cs:600
FactionMemberType memberType
Definition: Chara.cs:46
List< Hobby > ListWorks(bool useMemberType=true)
Definition: Chara.cs:8109
Zone homeZone
Definition: Chara.cs:252
bool isDead
Definition: Chara.cs:374
bool showExtra
Definition: CoreDebug.cs:167
Sprite go
Definition: CoreRef.cs:82
Icons icons
Definition: CoreRef.cs:339
CoreRef refs
Definition: Core.cs:51
Definition: Date.cs:4
int month
Definition: Date.cs:50
int day
Definition: Date.cs:62
int year
Definition: Date.cs:38
string GetText(TextFormat format)
Definition: Date.cs:245
TextFormat
Definition: Date.cs:6
Definition: EMono.cs:4
static Core core
Definition: EMono.cs:5
static Chara pc
Definition: EMono.cs:13
static World world
Definition: EMono.cs:37
static Player player
Definition: EMono.cs:11
static Zone _zone
Definition: EMono.cs:19
static Game game
Definition: EMono.cs:7
static FactionBranch Branch
Definition: EMono.cs:21
static CoreDebug debug
Definition: EMono.cs:45
MeetingManager meetings
void RefreshEfficiency()
HappinessManager happiness
int CountMembers(FactionMemberType type, bool onlyAlive=false)
ResearchManager researches
Religion faith
string GetHearthHint(int a)
List< Chara > members
HomeResourceManager resources
void SetTaxTooltip(UINote n)
Definition: FACTION.cs:536
int GetTotalTax(bool evasion)
Definition: FACTION.cs:499
string name
Definition: FACTION.cs:133
string Name
Definition: FACTION.cs:148
SpatialManager spatials
Definition: Game.cs:152
Zone activeZone
Definition: Game.cs:245
void WriteNote(UINote n)
Definition: Happiness.cs:108
string GetText()
Definition: Happiness.cs:63
Definition: Hobby.cs:4
int GetEfficiency(Chara c)
Definition: Hobby.cs:30
List< BaseHomeResource > list
HomeResourceWorth worth
override void WriteNote(UINote n)
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
void SetResource(BaseHomeResource _r)
Definition: Lang.cs:6
static string[] GetList(string id)
Definition: Lang.cs:114
List< Meeting > list
int taxBills
Definition: Player.cs:715
string GetRankText(Zone z)
int GetIncome(Zone z)
string Name
Definition: Religion.cs:30
string GetTextTemper(int _temper=-99999)
Definition: Religion.cs:107
Sprite GetSprite()
Definition: Religion.cs:72
List< ResearchPlan > plans
List< ResearchPlan > newPlans
static SkinColorProfile CurrentColors
Definition: SkinManager.cs:84
RankedZoneManager ranks
virtual string Name
Definition: Spatial.cs:495
UIText mainText
Definition: UIButton.cs:102
void SetTooltip(Action< UITooltip > onShowTooltip=null, bool enable=true)
Definition: UIButton.cs:361
FontColor GetFontColor()
Definition: UIHomeInfo.cs:28
Action< UITooltip > onShowTooltip
Definition: UIHomeInfo.cs:26
UIText textGod
Definition: UIHomeInfo.cs:48
Sprite[] iconReports
Definition: UIHomeInfo.cs:110
UIText textDateFound
Definition: UIHomeInfo.cs:46
UIButton buttonWorth
Definition: UIHomeInfo.cs:82
UIText textPasture
Definition: UIHomeInfo.cs:76
void Refresh()
Definition: UIHomeInfo.cs:114
FactionBranch branch
Definition: UIHomeInfo.cs:100
UIText textContentLv
Definition: UIHomeInfo.cs:74
void RefreshInfo()
Definition: UIHomeInfo.cs:128
Transform transLayout
Definition: UIHomeInfo.cs:42
UIText textSoil
Definition: UIHomeInfo.cs:72
UIText textCivility
Definition: UIHomeInfo.cs:60
Image imageFaith
Definition: UIHomeInfo.cs:104
int tabResearch
Definition: UIHomeInfo.cs:112
UIText textDev
Definition: UIHomeInfo.cs:56
UIText textElec
Definition: UIHomeInfo.cs:58
UIList listSkill
Definition: UIHomeInfo.cs:94
UIButton buttonLv
Definition: UIHomeInfo.cs:86
void AddReport(string text, ReportData.ReportType type=ReportData.ReportType.Default, Action onClick=null, Action< UITooltip > onShowTooltip=null)
Definition: UIHomeInfo.cs:330
UIButton buttonHappinessLivestock
Definition: UIHomeInfo.cs:80
UIText textLand
Definition: UIHomeInfo.cs:52
UIButton buttonRanking
Definition: UIHomeInfo.cs:88
UIText textPopu
Definition: UIHomeInfo.cs:66
UIText textHeaderReport
Definition: UIHomeInfo.cs:54
UIText textFaction
Definition: UIHomeInfo.cs:44
string GetTextHappiness(List< Chara > list)
Definition: UIHomeInfo.cs:241
UIList listReport
Definition: UIHomeInfo.cs:96
void RefreshResources()
Definition: UIHomeInfo.cs:269
UIList listCurrencies
Definition: UIHomeInfo.cs:90
Image barTemper
Definition: UIHomeInfo.cs:106
UIButton buttonRank
Definition: UIHomeInfo.cs:84
UIText textRank
Definition: UIHomeInfo.cs:64
UIText textTemper
Definition: UIHomeInfo.cs:70
Faction faction
Definition: UIHomeInfo.cs:98
UIButton buttonHappinessResident
Definition: UIHomeInfo.cs:78
void RefreshReport()
Definition: UIHomeInfo.cs:342
UIText textName
Definition: UIHomeInfo.cs:62
UIList listResources
Definition: UIHomeInfo.cs:92
List< ReportData > reports
Definition: UIHomeInfo.cs:108
UIText textMember
Definition: UIHomeInfo.cs:50
UIText textFaith
Definition: UIHomeInfo.cs:68
UIButton button1
Definition: UIItem.cs:18
Definition: UIList.cs:9
override void Clear()
Definition: UIList.cs:349
override void Add(object item)
Definition: UIList.cs:302
override void List()
Definition: UIList.cs:717
Definition: UINote.cs:6
UIItem AddHeaderTopic(string text, Sprite sprite=null)
Definition: UINote.cs:89
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
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
void SetColor(FontColor c)
Definition: UIText.cs:234
UINote note
Definition: UITooltip.cs:21
WorkSession work
Definition: WorkSummary.cs:10
GameDate date
Definition: World.cs:6
List< ZoneEvent > list
Definition: Zone.cs:12
void RefreshElectricity()
Definition: Zone.cs:2636
ZoneEventManager events
Definition: Zone.cs:40
FactionBranch branch
Definition: Zone.cs:34
int GetElectricity(bool cost=false)
Definition: Zone.cs:2667
int GetSoilCost()
Definition: Zone.cs:3433