Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LayerPeople.cs
Go to the documentation of this file.
1using System;
2using System.Collections.Generic;
3using UnityEngine.UI;
4
5public class LayerPeople : ELayer
6{
7 public enum Mode
8 {
10 Select,
11 Double,
12 Hire
13 }
14
15 public enum ShowMode
16 {
17 Job,
18 Race,
19 Work
20 }
21
22 public static Chara slaveToBuy;
23
25
26 public LayoutGroup layoutMenu;
27
28 public Action onConfirm;
29
31
32 public override bool HeaderIsListOf(int id)
33 {
34 return true;
35 }
36
37 public override void OnInit()
38 {
40 if (multi.owners.Count == 0)
41 {
43 {
44 memberType = FactionMemberType.Default
45 });
47 {
48 memberType = FactionMemberType.Livestock
49 });
51 {
52 memberType = FactionMemberType.Guest
53 });
54 langHint = "h_residents";
55 }
57 multi.owners[0].menu = new WindowMenu(layoutMenu);
58 }
59
60 public LayerPeople SetOnConfirm(Action _onConfirm)
61 {
62 onConfirm = _onConfirm;
63 return this;
64 }
65
66 public void Confirm()
67 {
68 if (onConfirm != null)
69 {
70 onConfirm();
71 }
72 Close();
73 }
74
75 public override void OnKill()
76 {
77 ELayer.player.pref.sortPeople = multi.owners[0].list.sortMode;
78 ELayer.player.pref.modePoeple = showMode;
79 ELayer.scene.screenElin.focusOption = null;
80 }
81
82 public override void OnSwitchContent(Window window)
83 {
84 if (multi.Double)
85 {
86 multi.owners[window.windowIndex].OnSwitchContent();
87 }
88 else
89 {
90 multi.owners[window.idTab].OnSwitchContent();
91 }
92 }
93
94 public static LayerPeople Create(Mode mode)
95 {
96 string path = "LayerPeople";
97 if (mode == Mode.Double)
98 {
99 path = "LayerPeople/LayerPeopleDouble";
100 }
101 return Layer.Create(path) as LayerPeople;
102 }
103
104 public static LayerPeople Create<T>(string langHint = null, Chara owner = null) where T : BaseListPeople
105 {
106 LayerPeople layerPeople = Create(Mode.Select);
107 T o = new T
108 {
109 owner = owner
110 };
111 layerPeople.multi.AddOwner(0, o);
112 layerPeople.langHint = langHint;
113 return layerPeople;
114 }
115
117 {
118 LayerPeople layerPeople = Create(Mode.Hire);
119 layerPeople.multi.AddOwner(0, new ListPeopleCallReserve
120 {
121 textHeader = "actCallReserve"
122 });
123 layerPeople.langHint = "h_reserve";
124 ELayer.ui.AddLayer(layerPeople);
125 return layerPeople;
126 }
127
129 {
130 LayerPeople layerPeople = Create(Mode.Double);
131 layerPeople.multi.AddOwner(0, new ListPeopleBed
132 {
133 textHeader = "candidates",
134 bed = bed
135 });
136 layerPeople.multi.AddOwner(1, new ListPeopleBed
137 {
138 textHeader = "listBedHolder".lang(bed.MaxHolders.ToString() ?? ""),
139 bed = bed
140 });
141 ELayer.ui.AddLayer(layerPeople);
142 return layerPeople;
143 }
144
145 public static LayerPeople CreateSelectEmbarkMembers(List<Chara> settlers)
146 {
147 LayerPeople layerPeople = Create(Mode.Double);
148 List<Chara> list = new List<Chara>();
149 foreach (Chara chara in ELayer.game.lastActiveZone.map.charas)
150 {
151 if (chara.IsHomeMember())
152 {
153 list.Add(chara);
154 }
155 }
156 layerPeople.multi.AddOwner(0, new ListPeopleEmbark
157 {
158 textHeader = "candidates",
159 charas = list
160 });
161 layerPeople.multi.AddOwner(1, new ListPeopleEmbark
162 {
163 textHeader = "listEmbark",
164 charas = settlers
165 });
166 return layerPeople;
167 }
168
170 {
171 LayerPeople layerPeople = Create(Mode.Select);
172 layerPeople.multi.AddOwner(0, list);
173 return layerPeople;
174 }
175
176 public static LayerPeople CreateSelect(string langHeader, string langHint, Action<UIList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null)
177 {
178 LayerPeople layerPeople = Create(Mode.Select);
179 layerPeople.multi.AddOwner(0, new ListPeopleSelect
180 {
181 textHeader = langHeader,
182 onList = onList,
183 onClick = onClick,
184 onShowSubText = _onShowSubText
185 });
186 layerPeople.langHint = langHint;
187 ELayer.ui.AddLayer(layerPeople);
188 return layerPeople;
189 }
190}
Definition: Chara.cs:10
bool IsHomeMember()
Definition: Chara.cs:5942
Definition: ELayer.cs:4
static Player player
Definition: ELayer.cs:13
static Game game
Definition: ELayer.cs:9
static UI ui
Definition: ELayer.cs:21
Zone lastActiveZone
Definition: Game.cs:247
override void OnSwitchContent(Window window)
Definition: LayerPeople.cs:82
LayerPeople SetOnConfirm(Action _onConfirm)
Definition: LayerPeople.cs:60
ShowMode showMode
Definition: LayerPeople.cs:24
override void OnInit()
Definition: LayerPeople.cs:37
override void OnKill()
Definition: LayerPeople.cs:75
static LayerPeople Create(Mode mode)
Definition: LayerPeople.cs:94
static LayerPeople CreateSelect(string langHeader, string langHint, Action< UIList > onList, Action< Chara > onClick, Func< Chara, string > _onShowSubText=null)
Definition: LayerPeople.cs:176
UIMultiList multi
Definition: LayerPeople.cs:30
static LayerPeople CreateReserve()
Definition: LayerPeople.cs:116
static Chara slaveToBuy
Definition: LayerPeople.cs:22
static LayerPeople Create(BaseListPeople list)
Definition: LayerPeople.cs:169
Action onConfirm
Definition: LayerPeople.cs:28
override bool HeaderIsListOf(int id)
Definition: LayerPeople.cs:32
static LayerPeople CreateBed(TraitBed bed)
Definition: LayerPeople.cs:128
static LayerPeople CreateSelectEmbarkMembers(List< Chara > settlers)
Definition: LayerPeople.cs:145
void Confirm()
Definition: LayerPeople.cs:66
LayoutGroup layoutMenu
Definition: LayerPeople.cs:26
Definition: Layer.cs:9
string langHint
Definition: Layer.cs:119
static T Create< T >()
Definition: Layer.cs:289
virtual void Close()
Definition: Layer.cs:463
static Layer Create(string path)
Definition: Layer.cs:299
List< Chara > charas
Definition: Map.cs:81
LayerPeople.ShowMode modePoeple
Definition: Player.cs:55
UIList.SortMode sortPeople
Definition: Player.cs:45
Pref pref
Definition: Player.cs:814
void AddOwner(int i, ListOwner o)
Definition: UIMultiList.cs:25
List< ListOwner > owners
Definition: UIMultiList.cs:6
void Build(UIList.SortMode m=UIList.SortMode.ByNone)
Definition: UIMultiList.cs:41
Definition: Window.cs:13
int windowIndex
Definition: Window.cs:697
int idTab
Definition: Window.cs:694
Map map
Definition: Zone.cs:60