Elin Decompiled Documentation EA 23.286 Nightly Patch 1
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;
41 }
42
43 public override void OnSwitchContent(Window window)
44 {
45 switch (window.idTab)
46 {
47 case 0:
49 break;
50 case 1:
52 {
53 ELayer.Branch.UpdateReqruits(clear: true);
54 }
56 break;
57 case 2:
59 break;
60 }
61 WindowMenu menuRight = windows[0].menuRight;
62 menuRight.Clear();
63 if (window.idTab != 0)
64 {
65 return;
66 }
67 UIButton button = null;
68 button = menuRight.AddButton("rerollQuest".lang(GetCost().ToString() ?? ""), delegate
69 {
70 if (ELayer._zone.influence < GetCost())
71 {
72 SE.Beep();
73 Msg.Say("notEnoughInfluence");
74 }
75 else
76 {
77 SE.Dice();
78 ELayer._zone.UpdateQuests(force: true);
80 ELayer._zone.influence -= GetCost();
82 {
84 }
85 button.mainText.SetText("rerollQuest".lang(GetCost().ToString() ?? ""));
86 }
87 });
88 static int GetCost()
89 {
90 return 1;
91 }
92 }
93
94 public void RefreshQuest()
95 {
96 list.Clear();
97 list.callbacks = new UIList.Callback<Quest, ItemQuest>
98 {
99 onInstantiate = delegate(Quest a, ItemQuest b)
100 {
101 b.SetQuest(a);
102 b.button.SetOnClick(delegate
103 {
104 Close();
105 a.OnClickQuest();
106 });
107 }
108 };
110 foreach (Quest global in ELayer.game.quests.globalList)
111 {
112 if (global.IsVisibleOnQuestBoard())
113 {
114 list.Add(global);
115 }
116 }
117 foreach (Chara chara in ELayer._map.charas)
118 {
119 if (chara.quest != null && !ELayer.game.quests.list.Contains(chara.quest) && !chara.IsPCParty && chara.memberType == FactionMemberType.Default && chara.quest.IsVisibleOnQuestBoard())
120 {
121 list.Add(chara.quest);
122 }
123 }
124 list.Refresh();
125 textQuestLimit.SetText("questLimit".lang(ELayer.game.quests.CountRandomQuest().ToString() ?? "", 5.ToString() ?? ""));
126 }
127
128 public void RefreshHire()
129 {
131 list.Clear();
132 list.callbacks = new UIList.Callback<HireInfo, ButtonChara>
133 {
134 onClick = delegate(HireInfo a, ButtonChara b)
135 {
136 a.isNew = false;
137 GameLang.refDrama1 = "(" + "money2".lang() + ": " + CalcGold.Hire(a.chara) + ")";
138 GameLang.refDrama2 = ELayer.pc.things.Find("ticket_resident")?.Name ?? "";
139 a.chara.ShowDialog("_chara", "4-1").onKill.AddListener(RefreshHire);
140 },
141 onInstantiate = delegate(HireInfo a, ButtonChara b)
142 {
143 Chara chara = a.chara;
144 b.SetChara(chara, ButtonChara.Mode.Hire);
145 int cost = CalcGold.Hire(chara);
146 b.item.text1.text = cost.ToString().TagColorGoodBad(() => ELayer.pc.GetCurrency("money2") >= cost || ELayer.pc.things.Find("ticket_resident") != null);
147 b.item.text2.text = ((a.Days == -1) ? "-" : (a.Days.ToString() ?? ""));
148 HintIcon[] componentsInChildren = b.layoutTag.GetComponentsInChildren<HintIcon>();
149 for (int i = 0; i < componentsInChildren.Length; i++)
150 {
151 componentsInChildren[i].onPointerDown = delegate
152 {
153 list.callbacks.OnClick(a, b);
154 };
155 }
156 b.textHobby.text = chara.GetTextHobby();
157 b.textWork.text = chara.GetTextWork();
158 b.textLifeStyle.text = "lifestyle".lang() + ": " + ("lifestyle_" + chara.idTimeTable).lang();
159 b.item.image1.SetActive(a.isNew);
160 },
161 onRefresh = null
162 };
164 {
165 if (!item.chara.IsHomeMember() && (item.chara.currentZone == null || !item.chara.currentZone.IsPlayerFaction))
166 {
167 list.Add(item);
168 }
169 }
170 list.Refresh();
171 this.RebuildLayout(recursive: true);
172 }
173
174 public void RefreshRanking()
175 {
177 list.Clear();
178 list.callbacks = new UIList.Callback<Chara, ButtonChara>
179 {
180 onClick = delegate
181 {
182 },
183 onRedraw = delegate(Chara a, ButtonChara b, int i)
184 {
185 b.SetChara(a, ButtonChara.Mode.Ranking);
186 int advRank = a.trait.GetAdvRank();
188 b.textAlias.color = gradientRank.Evaluate(0.1f * (float)advRank);
189 b.item.image2.SetActive(a.IsPCFaction);
190 bool enable = a.GetInt(111) > 0;
191 b.transDefeated.SetActive(enable);
192 },
193 onList = delegate
194 {
195 foreach (Chara value in ELayer.game.cards.globalCharas.Values)
196 {
197 if (value.trait.ShowAdvRank)
198 {
199 list.Add(value);
200 }
201 }
202 list.objects.Sort((object a, object b) => GetSortVal(b as Chara) - GetSortVal(a as Chara));
203 },
204 onRefresh = null
205 };
206 list.List();
207 int num = list.objects.IndexOf(ELayer.pc);
208 if (num != -1)
209 {
210 list.dsv.scrollByItemIndex(num);
211 list.Refresh();
212 }
213 this.RebuildLayout(recursive: true);
214 static int GetSortVal(Chara c)
215 {
216 return c.trait.GetAdvRank() * 10000 + Mathf.Clamp(c.LV, 0, 1000) + ((c.trait is TraitAdventurerBacker) ? 1000 : 0);
217 }
218 }
219
220 public override void OnKill()
221 {
222 if (ELayer.Branch != null)
223 {
225 }
226 }
227}
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:2177
int GetCurrency(string id="money")
Definition: Card.cs:4057
ThingContainer things
Definition: Card.cs:39
int LV
Definition: Card.cs:387
Definition: Chara.cs:10
new TraitChara trait
Definition: Chara.cs:505
void ShowDialog()
Definition: Chara.cs:7193
override bool IsPCFaction
Definition: Chara.cs:685
Quest quest
Definition: Chara.cs:24
string idTimeTable
Definition: Chara.cs:470
string GetTextWork(bool simple=false)
Definition: Chara.cs:9271
string GetTextHobby(bool simple=false)
Definition: Chara.cs:9261
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
static void ClearDramaRef()
Definition: GameLang.cs:16
CardManager cards
Definition: Game.cs:156
QuestManager quests
Definition: Game.cs:183
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:1017
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:401
override void Add(object item)
Definition: UIList.cs:354
virtual void Refresh(bool highlightLast=false)
Definition: UIList.cs:476
void Sort()
Definition: UIList.cs:749
override void List()
Definition: UIList.cs:769
Definition: UIText.cs:6
void SetText(string s)
Definition: UIText.cs:163
void Clear()
Definition: WindowMenu.cs:44
UIButton AddButton(string idLang, Action< UIButton > onClick, Sprite sprite=null, string idButton="Default")
Definition: WindowMenu.cs:67
Definition: Window.cs:13
int idTab
Definition: Window.cs:694
FactionBranch branch
Definition: Zone.cs:34
bool IsPCFaction
Definition: Zone.cs:475
void UpdateQuests(bool force=false)
Definition: Zone.cs:3697