Elin Decompiled Documentation EA 23.286 Nightly Patch 1
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 Party
14 }
15
16 public enum ShowMode
17 {
18 Job,
19 Race,
20 Work
21 }
22
23 public static Chara slaveToBuy;
24
26
27 public LayoutGroup layoutMenu;
28
30
31 public Action onConfirm;
32
34
35 public override bool HeaderIsListOf(int id)
36 {
37 return true;
38 }
39
40 public override void OnInit()
41 {
43 if (multi.owners.Count == 0)
44 {
46 {
47 memberType = FactionMemberType.Default
48 });
50 {
51 memberType = FactionMemberType.Livestock
52 });
54 {
55 memberType = FactionMemberType.Guest
56 });
57 langHint = "h_residents";
58 }
60 multi.owners[0].menu = new WindowMenu(layoutMenu);
61 }
62
63 public LayerPeople SetOnConfirm(Action _onConfirm)
64 {
65 onConfirm = _onConfirm;
66 return this;
67 }
68
69 public void Confirm()
70 {
71 if (onConfirm != null)
72 {
73 onConfirm();
74 }
75 Close();
76 }
77
78 public override void OnKill()
79 {
80 ELayer.player.pref.sortPeople = multi.owners[0].list.sortMode;
81 ELayer.player.pref.modePoeple = showMode;
82 ELayer.scene.screenElin.focusOption = null;
83 }
84
85 public override void OnSwitchContent(Window window)
86 {
87 if (multi.Double)
88 {
90 }
91 else
92 {
93 InitList(multi.owners[window.idTab]);
94 }
95 }
96
97 public void InitList(ListOwner o)
98 {
99 if ((bool)search && (!multi.Double || o.main))
100 {
101 search.Init(o);
102 }
103 o.OnSwitchContent();
104 }
105
106 public static LayerPeople Create(Mode mode)
107 {
108 string path = "LayerPeople";
109 switch (mode)
110 {
111 case Mode.Double:
112 path = "LayerPeople/LayerPeopleDouble";
113 break;
114 case Mode.Party:
115 path = "LayerPeople/LayerPeopleDouble_party";
116 break;
117 }
118 return Layer.Create(path) as LayerPeople;
119 }
120
121 public static LayerPeople Create<T>(string langHint = null, Chara owner = null) where T : BaseListPeople
122 {
123 LayerPeople layerPeople = Create(Mode.Select);
124 T o = new T
125 {
126 owner = owner
127 };
128 layerPeople.multi.AddOwner(0, o);
129 layerPeople.langHint = langHint;
130 return layerPeople;
131 }
132
134 {
135 LayerPeople layerPeople = Create(Mode.Hire);
136 layerPeople.multi.AddOwner(0, new ListPeopleCallReserve
137 {
138 textHeader = "actCallReserve"
139 });
140 layerPeople.langHint = "h_reserve";
141 ELayer.ui.AddLayer(layerPeople);
142 return layerPeople;
143 }
144
145 public static LayerPeople CreateParty()
146 {
147 LayerPeople layerPeople = Create(Mode.Party);
148 layerPeople.multi.AddOwner(0, new ListPeopleParty
149 {
150 textHeader = "candidates"
151 });
152 layerPeople.multi.AddOwner(1, new ListPeopleParty
153 {
154 textHeader = "faction_Member"
155 });
156 ELayer.ui.AddLayer(layerPeople);
157 return layerPeople;
158 }
159
161 {
162 LayerPeople layerPeople = Create(Mode.Double);
163 layerPeople.multi.AddOwner(0, new ListPeopleBed
164 {
165 textHeader = "candidates",
166 bed = bed
167 });
168 layerPeople.multi.AddOwner(1, new ListPeopleBed
169 {
170 funcHeader = () => "listBedHolder".lang(bed.CountHolders() + " / " + bed.MaxHolders),
171 bed = bed
172 });
173 ELayer.ui.AddLayer(layerPeople);
174 return layerPeople;
175 }
176
177 public static LayerPeople CreateSelectEmbarkMembers(List<Chara> settlers)
178 {
179 LayerPeople layerPeople = Create(Mode.Double);
180 List<Chara> list = new List<Chara>();
181 foreach (Chara chara in ELayer.game.lastActiveZone.map.charas)
182 {
183 if (chara.IsHomeMember())
184 {
185 list.Add(chara);
186 }
187 }
188 layerPeople.multi.AddOwner(0, new ListPeopleEmbark
189 {
190 textHeader = "candidates",
191 charas = list
192 });
193 layerPeople.multi.AddOwner(1, new ListPeopleEmbark
194 {
195 textHeader = "listEmbark",
196 charas = settlers
197 });
198 return layerPeople;
199 }
200
202 {
203 LayerPeople layerPeople = Create(Mode.Select);
204 layerPeople.multi.AddOwner(0, list);
205 return layerPeople;
206 }
207
208 public static LayerPeople CreateSelect(string langHeader, string langHint, Action<BaseList> onList, Action<Chara> onClick, Func<Chara, string> _onShowSubText = null)
209 {
210 LayerPeople layerPeople = Create(Mode.Select);
211 layerPeople.multi.AddOwner(0, new ListPeopleSelect
212 {
213 textHeader = langHeader,
214 onList = onList,
215 onClick = onClick,
216 onShowSubText = _onShowSubText
217 });
218 layerPeople.langHint = langHint;
219 ELayer.ui.AddLayer(layerPeople);
220 return layerPeople;
221 }
222}
Definition: Chara.cs:10
bool IsHomeMember()
Definition: Chara.cs:6735
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:254
override void OnSwitchContent(Window window)
Definition: LayerPeople.cs:85
LayerPeople SetOnConfirm(Action _onConfirm)
Definition: LayerPeople.cs:63
ShowMode showMode
Definition: LayerPeople.cs:25
override void OnInit()
Definition: LayerPeople.cs:40
override void OnKill()
Definition: LayerPeople.cs:78
void InitList(ListOwner o)
Definition: LayerPeople.cs:97
static LayerPeople Create(Mode mode)
Definition: LayerPeople.cs:106
UIMultiList multi
Definition: LayerPeople.cs:33
UISearchPeople search
Definition: LayerPeople.cs:29
static LayerPeople CreateReserve()
Definition: LayerPeople.cs:133
static LayerPeople CreateSelect(string langHeader, string langHint, Action< BaseList > onList, Action< Chara > onClick, Func< Chara, string > _onShowSubText=null)
Definition: LayerPeople.cs:208
static Chara slaveToBuy
Definition: LayerPeople.cs:23
static LayerPeople Create(BaseListPeople list)
Definition: LayerPeople.cs:201
Action onConfirm
Definition: LayerPeople.cs:31
override bool HeaderIsListOf(int id)
Definition: LayerPeople.cs:35
static LayerPeople CreateBed(TraitBed bed)
Definition: LayerPeople.cs:160
static LayerPeople CreateParty()
Definition: LayerPeople.cs:145
static LayerPeople CreateSelectEmbarkMembers(List< Chara > settlers)
Definition: LayerPeople.cs:177
void Confirm()
Definition: LayerPeople.cs:69
LayoutGroup layoutMenu
Definition: LayerPeople.cs:27
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
virtual void OnSwitchContent()
Definition: ListOwner.cs:85
bool main
Definition: ListOwner.cs:37
List< Chara > charas
Definition: Map.cs:81
Definition: Party.cs:7
LayerPeople.ShowMode modePoeple
Definition: Player.cs:55
UIList.SortMode sortPeople
Definition: Player.cs:45
Pref pref
Definition: Player.cs:1068
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
void Init(ListOwner _list)
Definition: Window.cs:13
int windowIndex
Definition: Window.cs:697
int idTab
Definition: Window.cs:694
Map map
Definition: Zone.cs:63