Elin Decompiled Documentation EA 23.200 Stable
Loading...
Searching...
No Matches
LayerQuestBoard.cs
Go to the documentation of this file.
1using UnityEngine;
2
3public class LayerQuestBoard : ELayer
4{
5 public UIList list;
6
8
10
12
14
16
18
20
22
24
26
28
30
31 public Gradient gradientRank;
32
33 public override void OnInit()
34 {
36 {
38 }
39 windows[0].setting.tabs[1].disable = !ELayer._zone.IsPCFaction;
40 }
41
42 public override void OnSwitchContent(Window window)
43 {
44 switch (window.idTab)
45 {
46 case 0:
48 break;
49 case 1:
51 {
52 ELayer.Branch.UpdateReqruits(clear: true);
53 }
55 break;
56 case 2:
58 break;
59 }
60 WindowMenu menuRight = windows[0].menuRight;
61 menuRight.Clear();
62 if (window.idTab != 0)
63 {
64 return;
65 }
66 UIButton button = null;
67 button = menuRight.AddButton("rerollQuest".lang(GetCost().ToString() ?? ""), delegate
68 {
69 if (ELayer._zone.influence < GetCost())
70 {
71 SE.Beep();
72 Msg.Say("notEnoughInfluence");
73 }
74 else
75 {
76 SE.Dice();
77 ELayer._zone.UpdateQuests(force: true);
79 ELayer._zone.influence -= GetCost();
81 {
83 }
84 button.mainText.SetText("rerollQuest".lang(GetCost().ToString() ?? ""));
85 }
86 });
87 static int GetCost()
88 {
89 return 1;
90 }
91 }
92
93 public void RefreshQuest()
94 {
95 list.Clear();
96 list.callbacks = new UIList.Callback<Quest, ItemQuest>
97 {
98 onInstantiate = delegate(Quest a, ItemQuest b)
99 {
100 b.SetQuest(a);
101 b.button.SetOnClick(delegate
102 {
103 Close();
104 a.OnClickQuest();
105 });
106 }
107 };
109 foreach (Quest global in ELayer.game.quests.globalList)
110 {
111 if (global.IsVisibleOnQuestBoard())
112 {
113 list.Add(global);
114 }
115 }
116 foreach (Chara chara in ELayer._map.charas)
117 {
118 if (chara.quest != null && !ELayer.game.quests.list.Contains(chara.quest) && !chara.IsPCParty && chara.memberType == FactionMemberType.Default && chara.quest.IsVisibleOnQuestBoard())
119 {
120 list.Add(chara.quest);
121 }
122 }
123 list.Refresh();
124 textQuestLimit.SetText("questLimit".lang(ELayer.game.quests.CountRandomQuest().ToString() ?? "", 5.ToString() ?? ""));
125 }
126
127 public void RefreshHire()
128 {
130 list.Clear();
131 list.callbacks = new UIList.Callback<HireInfo, ButtonChara>
132 {
133 onClick = delegate(HireInfo a, ButtonChara b)
134 {
135 a.isNew = false;
136 GameLang.refDrama1 = "(" + "money2".lang() + ": " + CalcGold.Hire(a.chara) + ")";
137 GameLang.refDrama2 = ELayer.pc.things.Find("ticket_resident")?.Name ?? "";
138 a.chara.ShowDialog("_chara", "4-1").onKill.AddListener(RefreshHire);
139 },
140 onInstantiate = delegate(HireInfo a, ButtonChara b)
141 {
142 Chara chara = a.chara;
143 b.SetChara(chara, ButtonChara.Mode.Hire);
144 int cost = CalcGold.Hire(chara);
145 b.item.text1.text = cost.ToString().TagColorGoodBad(() => ELayer.pc.GetCurrency("money2") >= cost || ELayer.pc.things.Find("ticket_resident") != null);
146 b.item.text2.text = ((a.Days == -1) ? "-" : (a.Days.ToString() ?? ""));
147 HintIcon[] componentsInChildren = b.layoutTag.GetComponentsInChildren<HintIcon>();
148 for (int i = 0; i < componentsInChildren.Length; i++)
149 {
150 componentsInChildren[i].onPointerDown = delegate
151 {
152 list.callbacks.OnClick(a, b);
153 };
154 }
155 b.textHobby.text = chara.GetTextHobby();
156 b.textWork.text = chara.GetTextWork();
157 b.textLifeStyle.text = "lifestyle".lang() + ": " + ("lifestyle_" + chara.idTimeTable).lang();
158 b.item.image1.SetActive(a.isNew);
159 },
160 onRefresh = null
161 };
163 {
164 if (!item.chara.IsHomeMember() && (item.chara.currentZone == null || !item.chara.currentZone.IsPlayerFaction))
165 {
166 list.Add(item);
167 }
168 }
169 list.Refresh();
170 this.RebuildLayout(recursive: true);
171 }
172
173 public void RefreshRanking()
174 {
176 list.Clear();
177 list.callbacks = new UIList.Callback<Chara, ButtonChara>
178 {
179 onClick = delegate
180 {
181 },
182 onRedraw = delegate(Chara a, ButtonChara b, int i)
183 {
184 b.SetChara(a, ButtonChara.Mode.Ranking);
185 int advRank = a.trait.GetAdvRank();
187 b.textAlias.color = gradientRank.Evaluate(0.1f * (float)advRank);
188 b.item.image2.SetActive(a.IsPCFaction);
189 bool enable = a.GetInt(111) > 0;
190 b.transDefeated.SetActive(enable);
191 },
192 onList = delegate
193 {
194 foreach (Chara value in ELayer.game.cards.globalCharas.Values)
195 {
196 if (value.trait.ShowAdvRank)
197 {
198 list.Add(value);
199 }
200 }
201 list.objects.Sort((object a, object b) => GetSortVal(b as Chara) - GetSortVal(a as Chara));
202 },
203 onRefresh = null
204 };
205 list.List();
206 int num = list.objects.IndexOf(ELayer.pc);
207 if (num != -1)
208 {
209 list.dsv.scrollByItemIndex(num);
210 list.Refresh();
211 }
212 this.RebuildLayout(recursive: true);
213 static int GetSortVal(Chara c)
214 {
215 return c.trait.GetAdvRank() * 10000 + Mathf.Clamp(c.LV, 0, 1000) + ((c.trait is TraitAdventurerBacker) ? 1000 : 0);
216 }
217 }
218
219 public override void OnKill()
220 {
221 if (ELayer.Branch != null)
222 {
224 }
225 }
226}
int GetInt(int id, int? defaultInt=null)
Definition: BaseCard.cs:25
UIList.ICallback callbacks
Definition: BaseList.cs:13
Transform transDefeated
Definition: ButtonChara.cs:31
new UIItem item
Definition: ButtonChara.cs:29
void SetChara(Chara c, Mode m)
Definition: ButtonChara.cs:35
UIText textAlias
Definition: ButtonChara.cs:19
LayoutGroup layoutTag
Definition: ButtonChara.cs:33
static int Hire(Chara c)
Definition: CalcGold.cs:8
GlobalCharaList globalCharas
Definition: CardManager.cs:46
string Name
Definition: Card.cs:2099
int GetCurrency(string id="money")
Definition: Card.cs:3873
ThingContainer things
Definition: Card.cs:36
int LV
Definition: Card.cs:372
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:501
void ShowDialog()
Definition: Chara.cs:6796
override bool IsPCFaction
Definition: Chara.cs:669
Quest quest
Definition: Chara.cs:24
string idTimeTable
Definition: Chara.cs:466
string GetTextWork(bool simple=false)
Definition: Chara.cs:8717
string GetTextHobby(bool simple=false)
Definition: Chara.cs:8707
bool enable
Definition: CoreDebug.cs:286
Definition: ELayer.cs:4
static Chara pc
Definition: ELayer.cs:15
static Player player
Definition: ELayer.cs:13
static Game game
Definition: ELayer.cs:9
static CoreDebug debug
Definition: ELayer.cs:43
static Map _map
Definition: ELayer.cs:23
static FactionBranch Branch
Definition: ELayer.cs:17
static Zone _zone
Definition: ELayer.cs:25
void ClearNewRecruits()
void UpdateReqruits(bool clear=false)
List< HireInfo > listRecruit
CardManager cards
Definition: Game.cs:155
QuestManager quests
Definition: Game.cs:179
Action onPointerDown
Definition: HintIcon.cs:15
Chara chara
Definition: HireInfo.cs:6
int Days
Definition: HireInfo.cs:29
bool isNew
Definition: HireInfo.cs:9
void SetQuest(Quest q)
Definition: ItemQuest.cs:23
UIButton button
Definition: ItemQuest.cs:7
UIDynamicList listRanking
UICurrency uiCurrency
Gradient gradientRank
override void OnKill()
override void OnInit()
override void OnSwitchContent(Window window)
List< Window > windows
Definition: Layer.cs:116
virtual void Close()
Definition: Layer.cs:463
List< Chara > charas
Definition: Map.cs:81
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
int questRerollCost
Definition: Player.cs:921
List< Quest > list
Definition: QuestManager.cs:11
int CountRandomQuest()
List< Quest > globalList
Definition: QuestManager.cs:14
Definition: Quest.cs:7
virtual void OnClickQuest()
Definition: Quest.cs:422
virtual bool IsVisibleOnQuestBoard()
Definition: Quest.cs:292
int influence
Definition: Spatial.cs:214
Thing Find(int uid)
string GetAdvRankText()
Definition: TraitChara.cs:173
virtual bool ShowAdvRank
Definition: TraitChara.cs:95
int GetAdvRank()
Definition: TraitChara.cs:158
UIText mainText
Definition: UIButton.cs:102
Image image2
Definition: UIItem.cs:16
Image image1
Definition: UIItem.cs:14
Definition: UIList.cs:9
override void Clear()
Definition: UIList.cs:349
override void Add(object item)
Definition: UIList.cs:302
virtual void Refresh(bool highlightLast=false)
Definition: UIList.cs:424
void Sort()
Definition: UIList.cs:697
override void List()
Definition: UIList.cs:717
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:159
void Clear()
Definition: WindowMenu.cs:44
UIButton AddButton(string idLang, Action< UIButton > onClick, Sprite sprite=null, string idButton="Default")
Definition: WindowMenu.cs:54
Definition: Window.cs:13
int idTab
Definition: Window.cs:694
FactionBranch branch
Definition: Zone.cs:34
bool IsPCFaction
Definition: Zone.cs:468
void UpdateQuests(bool force=false)
Definition: Zone.cs:3481